@resolveio/server-lib 11.1.2 → 11.1.3

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,36 +1,12 @@
1
1
  import { MethodModel } from '../models/method.model';
2
2
  import ResolveIOMainServer from '../server-app';
3
- import { CloudFormation } from '@aws-sdk/client-cloudformation';
4
- import { CloudFront } from '@aws-sdk/client-cloudfront';
5
- import { CodeBuild } from '@aws-sdk/client-codebuild';
6
- import { EBS } from '@aws-sdk/client-ebs';
7
- import { EC2 } from '@aws-sdk/client-ec2';
8
- import { EC2InstanceConnect } from '@aws-sdk/client-ec2-instance-connect';
9
- import { ElasticBeanstalk } from '@aws-sdk/client-elastic-beanstalk';
10
- import { Route53 } from '@aws-sdk/client-route-53';
11
3
  import { S3 } from '@aws-sdk/client-s3';
12
4
  import { SES } from '@aws-sdk/client-ses';
13
5
  export declare class AWS {
14
6
  private _serverConfig;
15
- private _cloudfront;
16
- private _cloudformation;
17
- private _codebuild;
18
- private _ebs;
19
- private _ec2;
20
- private _ec2connect;
21
- private _elasticbeanstalk;
22
- private _route53;
23
7
  private _s3;
24
8
  private _ses;
25
9
  constructor(serverConfig: any);
26
- cloudfront(): CloudFront;
27
- cloudformation(): CloudFormation;
28
- codebuild(): CodeBuild;
29
- ebs(): EBS;
30
- ec2(): EC2;
31
- ec2connect(): EC2InstanceConnect;
32
- elasticbeanstalk(): ElasticBeanstalk;
33
- route53(): Route53;
34
10
  s3(): S3;
35
11
  ses(): SES;
36
12
  }
@@ -69,136 +69,15 @@ var monitor_1 = require("../methods/monitor");
69
69
  var email_history_collection_1 = require("../collections/email-history.collection");
70
70
  var mongo_manager_1 = require("./mongo.manager");
71
71
  var monitor_manager_1 = require("./monitor.manager");
72
- var client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
73
- var client_cloudfront_1 = require("@aws-sdk/client-cloudfront");
74
- var client_codebuild_1 = require("@aws-sdk/client-codebuild");
75
- var client_ebs_1 = require("@aws-sdk/client-ebs");
76
- var client_ec2_1 = require("@aws-sdk/client-ec2");
77
- var client_ec2_instance_connect_1 = require("@aws-sdk/client-ec2-instance-connect");
78
- var client_elastic_beanstalk_1 = require("@aws-sdk/client-elastic-beanstalk");
79
- var client_route_53_1 = require("@aws-sdk/client-route-53");
80
72
  var client_s3_1 = require("@aws-sdk/client-s3");
81
73
  var client_ses_1 = require("@aws-sdk/client-ses");
82
74
  var AWS = /** @class */ (function () {
83
75
  function AWS(serverConfig) {
84
76
  this._serverConfig = null;
85
- this._cloudfront = null;
86
- this._cloudformation = null;
87
- this._codebuild = null;
88
- this._ebs = null;
89
- this._ec2 = null;
90
- this._ec2connect = null;
91
- this._elasticbeanstalk = null;
92
- this._route53 = null;
93
77
  this._s3 = null;
94
78
  this._ses = null;
95
79
  this._serverConfig = serverConfig;
96
80
  }
97
- AWS.prototype.cloudfront = function () {
98
- if (this._cloudfront) {
99
- return this._cloudfront;
100
- }
101
- this._cloudfront = new client_cloudfront_1.CloudFront({
102
- credentials: {
103
- accessKeyId: this._serverConfig.AWSACCESSKEYID,
104
- secretAccessKey: this._serverConfig.AWSSECRETACCESSKEY
105
- },
106
- region: 'us-east-1'
107
- });
108
- return this._cloudfront;
109
- };
110
- AWS.prototype.cloudformation = function () {
111
- if (this._cloudformation) {
112
- return this._cloudformation;
113
- }
114
- this._cloudformation = new client_cloudformation_1.CloudFormation({
115
- credentials: {
116
- accessKeyId: this._serverConfig.AWSACCESSKEYID,
117
- secretAccessKey: this._serverConfig.AWSSECRETACCESSKEY
118
- },
119
- region: 'us-east-1'
120
- });
121
- return this._cloudformation;
122
- };
123
- AWS.prototype.codebuild = function () {
124
- if (this._codebuild) {
125
- return this._codebuild;
126
- }
127
- this._codebuild = new client_codebuild_1.CodeBuild({
128
- credentials: {
129
- accessKeyId: this._serverConfig.AWSACCESSKEYID,
130
- secretAccessKey: this._serverConfig.AWSSECRETACCESSKEY
131
- },
132
- region: 'us-east-1'
133
- });
134
- return this._codebuild;
135
- };
136
- AWS.prototype.ebs = function () {
137
- if (this._ebs) {
138
- return this._ebs;
139
- }
140
- this._ebs = new client_ebs_1.EBS({
141
- credentials: {
142
- accessKeyId: this._serverConfig.AWSACCESSKEYID,
143
- secretAccessKey: this._serverConfig.AWSSECRETACCESSKEY
144
- },
145
- region: 'us-east-1'
146
- });
147
- return this._ebs;
148
- };
149
- AWS.prototype.ec2 = function () {
150
- if (this._ec2) {
151
- return this._ec2;
152
- }
153
- this._ec2 = new client_ec2_1.EC2({
154
- // apiVersion: '2016-11-15',
155
- region: 'us-east-1',
156
- credentials: {
157
- accessKeyId: this._serverConfig.AWSACCESSKEYID,
158
- secretAccessKey: this._serverConfig.AWSSECRETACCESSKEY
159
- },
160
- });
161
- return this._ec2;
162
- };
163
- AWS.prototype.ec2connect = function () {
164
- if (this._ec2connect) {
165
- return this._ec2connect;
166
- }
167
- this._ec2connect = new client_ec2_instance_connect_1.EC2InstanceConnect({
168
- region: 'us-east-1',
169
- credentials: {
170
- accessKeyId: this._serverConfig.AWSACCESSKEYID,
171
- secretAccessKey: this._serverConfig.AWSSECRETACCESSKEY
172
- }
173
- });
174
- return this._ec2connect;
175
- };
176
- AWS.prototype.elasticbeanstalk = function () {
177
- if (this._elasticbeanstalk) {
178
- return this._elasticbeanstalk;
179
- }
180
- this._elasticbeanstalk = new client_elastic_beanstalk_1.ElasticBeanstalk({
181
- region: 'us-east-1',
182
- credentials: {
183
- accessKeyId: this._serverConfig.AWSACCESSKEYID,
184
- secretAccessKey: this._serverConfig.AWSSECRETACCESSKEY
185
- },
186
- });
187
- return this._elasticbeanstalk;
188
- };
189
- AWS.prototype.route53 = function () {
190
- if (this._route53) {
191
- return this._route53;
192
- }
193
- this._route53 = new client_route_53_1.Route53({
194
- credentials: {
195
- accessKeyId: this._serverConfig.AWSACCESSKEYID,
196
- secretAccessKey: this._serverConfig.AWSSECRETACCESSKEY
197
- },
198
- region: this._serverConfig.AWSSES_REGION
199
- });
200
- return this._route53;
201
- };
202
81
  AWS.prototype.s3 = function () {
203
82
  if (this._s3) {
204
83
  return this._s3;
@@ -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 { 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';\nimport { MonitorFunction } from './monitor.manager';\nimport { CloudFormation } from '@aws-sdk/client-cloudformation';\nimport { CloudFront } from '@aws-sdk/client-cloudfront';\nimport { CodeBuild } from '@aws-sdk/client-codebuild';\nimport { EBS } from'@aws-sdk/client-ebs';\nimport { EC2 } from '@aws-sdk/client-ec2';\nimport { EC2InstanceConnect } from '@aws-sdk/client-ec2-instance-connect';\nimport { ElasticBeanstalk } from '@aws-sdk/client-elastic-beanstalk';\nimport { Route53 } from '@aws-sdk/client-route-53';\nimport { S3 } from '@aws-sdk/client-s3';\nimport { SES } from '@aws-sdk/client-ses';\n\nexport class AWS {\n\tprivate _serverConfig = null;\n\tprivate _cloudfront = null;\n\tprivate _cloudformation = null;\n\tprivate _codebuild = null;\n\tprivate _ebs = null;\n\tprivate _ec2 = null;\n\tprivate _ec2connect = null;\n\tprivate _elasticbeanstalk = null;\n\tprivate _route53 = null;\n\tprivate _s3 = null;\n\tprivate _ses = null;\n\n\tconstructor(serverConfig) {\n\t\tthis._serverConfig = serverConfig;\n\t}\n\n\tpublic cloudfront() : CloudFront {\n\t\tif (this._cloudfront) {\n\t\t\treturn this._cloudfront;\n\t\t}\n\n\t\tthis._cloudfront = new CloudFront({\n\t\t\tcredentials: {\n\t\t\t\taccessKeyId: this._serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this._serverConfig.AWSSECRETACCESSKEY\n\t\t\t},\n\t\t\tregion: 'us-east-1'\n\t\t});\n\n\t\treturn this._cloudfront;\n\t}\n\n\tpublic cloudformation() : CloudFormation {\n\t\tif (this._cloudformation) {\n\t\t\treturn this._cloudformation;\n\t\t}\n\n\t\tthis._cloudformation = new CloudFormation({\n\t\t\tcredentials: {\n\t\t\t\taccessKeyId: this._serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this._serverConfig.AWSSECRETACCESSKEY\n\t\t\t},\n\t\t\tregion: 'us-east-1'\n\t\t});\n\n\t\treturn this._cloudformation;\n\t}\n\t\n\tpublic codebuild() : CodeBuild {\n\t\tif (this._codebuild) {\n\t\t\treturn this._codebuild;\n\t\t}\n\n\t\tthis._codebuild = new CodeBuild({\n\t\t\tcredentials: {\n\t\t\t\taccessKeyId: this._serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this._serverConfig.AWSSECRETACCESSKEY\n\t\t\t},\n\t\t\tregion: 'us-east-1'\n\t\t});\n\n\t\treturn this._codebuild;\n\t}\n\t\n\tpublic ebs() : EBS {\n\t\tif (this._ebs) {\n\t\t\treturn this._ebs;\n\t\t}\n\n\t\tthis._ebs = new EBS({\n\t\t\tcredentials: {\n\t\t\t\taccessKeyId: this._serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this._serverConfig.AWSSECRETACCESSKEY\n\t\t\t},\n\t\t\tregion: 'us-east-1'\n\t\t});\n\n\t\treturn this._ebs;\n\t}\n\n\tpublic ec2() : EC2 {\n\t\tif (this._ec2) {\n\t\t\treturn this._ec2;\n\t\t}\n\n\t\tthis._ec2 = new EC2({\n\t\t\t// apiVersion: '2016-11-15', \n\t\t\tregion: 'us-east-1',\n\t\t\tcredentials: {\n\t\t\t\taccessKeyId: this._serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this._serverConfig.AWSSECRETACCESSKEY\n\t\t\t},\n\t\t});\n\n\t\treturn this._ec2;\n\t}\n\n\tpublic ec2connect() : EC2InstanceConnect {\n\t\tif (this._ec2connect) {\n\t\t\treturn this._ec2connect;\n\t\t}\n\n\t\tthis._ec2connect = new EC2InstanceConnect({\n\t\t\tregion: 'us-east-1',\n\t\t\tcredentials: {\n\t\t\t\taccessKeyId: this._serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this._serverConfig.AWSSECRETACCESSKEY\n\t\t\t}\n\t\t});\n\n\t\treturn this._ec2connect;\n\t}\n\n\tpublic elasticbeanstalk() : ElasticBeanstalk {\n\t\tif (this._elasticbeanstalk) {\n\t\t\treturn this._elasticbeanstalk;\n\t\t}\n\n\t\tthis._elasticbeanstalk = new ElasticBeanstalk({\n\t\t\tregion: 'us-east-1',\n\t\t\tcredentials: {\n\t\t\t\taccessKeyId: this._serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this._serverConfig.AWSSECRETACCESSKEY\n\t\t\t},\n\t\t\t// region: this._serverConfig.AWSSES_REGION\n\t\t});\n\n\t\treturn this._elasticbeanstalk;\n\t}\n\n\tpublic route53() : Route53 {\n\t\tif (this._route53) {\n\t\t\treturn this._route53;\n\t\t}\n\n\t\tthis._route53 = new Route53({\n\t\t\tcredentials: {\n\t\t\t\taccessKeyId: this._serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this._serverConfig.AWSSECRETACCESSKEY\n\t\t\t},\n\t\t\tregion: this._serverConfig.AWSSES_REGION\n\t\t});\n\n\t\treturn this._route53;\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: this._serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this._serverConfig.AWSSECRETACCESSKEY\n\t\t\t},\n\t\t\tregion: this._serverConfig.AWSREGION\n\t\t});\n\n\t\treturn this._s3;\n\t}\n\n\tpublic ses() : SES {\n\t\tif (this._ses) {\n\t\t\treturn this._ses;\n\t\t}\n\n\t\tthis._ses = new SES({\n\t\t\tcredentials: {\n\t\t\t\taccessKeyId: this._serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this._serverConfig.AWSSECRETACCESSKEY\n\t\t\t},\n\t\t\tregion: this._serverConfig.AWSSES_REGION\n\t\t});\n\n\t\treturn this._ses;\n\t}\n}\n\nexport class MethodManager {\n\n\tprivate _mainServer: ResolveIOMainServer;\n\tpublic _methods: MethodModel = {};\n\tprivate _mailer: nodemailer.Transporter;\n\tprivate _aws: AWS;\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\tthis._aws = new AWS(serverConfig);\n\n\t\tif (mainServer.sesMail) {\n\n\t\t\tthis._mailer = nodemailer.createTransport({\n\t\t\t\tSES: this._aws.ses()\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\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\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.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]) && !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 - ' + this.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 (!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 - ' + this.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(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 - ' + this.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\tlet monitor = new MonitorFunction('Cron Method', method, '', methodData);\n\t\tlet promise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype, {id_user: '', user: '', id_ws: ''}), ...methodData)\n\t\t.then(res => {\n\t\t\tmonitor.finish();\n\t\t\treturn res;\n\t\t}, methodErrs => {\n\t\t\tmonitor.finish();\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.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\treturn methodErrs;\n\t\t});\n\n\t\treturn promise;\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\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.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]) && !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 - ' + this.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 (!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 - ' + this.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(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 - ' + this.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\tlet monitor = new MonitorFunction('Method', method, ws['user'], methodData);\n\t\tthis._methods[method].function.call(Object.assign({}, this, MethodManager.prototype, {id_user: ws['id_user'], user: ws['user'], id_ws: ws['id_socket']}), ...methodData)\n\t\t.then(async (res) => {\n\t\t\tmonitor.finish();\n\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\tmonitor.finish();\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\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['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});\n\t}\n\n\t// Call/run method internal (No Emit on Socket)\n\tpublic callMethodInternal(method, ...methodData: any[]): Promise<any> {\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') {\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 monitor = new MonitorFunction('Internal Method', method, this['id_user'] || '', methodData);\n\t\tlet promise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype), ...methodData)\n\t\t.then(res => {\n\t\t\tmonitor.finish();\n\t\t\treturn res;\n\t\t}, methodErrs => {\n\t\t\tmonitor.finish();\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.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\treturn methodErrs;\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 {\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 { 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';\nimport { MonitorFunction } from './monitor.manager';\nimport { S3 } from '@aws-sdk/client-s3';\nimport { SES } from '@aws-sdk/client-ses';\n\nexport class AWS {\n\tprivate _serverConfig = null;\n\tprivate _s3 = null;\n\tprivate _ses = null;\n\n\tconstructor(serverConfig) {\n\t\tthis._serverConfig = serverConfig;\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: this._serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this._serverConfig.AWSSECRETACCESSKEY\n\t\t\t},\n\t\t\tregion: this._serverConfig.AWSREGION\n\t\t});\n\n\t\treturn this._s3;\n\t}\n\n\tpublic ses() : SES {\n\t\tif (this._ses) {\n\t\t\treturn this._ses;\n\t\t}\n\n\t\tthis._ses = new SES({\n\t\t\tcredentials: {\n\t\t\t\taccessKeyId: this._serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this._serverConfig.AWSSECRETACCESSKEY\n\t\t\t},\n\t\t\tregion: this._serverConfig.AWSSES_REGION\n\t\t});\n\n\t\treturn this._ses;\n\t}\n}\n\nexport class MethodManager {\n\n\tprivate _mainServer: ResolveIOMainServer;\n\tpublic _methods: MethodModel = {};\n\tprivate _mailer: nodemailer.Transporter;\n\tprivate _aws: AWS;\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\tthis._aws = new AWS(serverConfig);\n\n\t\tif (mainServer.sesMail) {\n\n\t\t\tthis._mailer = nodemailer.createTransport({\n\t\t\t\tSES: this._aws.ses()\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\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\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.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]) && !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 - ' + this.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 (!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 - ' + this.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(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 - ' + this.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\tlet monitor = new MonitorFunction('Cron Method', method, '', methodData);\n\t\tlet promise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype, {id_user: '', user: '', id_ws: ''}), ...methodData)\n\t\t.then(res => {\n\t\t\tmonitor.finish();\n\t\t\treturn res;\n\t\t}, methodErrs => {\n\t\t\tmonitor.finish();\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.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\treturn methodErrs;\n\t\t});\n\n\t\treturn promise;\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\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.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]) && !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 - ' + this.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 (!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 - ' + this.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(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 - ' + this.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\tlet monitor = new MonitorFunction('Method', method, ws['user'], methodData);\n\t\tthis._methods[method].function.call(Object.assign({}, this, MethodManager.prototype, {id_user: ws['id_user'], user: ws['user'], id_ws: ws['id_socket']}), ...methodData)\n\t\t.then(async (res) => {\n\t\t\tmonitor.finish();\n\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\tmonitor.finish();\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\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['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});\n\t}\n\n\t// Call/run method internal (No Emit on Socket)\n\tpublic callMethodInternal(method, ...methodData: any[]): Promise<any> {\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') {\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 monitor = new MonitorFunction('Internal Method', method, this['id_user'] || '', methodData);\n\t\tlet promise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype), ...methodData)\n\t\t.then(res => {\n\t\t\tmonitor.finish();\n\t\t\treturn res;\n\t\t}, methodErrs => {\n\t\t\tmonitor.finish();\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.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\treturn methodErrs;\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 {\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}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resolveio/server-lib",
3
- "version": "11.1.2",
3
+ "version": "11.1.3",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "package": "npm run build-prod && npm pack ./dist",
@@ -15,14 +15,6 @@
15
15
  "@aws-sdk/client-s3": "3.39.0",
16
16
  "@aws-sdk/s3-request-presigner": "3.39.0",
17
17
  "@aws-sdk/client-ses": "3.39.0",
18
- "@aws-sdk/client-cloudformation": "3.39.0",
19
- "@aws-sdk/client-cloudfront": "3.39.0",
20
- "@aws-sdk/client-codebuild": "3.39.0",
21
- "@aws-sdk/client-ebs": "3.39.0",
22
- "@aws-sdk/client-ec2-instance-connect": "3.39.0",
23
- "@aws-sdk/client-ec2": "3.39.0",
24
- "@aws-sdk/client-elastic-beanstalk": "3.39.0",
25
- "@aws-sdk/client-route-53": "3.39.0",
26
18
  "bent": "7.3.12",
27
19
  "body-parser": "1.19.0",
28
20
  "clone": "2.1.2",
@@ -81,14 +73,6 @@
81
73
  "@aws-sdk/client-s3": "3.39.0",
82
74
  "@aws-sdk/s3-request-presigner": "3.39.0",
83
75
  "@aws-sdk/client-ses": "3.39.0",
84
- "@aws-sdk/client-cloudformation": "3.39.0",
85
- "@aws-sdk/client-cloudfront": "3.39.0",
86
- "@aws-sdk/client-codebuild": "3.39.0",
87
- "@aws-sdk/client-ebs": "3.39.0",
88
- "@aws-sdk/client-ec2-instance-connect": "3.39.0",
89
- "@aws-sdk/client-ec2": "3.39.0",
90
- "@aws-sdk/client-elastic-beanstalk": "3.39.0",
91
- "@aws-sdk/client-route-53": "3.39.0",
92
76
  "bent": "7.3.12",
93
77
  "body-parser": "1.19.0",
94
78
  "clone": "2.1.2",