@aws-amplify/pubsub 4.4.9 → 4.4.10-next.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/dist/aws-amplify-pubsub.js +1260 -2214
  3. package/dist/aws-amplify-pubsub.js.map +1 -1
  4. package/dist/aws-amplify-pubsub.min.js +3 -3
  5. package/dist/aws-amplify-pubsub.min.js.map +1 -1
  6. package/lib/Providers/AWSAppSyncProvider.js +20 -102
  7. package/lib/Providers/AWSAppSyncProvider.js.map +1 -1
  8. package/lib/Providers/AWSAppSyncRealTimeProvider/index.d.ts +10 -2
  9. package/lib/Providers/AWSAppSyncRealTimeProvider/index.js +166 -208
  10. package/lib/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -1
  11. package/lib/Providers/AWSIotProvider.js +4 -52
  12. package/lib/Providers/AWSIotProvider.js.map +1 -1
  13. package/lib/Providers/MqttOverWSProvider.d.ts +5 -1
  14. package/lib/Providers/MqttOverWSProvider.js +172 -187
  15. package/lib/Providers/MqttOverWSProvider.js.map +1 -1
  16. package/lib/Providers/PubSubProvider.d.ts +1 -1
  17. package/lib/Providers/PubSubProvider.js +3 -13
  18. package/lib/Providers/PubSubProvider.js.map +1 -1
  19. package/lib/Providers/{AWSAppSyncRealTimeProvider/constants.d.ts → constants.d.ts} +9 -0
  20. package/lib/Providers/{AWSAppSyncRealTimeProvider/constants.js → constants.js} +9 -0
  21. package/lib/Providers/constants.js.map +1 -0
  22. package/lib/Providers/index.js +6 -8
  23. package/lib/Providers/index.js.map +1 -1
  24. package/lib/PubSub.js +6 -44
  25. package/lib/PubSub.js.map +1 -1
  26. package/lib/index.d.ts +3 -10
  27. package/lib/index.js +5 -14
  28. package/lib/index.js.map +1 -1
  29. package/lib/types/Provider.d.ts +10 -1
  30. package/lib/types/PubSub.d.ts +22 -8
  31. package/lib/types/PubSub.js +56 -0
  32. package/lib/types/PubSub.js.map +1 -1
  33. package/lib/types/index.d.ts +0 -17
  34. package/lib/types/index.js +2 -36
  35. package/lib/types/index.js.map +1 -1
  36. package/lib/utils/ConnectionStateMonitor.d.ts +2 -1
  37. package/lib/utils/ConnectionStateMonitor.js +25 -30
  38. package/lib/utils/ConnectionStateMonitor.js.map +1 -1
  39. package/lib/utils/ReachabilityMonitor/index.d.ts +3 -0
  40. package/lib/utils/ReachabilityMonitor/index.js +5 -0
  41. package/lib/utils/ReachabilityMonitor/index.js.map +1 -0
  42. package/lib/utils/ReachabilityMonitor/index.native.d.ts +3 -0
  43. package/lib/utils/ReachabilityMonitor/index.native.js +9 -0
  44. package/lib/utils/ReachabilityMonitor/index.native.js.map +1 -0
  45. package/lib/utils/ReconnectionMonitor.d.ts +29 -0
  46. package/lib/utils/ReconnectionMonitor.js +73 -0
  47. package/lib/utils/ReconnectionMonitor.js.map +1 -0
  48. package/lib-esm/Providers/AWSAppSyncProvider.js +1 -80
  49. package/lib-esm/Providers/AWSAppSyncProvider.js.map +1 -1
  50. package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.d.ts +10 -2
  51. package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js +130 -162
  52. package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -1
  53. package/lib-esm/Providers/AWSIotProvider.js +1 -49
  54. package/lib-esm/Providers/AWSIotProvider.js.map +1 -1
  55. package/lib-esm/Providers/MqttOverWSProvider.d.ts +5 -1
  56. package/lib-esm/Providers/MqttOverWSProvider.js +154 -159
  57. package/lib-esm/Providers/MqttOverWSProvider.js.map +1 -1
  58. package/lib-esm/Providers/PubSubProvider.d.ts +1 -1
  59. package/lib-esm/Providers/PubSubProvider.js +1 -11
  60. package/lib-esm/Providers/PubSubProvider.js.map +1 -1
  61. package/lib-esm/Providers/{AWSAppSyncRealTimeProvider/constants.d.ts → constants.d.ts} +9 -0
  62. package/lib-esm/Providers/{AWSAppSyncRealTimeProvider/constants.js → constants.js} +9 -0
  63. package/lib-esm/Providers/constants.js.map +1 -0
  64. package/lib-esm/PubSub.js +1 -36
  65. package/lib-esm/PubSub.js.map +1 -1
  66. package/lib-esm/index.d.ts +3 -10
  67. package/lib-esm/index.js +3 -11
  68. package/lib-esm/index.js.map +1 -1
  69. package/lib-esm/types/Provider.d.ts +10 -1
  70. package/lib-esm/types/PubSub.d.ts +22 -8
  71. package/lib-esm/types/PubSub.js +56 -0
  72. package/lib-esm/types/PubSub.js.map +1 -1
  73. package/lib-esm/types/index.d.ts +0 -17
  74. package/lib-esm/types/index.js +1 -36
  75. package/lib-esm/types/index.js.map +1 -1
  76. package/lib-esm/utils/ConnectionStateMonitor.d.ts +2 -1
  77. package/lib-esm/utils/ConnectionStateMonitor.js +14 -16
  78. package/lib-esm/utils/ConnectionStateMonitor.js.map +1 -1
  79. package/lib-esm/utils/ReachabilityMonitor/index.d.ts +3 -0
  80. package/lib-esm/utils/ReachabilityMonitor/index.js +3 -0
  81. package/lib-esm/utils/ReachabilityMonitor/index.js.map +1 -0
  82. package/lib-esm/utils/ReachabilityMonitor/index.native.d.ts +3 -0
  83. package/lib-esm/utils/ReachabilityMonitor/index.native.js +6 -0
  84. package/lib-esm/utils/ReachabilityMonitor/index.native.js.map +1 -0
  85. package/lib-esm/utils/ReconnectionMonitor.d.ts +29 -0
  86. package/lib-esm/utils/ReconnectionMonitor.js +71 -0
  87. package/lib-esm/utils/ReconnectionMonitor.js.map +1 -0
  88. package/package.json +6 -5
  89. package/src/Providers/AWSAppSyncRealTimeProvider/index.ts +154 -90
  90. package/src/Providers/MqttOverWSProvider.ts +120 -53
  91. package/src/Providers/PubSubProvider.ts +1 -1
  92. package/src/Providers/{AWSAppSyncRealTimeProvider/constants.ts → constants.ts} +12 -0
  93. package/src/index.ts +3 -10
  94. package/src/types/Provider.ts +13 -1
  95. package/src/types/PubSub.ts +47 -8
  96. package/src/types/index.ts +0 -43
  97. package/src/utils/ConnectionStateMonitor.ts +20 -5
  98. package/src/utils/ReachabilityMonitor/index.native.ts +5 -0
  99. package/src/utils/ReachabilityMonitor/index.ts +3 -0
  100. package/src/utils/ReconnectionMonitor.ts +74 -0
  101. package/lib/Providers/AWSAppSyncRealTimeProvider/constants.js.map +0 -1
  102. package/lib-esm/Providers/AWSAppSyncRealTimeProvider/constants.js.map +0 -1
@@ -5308,6 +5308,292 @@ exports.decode = exports.parse = __webpack_require__(/*! ./decode */ "../../node
5308
5308
  exports.encode = exports.stringify = __webpack_require__(/*! ./encode */ "../../node_modules/querystring-es3/encode.js");
5309
5309
 
5310
5310
 
5311
+ /***/ }),
5312
+
5313
+ /***/ "../../node_modules/tslib/tslib.es6.js":
5314
+ /*!********************************************************!*\
5315
+ !*** /root/amplify-js/node_modules/tslib/tslib.es6.js ***!
5316
+ \********************************************************/
5317
+ /*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __createBinding, __exportStar, __values, __read, __spread, __spreadArrays, __spreadArray, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet, __classPrivateFieldIn */
5318
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
5319
+
5320
+ "use strict";
5321
+ __webpack_require__.r(__webpack_exports__);
5322
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; });
5323
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; });
5324
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; });
5325
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; });
5326
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; });
5327
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; });
5328
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; });
5329
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; });
5330
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__createBinding", function() { return __createBinding; });
5331
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; });
5332
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; });
5333
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; });
5334
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; });
5335
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spreadArrays", function() { return __spreadArrays; });
5336
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spreadArray", function() { return __spreadArray; });
5337
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; });
5338
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; });
5339
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; });
5340
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; });
5341
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; });
5342
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; });
5343
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; });
5344
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldGet", function() { return __classPrivateFieldGet; });
5345
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldSet", function() { return __classPrivateFieldSet; });
5346
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldIn", function() { return __classPrivateFieldIn; });
5347
+ /******************************************************************************
5348
+ Copyright (c) Microsoft Corporation.
5349
+
5350
+ Permission to use, copy, modify, and/or distribute this software for any
5351
+ purpose with or without fee is hereby granted.
5352
+
5353
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
5354
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
5355
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
5356
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
5357
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
5358
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
5359
+ PERFORMANCE OF THIS SOFTWARE.
5360
+ ***************************************************************************** */
5361
+ /* global Reflect, Promise */
5362
+
5363
+ var extendStatics = function(d, b) {
5364
+ extendStatics = Object.setPrototypeOf ||
5365
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5366
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
5367
+ return extendStatics(d, b);
5368
+ };
5369
+
5370
+ function __extends(d, b) {
5371
+ if (typeof b !== "function" && b !== null)
5372
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
5373
+ extendStatics(d, b);
5374
+ function __() { this.constructor = d; }
5375
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
5376
+ }
5377
+
5378
+ var __assign = function() {
5379
+ __assign = Object.assign || function __assign(t) {
5380
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5381
+ s = arguments[i];
5382
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
5383
+ }
5384
+ return t;
5385
+ }
5386
+ return __assign.apply(this, arguments);
5387
+ }
5388
+
5389
+ function __rest(s, e) {
5390
+ var t = {};
5391
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5392
+ t[p] = s[p];
5393
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
5394
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
5395
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
5396
+ t[p[i]] = s[p[i]];
5397
+ }
5398
+ return t;
5399
+ }
5400
+
5401
+ function __decorate(decorators, target, key, desc) {
5402
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5403
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5404
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5405
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
5406
+ }
5407
+
5408
+ function __param(paramIndex, decorator) {
5409
+ return function (target, key) { decorator(target, key, paramIndex); }
5410
+ }
5411
+
5412
+ function __metadata(metadataKey, metadataValue) {
5413
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
5414
+ }
5415
+
5416
+ function __awaiter(thisArg, _arguments, P, generator) {
5417
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5418
+ return new (P || (P = Promise))(function (resolve, reject) {
5419
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5420
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
5421
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
5422
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
5423
+ });
5424
+ }
5425
+
5426
+ function __generator(thisArg, body) {
5427
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
5428
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
5429
+ function verb(n) { return function (v) { return step([n, v]); }; }
5430
+ function step(op) {
5431
+ if (f) throw new TypeError("Generator is already executing.");
5432
+ while (_) try {
5433
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
5434
+ if (y = 0, t) op = [op[0] & 2, t.value];
5435
+ switch (op[0]) {
5436
+ case 0: case 1: t = op; break;
5437
+ case 4: _.label++; return { value: op[1], done: false };
5438
+ case 5: _.label++; y = op[1]; op = [0]; continue;
5439
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
5440
+ default:
5441
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
5442
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
5443
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
5444
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
5445
+ if (t[2]) _.ops.pop();
5446
+ _.trys.pop(); continue;
5447
+ }
5448
+ op = body.call(thisArg, _);
5449
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
5450
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
5451
+ }
5452
+ }
5453
+
5454
+ var __createBinding = Object.create ? (function(o, m, k, k2) {
5455
+ if (k2 === undefined) k2 = k;
5456
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5457
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
5458
+ desc = { enumerable: true, get: function() { return m[k]; } };
5459
+ }
5460
+ Object.defineProperty(o, k2, desc);
5461
+ }) : (function(o, m, k, k2) {
5462
+ if (k2 === undefined) k2 = k;
5463
+ o[k2] = m[k];
5464
+ });
5465
+
5466
+ function __exportStar(m, o) {
5467
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
5468
+ }
5469
+
5470
+ function __values(o) {
5471
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
5472
+ if (m) return m.call(o);
5473
+ if (o && typeof o.length === "number") return {
5474
+ next: function () {
5475
+ if (o && i >= o.length) o = void 0;
5476
+ return { value: o && o[i++], done: !o };
5477
+ }
5478
+ };
5479
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
5480
+ }
5481
+
5482
+ function __read(o, n) {
5483
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
5484
+ if (!m) return o;
5485
+ var i = m.call(o), r, ar = [], e;
5486
+ try {
5487
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
5488
+ }
5489
+ catch (error) { e = { error: error }; }
5490
+ finally {
5491
+ try {
5492
+ if (r && !r.done && (m = i["return"])) m.call(i);
5493
+ }
5494
+ finally { if (e) throw e.error; }
5495
+ }
5496
+ return ar;
5497
+ }
5498
+
5499
+ /** @deprecated */
5500
+ function __spread() {
5501
+ for (var ar = [], i = 0; i < arguments.length; i++)
5502
+ ar = ar.concat(__read(arguments[i]));
5503
+ return ar;
5504
+ }
5505
+
5506
+ /** @deprecated */
5507
+ function __spreadArrays() {
5508
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
5509
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
5510
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
5511
+ r[k] = a[j];
5512
+ return r;
5513
+ }
5514
+
5515
+ function __spreadArray(to, from, pack) {
5516
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
5517
+ if (ar || !(i in from)) {
5518
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5519
+ ar[i] = from[i];
5520
+ }
5521
+ }
5522
+ return to.concat(ar || Array.prototype.slice.call(from));
5523
+ }
5524
+
5525
+ function __await(v) {
5526
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
5527
+ }
5528
+
5529
+ function __asyncGenerator(thisArg, _arguments, generator) {
5530
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
5531
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
5532
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
5533
+ function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
5534
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
5535
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
5536
+ function fulfill(value) { resume("next", value); }
5537
+ function reject(value) { resume("throw", value); }
5538
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
5539
+ }
5540
+
5541
+ function __asyncDelegator(o) {
5542
+ var i, p;
5543
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
5544
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
5545
+ }
5546
+
5547
+ function __asyncValues(o) {
5548
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
5549
+ var m = o[Symbol.asyncIterator], i;
5550
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
5551
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
5552
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
5553
+ }
5554
+
5555
+ function __makeTemplateObject(cooked, raw) {
5556
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
5557
+ return cooked;
5558
+ };
5559
+
5560
+ var __setModuleDefault = Object.create ? (function(o, v) {
5561
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
5562
+ }) : function(o, v) {
5563
+ o["default"] = v;
5564
+ };
5565
+
5566
+ function __importStar(mod) {
5567
+ if (mod && mod.__esModule) return mod;
5568
+ var result = {};
5569
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
5570
+ __setModuleDefault(result, mod);
5571
+ return result;
5572
+ }
5573
+
5574
+ function __importDefault(mod) {
5575
+ return (mod && mod.__esModule) ? mod : { default: mod };
5576
+ }
5577
+
5578
+ function __classPrivateFieldGet(receiver, state, kind, f) {
5579
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
5580
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5581
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5582
+ }
5583
+
5584
+ function __classPrivateFieldSet(receiver, state, value, kind, f) {
5585
+ if (kind === "m") throw new TypeError("Private method is not writable");
5586
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5587
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5588
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
5589
+ }
5590
+
5591
+ function __classPrivateFieldIn(state, receiver) {
5592
+ if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
5593
+ return typeof state === "function" ? receiver === state : state.has(receiver);
5594
+ }
5595
+
5596
+
5311
5597
  /***/ }),
5312
5598
 
5313
5599
  /***/ "../../node_modules/url/url.js":
@@ -7080,248 +7366,27 @@ if (hasSymbols()) {
7080
7366
  "use strict";
7081
7367
  __webpack_require__.r(__webpack_exports__);
7082
7368
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AWSAppSyncProvider", function() { return AWSAppSyncProvider; });
7083
- /* harmony import */ var zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zen-observable-ts */ "../../node_modules/zen-observable-ts/lib/bundle.esm.js");
7084
- /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
7085
- /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__);
7086
- /* harmony import */ var _MqttOverWSProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MqttOverWSProvider */ "./lib-esm/Providers/MqttOverWSProvider.js");
7087
- var __extends = undefined && undefined.__extends || function () {
7088
- var _extendStatics = function extendStatics(d, b) {
7089
- _extendStatics = Object.setPrototypeOf || {
7090
- __proto__: []
7091
- } instanceof Array && function (d, b) {
7092
- d.__proto__ = b;
7093
- } || function (d, b) {
7094
- for (var p in b) {
7095
- if (b.hasOwnProperty(p)) d[p] = b[p];
7096
- }
7097
- };
7098
-
7099
- return _extendStatics(d, b);
7100
- };
7101
-
7102
- return function (d, b) {
7103
- _extendStatics(d, b);
7104
-
7105
- function __() {
7106
- this.constructor = d;
7107
- }
7108
-
7109
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
7110
- };
7111
- }();
7112
-
7113
- var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
7114
- function adopt(value) {
7115
- return value instanceof P ? value : new P(function (resolve) {
7116
- resolve(value);
7117
- });
7118
- }
7119
-
7120
- return new (P || (P = Promise))(function (resolve, reject) {
7121
- function fulfilled(value) {
7122
- try {
7123
- step(generator.next(value));
7124
- } catch (e) {
7125
- reject(e);
7126
- }
7127
- }
7128
-
7129
- function rejected(value) {
7130
- try {
7131
- step(generator["throw"](value));
7132
- } catch (e) {
7133
- reject(e);
7134
- }
7135
- }
7136
-
7137
- function step(result) {
7138
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
7139
- }
7140
-
7141
- step((generator = generator.apply(thisArg, _arguments || [])).next());
7142
- });
7143
- };
7144
-
7145
- var __generator = undefined && undefined.__generator || function (thisArg, body) {
7146
- var _ = {
7147
- label: 0,
7148
- sent: function sent() {
7149
- if (t[0] & 1) throw t[1];
7150
- return t[1];
7151
- },
7152
- trys: [],
7153
- ops: []
7154
- },
7155
- f,
7156
- y,
7157
- t,
7158
- g;
7159
- return g = {
7160
- next: verb(0),
7161
- "throw": verb(1),
7162
- "return": verb(2)
7163
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
7164
- return this;
7165
- }), g;
7166
-
7167
- function verb(n) {
7168
- return function (v) {
7169
- return step([n, v]);
7170
- };
7171
- }
7172
-
7173
- function step(op) {
7174
- if (f) throw new TypeError("Generator is already executing.");
7175
-
7176
- while (_) {
7177
- try {
7178
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
7179
- if (y = 0, t) op = [op[0] & 2, t.value];
7180
-
7181
- switch (op[0]) {
7182
- case 0:
7183
- case 1:
7184
- t = op;
7185
- break;
7186
-
7187
- case 4:
7188
- _.label++;
7189
- return {
7190
- value: op[1],
7191
- done: false
7192
- };
7193
-
7194
- case 5:
7195
- _.label++;
7196
- y = op[1];
7197
- op = [0];
7198
- continue;
7199
-
7200
- case 7:
7201
- op = _.ops.pop();
7202
-
7203
- _.trys.pop();
7204
-
7205
- continue;
7206
-
7207
- default:
7208
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
7209
- _ = 0;
7210
- continue;
7211
- }
7212
-
7213
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
7214
- _.label = op[1];
7215
- break;
7216
- }
7217
-
7218
- if (op[0] === 6 && _.label < t[1]) {
7219
- _.label = t[1];
7220
- t = op;
7221
- break;
7222
- }
7223
-
7224
- if (t && _.label < t[2]) {
7225
- _.label = t[2];
7226
-
7227
- _.ops.push(op);
7228
-
7229
- break;
7230
- }
7231
-
7232
- if (t[2]) _.ops.pop();
7233
-
7234
- _.trys.pop();
7235
-
7236
- continue;
7237
- }
7238
-
7239
- op = body.call(thisArg, _);
7240
- } catch (e) {
7241
- op = [6, e];
7242
- y = 0;
7243
- } finally {
7244
- f = t = 0;
7245
- }
7246
- }
7247
-
7248
- if (op[0] & 5) throw op[1];
7249
- return {
7250
- value: op[0] ? op[1] : void 0,
7251
- done: true
7252
- };
7253
- }
7254
- };
7255
-
7256
- var __rest = undefined && undefined.__rest || function (s, e) {
7257
- var t = {};
7258
-
7259
- for (var p in s) {
7260
- if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
7261
- }
7262
-
7263
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7264
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
7265
- }
7266
- return t;
7267
- };
7268
-
7269
- var __read = undefined && undefined.__read || function (o, n) {
7270
- var m = typeof Symbol === "function" && o[Symbol.iterator];
7271
- if (!m) return o;
7272
- var i = m.call(o),
7273
- r,
7274
- ar = [],
7275
- e;
7276
-
7277
- try {
7278
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
7279
- ar.push(r.value);
7280
- }
7281
- } catch (error) {
7282
- e = {
7283
- error: error
7284
- };
7285
- } finally {
7286
- try {
7287
- if (r && !r.done && (m = i["return"])) m.call(i);
7288
- } finally {
7289
- if (e) throw e.error;
7290
- }
7291
- }
7292
-
7293
- return ar;
7294
- };
7295
-
7296
- var __spread = undefined && undefined.__spread || function () {
7297
- for (var ar = [], i = 0; i < arguments.length; i++) {
7298
- ar = ar.concat(__read(arguments[i]));
7299
- }
7300
-
7301
- return ar;
7302
- };
7369
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
7370
+ /* harmony import */ var zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! zen-observable-ts */ "../../node_modules/zen-observable-ts/lib/bundle.esm.js");
7371
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
7372
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_2__);
7373
+ /* harmony import */ var _MqttOverWSProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./MqttOverWSProvider */ "./lib-esm/Providers/MqttOverWSProvider.js");
7303
7374
 
7304
7375
 
7305
7376
 
7306
7377
 
7307
- var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["ConsoleLogger"]('AWSAppSyncProvider');
7378
+ var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_2__["ConsoleLogger"]('AWSAppSyncProvider');
7308
7379
  /**
7309
7380
  * @deprecated Unused, all usecases have migrated to AWSAppSyncRealtimeProvider
7310
7381
  */
7311
-
7312
- var AWSAppSyncProvider =
7313
- /** @class */
7314
- function (_super) {
7315
- __extends(AWSAppSyncProvider, _super);
7316
-
7382
+ var AWSAppSyncProvider = /** @class */function (_super) {
7383
+ Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AWSAppSyncProvider, _super);
7317
7384
  function AWSAppSyncProvider() {
7318
7385
  var _this = _super !== null && _super.apply(this, arguments) || this;
7319
-
7320
7386
  _this._topicClient = new Map();
7321
7387
  _this._topicAlias = new Map();
7322
7388
  return _this;
7323
7389
  }
7324
-
7325
7390
  Object.defineProperty(AWSAppSyncProvider.prototype, "endpoint", {
7326
7391
  get: function get() {
7327
7392
  throw new Error('Not supported');
@@ -7329,61 +7394,48 @@ function (_super) {
7329
7394
  enumerable: true,
7330
7395
  configurable: true
7331
7396
  });
7332
-
7333
7397
  AWSAppSyncProvider.prototype.getProviderName = function () {
7334
7398
  return 'AWSAppSyncProvider';
7335
7399
  };
7336
-
7337
7400
  AWSAppSyncProvider.prototype.publish = function (topics, msg, options) {
7338
- return __awaiter(this, void 0, void 0, function () {
7339
- return __generator(this, function (_a) {
7401
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
7402
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
7340
7403
  throw new Error('Operation not supported');
7341
7404
  });
7342
7405
  });
7343
7406
  };
7344
-
7345
7407
  AWSAppSyncProvider.prototype._cleanUp = function (clientId) {
7346
7408
  var _this = this;
7347
-
7348
7409
  var topicsForClient = Array.from(this._topicClient.entries()).filter(function (_a) {
7349
- var _b = __read(_a, 2),
7350
- c = _b[1];
7351
-
7410
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2),
7411
+ c = _b[1];
7352
7412
  return c.clientId === clientId;
7353
7413
  }).map(function (_a) {
7354
- var _b = __read(_a, 1),
7355
- t = _b[0];
7356
-
7414
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 1),
7415
+ t = _b[0];
7357
7416
  return t;
7358
7417
  });
7359
7418
  topicsForClient.forEach(function (t) {
7360
7419
  return _this._cleanUpForTopic(t);
7361
7420
  });
7362
7421
  };
7363
-
7364
7422
  AWSAppSyncProvider.prototype._cleanUpForTopic = function (topic) {
7365
7423
  this._topicClient["delete"](topic);
7366
-
7367
7424
  this._topicAlias["delete"](topic);
7368
7425
  };
7369
-
7370
7426
  AWSAppSyncProvider.prototype.onDisconnect = function (_a) {
7371
7427
  var _this = this;
7372
-
7373
7428
  var clientId = _a.clientId,
7374
- errorCode = _a.errorCode,
7375
- args = __rest(_a, ["clientId", "errorCode"]);
7376
-
7429
+ errorCode = _a.errorCode,
7430
+ args = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"])(_a, ["clientId", "errorCode"]);
7377
7431
  if (errorCode !== 0) {
7378
7432
  var topicsForClient = Array.from(this._topicClient.entries()).filter(function (_a) {
7379
- var _b = __read(_a, 2),
7380
- c = _b[1];
7381
-
7433
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2),
7434
+ c = _b[1];
7382
7435
  return c.clientId === clientId;
7383
7436
  }).map(function (_a) {
7384
- var _b = __read(_a, 1),
7385
- t = _b[0];
7386
-
7437
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 1),
7438
+ t = _b[0];
7387
7439
  return t;
7388
7440
  });
7389
7441
  topicsForClient.forEach(function (topic) {
@@ -7393,41 +7445,28 @@ function (_super) {
7393
7445
  obs.error(args);
7394
7446
  }
7395
7447
  });
7396
-
7397
7448
  _this._topicObservers["delete"](topic);
7398
7449
  }
7399
7450
  });
7400
-
7401
7451
  this._cleanUp(clientId);
7402
7452
  }
7403
7453
  };
7404
-
7405
7454
  AWSAppSyncProvider.prototype.disconnect = function (clientId) {
7406
- return __awaiter(this, void 0, void 0, function () {
7455
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
7407
7456
  var client;
7408
- return __generator(this, function (_a) {
7457
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
7409
7458
  switch (_a.label) {
7410
7459
  case 0:
7411
- return [4
7412
- /*yield*/
7413
- , this.clientsQueue.get(clientId, function () {
7460
+ return [4 /*yield*/, this.clientsQueue.get(clientId, function () {
7414
7461
  return null;
7415
7462
  })];
7416
-
7417
7463
  case 1:
7418
7464
  client = _a.sent();
7419
- return [4
7420
- /*yield*/
7421
- , _super.prototype.disconnect.call(this, clientId)];
7422
-
7465
+ return [4 /*yield*/, _super.prototype.disconnect.call(this, clientId)];
7423
7466
  case 2:
7424
7467
  _a.sent();
7425
-
7426
7468
  this._cleanUp(clientId);
7427
-
7428
- return [2
7429
- /*return*/
7430
- ];
7469
+ return [2 /*return*/];
7431
7470
  }
7432
7471
  });
7433
7472
  });
@@ -7435,22 +7474,17 @@ function (_super) {
7435
7474
 
7436
7475
  AWSAppSyncProvider.prototype.subscribe = function (topics, options) {
7437
7476
  var _this = this;
7438
-
7439
7477
  if (options === void 0) {
7440
7478
  options = {};
7441
7479
  }
7442
-
7443
- var result = new zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"](function (observer) {
7480
+ var result = new zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__["default"](function (observer) {
7444
7481
  var targetTopics = [].concat(topics);
7445
7482
  logger.debug('Subscribing to topic(s)', targetTopics.join(','));
7446
-
7447
7483
  (function () {
7448
- return __awaiter(_this, void 0, void 0, function () {
7484
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () {
7449
7485
  var _a, mqttConnections, newSubscriptions, newAliases, map;
7450
-
7451
7486
  var _this = this;
7452
-
7453
- return __generator(this, function (_b) {
7487
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) {
7454
7488
  switch (_b.label) {
7455
7489
  case 0:
7456
7490
  // Add these topics to map
@@ -7458,77 +7492,58 @@ function (_super) {
7458
7492
  if (!_this._topicObservers.has(t)) {
7459
7493
  _this._topicObservers.set(t, new Set());
7460
7494
  }
7461
-
7462
7495
  _this._topicObservers.get(t).add(observer);
7463
7496
  });
7464
7497
  _a = options.mqttConnections, mqttConnections = _a === void 0 ? [] : _a, newSubscriptions = options.newSubscriptions;
7465
7498
  newAliases = Object.entries(newSubscriptions).map(function (_a) {
7466
- var _b = __read(_a, 2),
7467
- alias = _b[0],
7468
- v = _b[1];
7469
-
7499
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2),
7500
+ alias = _b[0],
7501
+ v = _b[1];
7470
7502
  return [v.topic, alias];
7471
- }); // Merge new aliases with old ones
7472
-
7473
- this._topicAlias = new Map(__spread(Array.from(this._topicAlias.entries()), newAliases));
7503
+ });
7504
+ // Merge new aliases with old ones
7505
+ this._topicAlias = new Map(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(Array.from(this._topicAlias.entries()), newAliases));
7474
7506
  map = Object.entries(targetTopics.reduce(function (acc, elem) {
7475
7507
  var connectionInfoForTopic = mqttConnections.find(function (c) {
7476
7508
  return c.topics.indexOf(elem) > -1;
7477
7509
  });
7478
-
7479
7510
  if (connectionInfoForTopic) {
7480
7511
  var clientId = connectionInfoForTopic.client,
7481
- url = connectionInfoForTopic.url;
7482
-
7512
+ url = connectionInfoForTopic.url;
7483
7513
  if (!acc[clientId]) {
7484
7514
  acc[clientId] = {
7485
7515
  url: url,
7486
7516
  topics: new Set()
7487
7517
  };
7488
7518
  }
7489
-
7490
7519
  acc[clientId].topics.add(elem);
7491
7520
  }
7492
-
7493
7521
  return acc;
7494
- }, {})); // reconnect everything we have in the map
7495
-
7496
- return [4
7497
- /*yield*/
7498
- , Promise.all(map.map(function (_a) {
7499
- var _b = __read(_a, 2),
7500
- clientId = _b[0],
7501
- _c = _b[1],
7502
- url = _c.url,
7503
- topics = _c.topics;
7504
-
7505
- return __awaiter(_this, void 0, void 0, function () {
7522
+ }, {}));
7523
+ // reconnect everything we have in the map
7524
+ return [4 /*yield*/, Promise.all(map.map(function (_a) {
7525
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2),
7526
+ clientId = _b[0],
7527
+ _c = _b[1],
7528
+ url = _c.url,
7529
+ topics = _c.topics;
7530
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () {
7506
7531
  var client, err_1;
7507
-
7508
7532
  var _this = this;
7509
-
7510
- return __generator(this, function (_d) {
7533
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_d) {
7511
7534
  switch (_d.label) {
7512
7535
  case 0:
7513
7536
  client = null;
7514
7537
  _d.label = 1;
7515
-
7516
7538
  case 1:
7517
7539
  _d.trys.push([1, 3,, 4]);
7518
-
7519
- return [4
7520
- /*yield*/
7521
- , this.connect(clientId, {
7540
+ return [4 /*yield*/, this.connect(clientId, {
7522
7541
  clientId: clientId,
7523
7542
  url: url
7524
7543
  })];
7525
-
7526
7544
  case 2:
7527
7545
  client = _d.sent();
7528
- return [3
7529
- /*break*/
7530
- , 4];
7531
-
7546
+ return [3 /*break*/, 4];
7532
7547
  case 3:
7533
7548
  err_1 = _d.sent();
7534
7549
  observer.error({
@@ -7536,35 +7551,25 @@ function (_super) {
7536
7551
  error: err_1
7537
7552
  });
7538
7553
  observer.complete();
7539
- return [2
7540
- /*return*/
7541
- , undefined];
7542
-
7554
+ return [2 /*return*/, undefined];
7543
7555
  case 4:
7544
7556
  // subscribe to all topics for this client
7545
7557
  // store topic-client mapping
7546
7558
  topics.forEach(function (topic) {
7547
7559
  if (client.isConnected()) {
7548
7560
  client.subscribe(topic);
7549
-
7550
7561
  _this._topicClient.set(topic, client);
7551
7562
  }
7552
7563
  });
7553
- return [2
7554
- /*return*/
7555
- , client];
7564
+ return [2 /*return*/, client];
7556
7565
  }
7557
7566
  });
7558
7567
  });
7559
7568
  }))];
7560
-
7561
7569
  case 1:
7562
7570
  // reconnect everything we have in the map
7563
7571
  _b.sent();
7564
-
7565
- return [2
7566
- /*return*/
7567
- ];
7572
+ return [2 /*return*/];
7568
7573
  }
7569
7574
  });
7570
7575
  });
@@ -7574,590 +7579,241 @@ function (_super) {
7574
7579
  logger.debug('Unsubscribing from topic(s)', targetTopics.join(','));
7575
7580
  targetTopics.forEach(function (t) {
7576
7581
  var client = _this._topicClient.get(t);
7577
-
7578
7582
  if (client && client.isConnected()) {
7579
7583
  client.unsubscribe(t);
7580
-
7581
7584
  _this._topicClient["delete"](t);
7582
-
7583
7585
  if (!Array.from(_this._topicClient.values()).some(function (c) {
7584
7586
  return c === client;
7585
7587
  })) {
7586
7588
  _this.disconnect(client.clientId);
7587
7589
  }
7588
7590
  }
7589
-
7590
7591
  _this._topicObservers["delete"](t);
7591
7592
  });
7592
7593
  };
7593
7594
  });
7594
- return zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].from(result).map(function (value) {
7595
+ return zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__["default"].from(result).map(function (value) {
7595
7596
  var topic = _this.getTopicForValue(value);
7596
-
7597
7597
  var alias = _this._topicAlias.get(topic);
7598
-
7599
7598
  value.data = Object.entries(value.data).reduce(function (obj, _a) {
7600
- var _b = __read(_a, 2),
7601
- origKey = _b[0],
7602
- val = _b[1];
7603
-
7599
+ var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2),
7600
+ origKey = _b[0],
7601
+ val = _b[1];
7604
7602
  return obj[alias || origKey] = val, obj;
7605
7603
  }, {});
7606
7604
  return value;
7607
7605
  });
7608
7606
  };
7609
-
7610
7607
  return AWSAppSyncProvider;
7611
- }(_MqttOverWSProvider__WEBPACK_IMPORTED_MODULE_2__["MqttOverWSProvider"]);
7612
-
7608
+ }(_MqttOverWSProvider__WEBPACK_IMPORTED_MODULE_3__["MqttOverWSProvider"]);
7613
7609
 
7614
7610
 
7615
7611
  /***/ }),
7616
7612
 
7617
- /***/ "./lib-esm/Providers/AWSAppSyncRealTimeProvider/constants.js":
7618
- /*!*******************************************************************!*\
7619
- !*** ./lib-esm/Providers/AWSAppSyncRealTimeProvider/constants.js ***!
7620
- \*******************************************************************/
7621
- /*! exports provided: MAX_DELAY_MS, NON_RETRYABLE_CODES, MESSAGE_TYPES, SUBSCRIPTION_STATUS, SOCKET_STATUS, AMPLIFY_SYMBOL, AWS_APPSYNC_REALTIME_HEADERS, CONNECTION_INIT_TIMEOUT, START_ACK_TIMEOUT, DEFAULT_KEEP_ALIVE_TIMEOUT, DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT */
7613
+ /***/ "./lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js":
7614
+ /*!***************************************************************!*\
7615
+ !*** ./lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js ***!
7616
+ \***************************************************************/
7617
+ /*! exports provided: AWSAppSyncRealTimeProvider */
7622
7618
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7623
7619
 
7624
7620
  "use strict";
7625
7621
  __webpack_require__.r(__webpack_exports__);
7626
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAX_DELAY_MS", function() { return MAX_DELAY_MS; });
7627
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NON_RETRYABLE_CODES", function() { return NON_RETRYABLE_CODES; });
7628
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MESSAGE_TYPES", function() { return MESSAGE_TYPES; });
7629
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SUBSCRIPTION_STATUS", function() { return SUBSCRIPTION_STATUS; });
7630
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SOCKET_STATUS", function() { return SOCKET_STATUS; });
7631
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AMPLIFY_SYMBOL", function() { return AMPLIFY_SYMBOL; });
7632
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AWS_APPSYNC_REALTIME_HEADERS", function() { return AWS_APPSYNC_REALTIME_HEADERS; });
7633
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CONNECTION_INIT_TIMEOUT", function() { return CONNECTION_INIT_TIMEOUT; });
7634
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "START_ACK_TIMEOUT", function() { return START_ACK_TIMEOUT; });
7635
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_KEEP_ALIVE_TIMEOUT", function() { return DEFAULT_KEEP_ALIVE_TIMEOUT; });
7636
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT", function() { return DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT; });
7637
- var MAX_DELAY_MS = 5000;
7638
- var NON_RETRYABLE_CODES = [400, 401, 403];
7639
- var MESSAGE_TYPES;
7622
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AWSAppSyncRealTimeProvider", function() { return AWSAppSyncRealTimeProvider; });
7623
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
7624
+ /* harmony import */ var zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! zen-observable-ts */ "../../node_modules/zen-observable-ts/lib/bundle.esm.js");
7625
+ /* harmony import */ var graphql__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! graphql */ "graphql");
7626
+ /* harmony import */ var graphql__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(graphql__WEBPACK_IMPORTED_MODULE_2__);
7627
+ /* harmony import */ var url__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! url */ "../../node_modules/url/url.js");
7628
+ /* harmony import */ var url__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_3__);
7629
+ /* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! uuid */ "../../node_modules/uuid/index.js");
7630
+ /* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(uuid__WEBPACK_IMPORTED_MODULE_4__);
7631
+ /* harmony import */ var buffer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! buffer */ "../../node_modules/buffer/index.js");
7632
+ /* harmony import */ var buffer__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(buffer__WEBPACK_IMPORTED_MODULE_5__);
7633
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
7634
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__);
7635
+ /* harmony import */ var _aws_amplify_cache__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @aws-amplify/cache */ "@aws-amplify/cache");
7636
+ /* harmony import */ var _aws_amplify_cache__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_cache__WEBPACK_IMPORTED_MODULE_7__);
7637
+ /* harmony import */ var _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @aws-amplify/auth */ "@aws-amplify/auth");
7638
+ /* harmony import */ var _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_auth__WEBPACK_IMPORTED_MODULE_8__);
7639
+ /* harmony import */ var _PubSubProvider__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../PubSubProvider */ "./lib-esm/Providers/PubSubProvider.js");
7640
+ /* harmony import */ var _types_PubSub__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../types/PubSub */ "./lib-esm/types/PubSub.js");
7641
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../constants */ "./lib-esm/Providers/constants.js");
7642
+ /* harmony import */ var _utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../utils/ConnectionStateMonitor */ "./lib-esm/utils/ConnectionStateMonitor.js");
7643
+ /* harmony import */ var _utils_ReconnectionMonitor__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../utils/ReconnectionMonitor */ "./lib-esm/utils/ReconnectionMonitor.js");
7640
7644
 
7641
- (function (MESSAGE_TYPES) {
7642
- /**
7643
- * Client -> Server message.
7644
- * This message type is the first message after handshake and this will initialize AWS AppSync RealTime communication
7645
- */
7646
- MESSAGE_TYPES["GQL_CONNECTION_INIT"] = "connection_init";
7647
- /**
7648
- * Server -> Client message
7649
- * This message type is in case there is an issue with AWS AppSync RealTime when establishing connection
7650
- */
7645
+ /*
7646
+ * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
7647
+ *
7648
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
7649
+ * the License. A copy of the License is located at
7650
+ *
7651
+ * http://aws.amazon.com/apache2.0/
7652
+ *
7653
+ * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
7654
+ * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
7655
+ * and limitations under the License.
7656
+ */
7651
7657
 
7652
- MESSAGE_TYPES["GQL_CONNECTION_ERROR"] = "connection_error";
7653
- /**
7654
- * Server -> Client message.
7655
- * This message type is for the ack response from AWS AppSync RealTime for GQL_CONNECTION_INIT message
7656
- */
7657
7658
 
7658
- MESSAGE_TYPES["GQL_CONNECTION_ACK"] = "connection_ack";
7659
- /**
7660
- * Client -> Server message.
7661
- * This message type is for register subscriptions with AWS AppSync RealTime
7662
- */
7663
7659
 
7664
- MESSAGE_TYPES["GQL_START"] = "start";
7665
- /**
7666
- * Server -> Client message.
7667
- * This message type is for the ack response from AWS AppSync RealTime for GQL_START message
7668
- */
7669
7660
 
7670
- MESSAGE_TYPES["GQL_START_ACK"] = "start_ack";
7671
- /**
7672
- * Server -> Client message.
7673
- * This message type is for subscription message from AWS AppSync RealTime
7674
- */
7675
7661
 
7676
- MESSAGE_TYPES["GQL_DATA"] = "data";
7677
- /**
7678
- * Server -> Client message.
7679
- * This message type helps the client to know is still receiving messages from AWS AppSync RealTime
7680
- */
7681
7662
 
7682
- MESSAGE_TYPES["GQL_CONNECTION_KEEP_ALIVE"] = "ka";
7683
- /**
7684
- * Client -> Server message.
7685
- * This message type is for unregister subscriptions with AWS AppSync RealTime
7686
- */
7687
7663
 
7688
- MESSAGE_TYPES["GQL_STOP"] = "stop";
7689
- /**
7690
- * Server -> Client message.
7691
- * This message type is for the ack response from AWS AppSync RealTime for GQL_STOP message
7692
- */
7693
7664
 
7694
- MESSAGE_TYPES["GQL_COMPLETE"] = "complete";
7695
- /**
7696
- * Server -> Client message.
7697
- * This message type is for sending error messages from AWS AppSync RealTime to the client
7698
- */
7699
7665
 
7700
- MESSAGE_TYPES["GQL_ERROR"] = "error";
7701
- })(MESSAGE_TYPES || (MESSAGE_TYPES = {}));
7702
7666
 
7703
- var SUBSCRIPTION_STATUS;
7704
7667
 
7705
- (function (SUBSCRIPTION_STATUS) {
7706
- SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS["PENDING"] = 0] = "PENDING";
7707
- SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS["CONNECTED"] = 1] = "CONNECTED";
7708
- SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS["FAILED"] = 2] = "FAILED";
7709
- })(SUBSCRIPTION_STATUS || (SUBSCRIPTION_STATUS = {}));
7710
7668
 
7711
- var SOCKET_STATUS;
7712
-
7713
- (function (SOCKET_STATUS) {
7714
- SOCKET_STATUS[SOCKET_STATUS["CLOSED"] = 0] = "CLOSED";
7715
- SOCKET_STATUS[SOCKET_STATUS["READY"] = 1] = "READY";
7716
- SOCKET_STATUS[SOCKET_STATUS["CONNECTING"] = 2] = "CONNECTING";
7717
- })(SOCKET_STATUS || (SOCKET_STATUS = {}));
7718
-
7719
- var AMPLIFY_SYMBOL = typeof Symbol !== 'undefined' && typeof Symbol["for"] === 'function' ? Symbol["for"]('amplify_default') : '@@amplify_default';
7720
- var AWS_APPSYNC_REALTIME_HEADERS = {
7721
- accept: 'application/json, text/javascript',
7722
- 'content-encoding': 'amz-1.0',
7723
- 'content-type': 'application/json; charset=UTF-8'
7724
- };
7725
- /**
7726
- * Time in milleseconds to wait for GQL_CONNECTION_INIT message
7727
- */
7728
-
7729
- var CONNECTION_INIT_TIMEOUT = 15000;
7730
- /**
7731
- * Time in milleseconds to wait for GQL_START_ACK message
7732
- */
7733
-
7734
- var START_ACK_TIMEOUT = 15000;
7735
- /**
7736
- * Default Time in milleseconds to wait for GQL_CONNECTION_KEEP_ALIVE message
7737
- */
7738
-
7739
- var DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;
7740
- /**
7741
- * Default Time in milleseconds to alert for missed GQL_CONNECTION_KEEP_ALIVE message
7742
- */
7743
-
7744
- var DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT = 65 * 1000;
7745
-
7746
- /***/ }),
7747
-
7748
- /***/ "./lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js":
7749
- /*!***************************************************************!*\
7750
- !*** ./lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js ***!
7751
- \***************************************************************/
7752
- /*! exports provided: AWSAppSyncRealTimeProvider */
7753
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
7754
-
7755
- "use strict";
7756
- __webpack_require__.r(__webpack_exports__);
7757
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AWSAppSyncRealTimeProvider", function() { return AWSAppSyncRealTimeProvider; });
7758
- /* harmony import */ var zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zen-observable-ts */ "../../node_modules/zen-observable-ts/lib/bundle.esm.js");
7759
- /* harmony import */ var graphql__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! graphql */ "graphql");
7760
- /* harmony import */ var graphql__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(graphql__WEBPACK_IMPORTED_MODULE_1__);
7761
- /* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! url */ "../../node_modules/url/url.js");
7762
- /* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_2__);
7763
- /* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! uuid */ "../../node_modules/uuid/index.js");
7764
- /* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(uuid__WEBPACK_IMPORTED_MODULE_3__);
7765
- /* harmony import */ var buffer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! buffer */ "../../node_modules/buffer/index.js");
7766
- /* harmony import */ var buffer__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(buffer__WEBPACK_IMPORTED_MODULE_4__);
7767
- /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
7768
- /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_5__);
7769
- /* harmony import */ var _aws_amplify_cache__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @aws-amplify/cache */ "@aws-amplify/cache");
7770
- /* harmony import */ var _aws_amplify_cache__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_cache__WEBPACK_IMPORTED_MODULE_6__);
7771
- /* harmony import */ var _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @aws-amplify/auth */ "@aws-amplify/auth");
7772
- /* harmony import */ var _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_auth__WEBPACK_IMPORTED_MODULE_7__);
7773
- /* harmony import */ var _PubSubProvider__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../PubSubProvider */ "./lib-esm/Providers/PubSubProvider.js");
7774
- /* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../index */ "./lib-esm/index.js");
7775
- /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./constants */ "./lib-esm/Providers/AWSAppSyncRealTimeProvider/constants.js");
7776
- /* harmony import */ var _utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../utils/ConnectionStateMonitor */ "./lib-esm/utils/ConnectionStateMonitor.js");
7777
- var __extends = undefined && undefined.__extends || function () {
7778
- var _extendStatics = function extendStatics(d, b) {
7779
- _extendStatics = Object.setPrototypeOf || {
7780
- __proto__: []
7781
- } instanceof Array && function (d, b) {
7782
- d.__proto__ = b;
7783
- } || function (d, b) {
7784
- for (var p in b) {
7785
- if (b.hasOwnProperty(p)) d[p] = b[p];
7786
- }
7787
- };
7788
-
7789
- return _extendStatics(d, b);
7790
- };
7791
-
7792
- return function (d, b) {
7793
- _extendStatics(d, b);
7794
-
7795
- function __() {
7796
- this.constructor = d;
7797
- }
7798
-
7799
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
7800
- };
7801
- }();
7802
-
7803
- var __assign = undefined && undefined.__assign || function () {
7804
- __assign = Object.assign || function (t) {
7805
- for (var s, i = 1, n = arguments.length; i < n; i++) {
7806
- s = arguments[i];
7807
-
7808
- for (var p in s) {
7809
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
7810
- }
7811
- }
7812
-
7813
- return t;
7814
- };
7815
-
7816
- return __assign.apply(this, arguments);
7817
- };
7818
-
7819
- var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
7820
- function adopt(value) {
7821
- return value instanceof P ? value : new P(function (resolve) {
7822
- resolve(value);
7823
- });
7824
- }
7825
-
7826
- return new (P || (P = Promise))(function (resolve, reject) {
7827
- function fulfilled(value) {
7828
- try {
7829
- step(generator.next(value));
7830
- } catch (e) {
7831
- reject(e);
7832
- }
7833
- }
7834
-
7835
- function rejected(value) {
7836
- try {
7837
- step(generator["throw"](value));
7838
- } catch (e) {
7839
- reject(e);
7840
- }
7841
- }
7842
-
7843
- function step(result) {
7844
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
7845
- }
7846
-
7847
- step((generator = generator.apply(thisArg, _arguments || [])).next());
7848
- });
7849
- };
7850
-
7851
- var __generator = undefined && undefined.__generator || function (thisArg, body) {
7852
- var _ = {
7853
- label: 0,
7854
- sent: function sent() {
7855
- if (t[0] & 1) throw t[1];
7856
- return t[1];
7857
- },
7858
- trys: [],
7859
- ops: []
7860
- },
7861
- f,
7862
- y,
7863
- t,
7864
- g;
7865
- return g = {
7866
- next: verb(0),
7867
- "throw": verb(1),
7868
- "return": verb(2)
7869
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
7870
- return this;
7871
- }), g;
7872
-
7873
- function verb(n) {
7874
- return function (v) {
7875
- return step([n, v]);
7876
- };
7877
- }
7878
-
7879
- function step(op) {
7880
- if (f) throw new TypeError("Generator is already executing.");
7881
-
7882
- while (_) {
7883
- try {
7884
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
7885
- if (y = 0, t) op = [op[0] & 2, t.value];
7886
-
7887
- switch (op[0]) {
7888
- case 0:
7889
- case 1:
7890
- t = op;
7891
- break;
7892
-
7893
- case 4:
7894
- _.label++;
7895
- return {
7896
- value: op[1],
7897
- done: false
7898
- };
7899
-
7900
- case 5:
7901
- _.label++;
7902
- y = op[1];
7903
- op = [0];
7904
- continue;
7905
-
7906
- case 7:
7907
- op = _.ops.pop();
7908
-
7909
- _.trys.pop();
7910
-
7911
- continue;
7912
-
7913
- default:
7914
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
7915
- _ = 0;
7916
- continue;
7917
- }
7918
-
7919
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
7920
- _.label = op[1];
7921
- break;
7922
- }
7923
-
7924
- if (op[0] === 6 && _.label < t[1]) {
7925
- _.label = t[1];
7926
- t = op;
7927
- break;
7928
- }
7929
-
7930
- if (t && _.label < t[2]) {
7931
- _.label = t[2];
7932
-
7933
- _.ops.push(op);
7934
-
7935
- break;
7936
- }
7937
-
7938
- if (t[2]) _.ops.pop();
7939
-
7940
- _.trys.pop();
7941
-
7942
- continue;
7943
- }
7944
-
7945
- op = body.call(thisArg, _);
7946
- } catch (e) {
7947
- op = [6, e];
7948
- y = 0;
7949
- } finally {
7950
- f = t = 0;
7951
- }
7952
- }
7953
-
7954
- if (op[0] & 5) throw op[1];
7955
- return {
7956
- value: op[0] ? op[1] : void 0,
7957
- done: true
7958
- };
7959
- }
7960
- };
7961
-
7962
- var __read = undefined && undefined.__read || function (o, n) {
7963
- var m = typeof Symbol === "function" && o[Symbol.iterator];
7964
- if (!m) return o;
7965
- var i = m.call(o),
7966
- r,
7967
- ar = [],
7968
- e;
7969
-
7970
- try {
7971
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
7972
- ar.push(r.value);
7973
- }
7974
- } catch (error) {
7975
- e = {
7976
- error: error
7977
- };
7978
- } finally {
7979
- try {
7980
- if (r && !r.done && (m = i["return"])) m.call(i);
7981
- } finally {
7982
- if (e) throw e.error;
7983
- }
7984
- }
7985
-
7986
- return ar;
7987
- };
7988
- /*
7989
- * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
7990
- *
7991
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
7992
- * the License. A copy of the License is located at
7993
- *
7994
- * http://aws.amazon.com/apache2.0/
7995
- *
7996
- * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
7997
- * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
7998
- * and limitations under the License.
7999
- */
8000
-
8001
-
8002
-
8003
-
8004
-
8005
-
8006
-
8007
-
8008
-
8009
-
8010
-
8011
-
8012
-
8013
-
8014
- var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_5__["Logger"]('AWSAppSyncRealTimeProvider');
8015
7669
 
7670
+ var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__["Logger"]('AWSAppSyncRealTimeProvider');
8016
7671
  var dispatchApiEvent = function dispatchApiEvent(event, data, message) {
8017
- _aws_amplify_core__WEBPACK_IMPORTED_MODULE_5__["Hub"].dispatch('api', {
7672
+ _aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__["Hub"].dispatch('api', {
8018
7673
  event: event,
8019
7674
  data: data,
8020
7675
  message: message
8021
- }, 'PubSub', _constants__WEBPACK_IMPORTED_MODULE_10__["AMPLIFY_SYMBOL"]);
7676
+ }, 'PubSub', _constants__WEBPACK_IMPORTED_MODULE_11__["AMPLIFY_SYMBOL"]);
8022
7677
  };
8023
-
8024
7678
  var standardDomainPattern = /^https:\/\/\w{26}\.appsync\-api\.\w{2}(?:(?:\-\w{2,})+)\-\d\.amazonaws.com\/graphql$/i;
8025
7679
  var customDomainPath = '/realtime';
8026
-
8027
- var AWSAppSyncRealTimeProvider =
8028
- /** @class */
8029
- function (_super) {
8030
- __extends(AWSAppSyncRealTimeProvider, _super);
8031
-
7680
+ var AWSAppSyncRealTimeProvider = /** @class */function (_super) {
7681
+ Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AWSAppSyncRealTimeProvider, _super);
8032
7682
  function AWSAppSyncRealTimeProvider(options) {
8033
7683
  if (options === void 0) {
8034
7684
  options = {};
8035
7685
  }
8036
-
8037
7686
  var _this = _super.call(this, options) || this;
8038
-
8039
- _this.socketStatus = _constants__WEBPACK_IMPORTED_MODULE_10__["SOCKET_STATUS"].CLOSED;
8040
- _this.keepAliveTimeout = _constants__WEBPACK_IMPORTED_MODULE_10__["DEFAULT_KEEP_ALIVE_TIMEOUT"];
7687
+ _this.socketStatus = _constants__WEBPACK_IMPORTED_MODULE_11__["SOCKET_STATUS"].CLOSED;
7688
+ _this.keepAliveTimeout = _constants__WEBPACK_IMPORTED_MODULE_11__["DEFAULT_KEEP_ALIVE_TIMEOUT"];
8041
7689
  _this.subscriptionObserverMap = new Map();
8042
7690
  _this.promiseArray = [];
8043
- _this.connectionStateMonitor = new _utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_11__["ConnectionStateMonitor"](); // Monitor the connection state and pass changes along to Hub
8044
-
8045
- _this.connectionStateMonitor.connectionStateObservable.subscribe(function (ConnectionState) {
8046
- dispatchApiEvent(_index__WEBPACK_IMPORTED_MODULE_9__["CONNECTION_STATE_CHANGE"], {
7691
+ _this.connectionStateMonitor = new _utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_12__["ConnectionStateMonitor"]();
7692
+ _this.reconnectionMonitor = new _utils_ReconnectionMonitor__WEBPACK_IMPORTED_MODULE_13__["ReconnectionMonitor"]();
7693
+ // Monitor the connection state and pass changes along to Hub
7694
+ _this.connectionStateMonitorSubscription = _this.connectionStateMonitor.connectionStateObservable.subscribe(function (connectionState) {
7695
+ dispatchApiEvent(_constants__WEBPACK_IMPORTED_MODULE_11__["CONNECTION_STATE_CHANGE"], {
8047
7696
  provider: _this,
8048
- connectionState: ConnectionState
8049
- }, "Connection state is " + ConnectionState);
7697
+ connectionState: connectionState
7698
+ }, "Connection state is " + connectionState);
7699
+ _this.connectionState = connectionState;
7700
+ // Trigger START_RECONNECT when the connection is disrupted
7701
+ if (connectionState === _types_PubSub__WEBPACK_IMPORTED_MODULE_10__["ConnectionState"].ConnectionDisrupted) {
7702
+ _this.reconnectionMonitor.record(_utils_ReconnectionMonitor__WEBPACK_IMPORTED_MODULE_13__["ReconnectEvent"].START_RECONNECT);
7703
+ }
7704
+ // Trigger HALT_RECONNECT to halt reconnection attempts when the state is anything other than
7705
+ // ConnectionDisrupted or Connecting
7706
+ if ([_types_PubSub__WEBPACK_IMPORTED_MODULE_10__["ConnectionState"].Connected, _types_PubSub__WEBPACK_IMPORTED_MODULE_10__["ConnectionState"].ConnectedPendingDisconnect, _types_PubSub__WEBPACK_IMPORTED_MODULE_10__["ConnectionState"].ConnectedPendingKeepAlive, _types_PubSub__WEBPACK_IMPORTED_MODULE_10__["ConnectionState"].ConnectedPendingNetwork, _types_PubSub__WEBPACK_IMPORTED_MODULE_10__["ConnectionState"].ConnectedPendingNetwork, _types_PubSub__WEBPACK_IMPORTED_MODULE_10__["ConnectionState"].ConnectionDisruptedPendingNetwork, _types_PubSub__WEBPACK_IMPORTED_MODULE_10__["ConnectionState"].Disconnected].includes(connectionState)) {
7707
+ _this.reconnectionMonitor.record(_utils_ReconnectionMonitor__WEBPACK_IMPORTED_MODULE_13__["ReconnectEvent"].HALT_RECONNECT);
7708
+ }
8050
7709
  });
8051
-
8052
7710
  return _this;
8053
7711
  }
8054
-
7712
+ /**
7713
+ * Mark the socket closed and release all active listeners
7714
+ */
7715
+ AWSAppSyncRealTimeProvider.prototype.close = function () {
7716
+ // Mark the socket closed both in status and the connection monitor
7717
+ this.socketStatus = _constants__WEBPACK_IMPORTED_MODULE_11__["SOCKET_STATUS"].CLOSED;
7718
+ this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_12__["CONNECTION_CHANGE"].CONNECTION_FAILED);
7719
+ // Turn off the subscription monitor Hub publishing
7720
+ this.connectionStateMonitorSubscription.unsubscribe();
7721
+ // Complete all reconnect observers
7722
+ this.reconnectionMonitor.close();
7723
+ };
8055
7724
  AWSAppSyncRealTimeProvider.prototype.getNewWebSocket = function (url, protocol) {
8056
7725
  return new WebSocket(url, protocol);
8057
7726
  };
8058
-
8059
7727
  AWSAppSyncRealTimeProvider.prototype.getProviderName = function () {
8060
7728
  return 'AWSAppSyncRealTimeProvider';
8061
7729
  };
8062
-
8063
7730
  AWSAppSyncRealTimeProvider.prototype.newClient = function () {
8064
7731
  throw new Error('Not used here');
8065
7732
  };
8066
-
8067
7733
  AWSAppSyncRealTimeProvider.prototype.publish = function (_topics, _msg, _options) {
8068
- return __awaiter(this, void 0, void 0, function () {
8069
- return __generator(this, function (_a) {
7734
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
7735
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
8070
7736
  throw new Error('Operation not supported');
8071
7737
  });
8072
7738
  });
8073
- }; // Check if url matches standard domain pattern
8074
-
8075
-
7739
+ };
7740
+ // Check if url matches standard domain pattern
8076
7741
  AWSAppSyncRealTimeProvider.prototype.isCustomDomain = function (url) {
8077
7742
  return url.match(standardDomainPattern) === null;
8078
7743
  };
8079
-
8080
7744
  AWSAppSyncRealTimeProvider.prototype.subscribe = function (_topics, options) {
8081
7745
  var _this = this;
8082
-
8083
7746
  var appSyncGraphqlEndpoint = options === null || options === void 0 ? void 0 : options.appSyncGraphqlEndpoint;
8084
- return new zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"](function (observer) {
7747
+ return new zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__["default"](function (observer) {
8085
7748
  if (!options || !appSyncGraphqlEndpoint) {
8086
7749
  observer.error({
8087
- errors: [__assign({}, new graphql__WEBPACK_IMPORTED_MODULE_1__["GraphQLError"]("Subscribe only available for AWS AppSync endpoint"))]
7750
+ errors: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, new graphql__WEBPACK_IMPORTED_MODULE_2__["GraphQLError"]("Subscribe only available for AWS AppSync endpoint"))]
8088
7751
  });
8089
7752
  observer.complete();
8090
7753
  } else {
8091
- var subscriptionId_1 = Object(uuid__WEBPACK_IMPORTED_MODULE_3__["v4"])();
8092
-
8093
- _this._startSubscriptionWithAWSAppSyncRealTime({
8094
- options: options,
8095
- observer: observer,
8096
- subscriptionId: subscriptionId_1
8097
- })["catch"](function (err) {
8098
- observer.error({
8099
- errors: [__assign({}, new graphql__WEBPACK_IMPORTED_MODULE_1__["GraphQLError"](_index__WEBPACK_IMPORTED_MODULE_9__["CONTROL_MSG"].REALTIME_SUBSCRIPTION_INIT_ERROR + ": " + err))]
8100
- });
8101
-
8102
- _this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_11__["CONNECTION_CHANGE"].CLOSED);
8103
-
8104
- observer.complete();
7754
+ var subscriptionStartActive_1 = false;
7755
+ var subscriptionId_1 = Object(uuid__WEBPACK_IMPORTED_MODULE_4__["v4"])();
7756
+ var startSubscription_1 = function startSubscription_1() {
7757
+ if (!subscriptionStartActive_1) {
7758
+ subscriptionStartActive_1 = true;
7759
+ var startSubscriptionPromise = _this._startSubscriptionWithAWSAppSyncRealTime({
7760
+ options: options,
7761
+ observer: observer,
7762
+ subscriptionId: subscriptionId_1
7763
+ })["catch"](function (err) {
7764
+ logger.debug(_types_PubSub__WEBPACK_IMPORTED_MODULE_10__["CONTROL_MSG"].REALTIME_SUBSCRIPTION_INIT_ERROR + ": " + err);
7765
+ _this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_12__["CONNECTION_CHANGE"].CLOSED);
7766
+ });
7767
+ startSubscriptionPromise["finally"](function () {
7768
+ subscriptionStartActive_1 = false;
7769
+ });
7770
+ }
7771
+ };
7772
+ var reconnectSubscription_1;
7773
+ // Add an observable to the reconnection list to manage reconnection for this subscription
7774
+ reconnectSubscription_1 = new zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__["default"](function (observer) {
7775
+ _this.reconnectionMonitor.addObserver(observer);
7776
+ }).subscribe(function () {
7777
+ startSubscription_1();
8105
7778
  });
8106
-
7779
+ startSubscription_1();
8107
7780
  return function () {
8108
- return __awaiter(_this, void 0, void 0, function () {
7781
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () {
8109
7782
  var subscriptionState, err_1;
8110
- return __generator(this, function (_a) {
7783
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
8111
7784
  switch (_a.label) {
8112
7785
  case 0:
8113
- _a.trys.push([0, 2, 3, 4]); // Waiting that subscription has been connected before trying to unsubscribe
8114
-
8115
-
8116
- return [4
8117
- /*yield*/
8118
- , this._waitForSubscriptionToBeConnected(subscriptionId_1)];
8119
-
7786
+ // Cleanup reconnection subscription
7787
+ reconnectSubscription_1 === null || reconnectSubscription_1 === void 0 ? void 0 : reconnectSubscription_1.unsubscribe();
7788
+ _a.label = 1;
8120
7789
  case 1:
7790
+ _a.trys.push([1, 3, 4, 5]);
7791
+ // Waiting that subscription has been connected before trying to unsubscribe
7792
+ return [4 /*yield*/, this._waitForSubscriptionToBeConnected(subscriptionId_1)];
7793
+ case 2:
8121
7794
  // Waiting that subscription has been connected before trying to unsubscribe
8122
7795
  _a.sent();
8123
-
8124
7796
  subscriptionState = (this.subscriptionObserverMap.get(subscriptionId_1) || {}).subscriptionState;
8125
-
8126
7797
  if (!subscriptionState) {
8127
7798
  // subscription already unsubscribed
8128
- return [2
8129
- /*return*/
8130
- ];
7799
+ return [2 /*return*/];
8131
7800
  }
8132
7801
 
8133
- if (subscriptionState === _constants__WEBPACK_IMPORTED_MODULE_10__["SUBSCRIPTION_STATUS"].CONNECTED) {
7802
+ if (subscriptionState === _constants__WEBPACK_IMPORTED_MODULE_11__["SUBSCRIPTION_STATUS"].CONNECTED) {
8134
7803
  this._sendUnsubscriptionMessage(subscriptionId_1);
8135
7804
  } else {
8136
7805
  throw new Error('Subscription never connected');
8137
7806
  }
8138
-
8139
- return [3
8140
- /*break*/
8141
- , 4];
8142
-
8143
- case 2:
7807
+ return [3 /*break*/, 5];
7808
+ case 3:
8144
7809
  err_1 = _a.sent();
8145
7810
  logger.debug("Error while unsubscribing " + err_1);
8146
- return [3
8147
- /*break*/
8148
- , 4];
8149
-
8150
- case 3:
8151
- this._removeSubscriptionObserver(subscriptionId_1);
8152
-
8153
- return [7
8154
- /*endfinally*/
8155
- ];
8156
-
7811
+ return [3 /*break*/, 5];
8157
7812
  case 4:
8158
- return [2
8159
- /*return*/
8160
- ];
7813
+ this._removeSubscriptionObserver(subscriptionId_1);
7814
+ return [7 /*endfinally*/];
7815
+ case 5:
7816
+ return [2 /*return*/];
8161
7817
  }
8162
7818
  });
8163
7819
  });
@@ -8173,33 +7829,27 @@ function (_super) {
8173
7829
  enumerable: true,
8174
7830
  configurable: true
8175
7831
  });
8176
-
8177
7832
  AWSAppSyncRealTimeProvider.prototype._startSubscriptionWithAWSAppSyncRealTime = function (_a) {
8178
7833
  var options = _a.options,
8179
- observer = _a.observer,
8180
- subscriptionId = _a.subscriptionId;
8181
-
8182
- var _b, _c;
8183
-
8184
- return __awaiter(this, void 0, void 0, function () {
8185
- var appSyncGraphqlEndpoint, authenticationType, query, variables, apiKey, region, _d, graphql_headers, _e, additionalHeaders, subscriptionState, data, dataString, headerObj, _f, _g, subscriptionMessage, stringToAWSRealTime, err_2, message, subscriptionFailedCallback_1, _h, subscriptionFailedCallback, subscriptionReadyCallback;
8186
-
8187
- var _j;
8188
-
7834
+ observer = _a.observer,
7835
+ subscriptionId = _a.subscriptionId;
7836
+ var _b;
7837
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
7838
+ var appSyncGraphqlEndpoint, authenticationType, query, variables, apiKey, region, _c, graphql_headers, _d, additionalHeaders, subscriptionState, data, dataString, headerObj, _e, _f, subscriptionMessage, stringToAWSRealTime, err_2, _g, subscriptionFailedCallback, subscriptionReadyCallback;
7839
+ var _h;
8189
7840
  var _this = this;
8190
-
8191
- return __generator(this, function (_k) {
8192
- switch (_k.label) {
7841
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_j) {
7842
+ switch (_j.label) {
8193
7843
  case 0:
8194
- appSyncGraphqlEndpoint = options.appSyncGraphqlEndpoint, authenticationType = options.authenticationType, query = options.query, variables = options.variables, apiKey = options.apiKey, region = options.region, _d = options.graphql_headers, graphql_headers = _d === void 0 ? function () {
7844
+ appSyncGraphqlEndpoint = options.appSyncGraphqlEndpoint, authenticationType = options.authenticationType, query = options.query, variables = options.variables, apiKey = options.apiKey, region = options.region, _c = options.graphql_headers, graphql_headers = _c === void 0 ? function () {
8195
7845
  return {};
8196
- } : _d, _e = options.additionalHeaders, additionalHeaders = _e === void 0 ? {} : _e;
8197
- subscriptionState = _constants__WEBPACK_IMPORTED_MODULE_10__["SUBSCRIPTION_STATUS"].PENDING;
7846
+ } : _c, _d = options.additionalHeaders, additionalHeaders = _d === void 0 ? {} : _d;
7847
+ subscriptionState = _constants__WEBPACK_IMPORTED_MODULE_11__["SUBSCRIPTION_STATUS"].PENDING;
8198
7848
  data = {
8199
7849
  query: query,
8200
7850
  variables: variables
8201
- }; // Having a subscription id map will make it simple to forward messages received
8202
-
7851
+ };
7852
+ // Having a subscription id map will make it simple to forward messages received
8203
7853
  this.subscriptionObserverMap.set(subscriptionId, {
8204
7854
  observer: observer,
8205
7855
  query: query !== null && query !== void 0 ? query : '',
@@ -8208,10 +7858,8 @@ function (_super) {
8208
7858
  startAckTimeoutId: undefined
8209
7859
  });
8210
7860
  dataString = JSON.stringify(data);
8211
- _f = [{}];
8212
- return [4
8213
- /*yield*/
8214
- , this._awsRealTimeHeaderBasedAuth({
7861
+ _e = [{}];
7862
+ return [4 /*yield*/, this._awsRealTimeHeaderBasedAuth({
8215
7863
  apiKey: apiKey,
8216
7864
  appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,
8217
7865
  authenticationType: authenticationType,
@@ -8220,73 +7868,43 @@ function (_super) {
8220
7868
  region: region,
8221
7869
  additionalHeaders: additionalHeaders
8222
7870
  })];
8223
-
8224
7871
  case 1:
8225
- _g = [__assign.apply(void 0, _f.concat([_k.sent()]))];
8226
- return [4
8227
- /*yield*/
8228
- , graphql_headers()];
8229
-
7872
+ _f = [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([_j.sent()]))];
7873
+ return [4 /*yield*/, graphql_headers()];
8230
7874
  case 2:
8231
- headerObj = __assign.apply(void 0, [__assign.apply(void 0, [__assign.apply(void 0, _g.concat([_k.sent()])), additionalHeaders]), (_j = {}, _j[_aws_amplify_core__WEBPACK_IMPORTED_MODULE_5__["USER_AGENT_HEADER"]] = _aws_amplify_core__WEBPACK_IMPORTED_MODULE_5__["Constants"].userAgent, _j)]);
7875
+ headerObj = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([_j.sent()])), additionalHeaders]), (_h = {}, _h[_aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__["USER_AGENT_HEADER"]] = _aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__["Constants"].userAgent, _h)]);
8232
7876
  subscriptionMessage = {
8233
7877
  id: subscriptionId,
8234
7878
  payload: {
8235
7879
  data: dataString,
8236
7880
  extensions: {
8237
- authorization: __assign({}, headerObj)
7881
+ authorization: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, headerObj)
8238
7882
  }
8239
7883
  },
8240
- type: _constants__WEBPACK_IMPORTED_MODULE_10__["MESSAGE_TYPES"].GQL_START
7884
+ type: _constants__WEBPACK_IMPORTED_MODULE_11__["MESSAGE_TYPES"].GQL_START
8241
7885
  };
8242
7886
  stringToAWSRealTime = JSON.stringify(subscriptionMessage);
8243
- _k.label = 3;
8244
-
7887
+ _j.label = 3;
8245
7888
  case 3:
8246
- _k.trys.push([3, 5,, 6]);
8247
-
8248
- this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_11__["CONNECTION_CHANGE"].OPENING_CONNECTION);
8249
- return [4
8250
- /*yield*/
8251
- , this._initializeWebSocketConnection({
7889
+ _j.trys.push([3, 5,, 6]);
7890
+ this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_12__["CONNECTION_CHANGE"].OPENING_CONNECTION);
7891
+ return [4 /*yield*/, this._initializeWebSocketConnection({
8252
7892
  apiKey: apiKey,
8253
7893
  appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,
8254
7894
  authenticationType: authenticationType,
8255
7895
  region: region,
8256
7896
  additionalHeaders: additionalHeaders
8257
7897
  })];
8258
-
8259
7898
  case 4:
8260
- _k.sent();
8261
-
8262
- return [3
8263
- /*break*/
8264
- , 6];
8265
-
7899
+ _j.sent();
7900
+ return [3 /*break*/, 6];
8266
7901
  case 5:
8267
- err_2 = _k.sent();
8268
- logger.debug({
8269
- err: err_2
8270
- });
8271
- message = (_b = err_2['message']) !== null && _b !== void 0 ? _b : '';
8272
- this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_11__["CONNECTION_CHANGE"].CLOSED);
8273
- observer.error({
8274
- errors: [__assign({}, new graphql__WEBPACK_IMPORTED_MODULE_1__["GraphQLError"](_index__WEBPACK_IMPORTED_MODULE_9__["CONTROL_MSG"].CONNECTION_FAILED + ": " + message))]
8275
- });
8276
- observer.complete();
8277
- subscriptionFailedCallback_1 = (this.subscriptionObserverMap.get(subscriptionId) || {}).subscriptionFailedCallback; // Notify concurrent unsubscription
8278
-
8279
- if (typeof subscriptionFailedCallback_1 === 'function') {
8280
- subscriptionFailedCallback_1();
8281
- }
8282
-
8283
- return [2
8284
- /*return*/
8285
- ];
8286
-
7902
+ err_2 = _j.sent();
7903
+ this._logStartSubscriptionError(subscriptionId, observer, err_2);
7904
+ return [2 /*return*/];
8287
7905
  case 6:
8288
- _h = (_c = this.subscriptionObserverMap.get(subscriptionId)) !== null && _c !== void 0 ? _c : {}, subscriptionFailedCallback = _h.subscriptionFailedCallback, subscriptionReadyCallback = _h.subscriptionReadyCallback; // This must be done before sending the message in order to be listening immediately
8289
-
7906
+ _g = (_b = this.subscriptionObserverMap.get(subscriptionId)) !== null && _b !== void 0 ? _b : {}, subscriptionFailedCallback = _g.subscriptionFailedCallback, subscriptionReadyCallback = _g.subscriptionReadyCallback;
7907
+ // This must be done before sending the message in order to be listening immediately
8290
7908
  this.subscriptionObserverMap.set(subscriptionId, {
8291
7909
  observer: observer,
8292
7910
  subscriptionState: subscriptionState,
@@ -8296,43 +7914,58 @@ function (_super) {
8296
7914
  subscriptionFailedCallback: subscriptionFailedCallback,
8297
7915
  startAckTimeoutId: setTimeout(function () {
8298
7916
  _this._timeoutStartSubscriptionAck.call(_this, subscriptionId);
8299
- }, _constants__WEBPACK_IMPORTED_MODULE_10__["START_ACK_TIMEOUT"])
7917
+ }, _constants__WEBPACK_IMPORTED_MODULE_11__["START_ACK_TIMEOUT"])
8300
7918
  });
8301
-
8302
7919
  if (this.awsRealTimeSocket) {
8303
7920
  this.awsRealTimeSocket.send(stringToAWSRealTime);
8304
7921
  }
8305
-
8306
- return [2
8307
- /*return*/
8308
- ];
7922
+ return [2 /*return*/];
8309
7923
  }
8310
7924
  });
8311
7925
  });
8312
- }; // Waiting that subscription has been connected before trying to unsubscribe
8313
-
8314
-
7926
+ };
7927
+ // Log logic for start subscription failures
7928
+ AWSAppSyncRealTimeProvider.prototype._logStartSubscriptionError = function (subscriptionId, observer, err) {
7929
+ var _a;
7930
+ logger.debug({
7931
+ err: err
7932
+ });
7933
+ var message = (_a = err['message']) !== null && _a !== void 0 ? _a : '';
7934
+ // Resolving to give the state observer time to propogate the update
7935
+ Promise.resolve(this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_12__["CONNECTION_CHANGE"].CLOSED));
7936
+ // Capture the error only when the network didn't cause disruption
7937
+ if (this.connectionState !== _types_PubSub__WEBPACK_IMPORTED_MODULE_10__["ConnectionState"].ConnectionDisruptedPendingNetwork) {
7938
+ // When the error is non-retriable, error out the observable
7939
+ if (Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__["isNonRetryableError"])(err)) {
7940
+ observer.error({
7941
+ errors: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, new graphql__WEBPACK_IMPORTED_MODULE_2__["GraphQLError"](_types_PubSub__WEBPACK_IMPORTED_MODULE_10__["CONTROL_MSG"].CONNECTION_FAILED + ": " + message))]
7942
+ });
7943
+ } else {
7944
+ logger.debug(_types_PubSub__WEBPACK_IMPORTED_MODULE_10__["CONTROL_MSG"].CONNECTION_FAILED + ": " + message);
7945
+ }
7946
+ var subscriptionFailedCallback = (this.subscriptionObserverMap.get(subscriptionId) || {}).subscriptionFailedCallback;
7947
+ // Notify concurrent unsubscription
7948
+ if (typeof subscriptionFailedCallback === 'function') {
7949
+ subscriptionFailedCallback();
7950
+ }
7951
+ }
7952
+ };
7953
+ // Waiting that subscription has been connected before trying to unsubscribe
8315
7954
  AWSAppSyncRealTimeProvider.prototype._waitForSubscriptionToBeConnected = function (subscriptionId) {
8316
- return __awaiter(this, void 0, void 0, function () {
7955
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
8317
7956
  var subscriptionObserver, subscriptionState;
8318
-
8319
7957
  var _this = this;
8320
-
8321
- return __generator(this, function (_a) {
7958
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
8322
7959
  subscriptionObserver = this.subscriptionObserverMap.get(subscriptionId);
8323
-
8324
7960
  if (subscriptionObserver) {
8325
- subscriptionState = subscriptionObserver.subscriptionState; // This in case unsubscribe is invoked before sending start subscription message
8326
-
8327
- if (subscriptionState === _constants__WEBPACK_IMPORTED_MODULE_10__["SUBSCRIPTION_STATUS"].PENDING) {
8328
- return [2
8329
- /*return*/
8330
- , new Promise(function (res, rej) {
7961
+ subscriptionState = subscriptionObserver.subscriptionState;
7962
+ // This in case unsubscribe is invoked before sending start subscription message
7963
+ if (subscriptionState === _constants__WEBPACK_IMPORTED_MODULE_11__["SUBSCRIPTION_STATUS"].PENDING) {
7964
+ return [2 /*return*/, new Promise(function (res, rej) {
8331
7965
  var observer = subscriptionObserver.observer,
8332
- subscriptionState = subscriptionObserver.subscriptionState,
8333
- variables = subscriptionObserver.variables,
8334
- query = subscriptionObserver.query;
8335
-
7966
+ subscriptionState = subscriptionObserver.subscriptionState,
7967
+ variables = subscriptionObserver.variables,
7968
+ query = subscriptionObserver.query;
8336
7969
  _this.subscriptionObserverMap.set(subscriptionId, {
8337
7970
  observer: observer,
8338
7971
  subscriptionState: subscriptionState,
@@ -8344,21 +7977,18 @@ function (_super) {
8344
7977
  })];
8345
7978
  }
8346
7979
  }
8347
-
8348
- return [2
8349
- /*return*/
8350
- ];
7980
+ return [2 /*return*/];
8351
7981
  });
8352
7982
  });
8353
7983
  };
8354
7984
 
8355
7985
  AWSAppSyncRealTimeProvider.prototype._sendUnsubscriptionMessage = function (subscriptionId) {
8356
7986
  try {
8357
- if (this.awsRealTimeSocket && this.awsRealTimeSocket.readyState === WebSocket.OPEN && this.socketStatus === _constants__WEBPACK_IMPORTED_MODULE_10__["SOCKET_STATUS"].READY) {
7987
+ if (this.awsRealTimeSocket && this.awsRealTimeSocket.readyState === WebSocket.OPEN && this.socketStatus === _constants__WEBPACK_IMPORTED_MODULE_11__["SOCKET_STATUS"].READY) {
8358
7988
  // Preparing unsubscribe message to stop receiving messages for that subscription
8359
7989
  var unsubscribeMessage = {
8360
7990
  id: subscriptionId,
8361
- type: _constants__WEBPACK_IMPORTED_MODULE_10__["MESSAGE_TYPES"].GQL_STOP
7991
+ type: _constants__WEBPACK_IMPORTED_MODULE_11__["MESSAGE_TYPES"].GQL_STOP
8362
7992
  };
8363
7993
  var stringToAWSRealTime = JSON.stringify(unsubscribeMessage);
8364
7994
  this.awsRealTimeSocket.send(stringToAWSRealTime);
@@ -8370,107 +8000,88 @@ function (_super) {
8370
8000
  });
8371
8001
  }
8372
8002
  };
8373
-
8374
8003
  AWSAppSyncRealTimeProvider.prototype._removeSubscriptionObserver = function (subscriptionId) {
8375
- this.subscriptionObserverMap["delete"](subscriptionId); // Verifying 1000ms after removing subscription in case there are new subscription unmount/mount
8376
-
8004
+ this.subscriptionObserverMap["delete"](subscriptionId);
8005
+ // Verifying 1000ms after removing subscription in case there are new subscription unmount/mount
8377
8006
  setTimeout(this._closeSocketIfRequired.bind(this), 1000);
8378
8007
  };
8379
-
8380
8008
  AWSAppSyncRealTimeProvider.prototype._closeSocketIfRequired = function () {
8381
8009
  if (this.subscriptionObserverMap.size > 0) {
8382
8010
  // Active subscriptions on the WebSocket
8383
8011
  return;
8384
8012
  }
8385
-
8386
8013
  if (!this.awsRealTimeSocket) {
8387
- this.socketStatus = _constants__WEBPACK_IMPORTED_MODULE_10__["SOCKET_STATUS"].CLOSED;
8014
+ this.socketStatus = _constants__WEBPACK_IMPORTED_MODULE_11__["SOCKET_STATUS"].CLOSED;
8388
8015
  return;
8389
8016
  }
8390
-
8391
- this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_11__["CONNECTION_CHANGE"].CLOSING_CONNECTION);
8392
-
8017
+ this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_12__["CONNECTION_CHANGE"].CLOSING_CONNECTION);
8393
8018
  if (this.awsRealTimeSocket.bufferedAmount > 0) {
8394
8019
  // Still data on the WebSocket
8395
8020
  setTimeout(this._closeSocketIfRequired.bind(this), 1000);
8396
8021
  } else {
8397
8022
  logger.debug('closing WebSocket...');
8398
-
8399
8023
  if (this.keepAliveTimeoutId) {
8400
8024
  clearTimeout(this.keepAliveTimeoutId);
8401
8025
  }
8402
-
8403
8026
  if (this.keepAliveAlertTimeoutId) {
8404
8027
  clearTimeout(this.keepAliveAlertTimeoutId);
8405
8028
  }
8406
-
8407
- var tempSocket = this.awsRealTimeSocket; // Cleaning callbacks to avoid race condition, socket still exists
8408
-
8029
+ var tempSocket = this.awsRealTimeSocket;
8030
+ // Cleaning callbacks to avoid race condition, socket still exists
8409
8031
  tempSocket.onclose = null;
8410
8032
  tempSocket.onerror = null;
8411
8033
  tempSocket.close(1000);
8412
8034
  this.awsRealTimeSocket = undefined;
8413
- this.socketStatus = _constants__WEBPACK_IMPORTED_MODULE_10__["SOCKET_STATUS"].CLOSED;
8414
- this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_11__["CONNECTION_CHANGE"].CLOSED);
8035
+ this.socketStatus = _constants__WEBPACK_IMPORTED_MODULE_11__["SOCKET_STATUS"].CLOSED;
8036
+ this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_12__["CONNECTION_CHANGE"].CLOSED);
8415
8037
  }
8416
8038
  };
8417
-
8418
8039
  AWSAppSyncRealTimeProvider.prototype._handleIncomingSubscriptionMessage = function (message) {
8419
8040
  var _this = this;
8420
-
8421
8041
  logger.debug("subscription message from AWS AppSync RealTime: " + message.data);
8422
-
8423
8042
  var _a = JSON.parse(message.data),
8424
- _b = _a.id,
8425
- id = _b === void 0 ? '' : _b,
8426
- payload = _a.payload,
8427
- type = _a.type;
8428
-
8043
+ _b = _a.id,
8044
+ id = _b === void 0 ? '' : _b,
8045
+ payload = _a.payload,
8046
+ type = _a.type;
8429
8047
  var _c = this.subscriptionObserverMap.get(id) || {},
8430
- _d = _c.observer,
8431
- observer = _d === void 0 ? null : _d,
8432
- _e = _c.query,
8433
- query = _e === void 0 ? '' : _e,
8434
- _f = _c.variables,
8435
- variables = _f === void 0 ? {} : _f,
8436
- startAckTimeoutId = _c.startAckTimeoutId,
8437
- subscriptionReadyCallback = _c.subscriptionReadyCallback,
8438
- subscriptionFailedCallback = _c.subscriptionFailedCallback;
8439
-
8048
+ _d = _c.observer,
8049
+ observer = _d === void 0 ? null : _d,
8050
+ _e = _c.query,
8051
+ query = _e === void 0 ? '' : _e,
8052
+ _f = _c.variables,
8053
+ variables = _f === void 0 ? {} : _f,
8054
+ startAckTimeoutId = _c.startAckTimeoutId,
8055
+ subscriptionReadyCallback = _c.subscriptionReadyCallback,
8056
+ subscriptionFailedCallback = _c.subscriptionFailedCallback;
8440
8057
  logger.debug({
8441
8058
  id: id,
8442
8059
  observer: observer,
8443
8060
  query: query,
8444
8061
  variables: variables
8445
8062
  });
8446
-
8447
- if (type === _constants__WEBPACK_IMPORTED_MODULE_10__["MESSAGE_TYPES"].GQL_DATA && payload && payload.data) {
8063
+ if (type === _constants__WEBPACK_IMPORTED_MODULE_11__["MESSAGE_TYPES"].GQL_DATA && payload && payload.data) {
8448
8064
  if (observer) {
8449
8065
  observer.next(payload);
8450
8066
  } else {
8451
8067
  logger.debug("observer not found for id: " + id);
8452
8068
  }
8453
-
8454
8069
  return;
8455
8070
  }
8456
-
8457
- if (type === _constants__WEBPACK_IMPORTED_MODULE_10__["MESSAGE_TYPES"].GQL_START_ACK) {
8071
+ if (type === _constants__WEBPACK_IMPORTED_MODULE_11__["MESSAGE_TYPES"].GQL_START_ACK) {
8458
8072
  logger.debug("subscription ready for " + JSON.stringify({
8459
8073
  query: query,
8460
8074
  variables: variables
8461
8075
  }));
8462
-
8463
8076
  if (typeof subscriptionReadyCallback === 'function') {
8464
8077
  subscriptionReadyCallback();
8465
8078
  }
8466
-
8467
8079
  if (startAckTimeoutId) clearTimeout(startAckTimeoutId);
8468
- dispatchApiEvent(_index__WEBPACK_IMPORTED_MODULE_9__["CONTROL_MSG"].SUBSCRIPTION_ACK, {
8080
+ dispatchApiEvent(_types_PubSub__WEBPACK_IMPORTED_MODULE_10__["CONTROL_MSG"].SUBSCRIPTION_ACK, {
8469
8081
  query: query,
8470
8082
  variables: variables
8471
8083
  }, 'Connection established for subscription');
8472
- var subscriptionState = _constants__WEBPACK_IMPORTED_MODULE_10__["SUBSCRIPTION_STATUS"].CONNECTED;
8473
-
8084
+ var subscriptionState = _constants__WEBPACK_IMPORTED_MODULE_11__["SUBSCRIPTION_STATUS"].CONNECTED;
8474
8085
  if (observer) {
8475
8086
  this.subscriptionObserverMap.set(id, {
8476
8087
  observer: observer,
@@ -8482,27 +8093,23 @@ function (_super) {
8482
8093
  subscriptionFailedCallback: subscriptionFailedCallback
8483
8094
  });
8484
8095
  }
8485
-
8486
- this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_11__["CONNECTION_CHANGE"].CONNECTION_ESTABLISHED);
8096
+ this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_12__["CONNECTION_CHANGE"].CONNECTION_ESTABLISHED);
8487
8097
  return;
8488
8098
  }
8489
-
8490
- if (type === _constants__WEBPACK_IMPORTED_MODULE_10__["MESSAGE_TYPES"].GQL_CONNECTION_KEEP_ALIVE) {
8099
+ if (type === _constants__WEBPACK_IMPORTED_MODULE_11__["MESSAGE_TYPES"].GQL_CONNECTION_KEEP_ALIVE) {
8491
8100
  if (this.keepAliveTimeoutId) clearTimeout(this.keepAliveTimeoutId);
8492
8101
  if (this.keepAliveAlertTimeoutId) clearTimeout(this.keepAliveAlertTimeoutId);
8493
8102
  this.keepAliveTimeoutId = setTimeout(function () {
8494
- return _this._errorDisconnect(_index__WEBPACK_IMPORTED_MODULE_9__["CONTROL_MSG"].TIMEOUT_DISCONNECT);
8103
+ return _this._errorDisconnect(_types_PubSub__WEBPACK_IMPORTED_MODULE_10__["CONTROL_MSG"].TIMEOUT_DISCONNECT);
8495
8104
  }, this.keepAliveTimeout);
8496
8105
  this.keepAliveAlertTimeoutId = setTimeout(function () {
8497
- _this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_11__["CONNECTION_CHANGE"].KEEP_ALIVE_MISSED);
8498
- }, _constants__WEBPACK_IMPORTED_MODULE_10__["DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT"]);
8499
- this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_11__["CONNECTION_CHANGE"].KEEP_ALIVE);
8106
+ _this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_12__["CONNECTION_CHANGE"].KEEP_ALIVE_MISSED);
8107
+ }, _constants__WEBPACK_IMPORTED_MODULE_11__["DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT"]);
8108
+ this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_12__["CONNECTION_CHANGE"].KEEP_ALIVE);
8500
8109
  return;
8501
8110
  }
8502
-
8503
- if (type === _constants__WEBPACK_IMPORTED_MODULE_10__["MESSAGE_TYPES"].GQL_ERROR) {
8504
- var subscriptionState = _constants__WEBPACK_IMPORTED_MODULE_10__["SUBSCRIPTION_STATUS"].FAILED;
8505
-
8111
+ if (type === _constants__WEBPACK_IMPORTED_MODULE_11__["MESSAGE_TYPES"].GQL_ERROR) {
8112
+ var subscriptionState = _constants__WEBPACK_IMPORTED_MODULE_11__["SUBSCRIPTION_STATUS"].FAILED;
8506
8113
  if (observer) {
8507
8114
  this.subscriptionObserverMap.set(id, {
8508
8115
  observer: observer,
@@ -8513,115 +8120,75 @@ function (_super) {
8513
8120
  subscriptionFailedCallback: subscriptionFailedCallback,
8514
8121
  subscriptionState: subscriptionState
8515
8122
  });
8123
+ logger.debug(_types_PubSub__WEBPACK_IMPORTED_MODULE_10__["CONTROL_MSG"].CONNECTION_FAILED + ": " + JSON.stringify(payload));
8516
8124
  observer.error({
8517
- errors: [__assign({}, new graphql__WEBPACK_IMPORTED_MODULE_1__["GraphQLError"](_index__WEBPACK_IMPORTED_MODULE_9__["CONTROL_MSG"].CONNECTION_FAILED + ": " + JSON.stringify(payload)))]
8125
+ errors: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, new graphql__WEBPACK_IMPORTED_MODULE_2__["GraphQLError"](_types_PubSub__WEBPACK_IMPORTED_MODULE_10__["CONTROL_MSG"].CONNECTION_FAILED + ": " + JSON.stringify(payload)))]
8518
8126
  });
8519
8127
  if (startAckTimeoutId) clearTimeout(startAckTimeoutId);
8520
- observer.complete();
8521
-
8522
8128
  if (typeof subscriptionFailedCallback === 'function') {
8523
8129
  subscriptionFailedCallback();
8524
8130
  }
8525
8131
  }
8526
8132
  }
8527
8133
  };
8528
-
8529
8134
  AWSAppSyncRealTimeProvider.prototype._errorDisconnect = function (msg) {
8530
- logger.debug("Disconnect error: " + msg);
8531
- this.subscriptionObserverMap.forEach(function (_a) {
8532
- var observer = _a.observer;
8533
-
8534
- if (observer && !observer.closed) {
8535
- observer.error({
8536
- errors: [__assign({}, new graphql__WEBPACK_IMPORTED_MODULE_1__["GraphQLError"](msg))]
8537
- });
8538
- }
8539
- });
8540
- this.subscriptionObserverMap.clear();
8541
-
8135
+ logger.debug("Disconnect error: " + msg);
8542
8136
  if (this.awsRealTimeSocket) {
8543
- this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_11__["CONNECTION_CHANGE"].CLOSED);
8137
+ this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_12__["CONNECTION_CHANGE"].CLOSED);
8544
8138
  this.awsRealTimeSocket.close();
8545
8139
  }
8546
-
8547
- this.socketStatus = _constants__WEBPACK_IMPORTED_MODULE_10__["SOCKET_STATUS"].CLOSED;
8140
+ this.socketStatus = _constants__WEBPACK_IMPORTED_MODULE_11__["SOCKET_STATUS"].CLOSED;
8548
8141
  };
8549
-
8550
8142
  AWSAppSyncRealTimeProvider.prototype._timeoutStartSubscriptionAck = function (subscriptionId) {
8551
8143
  var subscriptionObserver = this.subscriptionObserverMap.get(subscriptionId);
8552
-
8553
8144
  if (subscriptionObserver) {
8554
8145
  var observer = subscriptionObserver.observer,
8555
- query = subscriptionObserver.query,
8556
- variables = subscriptionObserver.variables;
8557
-
8146
+ query = subscriptionObserver.query,
8147
+ variables = subscriptionObserver.variables;
8558
8148
  if (!observer) {
8559
8149
  return;
8560
8150
  }
8561
-
8562
8151
  this.subscriptionObserverMap.set(subscriptionId, {
8563
8152
  observer: observer,
8564
8153
  query: query,
8565
8154
  variables: variables,
8566
- subscriptionState: _constants__WEBPACK_IMPORTED_MODULE_10__["SUBSCRIPTION_STATUS"].FAILED
8155
+ subscriptionState: _constants__WEBPACK_IMPORTED_MODULE_11__["SUBSCRIPTION_STATUS"].FAILED
8567
8156
  });
8568
-
8569
- if (observer && !observer.closed) {
8570
- observer.error({
8571
- errors: [__assign({}, new graphql__WEBPACK_IMPORTED_MODULE_1__["GraphQLError"]("Subscription timeout " + JSON.stringify({
8572
- query: query,
8573
- variables: variables
8574
- })))]
8575
- }); // Cleanup will be automatically executed
8576
-
8577
- observer.complete();
8578
- }
8579
-
8157
+ this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_12__["CONNECTION_CHANGE"].CLOSED);
8580
8158
  logger.debug('timeoutStartSubscription', JSON.stringify({
8581
8159
  query: query,
8582
8160
  variables: variables
8583
8161
  }));
8584
8162
  }
8585
8163
  };
8586
-
8587
8164
  AWSAppSyncRealTimeProvider.prototype._initializeWebSocketConnection = function (_a) {
8588
8165
  var _this = this;
8589
-
8590
8166
  var appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint,
8591
- authenticationType = _a.authenticationType,
8592
- apiKey = _a.apiKey,
8593
- region = _a.region,
8594
- additionalHeaders = _a.additionalHeaders;
8595
-
8596
- if (this.socketStatus === _constants__WEBPACK_IMPORTED_MODULE_10__["SOCKET_STATUS"].READY) {
8167
+ authenticationType = _a.authenticationType,
8168
+ apiKey = _a.apiKey,
8169
+ region = _a.region,
8170
+ additionalHeaders = _a.additionalHeaders;
8171
+ if (this.socketStatus === _constants__WEBPACK_IMPORTED_MODULE_11__["SOCKET_STATUS"].READY) {
8597
8172
  return;
8598
8173
  }
8599
-
8600
8174
  return new Promise(function (res, rej) {
8601
- return __awaiter(_this, void 0, void 0, function () {
8175
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () {
8602
8176
  var payloadString, headerString, _a, _b, headerQs, payloadQs, discoverableEndpoint, protocol, awsRealTimeUrl, err_3;
8603
-
8604
- return __generator(this, function (_c) {
8177
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_c) {
8605
8178
  switch (_c.label) {
8606
8179
  case 0:
8607
8180
  this.promiseArray.push({
8608
8181
  res: res,
8609
8182
  rej: rej
8610
8183
  });
8611
- if (!(this.socketStatus === _constants__WEBPACK_IMPORTED_MODULE_10__["SOCKET_STATUS"].CLOSED)) return [3
8612
- /*break*/
8613
- , 5];
8184
+ if (!(this.socketStatus === _constants__WEBPACK_IMPORTED_MODULE_11__["SOCKET_STATUS"].CLOSED)) return [3 /*break*/, 5];
8614
8185
  _c.label = 1;
8615
-
8616
8186
  case 1:
8617
8187
  _c.trys.push([1, 4,, 5]);
8618
-
8619
- this.socketStatus = _constants__WEBPACK_IMPORTED_MODULE_10__["SOCKET_STATUS"].CONNECTING;
8188
+ this.socketStatus = _constants__WEBPACK_IMPORTED_MODULE_11__["SOCKET_STATUS"].CONNECTING;
8620
8189
  payloadString = '{}';
8621
8190
  _b = (_a = JSON).stringify;
8622
- return [4
8623
- /*yield*/
8624
- , this._awsRealTimeHeaderBasedAuth({
8191
+ return [4 /*yield*/, this._awsRealTimeHeaderBasedAuth({
8625
8192
  authenticationType: authenticationType,
8626
8193
  payload: payloadString,
8627
8194
  canonicalUri: '/connect',
@@ -8630,62 +8197,46 @@ function (_super) {
8630
8197
  region: region,
8631
8198
  additionalHeaders: additionalHeaders
8632
8199
  })];
8633
-
8634
8200
  case 2:
8635
8201
  headerString = _b.apply(_a, [_c.sent()]);
8636
- headerQs = buffer__WEBPACK_IMPORTED_MODULE_4__["Buffer"].from(headerString).toString('base64');
8637
- payloadQs = buffer__WEBPACK_IMPORTED_MODULE_4__["Buffer"].from(payloadString).toString('base64');
8202
+ headerQs = buffer__WEBPACK_IMPORTED_MODULE_5__["Buffer"].from(headerString).toString('base64');
8203
+ payloadQs = buffer__WEBPACK_IMPORTED_MODULE_5__["Buffer"].from(payloadString).toString('base64');
8638
8204
  discoverableEndpoint = appSyncGraphqlEndpoint !== null && appSyncGraphqlEndpoint !== void 0 ? appSyncGraphqlEndpoint : '';
8639
-
8640
8205
  if (this.isCustomDomain(discoverableEndpoint)) {
8641
8206
  discoverableEndpoint = discoverableEndpoint.concat(customDomainPath);
8642
8207
  } else {
8643
8208
  discoverableEndpoint = discoverableEndpoint.replace('appsync-api', 'appsync-realtime-api').replace('gogi-beta', 'grt-beta');
8644
8209
  }
8645
-
8646
8210
  protocol = this.isSSLEnabled ? 'wss://' : 'ws://';
8647
8211
  discoverableEndpoint = discoverableEndpoint.replace('https://', protocol).replace('http://', protocol);
8648
8212
  awsRealTimeUrl = discoverableEndpoint + "?header=" + headerQs + "&payload=" + payloadQs;
8649
- return [4
8650
- /*yield*/
8651
- , this._initializeRetryableHandshake(awsRealTimeUrl)];
8652
-
8213
+ return [4 /*yield*/, this._initializeRetryableHandshake(awsRealTimeUrl)];
8653
8214
  case 3:
8654
8215
  _c.sent();
8655
-
8656
8216
  this.promiseArray.forEach(function (_a) {
8657
8217
  var res = _a.res;
8658
8218
  logger.debug('Notifying connection successful');
8659
8219
  res();
8660
8220
  });
8661
- this.socketStatus = _constants__WEBPACK_IMPORTED_MODULE_10__["SOCKET_STATUS"].READY;
8221
+ this.socketStatus = _constants__WEBPACK_IMPORTED_MODULE_11__["SOCKET_STATUS"].READY;
8662
8222
  this.promiseArray = [];
8663
- return [3
8664
- /*break*/
8665
- , 5];
8666
-
8223
+ return [3 /*break*/, 5];
8667
8224
  case 4:
8668
8225
  err_3 = _c.sent();
8226
+ logger.debug('Connection exited with', err_3);
8669
8227
  this.promiseArray.forEach(function (_a) {
8670
8228
  var rej = _a.rej;
8671
8229
  return rej(err_3);
8672
8230
  });
8673
8231
  this.promiseArray = [];
8674
-
8675
8232
  if (this.awsRealTimeSocket && this.awsRealTimeSocket.readyState === WebSocket.OPEN) {
8676
8233
  this.awsRealTimeSocket.close(3001);
8677
8234
  }
8678
-
8679
8235
  this.awsRealTimeSocket = undefined;
8680
- this.socketStatus = _constants__WEBPACK_IMPORTED_MODULE_10__["SOCKET_STATUS"].CLOSED;
8681
- return [3
8682
- /*break*/
8683
- , 5];
8684
-
8236
+ this.socketStatus = _constants__WEBPACK_IMPORTED_MODULE_11__["SOCKET_STATUS"].CLOSED;
8237
+ return [3 /*break*/, 5];
8685
8238
  case 5:
8686
- return [2
8687
- /*return*/
8688
- ];
8239
+ return [2 /*return*/];
8689
8240
  }
8690
8241
  });
8691
8242
  });
@@ -8693,180 +8244,133 @@ function (_super) {
8693
8244
  };
8694
8245
 
8695
8246
  AWSAppSyncRealTimeProvider.prototype._initializeRetryableHandshake = function (awsRealTimeUrl) {
8696
- return __awaiter(this, void 0, void 0, function () {
8697
- return __generator(this, function (_a) {
8247
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
8248
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
8698
8249
  switch (_a.label) {
8699
8250
  case 0:
8700
8251
  logger.debug("Initializaling retryable Handshake");
8701
- return [4
8702
- /*yield*/
8703
- , Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_5__["jitteredExponentialRetry"])(this._initializeHandshake.bind(this), [awsRealTimeUrl], _constants__WEBPACK_IMPORTED_MODULE_10__["MAX_DELAY_MS"])];
8704
-
8252
+ return [4 /*yield*/, Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__["jitteredExponentialRetry"])(this._initializeHandshake.bind(this), [awsRealTimeUrl], _constants__WEBPACK_IMPORTED_MODULE_11__["MAX_DELAY_MS"])];
8705
8253
  case 1:
8706
8254
  _a.sent();
8707
-
8708
- return [2
8709
- /*return*/
8710
- ];
8255
+ return [2 /*return*/];
8711
8256
  }
8712
8257
  });
8713
8258
  });
8714
8259
  };
8715
8260
 
8716
8261
  AWSAppSyncRealTimeProvider.prototype._initializeHandshake = function (awsRealTimeUrl) {
8717
- return __awaiter(this, void 0, void 0, function () {
8262
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
8718
8263
  var err_4, _a, errorType, errorCode;
8719
-
8720
8264
  var _this = this;
8721
-
8722
- return __generator(this, function (_b) {
8265
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) {
8723
8266
  switch (_b.label) {
8724
8267
  case 0:
8725
8268
  logger.debug("Initializing handshake " + awsRealTimeUrl);
8726
8269
  _b.label = 1;
8727
-
8728
8270
  case 1:
8729
8271
  _b.trys.push([1, 4,, 5]);
8730
-
8731
- return [4
8732
- /*yield*/
8733
- , function () {
8272
+ return [4 /*yield*/, function () {
8734
8273
  return new Promise(function (res, rej) {
8735
8274
  var newSocket = _this.getNewWebSocket(awsRealTimeUrl, 'graphql-ws');
8736
-
8737
8275
  newSocket.onerror = function () {
8738
8276
  logger.debug("WebSocket connection error");
8739
8277
  };
8740
-
8741
8278
  newSocket.onclose = function () {
8742
- _this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_11__["CONNECTION_CHANGE"].CONNECTION_FAILED);
8743
-
8744
8279
  rej(new Error('Connection handshake error'));
8745
8280
  };
8746
-
8747
8281
  newSocket.onopen = function () {
8748
8282
  _this.awsRealTimeSocket = newSocket;
8749
8283
  return res();
8750
8284
  };
8751
8285
  });
8752
8286
  }()];
8753
-
8754
8287
  case 2:
8755
- _b.sent(); // Step 2: wait for ack from AWS AppSyncReaTime after sending init
8756
-
8757
-
8758
- return [4
8759
- /*yield*/
8760
- , function () {
8288
+ _b.sent();
8289
+ // Step 2: wait for ack from AWS AppSyncReaTime after sending init
8290
+ return [4 /*yield*/, function () {
8761
8291
  return new Promise(function (res, rej) {
8762
8292
  if (_this.awsRealTimeSocket) {
8763
8293
  var ackOk_1 = false;
8764
-
8765
8294
  _this.awsRealTimeSocket.onerror = function (error) {
8766
8295
  logger.debug("WebSocket error " + JSON.stringify(error));
8767
8296
  };
8768
-
8769
8297
  _this.awsRealTimeSocket.onclose = function (event) {
8770
8298
  logger.debug("WebSocket closed " + event.reason);
8771
8299
  rej(new Error(JSON.stringify(event)));
8772
8300
  };
8773
-
8774
8301
  _this.awsRealTimeSocket.onmessage = function (message) {
8775
8302
  logger.debug("subscription message from AWS AppSyncRealTime: " + message.data + " ");
8776
8303
  var data = JSON.parse(message.data);
8777
8304
  var type = data.type,
8778
- _a = data.payload,
8779
- _b = (_a === void 0 ? {} : _a).connectionTimeoutMs,
8780
- connectionTimeoutMs = _b === void 0 ? _constants__WEBPACK_IMPORTED_MODULE_10__["DEFAULT_KEEP_ALIVE_TIMEOUT"] : _b;
8781
-
8782
- if (type === _constants__WEBPACK_IMPORTED_MODULE_10__["MESSAGE_TYPES"].GQL_CONNECTION_ACK) {
8305
+ _a = data.payload,
8306
+ _b = (_a === void 0 ? {} : _a).connectionTimeoutMs,
8307
+ connectionTimeoutMs = _b === void 0 ? _constants__WEBPACK_IMPORTED_MODULE_11__["DEFAULT_KEEP_ALIVE_TIMEOUT"] : _b;
8308
+ if (type === _constants__WEBPACK_IMPORTED_MODULE_11__["MESSAGE_TYPES"].GQL_CONNECTION_ACK) {
8783
8309
  ackOk_1 = true;
8784
-
8785
8310
  if (_this.awsRealTimeSocket) {
8786
8311
  _this.keepAliveTimeout = connectionTimeoutMs;
8787
8312
  _this.awsRealTimeSocket.onmessage = _this._handleIncomingSubscriptionMessage.bind(_this);
8788
-
8789
8313
  _this.awsRealTimeSocket.onerror = function (err) {
8790
8314
  logger.debug(err);
8791
-
8792
- _this._errorDisconnect(_index__WEBPACK_IMPORTED_MODULE_9__["CONTROL_MSG"].CONNECTION_CLOSED);
8315
+ _this._errorDisconnect(_types_PubSub__WEBPACK_IMPORTED_MODULE_10__["CONTROL_MSG"].CONNECTION_CLOSED);
8793
8316
  };
8794
-
8795
8317
  _this.awsRealTimeSocket.onclose = function (event) {
8796
8318
  logger.debug("WebSocket closed " + event.reason);
8797
-
8798
- _this._errorDisconnect(_index__WEBPACK_IMPORTED_MODULE_9__["CONTROL_MSG"].CONNECTION_CLOSED);
8319
+ _this._errorDisconnect(_types_PubSub__WEBPACK_IMPORTED_MODULE_10__["CONTROL_MSG"].CONNECTION_CLOSED);
8799
8320
  };
8800
8321
  }
8801
-
8802
8322
  res('Cool, connected to AWS AppSyncRealTime');
8803
8323
  return;
8804
8324
  }
8805
-
8806
- if (type === _constants__WEBPACK_IMPORTED_MODULE_10__["MESSAGE_TYPES"].GQL_CONNECTION_ERROR) {
8325
+ if (type === _constants__WEBPACK_IMPORTED_MODULE_11__["MESSAGE_TYPES"].GQL_CONNECTION_ERROR) {
8807
8326
  var _c = data.payload,
8808
- _d = (_c === void 0 ? {} : _c).errors,
8809
- _e = __read(_d === void 0 ? [] : _d, 1),
8810
- _f = _e[0],
8811
- _g = _f === void 0 ? {} : _f,
8812
- _h = _g.errorType,
8813
- errorType = _h === void 0 ? '' : _h,
8814
- _j = _g.errorCode,
8815
- errorCode = _j === void 0 ? 0 : _j;
8816
-
8327
+ _d = (_c === void 0 ? {} : _c).errors,
8328
+ _e = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_d === void 0 ? [] : _d, 1),
8329
+ _f = _e[0],
8330
+ _g = _f === void 0 ? {} : _f,
8331
+ _h = _g.errorType,
8332
+ errorType = _h === void 0 ? '' : _h,
8333
+ _j = _g.errorCode,
8334
+ errorCode = _j === void 0 ? 0 : _j;
8817
8335
  rej({
8818
8336
  errorType: errorType,
8819
8337
  errorCode: errorCode
8820
8338
  });
8821
8339
  }
8822
8340
  };
8823
-
8824
8341
  var gqlInit = {
8825
- type: _constants__WEBPACK_IMPORTED_MODULE_10__["MESSAGE_TYPES"].GQL_CONNECTION_INIT
8342
+ type: _constants__WEBPACK_IMPORTED_MODULE_11__["MESSAGE_TYPES"].GQL_CONNECTION_INIT
8826
8343
  };
8827
-
8828
8344
  _this.awsRealTimeSocket.send(JSON.stringify(gqlInit));
8829
-
8830
- setTimeout(checkAckOk.bind(_this, ackOk_1), _constants__WEBPACK_IMPORTED_MODULE_10__["CONNECTION_INIT_TIMEOUT"]);
8831
- }
8832
-
8833
- function checkAckOk(ackOk) {
8834
- if (!ackOk) {
8835
- this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_11__["CONNECTION_CHANGE"].CONNECTION_FAILED);
8836
- rej(new Error("Connection timeout: ack from AWSRealTime was not received on " + _constants__WEBPACK_IMPORTED_MODULE_10__["CONNECTION_INIT_TIMEOUT"] + " ms"));
8837
- }
8345
+ var checkAckOk_1 = function checkAckOk_1(ackOk) {
8346
+ if (!ackOk) {
8347
+ _this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_12__["CONNECTION_CHANGE"].CONNECTION_FAILED);
8348
+ rej(new Error("Connection timeout: ack from AWSAppSyncRealTime was not received after " + _constants__WEBPACK_IMPORTED_MODULE_11__["CONNECTION_INIT_TIMEOUT"] + " ms"));
8349
+ }
8350
+ };
8351
+ setTimeout(function () {
8352
+ return checkAckOk_1(ackOk_1);
8353
+ }, _constants__WEBPACK_IMPORTED_MODULE_11__["CONNECTION_INIT_TIMEOUT"]);
8838
8354
  }
8839
8355
  });
8840
8356
  }()];
8841
-
8842
8357
  case 3:
8843
8358
  // Step 2: wait for ack from AWS AppSyncReaTime after sending init
8844
8359
  _b.sent();
8845
-
8846
- return [3
8847
- /*break*/
8848
- , 5];
8849
-
8360
+ return [3 /*break*/, 5];
8850
8361
  case 4:
8851
8362
  err_4 = _b.sent();
8852
8363
  _a = err_4, errorType = _a.errorType, errorCode = _a.errorCode;
8853
-
8854
- if (_constants__WEBPACK_IMPORTED_MODULE_10__["NON_RETRYABLE_CODES"].includes(errorCode)) {
8855
- throw new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_5__["NonRetryableError"](errorType);
8364
+ if (_constants__WEBPACK_IMPORTED_MODULE_11__["NON_RETRYABLE_CODES"].includes(errorCode)) {
8365
+ throw new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__["NonRetryableError"](errorType);
8856
8366
  } else if (errorType) {
8857
8367
  throw new Error(errorType);
8858
8368
  } else {
8859
8369
  throw err_4;
8860
8370
  }
8861
-
8862
- return [3
8863
- /*break*/
8864
- , 5];
8865
-
8371
+ return [3 /*break*/, 5];
8866
8372
  case 5:
8867
- return [2
8868
- /*return*/
8869
- ];
8373
+ return [2 /*return*/];
8870
8374
  }
8871
8375
  });
8872
8376
  });
@@ -8874,15 +8378,15 @@ function (_super) {
8874
8378
 
8875
8379
  AWSAppSyncRealTimeProvider.prototype._awsRealTimeHeaderBasedAuth = function (_a) {
8876
8380
  var authenticationType = _a.authenticationType,
8877
- payload = _a.payload,
8878
- canonicalUri = _a.canonicalUri,
8879
- appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint,
8880
- apiKey = _a.apiKey,
8881
- region = _a.region,
8882
- additionalHeaders = _a.additionalHeaders;
8883
- return __awaiter(this, void 0, void 0, function () {
8381
+ payload = _a.payload,
8382
+ canonicalUri = _a.canonicalUri,
8383
+ appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint,
8384
+ apiKey = _a.apiKey,
8385
+ region = _a.region,
8386
+ additionalHeaders = _a.additionalHeaders;
8387
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
8884
8388
  var headerHandler, handler, host, result;
8885
- return __generator(this, function (_b) {
8389
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) {
8886
8390
  switch (_b.label) {
8887
8391
  case 0:
8888
8392
  headerHandler = {
@@ -8892,21 +8396,14 @@ function (_super) {
8892
8396
  AMAZON_COGNITO_USER_POOLS: this._awsRealTimeCUPHeader.bind(this),
8893
8397
  AWS_LAMBDA: this._customAuthHeader
8894
8398
  };
8895
- if (!(!authenticationType || !headerHandler[authenticationType])) return [3
8896
- /*break*/
8897
- , 1];
8399
+ if (!(!authenticationType || !headerHandler[authenticationType])) return [3 /*break*/, 1];
8898
8400
  logger.debug("Authentication type " + authenticationType + " not supported");
8899
- return [2
8900
- /*return*/
8901
- , ''];
8902
-
8401
+ return [2 /*return*/, ''];
8903
8402
  case 1:
8904
8403
  handler = headerHandler[authenticationType];
8905
- host = url__WEBPACK_IMPORTED_MODULE_2__["parse"](appSyncGraphqlEndpoint !== null && appSyncGraphqlEndpoint !== void 0 ? appSyncGraphqlEndpoint : '').host;
8404
+ host = url__WEBPACK_IMPORTED_MODULE_3__["parse"](appSyncGraphqlEndpoint !== null && appSyncGraphqlEndpoint !== void 0 ? appSyncGraphqlEndpoint : '').host;
8906
8405
  logger.debug("Authenticating with " + authenticationType);
8907
- return [4
8908
- /*yield*/
8909
- , handler({
8406
+ return [4 /*yield*/, handler({
8910
8407
  payload: payload,
8911
8408
  canonicalUri: canonicalUri,
8912
8409
  appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,
@@ -8915,33 +8412,24 @@ function (_super) {
8915
8412
  host: host,
8916
8413
  additionalHeaders: additionalHeaders
8917
8414
  })];
8918
-
8919
8415
  case 2:
8920
8416
  result = _b.sent();
8921
- return [2
8922
- /*return*/
8923
- , result];
8417
+ return [2 /*return*/, result];
8924
8418
  }
8925
8419
  });
8926
8420
  });
8927
8421
  };
8928
-
8929
8422
  AWSAppSyncRealTimeProvider.prototype._awsRealTimeCUPHeader = function (_a) {
8930
8423
  var host = _a.host;
8931
- return __awaiter(this, void 0, void 0, function () {
8424
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
8932
8425
  var session;
8933
- return __generator(this, function (_b) {
8426
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) {
8934
8427
  switch (_b.label) {
8935
8428
  case 0:
8936
- return [4
8937
- /*yield*/
8938
- , _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_7___default.a.currentSession()];
8939
-
8429
+ return [4 /*yield*/, _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_8___default.a.currentSession()];
8940
8430
  case 1:
8941
8431
  session = _b.sent();
8942
- return [2
8943
- /*return*/
8944
- , {
8432
+ return [2 /*return*/, {
8945
8433
  Authorization: session.getAccessToken().getJwtToken(),
8946
8434
  host: host
8947
8435
  }];
@@ -8949,50 +8437,32 @@ function (_super) {
8949
8437
  });
8950
8438
  });
8951
8439
  };
8952
-
8953
8440
  AWSAppSyncRealTimeProvider.prototype._awsRealTimeOPENIDHeader = function (_a) {
8954
8441
  var host = _a.host;
8955
- return __awaiter(this, void 0, void 0, function () {
8442
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
8956
8443
  var token, federatedInfo, currentUser;
8957
- return __generator(this, function (_b) {
8444
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) {
8958
8445
  switch (_b.label) {
8959
8446
  case 0:
8960
- return [4
8961
- /*yield*/
8962
- , _aws_amplify_cache__WEBPACK_IMPORTED_MODULE_6___default.a.getItem('federatedInfo')];
8963
-
8447
+ return [4 /*yield*/, _aws_amplify_cache__WEBPACK_IMPORTED_MODULE_7___default.a.getItem('federatedInfo')];
8964
8448
  case 1:
8965
8449
  federatedInfo = _b.sent();
8966
- if (!federatedInfo) return [3
8967
- /*break*/
8968
- , 2];
8450
+ if (!federatedInfo) return [3 /*break*/, 2];
8969
8451
  token = federatedInfo.token;
8970
- return [3
8971
- /*break*/
8972
- , 4];
8973
-
8452
+ return [3 /*break*/, 4];
8974
8453
  case 2:
8975
- return [4
8976
- /*yield*/
8977
- , _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_7___default.a.currentAuthenticatedUser()];
8978
-
8454
+ return [4 /*yield*/, _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_8___default.a.currentAuthenticatedUser()];
8979
8455
  case 3:
8980
8456
  currentUser = _b.sent();
8981
-
8982
8457
  if (currentUser) {
8983
8458
  token = currentUser.token;
8984
8459
  }
8985
-
8986
8460
  _b.label = 4;
8987
-
8988
8461
  case 4:
8989
8462
  if (!token) {
8990
8463
  throw new Error('No federated jwt');
8991
8464
  }
8992
-
8993
- return [2
8994
- /*return*/
8995
- , {
8465
+ return [2 /*return*/, {
8996
8466
  Authorization: token,
8997
8467
  host: host
8998
8468
  }];
@@ -9000,18 +8470,15 @@ function (_super) {
9000
8470
  });
9001
8471
  });
9002
8472
  };
9003
-
9004
8473
  AWSAppSyncRealTimeProvider.prototype._awsRealTimeApiKeyHeader = function (_a) {
9005
8474
  var apiKey = _a.apiKey,
9006
- host = _a.host;
9007
- return __awaiter(this, void 0, void 0, function () {
8475
+ host = _a.host;
8476
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
9008
8477
  var dt, dtStr;
9009
- return __generator(this, function (_b) {
8478
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) {
9010
8479
  dt = new Date();
9011
8480
  dtStr = dt.toISOString().replace(/[:\-]|\.\d{3}/g, '');
9012
- return [2
9013
- /*return*/
9014
- , {
8481
+ return [2 /*return*/, {
9015
8482
  host: host,
9016
8483
  'x-amz-date': dtStr,
9017
8484
  'x-api-key': apiKey
@@ -9019,71 +8486,57 @@ function (_super) {
9019
8486
  });
9020
8487
  });
9021
8488
  };
9022
-
9023
8489
  AWSAppSyncRealTimeProvider.prototype._awsRealTimeIAMHeader = function (_a) {
9024
8490
  var payload = _a.payload,
9025
- canonicalUri = _a.canonicalUri,
9026
- appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint,
9027
- region = _a.region;
9028
- return __awaiter(this, void 0, void 0, function () {
8491
+ canonicalUri = _a.canonicalUri,
8492
+ appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint,
8493
+ region = _a.region;
8494
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
9029
8495
  var endpointInfo, credentialsOK, creds, request, signed_params;
9030
- return __generator(this, function (_b) {
8496
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) {
9031
8497
  switch (_b.label) {
9032
8498
  case 0:
9033
8499
  endpointInfo = {
9034
8500
  region: region,
9035
8501
  service: 'appsync'
9036
8502
  };
9037
- return [4
9038
- /*yield*/
9039
- , this._ensureCredentials()];
9040
-
8503
+ return [4 /*yield*/, this._ensureCredentials()];
9041
8504
  case 1:
9042
8505
  credentialsOK = _b.sent();
9043
-
9044
8506
  if (!credentialsOK) {
9045
8507
  throw new Error('No credentials');
9046
8508
  }
9047
-
9048
- return [4
9049
- /*yield*/
9050
- , _aws_amplify_core__WEBPACK_IMPORTED_MODULE_5__["Credentials"].get().then(function (credentials) {
8509
+ return [4 /*yield*/, _aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__["Credentials"].get().then(function (credentials) {
9051
8510
  var _a = credentials,
9052
- secretAccessKey = _a.secretAccessKey,
9053
- accessKeyId = _a.accessKeyId,
9054
- sessionToken = _a.sessionToken;
8511
+ secretAccessKey = _a.secretAccessKey,
8512
+ accessKeyId = _a.accessKeyId,
8513
+ sessionToken = _a.sessionToken;
9055
8514
  return {
9056
8515
  secret_key: secretAccessKey,
9057
8516
  access_key: accessKeyId,
9058
8517
  session_token: sessionToken
9059
8518
  };
9060
8519
  })];
9061
-
9062
8520
  case 2:
9063
8521
  creds = _b.sent();
9064
8522
  request = {
9065
8523
  url: "" + appSyncGraphqlEndpoint + canonicalUri,
9066
8524
  data: payload,
9067
8525
  method: 'POST',
9068
- headers: __assign({}, _constants__WEBPACK_IMPORTED_MODULE_10__["AWS_APPSYNC_REALTIME_HEADERS"])
8526
+ headers: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, _constants__WEBPACK_IMPORTED_MODULE_11__["AWS_APPSYNC_REALTIME_HEADERS"])
9069
8527
  };
9070
- signed_params = _aws_amplify_core__WEBPACK_IMPORTED_MODULE_5__["Signer"].sign(request, creds, endpointInfo);
9071
- return [2
9072
- /*return*/
9073
- , signed_params.headers];
8528
+ signed_params = _aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__["Signer"].sign(request, creds, endpointInfo);
8529
+ return [2 /*return*/, signed_params.headers];
9074
8530
  }
9075
8531
  });
9076
8532
  });
9077
8533
  };
9078
-
9079
8534
  AWSAppSyncRealTimeProvider.prototype._customAuthHeader = function (_a) {
9080
8535
  var host = _a.host,
9081
- additionalHeaders = _a.additionalHeaders;
9082
-
8536
+ additionalHeaders = _a.additionalHeaders;
9083
8537
  if (!additionalHeaders || !additionalHeaders['Authorization']) {
9084
8538
  throw new Error('No auth token specified');
9085
8539
  }
9086
-
9087
8540
  return {
9088
8541
  Authorization: additionalHeaders.Authorization,
9089
8542
  host: host
@@ -9092,12 +8545,10 @@ function (_super) {
9092
8545
  /**
9093
8546
  * @private
9094
8547
  */
9095
-
9096
-
9097
8548
  AWSAppSyncRealTimeProvider.prototype._ensureCredentials = function () {
9098
- return _aws_amplify_core__WEBPACK_IMPORTED_MODULE_5__["Credentials"].get().then(function (credentials) {
8549
+ return _aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__["Credentials"].get().then(function (credentials) {
9099
8550
  if (!credentials) return false;
9100
- var cred = _aws_amplify_core__WEBPACK_IMPORTED_MODULE_5__["Credentials"].shear(credentials);
8551
+ var cred = _aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__["Credentials"].shear(credentials);
9101
8552
  logger.debug('set credentials for AWSAppSyncRealTimeProvider', cred);
9102
8553
  return true;
9103
8554
  })["catch"](function (err) {
@@ -9105,10 +8556,8 @@ function (_super) {
9105
8556
  return false;
9106
8557
  });
9107
8558
  };
9108
-
9109
8559
  return AWSAppSyncRealTimeProvider;
9110
- }(_PubSubProvider__WEBPACK_IMPORTED_MODULE_8__["AbstractPubSubProvider"]);
9111
-
8560
+ }(_PubSubProvider__WEBPACK_IMPORTED_MODULE_9__["AbstractPubSubProvider"]);
9112
8561
 
9113
8562
 
9114
8563
  /***/ }),
@@ -9123,177 +8572,11 @@ function (_super) {
9123
8572
  "use strict";
9124
8573
  __webpack_require__.r(__webpack_exports__);
9125
8574
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AWSIoTProvider", function() { return AWSIoTProvider; });
9126
- /* harmony import */ var _MqttOverWSProvider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MqttOverWSProvider */ "./lib-esm/Providers/MqttOverWSProvider.js");
9127
- /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
9128
- /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__);
9129
- var __extends = undefined && undefined.__extends || function () {
9130
- var _extendStatics = function extendStatics(d, b) {
9131
- _extendStatics = Object.setPrototypeOf || {
9132
- __proto__: []
9133
- } instanceof Array && function (d, b) {
9134
- d.__proto__ = b;
9135
- } || function (d, b) {
9136
- for (var p in b) {
9137
- if (b.hasOwnProperty(p)) d[p] = b[p];
9138
- }
9139
- };
9140
-
9141
- return _extendStatics(d, b);
9142
- };
9143
-
9144
- return function (d, b) {
9145
- _extendStatics(d, b);
9146
-
9147
- function __() {
9148
- this.constructor = d;
9149
- }
9150
-
9151
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
9152
- };
9153
- }();
9154
-
9155
- var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
9156
- function adopt(value) {
9157
- return value instanceof P ? value : new P(function (resolve) {
9158
- resolve(value);
9159
- });
9160
- }
9161
-
9162
- return new (P || (P = Promise))(function (resolve, reject) {
9163
- function fulfilled(value) {
9164
- try {
9165
- step(generator.next(value));
9166
- } catch (e) {
9167
- reject(e);
9168
- }
9169
- }
9170
-
9171
- function rejected(value) {
9172
- try {
9173
- step(generator["throw"](value));
9174
- } catch (e) {
9175
- reject(e);
9176
- }
9177
- }
9178
-
9179
- function step(result) {
9180
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
9181
- }
9182
-
9183
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9184
- });
9185
- };
9186
-
9187
- var __generator = undefined && undefined.__generator || function (thisArg, body) {
9188
- var _ = {
9189
- label: 0,
9190
- sent: function sent() {
9191
- if (t[0] & 1) throw t[1];
9192
- return t[1];
9193
- },
9194
- trys: [],
9195
- ops: []
9196
- },
9197
- f,
9198
- y,
9199
- t,
9200
- g;
9201
- return g = {
9202
- next: verb(0),
9203
- "throw": verb(1),
9204
- "return": verb(2)
9205
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
9206
- return this;
9207
- }), g;
9208
-
9209
- function verb(n) {
9210
- return function (v) {
9211
- return step([n, v]);
9212
- };
9213
- }
9214
-
9215
- function step(op) {
9216
- if (f) throw new TypeError("Generator is already executing.");
9217
-
9218
- while (_) {
9219
- try {
9220
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
9221
- if (y = 0, t) op = [op[0] & 2, t.value];
9222
-
9223
- switch (op[0]) {
9224
- case 0:
9225
- case 1:
9226
- t = op;
9227
- break;
9228
-
9229
- case 4:
9230
- _.label++;
9231
- return {
9232
- value: op[1],
9233
- done: false
9234
- };
9235
-
9236
- case 5:
9237
- _.label++;
9238
- y = op[1];
9239
- op = [0];
9240
- continue;
9241
-
9242
- case 7:
9243
- op = _.ops.pop();
9244
-
9245
- _.trys.pop();
9246
-
9247
- continue;
9248
-
9249
- default:
9250
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
9251
- _ = 0;
9252
- continue;
9253
- }
9254
-
9255
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
9256
- _.label = op[1];
9257
- break;
9258
- }
9259
-
9260
- if (op[0] === 6 && _.label < t[1]) {
9261
- _.label = t[1];
9262
- t = op;
9263
- break;
9264
- }
9265
-
9266
- if (t && _.label < t[2]) {
9267
- _.label = t[2];
9268
-
9269
- _.ops.push(op);
9270
-
9271
- break;
9272
- }
9273
-
9274
- if (t[2]) _.ops.pop();
9275
-
9276
- _.trys.pop();
9277
-
9278
- continue;
9279
- }
9280
-
9281
- op = body.call(thisArg, _);
9282
- } catch (e) {
9283
- op = [6, e];
9284
- y = 0;
9285
- } finally {
9286
- f = t = 0;
9287
- }
9288
- }
8575
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
8576
+ /* harmony import */ var _MqttOverWSProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MqttOverWSProvider */ "./lib-esm/Providers/MqttOverWSProvider.js");
8577
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
8578
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_2__);
9289
8579
 
9290
- if (op[0] & 5) throw op[1];
9291
- return {
9292
- value: op[0] ? op[1] : void 0,
9293
- done: true
9294
- };
9295
- }
9296
- };
9297
8580
  /*
9298
8581
  * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
9299
8582
  *
@@ -9308,23 +8591,15 @@ var __generator = undefined && undefined.__generator || function (thisArg, body)
9308
8591
  */
9309
8592
 
9310
8593
 
9311
-
9312
-
9313
8594
  var SERVICE_NAME = 'iotdevicegateway';
9314
-
9315
- var AWSIoTProvider =
9316
- /** @class */
9317
- function (_super) {
9318
- __extends(AWSIoTProvider, _super);
9319
-
8595
+ var AWSIoTProvider = /** @class */function (_super) {
8596
+ Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AWSIoTProvider, _super);
9320
8597
  function AWSIoTProvider(options) {
9321
8598
  if (options === void 0) {
9322
8599
  options = {};
9323
8600
  }
9324
-
9325
8601
  return _super.call(this, options) || this;
9326
8602
  }
9327
-
9328
8603
  Object.defineProperty(AWSIoTProvider.prototype, "region", {
9329
8604
  get: function get() {
9330
8605
  return this.options.aws_pubsub_region;
@@ -9332,20 +8607,16 @@ function (_super) {
9332
8607
  enumerable: true,
9333
8608
  configurable: true
9334
8609
  });
9335
-
9336
8610
  AWSIoTProvider.prototype.getProviderName = function () {
9337
8611
  return 'AWSIoTProvider';
9338
8612
  };
9339
-
9340
8613
  Object.defineProperty(AWSIoTProvider.prototype, "endpoint", {
9341
8614
  get: function get() {
9342
8615
  var _this = this;
9343
-
9344
8616
  return function () {
9345
- return __awaiter(_this, void 0, void 0, function () {
8617
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () {
9346
8618
  var endpoint, serviceInfo, _a, access_key, secret_key, session_token, result;
9347
-
9348
- return __generator(this, function (_b) {
8619
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) {
9349
8620
  switch (_b.label) {
9350
8621
  case 0:
9351
8622
  endpoint = this.options.aws_pubsub_endpoint;
@@ -9353,20 +8624,15 @@ function (_super) {
9353
8624
  service: SERVICE_NAME,
9354
8625
  region: this.region
9355
8626
  };
9356
- return [4
9357
- /*yield*/
9358
- , _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["Credentials"].get()];
9359
-
8627
+ return [4 /*yield*/, _aws_amplify_core__WEBPACK_IMPORTED_MODULE_2__["Credentials"].get()];
9360
8628
  case 1:
9361
8629
  _a = _b.sent(), access_key = _a.accessKeyId, secret_key = _a.secretAccessKey, session_token = _a.sessionToken;
9362
- result = _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["Signer"].signUrl(endpoint, {
8630
+ result = _aws_amplify_core__WEBPACK_IMPORTED_MODULE_2__["Signer"].signUrl(endpoint, {
9363
8631
  access_key: access_key,
9364
8632
  secret_key: secret_key,
9365
8633
  session_token: session_token
9366
8634
  }, serviceInfo);
9367
- return [2
9368
- /*return*/
9369
- , result];
8635
+ return [2 /*return*/, result];
9370
8636
  }
9371
8637
  });
9372
8638
  });
@@ -9376,8 +8642,7 @@ function (_super) {
9376
8642
  configurable: true
9377
8643
  });
9378
8644
  return AWSIoTProvider;
9379
- }(_MqttOverWSProvider__WEBPACK_IMPORTED_MODULE_0__["MqttOverWSProvider"]);
9380
-
8645
+ }(_MqttOverWSProvider__WEBPACK_IMPORTED_MODULE_1__["MqttOverWSProvider"]);
9381
8646
 
9382
8647
 
9383
8648
  /***/ }),
@@ -9393,221 +8658,29 @@ function (_super) {
9393
8658
  __webpack_require__.r(__webpack_exports__);
9394
8659
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mqttTopicMatch", function() { return mqttTopicMatch; });
9395
8660
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MqttOverWSProvider", function() { return MqttOverWSProvider; });
9396
- /* harmony import */ var paho_mqtt__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! paho-mqtt */ "../../node_modules/paho-mqtt/paho-mqtt.js");
9397
- /* harmony import */ var paho_mqtt__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(paho_mqtt__WEBPACK_IMPORTED_MODULE_0__);
9398
- /* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uuid */ "../../node_modules/uuid/index.js");
9399
- /* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(uuid__WEBPACK_IMPORTED_MODULE_1__);
9400
- /* harmony import */ var zen_observable_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! zen-observable-ts */ "../../node_modules/zen-observable-ts/lib/bundle.esm.js");
9401
- /* harmony import */ var _PubSubProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PubSubProvider */ "./lib-esm/Providers/PubSubProvider.js");
9402
- /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
9403
- /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_4__);
9404
- function _typeof(obj) {
9405
- "@babel/helpers - typeof";
9406
-
9407
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
9408
- return typeof obj;
9409
- } : function (obj) {
9410
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
9411
- }, _typeof(obj);
9412
- }
9413
-
9414
- var __extends = undefined && undefined.__extends || function () {
9415
- var _extendStatics = function extendStatics(d, b) {
9416
- _extendStatics = Object.setPrototypeOf || {
9417
- __proto__: []
9418
- } instanceof Array && function (d, b) {
9419
- d.__proto__ = b;
9420
- } || function (d, b) {
9421
- for (var p in b) {
9422
- if (b.hasOwnProperty(p)) d[p] = b[p];
9423
- }
9424
- };
9425
-
9426
- return _extendStatics(d, b);
9427
- };
9428
-
9429
- return function (d, b) {
9430
- _extendStatics(d, b);
9431
-
9432
- function __() {
9433
- this.constructor = d;
9434
- }
9435
-
9436
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
9437
- };
9438
- }();
9439
-
9440
- var __assign = undefined && undefined.__assign || function () {
9441
- __assign = Object.assign || function (t) {
9442
- for (var s, i = 1, n = arguments.length; i < n; i++) {
9443
- s = arguments[i];
9444
-
9445
- for (var p in s) {
9446
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
9447
- }
9448
- }
9449
-
9450
- return t;
9451
- };
9452
-
9453
- return __assign.apply(this, arguments);
9454
- };
9455
-
9456
- var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
9457
- function adopt(value) {
9458
- return value instanceof P ? value : new P(function (resolve) {
9459
- resolve(value);
9460
- });
9461
- }
9462
-
9463
- return new (P || (P = Promise))(function (resolve, reject) {
9464
- function fulfilled(value) {
9465
- try {
9466
- step(generator.next(value));
9467
- } catch (e) {
9468
- reject(e);
9469
- }
9470
- }
9471
-
9472
- function rejected(value) {
9473
- try {
9474
- step(generator["throw"](value));
9475
- } catch (e) {
9476
- reject(e);
9477
- }
9478
- }
9479
-
9480
- function step(result) {
9481
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
9482
- }
9483
-
9484
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9485
- });
9486
- };
9487
-
9488
- var __generator = undefined && undefined.__generator || function (thisArg, body) {
9489
- var _ = {
9490
- label: 0,
9491
- sent: function sent() {
9492
- if (t[0] & 1) throw t[1];
9493
- return t[1];
9494
- },
9495
- trys: [],
9496
- ops: []
9497
- },
9498
- f,
9499
- y,
9500
- t,
9501
- g;
9502
- return g = {
9503
- next: verb(0),
9504
- "throw": verb(1),
9505
- "return": verb(2)
9506
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
9507
- return this;
9508
- }), g;
9509
-
9510
- function verb(n) {
9511
- return function (v) {
9512
- return step([n, v]);
9513
- };
9514
- }
9515
-
9516
- function step(op) {
9517
- if (f) throw new TypeError("Generator is already executing.");
9518
-
9519
- while (_) {
9520
- try {
9521
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
9522
- if (y = 0, t) op = [op[0] & 2, t.value];
9523
-
9524
- switch (op[0]) {
9525
- case 0:
9526
- case 1:
9527
- t = op;
9528
- break;
9529
-
9530
- case 4:
9531
- _.label++;
9532
- return {
9533
- value: op[1],
9534
- done: false
9535
- };
9536
-
9537
- case 5:
9538
- _.label++;
9539
- y = op[1];
9540
- op = [0];
9541
- continue;
9542
-
9543
- case 7:
9544
- op = _.ops.pop();
9545
-
9546
- _.trys.pop();
9547
-
9548
- continue;
9549
-
9550
- default:
9551
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
9552
- _ = 0;
9553
- continue;
9554
- }
9555
-
9556
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
9557
- _.label = op[1];
9558
- break;
9559
- }
9560
-
9561
- if (op[0] === 6 && _.label < t[1]) {
9562
- _.label = t[1];
9563
- t = op;
9564
- break;
9565
- }
9566
-
9567
- if (t && _.label < t[2]) {
9568
- _.label = t[2];
9569
-
9570
- _.ops.push(op);
9571
-
9572
- break;
9573
- }
9574
-
9575
- if (t[2]) _.ops.pop();
9576
-
9577
- _.trys.pop();
9578
-
9579
- continue;
9580
- }
9581
-
9582
- op = body.call(thisArg, _);
9583
- } catch (e) {
9584
- op = [6, e];
9585
- y = 0;
9586
- } finally {
9587
- f = t = 0;
9588
- }
9589
- }
9590
-
9591
- if (op[0] & 5) throw op[1];
9592
- return {
9593
- value: op[0] ? op[1] : void 0,
9594
- done: true
9595
- };
9596
- }
9597
- };
9598
-
9599
- var __rest = undefined && undefined.__rest || function (s, e) {
9600
- var t = {};
8661
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
8662
+ /* harmony import */ var paho_mqtt__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! paho-mqtt */ "../../node_modules/paho-mqtt/paho-mqtt.js");
8663
+ /* harmony import */ var paho_mqtt__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(paho_mqtt__WEBPACK_IMPORTED_MODULE_1__);
8664
+ /* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uuid */ "../../node_modules/uuid/index.js");
8665
+ /* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(uuid__WEBPACK_IMPORTED_MODULE_2__);
8666
+ /* harmony import */ var zen_observable_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! zen-observable-ts */ "../../node_modules/zen-observable-ts/lib/bundle.esm.js");
8667
+ /* harmony import */ var _PubSubProvider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./PubSubProvider */ "./lib-esm/Providers/PubSubProvider.js");
8668
+ /* harmony import */ var _types_PubSub__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../types/PubSub */ "./lib-esm/types/PubSub.js");
8669
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
8670
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__);
8671
+ /* harmony import */ var _utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/ConnectionStateMonitor */ "./lib-esm/utils/ConnectionStateMonitor.js");
8672
+ /* harmony import */ var _utils_ReconnectionMonitor__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/ReconnectionMonitor */ "./lib-esm/utils/ReconnectionMonitor.js");
8673
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./constants */ "./lib-esm/Providers/constants.js");
8674
+ function _typeof(obj) {
8675
+ "@babel/helpers - typeof";
9601
8676
 
9602
- for (var p in s) {
9603
- if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
9604
- }
8677
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
8678
+ return typeof obj;
8679
+ } : function (obj) {
8680
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
8681
+ }, _typeof(obj);
8682
+ }
9605
8683
 
9606
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
9607
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
9608
- }
9609
- return t;
9610
- };
9611
8684
  /*
9612
8685
  * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
9613
8686
  *
@@ -9627,56 +8700,44 @@ var __rest = undefined && undefined.__rest || function (s, e) {
9627
8700
 
9628
8701
 
9629
8702
 
9630
- var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_4__["ConsoleLogger"]('MqttOverWSProvider');
8703
+
8704
+
8705
+ var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__["ConsoleLogger"]('MqttOverWSProvider');
9631
8706
  function mqttTopicMatch(filter, topic) {
9632
8707
  var filterArray = filter.split('/');
9633
8708
  var length = filterArray.length;
9634
8709
  var topicArray = topic.split('/');
9635
-
9636
8710
  for (var i = 0; i < length; ++i) {
9637
8711
  var left = filterArray[i];
9638
8712
  var right = topicArray[i];
9639
8713
  if (left === '#') return topicArray.length >= length;
9640
8714
  if (left !== '+' && left !== right) return false;
9641
8715
  }
9642
-
9643
8716
  return length === topicArray.length;
9644
8717
  }
9645
-
9646
- var ClientsQueue =
9647
- /** @class */
9648
- function () {
8718
+ var ClientsQueue = /** @class */function () {
9649
8719
  function ClientsQueue() {
9650
8720
  this.promises = new Map();
9651
8721
  }
9652
-
9653
8722
  ClientsQueue.prototype.get = function (clientId, clientFactory) {
9654
- return __awaiter(this, void 0, void 0, function () {
8723
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
9655
8724
  var cachedPromise, newPromise;
9656
- return __generator(this, function (_a) {
8725
+ var _this = this;
8726
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
9657
8727
  cachedPromise = this.promises.get(clientId);
9658
-
9659
- if (cachedPromise) {
9660
- return [2
9661
- /*return*/
9662
- , cachedPromise];
9663
- }
9664
-
8728
+ if (cachedPromise) return [2 /*return*/, cachedPromise];
9665
8729
  if (clientFactory) {
9666
8730
  newPromise = clientFactory(clientId);
9667
8731
  this.promises.set(clientId, newPromise);
9668
- return [2
9669
- /*return*/
9670
- , newPromise];
8732
+ newPromise["catch"](function (v) {
8733
+ return _this.promises["delete"](clientId);
8734
+ });
8735
+ return [2 /*return*/, newPromise];
9671
8736
  }
9672
-
9673
- return [2
9674
- /*return*/
9675
- , undefined];
8737
+ return [2 /*return*/, undefined];
9676
8738
  });
9677
8739
  });
9678
8740
  };
9679
-
9680
8741
  Object.defineProperty(ClientsQueue.prototype, "allClients", {
9681
8742
  get: function get() {
9682
8743
  return Array.from(this.promises.keys());
@@ -9684,36 +8745,50 @@ function () {
9684
8745
  enumerable: true,
9685
8746
  configurable: true
9686
8747
  });
9687
-
9688
8748
  ClientsQueue.prototype.remove = function (clientId) {
9689
8749
  this.promises["delete"](clientId);
9690
8750
  };
9691
-
9692
8751
  return ClientsQueue;
9693
8752
  }();
9694
-
8753
+ var dispatchPubSubEvent = function dispatchPubSubEvent(event, data, message) {
8754
+ _aws_amplify_core__WEBPACK_IMPORTED_MODULE_6__["Hub"].dispatch('pubsub', {
8755
+ event: event,
8756
+ data: data,
8757
+ message: message
8758
+ }, 'PubSub', _constants__WEBPACK_IMPORTED_MODULE_9__["AMPLIFY_SYMBOL"]);
8759
+ };
9695
8760
  var topicSymbol = typeof Symbol !== 'undefined' ? Symbol('topic') : '@@topic';
9696
-
9697
- var MqttOverWSProvider =
9698
- /** @class */
9699
- function (_super) {
9700
- __extends(MqttOverWSProvider, _super);
9701
-
8761
+ var MqttOverWSProvider = /** @class */function (_super) {
8762
+ Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(MqttOverWSProvider, _super);
9702
8763
  function MqttOverWSProvider(options) {
9703
8764
  if (options === void 0) {
9704
8765
  options = {};
9705
8766
  }
9706
-
9707
- var _this = _super.call(this, __assign(__assign({}, options), {
9708
- clientId: options.clientId || Object(uuid__WEBPACK_IMPORTED_MODULE_1__["v4"])()
8767
+ var _this = _super.call(this, Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, options), {
8768
+ clientId: options.clientId || Object(uuid__WEBPACK_IMPORTED_MODULE_2__["v4"])()
9709
8769
  })) || this;
9710
-
9711
8770
  _this._clientsQueue = new ClientsQueue();
8771
+ _this.connectionStateMonitor = new _utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_7__["ConnectionStateMonitor"]();
8772
+ _this.reconnectionMonitor = new _utils_ReconnectionMonitor__WEBPACK_IMPORTED_MODULE_8__["ReconnectionMonitor"]();
9712
8773
  _this._topicObservers = new Map();
9713
8774
  _this._clientIdObservers = new Map();
8775
+ // Monitor the connection health state and pass changes along to Hub
8776
+ _this.connectionStateMonitor.connectionStateObservable.subscribe(function (connectionStateChange) {
8777
+ dispatchPubSubEvent(_constants__WEBPACK_IMPORTED_MODULE_9__["CONNECTION_STATE_CHANGE"], {
8778
+ provider: _this,
8779
+ connectionState: connectionStateChange
8780
+ }, "Connection state is " + connectionStateChange);
8781
+ _this.connectionState = connectionStateChange;
8782
+ // Trigger reconnection when the connection is disrupted
8783
+ if (connectionStateChange === _types_PubSub__WEBPACK_IMPORTED_MODULE_5__["ConnectionState"].ConnectionDisrupted) {
8784
+ _this.reconnectionMonitor.record(_utils_ReconnectionMonitor__WEBPACK_IMPORTED_MODULE_8__["ReconnectEvent"].START_RECONNECT);
8785
+ } else if (connectionStateChange !== _types_PubSub__WEBPACK_IMPORTED_MODULE_5__["ConnectionState"].Connecting) {
8786
+ // Trigger connected to halt reconnection attempts
8787
+ _this.reconnectionMonitor.record(_utils_ReconnectionMonitor__WEBPACK_IMPORTED_MODULE_8__["ReconnectEvent"].HALT_RECONNECT);
8788
+ }
8789
+ });
9714
8790
  return _this;
9715
8791
  }
9716
-
9717
8792
  Object.defineProperty(MqttOverWSProvider.prototype, "clientId", {
9718
8793
  get: function get() {
9719
8794
  return this.options.clientId;
@@ -9742,197 +8817,157 @@ function (_super) {
9742
8817
  enumerable: true,
9743
8818
  configurable: true
9744
8819
  });
9745
-
9746
8820
  MqttOverWSProvider.prototype.getTopicForValue = function (value) {
9747
8821
  return _typeof(value) === 'object' && value[topicSymbol];
9748
8822
  };
9749
-
9750
8823
  MqttOverWSProvider.prototype.getProviderName = function () {
9751
8824
  return 'MqttOverWSProvider';
9752
8825
  };
9753
-
9754
8826
  MqttOverWSProvider.prototype.onDisconnect = function (_a) {
9755
- var _this = this;
9756
-
9757
8827
  var clientId = _a.clientId,
9758
- errorCode = _a.errorCode,
9759
- args = __rest(_a, ["clientId", "errorCode"]);
9760
-
8828
+ errorCode = _a.errorCode,
8829
+ args = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"])(_a, ["clientId", "errorCode"]);
9761
8830
  if (errorCode !== 0) {
9762
- logger.warn(clientId, JSON.stringify(__assign({
8831
+ logger.warn(clientId, JSON.stringify(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({
9763
8832
  errorCode: errorCode
9764
8833
  }, args), null, 2));
9765
- var topicsToDelete_1 = [];
9766
-
9767
8834
  if (!clientId) {
9768
8835
  return;
9769
8836
  }
9770
-
9771
8837
  var clientIdObservers = this._clientIdObservers.get(clientId);
9772
-
9773
8838
  if (!clientIdObservers) {
9774
8839
  return;
9775
8840
  }
9776
-
9777
- clientIdObservers.forEach(function (observer) {
9778
- observer.error('Disconnected, error code: ' + errorCode); // removing observers for disconnected clientId
9779
-
9780
- _this._topicObservers.forEach(function (observerForTopic, observerTopic) {
9781
- observerForTopic["delete"](observer);
9782
-
9783
- if (observerForTopic.size === 0) {
9784
- topicsToDelete_1.push(observerTopic);
9785
- }
9786
- });
9787
- }); // forgiving any trace of clientId
9788
-
9789
- this._clientIdObservers["delete"](clientId); // Removing topics that are not listen by an observer
9790
-
9791
-
9792
- topicsToDelete_1.forEach(function (topic) {
9793
- _this._topicObservers["delete"](topic);
9794
- });
8841
+ this.disconnect(clientId);
9795
8842
  }
9796
8843
  };
9797
-
9798
8844
  MqttOverWSProvider.prototype.newClient = function (_a) {
9799
8845
  var url = _a.url,
9800
- clientId = _a.clientId;
9801
- return __awaiter(this, void 0, void 0, function () {
9802
- var client;
9803
-
8846
+ clientId = _a.clientId;
8847
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
8848
+ var client, connected;
9804
8849
  var _this = this;
9805
-
9806
- return __generator(this, function (_b) {
8850
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) {
9807
8851
  switch (_b.label) {
9808
8852
  case 0:
9809
8853
  logger.debug('Creating new MQTT client', clientId);
9810
- client = new paho_mqtt__WEBPACK_IMPORTED_MODULE_0__["Client"](url, clientId); // client.trace = (args) => logger.debug(clientId, JSON.stringify(args, null, 2));
9811
-
8854
+ this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_7__["CONNECTION_CHANGE"].OPENING_CONNECTION);
8855
+ client = new paho_mqtt__WEBPACK_IMPORTED_MODULE_1__["Client"](url, clientId);
9812
8856
  client.onMessageArrived = function (_a) {
9813
8857
  var topic = _a.destinationName,
9814
- msg = _a.payloadString;
9815
-
8858
+ msg = _a.payloadString;
9816
8859
  _this._onMessage(topic, msg);
9817
8860
  };
9818
-
9819
8861
  client.onConnectionLost = function (_a) {
9820
8862
  var errorCode = _a.errorCode,
9821
- args = __rest(_a, ["errorCode"]);
9822
-
9823
- _this.onDisconnect(__assign({
8863
+ args = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"])(_a, ["errorCode"]);
8864
+ _this.onDisconnect(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({
9824
8865
  clientId: clientId,
9825
8866
  errorCode: errorCode
9826
8867
  }, args));
8868
+ _this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_7__["CONNECTION_CHANGE"].CLOSED);
9827
8869
  };
9828
-
9829
- return [4
9830
- /*yield*/
9831
- , new Promise(function (resolve, reject) {
8870
+ return [4 /*yield*/, new Promise(function (resolve, reject) {
9832
8871
  client.connect({
9833
8872
  useSSL: _this.isSSLEnabled,
9834
8873
  mqttVersion: 3,
9835
8874
  onSuccess: function onSuccess() {
9836
- return resolve(client);
8875
+ return resolve(true);
9837
8876
  },
9838
- onFailure: reject
8877
+ onFailure: function onFailure(x) {
8878
+ if (clientId) _this._clientsQueue.remove(clientId);
8879
+ _this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_7__["CONNECTION_CHANGE"].CLOSED);
8880
+ resolve(false);
8881
+ }
9839
8882
  });
9840
8883
  })];
9841
-
9842
8884
  case 1:
9843
- _b.sent();
9844
-
9845
- return [2
9846
- /*return*/
9847
- , client];
8885
+ connected = _b.sent();
8886
+ if (connected) {
8887
+ this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_7__["CONNECTION_CHANGE"].CONNECTION_ESTABLISHED);
8888
+ }
8889
+ return [2 /*return*/, client];
9848
8890
  }
9849
8891
  });
9850
8892
  });
9851
8893
  };
9852
-
9853
8894
  MqttOverWSProvider.prototype.connect = function (clientId, options) {
9854
8895
  if (options === void 0) {
9855
8896
  options = {};
9856
8897
  }
9857
-
9858
- return __awaiter(this, void 0, void 0, function () {
8898
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
9859
8899
  var _this = this;
9860
-
9861
- return __generator(this, function (_a) {
8900
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
9862
8901
  switch (_a.label) {
9863
8902
  case 0:
9864
- return [4
9865
- /*yield*/
9866
- , this.clientsQueue.get(clientId, function (clientId) {
9867
- return _this.newClient(__assign(__assign({}, options), {
9868
- clientId: clientId
9869
- }));
8903
+ return [4 /*yield*/, this.clientsQueue.get(clientId, function (clientId) {
8904
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () {
8905
+ var client;
8906
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
8907
+ switch (_a.label) {
8908
+ case 0:
8909
+ return [4 /*yield*/, this.newClient(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, options), {
8910
+ clientId: clientId
8911
+ }))];
8912
+ case 1:
8913
+ client = _a.sent();
8914
+ if (client) {
8915
+ // Once connected, subscribe to all topics registered observers
8916
+ this._topicObservers.forEach(function (_value, key) {
8917
+ client.subscribe(key);
8918
+ });
8919
+ }
8920
+ return [2 /*return*/, client];
8921
+ }
8922
+ });
8923
+ });
9870
8924
  })];
9871
-
9872
8925
  case 1:
9873
- return [2
9874
- /*return*/
9875
- , _a.sent()];
8926
+ return [2 /*return*/, _a.sent()];
9876
8927
  }
9877
8928
  });
9878
8929
  });
9879
8930
  };
9880
-
9881
8931
  MqttOverWSProvider.prototype.disconnect = function (clientId) {
9882
- return __awaiter(this, void 0, void 0, function () {
8932
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
9883
8933
  var client;
9884
- return __generator(this, function (_a) {
8934
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
9885
8935
  switch (_a.label) {
9886
8936
  case 0:
9887
- return [4
9888
- /*yield*/
9889
- , this.clientsQueue.get(clientId)];
9890
-
8937
+ return [4 /*yield*/, this.clientsQueue.get(clientId)];
9891
8938
  case 1:
9892
8939
  client = _a.sent();
9893
-
9894
8940
  if (client && client.isConnected()) {
9895
8941
  client.disconnect();
9896
8942
  }
9897
-
9898
8943
  this.clientsQueue.remove(clientId);
9899
- return [2
9900
- /*return*/
9901
- ];
8944
+ this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_7__["CONNECTION_CHANGE"].CLOSED);
8945
+ return [2 /*return*/];
9902
8946
  }
9903
8947
  });
9904
8948
  });
9905
8949
  };
9906
8950
 
9907
8951
  MqttOverWSProvider.prototype.publish = function (topics, msg) {
9908
- return __awaiter(this, void 0, void 0, function () {
9909
- var targetTopics, message, url, client;
9910
- return __generator(this, function (_a) {
8952
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
8953
+ var targetTopics, message, client;
8954
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
9911
8955
  switch (_a.label) {
9912
8956
  case 0:
9913
8957
  targetTopics = [].concat(topics);
9914
8958
  message = JSON.stringify(msg);
9915
- return [4
9916
- /*yield*/
9917
- , this.endpoint];
9918
-
8959
+ return [4 /*yield*/, this.clientsQueue.get(this.clientId)];
9919
8960
  case 1:
9920
- url = _a.sent();
9921
- return [4
9922
- /*yield*/
9923
- , this.connect(this.clientId, {
9924
- url: url
9925
- })];
9926
-
9927
- case 2:
9928
8961
  client = _a.sent();
9929
- logger.debug('Publishing to topic(s)', targetTopics.join(','), message);
9930
- targetTopics.forEach(function (topic) {
9931
- return client.send(topic, message);
9932
- });
9933
- return [2
9934
- /*return*/
9935
- ];
8962
+ if (client) {
8963
+ logger.debug('Publishing to topic(s)', targetTopics.join(','), message);
8964
+ targetTopics.forEach(function (topic) {
8965
+ return client.send(topic, message);
8966
+ });
8967
+ } else {
8968
+ logger.debug('Publishing to topic(s) failed', targetTopics.join(','), message);
8969
+ }
8970
+ return [2 /*return*/];
9936
8971
  }
9937
8972
  });
9938
8973
  });
@@ -9941,19 +8976,15 @@ function (_super) {
9941
8976
  MqttOverWSProvider.prototype._onMessage = function (topic, msg) {
9942
8977
  try {
9943
8978
  var matchedTopicObservers_1 = [];
9944
-
9945
8979
  this._topicObservers.forEach(function (observerForTopic, observerTopic) {
9946
8980
  if (mqttTopicMatch(observerTopic, topic)) {
9947
8981
  matchedTopicObservers_1.push(observerForTopic);
9948
8982
  }
9949
8983
  });
9950
-
9951
8984
  var parsedMessage_1 = JSON.parse(msg);
9952
-
9953
8985
  if (_typeof(parsedMessage_1) === 'object') {
9954
8986
  parsedMessage_1[topicSymbol] = topic;
9955
8987
  }
9956
-
9957
8988
  matchedTopicObservers_1.forEach(function (observersForTopic) {
9958
8989
  observersForTopic.forEach(function (observer) {
9959
8990
  return observer.next(parsedMessage_1);
@@ -9963,143 +8994,137 @@ function (_super) {
9963
8994
  logger.warn('Error handling message', error, msg);
9964
8995
  }
9965
8996
  };
9966
-
9967
8997
  MqttOverWSProvider.prototype.subscribe = function (topics, options) {
9968
8998
  var _this = this;
9969
-
9970
8999
  if (options === void 0) {
9971
9000
  options = {};
9972
9001
  }
9973
-
9974
9002
  var targetTopics = [].concat(topics);
9975
9003
  logger.debug('Subscribing to topic(s)', targetTopics.join(','));
9976
- return new zen_observable_ts__WEBPACK_IMPORTED_MODULE_2__["default"](function (observer) {
9004
+ var reconnectSubscription;
9005
+ return new zen_observable_ts__WEBPACK_IMPORTED_MODULE_3__["default"](function (observer) {
9977
9006
  targetTopics.forEach(function (topic) {
9978
9007
  // this._topicObservers is used to notify the observers according to the topic received on the message
9979
9008
  var observersForTopic = _this._topicObservers.get(topic);
9980
-
9981
9009
  if (!observersForTopic) {
9982
9010
  observersForTopic = new Set();
9983
-
9984
9011
  _this._topicObservers.set(topic, observersForTopic);
9985
9012
  }
9986
-
9987
9013
  observersForTopic.add(observer);
9988
- }); // @ts-ignore
9989
-
9990
- var client;
9014
+ });
9991
9015
  var _a = options.clientId,
9992
- clientId = _a === void 0 ? _this.clientId : _a; // this._clientIdObservers is used to close observers when client gets disconnected
9993
-
9016
+ clientId = _a === void 0 ? _this.clientId : _a;
9017
+ // this._clientIdObservers is used to close observers when client gets disconnected
9994
9018
  var observersForClientId = _this._clientIdObservers.get(clientId);
9995
-
9996
9019
  if (!observersForClientId) {
9997
9020
  observersForClientId = new Set();
9998
9021
  }
9999
-
10000
9022
  observersForClientId.add(observer);
10001
-
10002
9023
  _this._clientIdObservers.set(clientId, observersForClientId);
10003
-
10004
9024
  (function () {
10005
- return __awaiter(_this, void 0, void 0, function () {
10006
- var _a, url, _b, e_1;
10007
-
10008
- return __generator(this, function (_c) {
10009
- switch (_c.label) {
9025
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () {
9026
+ var getClient;
9027
+ var _this = this;
9028
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
9029
+ switch (_a.label) {
10010
9030
  case 0:
10011
- _a = options.url;
10012
- if (!(_a === void 0)) return [3
10013
- /*break*/
10014
- , 2];
10015
- return [4
10016
- /*yield*/
10017
- , this.endpoint];
10018
-
9031
+ getClient = function getClient() {
9032
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () {
9033
+ var _a, url, _b, client_1, e_1;
9034
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_c) {
9035
+ switch (_c.label) {
9036
+ case 0:
9037
+ _c.trys.push([0, 5,, 6]);
9038
+ _a = options.url;
9039
+ if (!(_a === void 0)) return [3 /*break*/, 2];
9040
+ return [4 /*yield*/, this.endpoint];
9041
+ case 1:
9042
+ _b = _c.sent();
9043
+ return [3 /*break*/, 3];
9044
+ case 2:
9045
+ _b = _a;
9046
+ _c.label = 3;
9047
+ case 3:
9048
+ url = _b;
9049
+ return [4 /*yield*/, this.connect(clientId, {
9050
+ url: url
9051
+ })];
9052
+ case 4:
9053
+ client_1 = _c.sent();
9054
+ if (client_1 !== undefined) {
9055
+ targetTopics.forEach(function (topic) {
9056
+ client_1.subscribe(topic);
9057
+ });
9058
+ }
9059
+ return [3 /*break*/, 6];
9060
+ case 5:
9061
+ e_1 = _c.sent();
9062
+ logger.debug('Error forming connection', e_1);
9063
+ return [3 /*break*/, 6];
9064
+ case 6:
9065
+ return [2 /*return*/];
9066
+ }
9067
+ });
9068
+ });
9069
+ };
9070
+ // Establish the initial connection
9071
+ return [4 /*yield*/, getClient()];
10019
9072
  case 1:
10020
- _b = _c.sent();
10021
- return [3
10022
- /*break*/
10023
- , 3];
10024
-
10025
- case 2:
10026
- _b = _a;
10027
- _c.label = 3;
10028
-
10029
- case 3:
10030
- url = _b;
10031
- _c.label = 4;
10032
-
10033
- case 4:
10034
- _c.trys.push([4, 6,, 7]);
10035
-
10036
- return [4
10037
- /*yield*/
10038
- , this.connect(clientId, {
10039
- url: url
10040
- })];
10041
-
10042
- case 5:
10043
- client = _c.sent();
10044
- targetTopics.forEach(function (topic) {
10045
- client.subscribe(topic);
9073
+ // Establish the initial connection
9074
+ _a.sent();
9075
+ // Add an observable to the reconnection list to manage reconnection for this subscription
9076
+ reconnectSubscription = new zen_observable_ts__WEBPACK_IMPORTED_MODULE_3__["default"](function (observer) {
9077
+ _this.reconnectionMonitor.addObserver(observer);
9078
+ }).subscribe(function () {
9079
+ getClient();
10046
9080
  });
10047
- return [3
10048
- /*break*/
10049
- , 7];
10050
-
10051
- case 6:
10052
- e_1 = _c.sent();
10053
- observer.error(e_1);
10054
- return [3
10055
- /*break*/
10056
- , 7];
10057
-
10058
- case 7:
10059
- return [2
10060
- /*return*/
10061
- ];
9081
+ return [2 /*return*/];
10062
9082
  }
10063
9083
  });
10064
9084
  });
10065
9085
  })();
10066
9086
 
10067
9087
  return function () {
10068
- var _a, _b;
10069
-
10070
- logger.debug('Unsubscribing from topic(s)', targetTopics.join(','));
10071
-
10072
- if (client) {
10073
- (_a = _this._clientIdObservers.get(clientId)) === null || _a === void 0 ? void 0 : _a["delete"](observer); // No more observers per client => client not needed anymore
10074
-
10075
- if (((_b = _this._clientIdObservers.get(clientId)) === null || _b === void 0 ? void 0 : _b.size) === 0) {
10076
- _this.disconnect(clientId);
10077
-
10078
- _this._clientIdObservers["delete"](clientId);
10079
- }
10080
-
10081
- targetTopics.forEach(function (topic) {
10082
- var observersForTopic = _this._topicObservers.get(topic) || new Set();
10083
- observersForTopic["delete"](observer); // if no observers exists for the topic, topic should be removed
10084
-
10085
- if (observersForTopic.size === 0) {
10086
- _this._topicObservers["delete"](topic);
10087
-
10088
- if (client.isConnected()) {
10089
- client.unsubscribe(topic);
10090
- }
9088
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () {
9089
+ var client;
9090
+ var _this = this;
9091
+ var _a, _b;
9092
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_c) {
9093
+ switch (_c.label) {
9094
+ case 0:
9095
+ return [4 /*yield*/, this.clientsQueue.get(clientId)];
9096
+ case 1:
9097
+ client = _c.sent();
9098
+ reconnectSubscription === null || reconnectSubscription === void 0 ? void 0 : reconnectSubscription.unsubscribe();
9099
+ if (client) {
9100
+ (_a = this._clientIdObservers.get(clientId)) === null || _a === void 0 ? void 0 : _a["delete"](observer);
9101
+ // No more observers per client => client not needed anymore
9102
+ if (((_b = this._clientIdObservers.get(clientId)) === null || _b === void 0 ? void 0 : _b.size) === 0) {
9103
+ this.disconnect(clientId);
9104
+ this.connectionStateMonitor.record(_utils_ConnectionStateMonitor__WEBPACK_IMPORTED_MODULE_7__["CONNECTION_CHANGE"].CLOSING_CONNECTION);
9105
+ this._clientIdObservers["delete"](clientId);
9106
+ }
9107
+ targetTopics.forEach(function (topic) {
9108
+ var observersForTopic = _this._topicObservers.get(topic) || new Set();
9109
+ observersForTopic["delete"](observer);
9110
+ // if no observers exists for the topic, topic should be removed
9111
+ if (observersForTopic.size === 0) {
9112
+ _this._topicObservers["delete"](topic);
9113
+ if (client.isConnected()) {
9114
+ client.unsubscribe(topic);
9115
+ }
9116
+ }
9117
+ });
9118
+ }
9119
+ return [2 /*return*/, null];
10091
9120
  }
10092
9121
  });
10093
- }
10094
-
10095
- return null;
9122
+ });
10096
9123
  };
10097
9124
  });
10098
9125
  };
10099
-
10100
9126
  return MqttOverWSProvider;
10101
- }(_PubSubProvider__WEBPACK_IMPORTED_MODULE_3__["AbstractPubSubProvider"]);
10102
-
9127
+ }(_PubSubProvider__WEBPACK_IMPORTED_MODULE_4__["AbstractPubSubProvider"]);
10103
9128
 
10104
9129
 
10105
9130
  /***/ }),
@@ -10114,55 +9139,33 @@ function (_super) {
10114
9139
  "use strict";
10115
9140
  __webpack_require__.r(__webpack_exports__);
10116
9141
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AbstractPubSubProvider", function() { return AbstractPubSubProvider; });
10117
- /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
10118
- /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__);
10119
- var __assign = undefined && undefined.__assign || function () {
10120
- __assign = Object.assign || function (t) {
10121
- for (var s, i = 1, n = arguments.length; i < n; i++) {
10122
- s = arguments[i];
10123
-
10124
- for (var p in s) {
10125
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
10126
- }
10127
- }
10128
-
10129
- return t;
10130
- };
10131
-
10132
- return __assign.apply(this, arguments);
10133
- };
10134
-
9142
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
9143
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
9144
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__);
10135
9145
 
10136
- var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('AbstractPubSubProvider');
10137
9146
 
10138
- var AbstractPubSubProvider =
10139
- /** @class */
10140
- function () {
9147
+ var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["ConsoleLogger"]('AbstractPubSubProvider');
9148
+ var AbstractPubSubProvider = /** @class */function () {
10141
9149
  function AbstractPubSubProvider(options) {
10142
9150
  if (options === void 0) {
10143
9151
  options = {};
10144
9152
  }
10145
-
10146
9153
  this._config = options;
10147
9154
  }
10148
-
10149
9155
  AbstractPubSubProvider.prototype.configure = function (config) {
10150
9156
  if (config === void 0) {
10151
9157
  config = {};
10152
9158
  }
10153
-
10154
- this._config = __assign(__assign({}, config), this._config);
9159
+ this._config = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, config), this._config);
10155
9160
  logger.debug("configure " + this.getProviderName(), this._config);
10156
9161
  return this.options;
10157
9162
  };
10158
-
10159
9163
  AbstractPubSubProvider.prototype.getCategory = function () {
10160
9164
  return 'PubSub';
10161
9165
  };
10162
-
10163
9166
  Object.defineProperty(AbstractPubSubProvider.prototype, "options", {
10164
9167
  get: function get() {
10165
- return __assign({}, this._config);
9168
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, this._config);
10166
9169
  },
10167
9170
  enumerable: true,
10168
9171
  configurable: true
@@ -10171,6 +9174,129 @@ function () {
10171
9174
  }();
10172
9175
 
10173
9176
 
9177
+ /***/ }),
9178
+
9179
+ /***/ "./lib-esm/Providers/constants.js":
9180
+ /*!****************************************!*\
9181
+ !*** ./lib-esm/Providers/constants.js ***!
9182
+ \****************************************/
9183
+ /*! exports provided: MAX_DELAY_MS, NON_RETRYABLE_CODES, CONNECTION_STATE_CHANGE, MESSAGE_TYPES, SUBSCRIPTION_STATUS, SOCKET_STATUS, AMPLIFY_SYMBOL, AWS_APPSYNC_REALTIME_HEADERS, CONNECTION_INIT_TIMEOUT, START_ACK_TIMEOUT, DEFAULT_KEEP_ALIVE_TIMEOUT, DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT, RECONNECT_DELAY, RECONNECT_INTERVAL */
9184
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
9185
+
9186
+ "use strict";
9187
+ __webpack_require__.r(__webpack_exports__);
9188
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAX_DELAY_MS", function() { return MAX_DELAY_MS; });
9189
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NON_RETRYABLE_CODES", function() { return NON_RETRYABLE_CODES; });
9190
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CONNECTION_STATE_CHANGE", function() { return CONNECTION_STATE_CHANGE; });
9191
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MESSAGE_TYPES", function() { return MESSAGE_TYPES; });
9192
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SUBSCRIPTION_STATUS", function() { return SUBSCRIPTION_STATUS; });
9193
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SOCKET_STATUS", function() { return SOCKET_STATUS; });
9194
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AMPLIFY_SYMBOL", function() { return AMPLIFY_SYMBOL; });
9195
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AWS_APPSYNC_REALTIME_HEADERS", function() { return AWS_APPSYNC_REALTIME_HEADERS; });
9196
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CONNECTION_INIT_TIMEOUT", function() { return CONNECTION_INIT_TIMEOUT; });
9197
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "START_ACK_TIMEOUT", function() { return START_ACK_TIMEOUT; });
9198
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_KEEP_ALIVE_TIMEOUT", function() { return DEFAULT_KEEP_ALIVE_TIMEOUT; });
9199
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT", function() { return DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT; });
9200
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RECONNECT_DELAY", function() { return RECONNECT_DELAY; });
9201
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RECONNECT_INTERVAL", function() { return RECONNECT_INTERVAL; });
9202
+ var MAX_DELAY_MS = 5000;
9203
+ var NON_RETRYABLE_CODES = [400, 401, 403];
9204
+ var CONNECTION_STATE_CHANGE = 'ConnectionStateChange';
9205
+ var MESSAGE_TYPES;
9206
+ (function (MESSAGE_TYPES) {
9207
+ /**
9208
+ * Client -> Server message.
9209
+ * This message type is the first message after handshake and this will initialize AWS AppSync RealTime communication
9210
+ */
9211
+ MESSAGE_TYPES["GQL_CONNECTION_INIT"] = "connection_init";
9212
+ /**
9213
+ * Server -> Client message
9214
+ * This message type is in case there is an issue with AWS AppSync RealTime when establishing connection
9215
+ */
9216
+ MESSAGE_TYPES["GQL_CONNECTION_ERROR"] = "connection_error";
9217
+ /**
9218
+ * Server -> Client message.
9219
+ * This message type is for the ack response from AWS AppSync RealTime for GQL_CONNECTION_INIT message
9220
+ */
9221
+ MESSAGE_TYPES["GQL_CONNECTION_ACK"] = "connection_ack";
9222
+ /**
9223
+ * Client -> Server message.
9224
+ * This message type is for register subscriptions with AWS AppSync RealTime
9225
+ */
9226
+ MESSAGE_TYPES["GQL_START"] = "start";
9227
+ /**
9228
+ * Server -> Client message.
9229
+ * This message type is for the ack response from AWS AppSync RealTime for GQL_START message
9230
+ */
9231
+ MESSAGE_TYPES["GQL_START_ACK"] = "start_ack";
9232
+ /**
9233
+ * Server -> Client message.
9234
+ * This message type is for subscription message from AWS AppSync RealTime
9235
+ */
9236
+ MESSAGE_TYPES["GQL_DATA"] = "data";
9237
+ /**
9238
+ * Server -> Client message.
9239
+ * This message type helps the client to know is still receiving messages from AWS AppSync RealTime
9240
+ */
9241
+ MESSAGE_TYPES["GQL_CONNECTION_KEEP_ALIVE"] = "ka";
9242
+ /**
9243
+ * Client -> Server message.
9244
+ * This message type is for unregister subscriptions with AWS AppSync RealTime
9245
+ */
9246
+ MESSAGE_TYPES["GQL_STOP"] = "stop";
9247
+ /**
9248
+ * Server -> Client message.
9249
+ * This message type is for the ack response from AWS AppSync RealTime for GQL_STOP message
9250
+ */
9251
+ MESSAGE_TYPES["GQL_COMPLETE"] = "complete";
9252
+ /**
9253
+ * Server -> Client message.
9254
+ * This message type is for sending error messages from AWS AppSync RealTime to the client
9255
+ */
9256
+ MESSAGE_TYPES["GQL_ERROR"] = "error";
9257
+ })(MESSAGE_TYPES || (MESSAGE_TYPES = {}));
9258
+ var SUBSCRIPTION_STATUS;
9259
+ (function (SUBSCRIPTION_STATUS) {
9260
+ SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS["PENDING"] = 0] = "PENDING";
9261
+ SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS["CONNECTED"] = 1] = "CONNECTED";
9262
+ SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS["FAILED"] = 2] = "FAILED";
9263
+ })(SUBSCRIPTION_STATUS || (SUBSCRIPTION_STATUS = {}));
9264
+ var SOCKET_STATUS;
9265
+ (function (SOCKET_STATUS) {
9266
+ SOCKET_STATUS[SOCKET_STATUS["CLOSED"] = 0] = "CLOSED";
9267
+ SOCKET_STATUS[SOCKET_STATUS["READY"] = 1] = "READY";
9268
+ SOCKET_STATUS[SOCKET_STATUS["CONNECTING"] = 2] = "CONNECTING";
9269
+ })(SOCKET_STATUS || (SOCKET_STATUS = {}));
9270
+ var AMPLIFY_SYMBOL = typeof Symbol !== 'undefined' && typeof Symbol["for"] === 'function' ? Symbol["for"]('amplify_default') : '@@amplify_default';
9271
+ var AWS_APPSYNC_REALTIME_HEADERS = {
9272
+ accept: 'application/json, text/javascript',
9273
+ 'content-encoding': 'amz-1.0',
9274
+ 'content-type': 'application/json; charset=UTF-8'
9275
+ };
9276
+ /**
9277
+ * Time in milleseconds to wait for GQL_CONNECTION_INIT message
9278
+ */
9279
+ var CONNECTION_INIT_TIMEOUT = 15000;
9280
+ /**
9281
+ * Time in milleseconds to wait for GQL_START_ACK message
9282
+ */
9283
+ var START_ACK_TIMEOUT = 15000;
9284
+ /**
9285
+ * Default Time in milleseconds to wait for GQL_CONNECTION_KEEP_ALIVE message
9286
+ */
9287
+ var DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;
9288
+ /**
9289
+ * Default Time in milleseconds to alert for missed GQL_CONNECTION_KEEP_ALIVE message
9290
+ */
9291
+ var DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT = 65 * 1000;
9292
+ /**
9293
+ * Default delay time in milleseconds between when reconnect is triggered vs when it is attempted
9294
+ */
9295
+ var RECONNECT_DELAY = 5 * 1000;
9296
+ /**
9297
+ * Default interval time in milleseconds between when reconnect is re-attempted
9298
+ */
9299
+ var RECONNECT_INTERVAL = 60 * 1000;
10174
9300
 
10175
9301
  /***/ }),
10176
9302
 
@@ -10231,152 +9357,12 @@ __webpack_require__.r(__webpack_exports__);
10231
9357
  __webpack_require__.r(__webpack_exports__);
10232
9358
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PubSubClass", function() { return PubSubClass; });
10233
9359
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PubSub", function() { return PubSub; });
10234
- /* harmony import */ var zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zen-observable-ts */ "../../node_modules/zen-observable-ts/lib/bundle.esm.js");
10235
- /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
10236
- /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__);
10237
- /* harmony import */ var _Providers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Providers */ "./lib-esm/Providers/index.js");
10238
- var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
10239
- function adopt(value) {
10240
- return value instanceof P ? value : new P(function (resolve) {
10241
- resolve(value);
10242
- });
10243
- }
10244
-
10245
- return new (P || (P = Promise))(function (resolve, reject) {
10246
- function fulfilled(value) {
10247
- try {
10248
- step(generator.next(value));
10249
- } catch (e) {
10250
- reject(e);
10251
- }
10252
- }
10253
-
10254
- function rejected(value) {
10255
- try {
10256
- step(generator["throw"](value));
10257
- } catch (e) {
10258
- reject(e);
10259
- }
10260
- }
10261
-
10262
- function step(result) {
10263
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
10264
- }
10265
-
10266
- step((generator = generator.apply(thisArg, _arguments || [])).next());
10267
- });
10268
- };
10269
-
10270
- var __generator = undefined && undefined.__generator || function (thisArg, body) {
10271
- var _ = {
10272
- label: 0,
10273
- sent: function sent() {
10274
- if (t[0] & 1) throw t[1];
10275
- return t[1];
10276
- },
10277
- trys: [],
10278
- ops: []
10279
- },
10280
- f,
10281
- y,
10282
- t,
10283
- g;
10284
- return g = {
10285
- next: verb(0),
10286
- "throw": verb(1),
10287
- "return": verb(2)
10288
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
10289
- return this;
10290
- }), g;
10291
-
10292
- function verb(n) {
10293
- return function (v) {
10294
- return step([n, v]);
10295
- };
10296
- }
10297
-
10298
- function step(op) {
10299
- if (f) throw new TypeError("Generator is already executing.");
10300
-
10301
- while (_) {
10302
- try {
10303
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
10304
- if (y = 0, t) op = [op[0] & 2, t.value];
10305
-
10306
- switch (op[0]) {
10307
- case 0:
10308
- case 1:
10309
- t = op;
10310
- break;
10311
-
10312
- case 4:
10313
- _.label++;
10314
- return {
10315
- value: op[1],
10316
- done: false
10317
- };
10318
-
10319
- case 5:
10320
- _.label++;
10321
- y = op[1];
10322
- op = [0];
10323
- continue;
10324
-
10325
- case 7:
10326
- op = _.ops.pop();
10327
-
10328
- _.trys.pop();
10329
-
10330
- continue;
10331
-
10332
- default:
10333
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
10334
- _ = 0;
10335
- continue;
10336
- }
10337
-
10338
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
10339
- _.label = op[1];
10340
- break;
10341
- }
10342
-
10343
- if (op[0] === 6 && _.label < t[1]) {
10344
- _.label = t[1];
10345
- t = op;
10346
- break;
10347
- }
10348
-
10349
- if (t && _.label < t[2]) {
10350
- _.label = t[2];
10351
-
10352
- _.ops.push(op);
10353
-
10354
- break;
10355
- }
10356
-
10357
- if (t[2]) _.ops.pop();
10358
-
10359
- _.trys.pop();
10360
-
10361
- continue;
10362
- }
10363
-
10364
- op = body.call(thisArg, _);
10365
- } catch (e) {
10366
- op = [6, e];
10367
- y = 0;
10368
- } finally {
10369
- f = t = 0;
10370
- }
10371
- }
9360
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
9361
+ /* harmony import */ var zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! zen-observable-ts */ "../../node_modules/zen-observable-ts/lib/bundle.esm.js");
9362
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
9363
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_2__);
9364
+ /* harmony import */ var _Providers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Providers */ "./lib-esm/Providers/index.js");
10372
9365
 
10373
- if (op[0] & 5) throw op[1];
10374
- return {
10375
- value: op[0] ? op[1] : void 0,
10376
- done: true
10377
- };
10378
- }
10379
- };
10380
9366
  /*
10381
9367
  * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
10382
9368
  *
@@ -10393,14 +9379,9 @@ var __generator = undefined && undefined.__generator || function (thisArg, body)
10393
9379
 
10394
9380
 
10395
9381
 
10396
-
10397
-
10398
- var isNode = Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["browserOrNode"])().isNode;
10399
- var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["ConsoleLogger"]('PubSub');
10400
-
10401
- var PubSubClass =
10402
- /** @class */
10403
- function () {
9382
+ var isNode = Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_2__["browserOrNode"])().isNode;
9383
+ var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_2__["ConsoleLogger"]('PubSub');
9384
+ var PubSubClass = /** @class */function () {
10404
9385
  /**
10405
9386
  * Initialize PubSub with AWS configurations
10406
9387
  *
@@ -10412,16 +9393,14 @@ function () {
10412
9393
  this._pluggables = [];
10413
9394
  this.subscribe = this.subscribe.bind(this);
10414
9395
  }
10415
-
10416
9396
  Object.defineProperty(PubSubClass.prototype, "awsAppSyncProvider", {
10417
9397
  /**
10418
9398
  * Lazy instantiate AWSAppSyncProvider when it is required by the API category
10419
9399
  */
10420
9400
  get: function get() {
10421
9401
  if (!this._awsAppSyncProvider) {
10422
- this._awsAppSyncProvider = new _Providers__WEBPACK_IMPORTED_MODULE_2__["AWSAppSyncProvider"](this._options);
9402
+ this._awsAppSyncProvider = new _Providers__WEBPACK_IMPORTED_MODULE_3__["AWSAppSyncProvider"](this._options);
10423
9403
  }
10424
-
10425
9404
  return this._awsAppSyncProvider;
10426
9405
  },
10427
9406
  enumerable: true,
@@ -10433,15 +9412,13 @@ function () {
10433
9412
  */
10434
9413
  get: function get() {
10435
9414
  if (!this._awsAppSyncRealTimeProvider) {
10436
- this._awsAppSyncRealTimeProvider = new _Providers__WEBPACK_IMPORTED_MODULE_2__["AWSAppSyncRealTimeProvider"](this._options);
9415
+ this._awsAppSyncRealTimeProvider = new _Providers__WEBPACK_IMPORTED_MODULE_3__["AWSAppSyncRealTimeProvider"](this._options);
10437
9416
  }
10438
-
10439
9417
  return this._awsAppSyncRealTimeProvider;
10440
9418
  },
10441
9419
  enumerable: true,
10442
9420
  configurable: true
10443
9421
  });
10444
-
10445
9422
  PubSubClass.prototype.getModuleName = function () {
10446
9423
  return 'PubSub';
10447
9424
  };
@@ -10451,45 +9428,32 @@ function () {
10451
9428
  * @param {PubSubOptions} config - Configuration for PubSub
10452
9429
  * @return {Object} - The current configuration
10453
9430
  */
10454
-
10455
-
10456
9431
  PubSubClass.prototype.configure = function (options) {
10457
9432
  var _this = this;
10458
-
10459
9433
  var opt = options ? options.PubSub || options : {};
10460
9434
  logger.debug('configure PubSub', {
10461
9435
  opt: opt
10462
9436
  });
10463
9437
  this._options = Object.assign({}, this._options, opt);
10464
-
10465
9438
  this._pluggables.map(function (pluggable) {
10466
9439
  return pluggable.configure(_this._options);
10467
9440
  });
10468
-
10469
9441
  return this._options;
10470
9442
  };
10471
9443
  /**
10472
9444
  * add plugin into Analytics category
10473
9445
  * @param {Object} pluggable - an instance of the plugin
10474
9446
  */
10475
-
10476
-
10477
9447
  PubSubClass.prototype.addPluggable = function (pluggable) {
10478
- return __awaiter(this, void 0, void 0, function () {
9448
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
10479
9449
  var config;
10480
- return __generator(this, function (_a) {
9450
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
10481
9451
  if (pluggable && pluggable.getCategory() === 'PubSub') {
10482
9452
  this._pluggables.push(pluggable);
10483
-
10484
9453
  config = pluggable.configure(this._options);
10485
- return [2
10486
- /*return*/
10487
- , config];
9454
+ return [2 /*return*/, config];
10488
9455
  }
10489
-
10490
- return [2
10491
- /*return*/
10492
- ];
9456
+ return [2 /*return*/];
10493
9457
  });
10494
9458
  });
10495
9459
  };
@@ -10497,68 +9461,52 @@ function () {
10497
9461
  * remove plugin from PubSub category
10498
9462
  * @param providerName - the name of the plugin
10499
9463
  */
10500
-
10501
-
10502
9464
  PubSubClass.prototype.removePluggable = function (providerName) {
10503
9465
  this._pluggables = this._pluggables.filter(function (pluggable) {
10504
9466
  return pluggable.getProviderName() !== providerName;
10505
9467
  });
10506
9468
  };
10507
-
10508
9469
  PubSubClass.prototype.getProviderByName = function (providerName) {
10509
- if (providerName === _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER"]) {
9470
+ if (providerName === _aws_amplify_core__WEBPACK_IMPORTED_MODULE_2__["INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER"]) {
10510
9471
  return this.awsAppSyncProvider;
10511
9472
  }
10512
-
10513
- if (providerName === _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER"]) {
9473
+ if (providerName === _aws_amplify_core__WEBPACK_IMPORTED_MODULE_2__["INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER"]) {
10514
9474
  return this.awsAppSyncRealTimeProvider;
10515
9475
  }
10516
-
10517
9476
  return this._pluggables.find(function (pluggable) {
10518
9477
  return pluggable.getProviderName() === providerName;
10519
9478
  });
10520
9479
  };
10521
-
10522
9480
  PubSubClass.prototype.getProviders = function (options) {
10523
9481
  if (options === void 0) {
10524
9482
  options = {};
10525
9483
  }
10526
-
10527
9484
  var providerName = options.provider;
10528
-
10529
9485
  if (!providerName) {
10530
9486
  return this._pluggables;
10531
9487
  }
10532
-
10533
9488
  var provider = this.getProviderByName(providerName);
10534
-
10535
9489
  if (!provider) {
10536
9490
  throw new Error("Could not find provider named " + providerName);
10537
9491
  }
10538
-
10539
9492
  return [provider];
10540
9493
  };
10541
-
10542
9494
  PubSubClass.prototype.publish = function (topics, msg, options) {
10543
- return __awaiter(this, void 0, void 0, function () {
10544
- return __generator(this, function (_a) {
10545
- return [2
10546
- /*return*/
10547
- , Promise.all(this.getProviders(options).map(function (provider) {
9495
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () {
9496
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) {
9497
+ return [2 /*return*/, Promise.all(this.getProviders(options).map(function (provider) {
10548
9498
  return provider.publish(topics, msg, options);
10549
9499
  }))];
10550
9500
  });
10551
9501
  });
10552
9502
  };
10553
-
10554
9503
  PubSubClass.prototype.subscribe = function (topics, options) {
10555
9504
  if (isNode && this._options && this._options.ssr) {
10556
9505
  throw new Error('Subscriptions are not supported for Server-Side Rendering (SSR)');
10557
9506
  }
10558
-
10559
9507
  logger.debug('subscribe options', options);
10560
9508
  var providers = this.getProviders(options);
10561
- return new zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"](function (observer) {
9509
+ return new zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__["default"](function (observer) {
10562
9510
  var observables = providers.map(function (provider) {
10563
9511
  return {
10564
9512
  provider: provider,
@@ -10567,7 +9515,7 @@ function () {
10567
9515
  });
10568
9516
  var subscriptions = observables.map(function (_a) {
10569
9517
  var provider = _a.provider,
10570
- observable = _a.observable;
9518
+ observable = _a.observable;
10571
9519
  return observable.subscribe({
10572
9520
  start: console.error,
10573
9521
  next: function next(value) {
@@ -10591,13 +9539,11 @@ function () {
10591
9539
  };
10592
9540
  });
10593
9541
  };
10594
-
10595
9542
  return PubSubClass;
10596
9543
  }();
10597
9544
 
10598
-
10599
9545
  var PubSub = new PubSubClass();
10600
- _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["Amplify"].register(PubSub);
9546
+ _aws_amplify_core__WEBPACK_IMPORTED_MODULE_2__["Amplify"].register(PubSub);
10601
9547
 
10602
9548
  /***/ }),
10603
9549
 
@@ -10605,13 +9551,11 @@ _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["Amplify"].register(PubSub);
10605
9551
  /*!**************************!*\
10606
9552
  !*** ./lib-esm/index.js ***!
10607
9553
  \**************************/
10608
- /*! exports provided: AbstractPubSubProvider, AWSAppSyncProvider, AWSAppSyncRealTimeProvider, AWSIoTProvider, mqttTopicMatch, MqttOverWSProvider, CONNECTION_STATE_CHANGE, ConnectionState, PubSub, CONTROL_MSG, default */
9554
+ /*! exports provided: AbstractPubSubProvider, AWSAppSyncProvider, AWSAppSyncRealTimeProvider, AWSIoTProvider, mqttTopicMatch, MqttOverWSProvider, CONNECTION_STATE_CHANGE, ConnectionState, CONTROL_MSG, PubSub, default */
10609
9555
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10610
9556
 
10611
9557
  "use strict";
10612
9558
  __webpack_require__.r(__webpack_exports__);
10613
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CONNECTION_STATE_CHANGE", function() { return CONNECTION_STATE_CHANGE; });
10614
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CONTROL_MSG", function() { return CONTROL_MSG; });
10615
9559
  /* harmony import */ var _PubSub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PubSub */ "./lib-esm/PubSub.js");
10616
9560
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PubSub", function() { return _PubSub__WEBPACK_IMPORTED_MODULE_0__["PubSub"]; });
10617
9561
 
@@ -10628,8 +9572,13 @@ __webpack_require__.r(__webpack_exports__);
10628
9572
 
10629
9573
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MqttOverWSProvider", function() { return _Providers__WEBPACK_IMPORTED_MODULE_1__["MqttOverWSProvider"]; });
10630
9574
 
10631
- /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types */ "./lib-esm/types/index.js");
10632
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectionState", function() { return _types__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"]; });
9575
+ /* harmony import */ var _Providers_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Providers/constants */ "./lib-esm/Providers/constants.js");
9576
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CONNECTION_STATE_CHANGE", function() { return _Providers_constants__WEBPACK_IMPORTED_MODULE_2__["CONNECTION_STATE_CHANGE"]; });
9577
+
9578
+ /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./types */ "./lib-esm/types/index.js");
9579
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectionState", function() { return _types__WEBPACK_IMPORTED_MODULE_3__["ConnectionState"]; });
9580
+
9581
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CONTROL_MSG", function() { return _types__WEBPACK_IMPORTED_MODULE_3__["CONTROL_MSG"]; });
10633
9582
 
10634
9583
  /*
10635
9584
  * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
@@ -10645,40 +9594,49 @@ __webpack_require__.r(__webpack_exports__);
10645
9594
  */
10646
9595
 
10647
9596
 
10648
- var CONTROL_MSG;
10649
-
10650
- (function (CONTROL_MSG) {
10651
- CONTROL_MSG["CONNECTION_CLOSED"] = "Connection closed";
10652
- CONTROL_MSG["CONNECTION_FAILED"] = "Connection failed";
10653
- CONTROL_MSG["REALTIME_SUBSCRIPTION_INIT_ERROR"] = "AppSync Realtime subscription init error";
10654
- CONTROL_MSG["SUBSCRIPTION_ACK"] = "Subscription ack";
10655
- CONTROL_MSG["TIMEOUT_DISCONNECT"] = "Timeout disconnect";
10656
- })(CONTROL_MSG || (CONTROL_MSG = {}));
10657
9597
 
10658
- var CONNECTION_STATE_CHANGE = 'ConnectionStateChange';
10659
9598
 
10660
9599
 
10661
9600
  /**
10662
9601
  * @deprecated use named import
10663
9602
  */
10664
-
10665
9603
  /* harmony default export */ __webpack_exports__["default"] = (_PubSub__WEBPACK_IMPORTED_MODULE_0__["PubSub"]);
10666
9604
 
10667
9605
  /***/ }),
10668
9606
 
10669
- /***/ "./lib-esm/types/index.js":
10670
- /*!********************************!*\
10671
- !*** ./lib-esm/types/index.js ***!
10672
- \********************************/
10673
- /*! exports provided: ConnectionState */
9607
+ /***/ "./lib-esm/types/PubSub.js":
9608
+ /*!*********************************!*\
9609
+ !*** ./lib-esm/types/PubSub.js ***!
9610
+ \*********************************/
9611
+ /*! exports provided: CONTROL_MSG, ConnectionState */
10674
9612
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10675
9613
 
10676
9614
  "use strict";
10677
9615
  __webpack_require__.r(__webpack_exports__);
9616
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CONTROL_MSG", function() { return CONTROL_MSG; });
10678
9617
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectionState", function() { return ConnectionState; });
9618
+ /*
9619
+ * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
9620
+ *
9621
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
9622
+ * the License. A copy of the License is located at
9623
+ *
9624
+ * http://aws.amazon.com/apache2.0/
9625
+ *
9626
+ * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9627
+ * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
9628
+ * and limitations under the License.
9629
+ */
9630
+ var CONTROL_MSG;
9631
+ (function (CONTROL_MSG) {
9632
+ CONTROL_MSG["CONNECTION_CLOSED"] = "Connection closed";
9633
+ CONTROL_MSG["CONNECTION_FAILED"] = "Connection failed";
9634
+ CONTROL_MSG["REALTIME_SUBSCRIPTION_INIT_ERROR"] = "AppSync Realtime subscription init error";
9635
+ CONTROL_MSG["SUBSCRIPTION_ACK"] = "Subscription ack";
9636
+ CONTROL_MSG["TIMEOUT_DISCONNECT"] = "Timeout disconnect";
9637
+ })(CONTROL_MSG || (CONTROL_MSG = {}));
10679
9638
  /** @enum {string} */
10680
9639
  var ConnectionState;
10681
-
10682
9640
  (function (ConnectionState) {
10683
9641
  /*
10684
9642
  * The connection is alive and healthy
@@ -10687,40 +9645,51 @@ var ConnectionState;
10687
9645
  /*
10688
9646
  * The connection is alive, but the connection is offline
10689
9647
  */
10690
-
10691
9648
  ConnectionState["ConnectedPendingNetwork"] = "ConnectedPendingNetwork";
10692
9649
  /*
10693
9650
  * The connection has been disconnected while in use
10694
9651
  */
10695
-
10696
9652
  ConnectionState["ConnectionDisrupted"] = "ConnectionDisrupted";
10697
9653
  /*
10698
9654
  * The connection has been disconnected and the network is offline
10699
9655
  */
10700
-
10701
9656
  ConnectionState["ConnectionDisruptedPendingNetwork"] = "ConnectionDisruptedPendingNetwork";
10702
9657
  /*
10703
9658
  * The connection is in the process of connecting
10704
9659
  */
10705
-
10706
9660
  ConnectionState["Connecting"] = "Connecting";
10707
9661
  /*
10708
9662
  * The connection is not in use and is being disconnected
10709
9663
  */
10710
-
10711
9664
  ConnectionState["ConnectedPendingDisconnect"] = "ConnectedPendingDisconnect";
10712
9665
  /*
10713
9666
  * The connection is not in use and has been disconnected
10714
9667
  */
10715
-
10716
9668
  ConnectionState["Disconnected"] = "Disconnected";
10717
9669
  /*
10718
9670
  * The connection is alive, but a keep alive message has been missed
10719
9671
  */
10720
-
10721
9672
  ConnectionState["ConnectedPendingKeepAlive"] = "ConnectedPendingKeepAlive";
10722
9673
  })(ConnectionState || (ConnectionState = {}));
10723
9674
 
9675
+ /***/ }),
9676
+
9677
+ /***/ "./lib-esm/types/index.js":
9678
+ /*!********************************!*\
9679
+ !*** ./lib-esm/types/index.js ***!
9680
+ \********************************/
9681
+ /*! exports provided: CONTROL_MSG, ConnectionState */
9682
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
9683
+
9684
+ "use strict";
9685
+ __webpack_require__.r(__webpack_exports__);
9686
+ /* harmony import */ var _PubSub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PubSub */ "./lib-esm/types/PubSub.js");
9687
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CONTROL_MSG", function() { return _PubSub__WEBPACK_IMPORTED_MODULE_0__["CONTROL_MSG"]; });
9688
+
9689
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectionState", function() { return _PubSub__WEBPACK_IMPORTED_MODULE_0__["ConnectionState"]; });
9690
+
9691
+
9692
+
10724
9693
  /***/ }),
10725
9694
 
10726
9695
  /***/ "./lib-esm/utils/ConnectionStateMonitor.js":
@@ -10734,10 +9703,10 @@ var ConnectionState;
10734
9703
  __webpack_require__.r(__webpack_exports__);
10735
9704
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CONNECTION_CHANGE", function() { return CONNECTION_CHANGE; });
10736
9705
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectionStateMonitor", function() { return ConnectionStateMonitor; });
10737
- /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
10738
- /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__);
9706
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../node_modules/tslib/tslib.es6.js");
10739
9707
  /* harmony import */ var zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! zen-observable-ts */ "../../node_modules/zen-observable-ts/lib/bundle.esm.js");
10740
- /* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../index */ "./lib-esm/index.js");
9708
+ /* harmony import */ var _types_PubSub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../types/PubSub */ "./lib-esm/types/PubSub.js");
9709
+ /* harmony import */ var _ReachabilityMonitor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ReachabilityMonitor */ "./lib-esm/utils/ReachabilityMonitor/index.js");
10741
9710
  /*
10742
9711
  * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
10743
9712
  *
@@ -10750,21 +9719,6 @@ __webpack_require__.r(__webpack_exports__);
10750
9719
  * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
10751
9720
  * and limitations under the License.
10752
9721
  */
10753
- var __assign = undefined && undefined.__assign || function () {
10754
- __assign = Object.assign || function (t) {
10755
- for (var s, i = 1, n = arguments.length; i < n; i++) {
10756
- s = arguments[i];
10757
-
10758
- for (var p in s) {
10759
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
10760
- }
10761
- }
10762
-
10763
- return t;
10764
- };
10765
-
10766
- return __assign.apply(this, arguments);
10767
- };
10768
9722
 
10769
9723
 
10770
9724
 
@@ -10800,13 +9754,9 @@ var CONNECTION_CHANGE = {
10800
9754
  networkState: 'disconnected'
10801
9755
  }
10802
9756
  };
10803
-
10804
- var ConnectionStateMonitor =
10805
- /** @class */
10806
- function () {
9757
+ var ConnectionStateMonitor = /** @class */function () {
10807
9758
  function ConnectionStateMonitor() {
10808
9759
  var _this = this;
10809
-
10810
9760
  this._networkMonitoringSubscription = undefined;
10811
9761
  this._linkedConnectionState = {
10812
9762
  networkState: 'connected',
@@ -10814,6 +9764,13 @@ function () {
10814
9764
  intendedConnectionState: 'disconnected',
10815
9765
  keepAliveState: 'healthy'
10816
9766
  };
9767
+ // Attempt to update the state with the current actual network state
9768
+ this._initialNetworkStateSubscription = Object(_ReachabilityMonitor__WEBPACK_IMPORTED_MODULE_3__["ReachabilityMonitor"])().subscribe(function (_a) {
9769
+ var online = _a.online;
9770
+ var _b;
9771
+ _this.record(online ? CONNECTION_CHANGE.ONLINE : CONNECTION_CHANGE.OFFLINE);
9772
+ (_b = _this._initialNetworkStateSubscription) === null || _b === void 0 ? void 0 : _b.unsubscribe();
9773
+ });
10817
9774
  this._linkedConnectionStateObservable = new zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__["default"](function (connectionStateObserver) {
10818
9775
  connectionStateObserver.next(_this._linkedConnectionState);
10819
9776
  _this._linkedConnectionStateObserver = connectionStateObserver;
@@ -10822,16 +9779,15 @@ function () {
10822
9779
  /**
10823
9780
  * Turn network state monitoring on if it isn't on already
10824
9781
  */
10825
-
10826
-
10827
9782
  ConnectionStateMonitor.prototype.enableNetworkMonitoring = function () {
10828
- var _this = this; // Maintain the network state based on the reachability monitor
10829
-
10830
-
9783
+ var _this = this;
9784
+ var _a;
9785
+ // If no initial network state was discovered, stop trying
9786
+ (_a = this._initialNetworkStateSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
9787
+ // Maintain the network state based on the reachability monitor
10831
9788
  if (this._networkMonitoringSubscription === undefined) {
10832
- this._networkMonitoringSubscription = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["Reachability"]().networkMonitor().subscribe(function (_a) {
9789
+ this._networkMonitoringSubscription = Object(_ReachabilityMonitor__WEBPACK_IMPORTED_MODULE_3__["ReachabilityMonitor"])().subscribe(function (_a) {
10833
9790
  var online = _a.online;
10834
-
10835
9791
  _this.record(online ? CONNECTION_CHANGE.ONLINE : CONNECTION_CHANGE.OFFLINE);
10836
9792
  });
10837
9793
  }
@@ -10839,15 +9795,11 @@ function () {
10839
9795
  /**
10840
9796
  * Turn network state monitoring off if it isn't off already
10841
9797
  */
10842
-
10843
-
10844
9798
  ConnectionStateMonitor.prototype.disableNetworkMonitoring = function () {
10845
9799
  var _a;
10846
-
10847
9800
  (_a = this._networkMonitoringSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
10848
9801
  this._networkMonitoringSubscription = undefined;
10849
9802
  };
10850
-
10851
9803
  Object.defineProperty(ConnectionStateMonitor.prototype, "connectionStateObservable", {
10852
9804
  /**
10853
9805
  * Get the observable that allows us to monitor the connection state
@@ -10856,12 +9808,11 @@ function () {
10856
9808
  */
10857
9809
  get: function get() {
10858
9810
  var _this = this;
10859
-
10860
- var previous; // The linked state aggregates state changes to any of the network, connection,
9811
+ var previous;
9812
+ // The linked state aggregates state changes to any of the network, connection,
10861
9813
  // intendedConnection and keepAliveHealth. Some states will change these independent
10862
9814
  // states without changing the overall connection state.
10863
9815
  // After translating from linked states to ConnectionState, then remove any duplicates
10864
-
10865
9816
  return this._linkedConnectionStateObservable.map(function (value) {
10866
9817
  return _this.connectionStatesTranslator(value);
10867
9818
  }).filter(function (current) {
@@ -10876,47 +9827,142 @@ function () {
10876
9827
  /*
10877
9828
  * Updates local connection state and emits the full state to the observer.
10878
9829
  */
10879
-
10880
9830
  ConnectionStateMonitor.prototype.record = function (statusUpdates) {
10881
9831
  // Maintain the network monitor
10882
9832
  if (statusUpdates.intendedConnectionState === 'connected') {
10883
9833
  this.enableNetworkMonitoring();
10884
9834
  } else if (statusUpdates.intendedConnectionState === 'disconnected') {
10885
9835
  this.disableNetworkMonitoring();
10886
- } // Maintain the socket state
10887
-
10888
-
10889
- var newSocketStatus = __assign(__assign({}, this._linkedConnectionState), statusUpdates);
10890
-
10891
- this._linkedConnectionState = __assign({}, newSocketStatus);
10892
-
9836
+ }
9837
+ // Maintain the socket state
9838
+ var newSocketStatus = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, this._linkedConnectionState), statusUpdates);
9839
+ this._linkedConnectionState = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, newSocketStatus);
10893
9840
  this._linkedConnectionStateObserver.next(this._linkedConnectionState);
10894
9841
  };
10895
9842
  /*
10896
9843
  * Translate the ConnectionState structure into a specific ConnectionState string literal union
10897
9844
  */
10898
-
10899
-
10900
9845
  ConnectionStateMonitor.prototype.connectionStatesTranslator = function (_a) {
10901
9846
  var connectionState = _a.connectionState,
10902
- networkState = _a.networkState,
10903
- intendedConnectionState = _a.intendedConnectionState,
10904
- keepAliveState = _a.keepAliveState;
10905
- if (connectionState === 'connected' && networkState === 'disconnected') return _index__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].ConnectedPendingNetwork;
10906
- if (connectionState === 'connected' && intendedConnectionState === 'disconnected') return _index__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].ConnectedPendingDisconnect;
10907
- if (connectionState === 'disconnected' && intendedConnectionState === 'connected' && networkState === 'disconnected') return _index__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].ConnectionDisruptedPendingNetwork;
10908
- if (connectionState === 'disconnected' && intendedConnectionState === 'connected') return _index__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].ConnectionDisrupted;
10909
- if (connectionState === 'connected' && keepAliveState === 'unhealthy') return _index__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].ConnectedPendingKeepAlive; // All remaining states directly correspond to the connection state
10910
-
10911
- if (connectionState === 'connecting') return _index__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].Connecting;
10912
- if (connectionState === 'disconnected') return _index__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].Disconnected;
10913
- return _index__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].Connected;
9847
+ networkState = _a.networkState,
9848
+ intendedConnectionState = _a.intendedConnectionState,
9849
+ keepAliveState = _a.keepAliveState;
9850
+ if (connectionState === 'connected' && networkState === 'disconnected') return _types_PubSub__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].ConnectedPendingNetwork;
9851
+ if (connectionState === 'connected' && intendedConnectionState === 'disconnected') return _types_PubSub__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].ConnectedPendingDisconnect;
9852
+ if (connectionState === 'disconnected' && intendedConnectionState === 'connected' && networkState === 'disconnected') return _types_PubSub__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].ConnectionDisruptedPendingNetwork;
9853
+ if (connectionState === 'disconnected' && intendedConnectionState === 'connected') return _types_PubSub__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].ConnectionDisrupted;
9854
+ if (connectionState === 'connected' && keepAliveState === 'unhealthy') return _types_PubSub__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].ConnectedPendingKeepAlive;
9855
+ // All remaining states directly correspond to the connection state
9856
+ if (connectionState === 'connecting') return _types_PubSub__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].Connecting;
9857
+ if (connectionState === 'disconnected') return _types_PubSub__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].Disconnected;
9858
+ return _types_PubSub__WEBPACK_IMPORTED_MODULE_2__["ConnectionState"].Connected;
10914
9859
  };
10915
-
10916
9860
  return ConnectionStateMonitor;
10917
9861
  }();
10918
9862
 
10919
9863
 
9864
+ /***/ }),
9865
+
9866
+ /***/ "./lib-esm/utils/ReachabilityMonitor/index.js":
9867
+ /*!****************************************************!*\
9868
+ !*** ./lib-esm/utils/ReachabilityMonitor/index.js ***!
9869
+ \****************************************************/
9870
+ /*! exports provided: ReachabilityMonitor */
9871
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
9872
+
9873
+ "use strict";
9874
+ __webpack_require__.r(__webpack_exports__);
9875
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReachabilityMonitor", function() { return ReachabilityMonitor; });
9876
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-amplify/core */ "@aws-amplify/core");
9877
+ /* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__);
9878
+
9879
+ var ReachabilityMonitor = function ReachabilityMonitor() {
9880
+ return new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["Reachability"]().networkMonitor();
9881
+ };
9882
+
9883
+ /***/ }),
9884
+
9885
+ /***/ "./lib-esm/utils/ReconnectionMonitor.js":
9886
+ /*!**********************************************!*\
9887
+ !*** ./lib-esm/utils/ReconnectionMonitor.js ***!
9888
+ \**********************************************/
9889
+ /*! exports provided: ReconnectEvent, ReconnectionMonitor */
9890
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
9891
+
9892
+ "use strict";
9893
+ __webpack_require__.r(__webpack_exports__);
9894
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReconnectEvent", function() { return ReconnectEvent; });
9895
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReconnectionMonitor", function() { return ReconnectionMonitor; });
9896
+ /* harmony import */ var _Providers_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Providers/constants */ "./lib-esm/Providers/constants.js");
9897
+
9898
+ var ReconnectEvent;
9899
+ (function (ReconnectEvent) {
9900
+ ReconnectEvent["START_RECONNECT"] = "START_RECONNECT";
9901
+ ReconnectEvent["HALT_RECONNECT"] = "HALT_RECONNECT";
9902
+ })(ReconnectEvent || (ReconnectEvent = {}));
9903
+ /**
9904
+ * Captures the reconnect event logic used to determine when to reconnect to PubSub providers.
9905
+ * Reconnnect attempts are delayed by 5 seconds to let the interface settle.
9906
+ * Attempting to reconnect only once creates unrecoverable states when the network state isn't
9907
+ * supported by the browser, so this keeps retrying every minute until halted.
9908
+ */
9909
+ var ReconnectionMonitor = /** @class */function () {
9910
+ function ReconnectionMonitor() {
9911
+ this.reconnectObservers = [];
9912
+ }
9913
+ /**
9914
+ * Add reconnect observer to the list of observers to alert on reconnect
9915
+ */
9916
+ ReconnectionMonitor.prototype.addObserver = function (reconnectObserver) {
9917
+ this.reconnectObservers.push(reconnectObserver);
9918
+ };
9919
+ /**
9920
+ * Given a reconnect event, start the appropriate behavior
9921
+ */
9922
+ ReconnectionMonitor.prototype.record = function (event) {
9923
+ var _this = this;
9924
+ if (event === ReconnectEvent.START_RECONNECT) {
9925
+ // If the reconnection hasn't been started
9926
+ if (this.reconnectSetTimeoutId === undefined && this.reconnectIntervalId === undefined) {
9927
+ this.reconnectSetTimeoutId = setTimeout(function () {
9928
+ // Reconnect now
9929
+ _this._triggerReconnect();
9930
+ // Retry reconnect every periodically until it works
9931
+ _this.reconnectIntervalId = setInterval(function () {
9932
+ _this._triggerReconnect();
9933
+ }, _Providers_constants__WEBPACK_IMPORTED_MODULE_0__["RECONNECT_INTERVAL"]);
9934
+ }, _Providers_constants__WEBPACK_IMPORTED_MODULE_0__["RECONNECT_DELAY"]);
9935
+ }
9936
+ }
9937
+ if (event === ReconnectEvent.HALT_RECONNECT) {
9938
+ if (this.reconnectIntervalId) {
9939
+ clearInterval(this.reconnectIntervalId);
9940
+ this.reconnectIntervalId = undefined;
9941
+ }
9942
+ if (this.reconnectSetTimeoutId) {
9943
+ clearTimeout(this.reconnectSetTimeoutId);
9944
+ this.reconnectSetTimeoutId = undefined;
9945
+ }
9946
+ }
9947
+ };
9948
+ /**
9949
+ * Complete all reconnect observers
9950
+ */
9951
+ ReconnectionMonitor.prototype.close = function () {
9952
+ this.reconnectObservers.forEach(function (reconnectObserver) {
9953
+ var _a;
9954
+ (_a = reconnectObserver.complete) === null || _a === void 0 ? void 0 : _a.call(reconnectObserver);
9955
+ });
9956
+ };
9957
+ ReconnectionMonitor.prototype._triggerReconnect = function () {
9958
+ this.reconnectObservers.forEach(function (reconnectObserver) {
9959
+ var _a;
9960
+ (_a = reconnectObserver.next) === null || _a === void 0 ? void 0 : _a.call(reconnectObserver);
9961
+ });
9962
+ };
9963
+ return ReconnectionMonitor;
9964
+ }();
9965
+
10920
9966
 
10921
9967
  /***/ }),
10922
9968