@resolveio/server-lib 5.0.8 → 5.0.9

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.
@@ -297,13 +297,6 @@ var SubscriptionManager = /** @class */ (function () {
297
297
  }
298
298
  }
299
299
  if (!!sub.clients.length) return [3 /*break*/, 2];
300
- that._subscriptions.splice(that._subscriptions.findIndex(function (a) { return a.publication === publication && JSON.stringify(a.subscriptionData) === JSON.stringify(subscriptionData); }), 1);
301
- active_subscription_collection_1.ActiveSubscriptions.deleteOne({
302
- $and: [
303
- { publication: publication },
304
- { subData: JSON.stringify(subscriptionData) }
305
- ]
306
- }).exec();
307
300
  return [3 /*break*/, 4];
308
301
  case 2: return [4 /*yield*/, active_subscription_collection_1.ActiveSubscriptions.findOne({
309
302
  $and: [
@@ -329,7 +322,7 @@ var SubscriptionManager = /** @class */ (function () {
329
322
  // Unsubscribe from publication
330
323
  SubscriptionManager.prototype.unsubscribeAll = function (ws) {
331
324
  return __awaiter(this, void 0, void 0, function () {
332
- var that, loggedInUser, userSubs, _loop_2, i, activeSubs;
325
+ var that, loggedInUser, userSubs, i, sub, j, activeSubs;
333
326
  return __generator(this, function (_a) {
334
327
  switch (_a.label) {
335
328
  case 0:
@@ -341,19 +334,16 @@ var SubscriptionManager = /** @class */ (function () {
341
334
  logged_in_users_collection_1.LoggedInUsers.deleteOne({ _id: loggedInUser._id }).exec();
342
335
  }
343
336
  userSubs = that._subscriptions.filter(function (a) { return a.clients.some(function (b) { return b.id_user === ws['id_user'] && b.id_socket === ws['id_socket']; }); });
344
- _loop_2 = function (i) {
345
- var sub = userSubs[i];
346
- for (var j = sub.clients.length - 1; j >= 0; j--) {
337
+ for (i = userSubs.length - 1; i >= 0; i--) {
338
+ sub = userSubs[i];
339
+ for (j = sub.clients.length - 1; j >= 0; j--) {
347
340
  if (sub.clients[j].id_socket === ws['id_socket']) {
348
341
  sub.clients.splice(j, 1);
349
342
  }
350
343
  }
351
344
  if (!sub.clients.length) {
352
- that._subscriptions.splice(that._subscriptions.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
345
+ // that._subscriptions.splice(that._subscriptions.findIndex(a => a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData)), 1);
353
346
  }
354
- };
355
- for (i = userSubs.length - 1; i >= 0; i--) {
356
- _loop_2(i);
357
347
  }
358
348
  return [4 /*yield*/, active_subscription_collection_1.ActiveSubscriptions.find({ 'clients.id_socket': ws['id_socket'] })];
359
349
  case 2:
@@ -365,7 +355,7 @@ var SubscriptionManager = /** @class */ (function () {
365
355
  }
366
356
  }
367
357
  if (!sub.clients.length) {
368
- active_subscription_collection_1.ActiveSubscriptions.deleteOne({ _id: sub._id }).exec();
358
+ // ActiveSubscriptions.deleteOne({_id: sub._id}).exec();
369
359
  }
370
360
  else {
371
361
  for (var j = sub.clients.length - 1; j >= 0; j--) {
@@ -511,7 +501,7 @@ var SubscriptionManager = /** @class */ (function () {
511
501
  var _this = this;
512
502
  var that = this;
513
503
  setInterval(function () { return __awaiter(_this, void 0, void 0, function () {
514
- var uniqueOplog_1, uniquePubs, needIds_1, _loop_3, i, _loop_4, i, i, oplog, _loop_5, j, state_1;
504
+ var uniqueOplog_1, uniquePubs, needIds_1, _loop_2, i, _loop_3, i, i, oplog, _loop_4, j, state_1;
515
505
  var _this = this;
516
506
  return __generator(this, function (_a) {
517
507
  switch (_a.label) {
@@ -521,13 +511,13 @@ var SubscriptionManager = /** @class */ (function () {
521
511
  this._oplogQueue = [];
522
512
  uniquePubs = [];
523
513
  needIds_1 = {};
524
- _loop_3 = function (i) {
514
+ _loop_2 = function (i) {
525
515
  if (!that._subscriptions.some(function (a) { return a.collections.includes(uniqueOplog_1[i].collection); })) {
526
516
  uniqueOplog_1.splice(i, 1);
527
517
  }
528
518
  };
529
519
  for (i = uniqueOplog_1.length - 1; i >= 0; i--) {
530
- _loop_3(i);
520
+ _loop_2(i);
531
521
  }
532
522
  uniqueOplog_1.forEach(function (oplog) {
533
523
  var schemaErrors = null;
@@ -548,7 +538,7 @@ var SubscriptionManager = /** @class */ (function () {
548
538
  }
549
539
  }
550
540
  });
551
- _loop_4 = function (i) {
541
+ _loop_3 = function (i) {
552
542
  var collection, docs;
553
543
  return __generator(this, function (_a) {
554
544
  switch (_a.label) {
@@ -573,7 +563,7 @@ var SubscriptionManager = /** @class */ (function () {
573
563
  _a.label = 1;
574
564
  case 1:
575
565
  if (!(i < Object.keys(needIds_1).length)) return [3 /*break*/, 4];
576
- return [5 /*yield**/, _loop_4(i)];
566
+ return [5 /*yield**/, _loop_3(i)];
577
567
  case 2:
578
568
  _a.sent();
579
569
  _a.label = 3;
@@ -586,7 +576,7 @@ var SubscriptionManager = /** @class */ (function () {
586
576
  case 5:
587
577
  if (!(i >= 0)) return [3 /*break*/, 10];
588
578
  oplog = uniqueOplog_1[i];
589
- _loop_5 = function (j) {
579
+ _loop_4 = function (j) {
590
580
  var _a, sub, _b;
591
581
  return __generator(this, function (_c) {
592
582
  switch (_c.label) {
@@ -653,7 +643,7 @@ var SubscriptionManager = /** @class */ (function () {
653
643
  _a.label = 6;
654
644
  case 6:
655
645
  if (!(j < that._subscriptions.length)) return [3 /*break*/, 9];
656
- return [5 /*yield**/, _loop_5(j)];
646
+ return [5 /*yield**/, _loop_4(j)];
657
647
  case 7:
658
648
  state_1 = _a.sent();
659
649
  if (state_1 === "break")
@@ -702,13 +692,12 @@ var SubscriptionManager = /** @class */ (function () {
702
692
  // Check to see if any pubs need to refetch due to Mongo operation
703
693
  SubscriptionManager.prototype.checkPubsForChanges = function (collection, document, type) {
704
694
  return __awaiter(this, void 0, void 0, function () {
705
- var that, found, _loop_6, this_1, i, zz;
695
+ var that, _loop_5, this_1, i;
706
696
  return __generator(this, function (_a) {
707
697
  switch (_a.label) {
708
698
  case 0:
709
699
  that = this;
710
- found = false;
711
- _loop_6 = function (i) {
700
+ _loop_5 = function (i) {
712
701
  var _a, _b, sub, _c, _d;
713
702
  return __generator(this, function (_e) {
714
703
  switch (_e.label) {
@@ -717,9 +706,17 @@ var SubscriptionManager = /** @class */ (function () {
717
706
  if (!sub.preSubscriptionData) return [3 /*break*/, 2];
718
707
  if (!that._publications[sub.publication].fetchFunction(document, sub.preSubscriptionData)) return [3 /*break*/, 2];
719
708
  if (this_1._subCache.some(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); })) {
709
+ if (!sub.clients.length) {
710
+ that._subscriptions.splice(that._subscriptions.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
711
+ active_subscription_collection_1.ActiveSubscriptions.deleteOne({
712
+ $and: [
713
+ { publication: sub.publication },
714
+ { subData: JSON.stringify(sub.subscriptionData) }
715
+ ]
716
+ }).exec();
717
+ }
720
718
  this_1._subCache.splice(this_1._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
721
719
  }
722
- found = true;
723
720
  that.sendPubData(sub, type, collection);
724
721
  _c = sub;
725
722
  return [4 /*yield*/, (_a = that._publications[sub.publication]).preFunction.apply(_a, sub.subscriptionData)];
@@ -734,9 +731,17 @@ var SubscriptionManager = /** @class */ (function () {
734
731
  _d.preSubscriptionData = _e.sent();
735
732
  if (that._publications[sub.publication].fetchFunction(document, sub.preSubscriptionData)) {
736
733
  if (this_1._subCache.some(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); })) {
734
+ if (!sub.clients.length) {
735
+ that._subscriptions.splice(that._subscriptions.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
736
+ active_subscription_collection_1.ActiveSubscriptions.deleteOne({
737
+ $and: [
738
+ { publication: sub.publication },
739
+ { subData: JSON.stringify(sub.subscriptionData) }
740
+ ]
741
+ }).exec();
742
+ }
737
743
  this_1._subCache.splice(this_1._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
738
744
  }
739
- found = true;
740
745
  that.sendPubData(sub, type, collection);
741
746
  }
742
747
  return [3 /*break*/, 5];
@@ -748,7 +753,6 @@ var SubscriptionManager = /** @class */ (function () {
748
753
  if ((_a = that._publications[sub.publication]).fetchFunction.apply(_a, [document, client.id_user].concat(sub.subscriptionData))) {
749
754
  that._wss.clients.forEach(function (ws) {
750
755
  if (ws['id_socket'] === client.id_socket) {
751
- found = true;
752
756
  that.sendPubDataOnce(ws, client.messageId, sub, type, collection);
753
757
  }
754
758
  });
@@ -757,7 +761,6 @@ var SubscriptionManager = /** @class */ (function () {
757
761
  else {
758
762
  that._wss.clients.forEach(function (ws) {
759
763
  if (ws['id_socket'] === client.id_socket) {
760
- found = true;
761
764
  that.sendPubDataOnce(ws, client.messageId, sub, type, collection);
762
765
  }
763
766
  });
@@ -768,18 +771,34 @@ var SubscriptionManager = /** @class */ (function () {
768
771
  if (that._publications[sub.publication].fetchFunction) {
769
772
  if ((_b = that._publications[sub.publication]).fetchFunction.apply(_b, [document].concat(sub.subscriptionData))) {
770
773
  if (this_1._subCache.some(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); })) {
774
+ if (!sub.clients.length) {
775
+ that._subscriptions.splice(that._subscriptions.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
776
+ active_subscription_collection_1.ActiveSubscriptions.deleteOne({
777
+ $and: [
778
+ { publication: sub.publication },
779
+ { subData: JSON.stringify(sub.subscriptionData) }
780
+ ]
781
+ }).exec();
782
+ }
771
783
  this_1._subCache.splice(this_1._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
772
784
  }
773
- found = true;
774
785
  that.sendPubData(sub, type, collection);
775
786
  }
776
787
  // else
777
788
  }
778
789
  else {
779
790
  if (this_1._subCache.some(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); })) {
791
+ if (!sub.clients.length) {
792
+ that._subscriptions.splice(that._subscriptions.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
793
+ active_subscription_collection_1.ActiveSubscriptions.deleteOne({
794
+ $and: [
795
+ { publication: sub.publication },
796
+ { subData: JSON.stringify(sub.subscriptionData) }
797
+ ]
798
+ }).exec();
799
+ }
780
800
  this_1._subCache.splice(this_1._subCache.findIndex(function (a) { return a.publication === sub.publication && JSON.stringify(a.subscriptionData) === JSON.stringify(sub.subscriptionData); }), 1);
781
801
  }
782
- found = true;
783
802
  that.sendPubData(sub, type, collection);
784
803
  }
785
804
  }
@@ -789,26 +808,18 @@ var SubscriptionManager = /** @class */ (function () {
789
808
  });
790
809
  };
791
810
  this_1 = this;
792
- i = 0;
811
+ i = that._subscriptions.filter(function (a) { return a.collections.includes(collection); }).length - 1;
793
812
  _a.label = 1;
794
813
  case 1:
795
- if (!(i < that._subscriptions.filter(function (a) { return a.collections.includes(collection); }).length)) return [3 /*break*/, 4];
796
- return [5 /*yield**/, _loop_6(i)];
814
+ if (!(i >= 0)) return [3 /*break*/, 4];
815
+ return [5 /*yield**/, _loop_5(i)];
797
816
  case 2:
798
817
  _a.sent();
799
818
  _a.label = 3;
800
819
  case 3:
801
- i++;
820
+ i--;
802
821
  return [3 /*break*/, 1];
803
- case 4:
804
- if (!found) {
805
- for (zz = this._subCache.length - 1; zz >= 0; zz--) {
806
- if (this._subCache[zz].collection === collection) {
807
- this._subCache.splice(zz, 1);
808
- }
809
- }
810
- }
811
- return [2 /*return*/];
822
+ case 4: return [2 /*return*/];
812
823
  }
813
824
  });
814
825
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resolveio/server-lib",
3
- "version": "5.0.8",
3
+ "version": "5.0.9",
4
4
  "description": "",
5
5
  "main": "index.ts",
6
6
  "scripts": {