@resolveio/server-lib 9.7.15 → 9.7.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { Db, MongoClient } from 'mongodb';
1
2
  import { MongoManager } from './managers/mongo.manager';
2
3
  import ResolveIOMainServer from './server-app';
3
4
  export declare class ResolveIOServer {
@@ -16,8 +17,8 @@ export declare class ResolveIOServer {
16
17
  static connectAndRun(): Promise<unknown>;
17
18
  static getClientName(): string;
18
19
  static getMainServer(): ResolveIOMainServer;
19
- static getMongoConnection(): any;
20
- static getMainDB(): any;
20
+ static getMongoConnection(): MongoClient;
21
+ static getMainDB(): Db;
21
22
  static getMongoManager(): MongoManager;
22
23
  }
23
24
  export * from './public_api';
package/index.js CHANGED
@@ -64,10 +64,7 @@ var ResolveIOServer = /** @class */ (function () {
64
64
  ResolveIOServer.connectAndRun = function () {
65
65
  var _this = this;
66
66
  return new Promise(function (resolve, reject) {
67
- mongodb_1.MongoClient.connect(ResolveIOServer._serverConfig['MONGO_URL'], {
68
- useNewUrlParser: true,
69
- useUnifiedTopology: ResolveIOServer._serverConfig['ROOT_URL'] !== 'http://localhost:4200' ? true : false
70
- }).then(function (dbConnection) {
67
+ mongodb_1.MongoClient.connect(ResolveIOServer._serverConfig['MONGO_URL']).then(function (dbConnection) {
71
68
  ResolveIOServer._mongoConnection = dbConnection;
72
69
  ResolveIOServer._mainDB = dbConnection.db(ResolveIOServer._serverConfig['DATABASE']);
73
70
  ResolveIOServer._mongoManager = new mongo_manager_1.MongoManager();
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAA0C;AAC1C,0DAAwD;AAGxD;IAaC,yBAAY,UAAU,EAAE,YAAY,EAAE,YAAsB,EAAE,MAAc,EAAE,SAAS,EAAE,OAAc,EAAE,eAAuB;QAAvC,wBAAA,EAAA,cAAc;QAAE,gCAAA,EAAA,uBAAuB;QAC/H,eAAe,CAAC,aAAa,GAAG,UAAU,CAAC;QAC3C,eAAe,CAAC,aAAa,GAAG,YAAY,CAAC;QAC7C,eAAe,CAAC,aAAa,GAAG,YAAY,CAAC;QAC7C,eAAe,CAAC,OAAO,GAAG,MAAM,CAAC;QACjC,eAAe,CAAC,UAAU,GAAG,SAAS,CAAC;QACvC,eAAe,CAAC,QAAQ,GAAG,OAAO,CAAC;QACnC,eAAe,CAAC,gBAAgB,GAAG,eAAe,CAAC;IACpD,CAAC;IAEa,6BAAa,GAA3B;QAAA,iBAsBC;QArBA,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAClC,qBAAW,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;gBAC/D,eAAe,EAAE,IAAI;gBACrB,kBAAkB,EAAE,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;aACxG,CAAC,CAAC,IAAI,CAAC,UAAA,YAAY;gBACnB,eAAe,CAAC,gBAAgB,GAAG,YAAY,CAAC;gBAChD,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrF,eAAe,CAAC,aAAa,GAAG,IAAI,4BAAY,EAAE,CAAC;gBAEnD,UAAU,CAAC;;;;oCACO,yEAAa,cAAc,OAAC;;gCAAzC,SAAS,GAAG,CAAC,SAA4B,CAAC,CAAC,OAAO;gCACtD,eAAe,CAAC,WAAW,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,eAAe,CAAC,aAAa,EAAE,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gCAEtM,OAAO,CAAC,IAAI,CAAC,CAAC;;;;qBACd,EAAE,CAAC,CAAC,CAAC;YACP,CAAC,EAAE,UAAA,GAAG;gBACL,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,6BAA6B,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvF,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAEa,6BAAa,GAA3B;QACC,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAEa,6BAAa,GAA3B;QACC,OAAO,eAAe,CAAC,WAAW,CAAC;IACpC,CAAC;IAEa,kCAAkB,GAAhC;QACC,OAAO,eAAe,CAAC,gBAAgB,CAAC;IACzC,CAAC;IAEa,yBAAS,GAAvB;QACC,OAAO,eAAe,CAAC,OAAO,CAAC;IAChC,CAAC;IAEa,+BAAe,GAA7B;QACC,OAAO,eAAe,CAAC,aAAa,CAAC;IACtC,CAAC;IAhEc,6BAAa,GAAG,IAAI,CAAC;IACrB,6BAAa,GAAG,IAAI,CAAC;IACrB,6BAAa,GAAG,EAAE,CAAC;IACnB,gCAAgB,GAAgB,IAAI,CAAC;IACrC,uBAAO,GAAO,IAAI,CAAC;IACnB,2BAAW,GAAwB,IAAI,CAAC;IACxC,6BAAa,GAAiB,IAAI,CAAC;IACnC,uBAAO,GAAG,EAAE,CAAC;IACb,0BAAU,GAAG,EAAE,CAAC;IAChB,wBAAQ,GAAG,IAAI,CAAC;IAChB,gCAAgB,GAAG,KAAK,CAAC;IAuDzC,sBAAC;CAlED,AAkEC,IAAA;AAlEY,0CAAe;AAoE5B,+CAA6B","file":"index.js","sourcesContent":["import { Db, MongoClient } from 'mongodb';\nimport { MongoManager } from './managers/mongo.manager';\nimport ResolveIOMainServer from './server-app';\n\nexport class ResolveIOServer {\n\tprivate static _monitorAgent = null;\n\tprivate static _serverConfig = null;\n\tprivate static _clientRoutes = [];\n\tprivate static _mongoConnection: MongoClient = null;\n\tprivate static _mainDB: Db = null;\n\tprivate static _mainServer: ResolveIOMainServer = null;\n\tprivate static _mongoManager: MongoManager = null;\n\tprivate static _client = '';\n\tprivate static _clientDir = '';\n\tprivate static _sesMail = true;\n\tprivate static _standardProgram = false;\n\n\tconstructor(monitoring, serverConfig, clientRoutes: string[], client: string, clientDir, sesMail = true, standardProgram = false) {\n\t\tResolveIOServer._monitorAgent = monitoring;\n\t\tResolveIOServer._serverConfig = serverConfig;\n\t\tResolveIOServer._clientRoutes = clientRoutes;\n\t\tResolveIOServer._client = client;\n\t\tResolveIOServer._clientDir = clientDir;\n\t\tResolveIOServer._sesMail = sesMail;\n\t\tResolveIOServer._standardProgram = standardProgram;\n\t}\n\n\tpublic static connectAndRun() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tMongoClient.connect(ResolveIOServer._serverConfig['MONGO_URL'], {\n\t\t\t\tuseNewUrlParser: true,\n\t\t\t\tuseUnifiedTopology: ResolveIOServer._serverConfig['ROOT_URL'] !== 'http://localhost:4200' ? true : false\n\t\t\t}).then(dbConnection => {\n\t\t\t\tResolveIOServer._mongoConnection = dbConnection;\n\t\t\t\tResolveIOServer._mainDB = dbConnection.db(ResolveIOServer._serverConfig['DATABASE']);\n\t\t\t\tResolveIOServer._mongoManager = new MongoManager();\n\t\t\t\t\n\t\t\t\tsetTimeout(async () => {\n\t\t\t\t\tlet serverApp = (await import('./server-app')).default;\n\t\t\t\t\tResolveIOServer._mainServer = new serverApp(this, ResolveIOServer._monitorAgent, ResolveIOServer._serverConfig, ResolveIOServer._clientRoutes, this._clientDir, this._sesMail, this._standardProgram);\n\n\t\t\t\t\tresolve(true);\n\t\t\t\t}, 1);\n\t\t\t}, err => {\n\t\t\t\tconsole.error(new Date(), 'MONGO CLIENT CONNECT FAILED', JSON.stringify(err, null, 2));\n\t\t\t\treject();\n\t\t\t\tprocess.exit(1);\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic static getClientName() {\n\t\treturn this._client;\n\t}\n\n\tpublic static getMainServer() {\n\t\treturn ResolveIOServer._mainServer;\n\t}\n\n\tpublic static getMongoConnection() {\n\t\treturn ResolveIOServer._mongoConnection;\n\t}\n\n\tpublic static getMainDB() {\n\t\treturn ResolveIOServer._mainDB;\n\t}\n\n\tpublic static getMongoManager() {\n\t\treturn ResolveIOServer._mongoManager;\n\t}\n}\n\nexport * from './public_api';"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { Db, MongoClient } from 'mongodb';\nimport { MongoManager } from './managers/mongo.manager';\nimport ResolveIOMainServer from './server-app';\n\nexport class ResolveIOServer {\n\tprivate static _monitorAgent = null;\n\tprivate static _serverConfig = null;\n\tprivate static _clientRoutes = [];\n\tprivate static _mongoConnection: MongoClient = null;\n\tprivate static _mainDB: Db = null;\n\tprivate static _mainServer: ResolveIOMainServer = null;\n\tprivate static _mongoManager: MongoManager = null;\n\tprivate static _client = '';\n\tprivate static _clientDir = '';\n\tprivate static _sesMail = true;\n\tprivate static _standardProgram = false;\n\n\tconstructor(monitoring, serverConfig, clientRoutes: string[], client: string, clientDir, sesMail = true, standardProgram = false) {\n\t\tResolveIOServer._monitorAgent = monitoring;\n\t\tResolveIOServer._serverConfig = serverConfig;\n\t\tResolveIOServer._clientRoutes = clientRoutes;\n\t\tResolveIOServer._client = client;\n\t\tResolveIOServer._clientDir = clientDir;\n\t\tResolveIOServer._sesMail = sesMail;\n\t\tResolveIOServer._standardProgram = standardProgram;\n\t}\n\n\tpublic static connectAndRun() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tMongoClient.connect(ResolveIOServer._serverConfig['MONGO_URL']).then(dbConnection => {\n\t\t\t\tResolveIOServer._mongoConnection = dbConnection;\n\t\t\t\tResolveIOServer._mainDB = dbConnection.db(ResolveIOServer._serverConfig['DATABASE']);\n\t\t\t\tResolveIOServer._mongoManager = new MongoManager();\n\t\t\t\t\n\t\t\t\tsetTimeout(async () => {\n\t\t\t\t\tlet serverApp = (await import('./server-app')).default;\n\t\t\t\t\tResolveIOServer._mainServer = new serverApp(this, ResolveIOServer._monitorAgent, ResolveIOServer._serverConfig, ResolveIOServer._clientRoutes, this._clientDir, this._sesMail, this._standardProgram);\n\n\t\t\t\t\tresolve(true);\n\t\t\t\t}, 1);\n\t\t\t}, err => {\n\t\t\t\tconsole.error(new Date(), 'MONGO CLIENT CONNECT FAILED', JSON.stringify(err, null, 2));\n\t\t\t\treject();\n\t\t\t\tprocess.exit(1);\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic static getClientName() {\n\t\treturn this._client;\n\t}\n\n\tpublic static getMainServer() {\n\t\treturn ResolveIOServer._mainServer;\n\t}\n\n\tpublic static getMongoConnection() {\n\t\treturn ResolveIOServer._mongoConnection;\n\t}\n\n\tpublic static getMainDB() {\n\t\treturn ResolveIOServer._mainDB;\n\t}\n\n\tpublic static getMongoManager() {\n\t\treturn ResolveIOServer._mongoManager;\n\t}\n}\n\nexport * from './public_api';"]}
@@ -268,7 +268,7 @@ var MethodManager = /** @class */ (function () {
268
268
  _this._runningQueue = false;
269
269
  }
270
270
  }
271
- }, 10);
271
+ }, 1);
272
272
  }
273
273
  MethodManager.prototype.getMainServer = function () {
274
274
  return this._mainServer;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/managers/method.manager.ts"],"names":[],"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 { loadCloudConvertMethods } from '../methods/cloudconvert';\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport * as nodemailer from 'nodemailer';\nimport * as imap from 'imap';\nimport * as aws from 'aws-sdk';\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 { MethodResponses } from '../collections/method-response.collection';\nimport { getBinarySize } from '../util/common';\nimport { Logs } from '../collections/log.collection';\nimport ResolveIOMainServer from '../server-app';\nimport { LogMethodLatencies } from '../collections/log-method-latency.collection';\nimport * as moment from 'moment';\nimport { loadReportBuilderMethods } from '../methods/report-builder';\nimport { loadSupportMethods } from '../methods/support';\nimport { loadMonitorMethods } from '../methods/monitor';\nimport { EmailHistories } from '../collections/email-history.collection';\nimport { objectIdHexString } from './mongo.manager';\n\nconst Verifier = require('email-verifier');\n\nexport class MethodManager {\n\n\tprivate _mainServer: ResolveIOMainServer;\n\tpublic _methods: MethodModel = {};\n\tprivate _mailer: nodemailer.Transporter;\n\tprivate _imap: imap;\n\tprivate _aws: aws.S3;\n\tprivate serverConfig;\n\tprivate clientDir;\n\n\tprivate _sendQueue = [];\n\tprivate _runningQueue = false;\n\n\tconstructor(mainServer, serverConfig, clientDir) {\n\t\tthis._mainServer = mainServer;\n\t\tthis.serverConfig = serverConfig;\n\t\tthis.clientDir = clientDir;\n\n\t\t// Fixtures\n\t\tloadServerInit();\n\t\tloadServerCronJobs();\n\n\t\t// Methods\n\t\tloadAccountMethods(this);\n\t\tloadAWSMethods(this);\n\t\tloadCloudConvertMethods(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\tloadReportBuilderMethods(this);\n\t\tloadSupportMethods(this);\n\t\tloadMonitorMethods(this);\n\n\t\tif (mainServer.sesMail) {\n\t\t\tthis._mailer = nodemailer.createTransport({\n\t\t\t\tSES: new aws.SES({\n\t\t\t\t\tapiVersion: '2010-12-01',\n\t\t\t\t\taccessKeyId: serverConfig.AWSACCESSKEYID,\n\t\t\t\t\tsecretAccessKey: serverConfig.AWSSECRETACCESSKEY,\n\t\t\t\t\tregion: serverConfig.AWSSES_REGION\n\t\t\t\t})\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tthis._mailer = nodemailer.createTransport({\n\t\t\t\thost: this.serverConfig['MAIL_HOST'], // 'smtp.office365.com', // Office 365 server\n\t\t\t\tport: this.serverConfig['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: this.serverConfig['MAIL_USERNAME'],\n\t\t\t\t\tpass: this.serverConfig['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\t// this._imap = new imap({\n\t\t// \tuser: this.serverConfig['ORDERS_EMAIL'],\n\t\t// \tpassword: this.serverConfig['ORDERS_PASSWORD'],\n\t\t// \thost: this.serverConfig['ORDERS_HOST'],\n\t\t// \tport: this.serverConfig['ORDERS_PORT'],\n\t\t// \ttls: this.serverConfig['ORDERS_TLS']\n\t\t// });\n\n\t\t// let that = this;\n\n\t\t// let chemicalNames = await Chemicals.find({}).select('description');\n\t\t// let jobNames = await Jobs.find({status: 'Active'}).select('well');\n\n\t\t// console.log(jobNames.map(a => a.well));\n\n\t\t// this._imap.once('ready', () => {\n\t\t// \tthis._imap.openBox('INBOX', true, function(err, box) {\n\t\t// \t\tif (err) {\n\t\t// \t\t\tthrow err;\n\t\t// \t\t}\n\n\t\t// \t\tthat._imap.search([ 'NEW' ], function(err, results) {\n\n\t\t// \t\t\tconsole.log(err, results);\n\n\t\t// \t\t\tif (err || !results.length) {\n\t\t// \t\t\t\treturn that._imap.end();\n\t\t// \t\t\t}\n\n\t\t// \t\t\tlet f = that._imap.fetch(results[0], { bodies: ['HEADER.FIELDS (FROM)', 'TEXT'] });\n\t\t// \t\t\tf.on('message', function(msg, seqno) {\n\t\t// \t\t\t\t// console.log('Message #%d', seqno);\n\t\t// \t\t\t\tlet prefix = '(#' + seqno + ') ';\n\t\t// \t\t\t\tmsg.on('body', function(stream, info) {\n\t\t// \t\t\t\t\tlet buffer = '', count = 0;\n\t\t// \t\t\t\t\tstream.on('data', function(chunk) {\n\t\t// \t\t\t\t\t\tcount += chunk.length;\n\t\t// \t\t\t\t\t\tbuffer += chunk.toString('utf8');\n\t\t// \t\t\t\t\t});\n\t\t// \t\t\t\t\tstream.once('end', function() {\n\t\t// \t\t\t\t\t\tif (info.which === 'TEXT') {\n\t\t// \t\t\t\t\t\t\t// console.log(buffer);\n\t\t// \t\t\t\t\t\t\t// console.log(typeof(buffer));\n\t\t// \t\t\t\t\t\t\tlet lines = buffer.split('\\r\\n');\n\t\t// \t\t\t\t\t\t\t// console.log(lines);\n\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\t// let i = 0;\n\t\t// \t\t\t\t\t\t\t// lines.forEach(line => {\n\n\t\t// \t\t\t\t\t\t\t// \tlet date: Date;\n\t\t// \t\t\t\t\t\t\t// \tlet dateString;\n\n\t\t// \t\t\t\t\t\t\t// \tif (line.includes('From')) {\n\t\t// \t\t\t\t\t\t\t// \t\tconsole.log(line);\n\t\t// \t\t\t\t\t\t\t// \t}\n\t\t// \t\t\t\t\t\t\t// \tif (!line.includes('class=3D') && !line.includes('style=3D')) {\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Well') || line.includes('Well Name') || line.includes('Job') || line.includes('Pad')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tlet best = stringSimilarity.findBestMatch(line, jobNames.map(a => a.well)).bestMatch;\n\t\n\t\t// \t\t\t\t\t\t\t// \t\t\tif (best && best.rating > 0.5) {\n\t\t// \t\t\t\t\t\t\t// \t\t\t\tconsole.log('Well', line);\n\t\t// \t\t\t\t\t\t\t// \t\t\t}\n\t\t// \t\t\t\t\t\t\t// \t\t}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Product') || line.includes('Chemical')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tlet best = stringSimilarity.findBestMatch(line, chemicalNames.map(a => a.description)).bestMatch;\n\t\n\t\t// \t\t\t\t\t\t\t// \t\t\tif (best && best.rating > 0.5) {\n\t\t// \t\t\t\t\t\t\t// \t\t\t\tconsole.log('Chemical', line);\n\t\t// \t\t\t\t\t\t\t// \t\t\t}\n\t\t// \t\t\t\t\t\t\t// \t\t}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Quantity') || line.includes('Qty') || line.includes('Amount')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log('Qty', line);\n\t\t// \t\t\t\t\t\t\t// \t\t}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Date')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log('Date', line);\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log(moment(Date.parse(line)));\n\t\t// \t\t\t\t\t\t\t// \t\t\tdate = moment(Date.parse(line)).toDate();\n\t\t// \t\t\t\t\t\t\t// \t\t\tdateString = line;\n\t\t// \t\t\t\t\t\t\t// \t\t}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Time')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log('Time', line);\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log(moment(Date.parse(line)));\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log(moment(date.setTime(Date.parse(line))));\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\n\t\t// \t\t\t\tmsg.once('attributes', function(attrs) {\n\t\t// \t\t\t\t\tconsole.log(prefix + 'Attributes: %s', inspect(attrs, false, 8));\n\t\t// \t\t\t\t});\n\n\t\t// \t\t\t\tmsg.once('end', function() {\n\t\t// \t\t\t\t\tconsole.log(prefix + 'Finished');\n\t\t// \t\t\t\t});\n\t\t// \t\t\t});\n\t\t\t\t\t\n\t\t// \t\t\tf.once('error', function(error) {\n\t\t// \t\t\t\tconsole.log('Fetch error: ' + error);\n\t\t// \t\t\t});\n\n\t\t// \t\t\tf.once('end', function() {\n\t\t// \t\t\t\tconsole.log('Done fetching all messages!');\n\t\t// \t\t\t\tthat._imap.end();\n\t\t// \t\t\t});\n\t\t// \t\t});\n\t\t// \t});\n\t\t// });\n\n\t\t// this._imap.connect();\n\n\t\tthis._aws = new aws.S3({\n\t\t\taccessKeyId: serverConfig.AWSACCESSKEYID,\n\t\t\tsecretAccessKey: serverConfig.AWSSECRETACCESSKEY,\n\t\t\tregion: serverConfig.AWSREGION\n\t\t});\n\n\t\tsetInterval(() => {\n\t\t\tif (!this._runningQueue) {\n\t\t\t\tif (this._sendQueue.length) {\n\t\t\t\t\tthis._runningQueue = true;\n\t\t\t\t\tfor (let i = this._sendQueue.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tlet ws = this._mainServer.getWS(this._sendQueue[i].id_ws);\n\t\t\t\t\t\tif (ws && ws.readyState === ws.OPEN) {\n\t\t\t\t\t\t\tif (ws.bufferedAmount < 20480) {\n\t\t\t\t\t\t\t\tlet sendItem = this._sendQueue.pop();\n\t\t\t\t\t\t\t\tws.send(JSON.stringify(sendItem.data), (error) => {\n\t\t\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\t\t\tconsole.log('Error on WS: ', error);\n\t\t\t\t\t\t\t\t\t\tthis._mainServer.unsubscribeWS(ws);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (sendItem.method !== 'reportBuilderGetResults' && sendItem.method !== 'reportBuilderGetDistinctValue' && sendItem.method !== 'reportBuilderBuildTree' && sendItem.method !== 'generatePDF' && sendItem.method !== 'getWOOfflineData' && sendItem.method !== 'countQuery' && sendItem.method !== 'countWithQuery' && sendItem.method !== 'countCollectionWithQuery' && sendItem.method !== 'find' && sendItem.method !== 'findOne' && sendItem.method !== 'findWithOptions' && sendItem.method !== 'setWSAppVersion' && sendItem.method !== 'uploadFileAndSave' && sendItem.method !== 'getDrivers') {\n\t\t\t\t\t\t\t\t\tLogs.insertOne({\n\t\t\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t\t\ttype: 'client-response',\n\t\t\t\t\t\t\t\t\t\tcollection: '',\n\t\t\t\t\t\t\t\t\t\tid_document: '',\n\t\t\t\t\t\t\t\t\t\tpayload: getBinarySize(JSON.stringify([sendItem.methodData, sendItem.data])) < 200000 ? JSON.stringify([sendItem.methodData, sendItem.data], null, 2) : 'Too Big',\n\t\t\t\t\t\t\t\t\t\tmethod: sendItem.method,\n\t\t\t\t\t\t\t\t\t\tid_user: ws['id_user'] || '',\n\t\t\t\t\t\t\t\t\t\tuser: ws['user'] || '',\n\t\t\t\t\t\t\t\t\t\tmessageId: sendItem.data.messageId,\n\t\t\t\t\t\t\t\t\t\troute: ''\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tMethodResponses.create({\n\t\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\t\tid_user: ws['id_user'],\n\t\t\t\t\t\t\t\t\tmessage_id: sendItem.data.messageId,\n\t\t\t\t\t\t\t\t\tresponse: getBinarySize(JSON.stringify(sendItem.data)) < 200000 ? sendItem.data : {error: 'Too Big'},\n\t\t\t\t\t\t\t\t\tmethod: sendItem.method,\n\t\t\t\t\t\t\t\t\tdate: sendItem.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\telse {\n\t\t\t\t\t\t\tthis._sendQueue.splice(i, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._runningQueue = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}, 10);\n\t}\n\n\tpublic getMainServer() {\n\t\treturn this._mainServer;\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\tlet that = this;\n\n\t\tif (!that._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Method: ' + method);\n\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif ((methodData.length > 1 || methodData[0]) && !that._methods[method].skipValidation) {\n\t\t\tif (!that._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!that._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['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(that._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\tthat._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\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['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\t\t\n\t\tthat._methods[method].function.call(Object.assign({}, that, MethodManager.prototype, {id_user: '', user: '', id_ws: ''}), ...methodData)\n\t\t.catch(methodErrs => {\n\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['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});\n\t}\n\n\t// Call/run method (Emit on Socket)\n\tpublic callMethod(id_methodLatency: string, ws: WebSocket, messageDate: Date, messageId: number, method: string, ...methodData: any[]) {\n\t\tlet that = this;\n\n\t\tif (!that._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Method: ' + method);\n\t\t\t\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: true,\n\t\t\t\tdata: 'Internal Error'\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tif (id_methodLatency) {\n\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ((methodData.length > 1 || methodData[0]) && !that._methods[method].skipValidation) {\n\t\t\tif (!that._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\t\t\t\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t};\n\t\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t\t}\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!that._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\t\t\t\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t};\n\n\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t\t}\n\t\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\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(that._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\tthat._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\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['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\t\t\t\n\t\t\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\t\t\thasError: true,\n\t\t\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t\t\t};\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t\t\t\t}\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\t\t\n\t\tthat._methods[method].function.call(Object.assign({}, that, MethodManager.prototype, {id_user: ws['id_user'], user: ws['user'], id_ws: ws['id_socket']}), ...methodData)\n\t\t.catch(methodErrs => {\n\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['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})\n\t\t.then(async (res) => {\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: false,\n\t\t\t\tdata: res\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tif (id_methodLatency) {\n\t\t\t\tlet latency = await LogMethodLatencies.findById(id_methodLatency);\n\n\t\t\t\tif (latency) {\n\t\t\t\t\tLogMethodLatencies.updateOne({_id: id_methodLatency}, {$set: {date_end: new Date(), latency_ms: moment().diff(moment(latency.date_start), 'milliseconds', true)}});\n\t\t\t\t}\n\t\t\t}\n\t\t}, err => {\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: true,\n\t\t\t\tdata: err\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tif (id_methodLatency) {\n\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t}\n\t\t});\n\t}\n\n\t// Call/run method internal (No Emit on Socket)\n\tpublic callMethodInternal(method, ...methodData: any[]): Promise<any> {\n\t\tlet that = this;\n\n\t\tif (!that._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')) && !that._methods[method].skipValidation) {\n\t\t\tif (!that._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 (!that._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') {\n\t\t\tLogs.insertOne({\n\t\t\t\t_id: objectIdHexString(),\n\t\t\t\ttype: 'callMethodInternal',\n\t\t\t\tcollection: '',\n\t\t\t\tid_document: '',\n\t\t\t\tpayload: getBinarySize(JSON.stringify([methodData])) < 200000 ? JSON.stringify([methodData], null, 2) : 'Too Big',\n\t\t\t\tmethod: method,\n\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\tuser: this['user'] || '',\n\t\t\t\tmessageId: 0,\n\t\t\t\troute: ''\n\t\t\t});\n\t\t}\n\n\t\tlet promise = that._methods[method].function.call(Object.assign({}, that, MethodManager.prototype), ...methodData)\n\t\t.catch(methodErrs => {\n\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'Error Detected During Method ' + method + ' - (callMethodInternal)\\n\\nData \\n' + JSON.stringify(methodData, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(methodErrs, null, 2));\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._sendQueue.splice(0, 0, {\n\t\t\tid_ws: ws['id_socket'],\n\t\t\tmethod: method,\n\t\t\tmethodData: methodData,\n\t\t\tdata: data,\n\t\t\tdate: messageDate\n\t\t});\n\t}\n\n\tpublic sendEmail(sendTo: string, subject: string, text?: string, html?: string, attachments?: any[], send_from?: string) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif ((this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) || this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/www\\.dev\\./)) || this.serverConfig['ROOT_URL'] === 'http://localhost:4200') && !sendTo.match(new RegExp(/\\@resolveio\\.com/))) {\n\t\t\t\tsendTo = 'dev@resolveio.com';\n\t\t\t}\n\n\t\t\tif (sendTo) {\n\t\t\t\tif (this.serverConfig['ROOT_URL'] !== 'http://localhost:4200') {\n\t\t\t\t\tthis._mailer.sendMail({\n\t\t\t\t\t\treplyTo: undefined,\n\t\t\t\t\t\tfrom: send_from ? send_from : this.serverConfig.MAIL_FROM,\n\t\t\t\t\t\tto: sendTo,\n\t\t\t\t\t\tsubject: (this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) || this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/www\\.dev\\./)) ? '(DEV SERVER) - ' : '') + 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}, (err, info) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\tEmailHistories.create({\n\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\t\t\t\t\tuser: this['user'] || '',\n\t\t\t\t\t\t\t\temail: sendTo,\n\t\t\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\t\t\tverified: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tEmailHistories.create({\n\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\t\t\t\t\tuser: this['user'] || '',\n\t\t\t\t\t\t\t\temail: sendTo,\n\t\t\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\t\t\tverified: false\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}\n\t\t\t\telse {\n\t\t\t\t\tconsole.log('Send email', sendTo, subject, text, html, attachments, send_from);\n\t\t\t\t}\n\n\t\t\t\tresolve(true);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic getAWS(): aws.S3 {\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(this.clientDir, ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(this.clientDir, ('./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(this.clientDir, ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(this.clientDir, ('./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":[],"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 { loadCloudConvertMethods } from '../methods/cloudconvert';\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport * as nodemailer from 'nodemailer';\nimport * as imap from 'imap';\nimport * as aws from 'aws-sdk';\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 { MethodResponses } from '../collections/method-response.collection';\nimport { getBinarySize } from '../util/common';\nimport { Logs } from '../collections/log.collection';\nimport ResolveIOMainServer from '../server-app';\nimport { LogMethodLatencies } from '../collections/log-method-latency.collection';\nimport * as moment from 'moment';\nimport { loadReportBuilderMethods } from '../methods/report-builder';\nimport { loadSupportMethods } from '../methods/support';\nimport { loadMonitorMethods } from '../methods/monitor';\nimport { EmailHistories } from '../collections/email-history.collection';\nimport { objectIdHexString } from './mongo.manager';\n\nconst Verifier = require('email-verifier');\n\nexport class MethodManager {\n\n\tprivate _mainServer: ResolveIOMainServer;\n\tpublic _methods: MethodModel = {};\n\tprivate _mailer: nodemailer.Transporter;\n\tprivate _imap: imap;\n\tprivate _aws: aws.S3;\n\tprivate serverConfig;\n\tprivate clientDir;\n\n\tprivate _sendQueue = [];\n\tprivate _runningQueue = false;\n\n\tconstructor(mainServer, serverConfig, clientDir) {\n\t\tthis._mainServer = mainServer;\n\t\tthis.serverConfig = serverConfig;\n\t\tthis.clientDir = clientDir;\n\n\t\t// Fixtures\n\t\tloadServerInit();\n\t\tloadServerCronJobs();\n\n\t\t// Methods\n\t\tloadAccountMethods(this);\n\t\tloadAWSMethods(this);\n\t\tloadCloudConvertMethods(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\tloadReportBuilderMethods(this);\n\t\tloadSupportMethods(this);\n\t\tloadMonitorMethods(this);\n\n\t\tif (mainServer.sesMail) {\n\t\t\tthis._mailer = nodemailer.createTransport({\n\t\t\t\tSES: new aws.SES({\n\t\t\t\t\tapiVersion: '2010-12-01',\n\t\t\t\t\taccessKeyId: serverConfig.AWSACCESSKEYID,\n\t\t\t\t\tsecretAccessKey: serverConfig.AWSSECRETACCESSKEY,\n\t\t\t\t\tregion: serverConfig.AWSSES_REGION\n\t\t\t\t})\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tthis._mailer = nodemailer.createTransport({\n\t\t\t\thost: this.serverConfig['MAIL_HOST'], // 'smtp.office365.com', // Office 365 server\n\t\t\t\tport: this.serverConfig['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: this.serverConfig['MAIL_USERNAME'],\n\t\t\t\t\tpass: this.serverConfig['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\t// this._imap = new imap({\n\t\t// \tuser: this.serverConfig['ORDERS_EMAIL'],\n\t\t// \tpassword: this.serverConfig['ORDERS_PASSWORD'],\n\t\t// \thost: this.serverConfig['ORDERS_HOST'],\n\t\t// \tport: this.serverConfig['ORDERS_PORT'],\n\t\t// \ttls: this.serverConfig['ORDERS_TLS']\n\t\t// });\n\n\t\t// let that = this;\n\n\t\t// let chemicalNames = await Chemicals.find({}).select('description');\n\t\t// let jobNames = await Jobs.find({status: 'Active'}).select('well');\n\n\t\t// console.log(jobNames.map(a => a.well));\n\n\t\t// this._imap.once('ready', () => {\n\t\t// \tthis._imap.openBox('INBOX', true, function(err, box) {\n\t\t// \t\tif (err) {\n\t\t// \t\t\tthrow err;\n\t\t// \t\t}\n\n\t\t// \t\tthat._imap.search([ 'NEW' ], function(err, results) {\n\n\t\t// \t\t\tconsole.log(err, results);\n\n\t\t// \t\t\tif (err || !results.length) {\n\t\t// \t\t\t\treturn that._imap.end();\n\t\t// \t\t\t}\n\n\t\t// \t\t\tlet f = that._imap.fetch(results[0], { bodies: ['HEADER.FIELDS (FROM)', 'TEXT'] });\n\t\t// \t\t\tf.on('message', function(msg, seqno) {\n\t\t// \t\t\t\t// console.log('Message #%d', seqno);\n\t\t// \t\t\t\tlet prefix = '(#' + seqno + ') ';\n\t\t// \t\t\t\tmsg.on('body', function(stream, info) {\n\t\t// \t\t\t\t\tlet buffer = '', count = 0;\n\t\t// \t\t\t\t\tstream.on('data', function(chunk) {\n\t\t// \t\t\t\t\t\tcount += chunk.length;\n\t\t// \t\t\t\t\t\tbuffer += chunk.toString('utf8');\n\t\t// \t\t\t\t\t});\n\t\t// \t\t\t\t\tstream.once('end', function() {\n\t\t// \t\t\t\t\t\tif (info.which === 'TEXT') {\n\t\t// \t\t\t\t\t\t\t// console.log(buffer);\n\t\t// \t\t\t\t\t\t\t// console.log(typeof(buffer));\n\t\t// \t\t\t\t\t\t\tlet lines = buffer.split('\\r\\n');\n\t\t// \t\t\t\t\t\t\t// console.log(lines);\n\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\t// let i = 0;\n\t\t// \t\t\t\t\t\t\t// lines.forEach(line => {\n\n\t\t// \t\t\t\t\t\t\t// \tlet date: Date;\n\t\t// \t\t\t\t\t\t\t// \tlet dateString;\n\n\t\t// \t\t\t\t\t\t\t// \tif (line.includes('From')) {\n\t\t// \t\t\t\t\t\t\t// \t\tconsole.log(line);\n\t\t// \t\t\t\t\t\t\t// \t}\n\t\t// \t\t\t\t\t\t\t// \tif (!line.includes('class=3D') && !line.includes('style=3D')) {\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Well') || line.includes('Well Name') || line.includes('Job') || line.includes('Pad')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tlet best = stringSimilarity.findBestMatch(line, jobNames.map(a => a.well)).bestMatch;\n\t\n\t\t// \t\t\t\t\t\t\t// \t\t\tif (best && best.rating > 0.5) {\n\t\t// \t\t\t\t\t\t\t// \t\t\t\tconsole.log('Well', line);\n\t\t// \t\t\t\t\t\t\t// \t\t\t}\n\t\t// \t\t\t\t\t\t\t// \t\t}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Product') || line.includes('Chemical')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tlet best = stringSimilarity.findBestMatch(line, chemicalNames.map(a => a.description)).bestMatch;\n\t\n\t\t// \t\t\t\t\t\t\t// \t\t\tif (best && best.rating > 0.5) {\n\t\t// \t\t\t\t\t\t\t// \t\t\t\tconsole.log('Chemical', line);\n\t\t// \t\t\t\t\t\t\t// \t\t\t}\n\t\t// \t\t\t\t\t\t\t// \t\t}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Quantity') || line.includes('Qty') || line.includes('Amount')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log('Qty', line);\n\t\t// \t\t\t\t\t\t\t// \t\t}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Date')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log('Date', line);\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log(moment(Date.parse(line)));\n\t\t// \t\t\t\t\t\t\t// \t\t\tdate = moment(Date.parse(line)).toDate();\n\t\t// \t\t\t\t\t\t\t// \t\t\tdateString = line;\n\t\t// \t\t\t\t\t\t\t// \t\t}\n\t\t// \t\t\t\t\t\t\t// \t\tif (line.includes('Time')) {\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log('Time', line);\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log(moment(Date.parse(line)));\n\t\t// \t\t\t\t\t\t\t// \t\t\tconsole.log(moment(date.setTime(Date.parse(line))));\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\n\t\t// \t\t\t\tmsg.once('attributes', function(attrs) {\n\t\t// \t\t\t\t\tconsole.log(prefix + 'Attributes: %s', inspect(attrs, false, 8));\n\t\t// \t\t\t\t});\n\n\t\t// \t\t\t\tmsg.once('end', function() {\n\t\t// \t\t\t\t\tconsole.log(prefix + 'Finished');\n\t\t// \t\t\t\t});\n\t\t// \t\t\t});\n\t\t\t\t\t\n\t\t// \t\t\tf.once('error', function(error) {\n\t\t// \t\t\t\tconsole.log('Fetch error: ' + error);\n\t\t// \t\t\t});\n\n\t\t// \t\t\tf.once('end', function() {\n\t\t// \t\t\t\tconsole.log('Done fetching all messages!');\n\t\t// \t\t\t\tthat._imap.end();\n\t\t// \t\t\t});\n\t\t// \t\t});\n\t\t// \t});\n\t\t// });\n\n\t\t// this._imap.connect();\n\n\t\tthis._aws = new aws.S3({\n\t\t\taccessKeyId: serverConfig.AWSACCESSKEYID,\n\t\t\tsecretAccessKey: serverConfig.AWSSECRETACCESSKEY,\n\t\t\tregion: serverConfig.AWSREGION\n\t\t});\n\n\t\tsetInterval(() => {\n\t\t\tif (!this._runningQueue) {\n\t\t\t\tif (this._sendQueue.length) {\n\t\t\t\t\tthis._runningQueue = true;\n\t\t\t\t\tfor (let i = this._sendQueue.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tlet ws = this._mainServer.getWS(this._sendQueue[i].id_ws);\n\t\t\t\t\t\tif (ws && ws.readyState === ws.OPEN) {\n\t\t\t\t\t\t\tif (ws.bufferedAmount < 20480) {\n\t\t\t\t\t\t\t\tlet sendItem = this._sendQueue.pop();\n\t\t\t\t\t\t\t\tws.send(JSON.stringify(sendItem.data), (error) => {\n\t\t\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\t\t\tconsole.log('Error on WS: ', error);\n\t\t\t\t\t\t\t\t\t\tthis._mainServer.unsubscribeWS(ws);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (sendItem.method !== 'reportBuilderGetResults' && sendItem.method !== 'reportBuilderGetDistinctValue' && sendItem.method !== 'reportBuilderBuildTree' && sendItem.method !== 'generatePDF' && sendItem.method !== 'getWOOfflineData' && sendItem.method !== 'countQuery' && sendItem.method !== 'countWithQuery' && sendItem.method !== 'countCollectionWithQuery' && sendItem.method !== 'find' && sendItem.method !== 'findOne' && sendItem.method !== 'findWithOptions' && sendItem.method !== 'setWSAppVersion' && sendItem.method !== 'uploadFileAndSave' && sendItem.method !== 'getDrivers') {\n\t\t\t\t\t\t\t\t\tLogs.insertOne({\n\t\t\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t\t\ttype: 'client-response',\n\t\t\t\t\t\t\t\t\t\tcollection: '',\n\t\t\t\t\t\t\t\t\t\tid_document: '',\n\t\t\t\t\t\t\t\t\t\tpayload: getBinarySize(JSON.stringify([sendItem.methodData, sendItem.data])) < 200000 ? JSON.stringify([sendItem.methodData, sendItem.data], null, 2) : 'Too Big',\n\t\t\t\t\t\t\t\t\t\tmethod: sendItem.method,\n\t\t\t\t\t\t\t\t\t\tid_user: ws['id_user'] || '',\n\t\t\t\t\t\t\t\t\t\tuser: ws['user'] || '',\n\t\t\t\t\t\t\t\t\t\tmessageId: sendItem.data.messageId,\n\t\t\t\t\t\t\t\t\t\troute: ''\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tMethodResponses.create({\n\t\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\t\tid_user: ws['id_user'],\n\t\t\t\t\t\t\t\t\tmessage_id: sendItem.data.messageId,\n\t\t\t\t\t\t\t\t\tresponse: getBinarySize(JSON.stringify(sendItem.data)) < 200000 ? sendItem.data : {error: 'Too Big'},\n\t\t\t\t\t\t\t\t\tmethod: sendItem.method,\n\t\t\t\t\t\t\t\t\tdate: sendItem.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\telse {\n\t\t\t\t\t\t\tthis._sendQueue.splice(i, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._runningQueue = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}, 1);\n\t}\n\n\tpublic getMainServer() {\n\t\treturn this._mainServer;\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\tlet that = this;\n\n\t\tif (!that._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Method: ' + method);\n\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif ((methodData.length > 1 || methodData[0]) && !that._methods[method].skipValidation) {\n\t\t\tif (!that._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!that._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['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(that._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\tthat._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\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['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\t\t\n\t\tthat._methods[method].function.call(Object.assign({}, that, MethodManager.prototype, {id_user: '', user: '', id_ws: ''}), ...methodData)\n\t\t.catch(methodErrs => {\n\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['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});\n\t}\n\n\t// Call/run method (Emit on Socket)\n\tpublic callMethod(id_methodLatency: string, ws: WebSocket, messageDate: Date, messageId: number, method: string, ...methodData: any[]) {\n\t\tlet that = this;\n\n\t\tif (!that._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Method: ' + method);\n\t\t\t\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: true,\n\t\t\t\tdata: 'Internal Error'\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tif (id_methodLatency) {\n\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ((methodData.length > 1 || methodData[0]) && !that._methods[method].skipValidation) {\n\t\t\tif (!that._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\t\t\t\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t};\n\t\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t\t}\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!that._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\n\t\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\t\t\t\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t};\n\n\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t\t}\n\t\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\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(that._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\tthat._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\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['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\t\t\t\n\t\t\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\t\t\thasError: true,\n\t\t\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t\t\t};\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t\t\t\t}\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\t\t\n\t\tthat._methods[method].function.call(Object.assign({}, that, MethodManager.prototype, {id_user: ws['id_user'], user: ws['user'], id_ws: ws['id_socket']}), ...methodData)\n\t\t.catch(methodErrs => {\n\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['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})\n\t\t.then(async (res) => {\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: false,\n\t\t\t\tdata: res\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tif (id_methodLatency) {\n\t\t\t\tlet latency = await LogMethodLatencies.findById(id_methodLatency);\n\n\t\t\t\tif (latency) {\n\t\t\t\t\tLogMethodLatencies.updateOne({_id: id_methodLatency}, {$set: {date_end: new Date(), latency_ms: moment().diff(moment(latency.date_start), 'milliseconds', true)}});\n\t\t\t\t}\n\t\t\t}\n\t\t}, err => {\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: true,\n\t\t\t\tdata: err\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tif (id_methodLatency) {\n\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t}\n\t\t});\n\t}\n\n\t// Call/run method internal (No Emit on Socket)\n\tpublic callMethodInternal(method, ...methodData: any[]): Promise<any> {\n\t\tlet that = this;\n\n\t\tif (!that._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')) && !that._methods[method].skipValidation) {\n\t\t\tif (!that._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 (!that._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') {\n\t\t\tLogs.insertOne({\n\t\t\t\t_id: objectIdHexString(),\n\t\t\t\ttype: 'callMethodInternal',\n\t\t\t\tcollection: '',\n\t\t\t\tid_document: '',\n\t\t\t\tpayload: getBinarySize(JSON.stringify([methodData])) < 200000 ? JSON.stringify([methodData], null, 2) : 'Too Big',\n\t\t\t\tmethod: method,\n\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\tuser: this['user'] || '',\n\t\t\t\tmessageId: 0,\n\t\t\t\troute: ''\n\t\t\t});\n\t\t}\n\n\t\tlet promise = that._methods[method].function.call(Object.assign({}, that, MethodManager.prototype), ...methodData)\n\t\t.catch(methodErrs => {\n\t\t\tthat.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + that.serverConfig['CLIENT_NAME'], 'Error Detected During Method ' + method + ' - (callMethodInternal)\\n\\nData \\n' + JSON.stringify(methodData, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(methodErrs, null, 2));\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._sendQueue.splice(0, 0, {\n\t\t\tid_ws: ws['id_socket'],\n\t\t\tmethod: method,\n\t\t\tmethodData: methodData,\n\t\t\tdata: data,\n\t\t\tdate: messageDate\n\t\t});\n\t}\n\n\tpublic sendEmail(sendTo: string, subject: string, text?: string, html?: string, attachments?: any[], send_from?: string) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif ((this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) || this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/www\\.dev\\./)) || this.serverConfig['ROOT_URL'] === 'http://localhost:4200') && !sendTo.match(new RegExp(/\\@resolveio\\.com/))) {\n\t\t\t\tsendTo = 'dev@resolveio.com';\n\t\t\t}\n\n\t\t\tif (sendTo) {\n\t\t\t\tif (this.serverConfig['ROOT_URL'] !== 'http://localhost:4200') {\n\t\t\t\t\tthis._mailer.sendMail({\n\t\t\t\t\t\treplyTo: undefined,\n\t\t\t\t\t\tfrom: send_from ? send_from : this.serverConfig.MAIL_FROM,\n\t\t\t\t\t\tto: sendTo,\n\t\t\t\t\t\tsubject: (this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) || this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/www\\.dev\\./)) ? '(DEV SERVER) - ' : '') + 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}, (err, info) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\tEmailHistories.create({\n\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\t\t\t\t\tuser: this['user'] || '',\n\t\t\t\t\t\t\t\temail: sendTo,\n\t\t\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\t\t\tverified: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tEmailHistories.create({\n\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\t\t\t\t\tuser: this['user'] || '',\n\t\t\t\t\t\t\t\temail: sendTo,\n\t\t\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\t\t\tverified: false\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}\n\t\t\t\telse {\n\t\t\t\t\tconsole.log('Send email', sendTo, subject, text, html, attachments, send_from);\n\t\t\t\t}\n\n\t\t\t\tresolve(true);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic getAWS(): aws.S3 {\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(this.clientDir, ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(this.clientDir, ('./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(this.clientDir, ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(this.clientDir, ('./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,4 +1,5 @@
1
- import { ChangeStreamOptions, ClientSession, CollectionAggregationOptions, CollectionInsertManyOptions, CollectionInsertOneOptions, CommonOptions, FilterQuery, FindOneAndDeleteOption, FindOneAndReplaceOption, FindOneAndUpdateOption, FindOneOptions, IndexOptions, IndexSpecification, MongoCountPreferences, MongoDistinctPreferences, ReadPreferenceOrMode, ReplaceOneOptions, UpdateManyOptions, UpdateOneOptions, UpdateQuery } from 'mongodb';
1
+ /// <reference types="node" />
2
+ import { AggregateOptions, BulkWriteOptions, ChangeStreamOptions, ClientSession, CommandOperationOptions, CountDocumentsOptions, CreateIndexesOptions, CursorStreamOptions, DeleteOptions, Filter, FindOneAndDeleteOptions, FindOneAndReplaceOptions, FindOneAndUpdateOptions, FindOptions, IndexDescription, InsertOneOptions, ListIndexesOptions, RenameOptions, ReplaceOptions, UpdateFilter, UpdateOptions } from 'mongodb';
2
3
  import { LookupTables } from '../models/report-builder.model';
3
4
  import { UserModel } from '../models/user.model';
4
5
  interface MongoQueueModel {
@@ -20,6 +21,7 @@ export declare class MongoManager {
20
21
  private _collections;
21
22
  private _mongoQueue;
22
23
  private _mongoQueueId;
24
+ private _mongoQueueRunning;
23
25
  private _nodeCache;
24
26
  private _mongoQueueCacheId;
25
27
  private _heapStats;
@@ -49,73 +51,54 @@ export declare class Collection<T> {
49
51
  createLogs: boolean;
50
52
  useRB: boolean;
51
53
  constructor(collectionName: string, schema: object, useReportBuilder: any, reportBuilderLookupTables: LookupTables[], timestamps: any, createLogs: any, checkSchema: any);
52
- aggregate(pipeline: object[], options?: CollectionAggregationOptions, allowLogs?: boolean): Promise<any[]>;
53
- aggregateCount(pipeline: object[], options?: CollectionAggregationOptions): Promise<number>;
54
- aggregateCursor(pipeline: object[], options?: CollectionAggregationOptions): any;
55
- aggregateStream(pipeline: object[], options?: CollectionAggregationOptions): any;
56
- countDocuments(filter?: FilterQuery<T>, options?: MongoCountPreferences): any;
57
- create(f_docs: T | T[], options?: CollectionInsertManyOptions): Promise<T | T[]>;
58
- createIndex(fieldOrSpec: any, options?: IndexOptions): any;
59
- createIndexes(indexSpecs: IndexSpecification[], options?: {
60
- session?: ClientSession;
61
- }): any;
62
- deleteMany(filter?: FilterQuery<T>, options?: CommonOptions, bypassLogs?: boolean): Promise<unknown>;
63
- deleteOne(filter?: FilterQuery<T>, options?: CommonOptions & {
54
+ aggregate(pipeline: object[], options?: AggregateOptions, allowLogs?: boolean): Promise<any[]>;
55
+ aggregateCount(pipeline: object[], options?: AggregateOptions): Promise<number>;
56
+ aggregateCursor(pipeline: object[], options?: AggregateOptions): import("mongodb").AggregationCursor<import("bson").Document>;
57
+ aggregateStream(pipeline: object[], options?: AggregateOptions): import("stream").Readable;
58
+ countDocuments(filter?: Filter<T>, options?: CountDocumentsOptions): Promise<number>;
59
+ create(f_docs: T | T[], options?: InsertOneOptions | BulkWriteOptions): Promise<T | T[]>;
60
+ createIndex(fieldOrSpec: any, options?: CreateIndexesOptions): Promise<string>;
61
+ createIndexes(indexSpecs: IndexDescription[], options?: CreateIndexesOptions): Promise<string[]>;
62
+ deleteMany(filter?: Filter<T>, options?: DeleteOptions, bypassLogs?: boolean): Promise<unknown>;
63
+ deleteOne(filter?: Filter<T>, options?: FindOneAndDeleteOptions & {
64
64
  bypassDocumentValidation?: boolean;
65
65
  }, bypassLogs?: boolean): Promise<unknown>;
66
- distinct(key: string, filter?: FilterQuery<T>, options?: MongoDistinctPreferences): Promise<T[]>;
67
- drop(options?: {
68
- session: ClientSession;
69
- }): any;
70
- dropIndex(indexName: string, options?: CommonOptions & {
71
- maxTimeMS?: number;
72
- }): any;
73
- dropIndexes(options?: {
74
- session?: ClientSession;
75
- maxTimeMS?: number;
76
- }): any;
77
- find(filter?: FilterQuery<T>, options?: FindOneOptions<T>, bypassLogs?: boolean): Promise<T[]>;
78
- findById(id: string, options?: FindOneOptions<T>): Promise<T>;
79
- findCount(filter?: FilterQuery<T>, options?: FindOneOptions<T>, bypassLogs?: boolean): any;
80
- findCursor(filter?: FilterQuery<T>, options?: FindOneOptions<T>): any;
81
- findStream(filter?: FilterQuery<T>, options?: FindOneOptions<T>, streamOptions?: any): any;
82
- findOne(filter?: FilterQuery<T>, options?: FindOneOptions<T>, bypassLogs?: boolean): Promise<T>;
83
- findOneAndDelete(filter?: FilterQuery<T>, options?: FindOneAndDeleteOption<T>, bypassLogs?: boolean): Promise<T>;
84
- findOneAndReplace(filter: FilterQuery<T>, replacement: T, options?: FindOneAndReplaceOption<T>, bypassLogs?: boolean, bypassCheckSchema?: boolean): Promise<T>;
85
- findOneAndUpdate(filter: FilterQuery<T>, update: any, options?: FindOneAndUpdateOption<T>, bypassLogs?: boolean, bypassCheckSchema?: boolean): Promise<T>;
66
+ distinct(key: string, filter?: Filter<T>, options?: CommandOperationOptions): Promise<T[]>;
67
+ drop(options?: CommandOperationOptions): Promise<boolean>;
68
+ dropIndex(indexName: string, options?: CommandOperationOptions): Promise<import("bson").Document>;
69
+ dropIndexes(options?: CommandOperationOptions): Promise<import("bson").Document>;
70
+ find(filter?: Filter<T>, options?: FindOptions<T>, bypassLogs?: boolean): Promise<T[]>;
71
+ findById(id: string, options?: FindOptions<T>): Promise<T>;
72
+ findCount(filter?: Filter<T>, options?: FindOptions<T>, bypassLogs?: boolean): Promise<Number>;
73
+ findCursor(filter?: Filter<T>, options?: FindOptions<T>): import("mongodb").FindCursor<import("bson").Document>;
74
+ findStream(filter?: Filter<T>, options?: FindOptions<T>, streamOptions?: CursorStreamOptions): import("stream").Readable;
75
+ findOne(filter?: Filter<T>, options?: FindOptions<T>, bypassLogs?: boolean): Promise<T>;
76
+ findOneAndDelete(filter?: Filter<T>, options?: FindOneAndDeleteOptions, bypassLogs?: boolean): Promise<T>;
77
+ findOneAndReplace(filter: Filter<T>, replacement: T, options?: FindOneAndReplaceOptions, bypassLogs?: boolean, bypassCheckSchema?: boolean): Promise<T>;
78
+ findOneAndUpdate(filter: Filter<T>, update: any, options?: FindOneAndUpdateOptions, bypassLogs?: boolean, bypassCheckSchema?: boolean): Promise<T>;
86
79
  indexes(options?: {
87
80
  session: ClientSession;
88
- }): any;
81
+ }): Promise<import("bson").Document[]>;
89
82
  indexExists(indexes: string | string[], options?: {
90
83
  session: ClientSession;
91
- }): any;
92
- insertMany(docs: T[], options?: CollectionInsertManyOptions, bypassLogs?: boolean, bypassCheckSchema?: boolean): Promise<T[]>;
93
- insertOne(doc: T, options?: CollectionInsertOneOptions, bypassLogs?: boolean, bypassCheckSchema?: boolean): Promise<T>;
94
- listIndexes(options?: {
95
- batchSize?: number;
96
- readPreference?: ReadPreferenceOrMode;
97
- session?: ClientSession;
98
- }): any;
99
- reIndex(options?: {
100
- session: ClientSession;
101
- }): any;
102
- rename(newName: string, options?: {
103
- dropTarget?: boolean;
104
- session?: ClientSession;
105
- }): any;
106
- replaceOne(filter: FilterQuery<T>, replacement: T, options?: ReplaceOneOptions, bypassLogs?: boolean, bypassCheckSchema?: boolean, doc?: T): Promise<number>;
84
+ }): Promise<boolean>;
85
+ insertMany(docs: T[], options?: BulkWriteOptions, bypassLogs?: boolean, bypassCheckSchema?: boolean): Promise<T[]>;
86
+ insertOne(doc: T, options?: InsertOneOptions, bypassLogs?: boolean, bypassCheckSchema?: boolean): Promise<T>;
87
+ listIndexes(options?: ListIndexesOptions): import("mongodb").ListIndexesCursor;
88
+ rename(newName: string, options?: RenameOptions): Promise<import("mongodb").Collection<import("bson").Document>>;
89
+ replaceOne(filter: Filter<T>, replacement: T, options?: ReplaceOptions, bypassLogs?: boolean, bypassCheckSchema?: boolean, doc?: T): Promise<number>;
107
90
  stats(options?: {
108
91
  scale: number;
109
92
  session?: ClientSession;
110
- }): any;
111
- updateMany(filter: FilterQuery<T>, update: UpdateQuery<T>, options?: UpdateManyOptions, bypassLogs?: boolean, bypassCheckSchema?: boolean, bypassVersions?: boolean): Promise<number>;
112
- updateOne(filter: FilterQuery<T>, update: UpdateQuery<T>, options?: UpdateOneOptions, bypassLogs?: boolean, bypassCheckSchema?: boolean): Promise<number>;
93
+ }): Promise<import("mongodb").CollStats>;
94
+ updateMany(filter: Filter<T>, update: UpdateFilter<T>, options?: UpdateOptions, bypassLogs?: boolean, bypassCheckSchema?: boolean, bypassVersions?: boolean): Promise<number>;
95
+ updateOne(filter: Filter<T>, update: UpdateFilter<T>, options?: UpdateOptions, bypassLogs?: boolean, bypassCheckSchema?: boolean): Promise<number>;
113
96
  watchCollection(pipeline?: any[], options?: ChangeStreamOptions & {
114
97
  session?: ClientSession;
115
- }): any;
98
+ }): import("mongodb").ChangeStream<import("bson").Document>;
116
99
  watchCollectionWithAggregate(pipeline?: any[], options?: ChangeStreamOptions & {
117
100
  session?: ClientSession;
118
- }): any;
101
+ }): import("mongodb").ChangeStream<import("bson").Document>;
119
102
  }
120
103
  export declare class UserCollection<T> extends Collection<T> {
121
104
  authenticateStrategy(): (username: any, password: any, cb: any) => Promise<void>;
@@ -130,5 +113,5 @@ export declare class UserCollection<T> extends Collection<T> {
130
113
  register(user: any, password: any): Promise<unknown>;
131
114
  resetAttempts(user: UserModel): Promise<number>;
132
115
  }
133
- export declare function objectIdHexString(): any;
116
+ export declare function objectIdHexString(): string;
134
117
  export {};