@resolveio/server-lib 22.2.18 → 22.2.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.
- package/managers/error-auto-fix.manager.d.ts +6 -0
- package/managers/error-auto-fix.manager.js +215 -85
- package/managers/error-auto-fix.manager.js.map +1 -1
- package/managers/method.manager.js +2 -0
- package/managers/method.manager.js.map +1 -1
- package/managers/mongo.manager.d.ts +3 -0
- package/managers/mongo.manager.js +184 -65
- package/managers/mongo.manager.js.map +1 -1
- package/managers/slow-query-verifier.manager.d.ts +30 -0
- package/managers/slow-query-verifier.manager.js +691 -192
- package/managers/slow-query-verifier.manager.js.map +1 -1
- package/managers/subscription.manager.d.ts +1 -0
- package/managers/subscription.manager.js +60 -21
- package/managers/subscription.manager.js.map +1 -1
- package/managers/worker-dispatcher.manager.js +60 -6
- package/managers/worker-dispatcher.manager.js.map +1 -1
- package/methods/ai-terminal.d.ts +4 -0
- package/methods/ai-terminal.js +64 -26
- package/methods/ai-terminal.js.map +1 -1
- package/methods/app-settings.js +2 -2
- package/methods/app-settings.js.map +1 -1
- package/methods/diagnostics.d.ts +2 -0
- package/methods/diagnostics.js +514 -0
- package/methods/diagnostics.js.map +1 -0
- package/methods.ts +15 -0
- package/package.json +1 -1
- package/resolveio-server-app.d.ts +17 -1
- package/resolveio-server-app.js +293 -25
- package/resolveio-server-app.js.map +1 -1
- package/server-app.js +22 -36
- package/server-app.js.map +1 -1
- package/util/error-reporter.js +26 -126
- package/util/error-reporter.js.map +1 -1
- package/util/slow-query-reporter.d.ts +0 -3
- package/util/slow-query-reporter.js +13 -120
- package/util/slow-query-reporter.js.map +1 -1
|
@@ -124,6 +124,7 @@ export declare class SubscriptionManager {
|
|
|
124
124
|
private isResumeTokenInvalid;
|
|
125
125
|
private enableLocalOplogFallback;
|
|
126
126
|
getUseLocalOplog(): boolean;
|
|
127
|
+
handleMongoReconnect(reason: string): Promise<void>;
|
|
127
128
|
notifyLocalOplog(collection: string, type?: string): void;
|
|
128
129
|
private getResumeTokenDocId;
|
|
129
130
|
private loadResumeToken;
|
|
@@ -674,6 +674,9 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
674
674
|
if (!dispatcher || !dispatcher.hasWorkers()) {
|
|
675
675
|
return false;
|
|
676
676
|
}
|
|
677
|
+
if (typeof dispatcher.hasWorkersForMethod === 'function' && !dispatcher.hasWorkersForMethod('runPublication')) {
|
|
678
|
+
return false;
|
|
679
|
+
}
|
|
677
680
|
if (this._publicationWorkerQueueLimit > 0) {
|
|
678
681
|
var snapshot = dispatcher.getQueueSnapshot();
|
|
679
682
|
if (snapshot.queueDepth >= this._publicationWorkerQueueLimit) {
|
|
@@ -1578,6 +1581,42 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1578
1581
|
SubscriptionManager.prototype.getUseLocalOplog = function () {
|
|
1579
1582
|
return this._useLocalOplog;
|
|
1580
1583
|
};
|
|
1584
|
+
SubscriptionManager.prototype.handleMongoReconnect = function (reason) {
|
|
1585
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
1586
|
+
var resumeToken, _a, error_3;
|
|
1587
|
+
return __generator(this, function (_b) {
|
|
1588
|
+
switch (_b.label) {
|
|
1589
|
+
case 0:
|
|
1590
|
+
if (this._useLocalOplog) {
|
|
1591
|
+
this.queueFullResync("mongo-reconnect:".concat(reason));
|
|
1592
|
+
return [2 /*return*/];
|
|
1593
|
+
}
|
|
1594
|
+
_b.label = 1;
|
|
1595
|
+
case 1:
|
|
1596
|
+
_b.trys.push([1, 5, , 6]);
|
|
1597
|
+
_a = this._lastResumeToken;
|
|
1598
|
+
if (_a) return [3 /*break*/, 3];
|
|
1599
|
+
return [4 /*yield*/, this.loadResumeToken()];
|
|
1600
|
+
case 2:
|
|
1601
|
+
_a = (_b.sent());
|
|
1602
|
+
_b.label = 3;
|
|
1603
|
+
case 3:
|
|
1604
|
+
resumeToken = _a;
|
|
1605
|
+
return [4 /*yield*/, this.tailOpLog(resumeToken || undefined)];
|
|
1606
|
+
case 4:
|
|
1607
|
+
_b.sent();
|
|
1608
|
+
return [3 /*break*/, 6];
|
|
1609
|
+
case 5:
|
|
1610
|
+
error_3 = _b.sent();
|
|
1611
|
+
console.log(new Date(), 'Sub Manager', 'Mongo reconnect: tailOpLog restart failed', reason, error_3);
|
|
1612
|
+
return [3 /*break*/, 6];
|
|
1613
|
+
case 6:
|
|
1614
|
+
this.queueFullResync("mongo-reconnect:".concat(reason));
|
|
1615
|
+
return [2 /*return*/];
|
|
1616
|
+
}
|
|
1617
|
+
});
|
|
1618
|
+
});
|
|
1619
|
+
};
|
|
1581
1620
|
SubscriptionManager.prototype.notifyLocalOplog = function (collection, type) {
|
|
1582
1621
|
var _this = this;
|
|
1583
1622
|
if (type === void 0) { type = 'update'; }
|
|
@@ -1611,7 +1650,7 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1611
1650
|
};
|
|
1612
1651
|
SubscriptionManager.prototype.loadResumeToken = function () {
|
|
1613
1652
|
return __awaiter(this, void 0, void 0, function () {
|
|
1614
|
-
var db_1, loadToken, mongoManager, _a,
|
|
1653
|
+
var db_1, loadToken, mongoManager, _a, error_4;
|
|
1615
1654
|
var _this = this;
|
|
1616
1655
|
return __generator(this, function (_b) {
|
|
1617
1656
|
switch (_b.label) {
|
|
@@ -1659,8 +1698,8 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1659
1698
|
_b.label = 4;
|
|
1660
1699
|
case 4: return [2 /*return*/, _a];
|
|
1661
1700
|
case 5:
|
|
1662
|
-
|
|
1663
|
-
console.log(new Date(), 'Sub Manager', 'Failed to load oplog resume token',
|
|
1701
|
+
error_4 = _b.sent();
|
|
1702
|
+
console.log(new Date(), 'Sub Manager', 'Failed to load oplog resume token', error_4);
|
|
1664
1703
|
return [2 /*return*/, null];
|
|
1665
1704
|
case 6: return [2 /*return*/];
|
|
1666
1705
|
}
|
|
@@ -1669,7 +1708,7 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1669
1708
|
};
|
|
1670
1709
|
SubscriptionManager.prototype.saveResumeToken = function (token) {
|
|
1671
1710
|
return __awaiter(this, void 0, void 0, function () {
|
|
1672
|
-
var db_2, saveToken, mongoManager,
|
|
1711
|
+
var db_2, saveToken, mongoManager, error_5;
|
|
1673
1712
|
var _this = this;
|
|
1674
1713
|
return __generator(this, function (_a) {
|
|
1675
1714
|
switch (_a.label) {
|
|
@@ -1706,8 +1745,8 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1706
1745
|
_a.label = 5;
|
|
1707
1746
|
case 5: return [3 /*break*/, 7];
|
|
1708
1747
|
case 6:
|
|
1709
|
-
|
|
1710
|
-
console.log(new Date(), 'Sub Manager', 'Failed to persist oplog resume token',
|
|
1748
|
+
error_5 = _a.sent();
|
|
1749
|
+
console.log(new Date(), 'Sub Manager', 'Failed to persist oplog resume token', error_5);
|
|
1711
1750
|
return [3 /*break*/, 7];
|
|
1712
1751
|
case 7: return [2 /*return*/];
|
|
1713
1752
|
}
|
|
@@ -1716,7 +1755,7 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1716
1755
|
};
|
|
1717
1756
|
SubscriptionManager.prototype.clearResumeToken = function () {
|
|
1718
1757
|
return __awaiter(this, void 0, void 0, function () {
|
|
1719
|
-
var db_3, clearToken, mongoManager,
|
|
1758
|
+
var db_3, clearToken, mongoManager, error_6;
|
|
1720
1759
|
var _this = this;
|
|
1721
1760
|
return __generator(this, function (_a) {
|
|
1722
1761
|
switch (_a.label) {
|
|
@@ -1749,8 +1788,8 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1749
1788
|
_a.label = 4;
|
|
1750
1789
|
case 4: return [3 /*break*/, 6];
|
|
1751
1790
|
case 5:
|
|
1752
|
-
|
|
1753
|
-
console.log(new Date(), 'Sub Manager', 'Failed to clear oplog resume token',
|
|
1791
|
+
error_6 = _a.sent();
|
|
1792
|
+
console.log(new Date(), 'Sub Manager', 'Failed to clear oplog resume token', error_6);
|
|
1754
1793
|
return [3 /*break*/, 6];
|
|
1755
1794
|
case 6: return [2 /*return*/];
|
|
1756
1795
|
}
|
|
@@ -1821,7 +1860,7 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1821
1860
|
};
|
|
1822
1861
|
SubscriptionManager.prototype.fullResyncSubscriptions = function (reason) {
|
|
1823
1862
|
return __awaiter(this, void 0, void 0, function () {
|
|
1824
|
-
var subs, subs_1, subs_1_1, sub, pub, _a, _b, client, ws, _c, e_4_1, e_5_1,
|
|
1863
|
+
var subs, subs_1, subs_1_1, sub, pub, _a, _b, client, ws, _c, e_4_1, e_5_1, error_7;
|
|
1825
1864
|
var e_5, _d, e_4, _e;
|
|
1826
1865
|
var _f, _g, _h, _j, _k;
|
|
1827
1866
|
return __generator(this, function (_l) {
|
|
@@ -1919,8 +1958,8 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1919
1958
|
return [7 /*endfinally*/];
|
|
1920
1959
|
case 19: return [3 /*break*/, 21];
|
|
1921
1960
|
case 20:
|
|
1922
|
-
|
|
1923
|
-
console.log(new Date(), 'Sub Manager', 'Full resync failed', reason,
|
|
1961
|
+
error_7 = _l.sent();
|
|
1962
|
+
console.log(new Date(), 'Sub Manager', 'Full resync failed', reason, error_7);
|
|
1924
1963
|
return [3 /*break*/, 21];
|
|
1925
1964
|
case 21: return [2 /*return*/];
|
|
1926
1965
|
}
|
|
@@ -1930,7 +1969,7 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1930
1969
|
// Watch (tail) Mongo's operation log on the entire database (all insert/modify/delete will trigger this function)
|
|
1931
1970
|
SubscriptionManager.prototype.tailOpLog = function (resumeToken) {
|
|
1932
1971
|
return __awaiter(this, void 0, void 0, function () {
|
|
1933
|
-
var watchDatabases, pipeline, lastResumeToken_1, startedWithResumeToken,
|
|
1972
|
+
var watchDatabases, pipeline, lastResumeToken_1, startedWithResumeToken, error_8, innerError_1, error_9;
|
|
1934
1973
|
var _this = this;
|
|
1935
1974
|
return __generator(this, function (_a) {
|
|
1936
1975
|
switch (_a.label) {
|
|
@@ -1991,9 +2030,9 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1991
2030
|
startedWithResumeToken = true;
|
|
1992
2031
|
return [3 /*break*/, 16];
|
|
1993
2032
|
case 5:
|
|
1994
|
-
|
|
1995
|
-
if (!this.isChangeStreamUnsupported(
|
|
1996
|
-
return [4 /*yield*/, this.enableLocalOplogFallback('change-stream-unsupported',
|
|
2033
|
+
error_8 = _a.sent();
|
|
2034
|
+
if (!this.isChangeStreamUnsupported(error_8)) return [3 /*break*/, 7];
|
|
2035
|
+
return [4 /*yield*/, this.enableLocalOplogFallback('change-stream-unsupported', error_8)];
|
|
1997
2036
|
case 6:
|
|
1998
2037
|
_a.sent();
|
|
1999
2038
|
return [2 /*return*/];
|
|
@@ -2009,7 +2048,7 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
2009
2048
|
case 10:
|
|
2010
2049
|
_a.sent();
|
|
2011
2050
|
lastResumeToken_1 = null;
|
|
2012
|
-
console.log(new Date(), 'oplog resumeAfter failed, starting fresh',
|
|
2051
|
+
console.log(new Date(), 'oplog resumeAfter failed, starting fresh', error_8);
|
|
2013
2052
|
_a.label = 11;
|
|
2014
2053
|
case 11:
|
|
2015
2054
|
_a.trys.push([11, 12, , 15]);
|
|
@@ -2033,13 +2072,13 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
2033
2072
|
this._oplog$ = resolveio_server_app_1.ResolveIOServer.getMongoConnection().watch(pipeline, { fullDocument: 'updateLookup' });
|
|
2034
2073
|
return [3 /*break*/, 21];
|
|
2035
2074
|
case 18:
|
|
2036
|
-
|
|
2037
|
-
if (!this.isChangeStreamUnsupported(
|
|
2038
|
-
return [4 /*yield*/, this.enableLocalOplogFallback('change-stream-unsupported',
|
|
2075
|
+
error_9 = _a.sent();
|
|
2076
|
+
if (!this.isChangeStreamUnsupported(error_9)) return [3 /*break*/, 20];
|
|
2077
|
+
return [4 /*yield*/, this.enableLocalOplogFallback('change-stream-unsupported', error_9)];
|
|
2039
2078
|
case 19:
|
|
2040
2079
|
_a.sent();
|
|
2041
2080
|
return [2 /*return*/];
|
|
2042
|
-
case 20: throw
|
|
2081
|
+
case 20: throw error_9;
|
|
2043
2082
|
case 21:
|
|
2044
2083
|
console.log(new Date(), 'oplog started', startedWithResumeToken ? '(resumeAfter)' : '');
|
|
2045
2084
|
this._oplog$.on('change', function (doc) { return __awaiter(_this, void 0, void 0, function () {
|