@resolveio/server-lib 20.7.104 → 20.7.106
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.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __extends=this&&this.__extends||function(){var t=function(e,o){return(t=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,o){e.__proto__=o}:function(e,o){for(var t in o)Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t])}))(e,o)};return function(e,o){if("function"!=typeof o&&null!==o)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");function __(){this.constructor=e}t(e,o),e.prototype=null===o?Object.create(o):(__.prototype=o.prototype,new __)}}(),__assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var o,t=1,r=arguments.length;t<r;t++)for(var n in o=arguments[t])Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,r,n,s){return new(n=n||Promise)(function(t,o){function fulfilled(e){try{step(s.next(e))}catch(e){o(e)}}function rejected(e){try{step(s.throw(e))}catch(e){o(e)}}function step(e){var o;e.done?t(e.value):((o=e.value)instanceof n?o:new n(function(e){e(o)})).then(fulfilled,rejected)}step((s=s.apply(e,r||[])).next())})},__generator=this&&this.__generator||function(r,n){var s,i,a,c={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function verb(t){return function(e){var o=[t,e];if(s)throw new TypeError("Generator is already executing.");for(;c=l&&o[l=0]?0:c;)try{if(s=1,i&&(a=2&o[0]?i.return:o[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,o[1])).done)return a;switch(i=0,(o=a?[2&o[0],a.value]:o)[0]){case 0:case 1:a=o;break;case 4:return c.label++,{value:o[1],done:!1};case 5:c.label++,i=o[1],o=[0];continue;case 7:o=c.ops.pop(),c.trys.pop();continue;default:if(!(a=0<(a=c.trys).length&&a[a.length-1])&&(6===o[0]||2===o[0])){c=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]<a[3]))c.label=o[1];else if(6===o[0]&&c.label<a[1])c.label=a[1],a=o;else{if(!(a&&c.label<a[2])){a[2]&&c.ops.pop(),c.trys.pop();continue}c.label=a[2],c.ops.push(o)}}o=n.call(r,c)}catch(e){o=[6,e],i=0}finally{s=a=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}}},__rest=this&&this.__rest||function(e,o){var t={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&o.indexOf(n)<0&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)o.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(t[n[r]]=e[n[r]]);return t},__read=this&&this.__read||function(e,o){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var r,n,s=t.call(e),i=[];try{for(;(void 0===o||0<o--)&&!(r=s.next()).done;)i.push(r.value)}catch(e){n={error:e}}finally{try{r&&!r.done&&(t=s.return)&&t.call(s)}finally{if(n)throw n.error}}return i},__spreadArray=this&&this.__spreadArray||function(e,o,t){if(t||2===arguments.length)for(var r,n=0,s=o.length;n<s;n++)!r&&n in o||((r=r||Array.prototype.slice.call(o,0,n))[n]=o[n]);return e.concat(r||Array.prototype.slice.call(o))},__values=this&&this.__values||function(e){var o="function"==typeof Symbol&&Symbol.iterator,t=o&&e[o],r=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&r>=e.length?void 0:e)&&e[r++],done:!e}}};throw new TypeError(o?"Object is not iterable.":"Symbol.iterator is not defined.")},NodeCache=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.MongoManagerUserCollection=exports.MongoManagerCollection=exports.MongoManagerModel=exports.MongoManager=void 0,require("node-cache")),os_1=require("os"),simpl_schema_1=require("simpl-schema"),user_collection_1=require("../collections/user.collection"),resolveio_server_app_1=require("../resolveio-server-app"),common_1=require("../util/common"),monitor_manager_1=require("./monitor.manager"),crypto=require("crypto"),scmp=require("scmp"),numCPUs=(0,os_1.cpus)().length,v8=require("v8"),AsyncLocalStorage=require("async_hooks").AsyncLocalStorage,asyncLocalStorage=new AsyncLocalStorage,MongoManager=function(){function MongoManager(){this._collections=[],this._cacheMap=[],this._operationInProgress=new Map,this._heapSize=v8.getHeapStatistics()/numCPUs,this._serverCollections=[],this._isWorkersEnabled=!1,this._isWorkerInstance=!1}return MongoManager.create=function(){return __awaiter(this,void 0,void 0,function(){var o;return __generator(this,function(e){switch(e.label){case 0:return[4,(o=new MongoManager).initialize()];case 1:return e.sent(),[2,o]}})})},MongoManager.prototype.initialize=function(){return __awaiter(this,void 0,void 0,function(){var o;return __generator(this,function(e){switch(e.label){case 0:return this._nodeCache=new NodeCache({stdTTL:0,checkperiod:0}),this._isWorkersEnabled="true"===process.env.IS_WORKERS_ENABLED,this._isWorkerInstance="true"===process.env.IS_WORKER_INSTANCE,this.setCacheLimit(),this._isWorkersEnabled&&this._isWorkerInstance&&this.setupChangeStream(),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().listCollections().toArray()];case 1:return o=e.sent(),this._serverCollections=o,[2]}})})},MongoManager.prototype.oneTimeTransaction=function(s){var e=this;return asyncLocalStorage.run({},function(){return __awaiter(e,void 0,void 0,function(){var o,t,r,n=this;return __generator(this,function(e){switch(e.label){case 0:o=resolveio_server_app_1.ResolveIOServer.getMongoConnection().startSession(),asyncLocalStorage.getStore().session=o,e.label=1;case 1:return e.trys.push([1,,3,5]),[4,o.withTransaction(function(){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,s()];case 1:return[2,t=e.sent()]}})})})];case 2:return e.sent(),[2,t];case 3:return[4,o.endSession()];case 4:return e.sent(),(r=asyncLocalStorage.getStore())&&delete r.session,[7];case 5:return[2]}})})})},MongoManager.prototype.getSession=function(){var e=asyncLocalStorage.getStore();return e?e.session:null},MongoManager.prototype.setCacheLimit=function(){this._isWorkersEnabled?this._heapLimit=this._isWorkerInstance?.8*this._heapSize:.4*this._heapSize:this._heapLimit=.3*this._heapSize},MongoManager.prototype.getServerCollections=function(){return this._serverCollections},MongoManager.prototype.registerCollection=function(o){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return o.collectionOptions&&o.collectionOptions.timeseries&&o.collectionOptions.timeseries.timeField&&this._serverCollections.some(function(e){return e.name===o.collectionName&&"collection"===e.type})?[4,resolveio_server_app_1.ResolveIOServer.getMainDB().dropCollection(o.collectionName)]:[3,3];case 1:return e.sent(),[4,this.createCollection(o)];case 2:e.sent(),e.label=3;case 3:return this._collections.push(o),[2]}})})},MongoManager.prototype.createCollection=function(o){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().createCollection(o.collectionName,o.collectionOptions)];case 1:return e.sent(),[2]}})})},MongoManager.prototype.collections=function(){return this._collections},MongoManager.prototype.collection=function(o){return this._collections.find(function(e){return e.collectionName===o})},MongoManager.prototype.delay=function(o){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){return[2,new Promise(function(e){return setTimeout(e,o)})]})})},MongoManager.prototype.find=function(s,i,a){return void 0===i&&(i={}),__awaiter(this,void 0,void 0,function(){var o,t,r,n=this;return __generator(this,function(e){switch(e.label){case 0:return((t=a||{}).session,t=__rest(t,["session"]),o=this.generateCacheKey([s],"find",[i,t]),void 0!==(t=this.getFromCache(o)))?(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Find - Cache",s),[2,t]):this._operationInProgress.has(o)?(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Find - Already running",s),[2,this._operationInProgress.get(o).promise]):(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Find - Running",s),r=this.executeFind(s,i,a,o),this._operationInProgress.set(o,{promise:r,invalidatedDuringExecution:!1,collections:[s]}),[4,r.finally(function(){resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Find - Done",s),n._operationInProgress.delete(o)})]);case 1:return e.sent(),[2,r]}})})},MongoManager.prototype.executeFind=function(i,a,c,l){return __awaiter(this,void 0,void 0,function(){var o,t,r,n,s;return __generator(this,function(e){switch(e.label){case 0:t=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(i),(r=c||{}).session,r=__rest(r,["session"]),n=monitor_manager_1.MonitorMongo.create("find",i,JSON.stringify([a,r])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,t.find(a,c).toArray()];case 2:return o=e.sent(),[3,6];case 3:throw s=e.sent(),console.log(JSON.stringify([new Date,"Error Execute Find",i,a,r,{code:s.code,codeName:s.codeName,message:s.message,stack:s.stack}],null,2)),s.message="Error in Execute Find: ".concat(i," => ").concat(s.codeName||"NoCodeName"," => ").concat(s.message),s;case 4:return[4,n.finish()];case 5:return e.sent(),[7];case 6:return this._operationInProgress.get(l).invalidatedDuringExecution||this.addToCache([i],l,o),[2,o]}})})},MongoManager.prototype.findOne=function(s,i,a){return void 0===i&&(i={}),__awaiter(this,void 0,void 0,function(){var o,t,r,n=this;return __generator(this,function(e){switch(e.label){case 0:return((t=a||{}).session,t=__rest(t,["session"]),o=this.generateCacheKey([s],"findOne",[i,t]),void 0!==(t=this.getFromCache(o)))?(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo FindOne - Cache",s),[2,t]):this._operationInProgress.has(o)?(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo FindOne - Already running",s),[2,this._operationInProgress.get(o).promise]):(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo FindOne - Running",s),r=this.executeFindOne(s,i,a,o),this._operationInProgress.set(o,{promise:r,invalidatedDuringExecution:!1,collections:[s]}),[4,r.finally(function(){resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo FindOne - Done",s),n._operationInProgress.delete(o)})]);case 1:return e.sent(),[2,r]}})})},MongoManager.prototype.executeFindOne=function(i,a,c,l){return __awaiter(this,void 0,void 0,function(){var o,t,r,n,s;return __generator(this,function(e){switch(e.label){case 0:t=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(i),(r=c||{}).session,r=__rest(r,["session"]),n=monitor_manager_1.MonitorMongo.create("findOne",i,JSON.stringify([a,r])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,t.findOne(a,c)];case 2:return o=e.sent(),[3,6];case 3:throw s=e.sent(),console.log(JSON.stringify([new Date,"Error Execute Find One",i,a,r,{code:s.code,codeName:s.codeName,message:s.message,stack:s.stack}],null,2)),s.message="Error in Execute Find One: ".concat(i," => ").concat(s.codeName||"NoCodeName"," => ").concat(s.message),s;case 4:return[4,n.finish()];case 5:return e.sent(),[7];case 6:return this._operationInProgress.get(l).invalidatedDuringExecution||this.addToCache([i],l,o),[2,o]}})})},MongoManager.prototype.aggregate=function(i,a,c){return __awaiter(this,void 0,void 0,function(){var o,t,r,n,s=this;return __generator(this,function(e){switch(e.label){case 0:return(o=__spreadArray([i],__read(a.flatMap(function(e){var o;return null!=(o=e.$lookup)&&o.from?[e.$lookup.from]:[]})),!1),(r=c||{}).session,r=__rest(r,["session"]),t=this.generateCacheKey(o,"aggregate",[a,r]),void 0!==(r=this.getFromCache(t)))?(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Agg - Cache",o),[2,r]):this._operationInProgress.has(t)?(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Agg - Already running",o),[2,this._operationInProgress.get(t).promise]):(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Agg - Running",o),n=this.executeAggregate(i,a,c,t,o),this._operationInProgress.set(t,{promise:n,invalidatedDuringExecution:!1,collections:o}),[4,n.finally(function(){resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Agg - Done",o),s._operationInProgress.delete(t)})]);case 1:return e.sent(),[2,n]}})})},MongoManager.prototype.executeAggregate=function(i,a,c,l,g){return __awaiter(this,void 0,void 0,function(){var o,t,r,n,s;return __generator(this,function(e){switch(e.label){case 0:t=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(i),(r=c||{}).session,r=__rest(r,["session"]),n=monitor_manager_1.MonitorMongo.create("aggregate",i,JSON.stringify([a,r])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,t.aggregate(a,c).toArray()];case 2:return o=e.sent(),[3,6];case 3:throw s=e.sent(),console.log(JSON.stringify([new Date,"Error Execute Aggregate",i,a,g,r,{code:s.code,codeName:s.codeName,message:s.message,stack:s.stack}],null,2)),s.message="Error in Execute Aggregate: ".concat(i," => ").concat(s.codeName||"NoCodeName"," => ").concat(s.message),s;case 4:return[4,n.finish()];case 5:return e.sent(),[7];case 6:return this._operationInProgress.get(l).invalidatedDuringExecution||this.addToCache(g,l,o),[2,o]}})})},MongoManager.prototype.countDocuments=function(s,i,a){return void 0===i&&(i={}),__awaiter(this,void 0,void 0,function(){var o,t,r,n=this;return __generator(this,function(e){switch(e.label){case 0:return((t=a||{}).session,t=__rest(t,["session"]),o=this.generateCacheKey([s],"countDocuments",[i,t]),void 0!==(t=this.getFromCache(o)))?[2,t]:this._operationInProgress.has(o)?[2,this._operationInProgress.get(o).promise]:(r=this.executeCountDocuments(s,i,a,o),this._operationInProgress.set(o,{promise:r,invalidatedDuringExecution:!1,collections:[s]}),[4,r.finally(function(){return n._operationInProgress.delete(o)})]);case 1:return e.sent(),[2,r]}})})},MongoManager.prototype.executeCountDocuments=function(i,a,c,l){return __awaiter(this,void 0,void 0,function(){var o,t,r,n,s;return __generator(this,function(e){switch(e.label){case 0:t=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(i),(r=c||{}).session,r=__rest(r,["session"]),n=monitor_manager_1.MonitorMongo.create("countDocuments",i,JSON.stringify([a,r])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,t.countDocuments(a,c)];case 2:return o=e.sent(),[3,6];case 3:throw s=e.sent(),console.log(JSON.stringify([new Date,"Error Execute Count Documents",i,a,r,{code:s.code,codeName:s.codeName,message:s.message,stack:s.stack}],null,2)),s.message="Error in Execute Count Documents: ".concat(i," => ").concat(s.codeName||"NoCodeName"," => ").concat(s.message),s;case 4:return[4,n.finish()];case 5:return e.sent(),[7];case 6:return this._operationInProgress.get(l).invalidatedDuringExecution||this.addToCache([i],l,o),[2,o]}})})},MongoManager.prototype.generateCacheKey=function(e,o,t){e=JSON.stringify({collections:e,functionName:o,args:t});return crypto.createHash("sha256").update(e).digest("hex")},MongoManager.prototype.getFromCache=function(o){try{var e=this._nodeCache.get(o);if(e)return JSON.parse(e,common_1.dateReviver)}catch(e){this._nodeCache.del(o)}},MongoManager.prototype.addToCache=function(e,o,t){var r,n;if((0,common_1.getBinarySize)(JSON.stringify(t))<1e6&&!e.includes("logs")&&!e.find(function(e){return e.endsWith(".versions")})&&!e.find(function(e){return e.startsWith("monitor-")})){var s=this._nodeCache.getStats().vsize;if(s>this._heapLimit){var i=0,a=this._nodeCache.keys();try{for(var c=__values(a),l=c.next();!l.done;l=c.next()){var g=l.value;if(this._nodeCache.del(g),i+=1,(s=this._nodeCache.getStats().vsize)<.75*this._heapLimit)break}}catch(e){r={error:e}}finally{try{l&&!l.done&&(n=c.return)&&n.call(c)}finally{if(r)throw r.error}}console.log("Query Cache: Too Big, - Deleted: "+i+" - "+s)}this._nodeCache.set(o,JSON.stringify(t)),this._cacheMap.push({collections:e,key:o})}},MongoManager.prototype.invalidateQueryCache=function(o){var t,e,r,n,s=this._cacheMap.filter(function(e){return e.collections.includes(o)});resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Invalidate Cache",o);try{for(var i=__values(s),a=i.next();!a.done;a=i.next()){var c=a.value;this._nodeCache.del(c.key),this._operationInProgress.has(c.key)&&(this._operationInProgress.get(c.key).invalidatedDuringExecution=!0,resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager())&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Invalidated During Execution",c.collections)}}catch(e){t={error:e}}finally{try{a&&!a.done&&(e=i.return)&&e.call(i)}finally{if(t)throw t.error}}try{for(var l=__values(this._operationInProgress.entries()),g=l.next();!g.done;g=l.next()){var _=__read(g.value,2),d=(_[0],_[1]);d.collections.includes(o)&&(d.invalidatedDuringExecution=!0,resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager())&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Invalidated During Execution (No cache)",d.collections)}}catch(e){r={error:e}}finally{try{g&&!g.done&&(n=l.return)&&n.call(l)}finally{if(r)throw r.error}}this._cacheMap=this._cacheMap.filter(function(e){return!e.collections.includes(o)})},MongoManager.prototype.setupChangeStream=function(){var o=this,t=resolveio_server_app_1.ResolveIOServer.getMainDB().watch([{$match:{$and:[{"ns.coll":{$nin:["log-method-latencies","log-subscriptions","logs","counters","cron-job-histories","email-histories","qb-soap-request-histories","qb-soap-request-responses","qb-soap-requests","qb-soap-retries"]}},{"ns.coll":{$not:/.*\.versions$/}},{"ns.coll":{$not:/^monitor-/}}]}}],{fullDocument:"updateLookup"});t.on("change",function(e){e.ns&&e.ns.coll&&(e=e.ns.coll,o.collection(e))&&o.invalidateQueryCache(e)}),t.on("error",function(){return __awaiter(o,void 0,void 0,function(){var o=this;return __generator(this,function(e){switch(e.label){case 0:return console.log(new Date,"Mongo change stream error. Restart..."),[4,t.close()];case 1:return e.sent(),setTimeout(function(){return o.setupChangeStream()},5e3),[2]}})})}),t.on("close",function(){console.log(new Date,"Mongo change stream closed. Restarting..."),setTimeout(function(){return o.setupChangeStream()},5e3)})},MongoManager}(),MongoManagerModel=(exports.MongoManager=MongoManager,function(){function MongoManagerModel(){this.collection_main=null,this.collection_version=null}return MongoManagerModel.create=function(e){var o=new MongoManagerModel;return o.initialize(e),o},MongoManagerModel.prototype.initialize=function(e){var o,t=this;"users"===e.collectionName?this.collection_main=MongoManagerUserCollection.create(e):this.collection_main=MongoManagerCollection.create(e),e.useVersionCollection&&(this.collection_main.useVersions=!0,(o=(0,common_1.deepCopy)(e.schema))._id.type="Object",o._id.blackbox=!0,o={collectionName:e.collectionName+".versions",schema:o,useVersionCollection:!1,useReportBuilder:!1,reportBuilderLookupTables:[],timestamps:!0,createLogs:!1,checkSchema:!1,collectionOptions:null,skipCache:!0},"users"===e.collectionName?this.collection_version=MongoManagerUserCollection.create(o):this.collection_version=MongoManagerCollection.create(o),setImmediate(function(){return __awaiter(t,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.collection_version.createIndex({"_id._id":1,"_id.__v":1})];case 1:return e.sent(),[2]}})})}),this.collection_main.versionCollection=e.collectionName+".versions")},MongoManagerModel}()),MongoManagerCollection=(exports.MongoManagerModel=MongoManagerModel,function(){function MongoManagerCollection(){this.collectionName="",this.checkSchema=!1,this.simplschema=null,this.rbSchema=null,this.timestamps=!1,this.useVersions=!1,this.versionCollection="",this.createLogs=!0,this.useRB=!1,this.skipCache=!1,this.bypassSession=!1}return MongoManagerCollection.create=function(e){var o=new MongoManagerCollection;return o.initialize(e),o},MongoManagerCollection.prototype.initialize=function(e){var o,t=this,r=(this.collectionName=e.collectionName,this.simplschema=new simpl_schema_1.default(e.schema),this.timestamps=e.timestamps,this.createLogs=e.createLogs,this.checkSchema=e.checkSchema,this.collectionOptions=e.collectionOptions,this.skipCache=e.skipCache||!1,this.bypassSession=e.bypassSession||!1,e.useReportBuilder&&(this.useRB=!0,o=(0,common_1.deepCopy)(e.schema),e=(0,common_1.buildRbLookups)(e.reportBuilderLookupTables,o,[]),this.rbSchema=(0,common_1.buildRbSchema)(e)),setInterval(function(){return __awaiter(t,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return resolveio_server_app_1.ResolveIOServer&&resolveio_server_app_1.ResolveIOServer.getMainServer()&&resolveio_server_app_1.ResolveIOServer.getMongoManager()&&resolveio_server_app_1.ResolveIOServer.getMongoManager().getServerCollections().length?[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().registerCollection(this)]:[3,2];case 1:e.sent(),clearInterval(r),e.label=2;case 2:return[2]}})})},1))},MongoManagerCollection.prototype.extractIndexNameFromError=function(e){var o=e.match(/Index already exists with a different name: (\S+)/);return(o=!o||o.length<=1?e.match(/existing index:.*name: "([^"]+)"/):o)&&1<o.length?o[1]:null},MongoManagerCollection.prototype.aggregate=function(s,i,a,c){return void 0===a&&(a=!1),void 0===c&&(c=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n;return __generator(this,function(e){switch(e.label){case 0:return!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||c||this.bypassSession||i&&(i.readPreference&&"primary"!==i.readPreference||i.session)||(i?i.session=o:i={session:o}),a||this.skipCache?[3,1]:[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().aggregate(this.collectionName,s,i)];case 1:(o=i||{}).session,t=__rest(o,["session"]),r=monitor_manager_1.MonitorMongo.create("aggregate",this.collectionName,JSON.stringify([s,t])),e.label=2;case 2:return e.trys.push([2,4,5,7]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).aggregate(s,i).toArray()];case 3:return[2,e.sent()];case 4:throw n=e.sent(),console.log(JSON.stringify([new Date,"Error Aggregate",this.collectionName,s,t,{code:n.code,codeName:n.codeName,message:n.message,stack:n.stack}],null,2)),n.message="Error in Aggregate: ".concat(this.collectionName," => ").concat(n.codeName||"NoCodeName"," => ").concat(n.message),n;case 5:return[4,r.finish()];case 6:return e.sent(),[7];case 7:return[2]}})})},MongoManagerCollection.prototype.aggregateCount=function(n,s,i){return void 0===i&&(i=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||i||this.bypassSession||s&&(s.readPreference&&"primary"!==s.readPreference||s.session)||(s?s.session=o:s={session:o}),(o=s||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("aggregateCount",this.collectionName,JSON.stringify([n,o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).aggregate(n,s).toArray()];case 2:return[2,e.sent().length];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Aggregate Count",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Aggregate Count: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.aggregateCursor=function(e,o,t){var r=this,n=(void 0===t&&(t=!1),resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession()),t=(!n||t||this.bypassSession||o&&(o.readPreference&&"primary"!==o.readPreference||o.session)||(o?o.session=n:o={session:n}),o||{}),n=(t.session,__rest(t,["session"])),s=monitor_manager_1.MonitorMongo.create("aggregateCursor",this.collectionName,JSON.stringify([e,n])),t=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).aggregate(e,o);return t.on("close",function(o){return __awaiter(r,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,s.finish()];case 1:return e.sent(),[2,o]}})})}),t},MongoManagerCollection.prototype.aggregateStream=function(e,o,t,r){var n=this,s=(void 0===r&&(r=!1),resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession()),r=(!s||r||this.bypassSession||o&&(o.readPreference&&"primary"!==o.readPreference||o.session)||(o?o.session=s:o={session:s}),o||{}),s=(r.session,__rest(r,["session"])),i=monitor_manager_1.MonitorMongo.create("aggregateStream",this.collectionName,JSON.stringify([e,s,t]));return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).aggregate(e,o).stream(t).on("close",function(o){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,i.finish()];case 1:return e.sent(),[2,o]}})})})},MongoManagerCollection.prototype.bulkWrite=function(N,I,w,b,R,C){return void 0===w&&(w=!1),void 0===b&&(b=!1),void 0===R&&(R=!1),void 0===C&&(C=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i,a,c,l,g,_,d,u,v,p,m,h,f,O,S,y,M;return __generator(this,function(e){switch(e.label){case 0:if(!N.length)return[2,null];o=1e3,t=0,!(n=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||C||this.bypassSession||I&&(I.readPreference&&"primary"!==I.readPreference||I.session)||(I?I.session=n:I={session:n}),r=(n=I||{}).session,n=__rest(n,["session"]),e.label=1;case 1:if(!(t<N.length))return[3,27];s=N.slice(t,t+o),i=[],a=[];try{for(y=void 0,c=__values(s),l=c.next();!l.done;l=c.next()){if(g=l.value,_=Object.keys(g)[0],d=g[_],this.checkSchema&&!w){if(u=this.simplschema.newContext(),v=void 0,"insertOne"===_)v=u.validate(d.document);else if("replaceOne"===_)v=u.validate(d.replacement);else if("updateOne"===_||"updateMany"===_)v=u.validate(d.update,{modifier:!0});else{if("deleteOne"!==_&&"deleteMany"!==_)throw new Error("Unsupported operation type: ".concat(_));v=!0}if(!v)throw new Error("Schema validation failed for ".concat(_,": ").concat(JSON.stringify(u.validationErrors(),null,2)))}if("insertOne"===_)this.timestamps&&(d.document.createdAt||(d.document.createdAt=new Date),d.document.updatedAt||(d.document.updatedAt=new Date)),!b&&this.createLogs&&i.push({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:d.document._id||(0,common_1.objectIdHexString)(),payload:(0,common_1.getBinarySize)(JSON.stringify(d.document))<1e6?JSON.stringify(d.document,null,2):"Too Big",method:"insertOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}),g[_].document=d.document;else if("updateOne"===_||"updateMany"===_)this.timestamps&&(d.update.$set||(d.update.$set={}),d.update.$set.updatedAt=new Date),!R&&this.useVersions&&(d.update.$inc||(d.update.$inc={}),d.update.$inc.__v=1),!b&&this.createLogs&&i.push({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:d.filter._id||null,payload:(0,common_1.getBinarySize)(JSON.stringify(d.update))<1e6?JSON.stringify(d.update,null,2):"Too Big",method:_,id_user:"",user:"",messageId:0,route:"",createdAt:new Date}),!R&&this.useVersions&&a.push({filter:d.filter});else if("replaceOne"===_)this.timestamps&&(d.replacement.updatedAt=new Date),!R&&this.useVersions&&(d.replacement.__v=(d.replacement.__v||0)+1),!b&&this.createLogs&&i.push({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:d.filter._id||null,payload:(0,common_1.getBinarySize)(JSON.stringify(d.replacement))<1e6?JSON.stringify(d.replacement,null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}),!R&&this.useVersions&&a.push({filter:d.filter}),g[_].replacement=d.replacement;else{if("deleteOne"!==_&&"deleteMany"!==_)throw new Error("Unsupported operation type: ".concat(_));!b&&this.createLogs&&i.push({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:d.filter._id||null,payload:(0,common_1.getBinarySize)(JSON.stringify(d.filter))<1e6?JSON.stringify(d.filter,null,2):"Too Big",method:_,id_user:"",user:"",messageId:0,route:"",createdAt:new Date}),!R&&this.useVersions&&a.push({filter:d.filter})}}}catch(e){y={error:e}}finally{try{l&&!l.done&&(M=c.return)&&M.call(c)}finally{if(y)throw y.error}}if(p=[],!(!R&&this.useVersions&&0<a.length))return[3,10];e.label=2;case 2:return(e.trys.push([2,9,,10]),(f=a.map(function(e){return e.filter})).length)?[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName).find({$or:f},{session:r}).toArray()]:[3,4];case 3:p=e.sent(),e.label=4;case 4:if(!(0<(m=p.map(function(e){return{insertOne:{document:__assign(__assign({},e),{_id:{_id:e._id,__v:e.__v}})}}})).length))return[3,8];e.label=5;case 5:return e.trys.push([5,7,,8]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.versionCollection).bulkWrite(m)];case 6:return e.sent(),[3,8];case 7:return e.sent(),[3,8];case 8:return[3,10];case 9:return e.sent(),[3,10];case 10:h=monitor_manager_1.MonitorMongo.create("bulkWrite",this.collectionName,JSON.stringify([s,n])),e.label=11;case 11:return e.trys.push([11,13,14,16]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName).bulkWrite(s,I)];case 12:return e.sent(),[3,16];case 13:throw f=e.sent(),console.log(JSON.stringify([new Date,"Error Bulk Write",this.collectionName,N,n,{code:f.code,codeName:f.codeName,message:f.message,stack:f.stack}],null,2)),f.message="Error in Bulk Write: ".concat(this.collectionName," => ").concat(f.codeName||"NoCodeName"," => ").concat(f.message),f;case 14:return[4,h.finish()];case 15:return e.sent(),[7];case 16:if(!b&&this.createLogs&&0<i.length){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,17];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLogs(i.map(function(e){return{type:"log",data:e}}))}return[3,19];case 17:return O={session:r,ordered:!1},[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").bulkWrite(i.map(function(e){return{insertOne:{document:e}}}),O)];case 18:e.sent(),e.label=19;case 19:if(R||!this.useVersions)return[3,25];e.label=20;case 20:return e.trys.push([20,24,,25]),O=p.map(function(e){return e._id}),S=[{$match:{"_id._id":{$in:O}}},{$sort:{"_id._id":1,"_id.__v":-1}},{$group:{_id:"$_id._id",versions:{$push:"$_id"}}},{$project:{versionsToDelete:{$slice:["$versions",5,{$size:"$versions"}]}}},{$unwind:"$versionsToDelete"},{$replaceRoot:{newRoot:{_id:"$versionsToDelete"}}}],[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.versionCollection).aggregate(S).toArray()];case 21:return 0<(S=e.sent()).length?[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.versionCollection).deleteMany({_id:{$in:S.map(function(e){return e._id})}})]:[3,23];case 22:e.sent(),e.label=23;case 23:return[3,25];case 24:return e.sent(),[3,25];case 25:return t+=o,[4,new Promise(function(e){return setImmediate(e)})];case 26:return e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[3,1];case 27:return[2,{ok:1}]}})})},MongoManagerCollection.prototype.countDocuments=function(n,s,i){return void 0===n&&(n={}),void 0===i&&(i=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:return((o=s||{}).session,o=__rest(o,["session"]),0===Object.keys(n).length)?[2,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).estimatedDocumentCount(o)]:[3,1];case 1:return i||this.skipCache?[3,2]:[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().countDocuments(this.collectionName,n,o)];case 2:t=monitor_manager_1.MonitorMongo.create("countDocuments",this.collectionName,JSON.stringify([n,o])),e.label=3;case 3:return e.trys.push([3,5,6,8]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).countDocuments(n,o)];case 4:return[2,e.sent()];case 5:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Count Documents",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Count Documents: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 6:return[4,t.finish()];case 7:return e.sent(),[7];case 8:return[2]}})})},MongoManagerCollection.prototype.create=function(e,o){return Array.isArray(e)?1===e.length?this.insertOne(e[0],o):this.insertMany(e,o):this.insertOne(e,o)},MongoManagerCollection.prototype.createIndex=function(r,n){return __awaiter(this,void 0,void 0,function(){var o,t;return __generator(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,(o=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions)).indexes()];case 1:return t=e.sent(),t.some(function(e){return JSON.stringify(e.key)===JSON.stringify(r)})?[2,"Index already exists"]:[2,o.createIndex(r,n)];case 2:return e.sent(),[3,3];case 3:return[2,"Index creation queued"]}})})},MongoManagerCollection.prototype.createIndexes=function(r,n){return __awaiter(this,void 0,void 0,function(){var o,t;return __generator(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,(o=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions)).indexes()];case 1:return t=e.sent(),0===r.filter(function(o){return!t.some(function(e){return JSON.stringify(e.key)===JSON.stringify(o.key)})}).length?[2,["All indexes already exist"]]:[2,o.createIndexes(r,n)];case 2:return e.sent(),[3,3];case 3:return[2,["Index creation queued"]]}})})},MongoManagerCollection.prototype.deleteMany=function(l,g,_,d){return void 0===l&&(l={}),void 0===_&&(_=!1),void 0===d&&(d=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i,a,c;return __generator(this,function(e){switch(e.label){case 0:return(!(t=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||d||this.bypassSession||g&&(g.readPreference&&"primary"!==g.readPreference||g.session)||(g?g.session=t:g={session:t}),o=(t=g||{}).session,t=__rest(t,["session"]),this.createLogs&&!_||this.useVersions)?[4,this.find(l,{session:o})]:[3,11];case 1:r=e.sent(),n=0,e.label=2;case 2:if(!(n<r.length))return[3,11];if(s=r[n],this.createLogs&&!_){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,3];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:s._id,payload:(0,common_1.getBinarySize)(JSON.stringify([s,l,t]))<1e6?JSON.stringify([s,l,t],null,2):"Too Big",method:"deleteMany",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,5];case 3:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:s._id,payload:(0,common_1.getBinarySize)(JSON.stringify([s,l,t]))<1e6?JSON.stringify([s,l,t],null,2):"Too Big",method:"deleteMany",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:o})];case 4:e.sent(),e.label=5;case 5:if(!this.useVersions)return[3,10];e.label=6;case 6:return e.trys.push([6,9,,10]),(a=(0,common_1.deepCopy)(s))._id={_id:s._id,__v:s.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:s._id,__v:s.__v}},a,{upsert:!0})];case 7:return e.sent(),[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).deleteMany({$and:[{"_id._id":s._id},{"_id.__v":{$lt:s.__v-1}}]})];case 8:return e.sent(),[3,10];case 9:return e.sent(),[3,10];case 10:return n++,[3,2];case 11:i=monitor_manager_1.MonitorMongo.create("deleteMany",this.collectionName,JSON.stringify([l,t])),e.label=12;case 12:return e.trys.push([12,14,15,17]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).deleteMany(l,g)];case 13:return a=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,a];case 14:throw c=e.sent(),console.log(JSON.stringify([new Date,"Error Delete Many",this.collectionName,l,t,{code:c.code,codeName:c.codeName,message:c.message,stack:c.stack}],null,2)),c.message="Error in Delete Many: ".concat(this.collectionName," => ").concat(c.codeName||"NoCodeName"," => ").concat(c.message),c;case 15:return[4,i.finish()];case 16:return e.sent(),[7];case 17:return[2]}})})},MongoManagerCollection.prototype.deleteOne=function(c,l,g,_){return void 0===c&&(c={}),void 0===g&&(g=!1),void 0===_&&(_=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i,a;return __generator(this,function(e){switch(e.label){case 0:if(!(t=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||_||this.bypassSession||l&&(l.readPreference&&"primary"!==l.readPreference||l.session)||(l?l.session=t:l={session:t}),o=(t=l||{}).session,t=__rest(t,["session"]),!this.createLogs||g)return[3,17];s=monitor_manager_1.MonitorMongo.create("findOneAndDelete",this.collectionName,JSON.stringify([c,t])),e.label=1;case 1:return e.trys.push([1,13,14,16]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).deleteOne(c,l)];case 2:return i=e.sent(),[4,this.findOne(c,l)];case 3:if(!(r=e.sent()))return[3,12];if(this.createLogs&&!g){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,4];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:r._id,payload:(0,common_1.getBinarySize)(JSON.stringify([r,c,t]))<1e6?JSON.stringify([r,c,t],null,2):"Too Big",method:"deleteOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,6];case 4:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:r._id,payload:(0,common_1.getBinarySize)(JSON.stringify([r,c,t]))<1e6?JSON.stringify([r,c,t],null,2):"Too Big",method:"deleteOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:o})];case 5:e.sent(),e.label=6;case 6:if(!this.useVersions)return[3,11];e.label=7;case 7:return e.trys.push([7,10,,11]),(n=(0,common_1.deepCopy)(r))._id={_id:r._id,__v:r.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:r._id,__v:r.__v}},n,{upsert:!0})];case 8:return e.sent(),[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).deleteMany({$and:[{"_id._id":r._id},{"_id.__v":{$lt:r.__v-1}}]})];case 9:return e.sent(),[3,11];case 10:return e.sent(),[3,11];case 11:this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),e.label=12;case 12:return[2,i];case 13:throw n=e.sent(),console.log(JSON.stringify([new Date,"Error Delete One (Find One And Delete)",this.collectionName,c,t,{code:n.code,codeName:n.codeName,message:n.message,stack:n.stack}],null,2)),n.message="Error in Delete One (Find One And Delete): ".concat(this.collectionName," => ").concat(n.codeName||"NoCodeName"," => ").concat(n.message),n;case 14:return[4,s.finish()];case 15:return e.sent(),[7];case 16:return[3,23];case 17:s=monitor_manager_1.MonitorMongo.create("deleteOne",this.collectionName,JSON.stringify([c,t])),e.label=18;case 18:return e.trys.push([18,20,21,23]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).deleteOne(c,l)];case 19:return i=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,i];case 20:throw a=e.sent(),console.log(JSON.stringify([new Date,"Error Delete One",this.collectionName,c,t,{code:a.code,codeName:a.codeName,message:a.message,stack:a.stack}],null,2)),a.message="Error in Delete One: ".concat(this.collectionName," => ").concat(a.codeName||"NoCodeName"," => ").concat(a.message),a;case 21:return[4,s.finish()];case 22:return e.sent(),[7];case 23:return[2]}})})},MongoManagerCollection.prototype.distinct=function(n,s,i,a){return void 0===a&&(a=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||a||this.bypassSession||i&&(i.readPreference&&"primary"!==i.readPreference||i.session)||(i?i.session=o:i={session:o}),(o=i||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("distinct",this.collectionName,JSON.stringify([n,s,o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).distinct(n,s,i)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Distinct",this.collectionName,s,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Distinct: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.drop=function(n,s){return void 0===s&&(s=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||s||this.bypassSession||n&&(n.readPreference&&"primary"!==n.readPreference||n.session)||(n?n.session=o:n={session:o}),(o=n||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("drop",this.collectionName,JSON.stringify([o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).drop(n)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Drop Collection",this.collectionName,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Drop Collection: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.dropIndex=function(n,s,i){return void 0===i&&(i=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||i||this.bypassSession||s&&(s.readPreference&&"primary"!==s.readPreference||s.session)||(s?s.session=o:s={session:o}),(o=s||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("dropIndex",this.collectionName,JSON.stringify([n,o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).dropIndex(n,s)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Drop Index",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Drop Index: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.dropIndexes=function(n,s){return void 0===s&&(s=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||s||this.bypassSession||n&&(n.readPreference&&"primary"!==n.readPreference||n.session)||(n?n.session=o:n={session:o}),(o=n||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("dropIndexes",this.collectionName,JSON.stringify([o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).dropIndexes(n)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Drop Indexes",this.collectionName,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Drop Indexes: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.find=function(n,s,i,a){return void 0===n&&(n={}),void 0===i&&(i=!1),void 0===a&&(a=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:return!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||a||this.bypassSession||s&&(s.readPreference&&"primary"!==s.readPreference||s.session)||(s?s.session=o:s={session:o}),(o=s||{}).session,o=__rest(o,["session"]),i||this.skipCache?[3,1]:[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().find(this.collectionName,n,s)];case 1:t=monitor_manager_1.MonitorMongo.create("find",this.collectionName,JSON.stringify([n,o])),e.label=2;case 2:return e.trys.push([2,4,5,7]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).find(n,s).toArray()];case 3:return[2,e.sent()];case 4:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Find",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Find: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 5:return[4,t.finish()];case 6:return e.sent(),[7];case 7:return[2]}})})},MongoManagerCollection.prototype.findById=function(n,s,i,a){return void 0===i&&(i=!1),void 0===a&&(a=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:return!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||a||this.bypassSession||s&&(s.readPreference&&"primary"!==s.readPreference||s.session)||(s?s.session=o:s={session:o}),(o=s||{}).session,o=__rest(o,["session"]),i||this.skipCache?[3,1]:[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().findOne(this.collectionName,{_id:n},s)];case 1:t=monitor_manager_1.MonitorMongo.create("findById",this.collectionName,JSON.stringify([{_id:n},o])),e.label=2;case 2:return e.trys.push([2,4,5,7]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).findOne({_id:n},s)];case 3:return[2,e.sent()];case 4:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Find By ID",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Find By ID: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 5:return[4,t.finish()];case 6:return e.sent(),[7];case 7:return[2]}})})},MongoManagerCollection.prototype.findCount=function(n,s,i){return void 0===n&&(n={}),void 0===i&&(i=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||i||this.bypassSession||s&&(s.readPreference&&"primary"!==s.readPreference||s.session)||(s?s.session=o:s={session:o}),(o=s||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("findCount",this.collectionName,JSON.stringify([n,o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).find(n,s).count()];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Find Count",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Find Count: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.findCursor=function(e,o,t){var r=this,n=(void 0===e&&(e={}),void 0===t&&(t=!1),resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession()),t=(!n||t||this.bypassSession||o&&(o.readPreference&&"primary"!==o.readPreference||o.session)||(o?o.session=n:o={session:n}),o||{}),n=(t.session,__rest(t,["session"])),s=monitor_manager_1.MonitorMongo.create("findCursor",this.collectionName,JSON.stringify([e,n])),i=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).find(e,o);return i.on("close",function(o){return __awaiter(r,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,s.finish()];case 1:return e.sent(),i.removeAllListeners(),[2,o]}})})}),i},MongoManagerCollection.prototype.findStream=function(e,o,t,r){var n=this,s=(void 0===e&&(e={}),void 0===r&&(r=!1),resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession()),r=(!s||r||this.bypassSession||o&&(o.readPreference&&"primary"!==o.readPreference||o.session)||(o?o.session=s:o={session:s}),o||{}),s=(r.session,__rest(r,["session"])),i=monitor_manager_1.MonitorMongo.create("findStream",this.collectionName,JSON.stringify([e,s,t]));return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).find(e,o).stream(t).on("close",function(o){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,i.finish()];case 1:return e.sent(),[2,o]}})})})},MongoManagerCollection.prototype.findOne=function(s,i,a,c){return void 0===s&&(s={}),void 0===a&&(a=!1),void 0===c&&(c=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n;return __generator(this,function(e){switch(e.label){case 0:return!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||c||this.bypassSession||i&&(i.readPreference&&"primary"!==i.readPreference||i.session)||(i?i.session=o:i={session:o}),a||this.skipCache?[3,1]:[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().findOne(this.collectionName,s,i)];case 1:(o=i||{}).session,t=__rest(o,["session"]),r=monitor_manager_1.MonitorMongo.create("findOne",this.collectionName,JSON.stringify([s,t])),e.label=2;case 2:return e.trys.push([2,4,5,7]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).findOne(s,i)];case 3:return[2,e.sent()];case 4:throw n=e.sent(),console.log(JSON.stringify([new Date,"Error Find One",this.collectionName,s,t,{code:n.code,codeName:n.codeName,message:n.message,stack:n.stack}],null,2)),n.message="Error in Find One: ".concat(this.collectionName," => ").concat(n.codeName||"NoCodeName"," => ").concat(n.message),n;case 5:return[4,r.finish()];case 6:return e.sent(),[7];case 7:return[2]}})})},MongoManagerCollection.prototype.findOneAndDelete=function(i,a,c,l){return void 0===i&&(i={}),void 0===c&&(c=!1),void 0===l&&(l=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s;return __generator(this,function(e){switch(e.label){case 0:!(t=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||l||this.bypassSession||a&&(a.readPreference&&"primary"!==a.readPreference||a.session)||(a?a.session=t:a={session:t}),o=(t=a||{}).session,t=__rest(t,["session"]),r=monitor_manager_1.MonitorMongo.create("findOneAndDelete",this.collectionName,JSON.stringify([i,t])),e.label=1;case 1:return e.trys.push([1,12,13,15]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).findOneAndDelete(i,a)];case 2:if(n=e.sent(),!(n=n.value))return[3,10];if(this.createLogs&&!c){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,3];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:n._id,payload:(0,common_1.getBinarySize)(JSON.stringify([n,i,t]))<1e6?JSON.stringify([n,i,t],null,2):"Too Big",method:"findOneAndDelete",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,5];case 3:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:n._id,payload:(0,common_1.getBinarySize)(JSON.stringify([n,i,t]))<1e6?JSON.stringify([n,i,t],null,2):"Too Big",method:"findOneAndDelete",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:o})];case 4:e.sent(),e.label=5;case 5:if(!this.useVersions)return[3,9];e.label=6;case 6:return e.trys.push([6,8,,9]),(s=(0,common_1.deepCopy)(n))._id={_id:n._id,__v:n.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:n._id,__v:n.__v}},s,{upsert:!0})];case 7:return e.sent(),[3,9];case 8:return e.sent(),[3,9];case 9:return this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,n];case 10:return[2,null];case 11:return[3,15];case 12:throw s=e.sent(),console.log(JSON.stringify([new Date,"Error Find One And Delete",this.collectionName,i,t,{code:s.code,codeName:s.codeName,message:s.message,stack:s.stack}],null,2)),s.message="Error in Find One And Delete: ".concat(this.collectionName," => ").concat(s.codeName||"NoCodeName"," => ").concat(s.message),s;case 13:return[4,r.finish()];case 14:return e.sent(),[7];case 15:return[2]}})})},MongoManagerCollection.prototype.findOneAndReplace=function(a,c,l,g,_,d){return void 0===a&&(a={}),void 0===g&&(g=!1),void 0===_&&(_=!1),void 0===d&&(d=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i;return __generator(this,function(e){switch(e.label){case 0:return!this.checkSchema||_?[3,2]:(o=this.simplschema.newContext(),o.validate(c)?[3,2]:(console.log(new Date,this.collectionName,"Schema Errors - findOneAndReplace",o.validationErrors()),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethod("insertErrorLog","Schema Failed on findOneAndReplace - "+this.collectionName,JSON.stringify([o.validationErrors(),c],null,2))]));case 1:throw e.sent(),new Error(JSON.stringify(o.validationErrors(),null,2));case 2:r=new Date,this.timestamps&&(c.updatedAt=r),l&&l.upsert&&(c._id||(c._id=(0,common_1.objectIdHexString)()),this.useVersions&&(c.__v=0),this.timestamps)&&!c.createdAt&&(c.createdAt=r),!(r=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||d||this.bypassSession||l&&(l.readPreference&&"primary"!==l.readPreference||l.session)||(l?l.session=r:l={session:r}),t=(r=l||{}).session,r=__rest(r,["session"]),n=monitor_manager_1.MonitorMongo.create("findOneAndReplace",this.collectionName,JSON.stringify([a,c,r])),e.label=3;case 3:return e.trys.push([3,14,15,17]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).findOneAndReplace(a,c,l)];case 4:if(s=e.sent(),!(s=s.value))return[3,12];if(this.createLogs&&!g){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,5];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:s._id,payload:(0,common_1.getBinarySize)(JSON.stringify([s,a,c,r]))<1e6?JSON.stringify([s,a,c,r],null,2):"Too Big",method:"findOneAndReplace",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,7];case 5:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:s._id,payload:(0,common_1.getBinarySize)(JSON.stringify([s,a,c,r]))<1e6?JSON.stringify([s,a,c,r],null,2):"Too Big",method:"findOneAndReplace",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:t})];case 6:e.sent(),e.label=7;case 7:if(!this.useVersions)return[3,11];e.label=8;case 8:return e.trys.push([8,10,,11]),(i=(0,common_1.deepCopy)(s))._id={_id:s._id,__v:s.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:s._id,__v:s.__v}},i,{upsert:!0})];case 9:return e.sent(),[3,11];case 10:return e.sent(),[3,11];case 11:return this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,s];case 12:return[2,null];case 13:return[3,17];case 14:throw i=e.sent(),console.log(JSON.stringify([new Date,"Error Find One And Replace",this.collectionName,a,r,{code:i.code,codeName:i.codeName,message:i.message,stack:i.stack}],null,2)),i.message="Error in Find One And Replace: ".concat(this.collectionName," => ").concat(i.codeName||"NoCodeName"," => ").concat(i.message),i;case 15:return[4,n.finish()];case 16:return e.sent(),[7];case 17:return[2]}})})},MongoManagerCollection.prototype.findOneAndUpdate=function(c,l,g,_,d,u){return void 0===c&&(c={}),void 0===_&&(_=!1),void 0===d&&(d=!1),void 0===u&&(u=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i,a;return __generator(this,function(e){switch(e.label){case 0:return!this.checkSchema||d?[3,2]:(o=this.simplschema.newContext(),o.validate(l,{modifier:!0})?[3,2]:(console.log(new Date,this.collectionName,"Schema Errors - findOneAndUpdate",o.validationErrors()),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethod("insertErrorLog","Schema Failed on findOneAndUpdate - "+this.collectionName,JSON.stringify([o.validationErrors(),l],null,2))]));case 1:throw e.sent(),new Error(JSON.stringify(o.validationErrors(),null,2));case 2:this.timestamps&&(t=new Date,l.$set?l.$set.updatedAt=t:l.$set={updatedAt:t}),g&&g.upsert&&(l.$setOnInsert?(l.$setOnInsert._id||(l.$setOnInsert._id=(0,common_1.objectIdHexString)()),this.timestamps&&!l.$setOnInsert.createdAt&&(l.$setOnInsert.createdAt=new Date)):this.timestamps?l.$setOnInsert={_id:(0,common_1.objectIdHexString)(),createdAt:new Date}:l.$setOnInsert={_id:(0,common_1.objectIdHexString)()}),!(t=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||u||this.bypassSession||g&&(g.readPreference&&"primary"!==g.readPreference||g.session)||(g?g.session=t:g={session:t}),r=(n=g||{}).session,n=__rest(n,["session"]),s=monitor_manager_1.MonitorMongo.create("findOneAndUpdate",this.collectionName,JSON.stringify([c,l,n])),e.label=3;case 3:return e.trys.push([3,14,15,17]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).findOneAndUpdate(c,l,g)];case 4:if(i=e.sent(),!(i=i.value))return[3,12];if(this.createLogs&&!_){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,5];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:i._id,payload:(0,common_1.getBinarySize)(JSON.stringify([i,c,l,n]))<1e6?JSON.stringify([i,c,l,n],null,2):"Too Big",method:"findOneAndUpdate",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,7];case 5:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:i._id,payload:(0,common_1.getBinarySize)(JSON.stringify([i,c,l,n]))<1e6?JSON.stringify([i,c,l,n],null,2):"Too Big",method:"findOneAndUpdate",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:r})];case 6:e.sent(),e.label=7;case 7:if(!this.useVersions)return[3,11];e.label=8;case 8:return e.trys.push([8,10,,11]),(a=(0,common_1.deepCopy)(i))._id={_id:i._id,__v:i.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:i._id,__v:i.__v}},a,{upsert:!0})];case 9:return e.sent(),[3,11];case 10:return e.sent(),[3,11];case 11:return this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,i];case 12:return[2,null];case 13:return[3,17];case 14:throw a=e.sent(),console.log(JSON.stringify([new Date,"Error Find One And Update",this.collectionName,c,n,{code:a.code,codeName:a.codeName,message:a.message,stack:a.stack}],null,2)),a.message="Error in Find One And Update: ".concat(this.collectionName," => ").concat(a.codeName||"NoCodeName"," => ").concat(a.message),a;case 15:return[4,s.finish()];case 16:return e.sent(),[7];case 17:return[2]}})})},MongoManagerCollection.prototype.indexes=function(n){return __awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:(o=n||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("indexes",this.collectionName,JSON.stringify([o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).indexes(n)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Indexes",this.collectionName,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Indexes: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.indexExists=function(n,s){return __awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:(o=s||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("indexExists",this.collectionName,JSON.stringify([n,o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).indexExists(n,s)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Index Exists",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Index Exists: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.insertMany=function(v,p,m,h,f,O){return void 0===m&&(m=!1),void 0===h&&(h=!1),void 0===f&&(f=!1),void 0===O&&(O=!1),__awaiter(this,void 0,void 0,function(){var t,o,r,n,s,i,a,c,l,g,_,d,u;return __generator(this,function(e){switch(e.label){case 0:if(!v.length)return[2,[]];if(t=[],!this.checkSchema||h)return[3,9];e.label=1;case 1:e.trys.push([1,7,8,9]),o=__values(v),r=o.next(),e.label=2;case 2:return r.done?[3,6]:(l=r.value,n=this.simplschema.newContext(),n.validate(l)?[3,4]:(console.log(new Date,this.collectionName,"Schema Errors - insertMany",n.validationErrors()),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethod("insertErrorLog","Schema Failed on insertMany - "+this.collectionName,JSON.stringify([n.validationErrors(),l],null,2))]));case 3:return e.sent(),t.push(!1),[3,5];case 4:t.push(!0),e.label=5;case 5:return r=o.next(),[3,2];case 6:return[3,9];case 7:return n=e.sent(),d={error:n},[3,9];case 8:try{r&&!r.done&&(u=o.return)&&u.call(o)}finally{if(d)throw d.error}return[7];case 9:s=this.checkSchema?v.filter(function(e,o){return t[o]}):v,!(a=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||O||this.bypassSession||p&&(p.readPreference&&"primary"!==p.readPreference||p.session)||(p?p.session=a:p={session:a}),i=(a=p||{}).session,a=__rest(a,["session"]),c=0,e.label=10;case 10:if(!(c<s.length))return[3,14];if((l=s[c])._id||(l._id=(0,common_1.objectIdHexString)()),this.timestamps&&(_=new Date,l.createdAt||(l.createdAt=_),l.updatedAt||(l.updatedAt=_)),this.useVersions&&!l.hasOwnProperty("__v")&&(l.__v=0),this.createLogs&&!m){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,11];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:l._id,payload:(0,common_1.getBinarySize)(JSON.stringify([l,a]))<1e6?JSON.stringify([l,a],null,2):"Too Big",method:"insertMany",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,13];case 11:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:l._id,payload:(0,common_1.getBinarySize)(JSON.stringify([l,a]))<1e6?JSON.stringify([l,a],null,2):"Too Big",method:"insertMany",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:i})];case 12:e.sent(),e.label=13;case 13:return c++,[3,10];case 14:if(!s.length)return[3,19];g=null,f||(g=monitor_manager_1.MonitorMongo.create("insertMany",this.collectionName,JSON.stringify([s,a]))),e.label=15;case 15:return e.trys.push([15,17,18,19]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).insertMany(s,p)];case 16:return e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,s];case 17:throw _=e.sent(),console.log(JSON.stringify([new Date,"Error Insert Many",this.collectionName,v,a,{code:_.code,codeName:_.codeName,message:_.message,stack:_.stack}],null,2)),_.message="Error in Insert Many: ".concat(this.collectionName," => ").concat(_.codeName||"NoCodeName"," => ").concat(_.message),_;case 18:return g&&g.finish(),[7];case 19:return[2,[]]}})})},MongoManagerCollection.prototype.insertOne=function(a,c,l,g,_){return void 0===l&&(l=!1),void 0===g&&(g=!1),void 0===_&&(_=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i;return __generator(this,function(e){switch(e.label){case 0:return(a._id||(a._id=(0,common_1.objectIdHexString)()),!this.checkSchema||g)?[3,2]:(o=this.simplschema.newContext(),o.validate(a)?[3,2]:(console.log(new Date,this.collectionName,"Schema Errors - insertOne",o.validationErrors()),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethod("insertErrorLog","Schema Failed on insertOne - "+this.collectionName,JSON.stringify([o.validationErrors(),a],null,2))]));case 1:throw e.sent(),new Error(JSON.stringify(o.validationErrors(),null,2));case 2:if(this.timestamps&&(t=new Date,a.createdAt||(a.createdAt=t),a.updatedAt||(a.updatedAt=t)),!(t=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||_||this.bypassSession||c&&(c.readPreference&&"primary"!==c.readPreference||c.session)||(c?c.session=t:c={session:t}),r=(n=c||{}).session,n=__rest(n,["session"]),this.createLogs&&!l){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,3];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:a._id,payload:(0,common_1.getBinarySize)(JSON.stringify([a,n]))<1e6?JSON.stringify([a,n],null,2):"Too Big",method:"insertOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,5];case 3:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:a._id,payload:(0,common_1.getBinarySize)(JSON.stringify([a,n]))<1e6?JSON.stringify([a,n],null,2):"Too Big",method:"insertOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:r})];case 4:e.sent(),e.label=5;case 5:this.useVersions&&!a.hasOwnProperty("__v")&&(a.__v=0),s=monitor_manager_1.MonitorMongo.create("insertOne",this.collectionName,JSON.stringify([a,n])),e.label=6;case 6:return e.trys.push([6,8,9,11]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).insertOne(a,c)];case 7:return e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,a];case 8:throw i=e.sent(),console.log(JSON.stringify([new Date,"Error Insert One",this.collectionName,a,n,{code:i.code,codeName:i.codeName,message:i.message,stack:i.stack}],null,2)),i.message="Error in Insert One: ".concat(this.collectionName," => ").concat(i.codeName||"NoCodeName"," => ").concat(i.message),i;case 9:return[4,s.finish()];case 10:return e.sent(),[7];case 11:return[2]}})})},MongoManagerCollection.prototype.listIndexes=function(e,o){var t=this,r=(void 0===o&&(o=!1),resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession()),o=(!r||o||this.bypassSession||e&&(e.readPreference&&"primary"!==e.readPreference||e.session)||(e?e.session=r:e={session:r}),e||{}),r=(o.session,__rest(o,["session"])),n=monitor_manager_1.MonitorMongo.create("listIndexes",this.collectionName,JSON.stringify([r])),o=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).listIndexes(e);return o.on("close",function(o){return __awaiter(t,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,n.finish()];case 1:return e.sent(),[2,o]}})})}),o},MongoManagerCollection.prototype.rename=function(n,s,i){return void 0===i&&(i=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||i||this.bypassSession||s&&(s.readPreference&&"primary"!==s.readPreference||s.session)||(s?s.session=o:s={session:o}),(o=s||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("rename",this.collectionName,JSON.stringify([n,o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).rename(n,s)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Rename",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Rename: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.replaceOne=function(m,h,f,O,S,y,M){return void 0===O&&(O=!1),void 0===S&&(S=!1),void 0===y&&(y=null),void 0===M&&(M=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i,a,c,l,g,_,d,u,v,p;return __generator(this,function(e){switch(e.label){case 0:return!this.checkSchema||S?[3,2]:(o=this.simplschema.newContext(),o.validate(h)?[3,2]:(console.log(new Date,this.collectionName,"Schema Errors - replaceOne",o.validationErrors()),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethod("insertErrorLog","Schema Failed on replaceOne - "+this.collectionName,JSON.stringify([o.validationErrors(),h],null,2))]));case 1:throw e.sent(),new Error(JSON.stringify(o.validationErrors(),null,2));case 2:return(t=new Date,this.timestamps&&(h.updatedAt=t),!(n=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||M||this.bypassSession||f&&(f.readPreference&&"primary"!==f.readPreference||f.session)||(f?f.session=n:f={session:n}),r=(n=f||{}).session,n=__rest(n,["session"]),this.useVersions)?y?[3,4]:[4,this.findOne(m,{session:r},!0)]:[3,45];case 3:y=e.sent(),e.label=4;case 4:if(!y)return[3,33];if(this.timestamps&&!h.createdAt&&y.createdAt&&(h.createdAt=y.createdAt),y.__v!==h.__v)return[3,20];e.label=5;case 5:return e.trys.push([5,9,,10]),h.__v+=1,(s=(0,common_1.deepCopy)(y))._id={_id:y._id,__v:y.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:y._id,__v:y.__v}},s,{upsert:!0})];case 6:return(e.sent(),4<=y.__v)?[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).deleteMany({$and:[{"_id._id":y._id},{"_id.__v":{$lt:y.__v-4}}]})]:[3,8];case 7:e.sent(),e.label=8;case 8:return[3,10];case 9:return e.sent(),[3,10];case 10:if(this.createLogs&&!O){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,11];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:y._id,payload:(0,common_1.getBinarySize)(JSON.stringify([y,m,h,n]))<1e6?JSON.stringify([y,m,h,n],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,13];case 11:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:y._id,payload:(0,common_1.getBinarySize)(JSON.stringify([y,m,h,n]))<1e6?JSON.stringify([y,m,h,n],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:r})];case 12:e.sent(),e.label=13;case 13:u=monitor_manager_1.MonitorMongo.create("replaceOne",this.collectionName,JSON.stringify([m,h,n])),e.label=14;case 14:return e.trys.push([14,16,17,19]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).replaceOne(m,h,f)];case 15:return v=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,v];case 16:throw s=e.sent(),console.log(JSON.stringify([new Date,"Error Replace One",this.collectionName,m,h,n,{code:s.code,codeName:s.codeName,message:s.message,stack:s.stack}],null,2)),s.message="Error in Replace One: ".concat(this.collectionName," => ").concat(s.codeName||"NoCodeName"," => ").concat(s.message),s;case 17:return[4,u.finish()];case 18:return e.sent(),[7];case 19:return[3,32];case 20:return console.log("invalid version - "+this.collectionName,y.__v,h.__v),[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).findOne({_id:{_id:y._id,__v:h.__v}},null,!0)];case 21:if(!(a=e.sent()))return[3,31];if(i=y._id,c=y.__v,(a=(0,common_1.getMongoMergeUpdatedDoc)(h,y,a))._id=i,a.__v=c+1,this.createLogs&&!O){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,22];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:i,payload:(0,common_1.getBinarySize)(JSON.stringify(["invalidVersion - merge",y,m,a,n]))<1e6?JSON.stringify(["invalidVersion - merge",y,m,a,n],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,24];case 22:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:i,payload:(0,common_1.getBinarySize)(JSON.stringify(["invalidVersion - merge",y,m,a,n]))<1e6?JSON.stringify(["invalidVersion - merge",y,m,a,n],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:r})];case 23:e.sent(),e.label=24;case 24:u=monitor_manager_1.MonitorMongo.create("replaceOne",this.collectionName,JSON.stringify([m,a,n])),e.label=25;case 25:return e.trys.push([25,27,28,30]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).replaceOne(m,a,f)];case 26:return v=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,v.acknowledged];case 27:throw c=e.sent(),console.log(JSON.stringify([new Date,"Error Replace One",this.collectionName,m,h,n,{code:c.code,codeName:c.codeName,message:c.message,stack:c.stack}],null,2)),c.message="Error in Replace One: ".concat(this.collectionName," => ").concat(c.codeName||"NoCodeName"," => ").concat(c.message),c;case 28:return[4,u.finish()];case 29:return e.sent(),[7];case 30:return[3,32];case 31:throw new Error("Error in Replace One: Invalid Version And Could Not Find History - DB: "+y.__v+", Trying to update with :"+h.__v);case 32:return[3,44];case 33:if(!f||!f.upsert)return[3,43];if(this.timestamps&&(h.createdAt=t),h._id||(h._id=(0,common_1.objectIdHexString)()),h.__v=0,this.createLogs&&!O){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,34];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:h._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",m,h,n]))<1e6?JSON.stringify(["upsert",m,h,n],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,36];case 34:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:h._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",m,h,n]))<1e6?JSON.stringify(["upsert",m,h,n],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:r})];case 35:e.sent(),e.label=36;case 36:u=monitor_manager_1.MonitorMongo.create("replaceOne",this.collectionName,JSON.stringify([m,h,n])),e.label=37;case 37:return e.trys.push([37,39,40,42]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).replaceOne(m,h,f)];case 38:return v=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,v.acknowledged];case 39:throw l=e.sent(),console.log(JSON.stringify([new Date,"Error Replace One",this.collectionName,m,h,n,{code:l.code,codeName:l.codeName,message:l.message,stack:l.stack}],null,2)),l.message="Error in Replace One: ".concat(this.collectionName," => ").concat(l.codeName||"NoCodeName"," => ").concat(l.message),l;case 40:return[4,u.finish()];case 41:return e.sent(),[7];case 42:return[3,44];case 43:return[2,{acknowledged:!1,matchedCount:0,modifiedCount:0,upsertedCount:0,upsertedId:null}];case 44:return[3,66];case 45:if(f&&f.upsert&&(this.timestamps&&!h.createdAt&&(h.createdAt=t),h._id||(h._id=(0,common_1.objectIdHexString)()),h.__v=0),!this.createLogs||O)return[3,60];f?f.returnDocument="before":f={returnDocument:"before"},g=(l=f||{}).session,_=__rest(l,["session"]),u=monitor_manager_1.MonitorMongo.create("findOneAndReplace",this.collectionName,JSON.stringify([m,h,_])),e.label=46;case 46:return e.trys.push([46,56,57,59]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).replaceOne(m,h,f)];case 47:return v=e.sent(),[4,this.findOne(m,f)];case 48:return(d=e.sent())?"https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL?[3,49]:(resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:d._id,payload:(0,common_1.getBinarySize)(JSON.stringify([d,m,h,_]))<1e6?JSON.stringify([d,m,h,_],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}}),[3,51]):[3,52];case 49:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:d._id,payload:(0,common_1.getBinarySize)(JSON.stringify([d,m,h,_]))<1e6?JSON.stringify([d,m,h,_],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:g})];case 50:e.sent(),e.label=51;case 51:return[3,55];case 52:return"https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL?[3,53]:(resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:h._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",m,h,_]))<1e6?JSON.stringify(["upsert",m,h,_],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}}),[3,55]);case 53:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:h._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",m,h,_]))<1e6?JSON.stringify(["upsert",m,h,_],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:g})];case 54:e.sent(),e.label=55;case 55:return this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,v];case 56:throw p=e.sent(),console.log(JSON.stringify([new Date,"Error Replace One (Find One And Replace)",this.collectionName,m,_,{code:p.code,codeName:p.codeName,message:p.message,stack:p.stack}],null,2)),p.message="Error in Replace One (Find One And Replace): ".concat(this.collectionName," => ").concat(p.codeName||"NoCodeName"," => ").concat(p.message),p;case 57:return[4,u.finish()];case 58:return e.sent(),[7];case 59:return[3,66];case 60:u=monitor_manager_1.MonitorMongo.create("replaceOne",this.collectionName,JSON.stringify([m,h,n])),e.label=61;case 61:return e.trys.push([61,63,64,66]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).replaceOne(m,h,f)];case 62:return v=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,v.acknowledged];case 63:throw p=e.sent(),console.log(JSON.stringify([new Date,"Error Replace One",this.collectionName,m,h,n,{code:p.code,codeName:p.codeName,message:p.message,stack:p.stack}],null,2)),p.message="Error in Replace One: ".concat(this.collectionName," => ").concat(p.codeName||"NoCodeName"," => ").concat(p.message),p;case 64:return[4,u.finish()];case 65:return e.sent(),[7];case 66:return[2]}})})},MongoManagerCollection.prototype.updateMany=function(_,d,u,v,p,m,h){return void 0===v&&(v=!1),void 0===p&&(p=!1),void 0===m&&(m=!1),void 0===h&&(h=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i,a,c,l,g;return __generator(this,function(e){switch(e.label){case 0:return d.$inc&&"{}"!==JSON.stringify(d.$inc)||d.$set&&"{}"!==JSON.stringify(d.$set)||d.$setOnInsert&&"{}"!==JSON.stringify(d.$setOnInsert)||d.$unset&&"{}"!==JSON.stringify(d.$unset)?(this.timestamps&&(t=new Date,d.$set?d.$set.updatedAt=t:d.$set={updatedAt:t}),!this.checkSchema||p||(o=this.simplschema.newContext(),o.validate(d,{modifier:!0}))?[3,2]:(console.log(new Date,this.collectionName,"Schema Errors - updateMany",o.validationErrors()),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethod("insertErrorLog","Schema Failed on updateMany - "+this.collectionName,JSON.stringify([o.validationErrors(),d],null,2))])):[2,null];case 1:throw e.sent(),new Error(JSON.stringify(o.validationErrors(),null,2));case 2:return(!(t=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||h||this.bypassSession||u&&(u.readPreference&&"primary"!==u.readPreference||u.session)||(u?u.session=t:u={session:t}),r=(n=u||{}).session,n=__rest(n,["session"]),this.useVersions&&!m||this.createLogs&&!v)?[4,this.find(_,{session:r})]:[3,15];case 3:s=e.sent(),i=0,e.label=4;case 4:if(!(i<s.length))return[3,15];if(a=s[i],this.createLogs&&!v){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,5];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:a._id,payload:(0,common_1.getBinarySize)(JSON.stringify([a,_,d,n]))<1e6?JSON.stringify([a,_,d,n],null,2):"Too Big",method:"updateMany",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,7];case 5:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:a._id,payload:(0,common_1.getBinarySize)(JSON.stringify([a,_,d,n]))<1e6?JSON.stringify([a,_,d,n],null,2):"Too Big",method:"updateMany",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:r})];case 6:e.sent(),e.label=7;case 7:if(!this.useVersions)return[3,14];e.label=8;case 8:return e.trys.push([8,12,,13]),(l=(0,common_1.deepCopy)(a))._id={_id:a._id,__v:a.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:a._id,__v:a.__v}},l,{upsert:!0})];case 9:return(e.sent(),4<=a.__v)?[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).deleteMany({$and:[{"_id._id":a._id},{"_id.__v":{$lt:a.__v-4}}]})]:[3,11];case 10:e.sent(),e.label=11;case 11:return[3,13];case 12:return e.sent(),[3,13];case 13:d.$inc||(d.$inc={}),"number"!=typeof d.$inc.__v&&(d.$inc.__v=1),d.$set&&"__v"in d.$set&&(delete d.$set.__v,0===Object.keys(d.$set).length)&&delete d.$set,e.label=14;case 14:return i++,[3,4];case 15:c=monitor_manager_1.MonitorMongo.create("updateMany",this.collectionName,JSON.stringify([_,d,n])),e.label=16;case 16:return e.trys.push([16,18,19,21]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).updateMany(_,d,u)];case 17:return l=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,l];case 18:throw g=e.sent(),console.log(JSON.stringify([new Date,"Error Update Many",this.collectionName,_,d,n,{code:g.code,codeName:g.codeName,message:g.message,stack:g.stack}],null,2)),g.message="Error in Update Many: ".concat(this.collectionName," => ").concat(g.codeName||"NoCodeName"," => ").concat(g.message),g;case 19:return[4,c.finish()];case 20:return e.sent(),[7];case 21:return[2]}})})},MongoManagerCollection.prototype.updateOne=function(g,_,d,u,v,p){return void 0===u&&(u=!1),void 0===v&&(v=!1),void 0===p&&(p=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i,a,c,l;return __generator(this,function(e){switch(e.label){case 0:return!this.checkSchema||v?[3,2]:(o=this.simplschema.newContext(),o.validate(_,{modifier:!0})?[3,2]:(console.log(new Date,this.collectionName,"Schema Errors - updateOne",o.validationErrors()),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethod("insertErrorLog","Schema Failed on updateOne - "+this.collectionName,JSON.stringify([o.validationErrors(),_],null,2))]));case 1:throw e.sent(),new Error(JSON.stringify(o.validationErrors(),null,2));case 2:return _.$inc&&"{}"!==JSON.stringify(_.$inc)||_.$set&&"{}"!==JSON.stringify(_.$set)||_.$setOnInsert&&"{}"!==JSON.stringify(_.$setOnInsert)||_.$unset&&"{}"!==JSON.stringify(_.$unset)?(r=new Date,this.timestamps&&(_.$set?_.$set.updatedAt=r:_.$set={updatedAt:r}),!(r=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||p||this.bypassSession||d&&(d.readPreference&&"primary"!==d.readPreference||d.session)||(d?d.session=r:d={session:r}),t=(r=d||{}).session,r=__rest(r,["session"]),this.useVersions?[4,this.findOne(g,{session:t},!0)]:[3,30]):[2,null];case 3:if(!(s=e.sent()))return[3,18];if(this.createLogs&&!u){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,4];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:s._id,payload:(0,common_1.getBinarySize)(JSON.stringify([s,g,_,r]))<1e6?JSON.stringify([s,g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,6];case 4:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:s._id,payload:(0,common_1.getBinarySize)(JSON.stringify([s,g,_,r]))<1e6?JSON.stringify([s,g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:t})];case 5:e.sent(),e.label=6;case 6:return e.trys.push([6,10,,11]),(n=(0,common_1.deepCopy)(s))._id={_id:s._id,__v:s.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:s._id,__v:s.__v}},n,{upsert:!0})];case 7:return(e.sent(),4<=s.__v)?[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).deleteMany({$and:[{"_id._id":s._id},{"_id.__v":{$lt:s.__v-4}}]})]:[3,9];case 8:e.sent(),e.label=9;case 9:return[3,11];case 10:return e.sent(),[3,11];case 11:_.$inc||(_.$inc={}),"number"!=typeof _.$inc.__v&&(_.$inc.__v=1),_.$set&&"__v"in _.$set&&(delete _.$set.__v,0===Object.keys(_.$set).length)&&delete _.$set,a=monitor_manager_1.MonitorMongo.create("updateOne",this.collectionName,JSON.stringify([g,_,r])),e.label=12;case 12:return e.trys.push([12,14,15,17]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).updateOne(g,_,d)];case 13:return c=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,c];case 14:throw n=e.sent(),console.log(JSON.stringify([new Date,"Error Update One",this.collectionName,g,_,r,{code:n.code,codeName:n.codeName,message:n.message,stack:n.stack}],null,2)),n.message="Error in Update One: ".concat(this.collectionName," => ").concat(n.codeName||"NoCodeName"," => ").concat(n.message),n;case 15:return[4,a.finish()];case 16:return e.sent(),[7];case 17:return[3,29];case 18:if(!d||!d.upsert)return[3,28];if(_.$setOnInsert?(_.$setOnInsert._id||(_.$setOnInsert._id=(0,common_1.objectIdHexString)()),this.timestamps&&!_.$setOnInsert.createdAt&&(_.$setOnInsert.createdAt=new Date)):this.timestamps?_.$setOnInsert={_id:(0,common_1.objectIdHexString)(),__v:0,createdAt:new Date}:_.$setOnInsert={_id:(0,common_1.objectIdHexString)(),__v:0},this.createLogs&&!u){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,19];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:_.$setOnInsert._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",g,_,r]))<1e6?JSON.stringify(["upsert",g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,21];case 19:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:_.$setOnInsert._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",g,_,r]))<1e6?JSON.stringify(["upsert",g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:t})];case 20:e.sent(),e.label=21;case 21:a=monitor_manager_1.MonitorMongo.create("updateOne",this.collectionName,JSON.stringify([g,_,r])),e.label=22;case 22:return e.trys.push([22,24,25,27]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).updateOne(g,_,d)];case 23:return c=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,c];case 24:throw i=e.sent(),console.log(JSON.stringify([new Date,"Error Update One",this.collectionName,g,r,{code:i.code,codeName:i.codeName,message:i.message,stack:i.stack}],null,2)),i.message="Error in Update One: ".concat(this.collectionName," => ").concat(i.codeName||"NoCodeName"," => ").concat(i.message),i;case 25:return[4,a.finish()];case 26:return e.sent(),[7];case 27:return[3,29];case 28:return[2,{acknowledged:!1,matchedCount:0,modifiedCount:0,upsertedCount:0,upsertedId:null}];case 29:return[3,52];case 30:if(d&&d.upsert&&(_.$setOnInsert?(_.$setOnInsert._id||(_.$setOnInsert._id=(0,common_1.objectIdHexString)()),this.timestamps&&!_.$setOnInsert.createdAt&&(_.$setOnInsert.createdAt=new Date)):this.timestamps?_.$setOnInsert={_id:(0,common_1.objectIdHexString)(),createdAt:new Date}:_.$setOnInsert={_id:(0,common_1.objectIdHexString)()}),!this.createLogs||u)return[3,46];d?d.returnDocument="before":d={returnDocument:"before"},a=monitor_manager_1.MonitorMongo.create("findOneAndUpdate",this.collectionName,JSON.stringify([g,_,r])),e.label=31;case 31:return e.trys.push([31,42,43,45]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).updateOne(g,_,d)];case 32:return c=e.sent(),[4,this.findOne(g,d)];case 33:return(s=e.sent())?"https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL?[3,34]:(resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:s._id,payload:(0,common_1.getBinarySize)(JSON.stringify([s,g,_,r]))<1e6?JSON.stringify([s,g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}}),[3,36]):[3,37];case 34:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:s._id,payload:(0,common_1.getBinarySize)(JSON.stringify([s,g,_,r]))<1e6?JSON.stringify([s,g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:t})];case 35:e.sent(),e.label=36;case 36:return[2,c];case 37:return _.$setOnInsert?"https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL?[3,38]:(resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:_.$setOnInsert._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",g,_,r]))<1e6?JSON.stringify(["upsert",g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}}),[3,40]):[3,41];case 38:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:_.$setOnInsert._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",g,_,r]))<1e6?JSON.stringify(["upsert",g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date})];case 39:e.sent(),e.label=40;case 40:this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),e.label=41;case 41:return[2,c];case 42:throw i=e.sent(),console.log(JSON.stringify([new Date,"Error Update One (Find One And Update)",this.collectionName,g,r,{code:i.code,codeName:i.codeName,message:i.message,stack:i.stack}],null,2)),i.message="Error in Update One (Find One And Update): ".concat(this.collectionName," => ").concat(i.codeName||"NoCodeName"," => ").concat(i.message),i;case 43:return[4,a.finish()];case 44:return e.sent(),[7];case 45:return[3,52];case 46:a=monitor_manager_1.MonitorMongo.create("updateOne",this.collectionName,JSON.stringify([g,_,r])),e.label=47;case 47:return e.trys.push([47,49,50,52]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).updateOne(g,_,d)];case 48:return c=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,c];case 49:throw l=e.sent(),console.log(JSON.stringify([new Date,"Error Update One",this.collectionName,g,_,r,{code:l.code,codeName:l.codeName,message:l.message,stack:l.stack}],null,2)),l.message="Error in Update One: ".concat(this.collectionName," => ").concat(l.codeName||"NoCodeName"," => ").concat(l.message),l;case 50:return[4,a.finish()];case 51:return e.sent(),[7];case 52:return[2]}})})},MongoManagerCollection.prototype.watchCollection=function(e,o,t){void 0===e&&(e=[]),void 0===t&&(t=!1);var r=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession();return!r||t||this.bypassSession||(o?o.session=r:o={session:r}),resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).watch(e,o)},MongoManagerCollection}()),MongoManagerUserCollection=function(e){function MongoManagerUserCollection(){return null!==e&&e.apply(this,arguments)||this}return __extends(MongoManagerUserCollection,e),MongoManagerUserCollection.create=function(e){var o=new MongoManagerUserCollection;return o.initialize(e),o},MongoManagerUserCollection.prototype.authenticate=function(r,n){return __awaiter(this,void 0,void 0,function(){var o,t;return __generator(this,function(e){switch(e.label){case 0:return(o=Math.pow(100,Math.log(r.attempts+1)),o=o<3e5?o:3e5,r.last)?Date.now()-r.last.getTime()<o?(r.last=new Date,[4,user_collection_1.Users.updateOne({_id:r._id},{$set:{last:r.last}})]):[3,2]:[3,3];case 1:return e.sent(),[2,{data:null,error:"Attempt Too Soon"}];case 2:return[3,4];case 3:r.last=new Date,e.label=4;case 4:if(5<=r.attempts)return[2,{data:null,error:"Too Many Attempts"}];if(!r.salt)return[2,{data:null,error:"No Salt Value Stored"}];e.label=5;case 5:return e.trys.push([5,11,,12]),[4,pbkdf2Promisified(n,r.salt,{iterations:25e3,keylen:512,digestAlgorithm:"sha256"})];case 6:return(o=e.sent(),scmp(o,Buffer.from(r.hash,"hex")))?(r.last=new Date,r.attempts=0,[4,user_collection_1.Users.updateOne({_id:r._id},{$set:{last:r.last,attempts:r.attempts}})]):[3,8];case 7:return e.sent(),[2,{data:r,error:""}];case 8:return r.last=new Date,r.attempts=r.attempts+1,[4,user_collection_1.Users.updateOne({_id:r._id},{$set:{last:r.last,attempts:r.attempts}})];case 9:return e.sent(),5<=r.attempts?[2,{data:null,error:"Too Many Attempts"}]:[2,{data:null,error:"Invalid Username And Password"}];case 10:return[3,12];case 11:throw(t=e.sent()).message="Error in User Authenticate: ".concat(JSON.stringify(r,null,2)," - ").concat(t.message),t;case 12:return[2]}})})},MongoManagerUserCollection.prototype.serializeUser=function(){return function(e,o){o(null,e.username)}},MongoManagerUserCollection.prototype.deserializeUser=function(){var e=this;return function(o){return __awaiter(e,void 0,void 0,function(){return __generator(this,function(e){return[2,user_collection_1.Users.findOne({username:o})]})})}},MongoManagerUserCollection.prototype.setPassword=function(r,n){return __awaiter(this,void 0,void 0,function(){var o,t;return __generator(this,function(e){switch(e.label){case 0:if(r)return[3,1];throw new Error("Error In User Set Password: No User");case 1:if(n)return[3,2];throw new Error("Error In User Set Password: No Password");case 2:return[4,randomBytes(32)];case 3:o=e.sent(),o=o.toString("hex"),e.label=4;case 4:return e.trys.push([4,6,,7]),[4,pbkdf2Promisified(n,o,{iterations:25e3,keylen:512,digestAlgorithm:"sha256"})];case 5:return t=e.sent(),t=Buffer.from(t,"binary").toString("hex"),[2,user_collection_1.Users.updateOne({_id:r._id},{$set:{hash:t,salt:o,services:{},attempts:0}})];case 6:throw(t=e.sent()).message="Error in User Set Password: ".concat(JSON.stringify(r,null,2)," - ").concat(t.message),t;case 7:return[2]}})})},MongoManagerUserCollection.prototype.changePassword=function(t,r,n){return __awaiter(this,void 0,void 0,function(){var o;return __generator(this,function(e){switch(e.label){case 0:if(t)return[3,1];throw new Error("Error in User Change Password: Missing User");case 1:if(r&&n)return[3,2];throw new Error("Error in User Change Password: Missing Password");case 2:return[4,this.authenticate(t,r)];case 3:if((o=e.sent()).data)return[2,this.setPassword(t,n)];throw o.error;case 4:return[2]}})})},MongoManagerUserCollection.prototype.register=function(o,t){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:if(o.username)return[3,1];throw new Error("Error in User Register: Missing Username");case 1:return[4,user_collection_1.Users.findOne({username:o.username})];case 2:if(e.sent())throw new Error("Error in User Register: Username Exists");return[3,3];case 3:return[4,user_collection_1.Users.findOne({email:o.email})];case 4:if(e.sent())throw new Error("Error in User Register: Email Exists");return o.setPassword(t),[2,o];case 5:return[2]}})})},MongoManagerUserCollection.prototype.resetAttempts=function(e){return user_collection_1.Users.updateOne({_id:e._id},{$set:{attempts:0}})},MongoManagerUserCollection}(exports.MongoManagerCollection=MongoManagerCollection);function pbkdf2(e,o,t,r){crypto.pbkdf2(e,o,t.iterations,t.keylen,t.digestAlgorithm,r)}function pbkdf2Promisified(e,o,n){return new Promise(function(t,r){return pbkdf2(e,o,n,function(e,o){return e?r(e):t(o)})})}function randomBytes(e){return new Promise(function(t,r){return crypto.randomBytes(e,function(e,o){return e?r(e):t(o)})})}exports.MongoManagerUserCollection=MongoManagerUserCollection;
|
|
1
|
+
"use strict";var __extends=this&&this.__extends||function(){var t=function(e,o){return(t=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,o){e.__proto__=o}:function(e,o){for(var t in o)Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t])}))(e,o)};return function(e,o){if("function"!=typeof o&&null!==o)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");function __(){this.constructor=e}t(e,o),e.prototype=null===o?Object.create(o):(__.prototype=o.prototype,new __)}}(),__assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var o,t=1,r=arguments.length;t<r;t++)for(var n in o=arguments[t])Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,r,n,s){return new(n=n||Promise)(function(t,o){function fulfilled(e){try{step(s.next(e))}catch(e){o(e)}}function rejected(e){try{step(s.throw(e))}catch(e){o(e)}}function step(e){var o;e.done?t(e.value):((o=e.value)instanceof n?o:new n(function(e){e(o)})).then(fulfilled,rejected)}step((s=s.apply(e,r||[])).next())})},__generator=this&&this.__generator||function(r,n){var s,i,a,c={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function verb(t){return function(e){var o=[t,e];if(s)throw new TypeError("Generator is already executing.");for(;c=l&&o[l=0]?0:c;)try{if(s=1,i&&(a=2&o[0]?i.return:o[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,o[1])).done)return a;switch(i=0,(o=a?[2&o[0],a.value]:o)[0]){case 0:case 1:a=o;break;case 4:return c.label++,{value:o[1],done:!1};case 5:c.label++,i=o[1],o=[0];continue;case 7:o=c.ops.pop(),c.trys.pop();continue;default:if(!(a=0<(a=c.trys).length&&a[a.length-1])&&(6===o[0]||2===o[0])){c=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]<a[3]))c.label=o[1];else if(6===o[0]&&c.label<a[1])c.label=a[1],a=o;else{if(!(a&&c.label<a[2])){a[2]&&c.ops.pop(),c.trys.pop();continue}c.label=a[2],c.ops.push(o)}}o=n.call(r,c)}catch(e){o=[6,e],i=0}finally{s=a=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}}},__rest=this&&this.__rest||function(e,o){var t={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&o.indexOf(n)<0&&(t[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)o.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(t[n[r]]=e[n[r]]);return t},__read=this&&this.__read||function(e,o){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var r,n,s=t.call(e),i=[];try{for(;(void 0===o||0<o--)&&!(r=s.next()).done;)i.push(r.value)}catch(e){n={error:e}}finally{try{r&&!r.done&&(t=s.return)&&t.call(s)}finally{if(n)throw n.error}}return i},__spreadArray=this&&this.__spreadArray||function(e,o,t){if(t||2===arguments.length)for(var r,n=0,s=o.length;n<s;n++)!r&&n in o||((r=r||Array.prototype.slice.call(o,0,n))[n]=o[n]);return e.concat(r||Array.prototype.slice.call(o))},__values=this&&this.__values||function(e){var o="function"==typeof Symbol&&Symbol.iterator,t=o&&e[o],r=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&r>=e.length?void 0:e)&&e[r++],done:!e}}};throw new TypeError(o?"Object is not iterable.":"Symbol.iterator is not defined.")},NodeCache=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.MongoManagerUserCollection=exports.MongoManagerCollection=exports.MongoManagerModel=exports.MongoManager=void 0,require("node-cache")),os_1=require("os"),simpl_schema_1=require("simpl-schema"),user_collection_1=require("../collections/user.collection"),resolveio_server_app_1=require("../resolveio-server-app"),common_1=require("../util/common"),monitor_manager_1=require("./monitor.manager"),crypto=require("crypto"),scmp=require("scmp"),numCPUs=(0,os_1.cpus)().length,v8=require("v8"),AsyncLocalStorage=require("async_hooks").AsyncLocalStorage,asyncLocalStorage=new AsyncLocalStorage,MongoManager=function(){function MongoManager(){this._collections=[],this._cacheMap=[],this._operationInProgress=new Map,this._heapSize=v8.getHeapStatistics()/numCPUs,this._serverCollections=[],this._isWorkersEnabled=!1,this._isWorkerInstance=!1}return MongoManager.create=function(){return __awaiter(this,void 0,void 0,function(){var o;return __generator(this,function(e){switch(e.label){case 0:return[4,(o=new MongoManager).initialize()];case 1:return e.sent(),[2,o]}})})},MongoManager.prototype.initialize=function(){return __awaiter(this,void 0,void 0,function(){var o;return __generator(this,function(e){switch(e.label){case 0:return this._nodeCache=new NodeCache({stdTTL:0,checkperiod:0}),this._isWorkersEnabled="true"===process.env.IS_WORKERS_ENABLED,this._isWorkerInstance="true"===process.env.IS_WORKER_INSTANCE,this.setCacheLimit(),this._isWorkersEnabled&&this._isWorkerInstance&&this.setupChangeStream(),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().listCollections().toArray()];case 1:return o=e.sent(),this._serverCollections=o,[2]}})})},MongoManager.prototype.oneTimeTransaction=function(s){var e=this;return asyncLocalStorage.run({},function(){return __awaiter(e,void 0,void 0,function(){var o,t,r,n=this;return __generator(this,function(e){switch(e.label){case 0:o=resolveio_server_app_1.ResolveIOServer.getMongoConnection().startSession(),asyncLocalStorage.getStore().session=o,e.label=1;case 1:return e.trys.push([1,,3,5]),[4,o.withTransaction(function(){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,s()];case 1:return[2,t=e.sent()]}})})})];case 2:return e.sent(),[2,t];case 3:return[4,o.endSession()];case 4:return e.sent(),(r=asyncLocalStorage.getStore())&&delete r.session,[7];case 5:return[2]}})})})},MongoManager.prototype.getSession=function(){var e=asyncLocalStorage.getStore();return e?e.session:null},MongoManager.prototype.setCacheLimit=function(){this._isWorkersEnabled?this._heapLimit=this._isWorkerInstance?.8*this._heapSize:.4*this._heapSize:this._heapLimit=.3*this._heapSize},MongoManager.prototype.getServerCollections=function(){return this._serverCollections},MongoManager.prototype.registerCollection=function(o){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return o.collectionOptions&&o.collectionOptions.timeseries&&o.collectionOptions.timeseries.timeField&&this._serverCollections.some(function(e){return e.name===o.collectionName&&"collection"===e.type})?[4,resolveio_server_app_1.ResolveIOServer.getMainDB().dropCollection(o.collectionName)]:[3,3];case 1:return e.sent(),[4,this.createCollection(o)];case 2:e.sent(),e.label=3;case 3:return this._collections.push(o),[2]}})})},MongoManager.prototype.createCollection=function(o){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().createCollection(o.collectionName,o.collectionOptions)];case 1:return e.sent(),[2]}})})},MongoManager.prototype.collections=function(){return this._collections},MongoManager.prototype.collection=function(o){return this._collections.find(function(e){return e.collectionName===o})},MongoManager.prototype.delay=function(o){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){return[2,new Promise(function(e){return setTimeout(e,o)})]})})},MongoManager.prototype.find=function(s,i,a){return void 0===i&&(i={}),__awaiter(this,void 0,void 0,function(){var o,t,r,n=this;return __generator(this,function(e){switch(e.label){case 0:return((t=a||{}).session,t=__rest(t,["session"]),o=this.generateCacheKey([s],"find",[i,t]),void 0!==(t=this.getFromCache(o)))?(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Find - Cache",s),[2,t]):this._operationInProgress.has(o)?(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Find - Already running",s),[2,this._operationInProgress.get(o).promise]):(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Find - Running",s),r=this.executeFind(s,i,a,o),this._operationInProgress.set(o,{promise:r,invalidatedDuringExecution:!1,collections:[s]}),[4,r.finally(function(){resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Find - Done",s),n._operationInProgress.delete(o)})]);case 1:return e.sent(),[2,r]}})})},MongoManager.prototype.executeFind=function(i,a,c,l){return __awaiter(this,void 0,void 0,function(){var o,t,r,n,s;return __generator(this,function(e){switch(e.label){case 0:t=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(i),(r=c||{}).session,r=__rest(r,["session"]),n=monitor_manager_1.MonitorMongo.create("find",i,JSON.stringify([a,r])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,t.find(a,c).toArray()];case 2:return o=e.sent(),[3,6];case 3:throw s=e.sent(),console.log(JSON.stringify([new Date,"Error Execute Find",i,a,r,{code:s.code,codeName:s.codeName,message:s.message,stack:s.stack}],null,2)),s.message="Error in Execute Find: ".concat(i," => ").concat(s.codeName||"NoCodeName"," => ").concat(s.message),s;case 4:return[4,n.finish()];case 5:return e.sent(),[7];case 6:return this._operationInProgress.get(l).invalidatedDuringExecution||this.addToCache([i],l,o),[2,o]}})})},MongoManager.prototype.findOne=function(s,i,a){return void 0===i&&(i={}),__awaiter(this,void 0,void 0,function(){var o,t,r,n=this;return __generator(this,function(e){switch(e.label){case 0:return((t=a||{}).session,t=__rest(t,["session"]),o=this.generateCacheKey([s],"findOne",[i,t]),void 0!==(t=this.getFromCache(o)))?(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo FindOne - Cache",s),[2,t]):this._operationInProgress.has(o)?(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo FindOne - Already running",s),[2,this._operationInProgress.get(o).promise]):(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo FindOne - Running",s),r=this.executeFindOne(s,i,a,o),this._operationInProgress.set(o,{promise:r,invalidatedDuringExecution:!1,collections:[s]}),[4,r.finally(function(){resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo FindOne - Done",s),n._operationInProgress.delete(o)})]);case 1:return e.sent(),[2,r]}})})},MongoManager.prototype.executeFindOne=function(i,a,c,l){return __awaiter(this,void 0,void 0,function(){var o,t,r,n,s;return __generator(this,function(e){switch(e.label){case 0:t=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(i),(r=c||{}).session,r=__rest(r,["session"]),n=monitor_manager_1.MonitorMongo.create("findOne",i,JSON.stringify([a,r])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,t.findOne(a,c)];case 2:return o=e.sent(),[3,6];case 3:throw s=e.sent(),console.log(JSON.stringify([new Date,"Error Execute Find One",i,a,r,{code:s.code,codeName:s.codeName,message:s.message,stack:s.stack}],null,2)),s.message="Error in Execute Find One: ".concat(i," => ").concat(s.codeName||"NoCodeName"," => ").concat(s.message),s;case 4:return[4,n.finish()];case 5:return e.sent(),[7];case 6:return this._operationInProgress.get(l).invalidatedDuringExecution||this.addToCache([i],l,o),[2,o]}})})},MongoManager.prototype.aggregate=function(i,a,c){return __awaiter(this,void 0,void 0,function(){var o,t,r,n,s=this;return __generator(this,function(e){switch(e.label){case 0:return(o=__spreadArray([i],__read(a.flatMap(function(e){var o;return null!=(o=e.$lookup)&&o.from?[e.$lookup.from]:[]})),!1),(r=c||{}).session,r=__rest(r,["session"]),t=this.generateCacheKey(o,"aggregate",[a,r]),void 0!==(r=this.getFromCache(t)))?(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Agg - Cache",o),[2,r]):this._operationInProgress.has(t)?(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Agg - Already running",o),[2,this._operationInProgress.get(t).promise]):(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Agg - Running",o),n=this.executeAggregate(i,a,c,t,o),this._operationInProgress.set(t,{promise:n,invalidatedDuringExecution:!1,collections:o}),[4,n.finally(function(){resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Agg - Done",o),s._operationInProgress.delete(t)})]);case 1:return e.sent(),[2,n]}})})},MongoManager.prototype.executeAggregate=function(i,a,c,l,g){return __awaiter(this,void 0,void 0,function(){var o,t,r,n,s;return __generator(this,function(e){switch(e.label){case 0:t=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(i),(r=c||{}).session,r=__rest(r,["session"]),n=monitor_manager_1.MonitorMongo.create("aggregate",i,JSON.stringify([a,r])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,t.aggregate(a,c).toArray()];case 2:return o=e.sent(),[3,6];case 3:throw s=e.sent(),console.log(JSON.stringify([new Date,"Error Execute Aggregate",i,a,g,r,{code:s.code,codeName:s.codeName,message:s.message,stack:s.stack}],null,2)),s.message="Error in Execute Aggregate: ".concat(i," => ").concat(s.codeName||"NoCodeName"," => ").concat(s.message),s;case 4:return[4,n.finish()];case 5:return e.sent(),[7];case 6:return this._operationInProgress.get(l).invalidatedDuringExecution||this.addToCache(g,l,o),[2,o]}})})},MongoManager.prototype.countDocuments=function(s,i,a){return void 0===i&&(i={}),__awaiter(this,void 0,void 0,function(){var o,t,r,n=this;return __generator(this,function(e){switch(e.label){case 0:return((t=a||{}).session,t=__rest(t,["session"]),o=this.generateCacheKey([s],"countDocuments",[i,t]),void 0!==(t=this.getFromCache(o)))?[2,t]:this._operationInProgress.has(o)?[2,this._operationInProgress.get(o).promise]:(r=this.executeCountDocuments(s,i,a,o),this._operationInProgress.set(o,{promise:r,invalidatedDuringExecution:!1,collections:[s]}),[4,r.finally(function(){return n._operationInProgress.delete(o)})]);case 1:return e.sent(),[2,r]}})})},MongoManager.prototype.executeCountDocuments=function(i,a,c,l){return __awaiter(this,void 0,void 0,function(){var o,t,r,n,s;return __generator(this,function(e){switch(e.label){case 0:t=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(i),(r=c||{}).session,r=__rest(r,["session"]),n=monitor_manager_1.MonitorMongo.create("countDocuments",i,JSON.stringify([a,r])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,t.countDocuments(a,c)];case 2:return o=e.sent(),[3,6];case 3:throw s=e.sent(),console.log(JSON.stringify([new Date,"Error Execute Count Documents",i,a,r,{code:s.code,codeName:s.codeName,message:s.message,stack:s.stack}],null,2)),s.message="Error in Execute Count Documents: ".concat(i," => ").concat(s.codeName||"NoCodeName"," => ").concat(s.message),s;case 4:return[4,n.finish()];case 5:return e.sent(),[7];case 6:return this._operationInProgress.get(l).invalidatedDuringExecution||this.addToCache([i],l,o),[2,o]}})})},MongoManager.prototype.generateCacheKey=function(e,o,t){e=JSON.stringify({collections:e,functionName:o,args:t});return crypto.createHash("sha256").update(e).digest("hex")},MongoManager.prototype.getFromCache=function(o){try{var e=this._nodeCache.get(o);if(e)return JSON.parse(e,common_1.dateReviver)}catch(e){this._nodeCache.del(o)}},MongoManager.prototype.addToCache=function(e,o,t){var r,n;if((0,common_1.getBinarySize)(JSON.stringify(t))<1e6&&!e.includes("logs")&&!e.find(function(e){return e.endsWith(".versions")})&&!e.find(function(e){return e.startsWith("monitor-")})){var s=this._nodeCache.getStats().vsize;if(s>this._heapLimit){var i=0,a=this._nodeCache.keys();try{for(var c=__values(a),l=c.next();!l.done;l=c.next()){var g=l.value;if(this._nodeCache.del(g),i+=1,(s=this._nodeCache.getStats().vsize)<.75*this._heapLimit)break}}catch(e){r={error:e}}finally{try{l&&!l.done&&(n=c.return)&&n.call(c)}finally{if(r)throw r.error}}console.log("Query Cache: Too Big, - Deleted: "+i+" - "+s)}this._nodeCache.set(o,JSON.stringify(t)),this._cacheMap.push({collections:e,key:o})}},MongoManager.prototype.invalidateQueryCache=function(o){var t,e,r,n,s=this._cacheMap.filter(function(e){return e.collections.includes(o)});resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Invalidate Cache",o);try{for(var i=__values(s),a=i.next();!a.done;a=i.next()){var c=a.value;this._nodeCache.del(c.key),this._operationInProgress.has(c.key)&&(this._operationInProgress.get(c.key).invalidatedDuringExecution=!0,resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager())&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Invalidated During Execution",c.collections)}}catch(e){t={error:e}}finally{try{a&&!a.done&&(e=i.return)&&e.call(i)}finally{if(t)throw t.error}}try{for(var l=__values(this._operationInProgress.entries()),g=l.next();!g.done;g=l.next()){var _=__read(g.value,2),d=(_[0],_[1]);d.collections.includes(o)&&(d.invalidatedDuringExecution=!0,resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager())&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&console.log(new Date,"Mongo Invalidated During Execution (No cache)",d.collections)}}catch(e){r={error:e}}finally{try{g&&!g.done&&(n=l.return)&&n.call(l)}finally{if(r)throw r.error}}this._cacheMap=this._cacheMap.filter(function(e){return!e.collections.includes(o)})},MongoManager.prototype.setupChangeStream=function(){var o=this,t=resolveio_server_app_1.ResolveIOServer.getMainDB().watch([{$match:{$and:[{"ns.coll":{$nin:["log-method-latencies","log-subscriptions","logs","counters","cron-job-histories","email-histories","qb-soap-request-histories","qb-soap-request-responses","qb-soap-requests","qb-soap-retries"]}},{"ns.coll":{$not:/.*\.versions$/}},{"ns.coll":{$not:/^monitor-/}}]}}],{fullDocument:"updateLookup"});t.on("change",function(e){e.ns&&e.ns.coll&&(e=e.ns.coll,o.collection(e))&&o.invalidateQueryCache(e)}),t.on("error",function(){return __awaiter(o,void 0,void 0,function(){var o=this;return __generator(this,function(e){switch(e.label){case 0:return console.log(new Date,"Mongo change stream error. Restart..."),[4,t.close()];case 1:return e.sent(),setTimeout(function(){return o.setupChangeStream()},5e3),[2]}})})}),t.on("close",function(){console.log(new Date,"Mongo change stream closed. Restarting..."),setTimeout(function(){return o.setupChangeStream()},5e3)})},MongoManager}(),MongoManagerModel=(exports.MongoManager=MongoManager,function(){function MongoManagerModel(){this.collection_main=null,this.collection_version=null}return MongoManagerModel.create=function(e){var o=new MongoManagerModel;return o.initialize(e),o},MongoManagerModel.prototype.initialize=function(e){var o,t=this;"users"===e.collectionName?this.collection_main=MongoManagerUserCollection.create(e):this.collection_main=MongoManagerCollection.create(e),e.useVersionCollection&&(this.collection_main.useVersions=!0,(o=(0,common_1.deepCopy)(e.schema))._id.type="Object",o._id.blackbox=!0,o={collectionName:e.collectionName+".versions",schema:o,useVersionCollection:!1,useReportBuilder:!1,reportBuilderLookupTables:[],timestamps:!0,createLogs:!1,checkSchema:!1,collectionOptions:null,skipCache:!0},"users"===e.collectionName?this.collection_version=MongoManagerUserCollection.create(o):this.collection_version=MongoManagerCollection.create(o),setImmediate(function(){return __awaiter(t,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.collection_version.createIndex({"_id._id":1,"_id.__v":1})];case 1:return e.sent(),[2]}})})}),this.collection_main.versionCollection=e.collectionName+".versions")},MongoManagerModel}()),MongoManagerCollection=(exports.MongoManagerModel=MongoManagerModel,function(){function MongoManagerCollection(){this.collectionName="",this.checkSchema=!1,this.simplschema=null,this.rbSchema=null,this.timestamps=!1,this.useVersions=!1,this.versionCollection="",this.createLogs=!0,this.useRB=!1,this.skipCache=!1,this.bypassSession=!1}return MongoManagerCollection.create=function(e){var o=new MongoManagerCollection;return o.initialize(e),o},MongoManagerCollection.prototype.initialize=function(e){var o,t=this,r=(this.collectionName=e.collectionName,this.simplschema=new simpl_schema_1.default(e.schema),this.timestamps=e.timestamps,this.createLogs=e.createLogs,this.checkSchema=e.checkSchema,this.collectionOptions=e.collectionOptions,this.skipCache=e.skipCache||!1,this.bypassSession=e.bypassSession||!1,e.useReportBuilder&&(this.useRB=!0,o=(0,common_1.deepCopy)(e.schema),e=(0,common_1.buildRbLookups)(e.reportBuilderLookupTables,o,[]),this.rbSchema=(0,common_1.buildRbSchema)(e)),setInterval(function(){return __awaiter(t,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return resolveio_server_app_1.ResolveIOServer&&resolveio_server_app_1.ResolveIOServer.getMainServer()&&resolveio_server_app_1.ResolveIOServer.getMongoManager()&&resolveio_server_app_1.ResolveIOServer.getMongoManager().getServerCollections().length?[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().registerCollection(this)]:[3,2];case 1:e.sent(),clearInterval(r),e.label=2;case 2:return[2]}})})},1))},MongoManagerCollection.prototype.extractIndexNameFromError=function(e){var o=e.match(/Index already exists with a different name: (\S+)/);return(o=!o||o.length<=1?e.match(/existing index:.*name: "([^"]+)"/):o)&&1<o.length?o[1]:null},MongoManagerCollection.prototype.aggregate=function(s,i,a,c){return void 0===a&&(a=!1),void 0===c&&(c=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n;return __generator(this,function(e){switch(e.label){case 0:return!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||c||this.bypassSession||i&&(i.readPreference&&"primary"!==i.readPreference||i.session)||(i?i.session=o:i={session:o}),a||this.skipCache?[3,1]:[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().aggregate(this.collectionName,s,i)];case 1:(o=i||{}).session,t=__rest(o,["session"]),r=monitor_manager_1.MonitorMongo.create("aggregate",this.collectionName,JSON.stringify([s,t])),e.label=2;case 2:return e.trys.push([2,4,5,7]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).aggregate(s,i).toArray()];case 3:return[2,e.sent()];case 4:throw n=e.sent(),console.log(JSON.stringify([new Date,"Error Aggregate",this.collectionName,s,t,{code:n.code,codeName:n.codeName,message:n.message,stack:n.stack}],null,2)),n.message="Error in Aggregate: ".concat(this.collectionName," => ").concat(n.codeName||"NoCodeName"," => ").concat(n.message),n;case 5:return[4,r.finish()];case 6:return e.sent(),[7];case 7:return[2]}})})},MongoManagerCollection.prototype.aggregateCount=function(n,s,i){return void 0===i&&(i=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||i||this.bypassSession||s&&(s.readPreference&&"primary"!==s.readPreference||s.session)||(s?s.session=o:s={session:o}),(o=s||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("aggregateCount",this.collectionName,JSON.stringify([n,o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).aggregate(n,s).toArray()];case 2:return[2,e.sent().length];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Aggregate Count",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Aggregate Count: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.aggregateCursor=function(e,o,t){var r=this,n=(void 0===t&&(t=!1),resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession()),t=(!n||t||this.bypassSession||o&&(o.readPreference&&"primary"!==o.readPreference||o.session)||(o?o.session=n:o={session:n}),o||{}),n=(t.session,__rest(t,["session"])),s=monitor_manager_1.MonitorMongo.create("aggregateCursor",this.collectionName,JSON.stringify([e,n])),t=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).aggregate(e,o);return t.on("close",function(o){return __awaiter(r,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,s.finish()];case 1:return e.sent(),[2,o]}})})}),t},MongoManagerCollection.prototype.aggregateStream=function(e,o,t,r){var n=this,s=(void 0===r&&(r=!1),resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession()),r=(!s||r||this.bypassSession||o&&(o.readPreference&&"primary"!==o.readPreference||o.session)||(o?o.session=s:o={session:s}),o||{}),s=(r.session,__rest(r,["session"])),i=monitor_manager_1.MonitorMongo.create("aggregateStream",this.collectionName,JSON.stringify([e,s,t]));return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).aggregate(e,o).stream(t).on("close",function(o){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,i.finish()];case 1:return e.sent(),[2,o]}})})})},MongoManagerCollection.prototype.bulkWrite=function(N,I,w,b,R,C){return void 0===w&&(w=!1),void 0===b&&(b=!1),void 0===R&&(R=!1),void 0===C&&(C=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i,a,c,l,g,_,d,u,v,p,m,h,f,O,S,y,M;return __generator(this,function(e){switch(e.label){case 0:if(!N.length)return[2,null];o=1e3,t=0,!(n=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||C||this.bypassSession||I&&(I.readPreference&&"primary"!==I.readPreference||I.session)||(I?I.session=n:I={session:n}),r=(n=I||{}).session,n=__rest(n,["session"]),e.label=1;case 1:if(!(t<N.length))return[3,27];s=N.slice(t,t+o),i=[],a=[];try{for(y=void 0,c=__values(s),l=c.next();!l.done;l=c.next()){if(g=l.value,_=Object.keys(g)[0],d=g[_],this.checkSchema&&!w){if(u=this.simplschema.newContext(),v=void 0,"insertOne"===_)v=u.validate(d.document);else if("replaceOne"===_)v=u.validate(d.replacement);else if("updateOne"===_||"updateMany"===_)v=u.validate(d.update,{modifier:!0});else{if("deleteOne"!==_&&"deleteMany"!==_)throw new Error("Unsupported operation type: ".concat(_));v=!0}if(!v)throw new Error("Schema validation failed for ".concat(_,": ").concat(JSON.stringify(u.validationErrors(),null,2)))}if("insertOne"===_)this.timestamps&&(d.document.createdAt||(d.document.createdAt=new Date),d.document.updatedAt||(d.document.updatedAt=new Date)),!b&&this.createLogs&&i.push({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:d.document._id||(0,common_1.objectIdHexString)(),payload:(0,common_1.getBinarySize)(JSON.stringify(d.document))<1e6?JSON.stringify(d.document,null,2):"Too Big",method:"insertOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}),g[_].document=d.document;else if("updateOne"===_||"updateMany"===_)this.timestamps&&(d.update.$set||(d.update.$set={}),d.update.$set.updatedAt=new Date),!R&&this.useVersions&&(d.update.$inc||(d.update.$inc={}),d.update.$inc.__v=1),!b&&this.createLogs&&i.push({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:d.filter._id||null,payload:(0,common_1.getBinarySize)(JSON.stringify(d.update))<1e6?JSON.stringify(d.update,null,2):"Too Big",method:_,id_user:"",user:"",messageId:0,route:"",createdAt:new Date}),!R&&this.useVersions&&a.push({filter:d.filter});else if("replaceOne"===_)this.timestamps&&(d.replacement.updatedAt=new Date),!R&&this.useVersions&&(d.replacement.__v=(d.replacement.__v||0)+1),!b&&this.createLogs&&i.push({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:d.filter._id||null,payload:(0,common_1.getBinarySize)(JSON.stringify(d.replacement))<1e6?JSON.stringify(d.replacement,null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}),!R&&this.useVersions&&a.push({filter:d.filter}),g[_].replacement=d.replacement;else{if("deleteOne"!==_&&"deleteMany"!==_)throw new Error("Unsupported operation type: ".concat(_));!b&&this.createLogs&&i.push({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:d.filter._id||null,payload:(0,common_1.getBinarySize)(JSON.stringify(d.filter))<1e6?JSON.stringify(d.filter,null,2):"Too Big",method:_,id_user:"",user:"",messageId:0,route:"",createdAt:new Date}),!R&&this.useVersions&&a.push({filter:d.filter})}}}catch(e){y={error:e}}finally{try{l&&!l.done&&(M=c.return)&&M.call(c)}finally{if(y)throw y.error}}if(p=[],!(!R&&this.useVersions&&0<a.length))return[3,10];e.label=2;case 2:return(e.trys.push([2,9,,10]),(f=a.map(function(e){return e.filter})).length)?[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName).find({$or:f},{session:r}).toArray()]:[3,4];case 3:p=e.sent(),e.label=4;case 4:if(!(0<(m=p.map(function(e){return{insertOne:{document:__assign(__assign({},e),{_id:{_id:e._id,__v:e.__v}})}}})).length))return[3,8];e.label=5;case 5:return e.trys.push([5,7,,8]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.versionCollection).bulkWrite(m)];case 6:return e.sent(),[3,8];case 7:return e.sent(),[3,8];case 8:return[3,10];case 9:return e.sent(),[3,10];case 10:h=monitor_manager_1.MonitorMongo.create("bulkWrite",this.collectionName,JSON.stringify([s,n])),e.label=11;case 11:return e.trys.push([11,13,14,16]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName).bulkWrite(s,I)];case 12:return e.sent(),[3,16];case 13:throw f=e.sent(),console.log(JSON.stringify([new Date,"Error Bulk Write",this.collectionName,N,n,{code:f.code,codeName:f.codeName,message:f.message,stack:f.stack}],null,2)),f.message="Error in Bulk Write: ".concat(this.collectionName," => ").concat(f.codeName||"NoCodeName"," => ").concat(f.message),f;case 14:return[4,h.finish()];case 15:return e.sent(),[7];case 16:if(!b&&this.createLogs&&0<i.length){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,17];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLogs(i.map(function(e){return{type:"log",data:e}}))}return[3,19];case 17:return O={session:r,ordered:!1},[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").bulkWrite(i.map(function(e){return{insertOne:{document:e}}}),O)];case 18:e.sent(),e.label=19;case 19:if(R||!this.useVersions)return[3,25];e.label=20;case 20:return e.trys.push([20,24,,25]),O=p.map(function(e){return e._id}),S=[{$match:{"_id._id":{$in:O}}},{$sort:{"_id._id":1,"_id.__v":-1}},{$group:{_id:"$_id._id",versions:{$push:"$_id"}}},{$project:{versionsToDelete:{$slice:["$versions",5,{$size:"$versions"}]}}},{$unwind:"$versionsToDelete"},{$replaceRoot:{newRoot:{_id:"$versionsToDelete"}}}],[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.versionCollection).aggregate(S).toArray()];case 21:return 0<(S=e.sent()).length?[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.versionCollection).deleteMany({_id:{$in:S.map(function(e){return e._id})}})]:[3,23];case 22:e.sent(),e.label=23;case 23:return[3,25];case 24:return e.sent(),[3,25];case 25:return t+=o,[4,new Promise(function(e){return setImmediate(e)})];case 26:return e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[3,1];case 27:return[2,{ok:1}]}})})},MongoManagerCollection.prototype.countDocuments=function(n,s,i){return void 0===n&&(n={}),void 0===i&&(i=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:return((o=s||{}).session,o=__rest(o,["session"]),0===Object.keys(n).length)?[2,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).estimatedDocumentCount(o)]:[3,1];case 1:return i||this.skipCache?[3,2]:[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().countDocuments(this.collectionName,n,o)];case 2:t=monitor_manager_1.MonitorMongo.create("countDocuments",this.collectionName,JSON.stringify([n,o])),e.label=3;case 3:return e.trys.push([3,5,6,8]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).countDocuments(n,o)];case 4:return[2,e.sent()];case 5:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Count Documents",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Count Documents: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 6:return[4,t.finish()];case 7:return e.sent(),[7];case 8:return[2]}})})},MongoManagerCollection.prototype.create=function(e,o){return Array.isArray(e)?1===e.length?this.insertOne(e[0],o):this.insertMany(e,o):this.insertOne(e,o)},MongoManagerCollection.prototype.createIndex=function(r,n){return __awaiter(this,void 0,void 0,function(){var o,t;return __generator(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,(o=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions)).indexes()];case 1:return t=e.sent(),t.some(function(e){return JSON.stringify(e.key)===JSON.stringify(r)})?[2,"Index already exists"]:[2,o.createIndex(r,n)];case 2:return e.sent(),[3,3];case 3:return[2,"Index creation queued"]}})})},MongoManagerCollection.prototype.createIndexes=function(r,n){return __awaiter(this,void 0,void 0,function(){var o,t;return __generator(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,(o=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions)).indexes()];case 1:return t=e.sent(),0===r.filter(function(o){return!t.some(function(e){return JSON.stringify(e.key)===JSON.stringify(o.key)})}).length?[2,["All indexes already exist"]]:[2,o.createIndexes(r,n)];case 2:return e.sent(),[3,3];case 3:return[2,["Index creation queued"]]}})})},MongoManagerCollection.prototype.deleteMany=function(l,g,_,d){return void 0===l&&(l={}),void 0===_&&(_=!1),void 0===d&&(d=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i,a,c;return __generator(this,function(e){switch(e.label){case 0:return(!(t=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||d||this.bypassSession||g&&(g.readPreference&&"primary"!==g.readPreference||g.session)||(g?g.session=t:g={session:t}),o=(t=g||{}).session,t=__rest(t,["session"]),this.createLogs&&!_||this.useVersions)?[4,this.find(l,{session:o})]:[3,11];case 1:r=e.sent(),n=0,e.label=2;case 2:if(!(n<r.length))return[3,11];if(s=r[n],this.createLogs&&!_){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,3];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:s._id,payload:(0,common_1.getBinarySize)(JSON.stringify([s,l,t]))<1e6?JSON.stringify([s,l,t],null,2):"Too Big",method:"deleteMany",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,5];case 3:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:s._id,payload:(0,common_1.getBinarySize)(JSON.stringify([s,l,t]))<1e6?JSON.stringify([s,l,t],null,2):"Too Big",method:"deleteMany",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:o})];case 4:e.sent(),e.label=5;case 5:if(!this.useVersions)return[3,10];e.label=6;case 6:return e.trys.push([6,9,,10]),(a=(0,common_1.deepCopy)(s))._id={_id:s._id,__v:s.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:s._id,__v:s.__v}},a,{upsert:!0})];case 7:return e.sent(),[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).deleteMany({$and:[{"_id._id":s._id},{"_id.__v":{$lt:s.__v-1}}]})];case 8:return e.sent(),[3,10];case 9:return e.sent(),[3,10];case 10:return n++,[3,2];case 11:i=monitor_manager_1.MonitorMongo.create("deleteMany",this.collectionName,JSON.stringify([l,t])),e.label=12;case 12:return e.trys.push([12,14,15,17]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).deleteMany(l,g)];case 13:return a=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,a];case 14:throw c=e.sent(),console.log(JSON.stringify([new Date,"Error Delete Many",this.collectionName,l,t,{code:c.code,codeName:c.codeName,message:c.message,stack:c.stack}],null,2)),c.message="Error in Delete Many: ".concat(this.collectionName," => ").concat(c.codeName||"NoCodeName"," => ").concat(c.message),c;case 15:return[4,i.finish()];case 16:return e.sent(),[7];case 17:return[2]}})})},MongoManagerCollection.prototype.deleteOne=function(c,l,g,_){return void 0===c&&(c={}),void 0===g&&(g=!1),void 0===_&&(_=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i,a;return __generator(this,function(e){switch(e.label){case 0:if(!(t=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||_||this.bypassSession||l&&(l.readPreference&&"primary"!==l.readPreference||l.session)||(l?l.session=t:l={session:t}),o=(t=l||{}).session,t=__rest(t,["session"]),!this.createLogs||g)return[3,17];s=monitor_manager_1.MonitorMongo.create("findOneAndDelete",this.collectionName,JSON.stringify([c,t])),e.label=1;case 1:return e.trys.push([1,13,14,16]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).deleteOne(c,l)];case 2:return i=e.sent(),[4,this.findOne(c,l)];case 3:if(!(r=e.sent()))return[3,12];if(this.createLogs&&!g){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,4];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:r._id,payload:(0,common_1.getBinarySize)(JSON.stringify([r,c,t]))<1e6?JSON.stringify([r,c,t],null,2):"Too Big",method:"deleteOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,6];case 4:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:r._id,payload:(0,common_1.getBinarySize)(JSON.stringify([r,c,t]))<1e6?JSON.stringify([r,c,t],null,2):"Too Big",method:"deleteOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:o})];case 5:e.sent(),e.label=6;case 6:if(!this.useVersions)return[3,11];e.label=7;case 7:return e.trys.push([7,10,,11]),(n=(0,common_1.deepCopy)(r))._id={_id:r._id,__v:r.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:r._id,__v:r.__v}},n,{upsert:!0})];case 8:return e.sent(),[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).deleteMany({$and:[{"_id._id":r._id},{"_id.__v":{$lt:r.__v-1}}]})];case 9:return e.sent(),[3,11];case 10:return e.sent(),[3,11];case 11:this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),e.label=12;case 12:return[2,i];case 13:throw n=e.sent(),console.log(JSON.stringify([new Date,"Error Delete One (Find One And Delete)",this.collectionName,c,t,{code:n.code,codeName:n.codeName,message:n.message,stack:n.stack}],null,2)),n.message="Error in Delete One (Find One And Delete): ".concat(this.collectionName," => ").concat(n.codeName||"NoCodeName"," => ").concat(n.message),n;case 14:return[4,s.finish()];case 15:return e.sent(),[7];case 16:return[3,23];case 17:s=monitor_manager_1.MonitorMongo.create("deleteOne",this.collectionName,JSON.stringify([c,t])),e.label=18;case 18:return e.trys.push([18,20,21,23]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).deleteOne(c,l)];case 19:return i=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,i];case 20:throw a=e.sent(),console.log(JSON.stringify([new Date,"Error Delete One",this.collectionName,c,t,{code:a.code,codeName:a.codeName,message:a.message,stack:a.stack}],null,2)),a.message="Error in Delete One: ".concat(this.collectionName," => ").concat(a.codeName||"NoCodeName"," => ").concat(a.message),a;case 21:return[4,s.finish()];case 22:return e.sent(),[7];case 23:return[2]}})})},MongoManagerCollection.prototype.distinct=function(n,s,i,a){return void 0===a&&(a=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||a||this.bypassSession||i&&(i.readPreference&&"primary"!==i.readPreference||i.session)||(i?i.session=o:i={session:o}),(o=i||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("distinct",this.collectionName,JSON.stringify([n,s,o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).distinct(n,s,i)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Distinct",this.collectionName,s,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Distinct: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.drop=function(n,s){return void 0===s&&(s=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||s||this.bypassSession||n&&(n.readPreference&&"primary"!==n.readPreference||n.session)||(n?n.session=o:n={session:o}),(o=n||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("drop",this.collectionName,JSON.stringify([o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).drop(n)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Drop Collection",this.collectionName,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Drop Collection: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.dropIndex=function(n,s,i){return void 0===i&&(i=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||i||this.bypassSession||s&&(s.readPreference&&"primary"!==s.readPreference||s.session)||(s?s.session=o:s={session:o}),(o=s||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("dropIndex",this.collectionName,JSON.stringify([n,o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).dropIndex(n,s)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Drop Index",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Drop Index: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.dropIndexes=function(n,s){return void 0===s&&(s=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||s||this.bypassSession||n&&(n.readPreference&&"primary"!==n.readPreference||n.session)||(n?n.session=o:n={session:o}),(o=n||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("dropIndexes",this.collectionName,JSON.stringify([o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).dropIndexes(n)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Drop Indexes",this.collectionName,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Drop Indexes: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.find=function(n,s,i,a){return void 0===n&&(n={}),void 0===i&&(i=!1),void 0===a&&(a=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:return!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||a||this.bypassSession||s&&(s.readPreference&&"primary"!==s.readPreference||s.session)||(s?s.session=o:s={session:o}),(o=s||{}).session,o=__rest(o,["session"]),i||this.skipCache?[3,1]:[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().find(this.collectionName,n,s)];case 1:t=monitor_manager_1.MonitorMongo.create("find",this.collectionName,JSON.stringify([n,o])),e.label=2;case 2:return e.trys.push([2,4,5,7]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).find(n,s).toArray()];case 3:return[2,e.sent()];case 4:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Find",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Find: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 5:return[4,t.finish()];case 6:return e.sent(),[7];case 7:return[2]}})})},MongoManagerCollection.prototype.findById=function(n,s,i,a){return void 0===i&&(i=!1),void 0===a&&(a=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:return!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||a||this.bypassSession||s&&(s.readPreference&&"primary"!==s.readPreference||s.session)||(s?s.session=o:s={session:o}),(o=s||{}).session,o=__rest(o,["session"]),i||this.skipCache?[3,1]:[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().findOne(this.collectionName,{_id:n},s)];case 1:t=monitor_manager_1.MonitorMongo.create("findById",this.collectionName,JSON.stringify([{_id:n},o])),e.label=2;case 2:return e.trys.push([2,4,5,7]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).findOne({_id:n},s)];case 3:return[2,e.sent()];case 4:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Find By ID",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Find By ID: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 5:return[4,t.finish()];case 6:return e.sent(),[7];case 7:return[2]}})})},MongoManagerCollection.prototype.findCount=function(n,s,i){return void 0===n&&(n={}),void 0===i&&(i=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||i||this.bypassSession||s&&(s.readPreference&&"primary"!==s.readPreference||s.session)||(s?s.session=o:s={session:o}),(o=s||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("findCount",this.collectionName,JSON.stringify([n,o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).find(n,s).count()];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Find Count",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Find Count: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.findCursor=function(e,o,t){var r=this,n=(void 0===e&&(e={}),void 0===t&&(t=!1),resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession()),t=(!n||t||this.bypassSession||o&&(o.readPreference&&"primary"!==o.readPreference||o.session)||(o?o.session=n:o={session:n}),o||{}),n=(t.session,__rest(t,["session"])),s=monitor_manager_1.MonitorMongo.create("findCursor",this.collectionName,JSON.stringify([e,n])),i=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).find(e,o);return i.on("close",function(o){return __awaiter(r,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,s.finish()];case 1:return e.sent(),i.removeAllListeners(),[2,o]}})})}),i},MongoManagerCollection.prototype.findStream=function(e,o,t,r){var n=this,s=(void 0===e&&(e={}),void 0===r&&(r=!1),resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession()),r=(!s||r||this.bypassSession||o&&(o.readPreference&&"primary"!==o.readPreference||o.session)||(o?o.session=s:o={session:s}),o||{}),s=(r.session,__rest(r,["session"])),i=monitor_manager_1.MonitorMongo.create("findStream",this.collectionName,JSON.stringify([e,s,t]));return resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).find(e,o).stream(t).on("close",function(o){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,i.finish()];case 1:return e.sent(),[2,o]}})})})},MongoManagerCollection.prototype.findOne=function(s,i,a,c){return void 0===s&&(s={}),void 0===a&&(a=!1),void 0===c&&(c=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n;return __generator(this,function(e){switch(e.label){case 0:return!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||c||this.bypassSession||i&&(i.readPreference&&"primary"!==i.readPreference||i.session)||(i?i.session=o:i={session:o}),a||this.skipCache?[3,1]:[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().findOne(this.collectionName,s,i)];case 1:(o=i||{}).session,t=__rest(o,["session"]),r=monitor_manager_1.MonitorMongo.create("findOne",this.collectionName,JSON.stringify([s,t])),e.label=2;case 2:return e.trys.push([2,4,5,7]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).findOne(s,i)];case 3:return[2,e.sent()];case 4:throw n=e.sent(),console.log(JSON.stringify([new Date,"Error Find One",this.collectionName,s,t,{code:n.code,codeName:n.codeName,message:n.message,stack:n.stack}],null,2)),n.message="Error in Find One: ".concat(this.collectionName," => ").concat(n.codeName||"NoCodeName"," => ").concat(n.message),n;case 5:return[4,r.finish()];case 6:return e.sent(),[7];case 7:return[2]}})})},MongoManagerCollection.prototype.findOneAndDelete=function(i,a,c,l){return void 0===i&&(i={}),void 0===c&&(c=!1),void 0===l&&(l=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s;return __generator(this,function(e){switch(e.label){case 0:!(t=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||l||this.bypassSession||a&&(a.readPreference&&"primary"!==a.readPreference||a.session)||(a?a.session=t:a={session:t}),o=(t=a||{}).session,t=__rest(t,["session"]),r=monitor_manager_1.MonitorMongo.create("findOneAndDelete",this.collectionName,JSON.stringify([i,t])),e.label=1;case 1:return e.trys.push([1,12,13,15]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).findOneAndDelete(i,a)];case 2:if(n=e.sent(),!(n=n.value))return[3,10];if(this.createLogs&&!c){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,3];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:n._id,payload:(0,common_1.getBinarySize)(JSON.stringify([n,i,t]))<1e6?JSON.stringify([n,i,t],null,2):"Too Big",method:"findOneAndDelete",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,5];case 3:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:n._id,payload:(0,common_1.getBinarySize)(JSON.stringify([n,i,t]))<1e6?JSON.stringify([n,i,t],null,2):"Too Big",method:"findOneAndDelete",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:o})];case 4:e.sent(),e.label=5;case 5:if(!this.useVersions)return[3,9];e.label=6;case 6:return e.trys.push([6,8,,9]),(s=(0,common_1.deepCopy)(n))._id={_id:n._id,__v:n.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:n._id,__v:n.__v}},s,{upsert:!0})];case 7:return e.sent(),[3,9];case 8:return e.sent(),[3,9];case 9:return this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,n];case 10:return[2,null];case 11:return[3,15];case 12:throw s=e.sent(),console.log(JSON.stringify([new Date,"Error Find One And Delete",this.collectionName,i,t,{code:s.code,codeName:s.codeName,message:s.message,stack:s.stack}],null,2)),s.message="Error in Find One And Delete: ".concat(this.collectionName," => ").concat(s.codeName||"NoCodeName"," => ").concat(s.message),s;case 13:return[4,r.finish()];case 14:return e.sent(),[7];case 15:return[2]}})})},MongoManagerCollection.prototype.findOneAndReplace=function(a,c,l,g,_,d){return void 0===a&&(a={}),void 0===g&&(g=!1),void 0===_&&(_=!1),void 0===d&&(d=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i;return __generator(this,function(e){switch(e.label){case 0:return!this.checkSchema||_?[3,2]:(o=this.simplschema.newContext(),o.validate(c)?[3,2]:(console.log(new Date,this.collectionName,"Schema Errors - findOneAndReplace",o.validationErrors()),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethod("insertErrorLog","Schema Failed on findOneAndReplace - "+this.collectionName,JSON.stringify([o.validationErrors(),c],null,2))]));case 1:throw e.sent(),new Error(JSON.stringify(o.validationErrors(),null,2));case 2:r=new Date,this.timestamps&&(c.updatedAt=r),l&&l.upsert&&(c._id||(c._id=(0,common_1.objectIdHexString)()),this.useVersions&&(c.__v=0),this.timestamps)&&!c.createdAt&&(c.createdAt=r),!(r=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||d||this.bypassSession||l&&(l.readPreference&&"primary"!==l.readPreference||l.session)||(l?l.session=r:l={session:r}),t=(r=l||{}).session,r=__rest(r,["session"]),n=monitor_manager_1.MonitorMongo.create("findOneAndReplace",this.collectionName,JSON.stringify([a,c,r])),e.label=3;case 3:return e.trys.push([3,14,15,17]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).findOneAndReplace(a,c,l)];case 4:if(s=e.sent(),!(s=s.value))return[3,12];if(this.createLogs&&!g){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,5];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:s._id,payload:(0,common_1.getBinarySize)(JSON.stringify([s,a,c,r]))<1e6?JSON.stringify([s,a,c,r],null,2):"Too Big",method:"findOneAndReplace",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,7];case 5:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:s._id,payload:(0,common_1.getBinarySize)(JSON.stringify([s,a,c,r]))<1e6?JSON.stringify([s,a,c,r],null,2):"Too Big",method:"findOneAndReplace",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:t})];case 6:e.sent(),e.label=7;case 7:if(!this.useVersions)return[3,11];e.label=8;case 8:return e.trys.push([8,10,,11]),(i=(0,common_1.deepCopy)(s))._id={_id:s._id,__v:s.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:s._id,__v:s.__v}},i,{upsert:!0})];case 9:return e.sent(),[3,11];case 10:return e.sent(),[3,11];case 11:return this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,s];case 12:return[2,null];case 13:return[3,17];case 14:throw i=e.sent(),console.log(JSON.stringify([new Date,"Error Find One And Replace",this.collectionName,a,r,{code:i.code,codeName:i.codeName,message:i.message,stack:i.stack}],null,2)),i.message="Error in Find One And Replace: ".concat(this.collectionName," => ").concat(i.codeName||"NoCodeName"," => ").concat(i.message),i;case 15:return[4,n.finish()];case 16:return e.sent(),[7];case 17:return[2]}})})},MongoManagerCollection.prototype.findOneAndUpdate=function(c,l,g,_,d,u){return void 0===c&&(c={}),void 0===_&&(_=!1),void 0===d&&(d=!1),void 0===u&&(u=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i,a;return __generator(this,function(e){switch(e.label){case 0:return!this.checkSchema||d?[3,2]:(o=this.simplschema.newContext(),o.validate(l,{modifier:!0})?[3,2]:(console.log(new Date,this.collectionName,"Schema Errors - findOneAndUpdate",o.validationErrors()),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethod("insertErrorLog","Schema Failed on findOneAndUpdate - "+this.collectionName,JSON.stringify([o.validationErrors(),l],null,2))]));case 1:throw e.sent(),new Error(JSON.stringify(o.validationErrors(),null,2));case 2:this.timestamps&&(t=new Date,l.$set?l.$set.updatedAt=t:l.$set={updatedAt:t}),g&&g.upsert&&(l.$setOnInsert?(l.$setOnInsert._id||(l.$setOnInsert._id=(0,common_1.objectIdHexString)()),this.timestamps&&!l.$setOnInsert.createdAt&&(l.$setOnInsert.createdAt=new Date)):this.timestamps?l.$setOnInsert={_id:(0,common_1.objectIdHexString)(),createdAt:new Date}:l.$setOnInsert={_id:(0,common_1.objectIdHexString)()}),!(t=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||u||this.bypassSession||g&&(g.readPreference&&"primary"!==g.readPreference||g.session)||(g?g.session=t:g={session:t}),r=(n=g||{}).session,n=__rest(n,["session"]),s=monitor_manager_1.MonitorMongo.create("findOneAndUpdate",this.collectionName,JSON.stringify([c,l,n])),e.label=3;case 3:return e.trys.push([3,14,15,17]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).findOneAndUpdate(c,l,g)];case 4:if(i=e.sent(),!(i=i.value))return[3,12];if(this.createLogs&&!_){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,5];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:i._id,payload:(0,common_1.getBinarySize)(JSON.stringify([i,c,l,n]))<1e6?JSON.stringify([i,c,l,n],null,2):"Too Big",method:"findOneAndUpdate",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,7];case 5:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:i._id,payload:(0,common_1.getBinarySize)(JSON.stringify([i,c,l,n]))<1e6?JSON.stringify([i,c,l,n],null,2):"Too Big",method:"findOneAndUpdate",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:r})];case 6:e.sent(),e.label=7;case 7:if(!this.useVersions)return[3,11];e.label=8;case 8:return e.trys.push([8,10,,11]),(a=(0,common_1.deepCopy)(i))._id={_id:i._id,__v:i.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:i._id,__v:i.__v}},a,{upsert:!0})];case 9:return e.sent(),[3,11];case 10:return e.sent(),[3,11];case 11:return this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,i];case 12:return[2,null];case 13:return[3,17];case 14:throw a=e.sent(),console.log(JSON.stringify([new Date,"Error Find One And Update",this.collectionName,c,n,{code:a.code,codeName:a.codeName,message:a.message,stack:a.stack}],null,2)),a.message="Error in Find One And Update: ".concat(this.collectionName," => ").concat(a.codeName||"NoCodeName"," => ").concat(a.message),a;case 15:return[4,s.finish()];case 16:return e.sent(),[7];case 17:return[2]}})})},MongoManagerCollection.prototype.indexes=function(n){return __awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:(o=n||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("indexes",this.collectionName,JSON.stringify([o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).indexes(n)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Indexes",this.collectionName,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Indexes: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.indexExists=function(n,s){return __awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:(o=s||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("indexExists",this.collectionName,JSON.stringify([n,o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).indexExists(n,s)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Index Exists",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Index Exists: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.insertMany=function(v,p,m,h,f,O){return void 0===m&&(m=!1),void 0===h&&(h=!1),void 0===f&&(f=!1),void 0===O&&(O=!1),__awaiter(this,void 0,void 0,function(){var t,o,r,n,s,i,a,c,l,g,_,d,u;return __generator(this,function(e){switch(e.label){case 0:if(!v.length)return[2,[]];if(t=[],!this.checkSchema||h)return[3,9];e.label=1;case 1:e.trys.push([1,7,8,9]),o=__values(v),r=o.next(),e.label=2;case 2:return r.done?[3,6]:(l=r.value,n=this.simplschema.newContext(),n.validate(l)?[3,4]:(console.log(new Date,this.collectionName,"Schema Errors - insertMany",n.validationErrors()),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethod("insertErrorLog","Schema Failed on insertMany - "+this.collectionName,JSON.stringify([n.validationErrors(),l],null,2))]));case 3:return e.sent(),t.push(!1),[3,5];case 4:t.push(!0),e.label=5;case 5:return r=o.next(),[3,2];case 6:return[3,9];case 7:return n=e.sent(),d={error:n},[3,9];case 8:try{r&&!r.done&&(u=o.return)&&u.call(o)}finally{if(d)throw d.error}return[7];case 9:s=this.checkSchema?v.filter(function(e,o){return t[o]}):v,!(a=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||O||this.bypassSession||p&&(p.readPreference&&"primary"!==p.readPreference||p.session)||(p?p.session=a:p={session:a}),i=(a=p||{}).session,a=__rest(a,["session"]),c=0,e.label=10;case 10:if(!(c<s.length))return[3,14];if((l=s[c])._id||(l._id=(0,common_1.objectIdHexString)()),this.timestamps&&(_=new Date,l.createdAt||(l.createdAt=_),l.updatedAt||(l.updatedAt=_)),this.useVersions&&!l.hasOwnProperty("__v")&&(l.__v=0),this.createLogs&&!m){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,11];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:l._id,payload:(0,common_1.getBinarySize)(JSON.stringify([l,a]))<1e6?JSON.stringify([l,a],null,2):"Too Big",method:"insertMany",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,13];case 11:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:l._id,payload:(0,common_1.getBinarySize)(JSON.stringify([l,a]))<1e6?JSON.stringify([l,a],null,2):"Too Big",method:"insertMany",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:i})];case 12:e.sent(),e.label=13;case 13:return c++,[3,10];case 14:if(!s.length)return[3,19];g=null,f||(g=monitor_manager_1.MonitorMongo.create("insertMany",this.collectionName,JSON.stringify([s,a]))),e.label=15;case 15:return e.trys.push([15,17,18,19]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).insertMany(s,p)];case 16:return e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,s];case 17:throw _=e.sent(),console.log(JSON.stringify([new Date,"Error Insert Many",this.collectionName,v,a,{code:_.code,codeName:_.codeName,message:_.message,stack:_.stack}],null,2)),_.message="Error in Insert Many: ".concat(this.collectionName," => ").concat(_.codeName||"NoCodeName"," => ").concat(_.message),_;case 18:return g&&g.finish(),[7];case 19:return[2,[]]}})})},MongoManagerCollection.prototype.insertOne=function(a,c,l,g,_){return void 0===l&&(l=!1),void 0===g&&(g=!1),void 0===_&&(_=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i;return __generator(this,function(e){switch(e.label){case 0:return(a._id||(a._id=(0,common_1.objectIdHexString)()),!this.checkSchema||g)?[3,2]:(o=this.simplschema.newContext(),o.validate(a)?[3,2]:(console.log(new Date,this.collectionName,"Schema Errors - insertOne",o.validationErrors()),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethod("insertErrorLog","Schema Failed on insertOne - "+this.collectionName,JSON.stringify([o.validationErrors(),a],null,2))]));case 1:throw e.sent(),new Error(JSON.stringify(o.validationErrors(),null,2));case 2:if(this.timestamps&&(t=new Date,a.createdAt||(a.createdAt=t),a.updatedAt||(a.updatedAt=t)),!(t=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||_||this.bypassSession||c&&(c.readPreference&&"primary"!==c.readPreference||c.session)||(c?c.session=t:c={session:t}),r=(n=c||{}).session,n=__rest(n,["session"]),this.createLogs&&!l){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,3];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:a._id,payload:(0,common_1.getBinarySize)(JSON.stringify([a,n]))<1e6?JSON.stringify([a,n],null,2):"Too Big",method:"insertOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,5];case 3:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:a._id,payload:(0,common_1.getBinarySize)(JSON.stringify([a,n]))<1e6?JSON.stringify([a,n],null,2):"Too Big",method:"insertOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:r})];case 4:e.sent(),e.label=5;case 5:this.useVersions&&!a.hasOwnProperty("__v")&&(a.__v=0),s=monitor_manager_1.MonitorMongo.create("insertOne",this.collectionName,JSON.stringify([a,n])),e.label=6;case 6:return e.trys.push([6,8,9,11]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).insertOne(a,c)];case 7:return e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,a];case 8:throw i=e.sent(),console.log(JSON.stringify([new Date,"Error Insert One",this.collectionName,a,n,{code:i.code,codeName:i.codeName,message:i.message,stack:i.stack}],null,2)),i.message="Error in Insert One: ".concat(this.collectionName," => ").concat(i.codeName||"NoCodeName"," => ").concat(i.message),i;case 9:return[4,s.finish()];case 10:return e.sent(),[7];case 11:return[2]}})})},MongoManagerCollection.prototype.listIndexes=function(e,o){var t=this,r=(void 0===o&&(o=!1),resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession()),o=(!r||o||this.bypassSession||e&&(e.readPreference&&"primary"!==e.readPreference||e.session)||(e?e.session=r:e={session:r}),e||{}),r=(o.session,__rest(o,["session"])),n=monitor_manager_1.MonitorMongo.create("listIndexes",this.collectionName,JSON.stringify([r])),o=resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).listIndexes(e);return o.on("close",function(o){return __awaiter(t,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,n.finish()];case 1:return e.sent(),[2,o]}})})}),o},MongoManagerCollection.prototype.rename=function(n,s,i){return void 0===i&&(i=!1),__awaiter(this,void 0,void 0,function(){var o,t,r;return __generator(this,function(e){switch(e.label){case 0:!(o=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||i||this.bypassSession||s&&(s.readPreference&&"primary"!==s.readPreference||s.session)||(s?s.session=o:s={session:o}),(o=s||{}).session,o=__rest(o,["session"]),t=monitor_manager_1.MonitorMongo.create("rename",this.collectionName,JSON.stringify([n,o])),e.label=1;case 1:return e.trys.push([1,3,4,6]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).rename(n,s)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.log(JSON.stringify([new Date,"Error Rename",this.collectionName,n,o,{code:r.code,codeName:r.codeName,message:r.message,stack:r.stack}],null,2)),r.message="Error in Rename: ".concat(this.collectionName," => ").concat(r.codeName||"NoCodeName"," => ").concat(r.message),r;case 4:return[4,t.finish()];case 5:return e.sent(),[7];case 6:return[2]}})})},MongoManagerCollection.prototype.replaceOne=function(m,h,f,O,S,y,M){return void 0===O&&(O=!1),void 0===S&&(S=!1),void 0===y&&(y=null),void 0===M&&(M=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i,a,c,l,g,_,d,u,v,p;return __generator(this,function(e){switch(e.label){case 0:return!this.checkSchema||S?[3,2]:(o=this.simplschema.newContext(),o.validate(h)?[3,2]:(console.log(new Date,this.collectionName,"Schema Errors - replaceOne",o.validationErrors()),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethod("insertErrorLog","Schema Failed on replaceOne - "+this.collectionName,JSON.stringify([o.validationErrors(),h],null,2))]));case 1:throw e.sent(),new Error(JSON.stringify(o.validationErrors(),null,2));case 2:return(t=new Date,this.timestamps&&(h.updatedAt=t),!(n=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||M||this.bypassSession||f&&(f.readPreference&&"primary"!==f.readPreference||f.session)||(f?f.session=n:f={session:n}),r=(n=f||{}).session,n=__rest(n,["session"]),this.useVersions)?y?[3,4]:[4,this.findOne(m,{session:r},!0)]:[3,45];case 3:y=e.sent(),e.label=4;case 4:if(!y)return[3,33];if(this.timestamps&&!h.createdAt&&y.createdAt&&(h.createdAt=y.createdAt),y.__v!==h.__v)return[3,20];e.label=5;case 5:return e.trys.push([5,9,,10]),h.__v+=1,(s=(0,common_1.deepCopy)(y))._id={_id:y._id,__v:y.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:y._id,__v:y.__v}},s,{upsert:!0})];case 6:return(e.sent(),4<=y.__v)?[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).deleteMany({$and:[{"_id._id":y._id},{"_id.__v":{$lt:y.__v-4}}]})]:[3,8];case 7:e.sent(),e.label=8;case 8:return[3,10];case 9:return e.sent(),[3,10];case 10:if(this.createLogs&&!O){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,11];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:y._id,payload:(0,common_1.getBinarySize)(JSON.stringify([y,m,h,n]))<1e6?JSON.stringify([y,m,h,n],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,13];case 11:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:y._id,payload:(0,common_1.getBinarySize)(JSON.stringify([y,m,h,n]))<1e6?JSON.stringify([y,m,h,n],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:r})];case 12:e.sent(),e.label=13;case 13:u=monitor_manager_1.MonitorMongo.create("replaceOne",this.collectionName,JSON.stringify([m,h,n])),e.label=14;case 14:return e.trys.push([14,16,17,19]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).replaceOne(m,h,f)];case 15:return v=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,v];case 16:throw s=e.sent(),console.log(JSON.stringify([new Date,"Error Replace One",this.collectionName,m,h,n,{code:s.code,codeName:s.codeName,message:s.message,stack:s.stack}],null,2)),s.message="Error in Replace One: ".concat(this.collectionName," => ").concat(s.codeName||"NoCodeName"," => ").concat(s.message),s;case 17:return[4,u.finish()];case 18:return e.sent(),[7];case 19:return[3,32];case 20:return console.log("invalid version - "+this.collectionName,y.__v,h.__v),[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).findOne({_id:{_id:y._id,__v:h.__v}},null,!0)];case 21:if(!(a=e.sent()))return[3,31];if(i=y._id,c=y.__v,(a=(0,common_1.getMongoMergeUpdatedDoc)(h,y,a))._id=i,a.__v=c+1,this.createLogs&&!O){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,22];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:i,payload:(0,common_1.getBinarySize)(JSON.stringify(["invalidVersion - merge",y,m,a,n]))<1e6?JSON.stringify(["invalidVersion - merge",y,m,a,n],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,24];case 22:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:i,payload:(0,common_1.getBinarySize)(JSON.stringify(["invalidVersion - merge",y,m,a,n]))<1e6?JSON.stringify(["invalidVersion - merge",y,m,a,n],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:r})];case 23:e.sent(),e.label=24;case 24:u=monitor_manager_1.MonitorMongo.create("replaceOne",this.collectionName,JSON.stringify([m,a,n])),e.label=25;case 25:return e.trys.push([25,27,28,30]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).replaceOne(m,a,f)];case 26:return v=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,v.acknowledged];case 27:throw c=e.sent(),console.log(JSON.stringify([new Date,"Error Replace One",this.collectionName,m,h,n,{code:c.code,codeName:c.codeName,message:c.message,stack:c.stack}],null,2)),c.message="Error in Replace One: ".concat(this.collectionName," => ").concat(c.codeName||"NoCodeName"," => ").concat(c.message),c;case 28:return[4,u.finish()];case 29:return e.sent(),[7];case 30:return[3,32];case 31:throw new Error("Error in Replace One: Invalid Version And Could Not Find History - DB: "+y.__v+", Trying to update with :"+h.__v);case 32:return[3,44];case 33:if(!f||!f.upsert)return[3,43];if(this.timestamps&&(h.createdAt=t),h._id||(h._id=(0,common_1.objectIdHexString)()),h.__v=0,this.createLogs&&!O){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,34];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:h._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",m,h,n]))<1e6?JSON.stringify(["upsert",m,h,n],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,36];case 34:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:h._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",m,h,n]))<1e6?JSON.stringify(["upsert",m,h,n],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:r})];case 35:e.sent(),e.label=36;case 36:u=monitor_manager_1.MonitorMongo.create("replaceOne",this.collectionName,JSON.stringify([m,h,n])),e.label=37;case 37:return e.trys.push([37,39,40,42]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).replaceOne(m,h,f)];case 38:return v=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,v.acknowledged];case 39:throw l=e.sent(),console.log(JSON.stringify([new Date,"Error Replace One",this.collectionName,m,h,n,{code:l.code,codeName:l.codeName,message:l.message,stack:l.stack}],null,2)),l.message="Error in Replace One: ".concat(this.collectionName," => ").concat(l.codeName||"NoCodeName"," => ").concat(l.message),l;case 40:return[4,u.finish()];case 41:return e.sent(),[7];case 42:return[3,44];case 43:return[2,{acknowledged:!1,matchedCount:0,modifiedCount:0,upsertedCount:0,upsertedId:null}];case 44:return[3,66];case 45:if(f&&f.upsert&&(this.timestamps&&!h.createdAt&&(h.createdAt=t),h._id||(h._id=(0,common_1.objectIdHexString)()),h.__v=0),!this.createLogs||O)return[3,60];f?f.returnDocument="before":f={returnDocument:"before"},g=(l=f||{}).session,_=__rest(l,["session"]),u=monitor_manager_1.MonitorMongo.create("findOneAndReplace",this.collectionName,JSON.stringify([m,h,_])),e.label=46;case 46:return e.trys.push([46,56,57,59]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).replaceOne(m,h,f)];case 47:return v=e.sent(),[4,this.findOne(m,f)];case 48:return(d=e.sent())?"https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL?[3,49]:(resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:d._id,payload:(0,common_1.getBinarySize)(JSON.stringify([d,m,h,_]))<1e6?JSON.stringify([d,m,h,_],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}}),[3,51]):[3,52];case 49:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:d._id,payload:(0,common_1.getBinarySize)(JSON.stringify([d,m,h,_]))<1e6?JSON.stringify([d,m,h,_],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:g})];case 50:e.sent(),e.label=51;case 51:return[3,55];case 52:return"https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL?[3,53]:(resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:h._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",m,h,_]))<1e6?JSON.stringify(["upsert",m,h,_],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}}),[3,55]);case 53:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:h._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",m,h,_]))<1e6?JSON.stringify(["upsert",m,h,_],null,2):"Too Big",method:"replaceOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:g})];case 54:e.sent(),e.label=55;case 55:return this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,v];case 56:throw p=e.sent(),console.log(JSON.stringify([new Date,"Error Replace One (Find One And Replace)",this.collectionName,m,_,{code:p.code,codeName:p.codeName,message:p.message,stack:p.stack}],null,2)),p.message="Error in Replace One (Find One And Replace): ".concat(this.collectionName," => ").concat(p.codeName||"NoCodeName"," => ").concat(p.message),p;case 57:return[4,u.finish()];case 58:return e.sent(),[7];case 59:return[3,66];case 60:u=monitor_manager_1.MonitorMongo.create("replaceOne",this.collectionName,JSON.stringify([m,h,n])),e.label=61;case 61:return e.trys.push([61,63,64,66]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).replaceOne(m,h,f)];case 62:return v=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,v.acknowledged];case 63:throw p=e.sent(),console.log(JSON.stringify([new Date,"Error Replace One",this.collectionName,m,h,n,{code:p.code,codeName:p.codeName,message:p.message,stack:p.stack}],null,2)),p.message="Error in Replace One: ".concat(this.collectionName," => ").concat(p.codeName||"NoCodeName"," => ").concat(p.message),p;case 64:return[4,u.finish()];case 65:return e.sent(),[7];case 66:return[2]}})})},MongoManagerCollection.prototype.updateMany=function(_,d,u,v,p,m,h){return void 0===v&&(v=!1),void 0===p&&(p=!1),void 0===m&&(m=!1),void 0===h&&(h=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i,a,c,l,g;return __generator(this,function(e){switch(e.label){case 0:return(t=!(d.$set||d.$unset||d.$inc||d.$setOnInsert||d.$push||d.$pull||d.$addToSet||d.$min||d.$max||d.$currentDate||d.$mul||d.$rename),t||Object.values(d).every(function(e){return!e||"{}"===JSON.stringify(e)}))?[2,{acknowledged:!1,matchedCount:0,modifiedCount:0,upsertedCount:0,upsertedId:null}]:(this.timestamps&&(t=new Date,d.$set?d.$set.updatedAt=t:d.$set={updatedAt:t}),!this.checkSchema||p||(o=this.simplschema.newContext(),o.validate(d,{modifier:!0}))?[3,2]:(console.log(new Date,this.collectionName,"Schema Errors - updateMany",o.validationErrors()),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethod("insertErrorLog","Schema Failed on updateMany - "+this.collectionName,JSON.stringify([o.validationErrors(),d],null,2))]));case 1:throw e.sent(),new Error(JSON.stringify(o.validationErrors(),null,2));case 2:return(!(t=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||h||this.bypassSession||u&&(u.readPreference&&"primary"!==u.readPreference||u.session)||(u?u.session=t:u={session:t}),r=(n=u||{}).session,n=__rest(n,["session"]),this.useVersions&&!m||this.createLogs&&!v)?[4,this.find(_,{session:r})]:[3,15];case 3:s=e.sent(),i=0,e.label=4;case 4:if(!(i<s.length))return[3,15];if(a=s[i],this.createLogs&&!v){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,5];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:a._id,payload:(0,common_1.getBinarySize)(JSON.stringify([a,_,d,n]))<1e6?JSON.stringify([a,_,d,n],null,2):"Too Big",method:"updateMany",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,7];case 5:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:a._id,payload:(0,common_1.getBinarySize)(JSON.stringify([a,_,d,n]))<1e6?JSON.stringify([a,_,d,n],null,2):"Too Big",method:"updateMany",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:r})];case 6:e.sent(),e.label=7;case 7:if(!this.useVersions)return[3,14];e.label=8;case 8:return e.trys.push([8,12,,13]),(l=(0,common_1.deepCopy)(a))._id={_id:a._id,__v:a.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:a._id,__v:a.__v}},l,{upsert:!0})];case 9:return(e.sent(),4<=a.__v)?[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).deleteMany({$and:[{"_id._id":a._id},{"_id.__v":{$lt:a.__v-4}}]})]:[3,11];case 10:e.sent(),e.label=11;case 11:return[3,13];case 12:return e.sent(),[3,13];case 13:d.$inc||(d.$inc={}),"number"!=typeof d.$inc.__v&&(d.$inc.__v=1),d.$set&&"__v"in d.$set&&(delete d.$set.__v,0===Object.keys(d.$set).length)&&delete d.$set,e.label=14;case 14:return i++,[3,4];case 15:c=monitor_manager_1.MonitorMongo.create("updateMany",this.collectionName,JSON.stringify([_,d,n])),e.label=16;case 16:return e.trys.push([16,18,19,21]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).updateMany(_,d,u)];case 17:return l=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,l];case 18:throw g=e.sent(),console.log(JSON.stringify([new Date,"Error Update Many",this.collectionName,_,d,n,{code:g.code,codeName:g.codeName,message:g.message,stack:g.stack}],null,2)),g.message="Error in Update Many: ".concat(this.collectionName," => ").concat(g.codeName||"NoCodeName"," => ").concat(g.message),g;case 19:return[4,c.finish()];case 20:return e.sent(),[7];case 21:return[2]}})})},MongoManagerCollection.prototype.updateOne=function(g,_,d,u,v,p){return void 0===u&&(u=!1),void 0===v&&(v=!1),void 0===p&&(p=!1),__awaiter(this,void 0,void 0,function(){var o,t,r,n,s,i,a,c,l;return __generator(this,function(e){switch(e.label){case 0:return!this.checkSchema||v?[3,2]:(o=this.simplschema.newContext(),o.validate(_,{modifier:!0})?[3,2]:(console.log(new Date,this.collectionName,"Schema Errors - updateOne",o.validationErrors()),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethod("insertErrorLog","Schema Failed on updateOne - "+this.collectionName,JSON.stringify([o.validationErrors(),_],null,2))]));case 1:throw e.sent(),new Error(JSON.stringify(o.validationErrors(),null,2));case 2:return(n=!(_.$set||_.$unset||_.$inc||_.$setOnInsert||_.$push||_.$pull||_.$addToSet||_.$min||_.$max||_.$currentDate||_.$mul||_.$rename),n||Object.values(_).every(function(e){return!e||"{}"===JSON.stringify(e)}))?[2,{acknowledged:!1,matchedCount:0,modifiedCount:0,upsertedCount:0,upsertedId:null}]:(n=new Date,this.timestamps&&(_.$set?_.$set.updatedAt=n:_.$set={updatedAt:n}),!(n=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())||p||this.bypassSession||d&&(d.readPreference&&"primary"!==d.readPreference||d.session)||(d?d.session=n:d={session:n}),t=(n=d||{}).session,r=__rest(n,["session"]),this.useVersions?[4,this.findOne(g,{session:t},!0)]:[3,30]);case 3:if(!(i=e.sent()))return[3,18];if(this.createLogs&&!u){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,4];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:i._id,payload:(0,common_1.getBinarySize)(JSON.stringify([i,g,_,r]))<1e6?JSON.stringify([i,g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,6];case 4:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:i._id,payload:(0,common_1.getBinarySize)(JSON.stringify([i,g,_,r]))<1e6?JSON.stringify([i,g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:t})];case 5:e.sent(),e.label=6;case 6:return e.trys.push([6,10,,11]),(n=(0,common_1.deepCopy)(i))._id={_id:i._id,__v:i.__v},[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).replaceOne({_id:{_id:i._id,__v:i.__v}},n,{upsert:!0})];case 7:return(e.sent(),4<=i.__v)?[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(this.versionCollection).deleteMany({$and:[{"_id._id":i._id},{"_id.__v":{$lt:i.__v-4}}]})]:[3,9];case 8:e.sent(),e.label=9;case 9:return[3,11];case 10:return e.sent(),[3,11];case 11:_.$inc||(_.$inc={}),"number"!=typeof _.$inc.__v&&(_.$inc.__v=1),_.$set&&"__v"in _.$set&&(delete _.$set.__v,0===Object.keys(_.$set).length)&&delete _.$set,a=monitor_manager_1.MonitorMongo.create("updateOne",this.collectionName,JSON.stringify([g,_,r])),e.label=12;case 12:return e.trys.push([12,14,15,17]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).updateOne(g,_,d)];case 13:return c=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,c];case 14:throw s=e.sent(),console.log(JSON.stringify([new Date,"Error Update One",this.collectionName,g,_,r,{code:s.code,codeName:s.codeName,message:s.message,stack:s.stack}],null,2)),s.message="Error in Update One: ".concat(this.collectionName," => ").concat(s.codeName||"NoCodeName"," => ").concat(s.message),s;case 15:return[4,a.finish()];case 16:return e.sent(),[7];case 17:return[3,29];case 18:if(!d||!d.upsert)return[3,28];if(_.$setOnInsert?(_.$setOnInsert._id||(_.$setOnInsert._id=(0,common_1.objectIdHexString)()),this.timestamps&&!_.$setOnInsert.createdAt&&(_.$setOnInsert.createdAt=new Date)):this.timestamps?_.$setOnInsert={_id:(0,common_1.objectIdHexString)(),__v:0,createdAt:new Date}:_.$setOnInsert={_id:(0,common_1.objectIdHexString)(),__v:0},this.createLogs&&!u){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,19];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:_.$setOnInsert._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",g,_,r]))<1e6?JSON.stringify(["upsert",g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}})}return[3,21];case 19:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:_.$setOnInsert._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",g,_,r]))<1e6?JSON.stringify(["upsert",g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:t})];case 20:e.sent(),e.label=21;case 21:a=monitor_manager_1.MonitorMongo.create("updateOne",this.collectionName,JSON.stringify([g,_,r])),e.label=22;case 22:return e.trys.push([22,24,25,27]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).updateOne(g,_,d)];case 23:return c=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,c];case 24:throw s=e.sent(),console.log(JSON.stringify([new Date,"Error Update One",this.collectionName,g,r,{code:s.code,codeName:s.codeName,message:s.message,stack:s.stack}],null,2)),s.message="Error in Update One: ".concat(this.collectionName," => ").concat(s.codeName||"NoCodeName"," => ").concat(s.message),s;case 25:return[4,a.finish()];case 26:return e.sent(),[7];case 27:return[3,29];case 28:return[2,{acknowledged:!1,matchedCount:0,modifiedCount:0,upsertedCount:0,upsertedId:null}];case 29:return[3,52];case 30:if(d&&d.upsert&&(_.$setOnInsert?(_.$setOnInsert._id||(_.$setOnInsert._id=(0,common_1.objectIdHexString)()),this.timestamps&&!_.$setOnInsert.createdAt&&(_.$setOnInsert.createdAt=new Date)):this.timestamps?_.$setOnInsert={_id:(0,common_1.objectIdHexString)(),createdAt:new Date}:_.$setOnInsert={_id:(0,common_1.objectIdHexString)()}),!this.createLogs||u)return[3,46];d?d.returnDocument="before":d={returnDocument:"before"},a=monitor_manager_1.MonitorMongo.create("findOneAndUpdate",this.collectionName,JSON.stringify([g,_,r])),e.label=31;case 31:return e.trys.push([31,42,43,45]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).updateOne(g,_,d)];case 32:return c=e.sent(),[4,this.findOne(g,d)];case 33:return(i=e.sent())?"https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL?[3,34]:(resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:i._id,payload:(0,common_1.getBinarySize)(JSON.stringify([i,g,_,r]))<1e6?JSON.stringify([i,g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}}),[3,36]):[3,37];case 34:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:i._id,payload:(0,common_1.getBinarySize)(JSON.stringify([i,g,_,r]))<1e6?JSON.stringify([i,g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date},{session:t})];case 35:e.sent(),e.label=36;case 36:return[2,c];case 37:return _.$setOnInsert?"https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL?[3,38]:(resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:_.$setOnInsert._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",g,_,r]))<1e6?JSON.stringify(["upsert",g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date}}),[3,40]):[3,41];case 38:return[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection("logs").insertOne({_id:(0,common_1.objectIdHexString)(),type:"document",collection:this.collectionName,id_document:_.$setOnInsert._id,payload:(0,common_1.getBinarySize)(JSON.stringify(["upsert",g,_,r]))<1e6?JSON.stringify(["upsert",g,_,r],null,2):"Too Big",method:"updateOne",id_user:"",user:"",messageId:0,route:"",createdAt:new Date})];case 39:e.sent(),e.label=40;case 40:this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),e.label=41;case 41:return[2,c];case 42:throw l=e.sent(),console.log(JSON.stringify([new Date,"Error Update One (Find One And Update)",this.collectionName,g,r,{code:l.code,codeName:l.codeName,message:l.message,stack:l.stack}],null,2)),l.message="Error in Update One (Find One And Update): ".concat(this.collectionName," => ").concat(l.codeName||"NoCodeName"," => ").concat(l.message),l;case 43:return[4,a.finish()];case 44:return e.sent(),[7];case 45:return[3,52];case 46:a=monitor_manager_1.MonitorMongo.create("updateOne",this.collectionName,JSON.stringify([g,_,r])),e.label=47;case 47:return e.trys.push([47,49,50,52]),[4,resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).updateOne(g,_,d)];case 48:return c=e.sent(),this.skipCache||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(this.collectionName),[2,c];case 49:throw l=e.sent(),console.log(JSON.stringify([new Date,"Error Update One",this.collectionName,g,_,r,{code:l.code,codeName:l.codeName,message:l.message,stack:l.stack}],null,2)),l.message="Error in Update One: ".concat(this.collectionName," => ").concat(l.codeName||"NoCodeName"," => ").concat(l.message),l;case 50:return[4,a.finish()];case 51:return e.sent(),[7];case 52:return[2]}})})},MongoManagerCollection.prototype.watchCollection=function(e,o,t){void 0===e&&(e=[]),void 0===t&&(t=!1);var r=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession();return!r||t||this.bypassSession||(o?o.session=r:o={session:r}),resolveio_server_app_1.ResolveIOServer.getMainDB().collection(this.collectionName,this.collectionOptions).watch(e,o)},MongoManagerCollection}()),MongoManagerUserCollection=function(e){function MongoManagerUserCollection(){return null!==e&&e.apply(this,arguments)||this}return __extends(MongoManagerUserCollection,e),MongoManagerUserCollection.create=function(e){var o=new MongoManagerUserCollection;return o.initialize(e),o},MongoManagerUserCollection.prototype.authenticate=function(r,n){return __awaiter(this,void 0,void 0,function(){var o,t;return __generator(this,function(e){switch(e.label){case 0:return(o=Math.pow(100,Math.log(r.attempts+1)),o=o<3e5?o:3e5,r.last)?Date.now()-r.last.getTime()<o?(r.last=new Date,[4,user_collection_1.Users.updateOne({_id:r._id},{$set:{last:r.last}})]):[3,2]:[3,3];case 1:return e.sent(),[2,{data:null,error:"Attempt Too Soon"}];case 2:return[3,4];case 3:r.last=new Date,e.label=4;case 4:if(5<=r.attempts)return[2,{data:null,error:"Too Many Attempts"}];if(!r.salt)return[2,{data:null,error:"No Salt Value Stored"}];e.label=5;case 5:return e.trys.push([5,11,,12]),[4,pbkdf2Promisified(n,r.salt,{iterations:25e3,keylen:512,digestAlgorithm:"sha256"})];case 6:return(o=e.sent(),scmp(o,Buffer.from(r.hash,"hex")))?(r.last=new Date,r.attempts=0,[4,user_collection_1.Users.updateOne({_id:r._id},{$set:{last:r.last,attempts:r.attempts}})]):[3,8];case 7:return e.sent(),[2,{data:r,error:""}];case 8:return r.last=new Date,r.attempts=r.attempts+1,[4,user_collection_1.Users.updateOne({_id:r._id},{$set:{last:r.last,attempts:r.attempts}})];case 9:return e.sent(),5<=r.attempts?[2,{data:null,error:"Too Many Attempts"}]:[2,{data:null,error:"Invalid Username And Password"}];case 10:return[3,12];case 11:throw(t=e.sent()).message="Error in User Authenticate: ".concat(JSON.stringify(r,null,2)," - ").concat(t.message),t;case 12:return[2]}})})},MongoManagerUserCollection.prototype.serializeUser=function(){return function(e,o){o(null,e.username)}},MongoManagerUserCollection.prototype.deserializeUser=function(){var e=this;return function(o){return __awaiter(e,void 0,void 0,function(){return __generator(this,function(e){return[2,user_collection_1.Users.findOne({username:o})]})})}},MongoManagerUserCollection.prototype.setPassword=function(r,n){return __awaiter(this,void 0,void 0,function(){var o,t;return __generator(this,function(e){switch(e.label){case 0:if(r)return[3,1];throw new Error("Error In User Set Password: No User");case 1:if(n)return[3,2];throw new Error("Error In User Set Password: No Password");case 2:return[4,randomBytes(32)];case 3:o=e.sent(),o=o.toString("hex"),e.label=4;case 4:return e.trys.push([4,6,,7]),[4,pbkdf2Promisified(n,o,{iterations:25e3,keylen:512,digestAlgorithm:"sha256"})];case 5:return t=e.sent(),t=Buffer.from(t,"binary").toString("hex"),[2,user_collection_1.Users.updateOne({_id:r._id},{$set:{hash:t,salt:o,services:{},attempts:0}})];case 6:throw(t=e.sent()).message="Error in User Set Password: ".concat(JSON.stringify(r,null,2)," - ").concat(t.message),t;case 7:return[2]}})})},MongoManagerUserCollection.prototype.changePassword=function(t,r,n){return __awaiter(this,void 0,void 0,function(){var o;return __generator(this,function(e){switch(e.label){case 0:if(t)return[3,1];throw new Error("Error in User Change Password: Missing User");case 1:if(r&&n)return[3,2];throw new Error("Error in User Change Password: Missing Password");case 2:return[4,this.authenticate(t,r)];case 3:if((o=e.sent()).data)return[2,this.setPassword(t,n)];throw o.error;case 4:return[2]}})})},MongoManagerUserCollection.prototype.register=function(o,t){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:if(o.username)return[3,1];throw new Error("Error in User Register: Missing Username");case 1:return[4,user_collection_1.Users.findOne({username:o.username})];case 2:if(e.sent())throw new Error("Error in User Register: Username Exists");return[3,3];case 3:return[4,user_collection_1.Users.findOne({email:o.email})];case 4:if(e.sent())throw new Error("Error in User Register: Email Exists");return o.setPassword(t),[2,o];case 5:return[2]}})})},MongoManagerUserCollection.prototype.resetAttempts=function(e){return user_collection_1.Users.updateOne({_id:e._id},{$set:{attempts:0}})},MongoManagerUserCollection}(exports.MongoManagerCollection=MongoManagerCollection);function pbkdf2(e,o,t,r){crypto.pbkdf2(e,o,t.iterations,t.keylen,t.digestAlgorithm,r)}function pbkdf2Promisified(e,o,n){return new Promise(function(t,r){return pbkdf2(e,o,n,function(e,o){return e?r(e):t(o)})})}function randomBytes(e){return new Promise(function(t,r){return crypto.randomBytes(e,function(e,o){return e?r(e):t(o)})})}exports.MongoManagerUserCollection=MongoManagerUserCollection;
|
|
2
2
|
//# sourceMappingURL=mongo.manager.js.map
|