@resolveio/server-lib 20.7.2 → 20.7.4

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";Object.defineProperty(exports,"__esModule",{value:!0}),exports.MonitorCPUs=void 0;var resolveio_server_app_1=require("../resolveio-server-app"),mongo_manager_1=require("../managers/mongo.manager"),schema={_id:{type:String,optional:!0},metadata:{type:Object},"metadata.client":{type:String},"metadata.instance":{type:String},date:{type:Date},app:{type:Number},system:{type:Number}};function initializeCollection(){var e;resolveio_server_app_1.ResolveIOServer&&resolveio_server_app_1.ResolveIOServer.getMainDB()&&mongo_manager_1.MongoManagerModel?(e=new mongo_manager_1.MongoManagerModel({collectionName:"monitor-cpus",schema:schema,useVersionCollection:!1,useReportBuilder:!1,reportBuilderLookupTables:[],timestamps:!1,createLogs:!1,checkSchema:!1,collectionOptions:{timeseries:{timeField:"date",granularity:"seconds",metaField:"metadata"},expireAfterSeconds:259200},skipCache:!0}),exports.MonitorCPUs=e.collection_main,exports.MonitorCPUs.createIndex({"metadata.client":1,date:1}),exports.MonitorCPUs.createIndex({"metadata.client":1,"metadata.instance":1,date:1})):setTimeout(function(){initializeCollection()},1)}exports.MonitorCPUs=null,initializeCollection();
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.MonitorCPUs=void 0;var resolveio_server_app_1=require("../resolveio-server-app"),mongo_manager_1=require("../managers/mongo.manager"),schema={_id:{type:String,optional:!0},metadata:{type:Object},"metadata.client":{type:String},"metadata.instance":{type:String},date:{type:Date},app:{type:Number},system:{type:Number}};function initializeCollection(){var e;resolveio_server_app_1.ResolveIOServer&&resolveio_server_app_1.ResolveIOServer.getMainDB()&&mongo_manager_1.MongoManagerModel?(e=new mongo_manager_1.MongoManagerModel({collectionName:"monitor-cpus",schema:schema,useVersionCollection:!1,useReportBuilder:!1,reportBuilderLookupTables:[],timestamps:!1,createLogs:!1,checkSchema:!1,collectionOptions:{timeseries:{timeField:"date",granularity:"seconds",metaField:"metadata"},expireAfterSeconds:259200},skipCache:!0,bypassSession:!0}),exports.MonitorCPUs=e.collection_main,exports.MonitorCPUs.createIndex({"metadata.client":1,date:1}),exports.MonitorCPUs.createIndex({"metadata.client":1,"metadata.instance":1,date:1})):setTimeout(function(){initializeCollection()},1)}exports.MonitorCPUs=null,initializeCollection();
2
2
  //# sourceMappingURL=monitor-cpu.collection.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/collections/monitor-cpu.collection.ts"],"names":["resolveio_server_app_1","require","mongo_manager_1","schema","_id","type","String","optional","metadata","Object","metadata.client","metadata.instance","date","Date","app","Number","system","initializeCollection","model","ResolveIOServer","getMainDB","MongoManagerModel","collectionName","useVersionCollection","useReportBuilder","reportBuilderLookupTables","timestamps","createLogs","checkSchema","collectionOptions","timeseries","timeField","granularity","metaField","expireAfterSeconds","skipCache","exports","MonitorCPUs","collection_main","createIndex","setTimeout"],"mappings":"+FAAA,IAAAA,uBAAAC,QAAA,yBAAA,EACAC,gBAAAD,QAAA,2BAAA,EAGIE,OAAc,CACjBC,IAAK,CACJC,KAAMC,OACNC,SAAU,CAAA,C,EAEXC,SAAU,CACTH,KAAMI,M,EAEPC,kBAAmB,CAClBL,KAAMC,M,EAEPK,oBAAqB,CACpBN,KAAMC,M,EAEPM,KAAM,CACLP,KAAMQ,I,EAEPC,IAAK,CACJT,KAAMU,M,EAEPC,OAAQ,CACPX,KAAMU,M,GAQR,SAASE,uBACR,IACOC,EADHlB,uBAAAmB,iBAAmBnB,uBAAAmB,gBAAgBC,UAAS,GAAMlB,gBAAAmB,mBAC/CH,EAAQ,IAAIhB,gBAAAmB,kBAAmC,CACpDC,eAAgB,eAChBnB,OAAQA,OACRoB,qBAAsB,CAAA,EACtBC,iBAAkB,CAAA,EAClBC,0BAA2B,GAC3BC,WAAY,CAAA,EACZC,WAAY,CAAA,EACZC,YAAa,CAAA,EACbC,kBAAmB,CAClBC,WAAY,CACXC,UAAW,OACXC,YAAa,UACbC,UAAW,U,EAEZC,mBAAoB,M,EAErBC,UAAW,CAAA,C,CACX,EACDC,QAAAC,YAAcnB,EAAMoB,gBACpBF,QAAAC,YAAYE,YAAY,CAAC7B,kBAAmB,EAAGE,KAAM,CAAC,CAAC,EACvDwB,QAAAC,YAAYE,YAAY,CAAC7B,kBAAmB,EAAGC,oBAAqB,EAAGC,KAAM,CAAC,CAAC,GAG/E4B,WAAW,WACVvB,qBAAoB,CACrB,EAAG,CAAC,CAEN,CAlCWmB,QAAAC,YAAuD,KAElEpB,qBAAoB","file":"monitor-cpu.collection.js","sourcesContent":["import { ResolveIOServer } from '../resolveio-server-app';\nimport { MongoManagerCollection, MongoManagerModel } from '../managers/mongo.manager';\nimport { MonitorCPUModel } from '../models/monitor-cpu.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tmetadata: {\n\t\ttype: Object\n\t},\n\t'metadata.client': {\n\t\ttype: String\n\t},\n\t'metadata.instance': {\n\t\ttype: String\n\t},\n\tdate: {\n\t\ttype: Date\n\t},\n\tapp: {\n\t\ttype: Number\n\t},\n\tsystem: {\n\t\ttype: Number\n\t}\n};\n\nexport let MonitorCPUs: MongoManagerCollection<MonitorCPUModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer && ResolveIOServer.getMainDB() && MongoManagerModel) {\n\t\tconst model = new MongoManagerModel<MonitorCPUModel>({\n\t\t\tcollectionName: 'monitor-cpus',\n\t\t\tschema: schema,\n\t\t\tuseVersionCollection: false,\n\t\t\tuseReportBuilder: false,\n\t\t\treportBuilderLookupTables: [],\n\t\t\ttimestamps: false,\n\t\t\tcreateLogs: false,\n\t\t\tcheckSchema: false,\n\t\t\tcollectionOptions: {\n\t\t\t\ttimeseries: {\n\t\t\t\t\ttimeField: 'date',\n\t\t\t\t\tgranularity: 'seconds',\n\t\t\t\t\tmetaField: 'metadata'\n\t\t\t\t},\n\t\t\t\texpireAfterSeconds: 60 * 60 * 24 * 3\n\t\t\t},\n\t\t\tskipCache: true\n\t\t});\n\t\tMonitorCPUs = model.collection_main;\n\t\tMonitorCPUs.createIndex({'metadata.client': 1, date: 1});\n\t\tMonitorCPUs.createIndex({'metadata.client': 1, 'metadata.instance': 1, date: 1});\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 1);\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/collections/monitor-cpu.collection.ts"],"names":["resolveio_server_app_1","require","mongo_manager_1","schema","_id","type","String","optional","metadata","Object","metadata.client","metadata.instance","date","Date","app","Number","system","initializeCollection","model","ResolveIOServer","getMainDB","MongoManagerModel","collectionName","useVersionCollection","useReportBuilder","reportBuilderLookupTables","timestamps","createLogs","checkSchema","collectionOptions","timeseries","timeField","granularity","metaField","expireAfterSeconds","skipCache","bypassSession","exports","MonitorCPUs","collection_main","createIndex","setTimeout"],"mappings":"+FAAA,IAAAA,uBAAAC,QAAA,yBAAA,EACAC,gBAAAD,QAAA,2BAAA,EAGIE,OAAc,CACjBC,IAAK,CACJC,KAAMC,OACNC,SAAU,CAAA,C,EAEXC,SAAU,CACTH,KAAMI,M,EAEPC,kBAAmB,CAClBL,KAAMC,M,EAEPK,oBAAqB,CACpBN,KAAMC,M,EAEPM,KAAM,CACLP,KAAMQ,I,EAEPC,IAAK,CACJT,KAAMU,M,EAEPC,OAAQ,CACPX,KAAMU,M,GAQR,SAASE,uBACR,IACOC,EADHlB,uBAAAmB,iBAAmBnB,uBAAAmB,gBAAgBC,UAAS,GAAMlB,gBAAAmB,mBAC/CH,EAAQ,IAAIhB,gBAAAmB,kBAAmC,CACpDC,eAAgB,eAChBnB,OAAQA,OACRoB,qBAAsB,CAAA,EACtBC,iBAAkB,CAAA,EAClBC,0BAA2B,GAC3BC,WAAY,CAAA,EACZC,WAAY,CAAA,EACZC,YAAa,CAAA,EACbC,kBAAmB,CAClBC,WAAY,CACXC,UAAW,OACXC,YAAa,UACbC,UAAW,U,EAEZC,mBAAoB,M,EAErBC,UAAW,CAAA,EACXC,cAAe,CAAA,C,CACf,EACDC,QAAAC,YAAcpB,EAAMqB,gBACpBF,QAAAC,YAAYE,YAAY,CAAC9B,kBAAmB,EAAGE,KAAM,CAAC,CAAC,EACvDyB,QAAAC,YAAYE,YAAY,CAAC9B,kBAAmB,EAAGC,oBAAqB,EAAGC,KAAM,CAAC,CAAC,GAG/E6B,WAAW,WACVxB,qBAAoB,CACrB,EAAG,CAAC,CAEN,CAnCWoB,QAAAC,YAAuD,KAElErB,qBAAoB","file":"monitor-cpu.collection.js","sourcesContent":["import { ResolveIOServer } from '../resolveio-server-app';\nimport { MongoManagerCollection, MongoManagerModel } from '../managers/mongo.manager';\nimport { MonitorCPUModel } from '../models/monitor-cpu.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tmetadata: {\n\t\ttype: Object\n\t},\n\t'metadata.client': {\n\t\ttype: String\n\t},\n\t'metadata.instance': {\n\t\ttype: String\n\t},\n\tdate: {\n\t\ttype: Date\n\t},\n\tapp: {\n\t\ttype: Number\n\t},\n\tsystem: {\n\t\ttype: Number\n\t}\n};\n\nexport let MonitorCPUs: MongoManagerCollection<MonitorCPUModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer && ResolveIOServer.getMainDB() && MongoManagerModel) {\n\t\tconst model = new MongoManagerModel<MonitorCPUModel>({\n\t\t\tcollectionName: 'monitor-cpus',\n\t\t\tschema: schema,\n\t\t\tuseVersionCollection: false,\n\t\t\tuseReportBuilder: false,\n\t\t\treportBuilderLookupTables: [],\n\t\t\ttimestamps: false,\n\t\t\tcreateLogs: false,\n\t\t\tcheckSchema: false,\n\t\t\tcollectionOptions: {\n\t\t\t\ttimeseries: {\n\t\t\t\t\ttimeField: 'date',\n\t\t\t\t\tgranularity: 'seconds',\n\t\t\t\t\tmetaField: 'metadata'\n\t\t\t\t},\n\t\t\t\texpireAfterSeconds: 60 * 60 * 24 * 3\n\t\t\t},\n\t\t\tskipCache: true,\n\t\t\tbypassSession: true\n\t\t});\n\t\tMonitorCPUs = model.collection_main;\n\t\tMonitorCPUs.createIndex({'metadata.client': 1, date: 1});\n\t\tMonitorCPUs.createIndex({'metadata.client': 1, 'metadata.instance': 1, date: 1});\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 1);\n\t}\n}"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.MonitorFunctions=void 0;var resolveio_server_app_1=require("../resolveio-server-app"),mongo_manager_1=require("../managers/mongo.manager"),schema={_id:{type:String,optional:!0},metadata:{type:Object},"metadata.client":{type:String},"metadata.instance":{type:String},date:{type:Date},type:{type:String},name:{type:String},user:{type:String},duration:{type:Number},data:{type:String}};function initializeCollection(){var e;resolveio_server_app_1.ResolveIOServer&&resolveio_server_app_1.ResolveIOServer.getMainDB()&&mongo_manager_1.MongoManagerModel?(e=new mongo_manager_1.MongoManagerModel({collectionName:"monitor-functions",schema:schema,useVersionCollection:!1,useReportBuilder:!1,reportBuilderLookupTables:[],timestamps:!1,createLogs:!1,checkSchema:!1,collectionOptions:{timeseries:{timeField:"date",granularity:"seconds",metaField:"metadata"},expireAfterSeconds:259200},skipCache:!0}),exports.MonitorFunctions=e.collection_main,exports.MonitorFunctions.createIndex({"metadata.client":1,date:1}),exports.MonitorFunctions.createIndex({"metadata.client":1,"metadata.instance":1,date:1})):setTimeout(function(){initializeCollection()},1)}exports.MonitorFunctions=null,initializeCollection();
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.MonitorFunctions=void 0;var resolveio_server_app_1=require("../resolveio-server-app"),mongo_manager_1=require("../managers/mongo.manager"),schema={_id:{type:String,optional:!0},metadata:{type:Object},"metadata.client":{type:String},"metadata.instance":{type:String},date:{type:Date},type:{type:String},name:{type:String},user:{type:String},duration:{type:Number},data:{type:String}};function initializeCollection(){var e;resolveio_server_app_1.ResolveIOServer&&resolveio_server_app_1.ResolveIOServer.getMainDB()&&mongo_manager_1.MongoManagerModel?(e=new mongo_manager_1.MongoManagerModel({collectionName:"monitor-functions",schema:schema,useVersionCollection:!1,useReportBuilder:!1,reportBuilderLookupTables:[],timestamps:!1,createLogs:!1,checkSchema:!1,collectionOptions:{timeseries:{timeField:"date",granularity:"seconds",metaField:"metadata"},expireAfterSeconds:259200},skipCache:!0,bypassSession:!0}),exports.MonitorFunctions=e.collection_main,exports.MonitorFunctions.createIndex({"metadata.client":1,date:1}),exports.MonitorFunctions.createIndex({"metadata.client":1,"metadata.instance":1,date:1})):setTimeout(function(){initializeCollection()},1)}exports.MonitorFunctions=null,initializeCollection();
2
2
  //# sourceMappingURL=monitor-function.collection.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/collections/monitor-function.collection.ts"],"names":["resolveio_server_app_1","require","mongo_manager_1","schema","_id","type","String","optional","metadata","Object","metadata.client","metadata.instance","date","Date","name","user","duration","Number","data","initializeCollection","model","ResolveIOServer","getMainDB","MongoManagerModel","collectionName","useVersionCollection","useReportBuilder","reportBuilderLookupTables","timestamps","createLogs","checkSchema","collectionOptions","timeseries","timeField","granularity","metaField","expireAfterSeconds","skipCache","exports","MonitorFunctions","collection_main","createIndex","setTimeout"],"mappings":"oGAAA,IAAAA,uBAAAC,QAAA,yBAAA,EACAC,gBAAAD,QAAA,2BAAA,EAGIE,OAAc,CACjBC,IAAK,CACJC,KAAMC,OACNC,SAAU,CAAA,C,EAEXC,SAAU,CACTH,KAAMI,M,EAEPC,kBAAmB,CAClBL,KAAMC,M,EAEPK,oBAAqB,CACpBN,KAAMC,M,EAEPM,KAAM,CACLP,KAAMQ,I,EAEPR,KAAM,CACLA,KAAMC,M,EAEPQ,KAAM,CACLT,KAAMC,M,EAEPS,KAAM,CACLV,KAAMC,M,EAEPU,SAAU,CACTX,KAAMY,M,EAEPC,KAAM,CACLb,KAAMC,M,GAQR,SAASa,uBACR,IACOC,EADHpB,uBAAAqB,iBAAmBrB,uBAAAqB,gBAAgBC,UAAS,GAAMpB,gBAAAqB,mBAC/CH,EAAQ,IAAIlB,gBAAAqB,kBAAwC,CACzDC,eAAgB,oBAChBrB,OAAQA,OACRsB,qBAAsB,CAAA,EACtBC,iBAAkB,CAAA,EAClBC,0BAA2B,GAC3BC,WAAY,CAAA,EACZC,WAAY,CAAA,EACZC,YAAa,CAAA,EACbC,kBAAmB,CAClBC,WAAY,CACXC,UAAW,OACXC,YAAa,UACbC,UAAW,U,EAEZC,mBAAoB,M,EAErBC,UAAW,CAAA,C,CACX,EACDC,QAAAC,iBAAmBnB,EAAMoB,gBACzBF,QAAAC,iBAAiBE,YAAY,CAAC/B,kBAAmB,EAAGE,KAAM,CAAC,CAAC,EAC5D0B,QAAAC,iBAAiBE,YAAY,CAAC/B,kBAAmB,EAAGC,oBAAqB,EAAGC,KAAM,CAAC,CAAC,GAGpF8B,WAAW,WACVvB,qBAAoB,CACrB,EAAG,CAAC,CAEN,CAlCWmB,QAAAC,iBAAiE,KAE5EpB,qBAAoB","file":"monitor-function.collection.js","sourcesContent":["import { ResolveIOServer } from '../resolveio-server-app';\nimport { MongoManagerCollection, MongoManagerModel } from '../managers/mongo.manager';\nimport { MonitorFunctionModel } from '../models/monitor-function.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tmetadata: {\n\t\ttype: Object\n\t},\n\t'metadata.client': {\n\t\ttype: String\n\t},\n\t'metadata.instance': {\n\t\ttype: String\n\t},\n\tdate: {\n\t\ttype: Date\n\t},\n\ttype: {\n\t\ttype: String\n\t},\n\tname: {\n\t\ttype: String\n\t},\n\tuser: {\n\t\ttype: String\n\t},\n\tduration: {\n\t\ttype: Number\n\t},\n\tdata: {\n\t\ttype: String\n\t}\n};\n\nexport let MonitorFunctions: MongoManagerCollection<MonitorFunctionModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer && ResolveIOServer.getMainDB() && MongoManagerModel) {\n\t\tconst model = new MongoManagerModel<MonitorFunctionModel>({\n\t\t\tcollectionName: 'monitor-functions',\n\t\t\tschema: schema,\n\t\t\tuseVersionCollection: false,\n\t\t\tuseReportBuilder: false,\n\t\t\treportBuilderLookupTables: [],\n\t\t\ttimestamps: false,\n\t\t\tcreateLogs: false,\n\t\t\tcheckSchema: false,\n\t\t\tcollectionOptions: {\n\t\t\t\ttimeseries: {\n\t\t\t\t\ttimeField: 'date',\n\t\t\t\t\tgranularity: 'seconds',\n\t\t\t\t\tmetaField: 'metadata'\n\t\t\t\t},\n\t\t\t\texpireAfterSeconds: 60 * 60 * 24 * 3\n\t\t\t},\n\t\t\tskipCache: true\n\t\t});\n\t\tMonitorFunctions = model.collection_main;\n\t\tMonitorFunctions.createIndex({'metadata.client': 1, date: 1});\n\t\tMonitorFunctions.createIndex({'metadata.client': 1, 'metadata.instance': 1, date: 1});\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 1);\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/collections/monitor-function.collection.ts"],"names":["resolveio_server_app_1","require","mongo_manager_1","schema","_id","type","String","optional","metadata","Object","metadata.client","metadata.instance","date","Date","name","user","duration","Number","data","initializeCollection","model","ResolveIOServer","getMainDB","MongoManagerModel","collectionName","useVersionCollection","useReportBuilder","reportBuilderLookupTables","timestamps","createLogs","checkSchema","collectionOptions","timeseries","timeField","granularity","metaField","expireAfterSeconds","skipCache","bypassSession","exports","MonitorFunctions","collection_main","createIndex","setTimeout"],"mappings":"oGAAA,IAAAA,uBAAAC,QAAA,yBAAA,EACAC,gBAAAD,QAAA,2BAAA,EAGIE,OAAc,CACjBC,IAAK,CACJC,KAAMC,OACNC,SAAU,CAAA,C,EAEXC,SAAU,CACTH,KAAMI,M,EAEPC,kBAAmB,CAClBL,KAAMC,M,EAEPK,oBAAqB,CACpBN,KAAMC,M,EAEPM,KAAM,CACLP,KAAMQ,I,EAEPR,KAAM,CACLA,KAAMC,M,EAEPQ,KAAM,CACLT,KAAMC,M,EAEPS,KAAM,CACLV,KAAMC,M,EAEPU,SAAU,CACTX,KAAMY,M,EAEPC,KAAM,CACLb,KAAMC,M,GAQR,SAASa,uBACR,IACOC,EADHpB,uBAAAqB,iBAAmBrB,uBAAAqB,gBAAgBC,UAAS,GAAMpB,gBAAAqB,mBAC/CH,EAAQ,IAAIlB,gBAAAqB,kBAAwC,CACzDC,eAAgB,oBAChBrB,OAAQA,OACRsB,qBAAsB,CAAA,EACtBC,iBAAkB,CAAA,EAClBC,0BAA2B,GAC3BC,WAAY,CAAA,EACZC,WAAY,CAAA,EACZC,YAAa,CAAA,EACbC,kBAAmB,CAClBC,WAAY,CACXC,UAAW,OACXC,YAAa,UACbC,UAAW,U,EAEZC,mBAAoB,M,EAErBC,UAAW,CAAA,EACXC,cAAe,CAAA,C,CACf,EACDC,QAAAC,iBAAmBpB,EAAMqB,gBACzBF,QAAAC,iBAAiBE,YAAY,CAAChC,kBAAmB,EAAGE,KAAM,CAAC,CAAC,EAC5D2B,QAAAC,iBAAiBE,YAAY,CAAChC,kBAAmB,EAAGC,oBAAqB,EAAGC,KAAM,CAAC,CAAC,GAGpF+B,WAAW,WACVxB,qBAAoB,CACrB,EAAG,CAAC,CAEN,CAnCWoB,QAAAC,iBAAiE,KAE5ErB,qBAAoB","file":"monitor-function.collection.js","sourcesContent":["import { ResolveIOServer } from '../resolveio-server-app';\nimport { MongoManagerCollection, MongoManagerModel } from '../managers/mongo.manager';\nimport { MonitorFunctionModel } from '../models/monitor-function.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tmetadata: {\n\t\ttype: Object\n\t},\n\t'metadata.client': {\n\t\ttype: String\n\t},\n\t'metadata.instance': {\n\t\ttype: String\n\t},\n\tdate: {\n\t\ttype: Date\n\t},\n\ttype: {\n\t\ttype: String\n\t},\n\tname: {\n\t\ttype: String\n\t},\n\tuser: {\n\t\ttype: String\n\t},\n\tduration: {\n\t\ttype: Number\n\t},\n\tdata: {\n\t\ttype: String\n\t}\n};\n\nexport let MonitorFunctions: MongoManagerCollection<MonitorFunctionModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer && ResolveIOServer.getMainDB() && MongoManagerModel) {\n\t\tconst model = new MongoManagerModel<MonitorFunctionModel>({\n\t\t\tcollectionName: 'monitor-functions',\n\t\t\tschema: schema,\n\t\t\tuseVersionCollection: false,\n\t\t\tuseReportBuilder: false,\n\t\t\treportBuilderLookupTables: [],\n\t\t\ttimestamps: false,\n\t\t\tcreateLogs: false,\n\t\t\tcheckSchema: false,\n\t\t\tcollectionOptions: {\n\t\t\t\ttimeseries: {\n\t\t\t\t\ttimeField: 'date',\n\t\t\t\t\tgranularity: 'seconds',\n\t\t\t\t\tmetaField: 'metadata'\n\t\t\t\t},\n\t\t\t\texpireAfterSeconds: 60 * 60 * 24 * 3\n\t\t\t},\n\t\t\tskipCache: true,\n\t\t\tbypassSession: true\n\t\t});\n\t\tMonitorFunctions = model.collection_main;\n\t\tMonitorFunctions.createIndex({'metadata.client': 1, date: 1});\n\t\tMonitorFunctions.createIndex({'metadata.client': 1, 'metadata.instance': 1, date: 1});\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 1);\n\t}\n}"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.MonitorMemorys=void 0;var resolveio_server_app_1=require("../resolveio-server-app"),mongo_manager_1=require("../managers/mongo.manager"),schema={_id:{type:String,optional:!0},metadata:{type:Object},"metadata.client":{type:String},"metadata.instance":{type:String},date:{type:Date},physical_total:{type:Number},physical_used:{type:Number},physical_free:{type:Number},virtual:{type:Number},private:{type:Number},physical:{type:Number}};function initializeCollection(){var e;resolveio_server_app_1.ResolveIOServer&&resolveio_server_app_1.ResolveIOServer.getMainDB()&&mongo_manager_1.MongoManagerModel?(e=new mongo_manager_1.MongoManagerModel({collectionName:"monitor-memorys",schema:schema,useVersionCollection:!1,useReportBuilder:!1,reportBuilderLookupTables:[],timestamps:!1,createLogs:!1,checkSchema:!1,collectionOptions:{timeseries:{timeField:"date",granularity:"seconds",metaField:"metadata"},expireAfterSeconds:259200},skipCache:!0}),exports.MonitorMemorys=e.collection_main,exports.MonitorMemorys.createIndex({"metadata.client":1,date:1}),exports.MonitorMemorys.createIndex({"metadata.client":1,"metadata.instance":1,date:1})):setTimeout(function(){initializeCollection()},1)}exports.MonitorMemorys=null,initializeCollection();
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.MonitorMemorys=void 0;var resolveio_server_app_1=require("../resolveio-server-app"),mongo_manager_1=require("../managers/mongo.manager"),schema={_id:{type:String,optional:!0},metadata:{type:Object},"metadata.client":{type:String},"metadata.instance":{type:String},date:{type:Date},physical_total:{type:Number},physical_used:{type:Number},physical_free:{type:Number},virtual:{type:Number},private:{type:Number},physical:{type:Number}};function initializeCollection(){var e;resolveio_server_app_1.ResolveIOServer&&resolveio_server_app_1.ResolveIOServer.getMainDB()&&mongo_manager_1.MongoManagerModel?(e=new mongo_manager_1.MongoManagerModel({collectionName:"monitor-memorys",schema:schema,useVersionCollection:!1,useReportBuilder:!1,reportBuilderLookupTables:[],timestamps:!1,createLogs:!1,checkSchema:!1,collectionOptions:{timeseries:{timeField:"date",granularity:"seconds",metaField:"metadata"},expireAfterSeconds:259200},skipCache:!0,bypassSession:!0}),exports.MonitorMemorys=e.collection_main,exports.MonitorMemorys.createIndex({"metadata.client":1,date:1}),exports.MonitorMemorys.createIndex({"metadata.client":1,"metadata.instance":1,date:1})):setTimeout(function(){initializeCollection()},1)}exports.MonitorMemorys=null,initializeCollection();
2
2
  //# sourceMappingURL=monitor-memory.collection.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/collections/monitor-memory.collection.ts"],"names":["resolveio_server_app_1","require","mongo_manager_1","schema","_id","type","String","optional","metadata","Object","metadata.client","metadata.instance","date","Date","physical_total","Number","physical_used","physical_free","virtual","private","physical","initializeCollection","model","ResolveIOServer","getMainDB","MongoManagerModel","collectionName","useVersionCollection","useReportBuilder","reportBuilderLookupTables","timestamps","createLogs","checkSchema","collectionOptions","timeseries","timeField","granularity","metaField","expireAfterSeconds","skipCache","exports","MonitorMemorys","collection_main","createIndex","setTimeout"],"mappings":"kGAAA,IAAAA,uBAAAC,QAAA,yBAAA,EACAC,gBAAAD,QAAA,2BAAA,EAGIE,OAAc,CACjBC,IAAK,CACJC,KAAMC,OACNC,SAAU,CAAA,C,EAEXC,SAAU,CACTH,KAAMI,M,EAEPC,kBAAmB,CAClBL,KAAMC,M,EAEPK,oBAAqB,CACpBN,KAAMC,M,EAEPM,KAAM,CACLP,KAAMQ,I,EAEPC,eAAgB,CACfT,KAAMU,M,EAEPC,cAAe,CACdX,KAAMU,M,EAEPE,cAAe,CACdZ,KAAMU,M,EAEPG,QAAS,CACRb,KAAMU,M,EAEPI,QAAS,CACRd,KAAMU,M,EAEPK,SAAU,CACTf,KAAMU,M,GAQR,SAASM,uBACR,IACOC,EADHtB,uBAAAuB,iBAAmBvB,uBAAAuB,gBAAgBC,UAAS,GAAMtB,gBAAAuB,mBAC/CH,EAAQ,IAAIpB,gBAAAuB,kBAAsC,CACvDC,eAAgB,kBAChBvB,OAAQA,OACRwB,qBAAsB,CAAA,EACtBC,iBAAkB,CAAA,EAClBC,0BAA2B,GAC3BC,WAAY,CAAA,EACZC,WAAY,CAAA,EACZC,YAAa,CAAA,EACbC,kBAAmB,CAClBC,WAAY,CACXC,UAAW,OACXC,YAAa,UACbC,UAAW,U,EAEZC,mBAAoB,M,EAErBC,UAAW,CAAA,C,CACX,EACDC,QAAAC,eAAiBnB,EAAMoB,gBACvBF,QAAAC,eAAeE,YAAY,CAACjC,kBAAmB,EAAGE,KAAM,CAAC,CAAC,EAC1D4B,QAAAC,eAAeE,YAAY,CAACjC,kBAAmB,EAAGC,oBAAqB,EAAGC,KAAM,CAAC,CAAC,GAGlFgC,WAAW,WACVvB,qBAAoB,CACrB,EAAG,CAAC,CAEN,CAlCWmB,QAAAC,eAA6D,KAExEpB,qBAAoB","file":"monitor-memory.collection.js","sourcesContent":["import { ResolveIOServer } from '../resolveio-server-app';\nimport { MongoManagerCollection, MongoManagerModel } from '../managers/mongo.manager';\nimport { MonitorMemoryModel } from '../models/monitor-memory.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tmetadata: {\n\t\ttype: Object\n\t},\n\t'metadata.client': {\n\t\ttype: String\n\t},\n\t'metadata.instance': {\n\t\ttype: String\n\t},\n\tdate: {\n\t\ttype: Date\n\t},\n\tphysical_total: {\n\t\ttype: Number\n\t},\n\tphysical_used: {\n\t\ttype: Number\n\t},\n\tphysical_free: {\n\t\ttype: Number\n\t},\n\tvirtual: {\n\t\ttype: Number\n\t},\n\tprivate: {\n\t\ttype: Number\n\t},\n\tphysical: {\n\t\ttype: Number\n\t}\n};\n\nexport let MonitorMemorys: MongoManagerCollection<MonitorMemoryModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer && ResolveIOServer.getMainDB() && MongoManagerModel) {\n\t\tconst model = new MongoManagerModel<MonitorMemoryModel>({\n\t\t\tcollectionName: 'monitor-memorys',\n\t\t\tschema: schema,\n\t\t\tuseVersionCollection: false,\n\t\t\tuseReportBuilder: false,\n\t\t\treportBuilderLookupTables: [],\n\t\t\ttimestamps: false,\n\t\t\tcreateLogs: false,\n\t\t\tcheckSchema: false,\n\t\t\tcollectionOptions: {\n\t\t\t\ttimeseries: {\n\t\t\t\t\ttimeField: 'date',\n\t\t\t\t\tgranularity: 'seconds',\n\t\t\t\t\tmetaField: 'metadata'\n\t\t\t\t},\n\t\t\t\texpireAfterSeconds: 60 * 60 * 24 * 3\n\t\t\t},\n\t\t\tskipCache: true\n\t\t});\n\t\tMonitorMemorys = model.collection_main;\n\t\tMonitorMemorys.createIndex({'metadata.client': 1, date: 1});\n\t\tMonitorMemorys.createIndex({'metadata.client': 1, 'metadata.instance': 1, date: 1});\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 1);\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/collections/monitor-memory.collection.ts"],"names":["resolveio_server_app_1","require","mongo_manager_1","schema","_id","type","String","optional","metadata","Object","metadata.client","metadata.instance","date","Date","physical_total","Number","physical_used","physical_free","virtual","private","physical","initializeCollection","model","ResolveIOServer","getMainDB","MongoManagerModel","collectionName","useVersionCollection","useReportBuilder","reportBuilderLookupTables","timestamps","createLogs","checkSchema","collectionOptions","timeseries","timeField","granularity","metaField","expireAfterSeconds","skipCache","bypassSession","exports","MonitorMemorys","collection_main","createIndex","setTimeout"],"mappings":"kGAAA,IAAAA,uBAAAC,QAAA,yBAAA,EACAC,gBAAAD,QAAA,2BAAA,EAGIE,OAAc,CACjBC,IAAK,CACJC,KAAMC,OACNC,SAAU,CAAA,C,EAEXC,SAAU,CACTH,KAAMI,M,EAEPC,kBAAmB,CAClBL,KAAMC,M,EAEPK,oBAAqB,CACpBN,KAAMC,M,EAEPM,KAAM,CACLP,KAAMQ,I,EAEPC,eAAgB,CACfT,KAAMU,M,EAEPC,cAAe,CACdX,KAAMU,M,EAEPE,cAAe,CACdZ,KAAMU,M,EAEPG,QAAS,CACRb,KAAMU,M,EAEPI,QAAS,CACRd,KAAMU,M,EAEPK,SAAU,CACTf,KAAMU,M,GAQR,SAASM,uBACR,IACOC,EADHtB,uBAAAuB,iBAAmBvB,uBAAAuB,gBAAgBC,UAAS,GAAMtB,gBAAAuB,mBAC/CH,EAAQ,IAAIpB,gBAAAuB,kBAAsC,CACvDC,eAAgB,kBAChBvB,OAAQA,OACRwB,qBAAsB,CAAA,EACtBC,iBAAkB,CAAA,EAClBC,0BAA2B,GAC3BC,WAAY,CAAA,EACZC,WAAY,CAAA,EACZC,YAAa,CAAA,EACbC,kBAAmB,CAClBC,WAAY,CACXC,UAAW,OACXC,YAAa,UACbC,UAAW,U,EAEZC,mBAAoB,M,EAErBC,UAAW,CAAA,EACXC,cAAe,CAAA,C,CACf,EACDC,QAAAC,eAAiBpB,EAAMqB,gBACvBF,QAAAC,eAAeE,YAAY,CAAClC,kBAAmB,EAAGE,KAAM,CAAC,CAAC,EAC1D6B,QAAAC,eAAeE,YAAY,CAAClC,kBAAmB,EAAGC,oBAAqB,EAAGC,KAAM,CAAC,CAAC,GAGlFiC,WAAW,WACVxB,qBAAoB,CACrB,EAAG,CAAC,CAEN,CAnCWoB,QAAAC,eAA6D,KAExErB,qBAAoB","file":"monitor-memory.collection.js","sourcesContent":["import { ResolveIOServer } from '../resolveio-server-app';\nimport { MongoManagerCollection, MongoManagerModel } from '../managers/mongo.manager';\nimport { MonitorMemoryModel } from '../models/monitor-memory.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tmetadata: {\n\t\ttype: Object\n\t},\n\t'metadata.client': {\n\t\ttype: String\n\t},\n\t'metadata.instance': {\n\t\ttype: String\n\t},\n\tdate: {\n\t\ttype: Date\n\t},\n\tphysical_total: {\n\t\ttype: Number\n\t},\n\tphysical_used: {\n\t\ttype: Number\n\t},\n\tphysical_free: {\n\t\ttype: Number\n\t},\n\tvirtual: {\n\t\ttype: Number\n\t},\n\tprivate: {\n\t\ttype: Number\n\t},\n\tphysical: {\n\t\ttype: Number\n\t}\n};\n\nexport let MonitorMemorys: MongoManagerCollection<MonitorMemoryModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer && ResolveIOServer.getMainDB() && MongoManagerModel) {\n\t\tconst model = new MongoManagerModel<MonitorMemoryModel>({\n\t\t\tcollectionName: 'monitor-memorys',\n\t\t\tschema: schema,\n\t\t\tuseVersionCollection: false,\n\t\t\tuseReportBuilder: false,\n\t\t\treportBuilderLookupTables: [],\n\t\t\ttimestamps: false,\n\t\t\tcreateLogs: false,\n\t\t\tcheckSchema: false,\n\t\t\tcollectionOptions: {\n\t\t\t\ttimeseries: {\n\t\t\t\t\ttimeField: 'date',\n\t\t\t\t\tgranularity: 'seconds',\n\t\t\t\t\tmetaField: 'metadata'\n\t\t\t\t},\n\t\t\t\texpireAfterSeconds: 60 * 60 * 24 * 3\n\t\t\t},\n\t\t\tskipCache: true,\n\t\t\tbypassSession: true\n\t\t});\n\t\tMonitorMemorys = model.collection_main;\n\t\tMonitorMemorys.createIndex({'metadata.client': 1, date: 1});\n\t\tMonitorMemorys.createIndex({'metadata.client': 1, 'metadata.instance': 1, date: 1});\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 1);\n\t}\n}"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.MonitorMongos=void 0;var resolveio_server_app_1=require("../resolveio-server-app"),mongo_manager_1=require("../managers/mongo.manager"),schema={_id:{type:String,optional:!0},metadata:{type:Object},"metadata.client":{type:String},"metadata.instance":{type:String},date:{type:Date},method:{type:String},doc_collection:{type:String},duration:{type:Number},query:{type:String}};function initializeCollection(){var e;resolveio_server_app_1.ResolveIOServer&&resolveio_server_app_1.ResolveIOServer.getMainDB()&&mongo_manager_1.MongoManagerModel?(e=new mongo_manager_1.MongoManagerModel({collectionName:"monitor-mongos",schema:schema,useVersionCollection:!1,useReportBuilder:!1,reportBuilderLookupTables:[],timestamps:!1,createLogs:!1,checkSchema:!1,collectionOptions:{timeseries:{timeField:"date",granularity:"seconds",metaField:"metadata"},expireAfterSeconds:259200},skipCache:!0}),exports.MonitorMongos=e.collection_main,exports.MonitorMongos.createIndex({"metadata.client":1,date:1}),exports.MonitorMongos.createIndex({"metadata.client":1,"metadata.instance":1,date:1})):setTimeout(function(){initializeCollection()},1)}exports.MonitorMongos=null,initializeCollection();
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.MonitorMongos=void 0;var resolveio_server_app_1=require("../resolveio-server-app"),mongo_manager_1=require("../managers/mongo.manager"),schema={_id:{type:String,optional:!0},metadata:{type:Object},"metadata.client":{type:String},"metadata.instance":{type:String},date:{type:Date},method:{type:String},doc_collection:{type:String},duration:{type:Number},query:{type:String}};function initializeCollection(){var e;resolveio_server_app_1.ResolveIOServer&&resolveio_server_app_1.ResolveIOServer.getMainDB()&&mongo_manager_1.MongoManagerModel?(e=new mongo_manager_1.MongoManagerModel({collectionName:"monitor-mongos",schema:schema,useVersionCollection:!1,useReportBuilder:!1,reportBuilderLookupTables:[],timestamps:!1,createLogs:!1,checkSchema:!1,collectionOptions:{timeseries:{timeField:"date",granularity:"seconds",metaField:"metadata"},expireAfterSeconds:259200},skipCache:!0,bypassSession:!0}),exports.MonitorMongos=e.collection_main,exports.MonitorMongos.createIndex({"metadata.client":1,date:1}),exports.MonitorMongos.createIndex({"metadata.client":1,"metadata.instance":1,date:1})):setTimeout(function(){initializeCollection()},1)}exports.MonitorMongos=null,initializeCollection();
2
2
  //# sourceMappingURL=monitor-mongo.collection.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/collections/monitor-mongo.collection.ts"],"names":["resolveio_server_app_1","require","mongo_manager_1","schema","_id","type","String","optional","metadata","Object","metadata.client","metadata.instance","date","Date","method","doc_collection","duration","Number","query","initializeCollection","model","ResolveIOServer","getMainDB","MongoManagerModel","collectionName","useVersionCollection","useReportBuilder","reportBuilderLookupTables","timestamps","createLogs","checkSchema","collectionOptions","timeseries","timeField","granularity","metaField","expireAfterSeconds","skipCache","exports","MonitorMongos","collection_main","createIndex","setTimeout"],"mappings":"iGAAA,IAAAA,uBAAAC,QAAA,yBAAA,EACAC,gBAAAD,QAAA,2BAAA,EAGIE,OAAc,CACjBC,IAAK,CACJC,KAAMC,OACNC,SAAU,CAAA,C,EAEXC,SAAU,CACTH,KAAMI,M,EAEPC,kBAAmB,CAClBL,KAAMC,M,EAEPK,oBAAqB,CACpBN,KAAMC,M,EAEPM,KAAM,CACLP,KAAMQ,I,EAEPC,OAAQ,CACPT,KAAMC,M,EAEPS,eAAgB,CACfV,KAAMC,M,EAEPU,SAAU,CACTX,KAAMY,M,EAEPC,MAAO,CACNb,KAAMC,M,GAQR,SAASa,uBACR,IACOC,EADHpB,uBAAAqB,iBAAmBrB,uBAAAqB,gBAAgBC,UAAS,GAAMpB,gBAAAqB,mBAC/CH,EAAQ,IAAIlB,gBAAAqB,kBAAqC,CACtDC,eAAgB,iBAChBrB,OAAQA,OACRsB,qBAAsB,CAAA,EACtBC,iBAAkB,CAAA,EAClBC,0BAA2B,GAC3BC,WAAY,CAAA,EACZC,WAAY,CAAA,EACZC,YAAa,CAAA,EACbC,kBAAmB,CAClBC,WAAY,CACXC,UAAW,OACXC,YAAa,UACbC,UAAW,U,EAEZC,mBAAoB,M,EAErBC,UAAW,CAAA,C,CACX,EACDC,QAAAC,cAAgBnB,EAAMoB,gBACtBF,QAAAC,cAAcE,YAAY,CAAC/B,kBAAmB,EAAGE,KAAM,CAAC,CAAC,EACzD0B,QAAAC,cAAcE,YAAY,CAAC/B,kBAAmB,EAAGC,oBAAqB,EAAGC,KAAM,CAAC,CAAC,GAGjF8B,WAAW,WACVvB,qBAAoB,CACrB,EAAG,CAAC,CAEN,CAlCWmB,QAAAC,cAA2D,KAEtEpB,qBAAoB","file":"monitor-mongo.collection.js","sourcesContent":["import { ResolveIOServer } from '../resolveio-server-app';\nimport { MongoManagerCollection, MongoManagerModel } from '../managers/mongo.manager';\nimport { MonitorMongoModel } from '../models/monitor-mongo.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tmetadata: {\n\t\ttype: Object\n\t},\n\t'metadata.client': {\n\t\ttype: String\n\t},\n\t'metadata.instance': {\n\t\ttype: String\n\t},\n\tdate: {\n\t\ttype: Date\n\t},\n\tmethod: {\n\t\ttype: String\n\t},\n\tdoc_collection: {\n\t\ttype: String\n\t},\n\tduration: {\n\t\ttype: Number\n\t},\n\tquery: {\n\t\ttype: String\n\t}\n};\n\nexport let MonitorMongos: MongoManagerCollection<MonitorMongoModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer && ResolveIOServer.getMainDB() && MongoManagerModel) {\n\t\tconst model = new MongoManagerModel<MonitorMongoModel>({\n\t\t\tcollectionName: 'monitor-mongos',\n\t\t\tschema: schema,\n\t\t\tuseVersionCollection: false,\n\t\t\tuseReportBuilder: false,\n\t\t\treportBuilderLookupTables: [],\n\t\t\ttimestamps: false,\n\t\t\tcreateLogs: false,\n\t\t\tcheckSchema: false,\n\t\t\tcollectionOptions: {\n\t\t\t\ttimeseries: {\n\t\t\t\t\ttimeField: 'date',\n\t\t\t\t\tgranularity: 'seconds',\n\t\t\t\t\tmetaField: 'metadata'\n\t\t\t\t},\n\t\t\t\texpireAfterSeconds: 60 * 60 * 24 * 3\n\t\t\t},\n\t\t\tskipCache: true\n\t\t});\n\t\tMonitorMongos = model.collection_main;\n\t\tMonitorMongos.createIndex({'metadata.client': 1, date: 1});\n\t\tMonitorMongos.createIndex({'metadata.client': 1, 'metadata.instance': 1, date: 1});\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 1);\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/collections/monitor-mongo.collection.ts"],"names":["resolveio_server_app_1","require","mongo_manager_1","schema","_id","type","String","optional","metadata","Object","metadata.client","metadata.instance","date","Date","method","doc_collection","duration","Number","query","initializeCollection","model","ResolveIOServer","getMainDB","MongoManagerModel","collectionName","useVersionCollection","useReportBuilder","reportBuilderLookupTables","timestamps","createLogs","checkSchema","collectionOptions","timeseries","timeField","granularity","metaField","expireAfterSeconds","skipCache","bypassSession","exports","MonitorMongos","collection_main","createIndex","setTimeout"],"mappings":"iGAAA,IAAAA,uBAAAC,QAAA,yBAAA,EACAC,gBAAAD,QAAA,2BAAA,EAGIE,OAAc,CACjBC,IAAK,CACJC,KAAMC,OACNC,SAAU,CAAA,C,EAEXC,SAAU,CACTH,KAAMI,M,EAEPC,kBAAmB,CAClBL,KAAMC,M,EAEPK,oBAAqB,CACpBN,KAAMC,M,EAEPM,KAAM,CACLP,KAAMQ,I,EAEPC,OAAQ,CACPT,KAAMC,M,EAEPS,eAAgB,CACfV,KAAMC,M,EAEPU,SAAU,CACTX,KAAMY,M,EAEPC,MAAO,CACNb,KAAMC,M,GAQR,SAASa,uBACR,IACOC,EADHpB,uBAAAqB,iBAAmBrB,uBAAAqB,gBAAgBC,UAAS,GAAMpB,gBAAAqB,mBAC/CH,EAAQ,IAAIlB,gBAAAqB,kBAAqC,CACtDC,eAAgB,iBAChBrB,OAAQA,OACRsB,qBAAsB,CAAA,EACtBC,iBAAkB,CAAA,EAClBC,0BAA2B,GAC3BC,WAAY,CAAA,EACZC,WAAY,CAAA,EACZC,YAAa,CAAA,EACbC,kBAAmB,CAClBC,WAAY,CACXC,UAAW,OACXC,YAAa,UACbC,UAAW,U,EAEZC,mBAAoB,M,EAErBC,UAAW,CAAA,EACXC,cAAe,CAAA,C,CACf,EACDC,QAAAC,cAAgBpB,EAAMqB,gBACtBF,QAAAC,cAAcE,YAAY,CAAChC,kBAAmB,EAAGE,KAAM,CAAC,CAAC,EACzD2B,QAAAC,cAAcE,YAAY,CAAChC,kBAAmB,EAAGC,oBAAqB,EAAGC,KAAM,CAAC,CAAC,GAGjF+B,WAAW,WACVxB,qBAAoB,CACrB,EAAG,CAAC,CAEN,CAnCWoB,QAAAC,cAA2D,KAEtErB,qBAAoB","file":"monitor-mongo.collection.js","sourcesContent":["import { ResolveIOServer } from '../resolveio-server-app';\nimport { MongoManagerCollection, MongoManagerModel } from '../managers/mongo.manager';\nimport { MonitorMongoModel } from '../models/monitor-mongo.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tmetadata: {\n\t\ttype: Object\n\t},\n\t'metadata.client': {\n\t\ttype: String\n\t},\n\t'metadata.instance': {\n\t\ttype: String\n\t},\n\tdate: {\n\t\ttype: Date\n\t},\n\tmethod: {\n\t\ttype: String\n\t},\n\tdoc_collection: {\n\t\ttype: String\n\t},\n\tduration: {\n\t\ttype: Number\n\t},\n\tquery: {\n\t\ttype: String\n\t}\n};\n\nexport let MonitorMongos: MongoManagerCollection<MonitorMongoModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer && ResolveIOServer.getMainDB() && MongoManagerModel) {\n\t\tconst model = new MongoManagerModel<MonitorMongoModel>({\n\t\t\tcollectionName: 'monitor-mongos',\n\t\t\tschema: schema,\n\t\t\tuseVersionCollection: false,\n\t\t\tuseReportBuilder: false,\n\t\t\treportBuilderLookupTables: [],\n\t\t\ttimestamps: false,\n\t\t\tcreateLogs: false,\n\t\t\tcheckSchema: false,\n\t\t\tcollectionOptions: {\n\t\t\t\ttimeseries: {\n\t\t\t\t\ttimeField: 'date',\n\t\t\t\t\tgranularity: 'seconds',\n\t\t\t\t\tmetaField: 'metadata'\n\t\t\t\t},\n\t\t\t\texpireAfterSeconds: 60 * 60 * 24 * 3\n\t\t\t},\n\t\t\tskipCache: true,\n\t\t\tbypassSession: true\n\t\t});\n\t\tMonitorMongos = model.collection_main;\n\t\tMonitorMongos.createIndex({'metadata.client': 1, date: 1});\n\t\tMonitorMongos.createIndex({'metadata.client': 1, 'metadata.instance': 1, date: 1});\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 1);\n\t}\n}"]}
@@ -1,2 +1,2 @@
1
- "use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,o,n,i){return new(n=n||Promise)(function(r,t){function fulfilled(e){try{step(i.next(e))}catch(e){t(e)}}function rejected(e){try{step(i.throw(e))}catch(e){t(e)}}function step(e){var t;e.done?r(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(fulfilled,rejected)}step((i=i.apply(e,o||[])).next())})},__generator=this&&this.__generator||function(o,n){var i,s,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},c={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function verb(r){return function(e){var t=[r,e];if(i)throw new TypeError("Generator is already executing.");for(;l=c&&t[c=0]?0:l;)try{if(i=1,s&&(a=2&t[0]?s.return:t[0]?s.throw||((a=s.return)&&a.call(s),0):s.next)&&!(a=a.call(s,t[1])).done)return a;switch(s=0,(t=a?[2&t[0],a.value]:t)[0]){case 0:case 1:a=t;break;case 4:return l.label++,{value:t[1],done:!1};case 5:l.label++,s=t[1],t=[0];continue;case 7:t=l.ops.pop(),l.trys.pop();continue;default:if(!(a=0<(a=l.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){l=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3]))l.label=t[1];else if(6===t[0]&&l.label<a[1])l.label=a[1],a=t;else{if(!(a&&l.label<a[2])){a[2]&&l.ops.pop(),l.trys.pop();continue}l.label=a[2],l.ops.push(t)}}t=n.call(o,l)}catch(e){t=[6,e],s=0}finally{i=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}},__read=this&&this.__read||function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var o,n,i=r.call(e),s=[];try{for(;(void 0===t||0<t--)&&!(o=i.next()).done;)s.push(o.value)}catch(e){n={error:e}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return s},__spreadArray=this&&this.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var o,n=0,i=t.length;n<i;n++)!o&&n in t||((o=o||Array.prototype.slice.call(t,0,n))[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))},__values=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],o=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&o>=e.length?void 0:e)&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},collections_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.MethodManager=exports.AWS=void 0,require("../methods/collections")),logs_1=require("../methods/logs"),counters_1=require("../methods/counters"),pdf_1=require("../methods/pdf"),aws_1=require("../methods/aws"),path=require("path"),fs=require("fs"),nodemailer=require("nodemailer"),sesTransport=require("nodemailer-ses-transport"),accounts_1=require("../methods/accounts"),init_1=require("../fixtures/init"),cron_jobs_1=require("../fixtures/cron-jobs"),cron_jobs_2=require("../methods/cron-jobs"),flags_1=require("../methods/flags"),common_1=require("../util/common"),log_collection_1=require("../collections/log.collection"),report_builder_1=require("../methods/report-builder"),support_1=require("../methods/support"),monitor_1=require("../methods/monitor"),email_history_collection_1=require("../collections/email-history.collection"),client_s3_1=require("@aws-sdk/client-s3"),flag_updates_1=require("../methods/flag-updates"),resolveio_server_app_1=require("../resolveio-server-app"),AWS=function(){function AWS(){this._s3=null,this._s3USEast1=null}return AWS.prototype.s3=function(){return this._s3||(this._s3=new client_s3_1.S3({credentials:{accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY},region:process.env.AWS_REGION,apiVersion:"2006-03-01"})),this._s3},AWS.prototype.s3USEast1=function(){return"us-east-1"===process.env.AWS_REGION?this.s3():(this._s3USEast1||(this._s3USEast1=new client_s3_1.S3({credentials:{accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY},region:"us-east-1",apiVersion:"2006-03-01"})),this._s3USEast1)},AWS}(),MethodManager=(exports.AWS=AWS,function(){function MethodManager(e,t,r){var o=this;this._methods={},this._isWorkersEnabled=!1,this._isWorkerInstance=!1,this.emailQueue=new Set,this.isEmailProcessing=!1,this._debugcallMethodHits=0,this._debugCallMethodHits=0,this._debugCallMethodCronJobHits=0,this._debugSendQueueHits=0,this.clientDir="",this.serverConfig="",this._websocketManager=resolveio_server_app_1.ResolveIOServer.getMainServer().getWebSocketManager(),this._monitorManagerFunction=e,this._isWorkersEnabled=t,this._isWorkerInstance=r,this.clientDir=resolveio_server_app_1.ResolveIOServer.getClientDir(),this.serverConfig=resolveio_server_app_1.ResolveIOServer.getServerConfig(),"false"!==process.env.IS_WORKERS_ENABLED&&("true"!==process.env.IS_WORKER_INSTANCE||"0"!==process.env.WORKER_INDEX)||process.env.NODE_APP_INSTANCE&&"0"!==process.env.NODE_APP_INSTANCE||setTimeout(function(){console.log(new Date,"Start Server Fixture"),(0,init_1.loadServerInit)(),console.log(new Date,"End Server Fixture")},5e3),(0,cron_jobs_1.loadServerCronJobs)(),(0,accounts_1.loadAccountMethods)(this),(0,aws_1.loadAWSMethods)(this),(0,collections_1.loadCollectionMethods)(this),(0,counters_1.loadCounterMethods)(this),(0,logs_1.loadLogMethods)(this),(0,pdf_1.loadPDFMethods)(this),(0,cron_jobs_2.loadCronJobMethods)(this),(0,flags_1.loadFlagMethods)(this),(0,flag_updates_1.loadFlagUpdatesMethods)(this),(0,report_builder_1.loadReportBuilderMethods)(this),(0,support_1.loadSupportMethods)(this),(0,monitor_1.loadMonitorMethods)(this),this._aws=new AWS,resolveio_server_app_1.ResolveIOServer.getSESMail()?this._mailer=nodemailer.createTransport(sesTransport({accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY,region:process.env.AWS_SES_REGION})):this._mailer=nodemailer.createTransport({host:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_HOST,port:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_PORT,secure:!1,auth:{user:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_USERNAME,pass:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_PASSWORD},tls:{ciphers:"SSLv3"}}),setInterval(function(){resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&(console.log(new Date,"Method Manager","Send Queue Hits",o._debugSendQueueHits),console.log(new Date,"Method Manager","Call Method Internal Hits",o._debugcallMethodHits),console.log(new Date,"Method Manager","Call Method Hits",o._debugCallMethodHits),console.log(new Date,"Method Manager","Call Method Cron Hits",o._debugCallMethodCronJobHits)),o._debugcallMethodHits=0,o._debugCallMethodHits=0,o._debugCallMethodCronJobHits=0,o._debugSendQueueHits=0},6e4),this._isWorkersEnabled&&!this._isWorkerInstance||this.setupEmailWatcher()}return MethodManager.prototype.methods=function(e){this._methods=Object.assign(this._methods,e)},MethodManager.prototype.callMethodCron=function(t){for(var e,r=this,o=[],n=1;n<arguments.length;n++)o[n-1]=arguments[n];if(this._debugCallMethodCronJobHits+=1,this._methods[t]){if((1<o.length||o[0])&&!this._methods[t].skipValidation){if(!this._methods[t].check)return console.error(new Date,"No Check Function For Method "+t),void this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"No Check Function For Method "+t);if(!this._methods[t].check._schema)return console.error(new Date,"No Check Schema For Method "+t),void this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"No Check Function For Method "+t);for(var i={},s=Object.keys(this._methods[t].check._schema).filter(function(e){return!e.includes(".")}),a=0;a<o.length;a++)i[s[a]]=o[a];try{this._methods[t].check.validate(i)}catch(e){if(e)return console.error(new Date,"Error in Method Check ("+t+")",e),void this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Match Error On Method "+t+"\n\nData Being Checked\n"+JSON.stringify(i,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2))}}var l=this._monitorManagerFunction.startMonitorFunction("Cron Method",t,"","",o);return(e=this._methods[t].function).call.apply(e,__spreadArray([Object.assign({},this,MethodManager.prototype,{id_user:"",user:"",id_ws:""})],__read(o),!1)).then(function(e){return r._monitorManagerFunction.finishMonitorFunction(l),e},function(e){throw r._monitorManagerFunction.finishMonitorFunction(l),r.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Error Detected During Method "+t+" - (callMethodCron)\n\nData \n"+JSON.stringify(o,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),e})}console.log("No Method: "+t),this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"No Method: "+t)},MethodManager.prototype.callMethod=function(r){for(var e,o=this,n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];if(this._debugcallMethodHits+=1,!this._methods[r])return console.log("No Method: "+r),null;if((1<n.length||n[0]&&"function"!=typeof n[0])&&!this._methods[r].skipValidation){if(!this._methods[r].check)return console.error(new Date,"No Check Function For Method "+r),null;if(!this._methods[r].check._schema)return console.error(new Date,"No Check Schema For Method "+r),null}"insertSubscriptionLog"!==r&&"getDataURIfromURL"!==r&&"processAirdropDistribution"!==r&&"incCounter"!==r&&"supportCreateBillingUser"!==r&&"countCollectionWithQuery"!==r&&("https://resolveio.com"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL&&"http://localhost:4200"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL?resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),createdAt:new Date,type:"callMethod",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([n]))<2e5?JSON.stringify([n],null,2):"Too Big",method:r,id_user:this.id_user||"",user:this.user||"",messageId:0,route:""}}):log_collection_1.Logs.insertOne({_id:(0,common_1.objectIdHexString)(),type:"callMethod",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([n]))<2e5?JSON.stringify([n],null,2):"Too Big",method:r,id_user:this.id_user||"",user:this.user||"",messageId:0,route:"",client:"ResolveIO",instance:"backend.resolveio.com",instance_index:process.env.NODE_APP_INSTANCE||""}));var i,s="function"==typeof n[n.length-1]?n.slice(0,-1):n,a=null;return resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession()?(i=this._monitorManagerFunction.startMonitorFunction("Method",r,this.user||"","",s),a=(e=this._methods[r].function).call.apply(e,__spreadArray([Object.assign({},this,MethodManager.prototype)],__read(s),!1)).then(function(e){return o._monitorManagerFunction.finishMonitorFunction(i),e},function(e){throw o._monitorManagerFunction.finishMonitorFunction(i),o.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Error Detected During Method "+r+" - (callMethod)\n\nData \n"+JSON.stringify(n,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),e})):resolveio_server_app_1.ResolveIOServer.getMongoManager().withSession(function(){var e,t=o._monitorManagerFunction.startMonitorFunction("Method",r,o.user||"","",s);a=(e=o._methods[r].function).call.apply(e,__spreadArray([Object.assign({},o,MethodManager.prototype)],__read(s),!1)).then(function(e){return o._monitorManagerFunction.finishMonitorFunction(t),e},function(e){throw o._monitorManagerFunction.finishMonitorFunction(t),o.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Error Detected During Method "+r+" - (callMethod)\n\nData \n"+JSON.stringify(n,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),e})}),n[n.length-1]&&"function"==typeof n[n.length-1]&&a.then(function(e){return n[n.length-1](null,e)},function(e){return n[n.length-1](e,null)}),a},MethodManager.prototype.sendWS=function(e,t,r,o,n){this._websocketManager.send(e,n),"reportBuilderGetResults"!==r&&"reportBuilderGetDistinctValue"!==r&&"reportBuilderBuildTree"!==r&&"generatePDF"!==r&&"getWOOfflineData"!==r&&"countQuery"!==r&&"countWithQuery"!==r&&"countCollectionWithQuery"!==r&&"find"!==r&&"findOne"!==r&&"findWithOptions"!==r&&"uploadFileAndSave"!==r&&"getDrivers"!==r&&"processAirdropDistribution"!==r&&("https://resolveio.com"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL&&"http://localhost:4200"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL?resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),createdAt:new Date,type:"client-response",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([o,n]))<2e5?JSON.stringify([o,n],null,2):"Too Big",method:r,id_user:e.id_user||"",user:e.user||"",messageId:n.messageId,route:""}}):log_collection_1.Logs.insertOne({_id:(0,common_1.objectIdHexString)(),type:"client-response",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([o,n]))<2e5?JSON.stringify([o,n],null,2):"Too Big",method:r,id_user:e.id_user||"",user:e.user||"",messageId:n.messageId,route:"",client:"ResolveIO",instance:"backend.resolveio.com",instance_index:process.env.NODE_APP_INSTANCE||""}))},MethodManager.prototype.setupEmailWatcher=function(){return __awaiter(this,void 0,void 0,function(){var t,o=this;return __generator(this,function(e){switch(e.label){case 0:return(t=email_history_collection_1.EmailHistories.watchCollection([])).on("change",function(r){return __awaiter(o,void 0,void 0,function(){var t;return __generator(this,function(e){return"insert"===r.operationType&&r.fullDocument&&"pending"===r.fullDocument.status?(this.emailQueue.add(r.fullDocument._id.toString()),this.tryProcessEmail()):"update"!==r.operationType&&"replace"!==r.operationType||(t=r.fullDocument)&&"pending"!==t.status&&this.emailQueue.has(t._id.toString())&&this.emailQueue.delete(t._id.toString()),[2]})})}).on("error",function(e){console.error("Email history changestream error",e),t.close()}).on("close",function(){o.setupEmailWatcher()}),[4,this.loadPendingEmails()];case 1:return e.sent(),[2]}})})},MethodManager.prototype.loadPendingEmails=function(){return __awaiter(this,void 0,void 0,function(){var t,r,o,n,i,s;return __generator(this,function(e){switch(e.label){case 0:return[4,email_history_collection_1.EmailHistories.find({status:"pending"},{sort:{_id:1}})];case 1:t=e.sent();try{for(r=__values(t),o=r.next();!o.done;o=r.next())n=o.value,this.emailQueue.add(n._id.toString())}catch(e){i={error:e}}finally{try{o&&!o.done&&(s=r.return)&&s.call(r)}finally{if(i)throw i.error}}return this.tryProcessEmail(),[2]}})})},MethodManager.prototype.tryProcessEmail=function(){return __awaiter(this,void 0,void 0,function(){var t,_,r,h=this;return __generator(this,function(e){switch(e.label){case 0:if(this.isEmailProcessing||0===this.emailQueue.size)return[2];this.isEmailProcessing=!0,e.label=1;case 1:e.trys.push([1,5,6,7]),t=function(){var o,t,r,n,i,s,a,l,c,u;return __generator(this,function(e){switch(e.label){case 0:return i=_.emailQueue.values().next().value,_.emailQueue.delete(i),[4,email_history_collection_1.EmailHistories.findOneAndUpdate({_id:i,status:"pending"},{$set:{status:"processing",processingAt:new Date}})];case 1:if(!(o=e.sent()))return[2,"continue"];if(!(o.attachments&&0<o.attachments.length))return[3,14];e.label=2;case 2:e.trys.push([2,12,,14]),e.label=3;case 3:e.trys.push([3,9,10,11]),c=void 0,t=__values(o.attachments),r=t.next(),e.label=4;case 4:return r.done?[3,8]:(n=r.value).path&&n.path.startsWith("http")?[4,fetch(n.path)]:[3,7];case 5:if((i=e.sent()).ok)return[4,i.arrayBuffer()];throw new Error("Failed to fetch attachment: ".concat(n.path));case 6:s=e.sent(),s=Buffer.from(s),s.length<=20971520&&(n.content=s,delete n.path),e.label=7;case 7:return r=t.next(),[3,4];case 8:return[3,11];case 9:return s=e.sent(),c={error:s},[3,11];case 10:try{r&&!r.done&&(u=t.return)&&u.call(t)}finally{if(c)throw c.error}return[7];case 11:return[3,14];case 12:return a=e.sent(),console.error("Failed to fetch attachment:",a),[4,email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"failed",error:"string"==typeof a?a:_.safeStringify(a),completedAt:new Date}})];case 13:return e.sent(),[2,"continue"];case 14:return(l={replyTo:o.reply_to||resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_REPLY_TO||void 0,from:o.send_from||resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_FROM,to:o.email,subject:(resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/dev\./)||resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/www\.dev\./)?"(DEV SERVER) - ":"")+o.subject,text:"string"==typeof o.text?o.text:"",html:"string"==typeof o.html?o.html:"",attachments:o.attachments||[]}).attachments&&0<l.attachments.length&&(l.attachments=l.attachments.map(function(e){e=__assign({},e);return!e.content||"object"!=typeof e.content||e.content instanceof Buffer?"string"==typeof e.content&&"base64"===e.encoding?(e.content=Buffer.from(e.content,"base64"),delete e.encoding):"string"==typeof e.content&&(e.content=Buffer.from(e.content)):"Binary"===e.content._bsontype&&0===e.content.sub_type?e.content=Buffer.from(e.content.buffer):e.content=Buffer.from(e.content),e})),[4,new Promise(function(r){h._mailer.sendMail(l,function(t,e){return __awaiter(h,void 0,void 0,function(){return __generator(this,function(e){try{t?(console.error("Failed to send email:",t),email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"failed",error:"string"==typeof t?t:this.safeStringify(t),completedAt:new Date}})):"dev@resolveio.com"===o.email?email_history_collection_1.EmailHistories.deleteOne({_id:o._id}):email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"completed",completedAt:new Date}})}catch(e){console.error("Error in sendMail callback:",e),email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"failed",error:"string"==typeof e?e:this.safeStringify(e),completedAt:new Date}})}finally{r()}return[2]})})})})];case 15:return e.sent(),[4,new Promise(function(e){return setTimeout(e,1e3)})];case 16:return e.sent(),[2]}})},_=this,e.label=2;case 2:return 0<this.emailQueue.size?[5,t()]:[3,4];case 3:return e.sent(),[3,2];case 4:return[3,7];case 5:return r=e.sent(),console.error("Error processing email queue:",r),[3,7];case 6:return this.isEmailProcessing=!1,0<this.emailQueue.size&&this.tryProcessEmail(),[7];case 7:return[2]}})})},MethodManager.prototype.safeStringify=function(e){try{return JSON.stringify(e,this.getCircularReplacer())}catch(e){return"Error in JSON stringifying: ".concat(e.message)}},MethodManager.prototype.getCircularReplacer=function(){var r=new WeakSet;return function(e,t){if("object"==typeof t&&null!==t){if(r.has(t))return"[Circular]";r.add(t)}return t}},MethodManager.prototype.sendEmail=function(n,i,s,a,l,c,u,_){var e=this;return void 0===_&&(_=!1),new Promise(function(r,o){return __awaiter(e,void 0,void 0,function(){var t;return __generator(this,function(e){return(n=!resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/dev\./)&&!resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/www\.dev\./)&&"http://localhost:4200"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||n.match(/\@resolveio\.com/)?n:"dev@resolveio.com")?"http://localhost:4200"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||_?(l=l||[],l=(l=Array.isArray(l)?l:[l]).map(function(e){e=__assign({},e);return Buffer.isBuffer(e.content)&&(e.content=e.content.toString("base64"),e.encoding="base64"),e}),t={_id:(0,common_1.objectIdHexString)(),__v:0,date:new Date,id_user:this.id_user||"",user:this.user||"",email:n,subject:i||"",text:s||"",html:a||"",attachments:l||[],send_from:c||"",reply_to:u||"",status:"pending",error:""},email_history_collection_1.EmailHistories.insertOne(t).then(function(e){return r(e)},function(e){console.error("Failed to queue email:",e),o(e)})):(console.log("Send email",n,i,s,a,l,c),r(!0)):r(!0),[2]})})})},MethodManager.prototype.getAWS=function(){return this._aws},MethodManager.prototype.readFile=function(e){return new Promise(function(r,o){fs.existsSync(path.join(__dirname,"../private/"+e))?fs.readFile(path.join(__dirname,"../private/"+e),"utf-8",function(e,t){e?o(e):r(t)}):fs.existsSync(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e))&&fs.readFile(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e),"utf-8",function(e,t){e?o(e):r(t)})})},MethodManager.prototype.readImage=function(e){return new Promise(function(r,o){fs.existsSync(path.join(__dirname,"../private/"+e))?fs.readFile(path.join(__dirname,"../private/"+e),"base64",function(e,t){e?o(e):r(t)}):fs.existsSync(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e))&&fs.readFile(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e),"base64",function(e,t){e?o(e):r(t)})})},MethodManager}());exports.MethodManager=MethodManager;
1
+ "use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,o,n,i){return new(n=n||Promise)(function(r,t){function fulfilled(e){try{step(i.next(e))}catch(e){t(e)}}function rejected(e){try{step(i.throw(e))}catch(e){t(e)}}function step(e){var t;e.done?r(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(fulfilled,rejected)}step((i=i.apply(e,o||[])).next())})},__generator=this&&this.__generator||function(o,n){var i,s,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},c={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function verb(r){return function(e){var t=[r,e];if(i)throw new TypeError("Generator is already executing.");for(;l=c&&t[c=0]?0:l;)try{if(i=1,s&&(a=2&t[0]?s.return:t[0]?s.throw||((a=s.return)&&a.call(s),0):s.next)&&!(a=a.call(s,t[1])).done)return a;switch(s=0,(t=a?[2&t[0],a.value]:t)[0]){case 0:case 1:a=t;break;case 4:return l.label++,{value:t[1],done:!1};case 5:l.label++,s=t[1],t=[0];continue;case 7:t=l.ops.pop(),l.trys.pop();continue;default:if(!(a=0<(a=l.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){l=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3]))l.label=t[1];else if(6===t[0]&&l.label<a[1])l.label=a[1],a=t;else{if(!(a&&l.label<a[2])){a[2]&&l.ops.pop(),l.trys.pop();continue}l.label=a[2],l.ops.push(t)}}t=n.call(o,l)}catch(e){t=[6,e],s=0}finally{i=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}},__read=this&&this.__read||function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var o,n,i=r.call(e),s=[];try{for(;(void 0===t||0<t--)&&!(o=i.next()).done;)s.push(o.value)}catch(e){n={error:e}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return s},__spreadArray=this&&this.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var o,n=0,i=t.length;n<i;n++)!o&&n in t||((o=o||Array.prototype.slice.call(t,0,n))[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))},__values=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],o=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&o>=e.length?void 0:e)&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},collections_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.MethodManager=exports.AWS=void 0,require("../methods/collections")),logs_1=require("../methods/logs"),counters_1=require("../methods/counters"),pdf_1=require("../methods/pdf"),aws_1=require("../methods/aws"),path=require("path"),fs=require("fs"),nodemailer=require("nodemailer"),sesTransport=require("nodemailer-ses-transport"),accounts_1=require("../methods/accounts"),init_1=require("../fixtures/init"),cron_jobs_1=require("../fixtures/cron-jobs"),cron_jobs_2=require("../methods/cron-jobs"),flags_1=require("../methods/flags"),common_1=require("../util/common"),log_collection_1=require("../collections/log.collection"),report_builder_1=require("../methods/report-builder"),support_1=require("../methods/support"),monitor_1=require("../methods/monitor"),email_history_collection_1=require("../collections/email-history.collection"),client_s3_1=require("@aws-sdk/client-s3"),flag_updates_1=require("../methods/flag-updates"),resolveio_server_app_1=require("../resolveio-server-app"),AWS=function(){function AWS(){this._s3=null,this._s3USEast1=null}return AWS.prototype.s3=function(){return this._s3||(this._s3=new client_s3_1.S3({credentials:{accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY},region:process.env.AWS_REGION,apiVersion:"2006-03-01"})),this._s3},AWS.prototype.s3USEast1=function(){return"us-east-1"===process.env.AWS_REGION?this.s3():(this._s3USEast1||(this._s3USEast1=new client_s3_1.S3({credentials:{accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY},region:"us-east-1",apiVersion:"2006-03-01"})),this._s3USEast1)},AWS}(),MethodManager=(exports.AWS=AWS,function(){function MethodManager(e,t,r){var o=this;this._methods={},this._isWorkersEnabled=!1,this._isWorkerInstance=!1,this.emailQueue=new Set,this.isEmailProcessing=!1,this._debugcallMethodHits=0,this._debugCallMethodHits=0,this._debugCallMethodCronJobHits=0,this._debugSendQueueHits=0,this.clientDir="",this.serverConfig="",this._websocketManager=resolveio_server_app_1.ResolveIOServer.getMainServer().getWebSocketManager(),this._monitorManagerFunction=e,this._isWorkersEnabled=t,this._isWorkerInstance=r,this.clientDir=resolveio_server_app_1.ResolveIOServer.getClientDir(),this.serverConfig=resolveio_server_app_1.ResolveIOServer.getServerConfig(),"false"!==process.env.IS_WORKERS_ENABLED&&("true"!==process.env.IS_WORKER_INSTANCE||"0"!==process.env.WORKER_INDEX)||process.env.NODE_APP_INSTANCE&&"0"!==process.env.NODE_APP_INSTANCE||setTimeout(function(){console.log(new Date,"Start Server Fixture"),(0,init_1.loadServerInit)(),console.log(new Date,"End Server Fixture")},5e3),(0,cron_jobs_1.loadServerCronJobs)(),(0,accounts_1.loadAccountMethods)(this),(0,aws_1.loadAWSMethods)(this),(0,collections_1.loadCollectionMethods)(this),(0,counters_1.loadCounterMethods)(this),(0,logs_1.loadLogMethods)(this),(0,pdf_1.loadPDFMethods)(this),(0,cron_jobs_2.loadCronJobMethods)(this),(0,flags_1.loadFlagMethods)(this),(0,flag_updates_1.loadFlagUpdatesMethods)(this),(0,report_builder_1.loadReportBuilderMethods)(this),(0,support_1.loadSupportMethods)(this),(0,monitor_1.loadMonitorMethods)(this),this._aws=new AWS,resolveio_server_app_1.ResolveIOServer.getSESMail()?this._mailer=nodemailer.createTransport(sesTransport({accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY,region:process.env.AWS_SES_REGION})):this._mailer=nodemailer.createTransport({host:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_HOST,port:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_PORT,secure:!1,auth:{user:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_USERNAME,pass:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_PASSWORD},tls:{ciphers:"SSLv3"}}),setInterval(function(){resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&(console.log(new Date,"Method Manager","Send Queue Hits",o._debugSendQueueHits),console.log(new Date,"Method Manager","Call Method Internal Hits",o._debugcallMethodHits),console.log(new Date,"Method Manager","Call Method Hits",o._debugCallMethodHits),console.log(new Date,"Method Manager","Call Method Cron Hits",o._debugCallMethodCronJobHits)),o._debugcallMethodHits=0,o._debugCallMethodHits=0,o._debugCallMethodCronJobHits=0,o._debugSendQueueHits=0},6e4),this._isWorkersEnabled&&!this._isWorkerInstance||this.setupEmailWatcher()}return MethodManager.prototype.methods=function(e){this._methods=Object.assign(this._methods,e)},MethodManager.prototype.callMethodCron=function(t){for(var e,r=this,o=[],n=1;n<arguments.length;n++)o[n-1]=arguments[n];if(this._debugCallMethodCronJobHits+=1,this._methods[t]){if((1<o.length||o[0])&&!this._methods[t].skipValidation){if(!this._methods[t].check)return console.error(new Date,"No Check Function For Method "+t),void this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"No Check Function For Method "+t);if(!this._methods[t].check._schema)return console.error(new Date,"No Check Schema For Method "+t),void this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"No Check Function For Method "+t);for(var i={},s=Object.keys(this._methods[t].check._schema).filter(function(e){return!e.includes(".")}),a=0;a<o.length;a++)i[s[a]]=o[a];try{this._methods[t].check.validate(i)}catch(e){if(e)return console.error(new Date,"Error in Method Check ("+t+")",e),void this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Match Error On Method "+t+"\n\nData Being Checked\n"+JSON.stringify(i,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2))}}var l=this._monitorManagerFunction.startMonitorFunction("Cron Method",t,"","",o);return(e=this._methods[t].function).call.apply(e,__spreadArray([Object.assign({},this,MethodManager.prototype,{id_user:"",user:"",id_ws:""})],__read(o),!1)).then(function(e){return r._monitorManagerFunction.finishMonitorFunction(l),e},function(e){throw r._monitorManagerFunction.finishMonitorFunction(l),r.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Error Detected During Method "+t+" - (callMethodCron)\n\nData \n"+JSON.stringify(o,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),e})}console.log("No Method: "+t),this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"No Method: "+t)},MethodManager.prototype.callMethod=function(t){for(var e,r=this,o=[],n=1;n<arguments.length;n++)o[n-1]=arguments[n];if(this._debugcallMethodHits+=1,!this._methods[t])return console.log("No Method: "+t),null;if((1<o.length||o[0]&&"function"!=typeof o[0])&&!this._methods[t].skipValidation){if(!this._methods[t].check)return console.error(new Date,"No Check Function For Method "+t),null;if(!this._methods[t].check._schema)return console.error(new Date,"No Check Schema For Method "+t),null}"insertSubscriptionLog"!==t&&"getDataURIfromURL"!==t&&"processAirdropDistribution"!==t&&"incCounter"!==t&&"supportCreateBillingUser"!==t&&"countCollectionWithQuery"!==t&&("https://resolveio.com"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL&&"http://localhost:4200"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL?resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),createdAt:new Date,type:"callMethod",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([o]))<2e5?JSON.stringify([o],null,2):"Too Big",method:t,id_user:this.id_user||"",user:this.user||"",messageId:0,route:""}}):log_collection_1.Logs.insertOne({_id:(0,common_1.objectIdHexString)(),type:"callMethod",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([o]))<2e5?JSON.stringify([o],null,2):"Too Big",method:t,id_user:this.id_user||"",user:this.user||"",messageId:0,route:"",client:"ResolveIO",instance:"backend.resolveio.com",instance_index:process.env.NODE_APP_INSTANCE||""}));var i,s,a="function"==typeof o[o.length-1]?o.slice(0,-1):o,l=null;return l=resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession()?(i=this._monitorManagerFunction.startMonitorFunction("Method",t,this.user||"","",a),(e=this._methods[t].function).call.apply(e,__spreadArray([Object.assign({},this,MethodManager.prototype)],__read(a),!1)).then(function(e){return r._monitorManagerFunction.finishMonitorFunction(i),e},function(e){throw r._monitorManagerFunction.finishMonitorFunction(i),r.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Error Detected During Method "+t+" - (callMethod)\n\nData \n"+JSON.stringify(o,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),e})):(s=this._monitorManagerFunction.startMonitorFunction("Method",t,this.user||"","",a),resolveio_server_app_1.ResolveIOServer.getMongoManager().oneTimeTransaction(function(){var e;return(e=r._methods[t].function).call.apply(e,__spreadArray([Object.assign({},r,MethodManager.prototype)],__read(a),!1))}).then(function(e){return r._monitorManagerFunction.finishMonitorFunction(s),e}).catch(function(e){throw r._monitorManagerFunction.finishMonitorFunction(s),r.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Error Detected During Method "+t+" - (callMethod)\n\nData \n"+JSON.stringify(o,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),e})),o[o.length-1]&&"function"==typeof o[o.length-1]&&l.then(function(e){return o[o.length-1](null,e)},function(e){return o[o.length-1](e,null)}),l},MethodManager.prototype.sendWS=function(e,t,r,o,n){this._websocketManager.send(e,n),"reportBuilderGetResults"!==r&&"reportBuilderGetDistinctValue"!==r&&"reportBuilderBuildTree"!==r&&"generatePDF"!==r&&"getWOOfflineData"!==r&&"countQuery"!==r&&"countWithQuery"!==r&&"countCollectionWithQuery"!==r&&"find"!==r&&"findOne"!==r&&"findWithOptions"!==r&&"uploadFileAndSave"!==r&&"getDrivers"!==r&&"processAirdropDistribution"!==r&&("https://resolveio.com"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL&&"http://localhost:4200"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL?resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),createdAt:new Date,type:"client-response",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([o,n]))<2e5?JSON.stringify([o,n],null,2):"Too Big",method:r,id_user:e.id_user||"",user:e.user||"",messageId:n.messageId,route:""}}):log_collection_1.Logs.insertOne({_id:(0,common_1.objectIdHexString)(),type:"client-response",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([o,n]))<2e5?JSON.stringify([o,n],null,2):"Too Big",method:r,id_user:e.id_user||"",user:e.user||"",messageId:n.messageId,route:"",client:"ResolveIO",instance:"backend.resolveio.com",instance_index:process.env.NODE_APP_INSTANCE||""}))},MethodManager.prototype.setupEmailWatcher=function(){return __awaiter(this,void 0,void 0,function(){var t,o=this;return __generator(this,function(e){switch(e.label){case 0:return(t=email_history_collection_1.EmailHistories.watchCollection([])).on("change",function(r){return __awaiter(o,void 0,void 0,function(){var t;return __generator(this,function(e){return"insert"===r.operationType&&r.fullDocument&&"pending"===r.fullDocument.status?(this.emailQueue.add(r.fullDocument._id.toString()),this.tryProcessEmail()):"update"!==r.operationType&&"replace"!==r.operationType||(t=r.fullDocument)&&"pending"!==t.status&&this.emailQueue.has(t._id.toString())&&this.emailQueue.delete(t._id.toString()),[2]})})}).on("error",function(e){console.error("Email history changestream error",e),t.close()}).on("close",function(){o.setupEmailWatcher()}),[4,this.loadPendingEmails()];case 1:return e.sent(),[2]}})})},MethodManager.prototype.loadPendingEmails=function(){return __awaiter(this,void 0,void 0,function(){var t,r,o,n,i,s;return __generator(this,function(e){switch(e.label){case 0:return[4,email_history_collection_1.EmailHistories.find({status:"pending"},{sort:{_id:1}})];case 1:t=e.sent();try{for(r=__values(t),o=r.next();!o.done;o=r.next())n=o.value,this.emailQueue.add(n._id.toString())}catch(e){i={error:e}}finally{try{o&&!o.done&&(s=r.return)&&s.call(r)}finally{if(i)throw i.error}}return this.tryProcessEmail(),[2]}})})},MethodManager.prototype.tryProcessEmail=function(){return __awaiter(this,void 0,void 0,function(){var t,_,r,h=this;return __generator(this,function(e){switch(e.label){case 0:if(this.isEmailProcessing||0===this.emailQueue.size)return[2];this.isEmailProcessing=!0,e.label=1;case 1:e.trys.push([1,5,6,7]),t=function(){var o,t,r,n,i,s,a,l,c,u;return __generator(this,function(e){switch(e.label){case 0:return i=_.emailQueue.values().next().value,_.emailQueue.delete(i),[4,email_history_collection_1.EmailHistories.findOneAndUpdate({_id:i,status:"pending"},{$set:{status:"processing",processingAt:new Date}})];case 1:if(!(o=e.sent()))return[2,"continue"];if(!(o.attachments&&0<o.attachments.length))return[3,14];e.label=2;case 2:e.trys.push([2,12,,14]),e.label=3;case 3:e.trys.push([3,9,10,11]),c=void 0,t=__values(o.attachments),r=t.next(),e.label=4;case 4:return r.done?[3,8]:(n=r.value).path&&n.path.startsWith("http")?[4,fetch(n.path)]:[3,7];case 5:if((i=e.sent()).ok)return[4,i.arrayBuffer()];throw new Error("Failed to fetch attachment: ".concat(n.path));case 6:s=e.sent(),s=Buffer.from(s),s.length<=20971520&&(n.content=s,delete n.path),e.label=7;case 7:return r=t.next(),[3,4];case 8:return[3,11];case 9:return s=e.sent(),c={error:s},[3,11];case 10:try{r&&!r.done&&(u=t.return)&&u.call(t)}finally{if(c)throw c.error}return[7];case 11:return[3,14];case 12:return a=e.sent(),console.error("Failed to fetch attachment:",a),[4,email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"failed",error:"string"==typeof a?a:_.safeStringify(a),completedAt:new Date}})];case 13:return e.sent(),[2,"continue"];case 14:return(l={replyTo:o.reply_to||resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_REPLY_TO||void 0,from:o.send_from||resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_FROM,to:o.email,subject:(resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/dev\./)||resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/www\.dev\./)?"(DEV SERVER) - ":"")+o.subject,text:"string"==typeof o.text?o.text:"",html:"string"==typeof o.html?o.html:"",attachments:o.attachments||[]}).attachments&&0<l.attachments.length&&(l.attachments=l.attachments.map(function(e){e=__assign({},e);return!e.content||"object"!=typeof e.content||e.content instanceof Buffer?"string"==typeof e.content&&"base64"===e.encoding?(e.content=Buffer.from(e.content,"base64"),delete e.encoding):"string"==typeof e.content&&(e.content=Buffer.from(e.content)):"Binary"===e.content._bsontype&&0===e.content.sub_type?e.content=Buffer.from(e.content.buffer):e.content=Buffer.from(e.content),e})),[4,new Promise(function(r){h._mailer.sendMail(l,function(t,e){return __awaiter(h,void 0,void 0,function(){return __generator(this,function(e){try{t?(console.error("Failed to send email:",t),email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"failed",error:"string"==typeof t?t:this.safeStringify(t),completedAt:new Date}})):"dev@resolveio.com"===o.email?email_history_collection_1.EmailHistories.deleteOne({_id:o._id}):email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"completed",completedAt:new Date}})}catch(e){console.error("Error in sendMail callback:",e),email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"failed",error:"string"==typeof e?e:this.safeStringify(e),completedAt:new Date}})}finally{r()}return[2]})})})})];case 15:return e.sent(),[4,new Promise(function(e){return setTimeout(e,1e3)})];case 16:return e.sent(),[2]}})},_=this,e.label=2;case 2:return 0<this.emailQueue.size?[5,t()]:[3,4];case 3:return e.sent(),[3,2];case 4:return[3,7];case 5:return r=e.sent(),console.error("Error processing email queue:",r),[3,7];case 6:return this.isEmailProcessing=!1,0<this.emailQueue.size&&this.tryProcessEmail(),[7];case 7:return[2]}})})},MethodManager.prototype.safeStringify=function(e){try{return JSON.stringify(e,this.getCircularReplacer())}catch(e){return"Error in JSON stringifying: ".concat(e.message)}},MethodManager.prototype.getCircularReplacer=function(){var r=new WeakSet;return function(e,t){if("object"==typeof t&&null!==t){if(r.has(t))return"[Circular]";r.add(t)}return t}},MethodManager.prototype.sendEmail=function(n,i,s,a,l,c,u,_){var e=this;return void 0===_&&(_=!1),new Promise(function(r,o){return __awaiter(e,void 0,void 0,function(){var t;return __generator(this,function(e){return(n=!resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/dev\./)&&!resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/www\.dev\./)&&"http://localhost:4200"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||n.match(/\@resolveio\.com/)?n:"dev@resolveio.com")?"http://localhost:4200"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||_?(l=l||[],l=(l=Array.isArray(l)?l:[l]).map(function(e){e=__assign({},e);return Buffer.isBuffer(e.content)&&(e.content=e.content.toString("base64"),e.encoding="base64"),e}),t={_id:(0,common_1.objectIdHexString)(),__v:0,date:new Date,id_user:this.id_user||"",user:this.user||"",email:n,subject:i||"",text:s||"",html:a||"",attachments:l||[],send_from:c||"",reply_to:u||"",status:"pending",error:""},email_history_collection_1.EmailHistories.insertOne(t).then(function(e){return r(e)},function(e){console.error("Failed to queue email:",e),o(e)})):(console.log("Send email",n,i,s,a,l,c),r(!0)):r(!0),[2]})})})},MethodManager.prototype.getAWS=function(){return this._aws},MethodManager.prototype.readFile=function(e){return new Promise(function(r,o){fs.existsSync(path.join(__dirname,"../private/"+e))?fs.readFile(path.join(__dirname,"../private/"+e),"utf-8",function(e,t){e?o(e):r(t)}):fs.existsSync(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e))&&fs.readFile(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e),"utf-8",function(e,t){e?o(e):r(t)})})},MethodManager.prototype.readImage=function(e){return new Promise(function(r,o){fs.existsSync(path.join(__dirname,"../private/"+e))?fs.readFile(path.join(__dirname,"../private/"+e),"base64",function(e,t){e?o(e):r(t)}):fs.existsSync(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e))&&fs.readFile(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e),"base64",function(e,t){e?o(e):r(t)})})},MethodManager}());exports.MethodManager=MethodManager;
2
2
  //# sourceMappingURL=method.manager.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/managers/method.manager.ts"],"names":["collections_1","require","logs_1","counters_1","pdf_1","aws_1","path","fs","nodemailer","sesTransport","accounts_1","init_1","cron_jobs_1","cron_jobs_2","flags_1","common_1","log_collection_1","report_builder_1","support_1","monitor_1","email_history_collection_1","client_s3_1","flag_updates_1","resolveio_server_app_1","AWS","this","_s3","_s3USEast1","prototype","s3","S3","credentials","accessKeyId","process","env","AWS_ACCESS_KEY","secretAccessKey","AWS_SECRET_ACCESS_KEY","region","AWS_REGION","apiVersion","s3USEast1","MethodManager","exports","monitorManagerFunction","isWorkersEnabled","isWorkerInstance","_this","_methods","_isWorkersEnabled","_isWorkerInstance","emailQueue","Set","isEmailProcessing","_debugcallMethodHits","_debugCallMethodHits","_debugCallMethodCronJobHits","_debugSendQueueHits","clientDir","serverConfig","_websocketManager","ResolveIOServer","getMainServer","getWebSocketManager","_monitorManagerFunction","getClientDir","getServerConfig","IS_WORKERS_ENABLED","IS_WORKER_INSTANCE","WORKER_INDEX","NODE_APP_INSTANCE","setTimeout","console","log","Date","loadServerInit","loadServerCronJobs","loadAccountMethods","loadAWSMethods","loadCollectionMethods","loadCounterMethods","loadLogMethods","loadPDFMethods","loadCronJobMethods","loadFlagMethods","loadFlagUpdatesMethods","loadReportBuilderMethods","loadSupportMethods","loadMonitorMethods","_aws","getSESMail","_mailer","createTransport","AWS_SES_REGION","host","port","secure","auth","user","pass","tls","ciphers","setInterval","getSubscriptionManager","getEnableDebug","setupEmailWatcher","methods","method","Object","assign","callMethodCron","methodData","_i","arguments","length","skipValidation","check","error","sendEmail","_schema","valObj","rootKeys","keys","filter","a","includes","i","validate","errors","JSON","stringify","monitor","startMonitorFunction","_a","function","call","apply","__spreadArray","id_user","id_ws","__read","then","res","finishMonitorFunction","methodErrs","callMethod","getLocalLogManager","writeLog","type","data","_id","objectIdHexString","createdAt","collection","id_document","payload","getBinarySize","messageId","route","Logs","insertOne","client","instance","instance_index","monitor_2","functionMethodData","slice","promise","getMongoManager","getSession","withSession","err","sendWS","ws","messageDate","send","changeStream","EmailHistories","watchCollection","on","change","__awaiter","operationType","fullDocument","status","add","toString","tryProcessEmail","updatedEmail","has","delete","close","loadPendingEmails","sent","find","sort","pendingEmails","_b","pendingEmails_1","__values","pendingEmails_1_1","next","done","email","value","size","emailId","this_1","values","findOneAndUpdate","$set","processingAt","emailHistory","_e","attachments","e_2","_c","att","startsWith","fetch","response","ok","arrayBuffer","Error","concat","buffer","Buffer","from","content","err_2","updateOne","safeStringify","completedAt","mailOptions","replyTo","reply_to","undefined","send_from","MAIL_FROM","to","subject","match","text","html","map","newAtt","__assign","encoding","_bsontype","sub_type","Promise","resolve","sendMail","info","deleteOne","err_1","obj","getCircularReplacer","e","message","seen","WeakSet","key","sendTo","local_override","reject","Array","isArray","isBuffer","__v","date","history","getAWS","readFile","fileName","existsSync","join","__dirname","readImage"],"mappings":"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","file":"method.manager.js","sourcesContent":["import { ServerResponseModel } from '../models/server-response.model';\nimport { loadCollectionMethods } from '../methods/collections';\nimport { MethodModel } from '../models/method.model';\nimport { loadLogMethods } from '../methods/logs';\nimport { loadCounterMethods } from '../methods/counters';\nimport { loadPDFMethods } from '../methods/pdf';\nimport { loadAWSMethods } from '../methods/aws';\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport * as nodemailer from 'nodemailer';\nimport * as sesTransport from 'nodemailer-ses-transport';\nimport { loadAccountMethods } from '../methods/accounts';\nimport { loadServerInit } from '../fixtures/init';\nimport { loadServerCronJobs } from '../fixtures/cron-jobs';\nimport { loadCronJobMethods } from '../methods/cron-jobs';\nimport { loadFlagMethods } from '../methods/flags';\nimport { getBinarySize, objectIdHexString } from '../util/common';\nimport { Logs } from '../collections/log.collection';\nimport { loadReportBuilderMethods } from '../methods/report-builder';\nimport { loadSupportMethods } from '../methods/support';\nimport { loadMonitorMethods } from '../methods/monitor';\nimport { EmailHistories } from '../collections/email-history.collection';\nimport { MonitorManagerFunction } from './monitor.manager';\nimport { S3 } from '@aws-sdk/client-s3';\nimport { WebSocketManager } from './websocket.manager';\nimport * as WebSocket from 'ws';\nimport { loadFlagUpdatesMethods } from '../methods/flag-updates';\nimport { EmailHistoryModel } from '../models/email-history.model';\nimport { ResolveIOServer } from '../resolveio-server-app';\n\nexport class AWS {\n\tprivate _s3: S3 = null;\n\tprivate _s3USEast1: S3 = null;\n\n\tconstructor() {\n\n\t}\n\n\tpublic s3(): S3 {\n\t\tif (this._s3) {\n\t\t\treturn this._s3;\n\t\t}\n\n\t\tthis._s3 = new S3({\n\t\t\tcredentials: {\n\t\t\t\taccessKeyId: process.env.AWS_ACCESS_KEY,\n\t\t\t\tsecretAccessKey: process.env.AWS_SECRET_ACCESS_KEY\n\t\t\t},\n\t\t\tregion: process.env.AWS_REGION,\n\t\t\tapiVersion: '2006-03-01'\n\t\t});\n\n\t\treturn this._s3;\n\t}\n\n\tpublic s3USEast1(): S3 {\n\t\tif (process.env.AWS_REGION === 'us-east-1') {\n\t\t\treturn this.s3();\n\t\t}\n\t\telse {\n\t\t\tif (this._s3USEast1) {\n\t\t\t\treturn this._s3USEast1;\n\t\t\t}\n\t\t\t\n\t\t\tthis._s3USEast1 = new S3({\n\t\t\t\tcredentials: {\n\t\t\t\t\taccessKeyId: process.env.AWS_ACCESS_KEY,\n\t\t\t\t\tsecretAccessKey: process.env.AWS_SECRET_ACCESS_KEY\n\t\t\t\t},\n\t\t\t\tregion: 'us-east-1',\n\t\t\t\tapiVersion: '2006-03-01'\n\t\t\t});\n\t\n\t\t\treturn this._s3USEast1;\n\t\t}\n\t}\n}\n\nexport class MethodManager {\n\tprivate _websocketManager: WebSocketManager;\n\tpublic _methods: MethodModel = {};\n\tprivate _mailer: nodemailer.Transporter;\n\tprivate _aws: AWS;\n\tprivate _monitorManagerFunction: MonitorManagerFunction;\n\tprivate _isWorkersEnabled = false;\n\tprivate _isWorkerInstance = false;\n\n\tprivate emailQueue: Set<string> = new Set(); // Set to store pending email IDs\n\tprivate isEmailProcessing = false;\n\n\tprivate _debugcallMethodHits = 0;\n\tprivate _debugCallMethodHits = 0;\n\tprivate _debugCallMethodCronJobHits = 0;\n\tprivate _debugSendQueueHits = 0;\n\n\tpublic clientDir = '';\n\tpublic serverConfig = '';\n\n\tconstructor(monitorManagerFunction: MonitorManagerFunction, isWorkersEnabled, isWorkerInstance) {\n\t\tthis._websocketManager = ResolveIOServer.getMainServer().getWebSocketManager();\n\t\tthis._monitorManagerFunction = monitorManagerFunction;\n\t\tthis._isWorkersEnabled = isWorkersEnabled;\n\t\tthis._isWorkerInstance = isWorkerInstance;\n\n\t\tthis.clientDir = ResolveIOServer.getClientDir();\n\t\tthis.serverConfig = ResolveIOServer.getServerConfig();\n\n\t\t// Fixtures\n\t\tif (process.env.IS_WORKERS_ENABLED === 'false' || (process.env.IS_WORKER_INSTANCE === 'true' && process.env.WORKER_INDEX === '0')) {\n\t\t\tif (!process.env.NODE_APP_INSTANCE || process.env.NODE_APP_INSTANCE === '0') {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tconsole.log(new Date(), 'Start Server Fixture');\n\t\t\t\t\tloadServerInit();\n\t\t\t\t\tconsole.log(new Date(), 'End Server Fixture');\n\t\t\t\t}, 5000);\n\t\t\t}\n\t\t}\n\n\t\tloadServerCronJobs();\n\n\t\t// Methods\n\t\tloadAccountMethods(this);\n\t\tloadAWSMethods(this);\n\t\tloadCollectionMethods(this);\n\t\tloadCounterMethods(this);\n\t\tloadLogMethods(this);\n\t\tloadPDFMethods(this);\n\t\tloadCronJobMethods(this);\n\t\tloadFlagMethods(this);\n\t\tloadFlagUpdatesMethods(this);\n\t\tloadReportBuilderMethods(this);\n\t\tloadSupportMethods(this);\n\t\tloadMonitorMethods(this);\n\n\t\tthis._aws = new AWS();\n\n\t\tif (ResolveIOServer.getSESMail()) {\n\t\t\tthis._mailer = nodemailer.createTransport(sesTransport({\n\t\t\t\taccessKeyId: process.env.AWS_ACCESS_KEY,\n\t\t\t\tsecretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,\n\t\t\t\tregion: process.env.AWS_SES_REGION\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tthis._mailer = nodemailer.createTransport({\n\t\t\t\thost: ResolveIOServer.getServerConfig()['MAIL_HOST'], // 'smtp.office365.com', // Office 365 server\n\t\t\t\tport: ResolveIOServer.getServerConfig()['MAIL_PORT'], //587, // secure SMTP\n\t\t\t\tsecure: false, // false for TLS - as a boolean not string - but the default is false so just remove this completely\n\t\t\t\tauth: {\n\t\t\t\t\tuser: ResolveIOServer.getServerConfig()['MAIL_USERNAME'],\n\t\t\t\t\tpass: ResolveIOServer.getServerConfig()['MAIL_PASSWORD']\n\t\t\t\t},\n\t\t\t\ttls: {\n\t\t\t\t\tciphers: 'SSLv3'\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tsetInterval(() => {\n\t\t\tif (ResolveIOServer.getMainServer().getSubscriptionManager() && ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()) {\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Send Queue Hits', this._debugSendQueueHits);\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Call Method Internal Hits', this._debugcallMethodHits);\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Call Method Hits', this._debugCallMethodHits);\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Call Method Cron Hits', this._debugCallMethodCronJobHits);\n\t\t\t}\n\n\t\t\tthis._debugcallMethodHits = 0;\n\t\t\tthis._debugCallMethodHits = 0;\n\t\t\tthis._debugCallMethodCronJobHits = 0;\n\t\t\tthis._debugSendQueueHits = 0;\n\t\t}, 60000);\n\n\t\tif (!this._isWorkersEnabled || this._isWorkerInstance) {\n\t\t\tthis.setupEmailWatcher();\n\t\t}\n\t}\n\n\t// Add methods to private methods object\n\tpublic methods(method: MethodModel) {\n\t\tthis._methods = Object.assign(this._methods, method);\n\t}\n\n\tpublic callMethodCron(method: string, ...methodData: any[]) {\n\t\tthis._debugCallMethodCronJobHits += 1;\n\n\t\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + ResolveIOServer.getServerConfig()['CLIENT_NAME'], 'No Method: ' + method);\n\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif ((methodData.length > 1 || methodData[0]) && !this._methods[method].skipValidation) {\n\t\t\tif (!this._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\n\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + ResolveIOServer.getServerConfig()['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!this._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\n\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + ResolveIOServer.getServerConfig()['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet valObj = {};\n\t\t\t\tlet valKeys = Object.keys(this._methods[method].check._schema);\n\n\t\t\t\tlet rootKeys = valKeys.filter(a => !a.includes('.'));\n\t\t\t\t\n\t\t\t\tfor (let i = 0; i < methodData.length; i++) {\n\t\t\t\t\tvalObj[rootKeys[i]] = methodData[i];\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthis._methods[method].check.validate(valObj);\n\t\t\t\t}\n\t\t\t\tcatch (errors) {\n\t\t\t\t\tif (errors) {\n\t\t\t\t\t\tconsole.error(new Date(), 'Error in Method Check (' + method + ')', errors);\n\n\t\t\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + ResolveIOServer.getServerConfig()['CLIENT_NAME'], 'Match Error On Method ' + method + '\\n\\nData Being Checked\\n' + JSON.stringify(valObj, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\t\t\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlet promise = null;\n\n\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Cron Method', method, '', '', methodData);\n\t\tpromise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype, {id_user: '', user: '', id_ws: ''}), ...methodData)\n\t\t.then(res => {\n\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\treturn res;\n\t\t}, methodErrs => {\n\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + ResolveIOServer.getServerConfig()['CLIENT_NAME'], 'Error Detected During Method ' + method + ' - (callMethodCron)\\n\\nData \\n' + JSON.stringify(methodData, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(methodErrs, null, 2));\n\t\t\tthrow methodErrs;\n\t\t});\n\n\t\treturn promise;\n\t}\n\n\t// Call/run method internal (No Emit on Socket)\n\tpublic callMethod(method: string, ...methodData: any[]): Promise<any> {\n\t\tthis._debugcallMethodHits += 1;\n\n\t\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\t\t\treturn null;\n\t\t}\n\n\t\tif ((methodData.length > 1 || (methodData[0] && typeof methodData[0] !== 'function')) && !this._methods[method].skipValidation) {\n\t\t\tif (!this._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\telse if (!this._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\tif (method !== 'insertSubscriptionLog' && method !== 'getDataURIfromURL' && method !== 'processAirdropDistribution' && method !== 'incCounter' && method !== 'supportCreateBillingUser' && method !== 'countCollectionWithQuery') {\n\t\t\tif (\n\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'\n\t\t\t&& ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200'\n\t\t\t) {\n\t\t\t\tResolveIOServer.getLocalLogManager().writeLog({\n\t\t\t\t\ttype: 'log',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\tcreatedAt: new Date(),\n\t\t\t\t\t\ttype: 'callMethod',\n\t\t\t\t\t\tcollection: '',\n\t\t\t\t\t\tid_document: '',\n\t\t\t\t\t\tpayload: getBinarySize(JSON.stringify([methodData])) < 200000 ? JSON.stringify([methodData], null, 2) : 'Too Big',\n\t\t\t\t\t\tmethod: method,\n\t\t\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\t\t\tuser: this['user'] || '',\n\t\t\t\t\t\tmessageId: 0,\n\t\t\t\t\t\troute: ''\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tLogs.insertOne({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'callMethod',\n\t\t\t\t\tcollection: '',\n\t\t\t\t\tid_document: '',\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([methodData])) < 200000 ? JSON.stringify([methodData], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: method,\n\t\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\t\tuser: this['user'] || '',\n\t\t\t\t\tmessageId: 0,\n\t\t\t\t\troute: '',\n\t\t\t\t\tclient: 'ResolveIO',\n\t\t\t\t\tinstance: 'backend.resolveio.com',\n\t\t\t\t\tinstance_index: process.env.NODE_APP_INSTANCE || ''\n\t\t\t\t})\n\t\t\t};\n\t\t}\n\n\t\tlet functionMethodData = typeof(methodData[methodData.length - 1]) === 'function' ? methodData.slice(0, -1) : methodData;\n\t\tlet promise = null;\n\n\t\tconst session = ResolveIOServer.getMongoManager().getSession();\n\n\t\tif (!session) {\n\t\t\tResolveIOServer.getMongoManager().withSession(() => {\n\t\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Method', method, this['user'] || '', '', functionMethodData);\n\t\t\t\tpromise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype), ...functionMethodData)\n\t\t\t\t\t.then(res => {\n\t\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\t\t\t\treturn res;\n\t\t\t\t\t},\n\t\t\t\t\tmethodErrs => {\n\t\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + ResolveIOServer.getServerConfig()['CLIENT_NAME'], 'Error Detected During Method ' + method + ' - (callMethod)\\n\\nData \\n' + JSON.stringify(methodData, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(methodErrs, null, 2));\n\t\t\t\t\t\tthrow methodErrs;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Method', method, this['user'] || '', '', functionMethodData);\n\t\t\tpromise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype), ...functionMethodData)\n\t\t\t\t.then(res => {\n\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\t\t\t\tmethodErrs => {\n\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + ResolveIOServer.getServerConfig()['CLIENT_NAME'], 'Error Detected During Method ' + method + ' - (callMethod)\\n\\nData \\n' + JSON.stringify(methodData, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(methodErrs, null, 2));\n\t\t\t\t\tthrow methodErrs;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (methodData[methodData.length - 1] && typeof(methodData[methodData.length - 1]) === 'function') {\n\t\t\tpromise.then(res => methodData[methodData.length - 1](null, res), err => methodData[methodData.length - 1](err, null));\n\t\t}\n\t\t\n\t\treturn promise;\n\t}\n\n\tprivate sendWS(ws: WebSocket, messageDate: Date, method: string, methodData: any[], data: ServerResponseModel) {\n\t\tthis._websocketManager.send(ws, data);\n\n\t\tif (\n\t\t\tmethod !== 'reportBuilderGetResults' &&\n\t\t\tmethod !== 'reportBuilderGetDistinctValue' &&\n\t\t\tmethod !== 'reportBuilderBuildTree' &&\n\t\t\tmethod !== 'generatePDF' &&\n\t\t\tmethod !== 'getWOOfflineData' &&\n\t\t\tmethod !== 'countQuery' &&\n\t\t\tmethod !== 'countWithQuery' &&\n\t\t\tmethod !== 'countCollectionWithQuery' &&\n\t\t\tmethod !== 'find' &&\n\t\t\tmethod !== 'findOne' &&\n\t\t\tmethod !== 'findWithOptions' &&\n\t\t\tmethod !== 'uploadFileAndSave' &&\n\t\t\tmethod !== 'getDrivers' &&\n\t\t\tmethod !== 'processAirdropDistribution'\n\t\t) {\n\t\t\tif (\n\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'\n\t\t\t&& ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200'\n\t\t\t) {\n\t\t\t\tResolveIOServer.getLocalLogManager().writeLog({\n\t\t\t\t\ttype: 'log',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\tcreatedAt: new Date(),\n\t\t\t\t\t\ttype: 'client-response',\n\t\t\t\t\t\tcollection: '',\n\t\t\t\t\t\tid_document: '',\n\t\t\t\t\t\tpayload:\n\t\t\t\t\t\t\tgetBinarySize(JSON.stringify([methodData, data])) < 200000\n\t\t\t\t\t\t\t\t? JSON.stringify([methodData, data], null, 2)\n\t\t\t\t\t\t\t\t: 'Too Big',\n\t\t\t\t\t\tmethod: method,\n\t\t\t\t\t\tid_user: ws['id_user'] || '',\n\t\t\t\t\t\tuser: ws['user'] || '',\n\t\t\t\t\t\tmessageId: data.messageId,\n\t\t\t\t\t\troute: ''\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tLogs.insertOne({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'client-response',\n\t\t\t\t\tcollection: '',\n\t\t\t\t\tid_document: '',\n\t\t\t\t\tpayload:\n\t\t\t\t\t\tgetBinarySize(JSON.stringify([methodData, data])) < 200000\n\t\t\t\t\t\t\t? JSON.stringify([methodData, data], null, 2)\n\t\t\t\t\t\t\t: 'Too Big',\n\t\t\t\t\tmethod: method,\n\t\t\t\t\tid_user: ws['id_user'] || '',\n\t\t\t\t\tuser: ws['user'] || '',\n\t\t\t\t\tmessageId: data.messageId,\n\t\t\t\t\troute: '',\n\t\t\t\t\tclient: 'ResolveIO',\n\t\t\t\t\tinstance: 'backend.resolveio.com',\n\t\t\t\t\tinstance_index: process.env.NODE_APP_INSTANCE || ''\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// MethodResponses.create({\n\t\t// \t_id: objectIdHexString(),\n\t\t// \t__v: 0,\n\t\t// \tid_user: ws['id_user'] || '',\n\t\t// \tmessage_id: data.messageId,\n\t\t// \tresponse: getBinarySize(JSON.stringify(data)) < 200000 ? data : { error: 'Too Big' },\n\t\t// \tmethod: method,\n\t\t// \tdate: messageDate\n\t\t// });\n\t}\n\n\tasync setupEmailWatcher() {\n\t\tconst changeStream = EmailHistories.watchCollection([]);\n\n\t\tchangeStream.on('change', async (change) => {\n\t\t\tif (change.operationType === 'insert' && change.fullDocument && change.fullDocument.status === 'pending') {\n\t\t\t\tthis.emailQueue.add(change.fullDocument._id.toString());\n\t\t\t\tthis.tryProcessEmail();\n\t\t\t}\n\t\t\telse if (change.operationType === 'update' || change.operationType === 'replace') {\n\t\t\t\tconst updatedEmail = change.fullDocument;\n\t\t\t\tif (updatedEmail && updatedEmail.status !== 'pending' && this.emailQueue.has(updatedEmail._id.toString())) {\n\t\t\t\t\tthis.emailQueue.delete(updatedEmail._id.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\t.on('error', err => {\n\t\t\tconsole.error('Email history changestream error', err);\n\t\t\tchangeStream.close();\n\t\t})\n\t\t.on('close', () => {\n\t\t\tthis.setupEmailWatcher();\n\t\t});\n\n\t\tawait this.loadPendingEmails();\n\t}\n\n\tasync loadPendingEmails() {\n\t\t// Load any pending emails on startup\n\t\tconst pendingEmails = await EmailHistories.find({ status: 'pending' }, {sort: {_id: 1}});\n\t\tfor (const email of pendingEmails) {\n\t\t\tthis.emailQueue.add(email._id.toString());\n\t\t}\n\t\t// Try to process emails\n\t\tthis.tryProcessEmail();\n\t}\n\n\tasync tryProcessEmail() {\n\t\tif (this.isEmailProcessing || this.emailQueue.size === 0) {\n\t\t\treturn;\n\t\t}\n\t\n\t\tthis.isEmailProcessing = true;\n\t\n\t\ttry {\n\t\t\twhile (this.emailQueue.size > 0) {\n\t\t\t\tconst emailId = this.emailQueue.values().next().value;\n\t\t\t\tthis.emailQueue.delete(emailId);\n\t\n\t\t\t\tconst emailHistory = await EmailHistories.findOneAndUpdate(\n\t\t\t\t\t{\n\t\t\t\t\t\t_id: emailId,\n\t\t\t\t\t\tstatus: 'pending',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t$set: { status: 'processing', processingAt: new Date() },\n\t\t\t\t\t}\n\t\t\t\t);\n\t\n\t\t\t\tif (!emailHistory) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\n\t\t\t\t// Fetch and process attachments\n\t\t\t\tif (emailHistory.attachments && emailHistory.attachments.length > 0) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfor (let att of emailHistory.attachments) {\n\t\t\t\t\t\t\tif (att.path && att.path.startsWith('http')) {\n\t\t\t\t\t\t\t\tconst response = await fetch(att.path);\n\t\t\t\t\t\t\t\tif (!response.ok) {\n\t\t\t\t\t\t\t\t\tthrow new Error(`Failed to fetch attachment: ${att.path}`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst arrayBuffer = await response.arrayBuffer();\n\t\t\t\t\t\t\t\tconst buffer = Buffer.from(arrayBuffer);\n\t\n\t\t\t\t\t\t\t\t// Check the size of the attachment\n\t\t\t\t\t\t\t\tconst maxSize = 20 * 1024 * 1024; // 20MB in bytes\n\t\t\t\t\t\t\t\tif (buffer.length <= maxSize) {\n\t\t\t\t\t\t\t\t\t// Attachment is within size limits, include it\n\t\t\t\t\t\t\t\t\tatt.content = buffer;\n\t\t\t\t\t\t\t\t\tdelete att.path;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\tconsole.error('Failed to fetch attachment:', err);\n\t\n\t\t\t\t\t\tawait EmailHistories.updateOne(\n\t\t\t\t\t\t\t{ _id: emailHistory._id },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t$set: {\n\t\t\t\t\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\t\t\t\t\terror: typeof err === 'string' ? err : this.safeStringify(err),\n\t\t\t\t\t\t\t\t\tcompletedAt: new Date(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t\t// Skip to the next email\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\t// Prepare email options\n\t\t\t\tconst mailOptions: any = {\n\t\t\t\t\treplyTo: emailHistory.reply_to || (ResolveIOServer.getServerConfig()['MAIL_REPLY_TO'] || undefined),\n\t\t\t\t\tfrom: emailHistory.send_from || ResolveIOServer.getServerConfig().MAIL_FROM,\n\t\t\t\t\tto: emailHistory.email,\n\t\t\t\t\tsubject:\n\t\t\t\t\t\t(ResolveIOServer.getServerConfig()['ROOT_URL'].match(/https:\\/\\/dev\\./) ||\n\t\t\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'].match(/https:\\/\\/www\\.dev\\./)\n\t\t\t\t\t\t\t? '(DEV SERVER) - '\n\t\t\t\t\t\t\t: '') + emailHistory.subject,\n\t\t\t\t\ttext: typeof emailHistory.text === 'string' ? emailHistory.text : '',\n\t\t\t\t\thtml: typeof emailHistory.html === 'string' ? emailHistory.html : '',\n\t\t\t\t\tattachments: emailHistory.attachments || [],\n\t\t\t\t};\n\t\n\t\t\t\t// Process attachments before sending\n\t\t\t\tif (mailOptions.attachments && mailOptions.attachments.length > 0) {\n\t\t\t\t\tmailOptions.attachments = mailOptions.attachments.map((att) => {\n\t\t\t\t\t\tconst newAtt = { ...att };\n\t\t\t\t\t\t// Handle attachments stored as BinData or Buffer\n\t\t\t\t\t\tif (newAtt.content && typeof newAtt.content === 'object' && !(newAtt.content instanceof Buffer)) {\n\t\t\t\t\t\t\t// Convert MongoDB's Binary data to Buffer\n\t\t\t\t\t\t\tif (newAtt.content._bsontype === 'Binary' && newAtt.content.sub_type === 0) {\n\t\t\t\t\t\t\t\tnewAtt.content = Buffer.from(newAtt.content.buffer);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t// Handle other types if necessary\n\t\t\t\t\t\t\t\tnewAtt.content = Buffer.from(newAtt.content);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Handle attachments stored as Base64 strings\n\t\t\t\t\t\telse if (typeof newAtt.content === 'string' && newAtt.encoding === 'base64') {\n\t\t\t\t\t\t\tnewAtt.content = Buffer.from(newAtt.content, 'base64');\n\t\t\t\t\t\t\tdelete newAtt.encoding;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Ensure the content is a Buffer\n\t\t\t\t\t\telse if (typeof newAtt.content === 'string') {\n\t\t\t\t\t\t\tnewAtt.content = Buffer.from(newAtt.content);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn newAtt;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\n\t\t\t\t// Send the email\n\t\t\t\tawait new Promise<void>((resolve) => {\n\t\t\t\t\tthis._mailer.sendMail(mailOptions, async (err, info) => {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\tconsole.error('Failed to send email:', err);\n\t\t\t\t\t\t\t\tEmailHistories.updateOne(\n\t\t\t\t\t\t\t\t\t{ _id: emailHistory._id },\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$set: {\n\t\t\t\t\t\t\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\t\t\t\t\t\t\terror: typeof err === 'string' ? err : this.safeStringify(err),\n\t\t\t\t\t\t\t\t\t\t\tcompletedAt: new Date(),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif (emailHistory.email === 'dev@resolveio.com') {\n\t\t\t\t\t\t\t\t\tEmailHistories.deleteOne({ _id: emailHistory._id });\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tEmailHistories.updateOne(\n\t\t\t\t\t\t\t\t\t\t{ _id: emailHistory._id },\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t$set: {\n\t\t\t\t\t\t\t\t\t\t\t\tstatus: 'completed',\n\t\t\t\t\t\t\t\t\t\t\t\tcompletedAt: new Date(),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\t\tconsole.error('Error in sendMail callback:', error);\n\t\t\t\t\t\t\tEmailHistories.updateOne(\n\t\t\t\t\t\t\t\t{ _id: emailHistory._id },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t$set: {\n\t\t\t\t\t\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\t\t\t\t\t\terror: typeof error === 'string' ? error : this.safeStringify(error),\n\t\t\t\t\t\t\t\t\t\tcompletedAt: new Date(),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tresolve(); // Continue processing the queue\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\n\t\t\t\t// Wait for at least one second before sending the next email\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, 1000));\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error('Error processing email queue:', err);\n\t\t}\n\t\tfinally {\n\t\t\tthis.isEmailProcessing = false;\n\t\t\t// Check if new emails arrived while processing\n\t\t\tif (this.emailQueue.size > 0) {\n\t\t\t\tthis.tryProcessEmail();\n\t\t\t}\n\t\t}\n\t}\n\n\tsafeStringify(obj)\n\t{\n\t\ttry\n\t\t{\n\t\t\treturn JSON.stringify(obj, this.getCircularReplacer());\n\t\t}\n\t\tcatch (e)\n\t\t{\n\t\t\treturn `Error in JSON stringifying: ${e.message}`;\n\t\t}\n\t}\n\n\tgetCircularReplacer()\n\t{\n\t\tconst seen = new WeakSet();\n\t\treturn (key, value) =>\n\t\t{\n\t\t\tif (typeof value === \"object\" && value !== null)\n\t\t\t{\n\t\t\t\tif (seen.has(value))\n\t\t\t\t{\n\t\t\t\t\treturn \"[Circular]\";\n\t\t\t\t}\n\t\t\t\tseen.add(value);\n\t\t\t}\n\t\t\treturn value;\n\t\t};\n\t}\n\n\tpublic sendEmail(\n\t\tsendTo: string,\n\t\tsubject: string,\n\t\ttext?: string,\n\t\thtml?: string,\n\t\tattachments?: any[],\n\t\tsend_from?: string,\n\t\treply_to?: string,\n\t\tlocal_override = false\n\t) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t// Modify sendTo in development environments\n\t\t\tif (\n\t\t\t\t(ResolveIOServer.getServerConfig()['ROOT_URL'].match(/https:\\/\\/dev\\./) ||\n\t\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'].match(/https:\\/\\/www\\.dev\\./) ||\n\t\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] === 'http://localhost:4200') &&\n\t\t\t\t!sendTo.match(/\\@resolveio\\.com/)\n\t\t\t) {\n\t\t\t\tsendTo = 'dev@resolveio.com';\n\t\t\t}\n\t\n\t\t\tif (sendTo) {\n\t\t\t\tif (\n\t\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200' ||\n\t\t\t\t\tlocal_override\n\t\t\t\t) {\n\t\t\t\t\tif (!attachments) {\n\t\t\t\t\t\tattachments = [];\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (!Array.isArray(attachments)) {\n\t\t\t\t\t\tattachments = [attachments];\n\t\t\t\t\t}\n\t\n\t\t\t\t\t// Process attachments before saving\n\t\t\t\t\tattachments = attachments.map((att) => {\n\t\t\t\t\t\tconst newAtt = { ...att };\n\t\t\t\t\t\tif (Buffer.isBuffer(newAtt.content)) {\n\t\t\t\t\t\t\tnewAtt.content = newAtt.content.toString('base64');\n\t\t\t\t\t\t\tnewAtt.encoding = 'base64';\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn newAtt;\n\t\t\t\t\t});\n\t\n\t\t\t\t\t// Queue the email in MongoDB\n\t\t\t\t\tconst emailHistory: EmailHistoryModel = {\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\t\t\tuser: this['user'] || '',\n\t\t\t\t\t\temail: sendTo,\n\t\t\t\t\t\tsubject: subject || '',\n\t\t\t\t\t\ttext: text || '',\n\t\t\t\t\t\thtml: html || '',\n\t\t\t\t\t\tattachments: attachments || [],\n\t\t\t\t\t\tsend_from: send_from || '',\n\t\t\t\t\t\treply_to: reply_to || '',\n\t\t\t\t\t\tstatus: 'pending',\n\t\t\t\t\t\terror: ''\n\t\t\t\t\t};\n\t\n\t\t\t\t\tEmailHistories.insertOne(emailHistory).then(\n\t\t\t\t\t\t(history) => resolve(history),\n\t\t\t\t\t\t(err) => {\n\t\t\t\t\t\t\tconsole.error('Failed to queue email:', err);\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t'Send email',\n\t\t\t\t\t\tsendTo,\n\t\t\t\t\t\tsubject,\n\t\t\t\t\t\ttext,\n\t\t\t\t\t\thtml,\n\t\t\t\t\t\tattachments,\n\t\t\t\t\t\tsend_from\n\t\t\t\t\t);\n\t\t\t\t\tresolve(true);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tresolve(true);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic getAWS(): AWS {\n\t\treturn this._aws;\n\t}\n\n\tpublic readFile(fileName) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/' + fileName)))) {\n\t\t\t\tfs.readFile(path.join(__dirname, ('../private/' + fileName)), 'utf-8', (err, res) => { \n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (fs.existsSync(path.join(ResolveIOServer.getClientDir(), ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(ResolveIOServer.getClientDir(), ('./private/' + fileName)), 'utf-8', (err, res) => { \n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic readImage(fileName) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/' + fileName)))) {\n\t\t\t\tfs.readFile(path.join(__dirname, ('../private/' + fileName)), 'base64', (err, res) => { \n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (fs.existsSync(path.join(ResolveIOServer.getClientDir(), ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(ResolveIOServer.getClientDir(), ('./private/' + fileName)), 'base64', (err, res) => { \n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/managers/method.manager.ts"],"names":["collections_1","require","logs_1","counters_1","pdf_1","aws_1","path","fs","nodemailer","sesTransport","accounts_1","init_1","cron_jobs_1","cron_jobs_2","flags_1","common_1","log_collection_1","report_builder_1","support_1","monitor_1","email_history_collection_1","client_s3_1","flag_updates_1","resolveio_server_app_1","AWS","this","_s3","_s3USEast1","prototype","s3","S3","credentials","accessKeyId","process","env","AWS_ACCESS_KEY","secretAccessKey","AWS_SECRET_ACCESS_KEY","region","AWS_REGION","apiVersion","s3USEast1","MethodManager","exports","monitorManagerFunction","isWorkersEnabled","isWorkerInstance","_this","_methods","_isWorkersEnabled","_isWorkerInstance","emailQueue","Set","isEmailProcessing","_debugcallMethodHits","_debugCallMethodHits","_debugCallMethodCronJobHits","_debugSendQueueHits","clientDir","serverConfig","_websocketManager","ResolveIOServer","getMainServer","getWebSocketManager","_monitorManagerFunction","getClientDir","getServerConfig","IS_WORKERS_ENABLED","IS_WORKER_INSTANCE","WORKER_INDEX","NODE_APP_INSTANCE","setTimeout","console","log","Date","loadServerInit","loadServerCronJobs","loadAccountMethods","loadAWSMethods","loadCollectionMethods","loadCounterMethods","loadLogMethods","loadPDFMethods","loadCronJobMethods","loadFlagMethods","loadFlagUpdatesMethods","loadReportBuilderMethods","loadSupportMethods","loadMonitorMethods","_aws","getSESMail","_mailer","createTransport","AWS_SES_REGION","host","port","secure","auth","user","pass","tls","ciphers","setInterval","getSubscriptionManager","getEnableDebug","setupEmailWatcher","methods","method","Object","assign","callMethodCron","methodData","_i","arguments","length","skipValidation","check","error","sendEmail","_schema","valObj","rootKeys","keys","filter","a","includes","i","validate","errors","JSON","stringify","monitor","startMonitorFunction","_a","function","call","apply","__spreadArray","id_user","id_ws","__read","then","res","finishMonitorFunction","methodErrs","callMethod","getLocalLogManager","writeLog","type","data","_id","objectIdHexString","createdAt","collection","id_document","payload","getBinarySize","messageId","route","Logs","insertOne","client","instance","instance_index","monitor_3","monitor_2","functionMethodData","slice","promise","getMongoManager","getSession","oneTimeTransaction","catch","err","sendWS","ws","messageDate","send","changeStream","EmailHistories","watchCollection","on","change","__awaiter","operationType","fullDocument","status","add","toString","tryProcessEmail","updatedEmail","has","delete","close","loadPendingEmails","sent","find","sort","pendingEmails","_b","pendingEmails_1","__values","pendingEmails_1_1","next","done","email","value","size","emailId","this_1","values","findOneAndUpdate","$set","processingAt","emailHistory","_e","attachments","e_2","_c","att","startsWith","fetch","response","ok","arrayBuffer","Error","concat","buffer","Buffer","from","content","err_2","updateOne","safeStringify","completedAt","mailOptions","replyTo","reply_to","undefined","send_from","MAIL_FROM","to","subject","match","text","html","map","newAtt","__assign","encoding","_bsontype","sub_type","Promise","resolve","sendMail","info","deleteOne","err_1","obj","getCircularReplacer","e","message","seen","WeakSet","key","sendTo","local_override","reject","Array","isArray","isBuffer","__v","date","history","getAWS","readFile","fileName","existsSync","join","__dirname","readImage"],"mappings":"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","file":"method.manager.js","sourcesContent":["import { ServerResponseModel } from '../models/server-response.model';\nimport { loadCollectionMethods } from '../methods/collections';\nimport { MethodModel } from '../models/method.model';\nimport { loadLogMethods } from '../methods/logs';\nimport { loadCounterMethods } from '../methods/counters';\nimport { loadPDFMethods } from '../methods/pdf';\nimport { loadAWSMethods } from '../methods/aws';\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport * as nodemailer from 'nodemailer';\nimport * as sesTransport from 'nodemailer-ses-transport';\nimport { loadAccountMethods } from '../methods/accounts';\nimport { loadServerInit } from '../fixtures/init';\nimport { loadServerCronJobs } from '../fixtures/cron-jobs';\nimport { loadCronJobMethods } from '../methods/cron-jobs';\nimport { loadFlagMethods } from '../methods/flags';\nimport { getBinarySize, objectIdHexString } from '../util/common';\nimport { Logs } from '../collections/log.collection';\nimport { loadReportBuilderMethods } from '../methods/report-builder';\nimport { loadSupportMethods } from '../methods/support';\nimport { loadMonitorMethods } from '../methods/monitor';\nimport { EmailHistories } from '../collections/email-history.collection';\nimport { MonitorManagerFunction } from './monitor.manager';\nimport { S3 } from '@aws-sdk/client-s3';\nimport { WebSocketManager } from './websocket.manager';\nimport * as WebSocket from 'ws';\nimport { loadFlagUpdatesMethods } from '../methods/flag-updates';\nimport { EmailHistoryModel } from '../models/email-history.model';\nimport { ResolveIOServer } from '../resolveio-server-app';\n\nexport class AWS {\n\tprivate _s3: S3 = null;\n\tprivate _s3USEast1: S3 = null;\n\n\tconstructor() {\n\n\t}\n\n\tpublic s3(): S3 {\n\t\tif (this._s3) {\n\t\t\treturn this._s3;\n\t\t}\n\n\t\tthis._s3 = new S3({\n\t\t\tcredentials: {\n\t\t\t\taccessKeyId: process.env.AWS_ACCESS_KEY,\n\t\t\t\tsecretAccessKey: process.env.AWS_SECRET_ACCESS_KEY\n\t\t\t},\n\t\t\tregion: process.env.AWS_REGION,\n\t\t\tapiVersion: '2006-03-01'\n\t\t});\n\n\t\treturn this._s3;\n\t}\n\n\tpublic s3USEast1(): S3 {\n\t\tif (process.env.AWS_REGION === 'us-east-1') {\n\t\t\treturn this.s3();\n\t\t}\n\t\telse {\n\t\t\tif (this._s3USEast1) {\n\t\t\t\treturn this._s3USEast1;\n\t\t\t}\n\t\t\t\n\t\t\tthis._s3USEast1 = new S3({\n\t\t\t\tcredentials: {\n\t\t\t\t\taccessKeyId: process.env.AWS_ACCESS_KEY,\n\t\t\t\t\tsecretAccessKey: process.env.AWS_SECRET_ACCESS_KEY\n\t\t\t\t},\n\t\t\t\tregion: 'us-east-1',\n\t\t\t\tapiVersion: '2006-03-01'\n\t\t\t});\n\t\n\t\t\treturn this._s3USEast1;\n\t\t}\n\t}\n}\n\nexport class MethodManager {\n\tprivate _websocketManager: WebSocketManager;\n\tpublic _methods: MethodModel = {};\n\tprivate _mailer: nodemailer.Transporter;\n\tprivate _aws: AWS;\n\tprivate _monitorManagerFunction: MonitorManagerFunction;\n\tprivate _isWorkersEnabled = false;\n\tprivate _isWorkerInstance = false;\n\n\tprivate emailQueue: Set<string> = new Set(); // Set to store pending email IDs\n\tprivate isEmailProcessing = false;\n\n\tprivate _debugcallMethodHits = 0;\n\tprivate _debugCallMethodHits = 0;\n\tprivate _debugCallMethodCronJobHits = 0;\n\tprivate _debugSendQueueHits = 0;\n\n\tpublic clientDir = '';\n\tpublic serverConfig = '';\n\n\tconstructor(monitorManagerFunction: MonitorManagerFunction, isWorkersEnabled, isWorkerInstance) {\n\t\tthis._websocketManager = ResolveIOServer.getMainServer().getWebSocketManager();\n\t\tthis._monitorManagerFunction = monitorManagerFunction;\n\t\tthis._isWorkersEnabled = isWorkersEnabled;\n\t\tthis._isWorkerInstance = isWorkerInstance;\n\n\t\tthis.clientDir = ResolveIOServer.getClientDir();\n\t\tthis.serverConfig = ResolveIOServer.getServerConfig();\n\n\t\t// Fixtures\n\t\tif (process.env.IS_WORKERS_ENABLED === 'false' || (process.env.IS_WORKER_INSTANCE === 'true' && process.env.WORKER_INDEX === '0')) {\n\t\t\tif (!process.env.NODE_APP_INSTANCE || process.env.NODE_APP_INSTANCE === '0') {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tconsole.log(new Date(), 'Start Server Fixture');\n\t\t\t\t\tloadServerInit();\n\t\t\t\t\tconsole.log(new Date(), 'End Server Fixture');\n\t\t\t\t}, 5000);\n\t\t\t}\n\t\t}\n\n\t\tloadServerCronJobs();\n\n\t\t// Methods\n\t\tloadAccountMethods(this);\n\t\tloadAWSMethods(this);\n\t\tloadCollectionMethods(this);\n\t\tloadCounterMethods(this);\n\t\tloadLogMethods(this);\n\t\tloadPDFMethods(this);\n\t\tloadCronJobMethods(this);\n\t\tloadFlagMethods(this);\n\t\tloadFlagUpdatesMethods(this);\n\t\tloadReportBuilderMethods(this);\n\t\tloadSupportMethods(this);\n\t\tloadMonitorMethods(this);\n\n\t\tthis._aws = new AWS();\n\n\t\tif (ResolveIOServer.getSESMail()) {\n\t\t\tthis._mailer = nodemailer.createTransport(sesTransport({\n\t\t\t\taccessKeyId: process.env.AWS_ACCESS_KEY,\n\t\t\t\tsecretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,\n\t\t\t\tregion: process.env.AWS_SES_REGION\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tthis._mailer = nodemailer.createTransport({\n\t\t\t\thost: ResolveIOServer.getServerConfig()['MAIL_HOST'], // 'smtp.office365.com', // Office 365 server\n\t\t\t\tport: ResolveIOServer.getServerConfig()['MAIL_PORT'], //587, // secure SMTP\n\t\t\t\tsecure: false, // false for TLS - as a boolean not string - but the default is false so just remove this completely\n\t\t\t\tauth: {\n\t\t\t\t\tuser: ResolveIOServer.getServerConfig()['MAIL_USERNAME'],\n\t\t\t\t\tpass: ResolveIOServer.getServerConfig()['MAIL_PASSWORD']\n\t\t\t\t},\n\t\t\t\ttls: {\n\t\t\t\t\tciphers: 'SSLv3'\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tsetInterval(() => {\n\t\t\tif (ResolveIOServer.getMainServer().getSubscriptionManager() && ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()) {\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Send Queue Hits', this._debugSendQueueHits);\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Call Method Internal Hits', this._debugcallMethodHits);\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Call Method Hits', this._debugCallMethodHits);\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Call Method Cron Hits', this._debugCallMethodCronJobHits);\n\t\t\t}\n\n\t\t\tthis._debugcallMethodHits = 0;\n\t\t\tthis._debugCallMethodHits = 0;\n\t\t\tthis._debugCallMethodCronJobHits = 0;\n\t\t\tthis._debugSendQueueHits = 0;\n\t\t}, 60000);\n\n\t\tif (!this._isWorkersEnabled || this._isWorkerInstance) {\n\t\t\tthis.setupEmailWatcher();\n\t\t}\n\t}\n\n\t// Add methods to private methods object\n\tpublic methods(method: MethodModel) {\n\t\tthis._methods = Object.assign(this._methods, method);\n\t}\n\n\tpublic callMethodCron(method: string, ...methodData: any[]) {\n\t\tthis._debugCallMethodCronJobHits += 1;\n\n\t\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + ResolveIOServer.getServerConfig()['CLIENT_NAME'], 'No Method: ' + method);\n\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif ((methodData.length > 1 || methodData[0]) && !this._methods[method].skipValidation) {\n\t\t\tif (!this._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\n\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + ResolveIOServer.getServerConfig()['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!this._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\n\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + ResolveIOServer.getServerConfig()['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet valObj = {};\n\t\t\t\tlet valKeys = Object.keys(this._methods[method].check._schema);\n\n\t\t\t\tlet rootKeys = valKeys.filter(a => !a.includes('.'));\n\t\t\t\t\n\t\t\t\tfor (let i = 0; i < methodData.length; i++) {\n\t\t\t\t\tvalObj[rootKeys[i]] = methodData[i];\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthis._methods[method].check.validate(valObj);\n\t\t\t\t}\n\t\t\t\tcatch (errors) {\n\t\t\t\t\tif (errors) {\n\t\t\t\t\t\tconsole.error(new Date(), 'Error in Method Check (' + method + ')', errors);\n\n\t\t\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + ResolveIOServer.getServerConfig()['CLIENT_NAME'], 'Match Error On Method ' + method + '\\n\\nData Being Checked\\n' + JSON.stringify(valObj, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\t\t\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlet promise = null;\n\n\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Cron Method', method, '', '', methodData);\n\t\tpromise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype, {id_user: '', user: '', id_ws: ''}), ...methodData)\n\t\t.then(res => {\n\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\treturn res;\n\t\t}, methodErrs => {\n\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + ResolveIOServer.getServerConfig()['CLIENT_NAME'], 'Error Detected During Method ' + method + ' - (callMethodCron)\\n\\nData \\n' + JSON.stringify(methodData, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(methodErrs, null, 2));\n\t\t\tthrow methodErrs;\n\t\t});\n\n\t\treturn promise;\n\t}\n\n\t// Call/run method internal (No Emit on Socket)\n\tpublic callMethod(method: string, ...methodData: any[]): Promise<any> {\n\t\tthis._debugcallMethodHits += 1;\n\n\t\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\t\t\treturn null;\n\t\t}\n\n\t\tif ((methodData.length > 1 || (methodData[0] && typeof methodData[0] !== 'function')) && !this._methods[method].skipValidation) {\n\t\t\tif (!this._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\telse if (!this._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\tif (method !== 'insertSubscriptionLog' && method !== 'getDataURIfromURL' && method !== 'processAirdropDistribution' && method !== 'incCounter' && method !== 'supportCreateBillingUser' && method !== 'countCollectionWithQuery') {\n\t\t\tif (\n\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'\n\t\t\t&& ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200'\n\t\t\t) {\n\t\t\t\tResolveIOServer.getLocalLogManager().writeLog({\n\t\t\t\t\ttype: 'log',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\tcreatedAt: new Date(),\n\t\t\t\t\t\ttype: 'callMethod',\n\t\t\t\t\t\tcollection: '',\n\t\t\t\t\t\tid_document: '',\n\t\t\t\t\t\tpayload: getBinarySize(JSON.stringify([methodData])) < 200000 ? JSON.stringify([methodData], null, 2) : 'Too Big',\n\t\t\t\t\t\tmethod: method,\n\t\t\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\t\t\tuser: this['user'] || '',\n\t\t\t\t\t\tmessageId: 0,\n\t\t\t\t\t\troute: ''\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tLogs.insertOne({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'callMethod',\n\t\t\t\t\tcollection: '',\n\t\t\t\t\tid_document: '',\n\t\t\t\t\tpayload: getBinarySize(JSON.stringify([methodData])) < 200000 ? JSON.stringify([methodData], null, 2) : 'Too Big',\n\t\t\t\t\tmethod: method,\n\t\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\t\tuser: this['user'] || '',\n\t\t\t\t\tmessageId: 0,\n\t\t\t\t\troute: '',\n\t\t\t\t\tclient: 'ResolveIO',\n\t\t\t\t\tinstance: 'backend.resolveio.com',\n\t\t\t\t\tinstance_index: process.env.NODE_APP_INSTANCE || ''\n\t\t\t\t})\n\t\t\t};\n\t\t}\n\n\t\tlet functionMethodData = typeof(methodData[methodData.length - 1]) === 'function' ? methodData.slice(0, -1) : methodData;\n\t\tlet promise = null;\n\n\t\tconst session = ResolveIOServer.getMongoManager().getSession();\n\n\t\tif (!session) {\n\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Method', method, this['user'] || '', '', functionMethodData);\n\n\t\t\tpromise = ResolveIOServer.getMongoManager().oneTimeTransaction(() => {\n\t\t\t\tlet res = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype), ...functionMethodData);\n\t\t\t\treturn res;\n\t\t\t})\n\t\t\t.then(res => {\n\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\t\treturn res;\n\t\t\t})\n\t\t\t.catch(err => {\n\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + ResolveIOServer.getServerConfig()['CLIENT_NAME'], 'Error Detected During Method ' + method + ' - (callMethod)\\n\\nData \\n' + JSON.stringify(methodData, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(err, null, 2));\n\t\t\t\tthrow err;\n\t\t\t})\n\t\t}\n\t\telse {\n\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Method', method, this['user'] || '', '', functionMethodData);\n\t\t\tpromise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype), ...functionMethodData)\n\t\t\t\t.then(res => {\n\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\t\t\t\tmethodErrs => {\n\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + ResolveIOServer.getServerConfig()['CLIENT_NAME'], 'Error Detected During Method ' + method + ' - (callMethod)\\n\\nData \\n' + JSON.stringify(methodData, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(methodErrs, null, 2));\n\t\t\t\t\tthrow methodErrs;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (methodData[methodData.length - 1] && typeof(methodData[methodData.length - 1]) === 'function') {\n\t\t\tpromise.then(res => methodData[methodData.length - 1](null, res), err => methodData[methodData.length - 1](err, null));\n\t\t}\n\t\t\n\t\treturn promise;\n\t}\n\n\tprivate sendWS(ws: WebSocket, messageDate: Date, method: string, methodData: any[], data: ServerResponseModel) {\n\t\tthis._websocketManager.send(ws, data);\n\n\t\tif (\n\t\t\tmethod !== 'reportBuilderGetResults' &&\n\t\t\tmethod !== 'reportBuilderGetDistinctValue' &&\n\t\t\tmethod !== 'reportBuilderBuildTree' &&\n\t\t\tmethod !== 'generatePDF' &&\n\t\t\tmethod !== 'getWOOfflineData' &&\n\t\t\tmethod !== 'countQuery' &&\n\t\t\tmethod !== 'countWithQuery' &&\n\t\t\tmethod !== 'countCollectionWithQuery' &&\n\t\t\tmethod !== 'find' &&\n\t\t\tmethod !== 'findOne' &&\n\t\t\tmethod !== 'findWithOptions' &&\n\t\t\tmethod !== 'uploadFileAndSave' &&\n\t\t\tmethod !== 'getDrivers' &&\n\t\t\tmethod !== 'processAirdropDistribution'\n\t\t) {\n\t\t\tif (\n\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'\n\t\t\t&& ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200'\n\t\t\t) {\n\t\t\t\tResolveIOServer.getLocalLogManager().writeLog({\n\t\t\t\t\ttype: 'log',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\tcreatedAt: new Date(),\n\t\t\t\t\t\ttype: 'client-response',\n\t\t\t\t\t\tcollection: '',\n\t\t\t\t\t\tid_document: '',\n\t\t\t\t\t\tpayload:\n\t\t\t\t\t\t\tgetBinarySize(JSON.stringify([methodData, data])) < 200000\n\t\t\t\t\t\t\t\t? JSON.stringify([methodData, data], null, 2)\n\t\t\t\t\t\t\t\t: 'Too Big',\n\t\t\t\t\t\tmethod: method,\n\t\t\t\t\t\tid_user: ws['id_user'] || '',\n\t\t\t\t\t\tuser: ws['user'] || '',\n\t\t\t\t\t\tmessageId: data.messageId,\n\t\t\t\t\t\troute: ''\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tLogs.insertOne({\n\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\ttype: 'client-response',\n\t\t\t\t\tcollection: '',\n\t\t\t\t\tid_document: '',\n\t\t\t\t\tpayload:\n\t\t\t\t\t\tgetBinarySize(JSON.stringify([methodData, data])) < 200000\n\t\t\t\t\t\t\t? JSON.stringify([methodData, data], null, 2)\n\t\t\t\t\t\t\t: 'Too Big',\n\t\t\t\t\tmethod: method,\n\t\t\t\t\tid_user: ws['id_user'] || '',\n\t\t\t\t\tuser: ws['user'] || '',\n\t\t\t\t\tmessageId: data.messageId,\n\t\t\t\t\troute: '',\n\t\t\t\t\tclient: 'ResolveIO',\n\t\t\t\t\tinstance: 'backend.resolveio.com',\n\t\t\t\t\tinstance_index: process.env.NODE_APP_INSTANCE || ''\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// MethodResponses.create({\n\t\t// \t_id: objectIdHexString(),\n\t\t// \t__v: 0,\n\t\t// \tid_user: ws['id_user'] || '',\n\t\t// \tmessage_id: data.messageId,\n\t\t// \tresponse: getBinarySize(JSON.stringify(data)) < 200000 ? data : { error: 'Too Big' },\n\t\t// \tmethod: method,\n\t\t// \tdate: messageDate\n\t\t// });\n\t}\n\n\tasync setupEmailWatcher() {\n\t\tconst changeStream = EmailHistories.watchCollection([]);\n\n\t\tchangeStream.on('change', async (change) => {\n\t\t\tif (change.operationType === 'insert' && change.fullDocument && change.fullDocument.status === 'pending') {\n\t\t\t\tthis.emailQueue.add(change.fullDocument._id.toString());\n\t\t\t\tthis.tryProcessEmail();\n\t\t\t}\n\t\t\telse if (change.operationType === 'update' || change.operationType === 'replace') {\n\t\t\t\tconst updatedEmail = change.fullDocument;\n\t\t\t\tif (updatedEmail && updatedEmail.status !== 'pending' && this.emailQueue.has(updatedEmail._id.toString())) {\n\t\t\t\t\tthis.emailQueue.delete(updatedEmail._id.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\t.on('error', err => {\n\t\t\tconsole.error('Email history changestream error', err);\n\t\t\tchangeStream.close();\n\t\t})\n\t\t.on('close', () => {\n\t\t\tthis.setupEmailWatcher();\n\t\t});\n\n\t\tawait this.loadPendingEmails();\n\t}\n\n\tasync loadPendingEmails() {\n\t\t// Load any pending emails on startup\n\t\tconst pendingEmails = await EmailHistories.find({ status: 'pending' }, {sort: {_id: 1}});\n\t\tfor (const email of pendingEmails) {\n\t\t\tthis.emailQueue.add(email._id.toString());\n\t\t}\n\t\t// Try to process emails\n\t\tthis.tryProcessEmail();\n\t}\n\n\tasync tryProcessEmail() {\n\t\tif (this.isEmailProcessing || this.emailQueue.size === 0) {\n\t\t\treturn;\n\t\t}\n\t\n\t\tthis.isEmailProcessing = true;\n\t\n\t\ttry {\n\t\t\twhile (this.emailQueue.size > 0) {\n\t\t\t\tconst emailId = this.emailQueue.values().next().value;\n\t\t\t\tthis.emailQueue.delete(emailId);\n\t\n\t\t\t\tconst emailHistory = await EmailHistories.findOneAndUpdate(\n\t\t\t\t\t{\n\t\t\t\t\t\t_id: emailId,\n\t\t\t\t\t\tstatus: 'pending',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t$set: { status: 'processing', processingAt: new Date() },\n\t\t\t\t\t}\n\t\t\t\t);\n\t\n\t\t\t\tif (!emailHistory) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\n\t\t\t\t// Fetch and process attachments\n\t\t\t\tif (emailHistory.attachments && emailHistory.attachments.length > 0) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfor (let att of emailHistory.attachments) {\n\t\t\t\t\t\t\tif (att.path && att.path.startsWith('http')) {\n\t\t\t\t\t\t\t\tconst response = await fetch(att.path);\n\t\t\t\t\t\t\t\tif (!response.ok) {\n\t\t\t\t\t\t\t\t\tthrow new Error(`Failed to fetch attachment: ${att.path}`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst arrayBuffer = await response.arrayBuffer();\n\t\t\t\t\t\t\t\tconst buffer = Buffer.from(arrayBuffer);\n\t\n\t\t\t\t\t\t\t\t// Check the size of the attachment\n\t\t\t\t\t\t\t\tconst maxSize = 20 * 1024 * 1024; // 20MB in bytes\n\t\t\t\t\t\t\t\tif (buffer.length <= maxSize) {\n\t\t\t\t\t\t\t\t\t// Attachment is within size limits, include it\n\t\t\t\t\t\t\t\t\tatt.content = buffer;\n\t\t\t\t\t\t\t\t\tdelete att.path;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\tconsole.error('Failed to fetch attachment:', err);\n\t\n\t\t\t\t\t\tawait EmailHistories.updateOne(\n\t\t\t\t\t\t\t{ _id: emailHistory._id },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t$set: {\n\t\t\t\t\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\t\t\t\t\terror: typeof err === 'string' ? err : this.safeStringify(err),\n\t\t\t\t\t\t\t\t\tcompletedAt: new Date(),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t\t// Skip to the next email\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\t\t\t\t// Prepare email options\n\t\t\t\tconst mailOptions: any = {\n\t\t\t\t\treplyTo: emailHistory.reply_to || (ResolveIOServer.getServerConfig()['MAIL_REPLY_TO'] || undefined),\n\t\t\t\t\tfrom: emailHistory.send_from || ResolveIOServer.getServerConfig().MAIL_FROM,\n\t\t\t\t\tto: emailHistory.email,\n\t\t\t\t\tsubject:\n\t\t\t\t\t\t(ResolveIOServer.getServerConfig()['ROOT_URL'].match(/https:\\/\\/dev\\./) ||\n\t\t\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'].match(/https:\\/\\/www\\.dev\\./)\n\t\t\t\t\t\t\t? '(DEV SERVER) - '\n\t\t\t\t\t\t\t: '') + emailHistory.subject,\n\t\t\t\t\ttext: typeof emailHistory.text === 'string' ? emailHistory.text : '',\n\t\t\t\t\thtml: typeof emailHistory.html === 'string' ? emailHistory.html : '',\n\t\t\t\t\tattachments: emailHistory.attachments || [],\n\t\t\t\t};\n\t\n\t\t\t\t// Process attachments before sending\n\t\t\t\tif (mailOptions.attachments && mailOptions.attachments.length > 0) {\n\t\t\t\t\tmailOptions.attachments = mailOptions.attachments.map((att) => {\n\t\t\t\t\t\tconst newAtt = { ...att };\n\t\t\t\t\t\t// Handle attachments stored as BinData or Buffer\n\t\t\t\t\t\tif (newAtt.content && typeof newAtt.content === 'object' && !(newAtt.content instanceof Buffer)) {\n\t\t\t\t\t\t\t// Convert MongoDB's Binary data to Buffer\n\t\t\t\t\t\t\tif (newAtt.content._bsontype === 'Binary' && newAtt.content.sub_type === 0) {\n\t\t\t\t\t\t\t\tnewAtt.content = Buffer.from(newAtt.content.buffer);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t// Handle other types if necessary\n\t\t\t\t\t\t\t\tnewAtt.content = Buffer.from(newAtt.content);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Handle attachments stored as Base64 strings\n\t\t\t\t\t\telse if (typeof newAtt.content === 'string' && newAtt.encoding === 'base64') {\n\t\t\t\t\t\t\tnewAtt.content = Buffer.from(newAtt.content, 'base64');\n\t\t\t\t\t\t\tdelete newAtt.encoding;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Ensure the content is a Buffer\n\t\t\t\t\t\telse if (typeof newAtt.content === 'string') {\n\t\t\t\t\t\t\tnewAtt.content = Buffer.from(newAtt.content);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn newAtt;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\n\t\t\t\t// Send the email\n\t\t\t\tawait new Promise<void>((resolve) => {\n\t\t\t\t\tthis._mailer.sendMail(mailOptions, async (err, info) => {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\tconsole.error('Failed to send email:', err);\n\t\t\t\t\t\t\t\tEmailHistories.updateOne(\n\t\t\t\t\t\t\t\t\t{ _id: emailHistory._id },\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t$set: {\n\t\t\t\t\t\t\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\t\t\t\t\t\t\terror: typeof err === 'string' ? err : this.safeStringify(err),\n\t\t\t\t\t\t\t\t\t\t\tcompletedAt: new Date(),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif (emailHistory.email === 'dev@resolveio.com') {\n\t\t\t\t\t\t\t\t\tEmailHistories.deleteOne({ _id: emailHistory._id });\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tEmailHistories.updateOne(\n\t\t\t\t\t\t\t\t\t\t{ _id: emailHistory._id },\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t$set: {\n\t\t\t\t\t\t\t\t\t\t\t\tstatus: 'completed',\n\t\t\t\t\t\t\t\t\t\t\t\tcompletedAt: new Date(),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\t\tconsole.error('Error in sendMail callback:', error);\n\t\t\t\t\t\t\tEmailHistories.updateOne(\n\t\t\t\t\t\t\t\t{ _id: emailHistory._id },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t$set: {\n\t\t\t\t\t\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\t\t\t\t\t\terror: typeof error === 'string' ? error : this.safeStringify(error),\n\t\t\t\t\t\t\t\t\t\tcompletedAt: new Date(),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tresolve(); // Continue processing the queue\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\n\t\t\t\t// Wait for at least one second before sending the next email\n\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, 1000));\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error('Error processing email queue:', err);\n\t\t}\n\t\tfinally {\n\t\t\tthis.isEmailProcessing = false;\n\t\t\t// Check if new emails arrived while processing\n\t\t\tif (this.emailQueue.size > 0) {\n\t\t\t\tthis.tryProcessEmail();\n\t\t\t}\n\t\t}\n\t}\n\n\tsafeStringify(obj)\n\t{\n\t\ttry\n\t\t{\n\t\t\treturn JSON.stringify(obj, this.getCircularReplacer());\n\t\t}\n\t\tcatch (e)\n\t\t{\n\t\t\treturn `Error in JSON stringifying: ${e.message}`;\n\t\t}\n\t}\n\n\tgetCircularReplacer()\n\t{\n\t\tconst seen = new WeakSet();\n\t\treturn (key, value) =>\n\t\t{\n\t\t\tif (typeof value === \"object\" && value !== null)\n\t\t\t{\n\t\t\t\tif (seen.has(value))\n\t\t\t\t{\n\t\t\t\t\treturn \"[Circular]\";\n\t\t\t\t}\n\t\t\t\tseen.add(value);\n\t\t\t}\n\t\t\treturn value;\n\t\t};\n\t}\n\n\tpublic sendEmail(\n\t\tsendTo: string,\n\t\tsubject: string,\n\t\ttext?: string,\n\t\thtml?: string,\n\t\tattachments?: any[],\n\t\tsend_from?: string,\n\t\treply_to?: string,\n\t\tlocal_override = false\n\t) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t// Modify sendTo in development environments\n\t\t\tif (\n\t\t\t\t(ResolveIOServer.getServerConfig()['ROOT_URL'].match(/https:\\/\\/dev\\./) ||\n\t\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'].match(/https:\\/\\/www\\.dev\\./) ||\n\t\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] === 'http://localhost:4200') &&\n\t\t\t\t!sendTo.match(/\\@resolveio\\.com/)\n\t\t\t) {\n\t\t\t\tsendTo = 'dev@resolveio.com';\n\t\t\t}\n\t\n\t\t\tif (sendTo) {\n\t\t\t\tif (\n\t\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200' ||\n\t\t\t\t\tlocal_override\n\t\t\t\t) {\n\t\t\t\t\tif (!attachments) {\n\t\t\t\t\t\tattachments = [];\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (!Array.isArray(attachments)) {\n\t\t\t\t\t\tattachments = [attachments];\n\t\t\t\t\t}\n\t\n\t\t\t\t\t// Process attachments before saving\n\t\t\t\t\tattachments = attachments.map((att) => {\n\t\t\t\t\t\tconst newAtt = { ...att };\n\t\t\t\t\t\tif (Buffer.isBuffer(newAtt.content)) {\n\t\t\t\t\t\t\tnewAtt.content = newAtt.content.toString('base64');\n\t\t\t\t\t\t\tnewAtt.encoding = 'base64';\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn newAtt;\n\t\t\t\t\t});\n\t\n\t\t\t\t\t// Queue the email in MongoDB\n\t\t\t\t\tconst emailHistory: EmailHistoryModel = {\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\t\t\tuser: this['user'] || '',\n\t\t\t\t\t\temail: sendTo,\n\t\t\t\t\t\tsubject: subject || '',\n\t\t\t\t\t\ttext: text || '',\n\t\t\t\t\t\thtml: html || '',\n\t\t\t\t\t\tattachments: attachments || [],\n\t\t\t\t\t\tsend_from: send_from || '',\n\t\t\t\t\t\treply_to: reply_to || '',\n\t\t\t\t\t\tstatus: 'pending',\n\t\t\t\t\t\terror: ''\n\t\t\t\t\t};\n\t\n\t\t\t\t\tEmailHistories.insertOne(emailHistory).then(\n\t\t\t\t\t\t(history) => resolve(history),\n\t\t\t\t\t\t(err) => {\n\t\t\t\t\t\t\tconsole.error('Failed to queue email:', err);\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t'Send email',\n\t\t\t\t\t\tsendTo,\n\t\t\t\t\t\tsubject,\n\t\t\t\t\t\ttext,\n\t\t\t\t\t\thtml,\n\t\t\t\t\t\tattachments,\n\t\t\t\t\t\tsend_from\n\t\t\t\t\t);\n\t\t\t\t\tresolve(true);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tresolve(true);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic getAWS(): AWS {\n\t\treturn this._aws;\n\t}\n\n\tpublic readFile(fileName) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/' + fileName)))) {\n\t\t\t\tfs.readFile(path.join(__dirname, ('../private/' + fileName)), 'utf-8', (err, res) => { \n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (fs.existsSync(path.join(ResolveIOServer.getClientDir(), ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(ResolveIOServer.getClientDir(), ('./private/' + fileName)), 'utf-8', (err, res) => { \n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic readImage(fileName) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/' + fileName)))) {\n\t\t\t\tfs.readFile(path.join(__dirname, ('../private/' + fileName)), 'base64', (err, res) => { \n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (fs.existsSync(path.join(ResolveIOServer.getClientDir(), ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(ResolveIOServer.getClientDir(), ('./private/' + fileName)), 'base64', (err, res) => { \n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}"]}
@@ -67,7 +67,7 @@ export declare class MongoManager {
67
67
  private _isWorkersEnabled;
68
68
  private _isWorkerInstance;
69
69
  constructor();
70
- withSession(fn: any): Promise<any>;
70
+ oneTimeTransaction(fn: any): Promise<unknown>;
71
71
  getSession(): any;
72
72
  private setCacheLimit;
73
73
  initServerCollections(): Promise<void>;
@@ -107,6 +107,7 @@ export interface MongoManagerCollectionOptions {
107
107
  checkSchema: boolean;
108
108
  collectionOptions: CreateCollectionOptions;
109
109
  skipCache?: boolean;
110
+ bypassSession?: boolean;
110
111
  }
111
112
  export declare class MongoManagerCollection<T extends CollectionDocument> {
112
113
  collectionName: string;
@@ -120,6 +121,7 @@ export declare class MongoManagerCollection<T extends CollectionDocument> {
120
121
  useRB: boolean;
121
122
  collectionOptions: CreateCollectionOptions;
122
123
  skipCache: boolean;
124
+ bypassSession: boolean;
123
125
  constructor(options: MongoManagerCollectionOptions);
124
126
  private static indexQueue;
125
127
  extractIndexNameFromError(errorMessage: any): any;