@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.
- package/collections/user.collection.js +39 -32
- package/collections/user.collection.js.map +1 -1
- package/fixtures/init.js +0 -4
- package/fixtures/init.js.map +1 -1
- package/managers/subscription.manager.js +150 -243
- package/managers/subscription.manager.js.map +1 -1
- package/methods/accounts.js.map +1 -1
- package/methods/cron-jobs.js.map +1 -1
- package/package.json +1 -1
- package/publications/super-admin.js +0 -7
- package/publications/super-admin.js.map +1 -1
- package/collections/active-subscription.collection.d.ts +0 -7
- package/collections/active-subscription.collection.js +0 -70
- package/collections/active-subscription.collection.js.map +0 -1
- package/models/active-subscription.model.d.ts +0 -13
- package/models/active-subscription.model.js +0 -4
- package/models/active-subscription.model.js.map +0 -1
|
@@ -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 (
|
|
146
|
-
switch (
|
|
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
|
-
|
|
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
|
-
|
|
190
|
-
|
|
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*/,
|
|
194
|
-
case
|
|
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,
|
|
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
|
-
|
|
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*/,
|
|
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
|
|
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 =
|
|
360
|
-
case
|
|
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
|
|
369
|
+
var that, sub, i;
|
|
373
370
|
return __generator(this, function (_a) {
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
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
|
-
|
|
389
|
-
|
|
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
|
-
|
|
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
|
|
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,
|
|
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*/,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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**/,
|
|
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
|
-
|
|
693
|
-
var oplog
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
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
|
-
|
|
713
|
-
|
|
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
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
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
|
-
|
|
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
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
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
|
|
785
|
-
|
|
786
|
-
|
|
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
|
-
|
|
797
|
-
|
|
729
|
+
}
|
|
730
|
+
else {
|
|
798
731
|
sub['oplog'] = oplog;
|
|
799
732
|
uniquePubs.push(common_1.deepCopy(sub));
|
|
800
|
-
|
|
801
|
-
case 16: return [2 /*return*/];
|
|
733
|
+
}
|
|
802
734
|
}
|
|
803
|
-
}
|
|
804
|
-
}
|
|
805
|
-
|
|
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
|
-
|
|
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
|
|
825
|
-
|
|
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*/,
|
|
845
|
-
case
|
|
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,
|
|
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
|
-
|
|
860
|
-
if (
|
|
861
|
-
|
|
862
|
-
|
|
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
|
-
|
|
780
|
+
this_4 = this;
|
|
866
781
|
for (jj = this._subCache.length - 1; jj >= 0; jj--) {
|
|
867
|
-
|
|
782
|
+
_loop_8(jj);
|
|
868
783
|
}
|
|
869
|
-
|
|
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*/,
|
|
812
|
+
case 6: return [3 /*break*/, 10];
|
|
898
813
|
case 7:
|
|
899
|
-
if (!!sub.clients.length) return [3 /*break*/,
|
|
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 [
|
|
904
|
-
|
|
905
|
-
|
|
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 =
|
|
916
|
-
case
|
|
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**/,
|
|
831
|
+
return [5 /*yield**/, _loop_9(zz)];
|
|
925
832
|
case 2:
|
|
926
833
|
_a.sent();
|
|
927
834
|
_a.label = 3;
|