@resolveio/server-lib 6.1.3 → 6.1.5-newrole

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.
@@ -50,7 +50,6 @@ var app_version_1 = require("../publications/app-version");
50
50
  var mongoose_1 = require("mongoose");
51
51
  var files_1 = require("../publications/files");
52
52
  var super_admin_1 = require("../publications/super-admin");
53
- var active_subscription_collection_1 = require("../collections/active-subscription.collection");
54
53
  var logged_in_users_collection_1 = require("../collections/logged-in-users.collection");
55
54
  var cron_jobs_1 = require("../publications/cron-jobs");
56
55
  var flags_1 = require("../publications/flags");
@@ -135,16 +134,15 @@ var SubscriptionManager = /** @class */ (function () {
135
134
  }
136
135
  }
137
136
  }, 25);
138
- logged_in_users_collection_1.LoggedInUsers.find().then(function (loggedInUsers) {
139
- _this._loggedInUsers = loggedInUsers;
140
- }, function (err) {
141
- console.log(err);
142
- });
143
137
  setInterval(function () { return __awaiter(_this, void 0, void 0, function () {
144
- var userCopy, _loop_2, this_1, i;
145
- return __generator(this, function (_a) {
146
- switch (_a.label) {
138
+ var _a, userCopy, _loop_2, this_1, i, i, sub, _loop_3, this_2, j;
139
+ return __generator(this, function (_b) {
140
+ switch (_b.label) {
147
141
  case 0:
142
+ _a = this;
143
+ return [4 /*yield*/, logged_in_users_collection_1.LoggedInUsers.find()];
144
+ case 1:
145
+ _a._loggedInUsers = _b.sent();
148
146
  userCopy = common_1.deepCopy(this._loggedInUsers);
149
147
  _loop_2 = function (i) {
150
148
  var loggedInUser;
@@ -181,17 +179,31 @@ var SubscriptionManager = /** @class */ (function () {
181
179
  };
182
180
  this_1 = this;
183
181
  i = this._loggedInUsers.length - 1;
184
- _a.label = 1;
185
- case 1:
186
- if (!(i >= 0)) return [3 /*break*/, 4];
187
- return [5 /*yield**/, _loop_2(i)];
182
+ _b.label = 2;
188
183
  case 2:
189
- _a.sent();
190
- _a.label = 3;
184
+ if (!(i >= 0)) return [3 /*break*/, 5];
185
+ return [5 /*yield**/, _loop_2(i)];
191
186
  case 3:
187
+ _b.sent();
188
+ _b.label = 4;
189
+ case 4:
192
190
  i--;
193
- return [3 /*break*/, 1];
194
- case 4: return [2 /*return*/];
191
+ return [3 /*break*/, 2];
192
+ case 5:
193
+ for (i = 0; i < this._subscriptions.length; i++) {
194
+ sub = this._subscriptions[i];
195
+ _loop_3 = function (j) {
196
+ var client = sub.clients[j];
197
+ if (!this_2._loggedInUsers.some(function (a) { return a.id_ws === client.id_socket; })) {
198
+ sub.clients.splice(j, 1);
199
+ }
200
+ };
201
+ this_2 = this;
202
+ for (j = sub.clients.length - 1; j >= 0; j--) {
203
+ _loop_3(j);
204
+ }
205
+ }
206
+ return [2 /*return*/];
195
207
  }
196
208
  });
197
209
  }); }, 60000);
@@ -226,7 +238,7 @@ var SubscriptionManager = /** @class */ (function () {
226
238
  subscriptionData[_i - 4] = arguments[_i];
227
239
  }
228
240
  return __awaiter(this, void 0, void 0, function () {
229
- var that, pub, valObj, valKeys, rootKeys, i, sub, _a, newActiveSub, newLoggedInUser, begDate, endDate, billUser;
241
+ var that, pub, valObj, valKeys, rootKeys, i, sub, _a, newLoggedInUser, begDate, endDate, billUser;
230
242
  var _b;
231
243
  return __generator(this, function (_c) {
232
244
  switch (_c.label) {
@@ -299,22 +311,7 @@ var SubscriptionManager = /** @class */ (function () {
299
311
  _a.preSubscriptionData = _c.sent();
300
312
  _c.label = 3;
301
313
  case 3:
302
- newActiveSub = new active_subscription_collection_1.ActiveSubscriptions({
303
- date: new Date(),
304
- publication: publication,
305
- subData: JSON.stringify(subscriptionData),
306
- collections: pub.collections,
307
- clients: sub.clients
308
- });
309
- active_subscription_collection_1.ActiveSubscriptions.findOneAndUpdate({
310
- $and: [
311
- { publication: publication },
312
- { subData: JSON.stringify(subscriptionData) }
313
- ]
314
- }, { $setOnInsert: { _id: mongoose_1.Types.ObjectId().toHexString(), __v: 0 }, $set: newActiveSub }, { upsert: true }).exec();
315
- _c.label = 4;
316
- case 4:
317
- if (!(publication === 'appversion')) return [3 /*break*/, 6];
314
+ if (!(publication === 'appversion')) return [3 /*break*/, 5];
318
315
  newLoggedInUser = {
319
316
  _id: mongoose_1.Types.ObjectId().toHexString(),
320
317
  __v: 0,
@@ -325,7 +322,7 @@ var SubscriptionManager = /** @class */ (function () {
325
322
  };
326
323
  this._loggedInUsers.push(newLoggedInUser);
327
324
  logged_in_users_collection_1.LoggedInUsers.create(newLoggedInUser);
328
- if (!(ws['user'] !== 'Admin' && index_1.ResolveIOServer.getSupportDB())) return [3 /*break*/, 6];
325
+ if (!(ws['user'] !== 'Admin' && index_1.ResolveIOServer.getSupportDB())) return [3 /*break*/, 5];
329
326
  begDate = moment().startOf('month');
330
327
  endDate = moment().endOf('month');
331
328
  return [4 /*yield*/, billing_logged_in_users_collection_1.BillingLoggedInUsers.findOne({
@@ -344,7 +341,7 @@ var SubscriptionManager = /** @class */ (function () {
344
341
  }
345
342
  ]
346
343
  })];
347
- case 5:
344
+ case 4:
348
345
  billUser = _c.sent();
349
346
  if (!billUser) {
350
347
  billing_logged_in_users_collection_1.BillingLoggedInUsers.create({
@@ -356,8 +353,8 @@ var SubscriptionManager = /** @class */ (function () {
356
353
  client: index_1.ResolveIOServer.getClientName()
357
354
  });
358
355
  }
359
- _c.label = 6;
360
- case 6: return [2 /*return*/];
356
+ _c.label = 5;
357
+ case 5: return [2 /*return*/];
361
358
  }
362
359
  });
363
360
  });
@@ -369,46 +366,36 @@ var SubscriptionManager = /** @class */ (function () {
369
366
  subscriptionData[_i - 4] = arguments[_i];
370
367
  }
371
368
  return __awaiter(this, void 0, void 0, function () {
372
- var that, sub, i, activeSub;
369
+ var that, sub, i;
373
370
  return __generator(this, function (_a) {
374
- switch (_a.label) {
375
- case 0:
376
- that = this;
377
- if (!!that._publications[publication]) return [3 /*break*/, 1];
378
- console.log('No Publication: ' + publication);
379
- return [2 /*return*/];
380
- case 1:
381
- sub = that._subscriptions.filter(function (a) { return a.publication === publication && JSON.stringify(a.subscriptionData) === JSON.stringify(subscriptionData); })[0];
382
- if (!sub) return [3 /*break*/, 3];
371
+ that = this;
372
+ // console.log('Before');
373
+ // console.dir(this._subscriptions.map(a => a.publication));
374
+ if (!that._publications[publication]) {
375
+ console.log('No Publication: ' + publication);
376
+ return [2 /*return*/];
377
+ }
378
+ else {
379
+ sub = that._subscriptions.filter(function (a) { return a.publication === publication && JSON.stringify(a.subscriptionData) === JSON.stringify(subscriptionData); })[0];
380
+ if (sub) {
383
381
  for (i = sub.clients.length - 1; i >= 0; i--) {
384
382
  if (sub.clients[i].id_user === ws['id_user'] && sub.clients[i].messageId === messageId && sub.clients[i].id_socket === ws['id_socket']) {
385
383
  sub.clients.splice(i, 1);
386
384
  }
387
385
  }
388
- return [4 /*yield*/, active_subscription_collection_1.ActiveSubscriptions.findOne({
389
- $and: [
390
- { publication: publication },
391
- { subData: JSON.stringify(subscriptionData) }
392
- ]
393
- })];
394
- case 2:
395
- activeSub = _a.sent();
396
- if (activeSub) {
397
- active_subscription_collection_1.ActiveSubscriptions.updateOne({ _id: activeSub._id }, { $set: { clients: sub.clients } }).exec();
398
- }
399
- return [3 /*break*/, 4];
400
- case 3:
386
+ }
387
+ else {
401
388
  console.log(ws['user'] + ' - Did not find sub on unsubscribe - publication: ' + publication + ', subData: ' + JSON.stringify(subscriptionData, null, 2));
402
- _a.label = 4;
403
- case 4: return [2 /*return*/];
389
+ }
404
390
  }
391
+ return [2 /*return*/];
405
392
  });
406
393
  });
407
394
  };
408
395
  // Unsubscribe from publication
409
396
  SubscriptionManager.prototype.unsubscribeAll = function (ws) {
410
397
  return __awaiter(this, void 0, void 0, function () {
411
- var that, loggedInUser, userSubs, i, sub, j, activeSubs;
398
+ var that, loggedInUser, userSubs, i, sub, j;
412
399
  return __generator(this, function (_a) {
413
400
  switch (_a.label) {
414
401
  case 0:
@@ -431,22 +418,6 @@ var SubscriptionManager = /** @class */ (function () {
431
418
  }
432
419
  }
433
420
  }
434
- return [4 /*yield*/, active_subscription_collection_1.ActiveSubscriptions.find({ 'clients.id_socket': ws['id_socket'] })];
435
- case 2:
436
- activeSubs = _a.sent();
437
- activeSubs.forEach(function (sub) {
438
- for (var j = sub.clients.length - 1; j >= 0; j--) {
439
- if (sub.clients[j].id_socket === ws['id_socket']) {
440
- sub.clients.splice(j, 1);
441
- }
442
- }
443
- for (var j = sub.clients.length - 1; j >= 0; j--) {
444
- if (sub.clients[j].id_socket === ws['id_socket']) {
445
- sub.clients.splice(j, 1);
446
- }
447
- }
448
- active_subscription_collection_1.ActiveSubscriptions.updateOne({ _id: sub._id }, { $set: { clients: sub.clients } }).exec();
449
- });
450
421
  ws.terminate();
451
422
  return [2 /*return*/];
452
423
  }
@@ -612,23 +583,23 @@ var SubscriptionManager = /** @class */ (function () {
612
583
  var _this = this;
613
584
  var that = this;
614
585
  setInterval(function () { return __awaiter(_this, void 0, void 0, function () {
615
- var uniqueOplog_1, uniquePubs, needIds_1, _loop_3, i, _loop_4, i, _loop_5, this_2, i, i, pub;
586
+ var uniqueOplog_1, uniquePubs, needIds_1, _loop_4, i, _loop_5, i, _loop_6, this_3, i, i, pub;
616
587
  var _this = this;
617
588
  return __generator(this, function (_a) {
618
589
  switch (_a.label) {
619
590
  case 0:
620
- if (!this._oplogQueue.length) return [3 /*break*/, 12];
591
+ if (!this._oplogQueue.length) return [3 /*break*/, 8];
621
592
  uniqueOplog_1 = common_1.deepCopy(this._oplogQueue);
622
593
  this._oplogQueue = [];
623
594
  uniquePubs = [];
624
595
  needIds_1 = {};
625
- _loop_3 = function (i) {
596
+ _loop_4 = function (i) {
626
597
  if (!that._subscriptions.some(function (a) { return a.collections.includes(uniqueOplog_1[i].collection); })) {
627
598
  uniqueOplog_1.splice(i, 1);
628
599
  }
629
600
  };
630
601
  for (i = uniqueOplog_1.length - 1; i >= 0; i--) {
631
- _loop_3(i);
602
+ _loop_4(i);
632
603
  }
633
604
  uniqueOplog_1.forEach(function (oplog) {
634
605
  var schemaErrors = null;
@@ -649,7 +620,7 @@ var SubscriptionManager = /** @class */ (function () {
649
620
  }
650
621
  }
651
622
  });
652
- _loop_4 = function (i) {
623
+ _loop_5 = function (i) {
653
624
  var collection, docs;
654
625
  return __generator(this, function (_a) {
655
626
  switch (_a.label) {
@@ -681,7 +652,7 @@ var SubscriptionManager = /** @class */ (function () {
681
652
  _a.label = 1;
682
653
  case 1:
683
654
  if (!(i < Object.keys(needIds_1).length)) return [3 /*break*/, 4];
684
- return [5 /*yield**/, _loop_4(i)];
655
+ return [5 /*yield**/, _loop_5(i)];
685
656
  case 2:
686
657
  _a.sent();
687
658
  _a.label = 3;
@@ -689,184 +660,128 @@ var SubscriptionManager = /** @class */ (function () {
689
660
  i++;
690
661
  return [3 /*break*/, 1];
691
662
  case 4:
692
- _loop_5 = function (i) {
693
- var oplog, _loop_6, j;
694
- return __generator(this, function (_a) {
695
- switch (_a.label) {
696
- case 0:
697
- oplog = uniqueOplog_1[i];
698
- _loop_6 = function (j) {
699
- var sub;
700
- var _a;
701
- return __generator(this, function (_b) {
702
- switch (_b.label) {
703
- case 0:
704
- sub = that._subscriptions[j];
705
- if (!sub) return [3 /*break*/, 16];
706
- if (!sub.collections.includes(oplog.collection)) return [3 /*break*/, 16];
707
- if (!sub.preSubscriptionData) return [3 /*break*/, 5];
708
- if (!that._publications[sub.publication].fetchFunction(oplog.doc, sub.preSubscriptionData)) return [3 /*break*/, 5];
709
- if (!!uniquePubs.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData) && JSON.stringify(oplog) === JSON.stringify(a.oplog); }).length) return [3 /*break*/, 4];
710
- if (!!sub.clients.length) return [3 /*break*/, 2];
663
+ _loop_6 = function (i) {
664
+ var oplog = uniqueOplog_1[i];
665
+ var _loop_7 = function (j) {
666
+ var _a;
667
+ var sub = that._subscriptions[j];
668
+ if (sub) {
669
+ if (sub.collections.includes(oplog.collection)) {
670
+ if (sub.preSubscriptionData) {
671
+ if (that._publications[sub.publication].fetchFunction(oplog.doc, sub.preSubscriptionData)) {
672
+ if (!uniquePubs.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData) && JSON.stringify(oplog) === JSON.stringify(a.oplog); }).length) {
673
+ if (!sub.clients.length) {
711
674
  that._subscriptions.splice(j, 1);
712
- return [4 /*yield*/, active_subscription_collection_1.ActiveSubscriptions.deleteOne({
713
- $and: [
714
- { publication: sub.publication },
715
- { subData: JSON.stringify(sub.subscriptionData) }
716
- ]
717
- }).exec()];
718
- case 1:
719
- _b.sent();
720
- return [3 /*break*/, 3];
721
- case 2:
675
+ }
676
+ else {
722
677
  sub['oplog'] = oplog;
723
678
  uniquePubs.push(common_1.deepCopy(sub));
724
- _b.label = 3;
725
- case 3:
726
- if (this_2._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }) >= 0) {
727
- this_2._nodeCache.del(this_2._subCache.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); })[0].id);
728
- this_2._subCache.splice(this_2._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
729
- }
730
- _b.label = 4;
731
- case 4: return [2 /*return*/, "continue"];
732
- case 5:
733
- if (!that._publications[sub.publication].preFunction) return [3 /*break*/, 9];
734
- if (!!sub.clients.length) return [3 /*break*/, 7];
735
- that._subscriptions.splice(j, 1);
736
- return [4 /*yield*/, active_subscription_collection_1.ActiveSubscriptions.deleteOne({
737
- $and: [
738
- { publication: sub.publication },
739
- { subData: JSON.stringify(sub.subscriptionData) }
740
- ]
741
- }).exec()];
742
- case 6:
743
- _b.sent();
744
- if (this_2._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }) >= 0) {
745
- this_2._nodeCache.del(this_2._subCache.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); })[0].id);
746
- this_2._subCache.splice(this_2._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
679
+ }
680
+ if (this_3._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }) >= 0) {
681
+ this_3._nodeCache.del(this_3._subCache.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); })[0].id);
682
+ this_3._subCache.splice(this_3._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
683
+ }
684
+ }
685
+ return "continue";
686
+ }
687
+ }
688
+ if (that._publications[sub.publication].preFunction) {
689
+ if (!sub.clients.length) {
690
+ that._subscriptions.splice(j, 1);
691
+ if (this_3._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }) >= 0) {
692
+ this_3._nodeCache.del(this_3._subCache.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); })[0].id);
693
+ this_3._subCache.splice(this_3._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
694
+ }
695
+ }
696
+ else {
697
+ if (!uniquePubs.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData) && JSON.stringify(oplog) === JSON.stringify(a.oplog); }).length) {
698
+ sub['oplog'] = oplog;
699
+ uniquePubs.push(common_1.deepCopy(sub));
700
+ }
701
+ }
702
+ }
703
+ else {
704
+ if (that._publications[sub.publication].fetchFunction) {
705
+ if ((_a = that._publications[sub.publication]).fetchFunction.apply(_a, __spreadArrays([oplog.doc], sub.subscriptionData))) {
706
+ if (!uniquePubs.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }).length) {
707
+ if (!sub.clients.length) {
708
+ that._subscriptions.splice(j, 1);
709
+ if (this_3._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }) >= 0) {
710
+ this_3._nodeCache.del(this_3._subCache.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); })[0].id);
711
+ this_3._subCache.splice(this_3._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
712
+ }
747
713
  }
748
- return [3 /*break*/, 8];
749
- case 7:
750
- if (!uniquePubs.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData) && JSON.stringify(oplog) === JSON.stringify(a.oplog); }).length) {
714
+ else {
751
715
  sub['oplog'] = oplog;
752
716
  uniquePubs.push(common_1.deepCopy(sub));
753
717
  }
754
- _b.label = 8;
755
- case 8: return [3 /*break*/, 16];
756
- case 9:
757
- if (!that._publications[sub.publication].fetchFunction) return [3 /*break*/, 13];
758
- if (!(_a = that._publications[sub.publication]).fetchFunction.apply(_a, __spreadArrays([oplog.doc], sub.subscriptionData))) return [3 /*break*/, 12];
759
- if (!!uniquePubs.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }).length) return [3 /*break*/, 12];
760
- if (!!sub.clients.length) return [3 /*break*/, 11];
761
- that._subscriptions.splice(j, 1);
762
- return [4 /*yield*/, active_subscription_collection_1.ActiveSubscriptions.deleteOne({
763
- $and: [
764
- { publication: sub.publication },
765
- { subData: JSON.stringify(sub.subscriptionData) }
766
- ]
767
- }).exec()];
768
- case 10:
769
- _b.sent();
770
- if (this_2._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }) >= 0) {
771
- this_2._nodeCache.del(this_2._subCache.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); })[0].id);
772
- this_2._subCache.splice(this_2._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
773
- }
774
- return [3 /*break*/, 12];
775
- case 11:
776
- sub['oplog'] = oplog;
777
- uniquePubs.push(common_1.deepCopy(sub));
778
- _b.label = 12;
779
- case 12: return [3 /*break*/, 16];
780
- case 13:
781
- if (!!uniquePubs.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }).length) return [3 /*break*/, 16];
782
- if (!!sub.clients.length) return [3 /*break*/, 15];
718
+ }
719
+ }
720
+ }
721
+ else {
722
+ if (!uniquePubs.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }).length) {
723
+ if (!sub.clients.length) {
783
724
  that._subscriptions.splice(j, 1);
784
- return [4 /*yield*/, active_subscription_collection_1.ActiveSubscriptions.deleteOne({
785
- $and: [
786
- { publication: sub.publication },
787
- { subData: JSON.stringify(sub.subscriptionData) }
788
- ]
789
- }).exec()];
790
- case 14:
791
- _b.sent();
792
- if (this_2._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }) >= 0) {
793
- this_2._nodeCache.del(this_2._subCache.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); })[0].id);
794
- this_2._subCache.splice(this_2._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
725
+ if (this_3._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }) >= 0) {
726
+ this_3._nodeCache.del(this_3._subCache.filter(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); })[0].id);
727
+ this_3._subCache.splice(this_3._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
795
728
  }
796
- return [3 /*break*/, 16];
797
- case 15:
729
+ }
730
+ else {
798
731
  sub['oplog'] = oplog;
799
732
  uniquePubs.push(common_1.deepCopy(sub));
800
- _b.label = 16;
801
- case 16: return [2 /*return*/];
733
+ }
802
734
  }
803
- });
804
- };
805
- j = that._subscriptions.length - 1;
806
- _a.label = 1;
807
- case 1:
808
- if (!(j >= 0)) return [3 /*break*/, 4];
809
- return [5 /*yield**/, _loop_6(j)];
810
- case 2:
811
- _a.sent();
812
- _a.label = 3;
813
- case 3:
814
- j--;
815
- return [3 /*break*/, 1];
816
- case 4: return [2 /*return*/];
735
+ }
736
+ }
737
+ }
817
738
  }
818
- });
739
+ };
740
+ for (var j = that._subscriptions.length - 1; j >= 0; j--) {
741
+ _loop_7(j);
742
+ }
819
743
  };
820
- this_2 = this;
821
- i = uniqueOplog_1.length - 1;
744
+ this_3 = this;
745
+ for (i = uniqueOplog_1.length - 1; i >= 0; i--) {
746
+ _loop_6(i);
747
+ }
748
+ i = 0;
822
749
  _a.label = 5;
823
750
  case 5:
824
- if (!(i >= 0)) return [3 /*break*/, 8];
825
- return [5 /*yield**/, _loop_5(i)];
751
+ if (!(i < uniquePubs.length)) return [3 /*break*/, 8];
752
+ pub = uniquePubs[i];
753
+ return [4 /*yield*/, this.checkPubsForChanges(pub['oplog'].collection, pub['oplog'].doc, pub['oplog'].type, pub)];
826
754
  case 6:
827
755
  _a.sent();
828
756
  _a.label = 7;
829
757
  case 7:
830
- i--;
831
- return [3 /*break*/, 5];
832
- case 8:
833
- i = 0;
834
- _a.label = 9;
835
- case 9:
836
- if (!(i < uniquePubs.length)) return [3 /*break*/, 12];
837
- pub = uniquePubs[i];
838
- return [4 /*yield*/, this.checkPubsForChanges(pub['oplog'].collection, pub['oplog'].doc, pub['oplog'].type, pub)];
839
- case 10:
840
- _a.sent();
841
- _a.label = 11;
842
- case 11:
843
758
  i++;
844
- return [3 /*break*/, 9];
845
- case 12: return [2 /*return*/];
759
+ return [3 /*break*/, 5];
760
+ case 8: return [2 /*return*/];
846
761
  }
847
762
  });
848
763
  }); }, 250);
849
764
  };
850
765
  SubscriptionManager.prototype.resendPubsForDelete = function (collection) {
851
766
  return __awaiter(this, void 0, void 0, function () {
852
- var that, subCopy, _loop_7, this_3, jj, _loop_8, zz;
767
+ var that, subCopy, _loop_8, this_4, jj, _loop_9, zz;
853
768
  var _this = this;
854
769
  return __generator(this, function (_a) {
855
770
  switch (_a.label) {
856
771
  case 0:
857
772
  that = this;
858
773
  subCopy = common_1.deepCopy(that._subscriptions.filter(function (a) { return a.collections.includes(collection); }));
859
- _loop_7 = function (jj) {
860
- if (this_3._subCache[jj].collection === collection || subCopy.some(function (a) { return a.publication === _this._subCache[jj].publication; })) {
861
- this_3._nodeCache.del(this_3._subCache[jj].id);
862
- this_3._subCache.splice(jj, 1);
774
+ _loop_8 = function (jj) {
775
+ if (this_4._subCache[jj].collection === collection || subCopy.some(function (a) { return a.publication === _this._subCache[jj].publication; })) {
776
+ this_4._nodeCache.del(this_4._subCache[jj].id);
777
+ this_4._subCache.splice(jj, 1);
863
778
  }
864
779
  };
865
- this_3 = this;
780
+ this_4 = this;
866
781
  for (jj = this._subCache.length - 1; jj >= 0; jj--) {
867
- _loop_7(jj);
782
+ _loop_8(jj);
868
783
  }
869
- _loop_8 = function (zz) {
784
+ _loop_9 = function (zz) {
870
785
  var sub, aa, client, bb, ws;
871
786
  return __generator(this, function (_a) {
872
787
  switch (_a.label) {
@@ -894,26 +809,18 @@ var SubscriptionManager = /** @class */ (function () {
894
809
  case 5:
895
810
  aa++;
896
811
  return [3 /*break*/, 1];
897
- case 6: return [3 /*break*/, 11];
812
+ case 6: return [3 /*break*/, 10];
898
813
  case 7:
899
- if (!!sub.clients.length) return [3 /*break*/, 9];
814
+ if (!!sub.clients.length) return [3 /*break*/, 8];
900
815
  if (that._subscriptions.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }) >= 0) {
901
816
  that._subscriptions.splice(that._subscriptions.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
902
817
  }
903
- return [4 /*yield*/, active_subscription_collection_1.ActiveSubscriptions.deleteOne({
904
- $and: [
905
- { publication: sub.publication },
906
- { subData: JSON.stringify(sub.subscriptionData) }
907
- ]
908
- }).exec()];
909
- case 8:
910
- _a.sent();
911
- return [3 /*break*/, 11];
912
- case 9: return [4 /*yield*/, that.sendPubData(sub, 'delete', collection)];
913
- case 10:
818
+ return [3 /*break*/, 10];
819
+ case 8: return [4 /*yield*/, that.sendPubData(sub, 'delete', collection)];
820
+ case 9:
914
821
  _a.sent();
915
- _a.label = 11;
916
- case 11: return [2 /*return*/];
822
+ _a.label = 10;
823
+ case 10: return [2 /*return*/];
917
824
  }
918
825
  });
919
826
  };
@@ -921,7 +828,7 @@ var SubscriptionManager = /** @class */ (function () {
921
828
  _a.label = 1;
922
829
  case 1:
923
830
  if (!(zz >= 0)) return [3 /*break*/, 4];
924
- return [5 /*yield**/, _loop_8(zz)];
831
+ return [5 /*yield**/, _loop_9(zz)];
925
832
  case 2:
926
833
  _a.sent();
927
834
  _a.label = 3;