@resolveio/server-lib 22.2.20 → 22.2.22
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/customer-portal-password.collection.d.ts +3 -0
- package/collections/customer-portal-password.collection.js +75 -0
- package/collections/customer-portal-password.collection.js.map +1 -0
- package/managers/mongo.manager.js +11 -4
- package/managers/mongo.manager.js.map +1 -1
- package/managers/subscription.manager.d.ts +1 -0
- package/managers/subscription.manager.js +77 -34
- package/managers/subscription.manager.js.map +1 -1
- package/methods/accounts.js +85 -2
- package/methods/accounts.js.map +1 -1
- package/methods.ts +5 -2
- package/models/customer-portal-password.model.d.ts +11 -0
- package/models/customer-portal-password.model.js +4 -0
- package/models/customer-portal-password.model.js.map +1 -0
- package/package.json +1 -1
- package/public_api.d.ts +3 -0
- package/public_api.js +3 -0
- package/public_api.js.map +1 -1
- package/util/customer-portal-password.d.ts +13 -0
- package/util/customer-portal-password.js +209 -0
- package/util/customer-portal-password.js.map +1 -0
|
@@ -122,6 +122,7 @@ export declare class SubscriptionManager {
|
|
|
122
122
|
private parsePositiveFloat;
|
|
123
123
|
private isChangeStreamUnsupported;
|
|
124
124
|
private isResumeTokenInvalid;
|
|
125
|
+
private isChangeStreamDocumentTooLarge;
|
|
125
126
|
private enableLocalOplogFallback;
|
|
126
127
|
getUseLocalOplog(): boolean;
|
|
127
128
|
handleMongoReconnect(reason: string): Promise<void>;
|
|
@@ -1536,6 +1536,21 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1536
1536
|
}
|
|
1537
1537
|
return false;
|
|
1538
1538
|
};
|
|
1539
|
+
SubscriptionManager.prototype.isChangeStreamDocumentTooLarge = function (error) {
|
|
1540
|
+
var code = typeof (error === null || error === void 0 ? void 0 : error.code) === 'number' ? error.code : null;
|
|
1541
|
+
var codeName = typeof (error === null || error === void 0 ? void 0 : error.codeName) === 'string' ? error.codeName.toLowerCase() : '';
|
|
1542
|
+
var message = typeof (error === null || error === void 0 ? void 0 : error.message) === 'string' ? error.message.toLowerCase() : '';
|
|
1543
|
+
if (code === 10334) {
|
|
1544
|
+
return true;
|
|
1545
|
+
}
|
|
1546
|
+
if (codeName.includes('bsonobjecttoolarge')) {
|
|
1547
|
+
return true;
|
|
1548
|
+
}
|
|
1549
|
+
if (message.includes('bsonobj size') && message.includes('16mb')) {
|
|
1550
|
+
return true;
|
|
1551
|
+
}
|
|
1552
|
+
return false;
|
|
1553
|
+
};
|
|
1539
1554
|
SubscriptionManager.prototype.enableLocalOplogFallback = function (reason, error) {
|
|
1540
1555
|
return __awaiter(this, void 0, void 0, function () {
|
|
1541
1556
|
var _a, message;
|
|
@@ -1990,7 +2005,7 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
1990
2005
|
case 3:
|
|
1991
2006
|
// eslint-disable-next-line no-restricted-syntax
|
|
1992
2007
|
_a.sent();
|
|
1993
|
-
if (!(!this._oplog$ || this._oplog$.closed)) return [3 /*break*/,
|
|
2008
|
+
if (!(!this._oplog$ || this._oplog$.closed)) return [3 /*break*/, 27];
|
|
1994
2009
|
this._oplogRetryCount += 1;
|
|
1995
2010
|
if (this._oplogRetryCount > 5) {
|
|
1996
2011
|
console.error('****************** TAIL OPLOG ERROR, RETRYING A BUNCH OF TIMES, KILLING PROCESS **************************');
|
|
@@ -2021,14 +2036,14 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
2021
2036
|
},
|
|
2022
2037
|
];
|
|
2023
2038
|
startedWithResumeToken = false;
|
|
2024
|
-
if (!resumeToken) return [3 /*break*/,
|
|
2039
|
+
if (!resumeToken) return [3 /*break*/, 20];
|
|
2025
2040
|
lastResumeToken_1 = resumeToken;
|
|
2026
2041
|
_a.label = 4;
|
|
2027
2042
|
case 4:
|
|
2028
|
-
_a.trys.push([4, 5, ,
|
|
2043
|
+
_a.trys.push([4, 5, , 19]);
|
|
2029
2044
|
this._oplog$ = resolveio_server_app_1.ResolveIOServer.getMongoConnection().watch(pipeline, { resumeAfter: resumeToken, fullDocument: 'updateLookup' });
|
|
2030
2045
|
startedWithResumeToken = true;
|
|
2031
|
-
return [3 /*break*/,
|
|
2046
|
+
return [3 /*break*/, 19];
|
|
2032
2047
|
case 5:
|
|
2033
2048
|
error_8 = _a.sent();
|
|
2034
2049
|
if (!this.isChangeStreamUnsupported(error_8)) return [3 /*break*/, 7];
|
|
@@ -2037,49 +2052,66 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
2037
2052
|
_a.sent();
|
|
2038
2053
|
return [2 /*return*/];
|
|
2039
2054
|
case 7:
|
|
2040
|
-
if (!this.
|
|
2055
|
+
if (!this.isChangeStreamDocumentTooLarge(error_8)) return [3 /*break*/, 10];
|
|
2056
|
+
return [4 /*yield*/, this.clearResumeToken()];
|
|
2057
|
+
case 8:
|
|
2058
|
+
_a.sent();
|
|
2059
|
+
lastResumeToken_1 = null;
|
|
2060
|
+
this.queueFullResync('oplog-change-stream-document-too-large');
|
|
2061
|
+
return [4 /*yield*/, this.enableLocalOplogFallback('change-stream-document-too-large', error_8)];
|
|
2062
|
+
case 9:
|
|
2063
|
+
_a.sent();
|
|
2064
|
+
return [2 /*return*/];
|
|
2065
|
+
case 10:
|
|
2066
|
+
if (!this._oplog$) return [3 /*break*/, 12];
|
|
2041
2067
|
this._oplog$.removeAllListeners();
|
|
2042
2068
|
return [4 /*yield*/, this._oplog$.close()];
|
|
2043
|
-
case
|
|
2069
|
+
case 11:
|
|
2044
2070
|
_a.sent();
|
|
2045
2071
|
this._oplog$ = null;
|
|
2046
|
-
_a.label =
|
|
2047
|
-
case
|
|
2048
|
-
case
|
|
2072
|
+
_a.label = 12;
|
|
2073
|
+
case 12: return [4 /*yield*/, this.clearResumeToken()];
|
|
2074
|
+
case 13:
|
|
2049
2075
|
_a.sent();
|
|
2050
2076
|
lastResumeToken_1 = null;
|
|
2051
2077
|
console.log(new Date(), 'oplog resumeAfter failed, starting fresh', error_8);
|
|
2052
|
-
_a.label =
|
|
2053
|
-
case
|
|
2054
|
-
_a.trys.push([
|
|
2078
|
+
_a.label = 14;
|
|
2079
|
+
case 14:
|
|
2080
|
+
_a.trys.push([14, 15, , 18]);
|
|
2055
2081
|
this._oplog$ = resolveio_server_app_1.ResolveIOServer.getMongoConnection().watch(pipeline, { fullDocument: 'updateLookup' });
|
|
2056
2082
|
startedWithResumeToken = false;
|
|
2057
|
-
return [3 /*break*/,
|
|
2058
|
-
case
|
|
2083
|
+
return [3 /*break*/, 18];
|
|
2084
|
+
case 15:
|
|
2059
2085
|
innerError_1 = _a.sent();
|
|
2060
|
-
if (!this.isChangeStreamUnsupported(innerError_1)) return [3 /*break*/,
|
|
2086
|
+
if (!this.isChangeStreamUnsupported(innerError_1)) return [3 /*break*/, 17];
|
|
2061
2087
|
return [4 /*yield*/, this.enableLocalOplogFallback('change-stream-unsupported', innerError_1)];
|
|
2062
|
-
case
|
|
2088
|
+
case 16:
|
|
2063
2089
|
_a.sent();
|
|
2064
2090
|
return [2 /*return*/];
|
|
2065
|
-
case
|
|
2066
|
-
case
|
|
2091
|
+
case 17: throw innerError_1;
|
|
2092
|
+
case 18:
|
|
2067
2093
|
this.queueFullResync('oplog-resumeAfter-failed');
|
|
2068
|
-
return [3 /*break*/,
|
|
2069
|
-
case
|
|
2070
|
-
case
|
|
2071
|
-
_a.trys.push([
|
|
2094
|
+
return [3 /*break*/, 19];
|
|
2095
|
+
case 19: return [3 /*break*/, 26];
|
|
2096
|
+
case 20:
|
|
2097
|
+
_a.trys.push([20, 21, , 26]);
|
|
2072
2098
|
this._oplog$ = resolveio_server_app_1.ResolveIOServer.getMongoConnection().watch(pipeline, { fullDocument: 'updateLookup' });
|
|
2073
|
-
return [3 /*break*/,
|
|
2074
|
-
case
|
|
2099
|
+
return [3 /*break*/, 26];
|
|
2100
|
+
case 21:
|
|
2075
2101
|
error_9 = _a.sent();
|
|
2076
|
-
if (!this.isChangeStreamUnsupported(error_9)) return [3 /*break*/,
|
|
2102
|
+
if (!this.isChangeStreamUnsupported(error_9)) return [3 /*break*/, 23];
|
|
2077
2103
|
return [4 /*yield*/, this.enableLocalOplogFallback('change-stream-unsupported', error_9)];
|
|
2078
|
-
case
|
|
2104
|
+
case 22:
|
|
2079
2105
|
_a.sent();
|
|
2080
2106
|
return [2 /*return*/];
|
|
2081
|
-
case
|
|
2082
|
-
|
|
2107
|
+
case 23:
|
|
2108
|
+
if (!this.isChangeStreamDocumentTooLarge(error_9)) return [3 /*break*/, 25];
|
|
2109
|
+
return [4 /*yield*/, this.enableLocalOplogFallback('change-stream-document-too-large', error_9)];
|
|
2110
|
+
case 24:
|
|
2111
|
+
_a.sent();
|
|
2112
|
+
return [2 /*return*/];
|
|
2113
|
+
case 25: throw error_9;
|
|
2114
|
+
case 26:
|
|
2083
2115
|
console.log(new Date(), 'oplog started', startedWithResumeToken ? '(resumeAfter)' : '');
|
|
2084
2116
|
this._oplog$.on('change', function (doc) { return __awaiter(_this, void 0, void 0, function () {
|
|
2085
2117
|
var collection, fullDocument, docId, flag, dependencyFlag;
|
|
@@ -2177,15 +2209,26 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
2177
2209
|
_a.sent();
|
|
2178
2210
|
return [2 /*return*/];
|
|
2179
2211
|
case 2:
|
|
2180
|
-
if (!this.
|
|
2212
|
+
if (!this.isChangeStreamDocumentTooLarge(error)) return [3 /*break*/, 5];
|
|
2181
2213
|
return [4 /*yield*/, this.clearResumeToken()];
|
|
2182
2214
|
case 3:
|
|
2183
2215
|
_a.sent();
|
|
2184
2216
|
lastResumeToken_1 = null;
|
|
2185
|
-
this.queueFullResync('oplog-
|
|
2186
|
-
|
|
2187
|
-
case 4:
|
|
2217
|
+
this.queueFullResync('oplog-change-stream-document-too-large');
|
|
2218
|
+
return [4 /*yield*/, this.enableLocalOplogFallback('change-stream-document-too-large', error)];
|
|
2219
|
+
case 4:
|
|
2220
|
+
_a.sent();
|
|
2221
|
+
return [2 /*return*/];
|
|
2188
2222
|
case 5:
|
|
2223
|
+
if (!this.isResumeTokenInvalid(error)) return [3 /*break*/, 7];
|
|
2224
|
+
return [4 /*yield*/, this.clearResumeToken()];
|
|
2225
|
+
case 6:
|
|
2226
|
+
_a.sent();
|
|
2227
|
+
lastResumeToken_1 = null;
|
|
2228
|
+
this.queueFullResync('oplog-resume-token-invalid');
|
|
2229
|
+
_a.label = 7;
|
|
2230
|
+
case 7: return [4 /*yield*/, this._oplog$.close()];
|
|
2231
|
+
case 8:
|
|
2189
2232
|
_a.sent();
|
|
2190
2233
|
return [2 /*return*/];
|
|
2191
2234
|
}
|
|
@@ -2218,8 +2261,8 @@ var SubscriptionManager = /** @class */ (function () {
|
|
|
2218
2261
|
}
|
|
2219
2262
|
});
|
|
2220
2263
|
}); });
|
|
2221
|
-
_a.label =
|
|
2222
|
-
case
|
|
2264
|
+
_a.label = 27;
|
|
2265
|
+
case 27: return [2 /*return*/];
|
|
2223
2266
|
}
|
|
2224
2267
|
});
|
|
2225
2268
|
});
|