@resolveio/server-lib 20.12.61 → 20.12.63

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.
@@ -111,7 +111,6 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
111
111
  Object.defineProperty(exports, "__esModule", { value: true });
112
112
  exports.MongoManagerUserCollection = exports.MongoManagerCollection = exports.MongoManagerModel = exports.MongoManager = void 0;
113
113
  var NodeCache = require("node-cache");
114
- var os_1 = require("os");
115
114
  var simpl_schema_1 = require("simpl-schema");
116
115
  var user_collection_1 = require("../collections/user.collection");
117
116
  var resolveio_server_app_1 = require("../resolveio-server-app");
@@ -121,10 +120,19 @@ var subscription_dependency_context_1 = require("../util/subscription-dependency
121
120
  var monitor_manager_1 = require("./monitor.manager");
122
121
  var crypto = require('crypto');
123
122
  var scmp = require('scmp');
124
- var numCPUs = (0, os_1.cpus)().length;
125
123
  var v8 = require('v8');
126
124
  var AsyncLocalStorage = require('async_hooks').AsyncLocalStorage;
127
125
  var asyncLocalStorage = new AsyncLocalStorage();
126
+ function resolveHeapLimitBytes() {
127
+ var stats = v8.getHeapStatistics();
128
+ if (stats && typeof stats.heap_size_limit === 'number') {
129
+ return stats.heap_size_limit;
130
+ }
131
+ if (stats && typeof stats.total_available_size === 'number') {
132
+ return stats.total_available_size;
133
+ }
134
+ return 0;
135
+ }
128
136
  function buildQueryMetaFromFindOptions(options) {
129
137
  if (!options) {
130
138
  return null;
@@ -146,7 +154,7 @@ var MongoManager = /** @class */ (function () {
146
154
  this._collections = [];
147
155
  this._cacheMap = [];
148
156
  this._operationInProgress = new Map();
149
- this._heapSize = v8.getHeapStatistics() / numCPUs;
157
+ this._heapSize = resolveHeapLimitBytes();
150
158
  this._serverCollections = [];
151
159
  this._isWorkersEnabled = false;
152
160
  this._isWorkerInstance = false;
@@ -1157,9 +1165,61 @@ var MongoManagerCollection = /** @class */ (function () {
1157
1165
  }
1158
1166
  return matches && matches.length > 1 ? matches[1] : null;
1159
1167
  };
1168
+ MongoManagerCollection.prototype.shouldRetryWriteConflict = function (err) {
1169
+ if (!err) {
1170
+ return false;
1171
+ }
1172
+ if (err.code === 112 || err.codeName === 'WriteConflict') {
1173
+ return true;
1174
+ }
1175
+ return typeof err.message === 'string' && err.message.includes('Write conflict');
1176
+ };
1177
+ MongoManagerCollection.prototype.delay = function (ms) {
1178
+ return __awaiter(this, void 0, void 0, function () {
1179
+ return __generator(this, function (_a) {
1180
+ // eslint-disable-next-line no-restricted-syntax
1181
+ return [2 /*return*/, new Promise(function (resolve) { return setTimeout(resolve, ms); })];
1182
+ });
1183
+ });
1184
+ };
1185
+ MongoManagerCollection.prototype.retryWrite = function (operation, options) {
1186
+ return __awaiter(this, void 0, void 0, function () {
1187
+ var attempt, maxRetries, err_7;
1188
+ return __generator(this, function (_a) {
1189
+ switch (_a.label) {
1190
+ case 0:
1191
+ if (options && options.session && typeof options.session.inTransaction === 'function' && options.session.inTransaction()) {
1192
+ return [2 /*return*/, operation()];
1193
+ }
1194
+ attempt = 0;
1195
+ maxRetries = 3;
1196
+ _a.label = 1;
1197
+ case 1:
1198
+ if (!true) return [3 /*break*/, 7];
1199
+ _a.label = 2;
1200
+ case 2:
1201
+ _a.trys.push([2, 4, , 6]);
1202
+ return [4 /*yield*/, operation()];
1203
+ case 3: return [2 /*return*/, _a.sent()];
1204
+ case 4:
1205
+ err_7 = _a.sent();
1206
+ if (!this.shouldRetryWriteConflict(err_7) || attempt >= maxRetries) {
1207
+ throw err_7;
1208
+ }
1209
+ attempt += 1;
1210
+ return [4 /*yield*/, this.delay(50 * attempt)];
1211
+ case 5:
1212
+ _a.sent();
1213
+ return [3 /*break*/, 6];
1214
+ case 6: return [3 /*break*/, 1];
1215
+ case 7: return [2 /*return*/];
1216
+ }
1217
+ });
1218
+ });
1219
+ };
1160
1220
  MongoManagerCollection.prototype.aggregate = function (pipeline_1, options_1) {
1161
1221
  return __awaiter(this, arguments, void 0, function (pipeline, options, skipCache, bypassSession) {
1162
- var mongoSession, _a, session, safeOptions, monitor, res, err_7;
1222
+ var mongoSession, _a, session, safeOptions, monitor, res, err_8;
1163
1223
  if (skipCache === void 0) { skipCache = false; }
1164
1224
  if (bypassSession === void 0) { bypassSession = false; }
1165
1225
  return __generator(this, function (_b) {
@@ -1190,15 +1250,15 @@ var MongoManagerCollection = /** @class */ (function () {
1190
1250
  (0, subscription_dependency_context_1.recordAggregateDependencies)(this.collectionName, pipeline, res);
1191
1251
  return [2 /*return*/, res];
1192
1252
  case 4:
1193
- err_7 = _b.sent();
1253
+ err_8 = _b.sent();
1194
1254
  console.log(JSON.stringify([new Date(), 'Error Aggregate', this.collectionName, pipeline, safeOptions, {
1195
- code: err_7.code,
1196
- codeName: err_7.codeName,
1197
- message: err_7.message,
1198
- stack: err_7.stack
1255
+ code: err_8.code,
1256
+ codeName: err_8.codeName,
1257
+ message: err_8.message,
1258
+ stack: err_8.stack
1199
1259
  }], null, 2));
1200
- err_7.message = "Error in Aggregate: ".concat(this.collectionName, " => ").concat(err_7.codeName || 'NoCodeName', " => ").concat(err_7.message);
1201
- throw err_7;
1260
+ err_8.message = "Error in Aggregate: ".concat(this.collectionName, " => ").concat(err_8.codeName || 'NoCodeName', " => ").concat(err_8.message);
1261
+ throw err_8;
1202
1262
  case 5: return [4 /*yield*/, monitor.finish()];
1203
1263
  case 6:
1204
1264
  _b.sent();
@@ -1210,7 +1270,7 @@ var MongoManagerCollection = /** @class */ (function () {
1210
1270
  };
1211
1271
  MongoManagerCollection.prototype.aggregateCount = function (pipeline_1, options_1) {
1212
1272
  return __awaiter(this, arguments, void 0, function (pipeline, options, bypassSession) {
1213
- var mongoSession, _a, session, safeOptions, monitor, res, err_8;
1273
+ var mongoSession, _a, session, safeOptions, monitor, res, err_9;
1214
1274
  if (bypassSession === void 0) { bypassSession = false; }
1215
1275
  return __generator(this, function (_b) {
1216
1276
  switch (_b.label) {
@@ -1237,15 +1297,15 @@ var MongoManagerCollection = /** @class */ (function () {
1237
1297
  (0, subscription_dependency_context_1.recordAggregateDependencies)(this.collectionName, pipeline, res);
1238
1298
  return [2 /*return*/, res.length];
1239
1299
  case 3:
1240
- err_8 = _b.sent();
1300
+ err_9 = _b.sent();
1241
1301
  console.log(JSON.stringify([new Date(), 'Error Aggregate Count', this.collectionName, pipeline, safeOptions, {
1242
- code: err_8.code,
1243
- codeName: err_8.codeName,
1244
- message: err_8.message,
1245
- stack: err_8.stack
1302
+ code: err_9.code,
1303
+ codeName: err_9.codeName,
1304
+ message: err_9.message,
1305
+ stack: err_9.stack
1246
1306
  }], null, 2));
1247
- err_8.message = "Error in Aggregate Count: ".concat(this.collectionName, " => ").concat(err_8.codeName || 'NoCodeName', " => ").concat(err_8.message);
1248
- throw err_8;
1307
+ err_9.message = "Error in Aggregate Count: ".concat(this.collectionName, " => ").concat(err_9.codeName || 'NoCodeName', " => ").concat(err_9.message);
1308
+ throw err_9;
1249
1309
  case 4: return [4 /*yield*/, monitor.finish()];
1250
1310
  case 5:
1251
1311
  _b.sent();
@@ -1316,7 +1376,7 @@ var MongoManagerCollection = /** @class */ (function () {
1316
1376
  };
1317
1377
  MongoManagerCollection.prototype.bulkWrite = function (operations_1, options_1) {
1318
1378
  return __awaiter(this, arguments, void 0, function (operations, options, bypassCheckSchema, bypassLogs, bypassVersions, bypassSession) {
1319
- var BATCH_SIZE, opIndex, mongoSession, _a, session, safeOptions, batchOps, logs, versionOps, batchOps_1, batchOps_1_1, op, opType, doc, validationContext, isValid, affectedDocs, versionFilters, versionInserts, _b, _c, monitor, err_9, bwOptions, affectedDocIds, pipeline, oldVersions, _d;
1379
+ var BATCH_SIZE, opIndex, mongoSession, _a, session, safeOptions, batchOps, logs, versionOps, batchOps_1, batchOps_1_1, op, opType, doc, validationContext, isValid, affectedDocs, versionFilters, versionInserts, _b, _c, monitor, err_10, bwOptions, affectedDocIds, pipeline, oldVersions, _d;
1320
1380
  var e_6, _e;
1321
1381
  if (bypassCheckSchema === void 0) { bypassCheckSchema = false; }
1322
1382
  if (bypassLogs === void 0) { bypassLogs = false; }
@@ -1567,15 +1627,15 @@ var MongoManagerCollection = /** @class */ (function () {
1567
1627
  _f.sent();
1568
1628
  return [3 /*break*/, 16];
1569
1629
  case 13:
1570
- err_9 = _f.sent();
1630
+ err_10 = _f.sent();
1571
1631
  console.log(JSON.stringify([new Date(), 'Error Bulk Write', this.collectionName, operations, safeOptions, {
1572
- code: err_9.code,
1573
- codeName: err_9.codeName,
1574
- message: err_9.message,
1575
- stack: err_9.stack
1632
+ code: err_10.code,
1633
+ codeName: err_10.codeName,
1634
+ message: err_10.message,
1635
+ stack: err_10.stack
1576
1636
  }], null, 2));
1577
- err_9.message = "Error in Bulk Write: ".concat(this.collectionName, " => ").concat(err_9.codeName || 'NoCodeName', " => ").concat(err_9.message);
1578
- throw err_9;
1637
+ err_10.message = "Error in Bulk Write: ".concat(this.collectionName, " => ").concat(err_10.codeName || 'NoCodeName', " => ").concat(err_10.message);
1638
+ throw err_10;
1579
1639
  case 14: return [4 /*yield*/, monitor.finish()];
1580
1640
  case 15:
1581
1641
  _f.sent();
@@ -1668,7 +1728,7 @@ var MongoManagerCollection = /** @class */ (function () {
1668
1728
  };
1669
1729
  MongoManagerCollection.prototype.countDocuments = function () {
1670
1730
  return __awaiter(this, arguments, void 0, function (filter, options, skipCache) {
1671
- var _a, session, safeOptions, isUnfiltered, monitor, res, err_10;
1731
+ var _a, session, safeOptions, isUnfiltered, monitor, res, err_11;
1672
1732
  if (filter === void 0) { filter = {}; }
1673
1733
  if (skipCache === void 0) { skipCache = false; }
1674
1734
  return __generator(this, function (_b) {
@@ -1693,15 +1753,15 @@ var MongoManagerCollection = /** @class */ (function () {
1693
1753
  res = _b.sent();
1694
1754
  return [2 /*return*/, res];
1695
1755
  case 5:
1696
- err_10 = _b.sent();
1756
+ err_11 = _b.sent();
1697
1757
  console.log(JSON.stringify([new Date(), 'Error Count Documents', this.collectionName, filter, safeOptions, {
1698
- code: err_10.code,
1699
- codeName: err_10.codeName,
1700
- message: err_10.message,
1701
- stack: err_10.stack
1758
+ code: err_11.code,
1759
+ codeName: err_11.codeName,
1760
+ message: err_11.message,
1761
+ stack: err_11.stack
1702
1762
  }], null, 2));
1703
- err_10.message = "Error in Count Documents: ".concat(this.collectionName, " => ").concat(err_10.codeName || 'NoCodeName', " => ").concat(err_10.message);
1704
- throw err_10;
1763
+ err_11.message = "Error in Count Documents: ".concat(this.collectionName, " => ").concat(err_11.codeName || 'NoCodeName', " => ").concat(err_11.message);
1764
+ throw err_11;
1705
1765
  case 6: return [4 /*yield*/, monitor.finish()];
1706
1766
  case 7:
1707
1767
  _b.sent();
@@ -1778,7 +1838,7 @@ var MongoManagerCollection = /** @class */ (function () {
1778
1838
  };
1779
1839
  MongoManagerCollection.prototype.deleteMany = function () {
1780
1840
  return __awaiter(this, arguments, void 0, function (filter, options, bypassLogs, bypassSession) {
1781
- var mongoSession, _a, session, safeOptions, docs, i, doc, versionDoc, _b, monitor, res, err_11;
1841
+ var mongoSession, _a, session, safeOptions, docs, i, doc, versionDoc, _b, monitor, res, err_12;
1782
1842
  if (filter === void 0) { filter = {}; }
1783
1843
  if (bypassLogs === void 0) { bypassLogs = false; }
1784
1844
  if (bypassSession === void 0) { bypassSession = false; }
@@ -1877,15 +1937,15 @@ var MongoManagerCollection = /** @class */ (function () {
1877
1937
  }
1878
1938
  return [2 /*return*/, res];
1879
1939
  case 14:
1880
- err_11 = _c.sent();
1940
+ err_12 = _c.sent();
1881
1941
  console.log(JSON.stringify([new Date(), 'Error Delete Many', this.collectionName, filter, safeOptions, {
1882
- code: err_11.code,
1883
- codeName: err_11.codeName,
1884
- message: err_11.message,
1885
- stack: err_11.stack
1942
+ code: err_12.code,
1943
+ codeName: err_12.codeName,
1944
+ message: err_12.message,
1945
+ stack: err_12.stack
1886
1946
  }], null, 2));
1887
- err_11.message = "Error in Delete Many: ".concat(this.collectionName, " => ").concat(err_11.codeName || 'NoCodeName', " => ").concat(err_11.message);
1888
- throw err_11;
1947
+ err_12.message = "Error in Delete Many: ".concat(this.collectionName, " => ").concat(err_12.codeName || 'NoCodeName', " => ").concat(err_12.message);
1948
+ throw err_12;
1889
1949
  case 15: return [4 /*yield*/, monitor.finish()];
1890
1950
  case 16:
1891
1951
  _c.sent();
@@ -1897,7 +1957,7 @@ var MongoManagerCollection = /** @class */ (function () {
1897
1957
  };
1898
1958
  MongoManagerCollection.prototype.deleteOne = function () {
1899
1959
  return __awaiter(this, arguments, void 0, function (filter, options, bypassLogs, bypassSession) {
1900
- var mongoSession, _a, session, safeOptions, monitor, res, doc, versionDoc, _b, err_12, monitor, res, err_13;
1960
+ var mongoSession, _a, session, safeOptions, monitor, res, doc, versionDoc, _b, err_13, monitor, res, err_14;
1901
1961
  if (filter === void 0) { filter = {}; }
1902
1962
  if (bypassLogs === void 0) { bypassLogs = false; }
1903
1963
  if (bypassSession === void 0) { bypassSession = false; }
@@ -1990,15 +2050,15 @@ var MongoManagerCollection = /** @class */ (function () {
1990
2050
  _c.label = 12;
1991
2051
  case 12: return [2 /*return*/, res];
1992
2052
  case 13:
1993
- err_12 = _c.sent();
2053
+ err_13 = _c.sent();
1994
2054
  console.log(JSON.stringify([new Date(), 'Error Delete One (Find One And Delete)', this.collectionName, filter, safeOptions, {
1995
- code: err_12.code,
1996
- codeName: err_12.codeName,
1997
- message: err_12.message,
1998
- stack: err_12.stack
2055
+ code: err_13.code,
2056
+ codeName: err_13.codeName,
2057
+ message: err_13.message,
2058
+ stack: err_13.stack
1999
2059
  }], null, 2));
2000
- err_12.message = "Error in Delete One (Find One And Delete): ".concat(this.collectionName, " => ").concat(err_12.codeName || 'NoCodeName', " => ").concat(err_12.message);
2001
- throw err_12;
2060
+ err_13.message = "Error in Delete One (Find One And Delete): ".concat(this.collectionName, " => ").concat(err_13.codeName || 'NoCodeName', " => ").concat(err_13.message);
2061
+ throw err_13;
2002
2062
  case 14: return [4 /*yield*/, monitor.finish()];
2003
2063
  case 15:
2004
2064
  _c.sent();
@@ -2017,15 +2077,15 @@ var MongoManagerCollection = /** @class */ (function () {
2017
2077
  }
2018
2078
  return [2 /*return*/, res];
2019
2079
  case 20:
2020
- err_13 = _c.sent();
2080
+ err_14 = _c.sent();
2021
2081
  console.log(JSON.stringify([new Date(), 'Error Delete One', this.collectionName, filter, safeOptions, {
2022
- code: err_13.code,
2023
- codeName: err_13.codeName,
2024
- message: err_13.message,
2025
- stack: err_13.stack
2082
+ code: err_14.code,
2083
+ codeName: err_14.codeName,
2084
+ message: err_14.message,
2085
+ stack: err_14.stack
2026
2086
  }], null, 2));
2027
- err_13.message = "Error in Delete One: ".concat(this.collectionName, " => ").concat(err_13.codeName || 'NoCodeName', " => ").concat(err_13.message);
2028
- throw err_13;
2087
+ err_14.message = "Error in Delete One: ".concat(this.collectionName, " => ").concat(err_14.codeName || 'NoCodeName', " => ").concat(err_14.message);
2088
+ throw err_14;
2029
2089
  case 21: return [4 /*yield*/, monitor.finish()];
2030
2090
  case 22:
2031
2091
  _c.sent();
@@ -2037,7 +2097,7 @@ var MongoManagerCollection = /** @class */ (function () {
2037
2097
  };
2038
2098
  MongoManagerCollection.prototype.distinct = function (key_1, filter_1, options_1) {
2039
2099
  return __awaiter(this, arguments, void 0, function (key, filter, options, bypassSession) {
2040
- var mongoSession, _a, session, safeOptions, monitor, res, err_14;
2100
+ var mongoSession, _a, session, safeOptions, monitor, res, err_15;
2041
2101
  if (bypassSession === void 0) { bypassSession = false; }
2042
2102
  return __generator(this, function (_b) {
2043
2103
  switch (_b.label) {
@@ -2063,15 +2123,15 @@ var MongoManagerCollection = /** @class */ (function () {
2063
2123
  res = _b.sent();
2064
2124
  return [2 /*return*/, res];
2065
2125
  case 3:
2066
- err_14 = _b.sent();
2126
+ err_15 = _b.sent();
2067
2127
  console.log(JSON.stringify([new Date(), 'Error Distinct', this.collectionName, filter, safeOptions, {
2068
- code: err_14.code,
2069
- codeName: err_14.codeName,
2070
- message: err_14.message,
2071
- stack: err_14.stack
2128
+ code: err_15.code,
2129
+ codeName: err_15.codeName,
2130
+ message: err_15.message,
2131
+ stack: err_15.stack
2072
2132
  }], null, 2));
2073
- err_14.message = "Error in Distinct: ".concat(this.collectionName, " => ").concat(err_14.codeName || 'NoCodeName', " => ").concat(err_14.message);
2074
- throw err_14;
2133
+ err_15.message = "Error in Distinct: ".concat(this.collectionName, " => ").concat(err_15.codeName || 'NoCodeName', " => ").concat(err_15.message);
2134
+ throw err_15;
2075
2135
  case 4: return [4 /*yield*/, monitor.finish()];
2076
2136
  case 5:
2077
2137
  _b.sent();
@@ -2083,7 +2143,7 @@ var MongoManagerCollection = /** @class */ (function () {
2083
2143
  };
2084
2144
  MongoManagerCollection.prototype.drop = function (options_1) {
2085
2145
  return __awaiter(this, arguments, void 0, function (options, bypassSession) {
2086
- var mongoSession, _a, session, safeOptions, monitor, res, err_15;
2146
+ var mongoSession, _a, session, safeOptions, monitor, res, err_16;
2087
2147
  if (bypassSession === void 0) { bypassSession = false; }
2088
2148
  return __generator(this, function (_b) {
2089
2149
  switch (_b.label) {
@@ -2109,15 +2169,15 @@ var MongoManagerCollection = /** @class */ (function () {
2109
2169
  res = _b.sent();
2110
2170
  return [2 /*return*/, res];
2111
2171
  case 3:
2112
- err_15 = _b.sent();
2172
+ err_16 = _b.sent();
2113
2173
  console.log(JSON.stringify([new Date(), 'Error Drop Collection', this.collectionName, safeOptions, {
2114
- code: err_15.code,
2115
- codeName: err_15.codeName,
2116
- message: err_15.message,
2117
- stack: err_15.stack
2174
+ code: err_16.code,
2175
+ codeName: err_16.codeName,
2176
+ message: err_16.message,
2177
+ stack: err_16.stack
2118
2178
  }], null, 2));
2119
- err_15.message = "Error in Drop Collection: ".concat(this.collectionName, " => ").concat(err_15.codeName || 'NoCodeName', " => ").concat(err_15.message);
2120
- throw err_15;
2179
+ err_16.message = "Error in Drop Collection: ".concat(this.collectionName, " => ").concat(err_16.codeName || 'NoCodeName', " => ").concat(err_16.message);
2180
+ throw err_16;
2121
2181
  case 4: return [4 /*yield*/, monitor.finish()];
2122
2182
  case 5:
2123
2183
  _b.sent();
@@ -2129,7 +2189,7 @@ var MongoManagerCollection = /** @class */ (function () {
2129
2189
  };
2130
2190
  MongoManagerCollection.prototype.dropIndex = function (indexName_1, options_1) {
2131
2191
  return __awaiter(this, arguments, void 0, function (indexName, options, bypassSession) {
2132
- var mongoSession, _a, session, safeOptions, monitor, res, err_16;
2192
+ var mongoSession, _a, session, safeOptions, monitor, res, err_17;
2133
2193
  if (bypassSession === void 0) { bypassSession = false; }
2134
2194
  return __generator(this, function (_b) {
2135
2195
  switch (_b.label) {
@@ -2155,15 +2215,15 @@ var MongoManagerCollection = /** @class */ (function () {
2155
2215
  res = _b.sent();
2156
2216
  return [2 /*return*/, res];
2157
2217
  case 3:
2158
- err_16 = _b.sent();
2218
+ err_17 = _b.sent();
2159
2219
  console.log(JSON.stringify([new Date(), 'Error Drop Index', this.collectionName, indexName, safeOptions, {
2160
- code: err_16.code,
2161
- codeName: err_16.codeName,
2162
- message: err_16.message,
2163
- stack: err_16.stack
2220
+ code: err_17.code,
2221
+ codeName: err_17.codeName,
2222
+ message: err_17.message,
2223
+ stack: err_17.stack
2164
2224
  }], null, 2));
2165
- err_16.message = "Error in Drop Index: ".concat(this.collectionName, " => ").concat(err_16.codeName || 'NoCodeName', " => ").concat(err_16.message);
2166
- throw err_16;
2225
+ err_17.message = "Error in Drop Index: ".concat(this.collectionName, " => ").concat(err_17.codeName || 'NoCodeName', " => ").concat(err_17.message);
2226
+ throw err_17;
2167
2227
  case 4: return [4 /*yield*/, monitor.finish()];
2168
2228
  case 5:
2169
2229
  _b.sent();
@@ -2175,7 +2235,7 @@ var MongoManagerCollection = /** @class */ (function () {
2175
2235
  };
2176
2236
  MongoManagerCollection.prototype.dropIndexes = function (options_1) {
2177
2237
  return __awaiter(this, arguments, void 0, function (options, bypassSession) {
2178
- var mongoSession, _a, session, safeOptions, monitor, res, err_17;
2238
+ var mongoSession, _a, session, safeOptions, monitor, res, err_18;
2179
2239
  if (bypassSession === void 0) { bypassSession = false; }
2180
2240
  return __generator(this, function (_b) {
2181
2241
  switch (_b.label) {
@@ -2201,15 +2261,15 @@ var MongoManagerCollection = /** @class */ (function () {
2201
2261
  res = _b.sent();
2202
2262
  return [2 /*return*/, res];
2203
2263
  case 3:
2204
- err_17 = _b.sent();
2264
+ err_18 = _b.sent();
2205
2265
  console.log(JSON.stringify([new Date(), 'Error Drop Indexes', this.collectionName, safeOptions, {
2206
- code: err_17.code,
2207
- codeName: err_17.codeName,
2208
- message: err_17.message,
2209
- stack: err_17.stack
2266
+ code: err_18.code,
2267
+ codeName: err_18.codeName,
2268
+ message: err_18.message,
2269
+ stack: err_18.stack
2210
2270
  }], null, 2));
2211
- err_17.message = "Error in Drop Indexes: ".concat(this.collectionName, " => ").concat(err_17.codeName || 'NoCodeName', " => ").concat(err_17.message);
2212
- throw err_17;
2271
+ err_18.message = "Error in Drop Indexes: ".concat(this.collectionName, " => ").concat(err_18.codeName || 'NoCodeName', " => ").concat(err_18.message);
2272
+ throw err_18;
2213
2273
  case 4: return [4 /*yield*/, monitor.finish()];
2214
2274
  case 5:
2215
2275
  _b.sent();
@@ -2221,7 +2281,7 @@ var MongoManagerCollection = /** @class */ (function () {
2221
2281
  };
2222
2282
  MongoManagerCollection.prototype.find = function () {
2223
2283
  return __awaiter(this, arguments, void 0, function (filter, options, skipCache, bypassSession) {
2224
- var mongoSession, _a, session, safeOptions, monitor, res, err_18;
2284
+ var mongoSession, _a, session, safeOptions, monitor, res, err_19;
2225
2285
  if (filter === void 0) { filter = {}; }
2226
2286
  if (skipCache === void 0) { skipCache = false; }
2227
2287
  if (bypassSession === void 0) { bypassSession = false; }
@@ -2253,15 +2313,15 @@ var MongoManagerCollection = /** @class */ (function () {
2253
2313
  (0, subscription_dependency_context_1.recordDependencyResult)(this.collectionName, res, { filter: filter, meta: buildQueryMetaFromFindOptions(safeOptions) });
2254
2314
  return [2 /*return*/, res];
2255
2315
  case 4:
2256
- err_18 = _b.sent();
2316
+ err_19 = _b.sent();
2257
2317
  console.log(JSON.stringify([new Date(), 'Error Find', this.collectionName, filter, safeOptions, {
2258
- code: err_18.code,
2259
- codeName: err_18.codeName,
2260
- message: err_18.message,
2261
- stack: err_18.stack
2318
+ code: err_19.code,
2319
+ codeName: err_19.codeName,
2320
+ message: err_19.message,
2321
+ stack: err_19.stack
2262
2322
  }], null, 2));
2263
- err_18.message = "Error in Find: ".concat(this.collectionName, " => ").concat(err_18.codeName || 'NoCodeName', " => ").concat(err_18.message);
2264
- throw err_18;
2323
+ err_19.message = "Error in Find: ".concat(this.collectionName, " => ").concat(err_19.codeName || 'NoCodeName', " => ").concat(err_19.message);
2324
+ throw err_19;
2265
2325
  case 5: return [4 /*yield*/, monitor.finish()];
2266
2326
  case 6:
2267
2327
  _b.sent();
@@ -2273,7 +2333,7 @@ var MongoManagerCollection = /** @class */ (function () {
2273
2333
  };
2274
2334
  MongoManagerCollection.prototype.findById = function (id_1, options_1) {
2275
2335
  return __awaiter(this, arguments, void 0, function (id, options, skipCache, bypassSession) {
2276
- var mongoSession, _a, session, safeOptions, monitor, res, err_19;
2336
+ var mongoSession, _a, session, safeOptions, monitor, res, err_20;
2277
2337
  if (skipCache === void 0) { skipCache = false; }
2278
2338
  if (bypassSession === void 0) { bypassSession = false; }
2279
2339
  return __generator(this, function (_b) {
@@ -2304,15 +2364,15 @@ var MongoManagerCollection = /** @class */ (function () {
2304
2364
  (0, subscription_dependency_context_1.recordDependencyResult)(this.collectionName, res, { filter: { _id: id }, meta: buildQueryMetaFromFindOptions(safeOptions) });
2305
2365
  return [2 /*return*/, res];
2306
2366
  case 4:
2307
- err_19 = _b.sent();
2367
+ err_20 = _b.sent();
2308
2368
  console.log(JSON.stringify([new Date(), 'Error Find By ID', this.collectionName, id, safeOptions, {
2309
- code: err_19.code,
2310
- codeName: err_19.codeName,
2311
- message: err_19.message,
2312
- stack: err_19.stack
2369
+ code: err_20.code,
2370
+ codeName: err_20.codeName,
2371
+ message: err_20.message,
2372
+ stack: err_20.stack
2313
2373
  }], null, 2));
2314
- err_19.message = "Error in Find By ID: ".concat(this.collectionName, " => ").concat(err_19.codeName || 'NoCodeName', " => ").concat(err_19.message);
2315
- throw err_19;
2374
+ err_20.message = "Error in Find By ID: ".concat(this.collectionName, " => ").concat(err_20.codeName || 'NoCodeName', " => ").concat(err_20.message);
2375
+ throw err_20;
2316
2376
  case 5: return [4 /*yield*/, monitor.finish()];
2317
2377
  case 6:
2318
2378
  _b.sent();
@@ -2324,7 +2384,7 @@ var MongoManagerCollection = /** @class */ (function () {
2324
2384
  };
2325
2385
  MongoManagerCollection.prototype.findCount = function () {
2326
2386
  return __awaiter(this, arguments, void 0, function (filter, options, bypassSession) {
2327
- var mongoSession, _a, session, safeOptions, monitor, res, err_20;
2387
+ var mongoSession, _a, session, safeOptions, monitor, res, err_21;
2328
2388
  if (filter === void 0) { filter = {}; }
2329
2389
  if (bypassSession === void 0) { bypassSession = false; }
2330
2390
  return __generator(this, function (_b) {
@@ -2352,15 +2412,15 @@ var MongoManagerCollection = /** @class */ (function () {
2352
2412
  (0, subscription_dependency_context_1.recordDependencyResult)(this.collectionName, res, { filter: filter });
2353
2413
  return [2 /*return*/, res];
2354
2414
  case 3:
2355
- err_20 = _b.sent();
2415
+ err_21 = _b.sent();
2356
2416
  console.log(JSON.stringify([new Date(), 'Error Find Count', this.collectionName, filter, safeOptions, {
2357
- code: err_20.code,
2358
- codeName: err_20.codeName,
2359
- message: err_20.message,
2360
- stack: err_20.stack
2417
+ code: err_21.code,
2418
+ codeName: err_21.codeName,
2419
+ message: err_21.message,
2420
+ stack: err_21.stack
2361
2421
  }], null, 2));
2362
- err_20.message = "Error in Find Count: ".concat(this.collectionName, " => ").concat(err_20.codeName || 'NoCodeName', " => ").concat(err_20.message);
2363
- throw err_20;
2422
+ err_21.message = "Error in Find Count: ".concat(this.collectionName, " => ").concat(err_21.codeName || 'NoCodeName', " => ").concat(err_21.message);
2423
+ throw err_21;
2364
2424
  case 4: return [4 /*yield*/, monitor.finish()];
2365
2425
  case 5:
2366
2426
  _b.sent();
@@ -2430,7 +2490,7 @@ var MongoManagerCollection = /** @class */ (function () {
2430
2490
  };
2431
2491
  MongoManagerCollection.prototype.findOne = function () {
2432
2492
  return __awaiter(this, arguments, void 0, function (filter, options, skipCache, bypassSession) {
2433
- var mongoSession, _a, session, safeOptions, monitor, res, err_21;
2493
+ var mongoSession, _a, session, safeOptions, monitor, res, err_22;
2434
2494
  if (filter === void 0) { filter = {}; }
2435
2495
  if (skipCache === void 0) { skipCache = false; }
2436
2496
  if (bypassSession === void 0) { bypassSession = false; }
@@ -2462,15 +2522,15 @@ var MongoManagerCollection = /** @class */ (function () {
2462
2522
  (0, subscription_dependency_context_1.recordDependencyResult)(this.collectionName, res, { filter: filter });
2463
2523
  return [2 /*return*/, res];
2464
2524
  case 4:
2465
- err_21 = _b.sent();
2525
+ err_22 = _b.sent();
2466
2526
  console.log(JSON.stringify([new Date(), 'Error Find One', this.collectionName, filter, safeOptions, {
2467
- code: err_21.code,
2468
- codeName: err_21.codeName,
2469
- message: err_21.message,
2470
- stack: err_21.stack
2527
+ code: err_22.code,
2528
+ codeName: err_22.codeName,
2529
+ message: err_22.message,
2530
+ stack: err_22.stack
2471
2531
  }], null, 2));
2472
- err_21.message = "Error in Find One: ".concat(this.collectionName, " => ").concat(err_21.codeName || 'NoCodeName', " => ").concat(err_21.message);
2473
- throw err_21;
2532
+ err_22.message = "Error in Find One: ".concat(this.collectionName, " => ").concat(err_22.codeName || 'NoCodeName', " => ").concat(err_22.message);
2533
+ throw err_22;
2474
2534
  case 5: return [4 /*yield*/, monitor.finish()];
2475
2535
  case 6:
2476
2536
  _b.sent();
@@ -2482,7 +2542,7 @@ var MongoManagerCollection = /** @class */ (function () {
2482
2542
  };
2483
2543
  MongoManagerCollection.prototype.findOneAndDelete = function () {
2484
2544
  return __awaiter(this, arguments, void 0, function (filter, options, bypassLogs, bypassSession) {
2485
- var mongoSession, _a, session, safeOptions, monitor, doc, versionDoc, _b, err_22;
2545
+ var mongoSession, _a, session, safeOptions, monitor, doc, versionDoc, _b, err_23;
2486
2546
  if (filter === void 0) { filter = {}; }
2487
2547
  if (bypassLogs === void 0) { bypassLogs = false; }
2488
2548
  if (bypassSession === void 0) { bypassSession = false; }
@@ -2569,15 +2629,15 @@ var MongoManagerCollection = /** @class */ (function () {
2569
2629
  case 10: return [2 /*return*/, null];
2570
2630
  case 11: return [3 /*break*/, 15];
2571
2631
  case 12:
2572
- err_22 = _c.sent();
2632
+ err_23 = _c.sent();
2573
2633
  console.log(JSON.stringify([new Date(), 'Error Find One And Delete', this.collectionName, filter, safeOptions, {
2574
- code: err_22.code,
2575
- codeName: err_22.codeName,
2576
- message: err_22.message,
2577
- stack: err_22.stack
2634
+ code: err_23.code,
2635
+ codeName: err_23.codeName,
2636
+ message: err_23.message,
2637
+ stack: err_23.stack
2578
2638
  }], null, 2));
2579
- err_22.message = "Error in Find One And Delete: ".concat(this.collectionName, " => ").concat(err_22.codeName || 'NoCodeName', " => ").concat(err_22.message);
2580
- throw err_22;
2639
+ err_23.message = "Error in Find One And Delete: ".concat(this.collectionName, " => ").concat(err_23.codeName || 'NoCodeName', " => ").concat(err_23.message);
2640
+ throw err_23;
2581
2641
  case 13: return [4 /*yield*/, monitor.finish()];
2582
2642
  case 14:
2583
2643
  _c.sent();
@@ -2589,7 +2649,7 @@ var MongoManagerCollection = /** @class */ (function () {
2589
2649
  };
2590
2650
  MongoManagerCollection.prototype.findOneAndReplace = function () {
2591
2651
  return __awaiter(this, arguments, void 0, function (filter, replacement, options, bypassLogs, bypassCheckSchema, bypassSession) {
2592
- var validation, isValid, date, mongoSession, _a, session, safeOptions, monitor, doc, versionDoc, _b, err_23;
2652
+ var validation, isValid, date, mongoSession, _a, session, safeOptions, monitor, doc, versionDoc, _b, err_24;
2593
2653
  if (filter === void 0) { filter = {}; }
2594
2654
  if (bypassLogs === void 0) { bypassLogs = false; }
2595
2655
  if (bypassCheckSchema === void 0) { bypassCheckSchema = false; }
@@ -2702,15 +2762,15 @@ var MongoManagerCollection = /** @class */ (function () {
2702
2762
  case 12: return [2 /*return*/, null];
2703
2763
  case 13: return [3 /*break*/, 17];
2704
2764
  case 14:
2705
- err_23 = _c.sent();
2765
+ err_24 = _c.sent();
2706
2766
  console.log(JSON.stringify([new Date(), 'Error Find One And Replace', this.collectionName, filter, safeOptions, {
2707
- code: err_23.code,
2708
- codeName: err_23.codeName,
2709
- message: err_23.message,
2710
- stack: err_23.stack
2767
+ code: err_24.code,
2768
+ codeName: err_24.codeName,
2769
+ message: err_24.message,
2770
+ stack: err_24.stack
2711
2771
  }], null, 2));
2712
- err_23.message = "Error in Find One And Replace: ".concat(this.collectionName, " => ").concat(err_23.codeName || 'NoCodeName', " => ").concat(err_23.message);
2713
- throw err_23;
2772
+ err_24.message = "Error in Find One And Replace: ".concat(this.collectionName, " => ").concat(err_24.codeName || 'NoCodeName', " => ").concat(err_24.message);
2773
+ throw err_24;
2714
2774
  case 15: return [4 /*yield*/, monitor.finish()];
2715
2775
  case 16:
2716
2776
  _c.sent();
@@ -2722,7 +2782,7 @@ var MongoManagerCollection = /** @class */ (function () {
2722
2782
  };
2723
2783
  MongoManagerCollection.prototype.findOneAndUpdate = function () {
2724
2784
  return __awaiter(this, arguments, void 0, function (filter, update, options, bypassLogs, bypassCheckSchema, bypassSession) {
2725
- var validation, isValid, date, mongoSession, _a, session, safeOptions, monitor, doc, versionDoc, _b, err_24;
2785
+ var validation, isValid, date, mongoSession, _a, session, safeOptions, monitor, doc, versionDoc, _b, err_25;
2726
2786
  if (filter === void 0) { filter = {}; }
2727
2787
  if (bypassLogs === void 0) { bypassLogs = false; }
2728
2788
  if (bypassCheckSchema === void 0) { bypassCheckSchema = false; }
@@ -2852,15 +2912,15 @@ var MongoManagerCollection = /** @class */ (function () {
2852
2912
  case 12: return [2 /*return*/, null];
2853
2913
  case 13: return [3 /*break*/, 17];
2854
2914
  case 14:
2855
- err_24 = _c.sent();
2915
+ err_25 = _c.sent();
2856
2916
  console.log(JSON.stringify([new Date(), 'Error Find One And Update', this.collectionName, filter, safeOptions, {
2857
- code: err_24.code,
2858
- codeName: err_24.codeName,
2859
- message: err_24.message,
2860
- stack: err_24.stack
2917
+ code: err_25.code,
2918
+ codeName: err_25.codeName,
2919
+ message: err_25.message,
2920
+ stack: err_25.stack
2861
2921
  }], null, 2));
2862
- err_24.message = "Error in Find One And Update: ".concat(this.collectionName, " => ").concat(err_24.codeName || 'NoCodeName', " => ").concat(err_24.message);
2863
- throw err_24;
2922
+ err_25.message = "Error in Find One And Update: ".concat(this.collectionName, " => ").concat(err_25.codeName || 'NoCodeName', " => ").concat(err_25.message);
2923
+ throw err_25;
2864
2924
  case 15: return [4 /*yield*/, monitor.finish()];
2865
2925
  case 16:
2866
2926
  _c.sent();
@@ -2872,7 +2932,7 @@ var MongoManagerCollection = /** @class */ (function () {
2872
2932
  };
2873
2933
  MongoManagerCollection.prototype.indexes = function (options) {
2874
2934
  return __awaiter(this, void 0, void 0, function () {
2875
- var _a, session, safeOptions, monitor, res, err_25;
2935
+ var _a, session, safeOptions, monitor, res, err_26;
2876
2936
  return __generator(this, function (_b) {
2877
2937
  switch (_b.label) {
2878
2938
  case 0:
@@ -2886,15 +2946,15 @@ var MongoManagerCollection = /** @class */ (function () {
2886
2946
  res = _b.sent();
2887
2947
  return [2 /*return*/, res];
2888
2948
  case 3:
2889
- err_25 = _b.sent();
2949
+ err_26 = _b.sent();
2890
2950
  console.log(JSON.stringify([new Date(), 'Error Indexes', this.collectionName, safeOptions, {
2891
- code: err_25.code,
2892
- codeName: err_25.codeName,
2893
- message: err_25.message,
2894
- stack: err_25.stack
2951
+ code: err_26.code,
2952
+ codeName: err_26.codeName,
2953
+ message: err_26.message,
2954
+ stack: err_26.stack
2895
2955
  }], null, 2));
2896
- err_25.message = "Error in Indexes: ".concat(this.collectionName, " => ").concat(err_25.codeName || 'NoCodeName', " => ").concat(err_25.message);
2897
- throw err_25;
2956
+ err_26.message = "Error in Indexes: ".concat(this.collectionName, " => ").concat(err_26.codeName || 'NoCodeName', " => ").concat(err_26.message);
2957
+ throw err_26;
2898
2958
  case 4: return [4 /*yield*/, monitor.finish()];
2899
2959
  case 5:
2900
2960
  _b.sent();
@@ -2906,7 +2966,7 @@ var MongoManagerCollection = /** @class */ (function () {
2906
2966
  };
2907
2967
  MongoManagerCollection.prototype.indexExists = function (indexes, options) {
2908
2968
  return __awaiter(this, void 0, void 0, function () {
2909
- var _a, session, safeOptions, monitor, res, err_26;
2969
+ var _a, session, safeOptions, monitor, res, err_27;
2910
2970
  return __generator(this, function (_b) {
2911
2971
  switch (_b.label) {
2912
2972
  case 0:
@@ -2920,15 +2980,15 @@ var MongoManagerCollection = /** @class */ (function () {
2920
2980
  res = _b.sent();
2921
2981
  return [2 /*return*/, res];
2922
2982
  case 3:
2923
- err_26 = _b.sent();
2983
+ err_27 = _b.sent();
2924
2984
  console.log(JSON.stringify([new Date(), 'Error Index Exists', this.collectionName, indexes, safeOptions, {
2925
- code: err_26.code,
2926
- codeName: err_26.codeName,
2927
- message: err_26.message,
2928
- stack: err_26.stack
2985
+ code: err_27.code,
2986
+ codeName: err_27.codeName,
2987
+ message: err_27.message,
2988
+ stack: err_27.stack
2929
2989
  }], null, 2));
2930
- err_26.message = "Error in Index Exists: ".concat(this.collectionName, " => ").concat(err_26.codeName || 'NoCodeName', " => ").concat(err_26.message);
2931
- throw err_26;
2990
+ err_27.message = "Error in Index Exists: ".concat(this.collectionName, " => ").concat(err_27.codeName || 'NoCodeName', " => ").concat(err_27.message);
2991
+ throw err_27;
2932
2992
  case 4: return [4 /*yield*/, monitor.finish()];
2933
2993
  case 5:
2934
2994
  _b.sent();
@@ -2940,8 +3000,9 @@ var MongoManagerCollection = /** @class */ (function () {
2940
3000
  };
2941
3001
  MongoManagerCollection.prototype.insertMany = function (docs_1, options_1) {
2942
3002
  return __awaiter(this, arguments, void 0, function (docs, options, bypassLogs, bypassCheckSchema, bypassMonitor, bypassSession) {
2943
- var validationResults, docs_2, docs_2_1, doc, validation, isValid, e_7_1, validDocs, mongoSession, _a, session, safeOptions, i, doc, date, monitor, err_27;
3003
+ var validationResults, docs_2, docs_2_1, doc, validation, isValid, e_7_1, validDocs, mongoSession, _a, session, safeOptions, i, doc, date, monitor, err_28;
2944
3004
  var e_7, _b;
3005
+ var _this = this;
2945
3006
  if (bypassLogs === void 0) { bypassLogs = false; }
2946
3007
  if (bypassCheckSchema === void 0) { bypassCheckSchema = false; }
2947
3008
  if (bypassMonitor === void 0) { bypassMonitor = false; }
@@ -3072,7 +3133,7 @@ var MongoManagerCollection = /** @class */ (function () {
3072
3133
  _c.label = 15;
3073
3134
  case 15:
3074
3135
  _c.trys.push([15, 17, 18, 19]);
3075
- return [4 /*yield*/, resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName, this.collectionOptions).insertMany(validDocs, options || undefined)];
3136
+ return [4 /*yield*/, this.retryWrite(function () { return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(_this.collectionName, _this.collectionOptions).insertMany(validDocs, options || undefined); }, options)];
3076
3137
  case 16:
3077
3138
  _c.sent();
3078
3139
  if (!this.skipCache) {
@@ -3080,15 +3141,15 @@ var MongoManagerCollection = /** @class */ (function () {
3080
3141
  }
3081
3142
  return [2 /*return*/, validDocs];
3082
3143
  case 17:
3083
- err_27 = _c.sent();
3144
+ err_28 = _c.sent();
3084
3145
  console.log(JSON.stringify([new Date(), 'Error Insert Many', this.collectionName, docs, safeOptions, {
3085
- code: err_27.code,
3086
- codeName: err_27.codeName,
3087
- message: err_27.message,
3088
- stack: err_27.stack
3146
+ code: err_28.code,
3147
+ codeName: err_28.codeName,
3148
+ message: err_28.message,
3149
+ stack: err_28.stack
3089
3150
  }], null, 2));
3090
- err_27.message = "Error in Insert Many: ".concat(this.collectionName, " => ").concat(err_27.codeName || 'NoCodeName', " => ").concat(err_27.message);
3091
- throw err_27;
3151
+ err_28.message = "Error in Insert Many: ".concat(this.collectionName, " => ").concat(err_28.codeName || 'NoCodeName', " => ").concat(err_28.message);
3152
+ throw err_28;
3092
3153
  case 18:
3093
3154
  if (monitor) {
3094
3155
  monitor.finish();
@@ -3101,7 +3162,8 @@ var MongoManagerCollection = /** @class */ (function () {
3101
3162
  };
3102
3163
  MongoManagerCollection.prototype.insertOne = function (doc_1, options_1) {
3103
3164
  return __awaiter(this, arguments, void 0, function (doc, options, bypassLogs, bypassCheckSchema, bypassSession) {
3104
- var validation, isValid, date, mongoSession, _a, session, safeOptions, monitor, err_28;
3165
+ var validation, isValid, date, mongoSession, _a, session, safeOptions, monitor, err_29;
3166
+ var _this = this;
3105
3167
  if (bypassLogs === void 0) { bypassLogs = false; }
3106
3168
  if (bypassCheckSchema === void 0) { bypassCheckSchema = false; }
3107
3169
  if (bypassSession === void 0) { bypassSession = false; }
@@ -3188,7 +3250,7 @@ var MongoManagerCollection = /** @class */ (function () {
3188
3250
  _b.label = 6;
3189
3251
  case 6:
3190
3252
  _b.trys.push([6, 8, 9, 11]);
3191
- return [4 /*yield*/, resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName, this.collectionOptions).insertOne(doc, options || undefined)];
3253
+ return [4 /*yield*/, this.retryWrite(function () { return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(_this.collectionName, _this.collectionOptions).insertOne(doc, options || undefined); }, options)];
3192
3254
  case 7:
3193
3255
  _b.sent();
3194
3256
  if (!this.skipCache) {
@@ -3196,15 +3258,15 @@ var MongoManagerCollection = /** @class */ (function () {
3196
3258
  }
3197
3259
  return [2 /*return*/, doc];
3198
3260
  case 8:
3199
- err_28 = _b.sent();
3261
+ err_29 = _b.sent();
3200
3262
  console.log(JSON.stringify([new Date(), 'Error Insert One', this.collectionName, doc, safeOptions, {
3201
- code: err_28.code,
3202
- codeName: err_28.codeName,
3203
- message: err_28.message,
3204
- stack: err_28.stack
3263
+ code: err_29.code,
3264
+ codeName: err_29.codeName,
3265
+ message: err_29.message,
3266
+ stack: err_29.stack
3205
3267
  }], null, 2));
3206
- err_28.message = "Error in Insert One: ".concat(this.collectionName, " => ").concat(err_28.codeName || 'NoCodeName', " => ").concat(err_28.message);
3207
- throw err_28;
3268
+ err_29.message = "Error in Insert One: ".concat(this.collectionName, " => ").concat(err_29.codeName || 'NoCodeName', " => ").concat(err_29.message);
3269
+ throw err_29;
3208
3270
  case 9: return [4 /*yield*/, monitor.finish()];
3209
3271
  case 10:
3210
3272
  _b.sent();
@@ -3244,7 +3306,7 @@ var MongoManagerCollection = /** @class */ (function () {
3244
3306
  };
3245
3307
  MongoManagerCollection.prototype.rename = function (newName_1, options_1) {
3246
3308
  return __awaiter(this, arguments, void 0, function (newName, options, bypassSession) {
3247
- var mongoSession, _a, session, safeOptions, monitor, res, err_29;
3309
+ var mongoSession, _a, session, safeOptions, monitor, res, err_30;
3248
3310
  if (bypassSession === void 0) { bypassSession = false; }
3249
3311
  return __generator(this, function (_b) {
3250
3312
  switch (_b.label) {
@@ -3270,15 +3332,15 @@ var MongoManagerCollection = /** @class */ (function () {
3270
3332
  res = _b.sent();
3271
3333
  return [2 /*return*/, res];
3272
3334
  case 3:
3273
- err_29 = _b.sent();
3335
+ err_30 = _b.sent();
3274
3336
  console.log(JSON.stringify([new Date(), 'Error Rename', this.collectionName, newName, safeOptions, {
3275
- code: err_29.code,
3276
- codeName: err_29.codeName,
3277
- message: err_29.message,
3278
- stack: err_29.stack
3337
+ code: err_30.code,
3338
+ codeName: err_30.codeName,
3339
+ message: err_30.message,
3340
+ stack: err_30.stack
3279
3341
  }], null, 2));
3280
- err_29.message = "Error in Rename: ".concat(this.collectionName, " => ").concat(err_29.codeName || 'NoCodeName', " => ").concat(err_29.message);
3281
- throw err_29;
3342
+ err_30.message = "Error in Rename: ".concat(this.collectionName, " => ").concat(err_30.codeName || 'NoCodeName', " => ").concat(err_30.message);
3343
+ throw err_30;
3282
3344
  case 4: return [4 /*yield*/, monitor.finish()];
3283
3345
  case 5:
3284
3346
  _b.sent();
@@ -3290,7 +3352,8 @@ var MongoManagerCollection = /** @class */ (function () {
3290
3352
  };
3291
3353
  MongoManagerCollection.prototype.replaceOne = function (filter_1, replacement_1, options_1) {
3292
3354
  return __awaiter(this, arguments, void 0, function (filter, replacement, options, bypassLogs, bypassCheckSchema, doc, bypassSession) {
3293
- var validation, isValid, date, mongoSession, _a, session, safeOptions, versionDoc, _b, monitor, res, err_30, prevDoc, docId, docVersion, updatedDoc, monitor, res, err_31, monitor, res, err_32, _c, session_1, safeOptions_1, monitor, res, doc_1, err_33, monitor, res, err_34;
3355
+ var validation, isValid, date, mongoSession, _a, session, safeOptions, versionDoc, _b, monitor, res, err_31, prevDoc, docId, docVersion, updatedDoc_1, monitor, res, err_32, monitor, res, err_33, _c, session_1, safeOptions_1, monitor, res, doc_1, err_34, monitor, res, err_35;
3356
+ var _this = this;
3294
3357
  if (bypassLogs === void 0) { bypassLogs = false; }
3295
3358
  if (bypassCheckSchema === void 0) { bypassCheckSchema = false; }
3296
3359
  if (doc === void 0) { doc = null; }
@@ -3402,7 +3465,7 @@ var MongoManagerCollection = /** @class */ (function () {
3402
3465
  _d.label = 14;
3403
3466
  case 14:
3404
3467
  _d.trys.push([14, 16, 17, 19]);
3405
- return [4 /*yield*/, resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName, this.collectionOptions).replaceOne(filter, replacement, options)];
3468
+ return [4 /*yield*/, this.retryWrite(function () { return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(_this.collectionName, _this.collectionOptions).replaceOne(filter, replacement, options); }, options)];
3406
3469
  case 15:
3407
3470
  res = _d.sent();
3408
3471
  if (!this.skipCache) {
@@ -3410,15 +3473,15 @@ var MongoManagerCollection = /** @class */ (function () {
3410
3473
  }
3411
3474
  return [2 /*return*/, res];
3412
3475
  case 16:
3413
- err_30 = _d.sent();
3476
+ err_31 = _d.sent();
3414
3477
  console.log(JSON.stringify([new Date(), 'Error Replace One', this.collectionName, filter, replacement, safeOptions, {
3415
- code: err_30.code,
3416
- codeName: err_30.codeName,
3417
- message: err_30.message,
3418
- stack: err_30.stack
3478
+ code: err_31.code,
3479
+ codeName: err_31.codeName,
3480
+ message: err_31.message,
3481
+ stack: err_31.stack
3419
3482
  }], null, 2));
3420
- err_30.message = "Error in Replace One: ".concat(this.collectionName, " => ").concat(err_30.codeName || 'NoCodeName', " => ").concat(err_30.message);
3421
- throw err_30;
3483
+ err_31.message = "Error in Replace One: ".concat(this.collectionName, " => ").concat(err_31.codeName || 'NoCodeName', " => ").concat(err_31.message);
3484
+ throw err_31;
3422
3485
  case 17: return [4 /*yield*/, monitor.finish()];
3423
3486
  case 18:
3424
3487
  _d.sent();
@@ -3437,9 +3500,9 @@ var MongoManagerCollection = /** @class */ (function () {
3437
3500
  if (!prevDoc) return [3 /*break*/, 31];
3438
3501
  docId = doc._id;
3439
3502
  docVersion = doc.__v;
3440
- updatedDoc = (0, common_1.getMongoMergeUpdatedDoc)(replacement, doc, prevDoc);
3441
- updatedDoc._id = docId;
3442
- updatedDoc.__v = docVersion + 1;
3503
+ updatedDoc_1 = (0, common_1.getMongoMergeUpdatedDoc)(replacement, doc, prevDoc);
3504
+ updatedDoc_1._id = docId;
3505
+ updatedDoc_1.__v = docVersion + 1;
3443
3506
  if (!(this.createLogs && !bypassLogs)) return [3 /*break*/, 24];
3444
3507
  if (!(resolveio_server_app_1.ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'
3445
3508
  && resolveio_server_app_1.ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200')) return [3 /*break*/, 22];
@@ -3450,7 +3513,7 @@ var MongoManagerCollection = /** @class */ (function () {
3450
3513
  type: 'document',
3451
3514
  collection: this.collectionName,
3452
3515
  id_document: docId,
3453
- payload: (0, common_1.getBinarySize)(JSON.stringify(['invalidVersion - merge', doc, filter, updatedDoc, safeOptions])) < 1000000 ? JSON.stringify(['invalidVersion - merge', doc, filter, updatedDoc, safeOptions], null, 2) : 'Too Big',
3516
+ payload: (0, common_1.getBinarySize)(JSON.stringify(['invalidVersion - merge', doc, filter, updatedDoc_1, safeOptions])) < 1000000 ? JSON.stringify(['invalidVersion - merge', doc, filter, updatedDoc_1, safeOptions], null, 2) : 'Too Big',
3454
3517
  method: 'replaceOne',
3455
3518
  id_user: '',
3456
3519
  user: '',
@@ -3466,7 +3529,7 @@ var MongoManagerCollection = /** @class */ (function () {
3466
3529
  type: 'document',
3467
3530
  collection: this.collectionName,
3468
3531
  id_document: docId,
3469
- payload: (0, common_1.getBinarySize)(JSON.stringify(['invalidVersion - merge', doc, filter, updatedDoc, safeOptions])) < 1000000 ? JSON.stringify(['invalidVersion - merge', doc, filter, updatedDoc, safeOptions], null, 2) : 'Too Big',
3532
+ payload: (0, common_1.getBinarySize)(JSON.stringify(['invalidVersion - merge', doc, filter, updatedDoc_1, safeOptions])) < 1000000 ? JSON.stringify(['invalidVersion - merge', doc, filter, updatedDoc_1, safeOptions], null, 2) : 'Too Big',
3470
3533
  method: 'replaceOne',
3471
3534
  id_user: '',
3472
3535
  user: '',
@@ -3481,11 +3544,11 @@ var MongoManagerCollection = /** @class */ (function () {
3481
3544
  _d.sent();
3482
3545
  _d.label = 24;
3483
3546
  case 24:
3484
- monitor = monitor_manager_1.MonitorMongo.create('replaceOne', this.collectionName, JSON.stringify([filter, updatedDoc, safeOptions]));
3547
+ monitor = monitor_manager_1.MonitorMongo.create('replaceOne', this.collectionName, JSON.stringify([filter, updatedDoc_1, safeOptions]));
3485
3548
  _d.label = 25;
3486
3549
  case 25:
3487
3550
  _d.trys.push([25, 27, 28, 30]);
3488
- return [4 /*yield*/, resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName, this.collectionOptions).replaceOne(filter, updatedDoc, options)];
3551
+ return [4 /*yield*/, this.retryWrite(function () { return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(_this.collectionName, _this.collectionOptions).replaceOne(filter, updatedDoc_1, options); }, options)];
3489
3552
  case 26:
3490
3553
  res = _d.sent();
3491
3554
  if (!this.skipCache) {
@@ -3493,15 +3556,15 @@ var MongoManagerCollection = /** @class */ (function () {
3493
3556
  }
3494
3557
  return [2 /*return*/, res];
3495
3558
  case 27:
3496
- err_31 = _d.sent();
3559
+ err_32 = _d.sent();
3497
3560
  console.log(JSON.stringify([new Date(), 'Error Replace One', this.collectionName, filter, replacement, safeOptions, {
3498
- code: err_31.code,
3499
- codeName: err_31.codeName,
3500
- message: err_31.message,
3501
- stack: err_31.stack
3561
+ code: err_32.code,
3562
+ codeName: err_32.codeName,
3563
+ message: err_32.message,
3564
+ stack: err_32.stack
3502
3565
  }], null, 2));
3503
- err_31.message = "Error in Replace One: ".concat(this.collectionName, " => ").concat(err_31.codeName || 'NoCodeName', " => ").concat(err_31.message);
3504
- throw err_31;
3566
+ err_32.message = "Error in Replace One: ".concat(this.collectionName, " => ").concat(err_32.codeName || 'NoCodeName', " => ").concat(err_32.message);
3567
+ throw err_32;
3505
3568
  case 28: return [4 /*yield*/, monitor.finish()];
3506
3569
  case 29:
3507
3570
  _d.sent();
@@ -3563,7 +3626,7 @@ var MongoManagerCollection = /** @class */ (function () {
3563
3626
  _d.label = 37;
3564
3627
  case 37:
3565
3628
  _d.trys.push([37, 39, 40, 42]);
3566
- return [4 /*yield*/, resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName, this.collectionOptions).replaceOne(filter, replacement, options)];
3629
+ return [4 /*yield*/, this.retryWrite(function () { return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(_this.collectionName, _this.collectionOptions).replaceOne(filter, replacement, options); }, options)];
3567
3630
  case 38:
3568
3631
  res = _d.sent();
3569
3632
  if (!this.skipCache) {
@@ -3571,15 +3634,15 @@ var MongoManagerCollection = /** @class */ (function () {
3571
3634
  }
3572
3635
  return [2 /*return*/, res];
3573
3636
  case 39:
3574
- err_32 = _d.sent();
3637
+ err_33 = _d.sent();
3575
3638
  console.log(JSON.stringify([new Date(), 'Error Replace One', this.collectionName, filter, replacement, safeOptions, {
3576
- code: err_32.code,
3577
- codeName: err_32.codeName,
3578
- message: err_32.message,
3579
- stack: err_32.stack
3639
+ code: err_33.code,
3640
+ codeName: err_33.codeName,
3641
+ message: err_33.message,
3642
+ stack: err_33.stack
3580
3643
  }], null, 2));
3581
- err_32.message = "Error in Replace One: ".concat(this.collectionName, " => ").concat(err_32.codeName || 'NoCodeName', " => ").concat(err_32.message);
3582
- throw err_32;
3644
+ err_33.message = "Error in Replace One: ".concat(this.collectionName, " => ").concat(err_33.codeName || 'NoCodeName', " => ").concat(err_33.message);
3645
+ throw err_33;
3583
3646
  case 40: return [4 /*yield*/, monitor.finish()];
3584
3647
  case 41:
3585
3648
  _d.sent();
@@ -3615,7 +3678,7 @@ var MongoManagerCollection = /** @class */ (function () {
3615
3678
  _d.label = 46;
3616
3679
  case 46:
3617
3680
  _d.trys.push([46, 56, 57, 59]);
3618
- return [4 /*yield*/, resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName, this.collectionOptions).replaceOne(filter, replacement, options)];
3681
+ return [4 /*yield*/, this.retryWrite(function () { return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(_this.collectionName, _this.collectionOptions).replaceOne(filter, replacement, options); }, options)];
3619
3682
  case 47:
3620
3683
  res = _d.sent();
3621
3684
  return [4 /*yield*/, this.findOne(filter, options || undefined)];
@@ -3708,15 +3771,15 @@ var MongoManagerCollection = /** @class */ (function () {
3708
3771
  }
3709
3772
  return [2 /*return*/, res];
3710
3773
  case 56:
3711
- err_33 = _d.sent();
3774
+ err_34 = _d.sent();
3712
3775
  console.log(JSON.stringify([new Date(), 'Error Replace One (Find One And Replace)', this.collectionName, filter, safeOptions_1, {
3713
- code: err_33.code,
3714
- codeName: err_33.codeName,
3715
- message: err_33.message,
3716
- stack: err_33.stack
3776
+ code: err_34.code,
3777
+ codeName: err_34.codeName,
3778
+ message: err_34.message,
3779
+ stack: err_34.stack
3717
3780
  }], null, 2));
3718
- err_33.message = "Error in Replace One (Find One And Replace): ".concat(this.collectionName, " => ").concat(err_33.codeName || 'NoCodeName', " => ").concat(err_33.message);
3719
- throw err_33;
3781
+ err_34.message = "Error in Replace One (Find One And Replace): ".concat(this.collectionName, " => ").concat(err_34.codeName || 'NoCodeName', " => ").concat(err_34.message);
3782
+ throw err_34;
3720
3783
  case 57: return [4 /*yield*/, monitor.finish()];
3721
3784
  case 58:
3722
3785
  _d.sent();
@@ -3727,7 +3790,7 @@ var MongoManagerCollection = /** @class */ (function () {
3727
3790
  _d.label = 61;
3728
3791
  case 61:
3729
3792
  _d.trys.push([61, 63, 64, 66]);
3730
- return [4 /*yield*/, resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName, this.collectionOptions).replaceOne(filter, replacement, options)];
3793
+ return [4 /*yield*/, this.retryWrite(function () { return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(_this.collectionName, _this.collectionOptions).replaceOne(filter, replacement, options); }, options)];
3731
3794
  case 62:
3732
3795
  res = _d.sent();
3733
3796
  if (!this.skipCache) {
@@ -3735,15 +3798,15 @@ var MongoManagerCollection = /** @class */ (function () {
3735
3798
  }
3736
3799
  return [2 /*return*/, res];
3737
3800
  case 63:
3738
- err_34 = _d.sent();
3801
+ err_35 = _d.sent();
3739
3802
  console.log(JSON.stringify([new Date(), 'Error Replace One', this.collectionName, filter, replacement, safeOptions, {
3740
- code: err_34.code,
3741
- codeName: err_34.codeName,
3742
- message: err_34.message,
3743
- stack: err_34.stack
3803
+ code: err_35.code,
3804
+ codeName: err_35.codeName,
3805
+ message: err_35.message,
3806
+ stack: err_35.stack
3744
3807
  }], null, 2));
3745
- err_34.message = "Error in Replace One: ".concat(this.collectionName, " => ").concat(err_34.codeName || 'NoCodeName', " => ").concat(err_34.message);
3746
- throw err_34;
3808
+ err_35.message = "Error in Replace One: ".concat(this.collectionName, " => ").concat(err_35.codeName || 'NoCodeName', " => ").concat(err_35.message);
3809
+ throw err_35;
3747
3810
  case 64: return [4 /*yield*/, monitor.finish()];
3748
3811
  case 65:
3749
3812
  _d.sent();
@@ -3755,7 +3818,8 @@ var MongoManagerCollection = /** @class */ (function () {
3755
3818
  };
3756
3819
  MongoManagerCollection.prototype.updateMany = function (filter_1, update_1, options_1) {
3757
3820
  return __awaiter(this, arguments, void 0, function (filter, update, options, bypassLogs, bypassCheckSchema, bypassVersions, bypassSession) {
3758
- var isEmptyUpdate, allEmpty, date, validation, isValid, mongoSession, _a, session, safeOptions, docs, i, doc, versionDoc, _b, monitor, res, err_35;
3821
+ var isEmptyUpdate, allEmpty, date, validation, isValid, mongoSession, _a, session, safeOptions, docs, i, doc, versionDoc, _b, monitor, res, err_36;
3822
+ var _this = this;
3759
3823
  if (bypassLogs === void 0) { bypassLogs = false; }
3760
3824
  if (bypassCheckSchema === void 0) { bypassCheckSchema = false; }
3761
3825
  if (bypassVersions === void 0) { bypassVersions = false; }
@@ -3905,7 +3969,7 @@ var MongoManagerCollection = /** @class */ (function () {
3905
3969
  _c.label = 16;
3906
3970
  case 16:
3907
3971
  _c.trys.push([16, 18, 19, 21]);
3908
- return [4 /*yield*/, resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName, this.collectionOptions).updateMany(filter, update, options)];
3972
+ return [4 /*yield*/, this.retryWrite(function () { return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(_this.collectionName, _this.collectionOptions).updateMany(filter, update, options); }, options)];
3909
3973
  case 17:
3910
3974
  res = _c.sent();
3911
3975
  if (!this.skipCache) {
@@ -3913,15 +3977,15 @@ var MongoManagerCollection = /** @class */ (function () {
3913
3977
  }
3914
3978
  return [2 /*return*/, res];
3915
3979
  case 18:
3916
- err_35 = _c.sent();
3980
+ err_36 = _c.sent();
3917
3981
  console.log(JSON.stringify([new Date(), 'Error Update Many', this.collectionName, filter, update, safeOptions, {
3918
- code: err_35.code,
3919
- codeName: err_35.codeName,
3920
- message: err_35.message,
3921
- stack: err_35.stack
3982
+ code: err_36.code,
3983
+ codeName: err_36.codeName,
3984
+ message: err_36.message,
3985
+ stack: err_36.stack
3922
3986
  }], null, 2));
3923
- err_35.message = "Error in Update Many: ".concat(this.collectionName, " => ").concat(err_35.codeName || 'NoCodeName', " => ").concat(err_35.message);
3924
- throw err_35;
3987
+ err_36.message = "Error in Update Many: ".concat(this.collectionName, " => ").concat(err_36.codeName || 'NoCodeName', " => ").concat(err_36.message);
3988
+ throw err_36;
3925
3989
  case 19: return [4 /*yield*/, monitor.finish()];
3926
3990
  case 20:
3927
3991
  _c.sent();
@@ -3933,7 +3997,8 @@ var MongoManagerCollection = /** @class */ (function () {
3933
3997
  };
3934
3998
  MongoManagerCollection.prototype.updateOne = function (filter_1, update_1, options_1) {
3935
3999
  return __awaiter(this, arguments, void 0, function (filter, update, options, bypassLogs, bypassCheckSchema, bypassSession) {
3936
- var validation, isValid, isEmptyUpdate, allEmpty, date, mongoSession, _a, session, safeOptions, doc, versionDoc, _b, monitor, res, err_36, monitor, res, err_37, monitor, res, doc, err_38, monitor, res, err_39;
4000
+ var validation, isValid, isEmptyUpdate, allEmpty, date, mongoSession, _a, session, safeOptions, doc, versionDoc, _b, monitor, res, err_37, monitor, res, err_38, monitor, res, doc, err_39, monitor, res, err_40;
4001
+ var _this = this;
3937
4002
  if (bypassLogs === void 0) { bypassLogs = false; }
3938
4003
  if (bypassCheckSchema === void 0) { bypassCheckSchema = false; }
3939
4004
  if (bypassSession === void 0) { bypassSession = false; }
@@ -4074,7 +4139,7 @@ var MongoManagerCollection = /** @class */ (function () {
4074
4139
  _c.label = 12;
4075
4140
  case 12:
4076
4141
  _c.trys.push([12, 14, 15, 17]);
4077
- return [4 /*yield*/, resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName, this.collectionOptions).updateOne(filter, update, options || undefined)];
4142
+ return [4 /*yield*/, this.retryWrite(function () { return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(_this.collectionName, _this.collectionOptions).updateOne(filter, update, options || undefined); }, options)];
4078
4143
  case 13:
4079
4144
  res = _c.sent();
4080
4145
  if (!this.skipCache) {
@@ -4082,15 +4147,15 @@ var MongoManagerCollection = /** @class */ (function () {
4082
4147
  }
4083
4148
  return [2 /*return*/, res];
4084
4149
  case 14:
4085
- err_36 = _c.sent();
4150
+ err_37 = _c.sent();
4086
4151
  console.log(JSON.stringify([new Date(), 'Error Update One', this.collectionName, filter, update, safeOptions, {
4087
- code: err_36.code,
4088
- codeName: err_36.codeName,
4089
- message: err_36.message,
4090
- stack: err_36.stack
4152
+ code: err_37.code,
4153
+ codeName: err_37.codeName,
4154
+ message: err_37.message,
4155
+ stack: err_37.stack
4091
4156
  }], null, 2));
4092
- err_36.message = "Error in Update One: ".concat(this.collectionName, " => ").concat(err_36.codeName || 'NoCodeName', " => ").concat(err_36.message);
4093
- throw err_36;
4157
+ err_37.message = "Error in Update One: ".concat(this.collectionName, " => ").concat(err_37.codeName || 'NoCodeName', " => ").concat(err_37.message);
4158
+ throw err_37;
4094
4159
  case 15: return [4 /*yield*/, monitor.finish()];
4095
4160
  case 16:
4096
4161
  _c.sent();
@@ -4166,7 +4231,7 @@ var MongoManagerCollection = /** @class */ (function () {
4166
4231
  _c.label = 22;
4167
4232
  case 22:
4168
4233
  _c.trys.push([22, 24, 25, 27]);
4169
- return [4 /*yield*/, resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName, this.collectionOptions).updateOne(filter, update, options || undefined)];
4234
+ return [4 /*yield*/, this.retryWrite(function () { return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(_this.collectionName, _this.collectionOptions).updateOne(filter, update, options || undefined); }, options)];
4170
4235
  case 23:
4171
4236
  res = _c.sent();
4172
4237
  if (!this.skipCache) {
@@ -4174,15 +4239,15 @@ var MongoManagerCollection = /** @class */ (function () {
4174
4239
  }
4175
4240
  return [2 /*return*/, res];
4176
4241
  case 24:
4177
- err_37 = _c.sent();
4242
+ err_38 = _c.sent();
4178
4243
  console.log(JSON.stringify([new Date(), 'Error Update One', this.collectionName, filter, safeOptions, {
4179
- code: err_37.code,
4180
- codeName: err_37.codeName,
4181
- message: err_37.message,
4182
- stack: err_37.stack
4244
+ code: err_38.code,
4245
+ codeName: err_38.codeName,
4246
+ message: err_38.message,
4247
+ stack: err_38.stack
4183
4248
  }], null, 2));
4184
- err_37.message = "Error in Update One: ".concat(this.collectionName, " => ").concat(err_37.codeName || 'NoCodeName', " => ").concat(err_37.message);
4185
- throw err_37;
4249
+ err_38.message = "Error in Update One: ".concat(this.collectionName, " => ").concat(err_38.codeName || 'NoCodeName', " => ").concat(err_38.message);
4250
+ throw err_38;
4186
4251
  case 25: return [4 /*yield*/, monitor.finish()];
4187
4252
  case 26:
4188
4253
  _c.sent();
@@ -4231,7 +4296,7 @@ var MongoManagerCollection = /** @class */ (function () {
4231
4296
  _c.label = 31;
4232
4297
  case 31:
4233
4298
  _c.trys.push([31, 42, 43, 45]);
4234
- return [4 /*yield*/, resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName, this.collectionOptions).updateOne(filter, update, options || undefined)];
4299
+ return [4 /*yield*/, this.retryWrite(function () { return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(_this.collectionName, _this.collectionOptions).updateOne(filter, update, options || undefined); }, options)];
4235
4300
  case 32:
4236
4301
  res = _c.sent();
4237
4302
  return [4 /*yield*/, this.findOne(filter, options || undefined)];
@@ -4326,15 +4391,15 @@ var MongoManagerCollection = /** @class */ (function () {
4326
4391
  _c.label = 41;
4327
4392
  case 41: return [2 /*return*/, res];
4328
4393
  case 42:
4329
- err_38 = _c.sent();
4394
+ err_39 = _c.sent();
4330
4395
  console.log(JSON.stringify([new Date(), 'Error Update One (Find One And Update)', this.collectionName, filter, safeOptions, {
4331
- code: err_38.code,
4332
- codeName: err_38.codeName,
4333
- message: err_38.message,
4334
- stack: err_38.stack
4396
+ code: err_39.code,
4397
+ codeName: err_39.codeName,
4398
+ message: err_39.message,
4399
+ stack: err_39.stack
4335
4400
  }], null, 2));
4336
- err_38.message = "Error in Update One (Find One And Update): ".concat(this.collectionName, " => ").concat(err_38.codeName || 'NoCodeName', " => ").concat(err_38.message);
4337
- throw err_38;
4401
+ err_39.message = "Error in Update One (Find One And Update): ".concat(this.collectionName, " => ").concat(err_39.codeName || 'NoCodeName', " => ").concat(err_39.message);
4402
+ throw err_39;
4338
4403
  case 43: return [4 /*yield*/, monitor.finish()];
4339
4404
  case 44:
4340
4405
  _c.sent();
@@ -4345,7 +4410,7 @@ var MongoManagerCollection = /** @class */ (function () {
4345
4410
  _c.label = 47;
4346
4411
  case 47:
4347
4412
  _c.trys.push([47, 49, 50, 52]);
4348
- return [4 /*yield*/, resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName, this.collectionOptions).updateOne(filter, update, options || undefined)];
4413
+ return [4 /*yield*/, this.retryWrite(function () { return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(_this.collectionName, _this.collectionOptions).updateOne(filter, update, options || undefined); }, options)];
4349
4414
  case 48:
4350
4415
  res = _c.sent();
4351
4416
  if (!this.skipCache) {
@@ -4353,15 +4418,15 @@ var MongoManagerCollection = /** @class */ (function () {
4353
4418
  }
4354
4419
  return [2 /*return*/, res];
4355
4420
  case 49:
4356
- err_39 = _c.sent();
4421
+ err_40 = _c.sent();
4357
4422
  console.log(JSON.stringify([new Date(), 'Error Update One', this.collectionName, filter, update, safeOptions, {
4358
- code: err_39.code,
4359
- codeName: err_39.codeName,
4360
- message: err_39.message,
4361
- stack: err_39.stack
4423
+ code: err_40.code,
4424
+ codeName: err_40.codeName,
4425
+ message: err_40.message,
4426
+ stack: err_40.stack
4362
4427
  }], null, 2));
4363
- err_39.message = "Error in Update One: ".concat(this.collectionName, " => ").concat(err_39.codeName || 'NoCodeName', " => ").concat(err_39.message);
4364
- throw err_39;
4428
+ err_40.message = "Error in Update One: ".concat(this.collectionName, " => ").concat(err_40.codeName || 'NoCodeName', " => ").concat(err_40.message);
4429
+ throw err_40;
4365
4430
  case 50: return [4 /*yield*/, monitor.finish()];
4366
4431
  case 51:
4367
4432
  _c.sent();
@@ -4401,7 +4466,7 @@ var MongoManagerUserCollection = /** @class */ (function (_super) {
4401
4466
  };
4402
4467
  MongoManagerUserCollection.prototype.authenticate = function (user, password) {
4403
4468
  return __awaiter(this, void 0, void 0, function () {
4404
- var attemptsInterval, calculatedInterval, hashBuffer, err_40;
4469
+ var attemptsInterval, calculatedInterval, hashBuffer, err_41;
4405
4470
  return __generator(this, function (_a) {
4406
4471
  switch (_a.label) {
4407
4472
  case 0:
@@ -4475,9 +4540,9 @@ var MongoManagerUserCollection = /** @class */ (function (_super) {
4475
4540
  _a.label = 10;
4476
4541
  case 10: return [3 /*break*/, 12];
4477
4542
  case 11:
4478
- err_40 = _a.sent();
4479
- err_40.message = "Error in User Authenticate: ".concat(JSON.stringify(user, null, 2), " - ").concat(err_40.message);
4480
- throw err_40;
4543
+ err_41 = _a.sent();
4544
+ err_41.message = "Error in User Authenticate: ".concat(JSON.stringify(user, null, 2), " - ").concat(err_41.message);
4545
+ throw err_41;
4481
4546
  case 12: return [2 /*return*/];
4482
4547
  }
4483
4548
  });
@@ -4498,7 +4563,7 @@ var MongoManagerUserCollection = /** @class */ (function (_super) {
4498
4563
  };
4499
4564
  MongoManagerUserCollection.prototype.setPassword = function (user, password) {
4500
4565
  return __awaiter(this, void 0, void 0, function () {
4501
- var saltBuffer, salt, hashRaw, hash, err_41;
4566
+ var saltBuffer, salt, hashRaw, hash, err_42;
4502
4567
  return __generator(this, function (_a) {
4503
4568
  switch (_a.label) {
4504
4569
  case 0:
@@ -4524,9 +4589,9 @@ var MongoManagerUserCollection = /** @class */ (function (_super) {
4524
4589
  hash = Buffer.from(hashRaw, 'binary').toString('hex');
4525
4590
  return [2 /*return*/, user_collection_1.Users.updateOne({ _id: user._id }, { $set: { hash: hash, salt: salt, services: {}, attempts: 0 } })];
4526
4591
  case 6:
4527
- err_41 = _a.sent();
4528
- err_41.message = "Error in User Set Password: ".concat(JSON.stringify(user, null, 2), " - ").concat(err_41.message);
4529
- throw err_41;
4592
+ err_42 = _a.sent();
4593
+ err_42.message = "Error in User Set Password: ".concat(JSON.stringify(user, null, 2), " - ").concat(err_42.message);
4594
+ throw err_42;
4530
4595
  case 7: return [2 /*return*/];
4531
4596
  }
4532
4597
  });