@resolveio/server-lib 20.3.14 → 20.3.16
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.
|
@@ -31,7 +31,7 @@ export declare class MethodManager {
|
|
|
31
31
|
methods(method: MethodModel): void;
|
|
32
32
|
callMethodCron(method: string, ...methodData: any[]): any;
|
|
33
33
|
callMethod(id_methodLatency: string, ws: WebSocket, messageDate: Date, messageId: number, method: string, ...methodData: any[]): void;
|
|
34
|
-
callMethodInternal(method:
|
|
34
|
+
callMethodInternal(method: string, ...methodData: any[]): Promise<any>;
|
|
35
35
|
private sendWS;
|
|
36
36
|
sendEmail(sendTo: string, subject: string, text?: string, html?: string, attachments?: any[], send_from?: string, reply_to?: string, local_override?: boolean): Promise<unknown>;
|
|
37
37
|
getAWS(): AWS;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(e,r,n,i){return new(n=n||Promise)(function(o,t){function fulfilled(e){try{step(i.next(e))}catch(e){t(e)}}function rejected(e){try{step(i.throw(e))}catch(e){t(e)}}function step(e){var t;e.done?o(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(fulfilled,rejected)}step((i=i.apply(e,r||[])).next())})},__generator=this&&this.__generator||function(r,n){var i,s,a,c={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function verb(o){return function(e){var t=[o,e];if(i)throw new TypeError("Generator is already executing.");for(;c=l&&t[l=0]?0:c;)try{if(i=1,s&&(a=2&t[0]?s.return:t[0]?s.throw||((a=s.return)&&a.call(s),0):s.next)&&!(a=a.call(s,t[1])).done)return a;switch(s=0,(t=a?[2&t[0],a.value]:t)[0]){case 0:case 1:a=t;break;case 4:return c.label++,{value:t[1],done:!1};case 5:c.label++,s=t[1],t=[0];continue;case 7:t=c.ops.pop(),c.trys.pop();continue;default:if(!(a=0<(a=c.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){c=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3]))c.label=t[1];else if(6===t[0]&&c.label<a[1])c.label=a[1],a=t;else{if(!(a&&c.label<a[2])){a[2]&&c.ops.pop(),c.trys.pop();continue}c.label=a[2],c.ops.push(t)}}t=n.call(r,c)}catch(e){t=[6,e],s=0}finally{i=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}},__spreadArray=this&&this.__spreadArray||function(e,t,o){if(o||2===arguments.length)for(var r,n=0,i=t.length;n<i;n++)!r&&n in t||((r=r||Array.prototype.slice.call(t,0,n))[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))},collections_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.MethodManager=exports.AWS=void 0,require("../methods/collections")),logs_1=require("../methods/logs"),counters_1=require("../methods/counters"),pdf_1=require("../methods/pdf"),aws_1=require("../methods/aws"),path=require("path"),fs=require("fs"),nodemailer=require("nodemailer"),sesTransport=require("nodemailer-ses-transport"),accounts_1=require("../methods/accounts"),init_1=require("../fixtures/init"),cron_jobs_1=require("../fixtures/cron-jobs"),cron_jobs_2=require("../methods/cron-jobs"),flags_1=require("../methods/flags"),method_response_collection_1=require("../collections/method-response.collection"),common_1=require("../util/common"),log_collection_1=require("../collections/log.collection"),log_method_latency_collection_1=require("../collections/log-method-latency.collection"),moment=require("moment-timezone"),report_builder_1=require("../methods/report-builder"),support_1=require("../methods/support"),monitor_1=require("../methods/monitor"),email_history_collection_1=require("../collections/email-history.collection"),mongo_manager_1=require("./mongo.manager"),client_s3_1=require("@aws-sdk/client-s3"),worker_task_request_collection_1=require("../collections/worker-task-request.collection"),worker_task_response_collection_1=require("../collections/worker-task-response.collection"),AWS=function(){function AWS(e){this._serverConfig=null,this._s3=null,this._s3USEast1=null,this._serverConfig=e}return AWS.prototype.s3=function(){return this._s3||(this._s3=new client_s3_1.S3({credentials:{accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY},region:process.env.AWS_REGION,apiVersion:"2006-03-01"})),this._s3},AWS.prototype.s3USEast1=function(){return"us-east-1"===process.env.AWS_REGION?this.s3():(this._s3USEast1||(this._s3USEast1=new client_s3_1.S3({credentials:{accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY},region:"us-east-1",apiVersion:"2006-03-01"})),this._s3USEast1)},AWS}(),MethodManager=(exports.AWS=AWS,function(){function MethodManager(e,t,o,r,n,i){var s=this;this._methods={},this._sendQueue=[],this._runningQueue=!1,this._isWorkersEnabled=!1,this._isWorkerInstance=!1,this._debugCallMethodInternalHits=0,this._debugCallMethodHits=0,this._debugCallMethodCronJobHits=0,this._debugSendQueueHits=0,this._mainServer=e,this.serverConfig=t,this.clientDir=o,this._monitorManagerFunction=r,this._isWorkersEnabled=n,this._isWorkerInstance=i,(0,init_1.loadServerInit)(),(0,cron_jobs_1.loadServerCronJobs)(),(0,accounts_1.loadAccountMethods)(this),(0,aws_1.loadAWSMethods)(this),(0,collections_1.loadCollectionMethods)(this),(0,counters_1.loadCounterMethods)(this),(0,logs_1.loadLogMethods)(this),(0,pdf_1.loadPDFMethods)(this),(0,cron_jobs_2.loadCronJobMethods)(this),(0,flags_1.loadFlagMethods)(this),(0,report_builder_1.loadReportBuilderMethods)(this),(0,support_1.loadSupportMethods)(this),(0,monitor_1.loadMonitorMethods)(this),this._aws=new AWS(t),e.sesMail?this._mailer=nodemailer.createTransport(sesTransport({accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY,region:process.env.AWS_SES_REGION})):this._mailer=nodemailer.createTransport({host:this.serverConfig.MAIL_HOST,port:this.serverConfig.MAIL_PORT,secure:!1,auth:{user:this.serverConfig.MAIL_USERNAME,pass:this.serverConfig.MAIL_PASSWORD},tls:{ciphers:"SSLv3"}}),setInterval(function(){s._mainServer.getSubscriptionManager()&&s._mainServer.getSubscriptionManager().getEnableDebug()&&(console.log(new Date,"Method Manager","Send Queue Length",s._sendQueue.length),console.log(new Date,"Method Manager","Send Queue Hits",s._debugSendQueueHits),console.log(new Date,"Method Manager","Call Method Internal Hits",s._debugCallMethodInternalHits),console.log(new Date,"Method Manager","Call Method Hits",s._debugCallMethodHits),console.log(new Date,"Method Manager","Call Method Cron Hits",s._debugCallMethodCronJobHits)),s._debugCallMethodInternalHits=0,s._debugCallMethodHits=0,s._debugCallMethodCronJobHits=0,s._debugSendQueueHits=0,s._debugSendQueueHits=0},6e4),setInterval(function(){if(!s._runningQueue&&s._sendQueue.length){s._runningQueue=!0;for(var e=s._sendQueue.length-1;0<=e;e--)!function(e){s._debugSendQueueHits+=1;var t,o=s._mainServer.getWS(s._sendQueue[e].id_ws);o&&o.readyState===o.OPEN?o.bufferedAmount<20480&&(t=s._sendQueue.pop(),o.send(JSON.stringify(t.data),function(e){e&&s._mainServer.unsubscribeWS(o)}),"reportBuilderGetResults"!==t.method&&"reportBuilderGetDistinctValue"!==t.method&&"reportBuilderBuildTree"!==t.method&&"generatePDF"!==t.method&&"getWOOfflineData"!==t.method&&"countQuery"!==t.method&&"countWithQuery"!==t.method&&"countCollectionWithQuery"!==t.method&&"find"!==t.method&&"findOne"!==t.method&&"findWithOptions"!==t.method&&"uploadFileAndSave"!==t.method&&"getDrivers"!==t.method&&"processAirdropDistribution"!==t.method&&log_collection_1.Logs.insertOne({_id:(0,mongo_manager_1.objectIdHexString)(),type:"client-response",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([t.methodData,t.data]))<2e5?JSON.stringify([t.methodData,t.data],null,2):"Too Big",method:t.method,id_user:o.id_user||"",user:o.user||"",messageId:t.data.messageId,route:""}),method_response_collection_1.MethodResponses.create({_id:(0,mongo_manager_1.objectIdHexString)(),__v:0,id_user:o.id_user||"",message_id:t.data.messageId,response:(0,common_1.getBinarySize)(JSON.stringify(t.data))<2e5?t.data:{error:"Too Big"},method:t.method,date:t.date})):s._sendQueue.splice(e,1)}(e);s._runningQueue=!1}},1)}return MethodManager.prototype.getMainServer=function(){return this._mainServer},MethodManager.prototype.methods=function(e){this._methods=Object.assign(this._methods,e)},MethodManager.prototype.callMethodCron=function(t){for(var e,n=this,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];if(this._debugCallMethodCronJobHits+=1,this._methods[t]){if((1<o.length||o[0])&&!this._methods[t].skipValidation){if(!this._methods[t].check)return console.error(new Date,"No Check Function For Method "+t),void this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"No Check Function For Method "+t);if(!this._methods[t].check._schema)return console.error(new Date,"No Check Schema For Method "+t),void this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"No Check Function For Method "+t);for(var i={},s=Object.keys(this._methods[t].check._schema).filter(function(e){return!e.includes(".")}),a=0;a<o.length;a++)i[s[a]]=o[a];try{this._methods[t].check.validate(i)}catch(e){if(e)return console.error(new Date,"Error in Method Check ("+t+")",e),void this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"Match Error On Method "+t+"\n\nData Being Checked\n"+JSON.stringify(i,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2))}}var c,l,d,h=null;return this._isWorkersEnabled&&!this._isWorkerInstance?(c=this._monitorManagerFunction.startMonitorFunction("Cron Method",t,"","",o),l=(0,mongo_manager_1.objectIdHexString)(),h=new Promise(function(t,o){var r=worker_task_response_collection_1.WorkerTaskResponses.watchCollection([{$match:{"fullDocument.id_request":l}}],{fullDocument:"updateLookup"});r.on("change",function(e){"insert"===e.operationType&&(n._monitorManagerFunction.finishMonitorFunction(c),((e=e.fullDocument).has_error?o:t)(e.data),r.close())}),r.on("error",function(e){console.error("Error watching worker responses:",e),o(e),r.close()})}),worker_task_request_collection_1.WorkerTaskRequests.create({_id:l,method:t,params:o,status:"pending",id_user:this.id_user,user:this.user,id_ws:this.id_socket})):(d=this._monitorManagerFunction.startMonitorFunction("Cron Method",t,"","",o),(e=this._methods[t].function).call.apply(e,__spreadArray([Object.assign({},this,MethodManager.prototype,{id_user:"",user:"",id_ws:""})],o,!1)).then(function(e){return n._monitorManagerFunction.finishMonitorFunction(d),e},function(e){return n._monitorManagerFunction.finishMonitorFunction(d),n.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+n.serverConfig.CLIENT_NAME,"Error Detected During Method "+t+" - (callMethodCron)\n\nData \n"+JSON.stringify(o,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),e})),h}console.log("No Method: "+t),this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"No Method: "+t)},MethodManager.prototype.callMethod=function(r,n,i,s,a){for(var c,e,l,d,t=this,h=[],o=5;o<arguments.length;o++)h[o-5]=arguments[o];if(this._debugCallMethodHits+=1,this._methods[a]){if((1<h.length||h[0])&&!this._methods[a].skipValidation){if(!this._methods[a].check)return console.error(new Date,"No Check Function For Method "+a),this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"No Check Function For Method "+a),this.sendWS(n,i,a,h,u={messageId:s,hasError:!0,data:"Internal Error"}),void(r&&log_method_latency_collection_1.LogMethodLatencies.deleteOne({_id:r}));if(!this._methods[a].check._schema)return console.error(new Date,"No Check Schema For Method "+a),this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"No Check Schema For Method "+a),u={messageId:s,hasError:!0,data:"Internal Error"},r&&log_method_latency_collection_1.LogMethodLatencies.deleteOne({_id:r}),void this.sendWS(n,i,a,h,u);for(var u,_={},g=Object.keys(this._methods[a].check._schema).filter(function(e){return!e.includes(".")}),m=0;m<h.length;m++)_[g[m]]=h[m];try{this._methods[a].check.validate(_)}catch(e){if(e)return console.error(new Date,"Error in Method Check ("+a+")",e),"processAirdropDistribution"!==a&&this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"Match Error On Method "+a+"\n\nData Being Checked\n"+JSON.stringify(_,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),this.sendWS(n,i,a,h,u={messageId:s,hasError:!0,data:"Internal Error"}),void(r&&log_method_latency_collection_1.LogMethodLatencies.deleteOne({_id:r}))}}this._isWorkersEnabled&&!this._isWorkerInstance?(c=this._monitorManagerFunction.startMonitorFunction("Method",a,n.user||"",n.id_socket||"",h),e=(0,mongo_manager_1.objectIdHexString)(),(l=worker_task_response_collection_1.WorkerTaskResponses.watchCollection([{$match:{"fullDocument.id_request":e}}],{fullDocument:"updateLookup"})).on("change",function(o){return __awaiter(t,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return"insert"!==o.operationType?[3,3]:(this._monitorManagerFunction.finishMonitorFunction(c),t=o.fullDocument,t={messageId:s,hasError:t.has_error,data:t.data},this.sendWS(n,new Date,a,h,t),r?[4,log_method_latency_collection_1.LogMethodLatencies.findById(r)]:[3,2]);case 1:(t=e.sent())&&log_method_latency_collection_1.LogMethodLatencies.updateOne({_id:r},{$set:{date_end:new Date,latency_ms:moment().diff(moment(t.date_start),"milliseconds",!0)}}),e.label=2;case 2:l.close(),e.label=3;case 3:return[2]}})})}),l.on("error",function(e){console.error("Error watching worker responses:",e),l.close()}),worker_task_request_collection_1.WorkerTaskRequests.create({_id:e,method:a,params:h,status:"pending",id_user:n.id_user,user:n.user,id_ws:n.id_socket})):(d=this._monitorManagerFunction.startMonitorFunction("Method",a,n.user||"",n.id_socket||"",h),(e=this._methods[a].function).call.apply(e,__spreadArray([Object.assign({},this,MethodManager.prototype,{id_user:n.id_user,user:n.user,id_ws:n.id_socket})],h,!1)).then(function(o){return __awaiter(t,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return(this._monitorManagerFunction.finishMonitorFunction(d),t={messageId:s,hasError:!1,data:o},this.sendWS(n,i,a,h,t),r)?[4,log_method_latency_collection_1.LogMethodLatencies.findById(r)]:[3,2];case 1:(t=e.sent())&&log_method_latency_collection_1.LogMethodLatencies.updateOne({_id:r},{$set:{date_end:new Date,latency_ms:moment().diff(moment(t.date_start),"milliseconds",!0)}}),e.label=2;case 2:return[2]}})})},function(e){t._monitorManagerFunction.finishMonitorFunction(d),t.sendWS(n,i,a,h,{messageId:s,hasError:!0,data:e}),r&&log_method_latency_collection_1.LogMethodLatencies.deleteOne({_id:r}),"processAirdropDistribution"!==a&&t.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+t.serverConfig.CLIENT_NAME,"Error Detected During Method "+a+" - (callMethod)\n\nData \n"+JSON.stringify(h,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2))}))}else console.log("No Method: "+a),this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"No Method: "+a),u={messageId:s,hasError:!0,data:"Internal Error"},this.sendWS(n,new Date,a,h,u),r&&log_method_latency_collection_1.LogMethodLatencies.deleteOne({_id:r})},MethodManager.prototype.callMethodInternal=function(t){for(var e,n=this,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];if(this._debugCallMethodInternalHits+=1,!this._methods[t])return console.log("No Method: "+t),null;if((1<o.length||o[0]&&"function"!=typeof o[0])&&!this._methods[t].skipValidation){if(!this._methods[t].check)return console.error(new Date,"No Check Function For Method "+t),null;if(!this._methods[t].check._schema)return console.error(new Date,"No Check Schema For Method "+t),null}"insertSubscriptionLog"!==t&&"getDataURIfromURL"!==t&&"processAirdropDistribution"!==t&&log_collection_1.Logs.insertOne({_id:(0,mongo_manager_1.objectIdHexString)(),type:"callMethodInternal",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([o]))<2e5?JSON.stringify([o],null,2):"Too Big",method:t,id_user:this.id_user||"",user:this.user||"",messageId:0,route:""});var i,s,a,c="function"==typeof o[o.length-1]?o.slice(0,-1):o,l=null;return this._isWorkersEnabled&&!this._isWorkerInstance?(i=this._monitorManagerFunction.startMonitorFunction("Internal Method",t,this.user||"","",c),s=(0,mongo_manager_1.objectIdHexString)(),l=new Promise(function(t,o){var r=worker_task_response_collection_1.WorkerTaskResponses.watchCollection([{$match:{"fullDocument.id_request":s}}],{fullDocument:"updateLookup"});r.on("change",function(e){"insert"===e.operationType&&(n._monitorManagerFunction.finishMonitorFunction(i),((e=e.fullDocument).has_error?o:t)(e.data),r.close())}),r.on("error",function(e){console.error("Error watching worker responses:",e),o(e),r.close()})}),worker_task_request_collection_1.WorkerTaskRequests.create({_id:s,method:t,params:c,status:"pending",id_user:this.id_user,user:this.user,id_ws:this.id_socket})):(a=this._monitorManagerFunction.startMonitorFunction("Internal Method",t,this.user||"","",c),l=(e=this._methods[t].function).call.apply(e,__spreadArray([Object.assign({},this,MethodManager.prototype)],c,!1)).then(function(e){return n._monitorManagerFunction.finishMonitorFunction(a),e},function(e){return n._monitorManagerFunction.finishMonitorFunction(a),n.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+n.serverConfig.CLIENT_NAME,"Error Detected During Method "+t+" - (callMethodInternal)\n\nData \n"+JSON.stringify(o,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),e})),o[o.length-1]&&"function"==typeof o[o.length-1]&&l.then(function(e){return o[o.length-1](null,e)},function(e){return o[o.length-1](e,null)}),l},MethodManager.prototype.sendWS=function(e,t,o,r,n){this._sendQueue.splice(0,0,{id_ws:e.id_socket,method:o,methodData:r,data:n,date:t})},MethodManager.prototype.sendEmail=function(r,n,i,s,a,c,l,d){var o=this;return void 0===d&&(d=!1),new Promise(function(t,e){return __awaiter(o,void 0,void 0,function(){var o=this;return __generator(this,function(e){return(r=!this.serverConfig.ROOT_URL.match(new RegExp(/https\:\/\/dev\./))&&!this.serverConfig.ROOT_URL.match(new RegExp(/https\:\/\/www\.dev\./))&&"http://localhost:4200"!==this.serverConfig.ROOT_URL||r.match(new RegExp(/\@resolveio\.com/))?r:"dev@resolveio.com")&&("http://localhost:4200"!==this.serverConfig.ROOT_URL||d?this._mailer.sendMail({replyTo:null!=l?l:this.serverConfig.MAIL_REPLY_TO||void 0,from:c||this.serverConfig.MAIL_FROM,to:r,subject:(this.serverConfig.ROOT_URL.match(new RegExp(/https\:\/\/dev\./))||this.serverConfig.ROOT_URL.match(new RegExp(/https\:\/\/www\.dev\./))?"(DEV SERVER) - ":"")+n,text:i,html:s,attachments:a},function(e,t){e?(console.log(e),email_history_collection_1.EmailHistories.create({_id:(0,mongo_manager_1.objectIdHexString)(),__v:0,date:new Date,id_user:o.id_user||"",user:o.user||"",email:r,success:!1,verified:!1})):email_history_collection_1.EmailHistories.create({_id:(0,mongo_manager_1.objectIdHexString)(),__v:0,date:new Date,id_user:o.id_user||"",user:o.user||"",email:r,success:!0,verified:!1})}):console.log("Send email",r,n,i,s,a,c),t(!0)),[2]})})})},MethodManager.prototype.getAWS=function(){return this._aws},MethodManager.prototype.readFile=function(e){var t=this;return new Promise(function(o,r){fs.existsSync(path.join(__dirname,"../private/"+e))?fs.readFile(path.join(__dirname,"../private/"+e),"utf-8",function(e,t){e?r(e):o(t)}):fs.existsSync(path.join(t.clientDir,"./private/"+e))&&fs.readFile(path.join(t.clientDir,"./private/"+e),"utf-8",function(e,t){e?r(e):o(t)})})},MethodManager.prototype.readImage=function(e){var t=this;return new Promise(function(o,r){fs.existsSync(path.join(__dirname,"../private/"+e))?fs.readFile(path.join(__dirname,"../private/"+e),"base64",function(e,t){e?r(e):o(t)}):fs.existsSync(path.join(t.clientDir,"./private/"+e))&&fs.readFile(path.join(t.clientDir,"./private/"+e),"base64",function(e,t){e?r(e):o(t)})})},MethodManager}());exports.MethodManager=MethodManager;
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,r,n,i){return new(n=n||Promise)(function(o,t){function fulfilled(e){try{step(i.next(e))}catch(e){t(e)}}function rejected(e){try{step(i.throw(e))}catch(e){t(e)}}function step(e){var t;e.done?o(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(fulfilled,rejected)}step((i=i.apply(e,r||[])).next())})},__generator=this&&this.__generator||function(r,n){var i,s,a,c={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function verb(o){return function(e){var t=[o,e];if(i)throw new TypeError("Generator is already executing.");for(;c=l&&t[l=0]?0:c;)try{if(i=1,s&&(a=2&t[0]?s.return:t[0]?s.throw||((a=s.return)&&a.call(s),0):s.next)&&!(a=a.call(s,t[1])).done)return a;switch(s=0,(t=a?[2&t[0],a.value]:t)[0]){case 0:case 1:a=t;break;case 4:return c.label++,{value:t[1],done:!1};case 5:c.label++,s=t[1],t=[0];continue;case 7:t=c.ops.pop(),c.trys.pop();continue;default:if(!(a=0<(a=c.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){c=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3]))c.label=t[1];else if(6===t[0]&&c.label<a[1])c.label=a[1],a=t;else{if(!(a&&c.label<a[2])){a[2]&&c.ops.pop(),c.trys.pop();continue}c.label=a[2],c.ops.push(t)}}t=n.call(r,c)}catch(e){t=[6,e],s=0}finally{i=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}},__spreadArray=this&&this.__spreadArray||function(e,t,o){if(o||2===arguments.length)for(var r,n=0,i=t.length;n<i;n++)!r&&n in t||((r=r||Array.prototype.slice.call(t,0,n))[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))},collections_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.MethodManager=exports.AWS=void 0,require("../methods/collections")),logs_1=require("../methods/logs"),counters_1=require("../methods/counters"),pdf_1=require("../methods/pdf"),aws_1=require("../methods/aws"),path=require("path"),fs=require("fs"),nodemailer=require("nodemailer"),sesTransport=require("nodemailer-ses-transport"),accounts_1=require("../methods/accounts"),init_1=require("../fixtures/init"),cron_jobs_1=require("../fixtures/cron-jobs"),cron_jobs_2=require("../methods/cron-jobs"),flags_1=require("../methods/flags"),method_response_collection_1=require("../collections/method-response.collection"),common_1=require("../util/common"),log_collection_1=require("../collections/log.collection"),log_method_latency_collection_1=require("../collections/log-method-latency.collection"),moment=require("moment-timezone"),report_builder_1=require("../methods/report-builder"),support_1=require("../methods/support"),monitor_1=require("../methods/monitor"),email_history_collection_1=require("../collections/email-history.collection"),mongo_manager_1=require("./mongo.manager"),client_s3_1=require("@aws-sdk/client-s3"),worker_task_request_collection_1=require("../collections/worker-task-request.collection"),worker_task_response_collection_1=require("../collections/worker-task-response.collection"),AWS=function(){function AWS(e){this._serverConfig=null,this._s3=null,this._s3USEast1=null,this._serverConfig=e}return AWS.prototype.s3=function(){return this._s3||(this._s3=new client_s3_1.S3({credentials:{accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY},region:process.env.AWS_REGION,apiVersion:"2006-03-01"})),this._s3},AWS.prototype.s3USEast1=function(){return"us-east-1"===process.env.AWS_REGION?this.s3():(this._s3USEast1||(this._s3USEast1=new client_s3_1.S3({credentials:{accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY},region:"us-east-1",apiVersion:"2006-03-01"})),this._s3USEast1)},AWS}(),MethodManager=(exports.AWS=AWS,function(){function MethodManager(e,t,o,r,n,i){var s=this;this._methods={},this._sendQueue=[],this._runningQueue=!1,this._isWorkersEnabled=!1,this._isWorkerInstance=!1,this._debugCallMethodInternalHits=0,this._debugCallMethodHits=0,this._debugCallMethodCronJobHits=0,this._debugSendQueueHits=0,this._mainServer=e,this.serverConfig=t,this.clientDir=o,this._monitorManagerFunction=r,this._isWorkersEnabled=n,this._isWorkerInstance=i,(0,init_1.loadServerInit)(),(0,cron_jobs_1.loadServerCronJobs)(),(0,accounts_1.loadAccountMethods)(this),(0,aws_1.loadAWSMethods)(this),(0,collections_1.loadCollectionMethods)(this),(0,counters_1.loadCounterMethods)(this),(0,logs_1.loadLogMethods)(this),(0,pdf_1.loadPDFMethods)(this),(0,cron_jobs_2.loadCronJobMethods)(this),(0,flags_1.loadFlagMethods)(this),(0,report_builder_1.loadReportBuilderMethods)(this),(0,support_1.loadSupportMethods)(this),(0,monitor_1.loadMonitorMethods)(this),this._aws=new AWS(t),e.sesMail?this._mailer=nodemailer.createTransport(sesTransport({accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY,region:process.env.AWS_SES_REGION})):this._mailer=nodemailer.createTransport({host:this.serverConfig.MAIL_HOST,port:this.serverConfig.MAIL_PORT,secure:!1,auth:{user:this.serverConfig.MAIL_USERNAME,pass:this.serverConfig.MAIL_PASSWORD},tls:{ciphers:"SSLv3"}}),setInterval(function(){s._mainServer.getSubscriptionManager()&&s._mainServer.getSubscriptionManager().getEnableDebug()&&(console.log(new Date,"Method Manager","Send Queue Length",s._sendQueue.length),console.log(new Date,"Method Manager","Send Queue Hits",s._debugSendQueueHits),console.log(new Date,"Method Manager","Call Method Internal Hits",s._debugCallMethodInternalHits),console.log(new Date,"Method Manager","Call Method Hits",s._debugCallMethodHits),console.log(new Date,"Method Manager","Call Method Cron Hits",s._debugCallMethodCronJobHits)),s._debugCallMethodInternalHits=0,s._debugCallMethodHits=0,s._debugCallMethodCronJobHits=0,s._debugSendQueueHits=0,s._debugSendQueueHits=0},6e4),setInterval(function(){if(!s._runningQueue&&s._sendQueue.length){s._runningQueue=!0;for(var e=s._sendQueue.length-1;0<=e;e--)!function(e){s._debugSendQueueHits+=1;var t,o=s._mainServer.getWS(s._sendQueue[e].id_ws);o&&o.readyState===o.OPEN?o.bufferedAmount<20480&&(t=s._sendQueue.pop(),o.send(JSON.stringify(t.data),function(e){e&&s._mainServer.unsubscribeWS(o)}),"reportBuilderGetResults"!==t.method&&"reportBuilderGetDistinctValue"!==t.method&&"reportBuilderBuildTree"!==t.method&&"generatePDF"!==t.method&&"getWOOfflineData"!==t.method&&"countQuery"!==t.method&&"countWithQuery"!==t.method&&"countCollectionWithQuery"!==t.method&&"find"!==t.method&&"findOne"!==t.method&&"findWithOptions"!==t.method&&"uploadFileAndSave"!==t.method&&"getDrivers"!==t.method&&"processAirdropDistribution"!==t.method&&log_collection_1.Logs.insertOne({_id:(0,mongo_manager_1.objectIdHexString)(),type:"client-response",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([t.methodData,t.data]))<2e5?JSON.stringify([t.methodData,t.data],null,2):"Too Big",method:t.method,id_user:o.id_user||"",user:o.user||"",messageId:t.data.messageId,route:""}),method_response_collection_1.MethodResponses.create({_id:(0,mongo_manager_1.objectIdHexString)(),__v:0,id_user:o.id_user||"",message_id:t.data.messageId,response:(0,common_1.getBinarySize)(JSON.stringify(t.data))<2e5?t.data:{error:"Too Big"},method:t.method,date:t.date})):s._sendQueue.splice(e,1)}(e);s._runningQueue=!1}},1)}return MethodManager.prototype.getMainServer=function(){return this._mainServer},MethodManager.prototype.methods=function(e){this._methods=Object.assign(this._methods,e)},MethodManager.prototype.callMethodCron=function(t){for(var e,n=this,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];if(this._debugCallMethodCronJobHits+=1,this._methods[t]){if((1<o.length||o[0])&&!this._methods[t].skipValidation){if(!this._methods[t].check)return console.error(new Date,"No Check Function For Method "+t),void this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"No Check Function For Method "+t);if(!this._methods[t].check._schema)return console.error(new Date,"No Check Schema For Method "+t),void this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"No Check Function For Method "+t);for(var i={},s=Object.keys(this._methods[t].check._schema).filter(function(e){return!e.includes(".")}),a=0;a<o.length;a++)i[s[a]]=o[a];try{this._methods[t].check.validate(i)}catch(e){if(e)return console.error(new Date,"Error in Method Check ("+t+")",e),void this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"Match Error On Method "+t+"\n\nData Being Checked\n"+JSON.stringify(i,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2))}}var c,l,d,h=null;return this._isWorkersEnabled&&!this._isWorkerInstance&&"insertSubscriptionLog"!==t&&"countQuery"!==t&&"incCounter"!==t&&"supportCreateBillingUser"!==t?(c=this._monitorManagerFunction.startMonitorFunction("Cron Method",t,"","",o),l=(0,mongo_manager_1.objectIdHexString)(),h=new Promise(function(t,o){var r=worker_task_response_collection_1.WorkerTaskResponses.watchCollection([{$match:{"fullDocument.id_request":l}}],{fullDocument:"updateLookup"});r.on("change",function(e){"insert"===e.operationType&&(n._monitorManagerFunction.finishMonitorFunction(c),((e=e.fullDocument).has_error?o:t)(e.data),r.close())}),r.on("error",function(e){console.error("Error watching worker responses:",e),o(e),r.close()})}),worker_task_request_collection_1.WorkerTaskRequests.create({_id:l,method:t,params:o,status:"pending",id_user:this.id_user,user:this.user,id_ws:this.id_socket})):(d=this._monitorManagerFunction.startMonitorFunction("Cron Method",t,"","",o),(e=this._methods[t].function).call.apply(e,__spreadArray([Object.assign({},this,MethodManager.prototype,{id_user:"",user:"",id_ws:""})],o,!1)).then(function(e){return n._monitorManagerFunction.finishMonitorFunction(d),e},function(e){return n._monitorManagerFunction.finishMonitorFunction(d),n.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+n.serverConfig.CLIENT_NAME,"Error Detected During Method "+t+" - (callMethodCron)\n\nData \n"+JSON.stringify(o,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),e})),h}console.log("No Method: "+t),this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"No Method: "+t)},MethodManager.prototype.callMethod=function(r,n,i,s,a){for(var c,e,l,d,t=this,h=[],o=5;o<arguments.length;o++)h[o-5]=arguments[o];if(this._debugCallMethodHits+=1,this._methods[a]){if((1<h.length||h[0])&&!this._methods[a].skipValidation){if(!this._methods[a].check)return console.error(new Date,"No Check Function For Method "+a),this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"No Check Function For Method "+a),this.sendWS(n,i,a,h,u={messageId:s,hasError:!0,data:"Internal Error"}),void(r&&log_method_latency_collection_1.LogMethodLatencies.deleteOne({_id:r}));if(!this._methods[a].check._schema)return console.error(new Date,"No Check Schema For Method "+a),this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"No Check Schema For Method "+a),u={messageId:s,hasError:!0,data:"Internal Error"},r&&log_method_latency_collection_1.LogMethodLatencies.deleteOne({_id:r}),void this.sendWS(n,i,a,h,u);for(var u,_={},g=Object.keys(this._methods[a].check._schema).filter(function(e){return!e.includes(".")}),m=0;m<h.length;m++)_[g[m]]=h[m];try{this._methods[a].check.validate(_)}catch(e){if(e)return console.error(new Date,"Error in Method Check ("+a+")",e),"processAirdropDistribution"!==a&&this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"Match Error On Method "+a+"\n\nData Being Checked\n"+JSON.stringify(_,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),this.sendWS(n,i,a,h,u={messageId:s,hasError:!0,data:"Internal Error"}),void(r&&log_method_latency_collection_1.LogMethodLatencies.deleteOne({_id:r}))}}this._isWorkersEnabled&&!this._isWorkerInstance&&"insertSubscriptionLog"!==a&&"countQuery"!==a&&"incCounter"!==a&&"supportCreateBillingUser"!==a?(c=this._monitorManagerFunction.startMonitorFunction("Method",a,n.user||"",n.id_socket||"",h),e=(0,mongo_manager_1.objectIdHexString)(),(l=worker_task_response_collection_1.WorkerTaskResponses.watchCollection([{$match:{"fullDocument.id_request":e}}],{fullDocument:"updateLookup"})).on("change",function(o){return __awaiter(t,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return"insert"!==o.operationType?[3,3]:(this._monitorManagerFunction.finishMonitorFunction(c),t=o.fullDocument,t={messageId:s,hasError:t.has_error,data:t.data},this.sendWS(n,new Date,a,h,t),r?[4,log_method_latency_collection_1.LogMethodLatencies.findById(r)]:[3,2]);case 1:(t=e.sent())&&log_method_latency_collection_1.LogMethodLatencies.updateOne({_id:r},{$set:{date_end:new Date,latency_ms:moment().diff(moment(t.date_start),"milliseconds",!0)}}),e.label=2;case 2:l.close(),e.label=3;case 3:return[2]}})})}),l.on("error",function(e){console.error("Error watching worker responses:",e),l.close()}),worker_task_request_collection_1.WorkerTaskRequests.create({_id:e,method:a,params:h,status:"pending",id_user:n.id_user,user:n.user,id_ws:n.id_socket})):(d=this._monitorManagerFunction.startMonitorFunction("Method",a,n.user||"",n.id_socket||"",h),(e=this._methods[a].function).call.apply(e,__spreadArray([Object.assign({},this,MethodManager.prototype,{id_user:n.id_user,user:n.user,id_ws:n.id_socket})],h,!1)).then(function(o){return __awaiter(t,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return(this._monitorManagerFunction.finishMonitorFunction(d),t={messageId:s,hasError:!1,data:o},this.sendWS(n,i,a,h,t),r)?[4,log_method_latency_collection_1.LogMethodLatencies.findById(r)]:[3,2];case 1:(t=e.sent())&&log_method_latency_collection_1.LogMethodLatencies.updateOne({_id:r},{$set:{date_end:new Date,latency_ms:moment().diff(moment(t.date_start),"milliseconds",!0)}}),e.label=2;case 2:return[2]}})})},function(e){t._monitorManagerFunction.finishMonitorFunction(d),t.sendWS(n,i,a,h,{messageId:s,hasError:!0,data:e}),r&&log_method_latency_collection_1.LogMethodLatencies.deleteOne({_id:r}),"processAirdropDistribution"!==a&&t.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+t.serverConfig.CLIENT_NAME,"Error Detected During Method "+a+" - (callMethod)\n\nData \n"+JSON.stringify(h,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2))}))}else console.log("No Method: "+a),this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+this.serverConfig.CLIENT_NAME,"No Method: "+a),u={messageId:s,hasError:!0,data:"Internal Error"},this.sendWS(n,new Date,a,h,u),r&&log_method_latency_collection_1.LogMethodLatencies.deleteOne({_id:r})},MethodManager.prototype.callMethodInternal=function(t){for(var e,n=this,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];if(this._debugCallMethodInternalHits+=1,!this._methods[t])return console.log("No Method: "+t),null;if((1<o.length||o[0]&&"function"!=typeof o[0])&&!this._methods[t].skipValidation){if(!this._methods[t].check)return console.error(new Date,"No Check Function For Method "+t),null;if(!this._methods[t].check._schema)return console.error(new Date,"No Check Schema For Method "+t),null}"insertSubscriptionLog"!==t&&"getDataURIfromURL"!==t&&"processAirdropDistribution"!==t&&log_collection_1.Logs.insertOne({_id:(0,mongo_manager_1.objectIdHexString)(),type:"callMethodInternal",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([o]))<2e5?JSON.stringify([o],null,2):"Too Big",method:t,id_user:this.id_user||"",user:this.user||"",messageId:0,route:""});var i,s,a,c="function"==typeof o[o.length-1]?o.slice(0,-1):o,l=null;return this._isWorkersEnabled&&!this._isWorkerInstance&&"insertSubscriptionLog"!==t&&"countQuery"!==t&&"incCounter"!==t&&"supportCreateBillingUser"!==t?(i=this._monitorManagerFunction.startMonitorFunction("Internal Method",t,this.user||"","",c),s=(0,mongo_manager_1.objectIdHexString)(),l=new Promise(function(t,o){var r=worker_task_response_collection_1.WorkerTaskResponses.watchCollection([{$match:{"fullDocument.id_request":s}}],{fullDocument:"updateLookup"});r.on("change",function(e){"insert"===e.operationType&&(n._monitorManagerFunction.finishMonitorFunction(i),((e=e.fullDocument).has_error?o:t)(e.data),r.close())}),r.on("error",function(e){console.error("Error watching worker responses:",e),o(e),r.close()})}),worker_task_request_collection_1.WorkerTaskRequests.create({_id:s,method:t,params:c,status:"pending",id_user:this.id_user,user:this.user,id_ws:this.id_socket})):(a=this._monitorManagerFunction.startMonitorFunction("Internal Method",t,this.user||"","",c),l=(e=this._methods[t].function).call.apply(e,__spreadArray([Object.assign({},this,MethodManager.prototype)],c,!1)).then(function(e){return n._monitorManagerFunction.finishMonitorFunction(a),e},function(e){return n._monitorManagerFunction.finishMonitorFunction(a),n.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+n.serverConfig.CLIENT_NAME,"Error Detected During Method "+t+" - (callMethodInternal)\n\nData \n"+JSON.stringify(o,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),e})),o[o.length-1]&&"function"==typeof o[o.length-1]&&l.then(function(e){return o[o.length-1](null,e)},function(e){return o[o.length-1](e,null)}),l},MethodManager.prototype.sendWS=function(e,t,o,r,n){this._sendQueue.splice(0,0,{id_ws:e.id_socket,method:o,methodData:r,data:n,date:t})},MethodManager.prototype.sendEmail=function(r,n,i,s,a,c,l,d){var o=this;return void 0===d&&(d=!1),new Promise(function(t,e){return __awaiter(o,void 0,void 0,function(){var o=this;return __generator(this,function(e){return(r=!this.serverConfig.ROOT_URL.match(new RegExp(/https\:\/\/dev\./))&&!this.serverConfig.ROOT_URL.match(new RegExp(/https\:\/\/www\.dev\./))&&"http://localhost:4200"!==this.serverConfig.ROOT_URL||r.match(new RegExp(/\@resolveio\.com/))?r:"dev@resolveio.com")&&("http://localhost:4200"!==this.serverConfig.ROOT_URL||d?this._mailer.sendMail({replyTo:null!=l?l:this.serverConfig.MAIL_REPLY_TO||void 0,from:c||this.serverConfig.MAIL_FROM,to:r,subject:(this.serverConfig.ROOT_URL.match(new RegExp(/https\:\/\/dev\./))||this.serverConfig.ROOT_URL.match(new RegExp(/https\:\/\/www\.dev\./))?"(DEV SERVER) - ":"")+n,text:i,html:s,attachments:a},function(e,t){e?(console.log(e),email_history_collection_1.EmailHistories.create({_id:(0,mongo_manager_1.objectIdHexString)(),__v:0,date:new Date,id_user:o.id_user||"",user:o.user||"",email:r,success:!1,verified:!1})):email_history_collection_1.EmailHistories.create({_id:(0,mongo_manager_1.objectIdHexString)(),__v:0,date:new Date,id_user:o.id_user||"",user:o.user||"",email:r,success:!0,verified:!1})}):console.log("Send email",r,n,i,s,a,c),t(!0)),[2]})})})},MethodManager.prototype.getAWS=function(){return this._aws},MethodManager.prototype.readFile=function(e){var t=this;return new Promise(function(o,r){fs.existsSync(path.join(__dirname,"../private/"+e))?fs.readFile(path.join(__dirname,"../private/"+e),"utf-8",function(e,t){e?r(e):o(t)}):fs.existsSync(path.join(t.clientDir,"./private/"+e))&&fs.readFile(path.join(t.clientDir,"./private/"+e),"utf-8",function(e,t){e?r(e):o(t)})})},MethodManager.prototype.readImage=function(e){var t=this;return new Promise(function(o,r){fs.existsSync(path.join(__dirname,"../private/"+e))?fs.readFile(path.join(__dirname,"../private/"+e),"base64",function(e,t){e?r(e):o(t)}):fs.existsSync(path.join(t.clientDir,"./private/"+e))&&fs.readFile(path.join(t.clientDir,"./private/"+e),"base64",function(e,t){e?r(e):o(t)})})},MethodManager}());exports.MethodManager=MethodManager;
|
|
2
2
|
//# sourceMappingURL=method.manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/managers/method.manager.ts"],"names":["collections_1","require","logs_1","counters_1","pdf_1","aws_1","path","fs","nodemailer","sesTransport","accounts_1","init_1","cron_jobs_1","cron_jobs_2","flags_1","method_response_collection_1","common_1","log_collection_1","log_method_latency_collection_1","moment","report_builder_1","support_1","monitor_1","email_history_collection_1","mongo_manager_1","client_s3_1","worker_task_request_collection_1","worker_task_response_collection_1","AWS","serverConfig","this","_serverConfig","_s3","_s3USEast1","prototype","s3","S3","credentials","accessKeyId","process","env","AWS_ACCESS_KEY","secretAccessKey","AWS_SECRET_ACCESS_KEY","region","AWS_REGION","apiVersion","s3USEast1","MethodManager","exports","mainServer","clientDir","monitorManagerFunction","isWorkersEnabled","isWorkerInstance","_this","_methods","_sendQueue","_runningQueue","_isWorkersEnabled","_isWorkerInstance","_debugCallMethodInternalHits","_debugCallMethodHits","_debugCallMethodCronJobHits","_debugSendQueueHits","_mainServer","_monitorManagerFunction","loadServerInit","loadServerCronJobs","loadAccountMethods","loadAWSMethods","loadCollectionMethods","loadCounterMethods","loadLogMethods","loadPDFMethods","loadCronJobMethods","loadFlagMethods","loadReportBuilderMethods","loadSupportMethods","loadMonitorMethods","_aws","sesMail","_mailer","createTransport","AWS_SES_REGION","host","port","secure","auth","user","pass","tls","ciphers","setInterval","getSubscriptionManager","getEnableDebug","console","log","Date","length","i","sendItem","ws","getWS","id_ws","readyState","OPEN","bufferedAmount","pop","send","JSON","stringify","data","error","unsubscribeWS","method","Logs","insertOne","_id","objectIdHexString","type","collection","id_document","payload","getBinarySize","methodData","id_user","messageId","route","MethodResponses","create","__v","message_id","response","date","splice","getMainServer","methods","Object","assign","callMethodCron","_i","arguments","skipValidation","check","sendEmail","_schema","valObj","rootKeys","keys","filter","a","includes","validate","errors","monitor_2","taskId_1","monitor_3","promise","startMonitorFunction","Promise","resolve","reject","changeStream","WorkerTaskResponses","watchCollection","$match","fullDocument.id_request","fullDocument","on","change","operationType","finishMonitorFunction","taskResponse","has_error","close","WorkerTaskRequests","params","status","_a","function","call","apply","__spreadArray","then","res","methodErrs","callMethod","id_methodLatency","messageDate","monitor_4","taskId","changeStream_1","monitor_5","sendWS","serverRes","hasError","LogMethodLatencies","deleteOne","__awaiter","findById","latency","sent","updateOne","$set","date_end","latency_ms","diff","date_start","err","callMethodInternal","monitor_6","taskId_2","monitor_7","functionMethodData","slice","sendTo","subject","text","html","attachments","send_from","reply_to","local_override","match","RegExp","sendMail","replyTo","undefined","from","MAIL_FROM","to","info","EmailHistories","email","success","verified","getAWS","readFile","fileName","existsSync","join","__dirname","readImage"],"mappings":"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","file":"method.manager.js","sourcesContent":["import { ServerResponseModel } from '../models/server-response.model';\nimport { loadCollectionMethods } from '../methods/collections';\nimport { MethodModel } from '../models/method.model';\nimport { loadLogMethods } from '../methods/logs';\nimport { loadCounterMethods } from '../methods/counters';\nimport { loadPDFMethods } from '../methods/pdf';\nimport { loadAWSMethods } from '../methods/aws';\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport * as nodemailer from 'nodemailer';\nimport * as sesTransport from 'nodemailer-ses-transport';\nimport { loadAccountMethods } from '../methods/accounts';\nimport { loadServerInit } from '../fixtures/init';\nimport { loadServerCronJobs } from '../fixtures/cron-jobs';\nimport { loadCronJobMethods } from '../methods/cron-jobs';\nimport { loadFlagMethods } from '../methods/flags';\nimport { 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-timezone';\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 { MonitorManagerFunction } from './monitor.manager';\nimport { S3 } from '@aws-sdk/client-s3';\nimport { WorkerTaskRequests } from '../collections/worker-task-request.collection';\nimport { WorkerTaskResponses } from '../collections/worker-task-response.collection';\n\nexport class AWS {\n\tprivate _serverConfig = null;\n\tprivate _s3: S3 = null;\n\tprivate _s3USEast1: S3 = 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: process.env.AWS_ACCESS_KEY,\n\t\t\t\tsecretAccessKey: process.env.AWS_SECRET_ACCESS_KEY\n\t\t\t},\n\t\t\tregion: process.env.AWS_REGION,\n\t\t\tapiVersion: '2006-03-01'\n\t\t});\n\n\t\treturn this._s3;\n\t}\n\n\tpublic s3USEast1() : S3 {\n\t\tif (process.env.AWS_REGION === 'us-east-1') {\n\t\t\treturn this.s3();\n\t\t}\n\t\telse {\n\t\t\tif (this._s3USEast1) {\n\t\t\t\treturn this._s3USEast1;\n\t\t\t}\n\t\t\t\n\t\t\tthis._s3USEast1 = new S3({\n\t\t\t\tcredentials: {\n\t\t\t\t\taccessKeyId: process.env.AWS_ACCESS_KEY,\n\t\t\t\t\tsecretAccessKey: process.env.AWS_SECRET_ACCESS_KEY\n\t\t\t\t},\n\t\t\t\tregion: 'us-east-1',\n\t\t\t\tapiVersion: '2006-03-01'\n\t\t\t});\n\t\n\t\t\treturn this._s3USEast1;\n\t\t}\n\t}\n}\n\nexport class MethodManager {\n\tprivate _mainServer: ResolveIOMainServer;\n\tpublic _methods: MethodModel = {};\n\tprivate _mailer: nodemailer.Transporter;\n\tprivate _aws: AWS;\n\tprivate serverConfig;\n\tprivate clientDir;\n\tprivate _sendQueue = [];\n\tprivate _runningQueue = false;\n\tprivate _monitorManagerFunction: MonitorManagerFunction;\n\tprivate _isWorkersEnabled = false;\n\tprivate _isWorkerInstance = false;\n\n\tprivate _debugCallMethodInternalHits = 0;\n\tprivate _debugCallMethodHits = 0;\n\tprivate _debugCallMethodCronJobHits = 0;\n\tprivate _debugSendQueueHits = 0;\n\n\tconstructor(mainServer, serverConfig, clientDir, monitorManagerFunction: MonitorManagerFunction, isWorkersEnabled, isWorkerInstance) {\n\t\tthis._mainServer = mainServer;\n\t\tthis.serverConfig = serverConfig;\n\t\tthis.clientDir = clientDir;\n\t\tthis._monitorManagerFunction = monitorManagerFunction;\n\t\tthis._isWorkersEnabled = isWorkersEnabled;\n\t\tthis._isWorkerInstance = isWorkerInstance;\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\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\t\t\tthis._mailer = nodemailer.createTransport(sesTransport({\n\t\t\t\taccessKeyId: process.env.AWS_ACCESS_KEY,\n\t\t\t\tsecretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,\n\t\t\t\tregion: process.env.AWS_SES_REGION\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tthis._mailer = nodemailer.createTransport({\n\t\t\t\thost: 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._mainServer.getSubscriptionManager() && this._mainServer.getSubscriptionManager().getEnableDebug()) {\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Send Queue Length', this._sendQueue.length);\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Send Queue Hits', this._debugSendQueueHits);\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Call Method Internal Hits', this._debugCallMethodInternalHits);\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Call Method Hits', this._debugCallMethodHits);\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Call Method Cron Hits', this._debugCallMethodCronJobHits);\n\t\t\t}\n\n\t\t\tthis._debugCallMethodInternalHits = 0;\n\t\t\tthis._debugCallMethodHits = 0;\n\t\t\tthis._debugCallMethodCronJobHits = 0;\n\t\t\tthis._debugSendQueueHits = 0;\n\t\t\tthis._debugSendQueueHits = 0;\n\t\t}, 60000);\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\n\t\t\t\t\tfor (let i = this._sendQueue.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tthis._debugSendQueueHits += 1;\n\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\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 !== 'uploadFileAndSave' && sendItem.method !== 'getDrivers' && sendItem.method !== 'processAirdropDistribution') {\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\tthis._debugCallMethodCronJobHits += 1;\n\n\t\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + 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\n\t\tlet promise = null;\n\n\t\t// Check if workers are enabled and this is not a worker instance\n\t\tif (this._isWorkersEnabled && !this._isWorkerInstance) {\n\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Cron Method', method, '', '', methodData);\n\n\t\t\t// Push task to worker-task-reqs collection\n\t\t\tconst taskId = objectIdHexString();\n\n\t\t\t// Watch worker-task-resps for result\n\t\t\tpromise = new Promise((resolve, reject) => {\n\t\t\t\tlet changeStream = WorkerTaskResponses.watchCollection([{ $match: { 'fullDocument.id_request': taskId } }], { fullDocument: 'updateLookup' });\n\n\t\t\t\tchangeStream.on('change', (change) => {\n\t\t\t\t\tif (change.operationType === 'insert') {\n\t\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst taskResponse = change.fullDocument;\n\n\t\t\t\t\t\tif (taskResponse.has_error) {\n\t\t\t\t\t\t\treject(taskResponse.data); // Task failed, return error\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(taskResponse.data); // Task succeeded, return result\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tchangeStream.close(); // Close the cursor after receiving response\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tchangeStream.on('error', (error) => {\n\t\t\t\t\tconsole.error('Error watching worker responses:', error);\n\t\t\t\t\treject(error);\n\t\t\t\t\tchangeStream.close();\n\t\t\t\t});\n\n\t\t\t\t// changeStream.on('close', () => {\n\t\t\t\t// \tconsole.log('Change stream closed for task:', taskId);\n\t\t\t\t// });\n\t\t\t});\n\n\t\t\tWorkerTaskRequests.create({\n\t\t\t\t_id: taskId,\n\t\t\t\tmethod: method,\n\t\t\t\tparams: methodData,\n\t\t\t\tstatus: 'pending',\n\t\t\t\tid_user: this['id_user'],\n\t\t\t\tuser: this['user'],\n\t\t\t\tid_ws: this['id_socket']\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Cron Method', method, '', '', methodData);\n\t\t\tlet promise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype, {id_user: '', user: '', id_ws: ''}), ...methodData)\n\t\t\t.then(res => {\n\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\t\treturn res;\n\t\t\t}, methodErrs => {\n\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\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\t\treturn methodErrs;\n\t\t\t});\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\tthis._debugCallMethodHits += 1;\n\t\t\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, new Date(), 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\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\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 Schema 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\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\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\tif (method !== 'processAirdropDistribution') {\n\t\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\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\n\t\t// Check if workers are enabled and this is not a worker instance\n\t\tif (this._isWorkersEnabled && !this._isWorkerInstance) {\t\n\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Method', method, ws['user'] || '', ws['id_socket'] || '', methodData);\n\t\t\t\n\t\t\t// Push task to worker-task-reqs collection\n\t\t\tconst taskId = objectIdHexString();\n\t\t\t// console.log('Workers are enabled. Delegating task to worker.', taskId);\n\n\t\t\tlet changeStream = WorkerTaskResponses.watchCollection([{ $match: { 'fullDocument.id_request': taskId } }], { fullDocument: 'updateLookup' });\n\n\t\t\tchangeStream.on('change', async (change) => {\n\t\t\t\tif (change.operationType === 'insert') {\n\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\n\t\t\t\t\tconst taskResponse = change.fullDocument;\n\n\t\t\t\t\t// console.log('Task response found', taskId, taskResponse.data);\n\n\t\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\t\thasError: taskResponse.has_error,\n\t\t\t\t\t\tdata: taskResponse.data\n\t\t\t\t\t};\n\n\t\t\t\t\tthis.sendWS(ws, new Date(), method, methodData, serverRes);\n\n\t\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\t\tlet latency = await LogMethodLatencies.findById(id_methodLatency);\n\t\n\t\t\t\t\t\tif (latency) {\n\t\t\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\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// console.log('Sent on WS', ws['id_socket'], new Date(), method, methodData, serverRes);\n\n\t\t\t\t\tchangeStream.close(); // Close the cursor after receiving response\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tchangeStream.on('error', (error) => {\n\t\t\t\tconsole.error('Error watching worker responses:', error);\n\t\t\t\tchangeStream.close();\n\t\t\t});\n\n\t\t\tWorkerTaskRequests.create({\n\t\t\t\t_id: taskId,\n\t\t\t\tmethod: method,\n\t\t\t\tparams: methodData,\n\t\t\t\tstatus: 'pending',\n\t\t\t\tid_user: ws['id_user'],\n\t\t\t\tuser: ws['user'],\n\t\t\t\tid_ws: ws['id_socket']\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Method', method, ws['user'] || '', ws['id_socket'] || '', methodData);\n\t\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\t.then(async (res) => {\n\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\thasError: false,\n\t\t\t\t\tdata: res\n\t\t\t\t};\n\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\tlet latency = await LogMethodLatencies.findById(id_methodLatency);\n\n\t\t\t\t\tif (latency) {\n\t\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\t}\n\t\t\t\t}\n\t\t\t}, err => {\n\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\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: err\n\t\t\t\t};\n\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\n\t\t\t\tif (method !== 'processAirdropDistribution') {\n\t\t\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\t\t}\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\tthis._debugCallMethodInternalHits += 1;\n\t\t\n\t\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\t\t\treturn null;\n\t\t}\n\n\t\tif ((methodData.length > 1 || (methodData[0] && typeof(methodData[0]) !== 'function')) && !this._methods[method].skipValidation) {\n\t\t\tif (!this._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\telse if (!this._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\tif (method !== 'insertSubscriptionLog' && method !== 'getDataURIfromURL' && method !== 'processAirdropDistribution') {\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 functionMethodData = typeof(methodData[methodData.length - 1]) === 'function' ? methodData.slice(0, -1) : methodData;\n\t\tlet promise = null;\n\n\t\tif (this._isWorkersEnabled && !this._isWorkerInstance) {\n\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Internal Method', method, this['user'] || '', '', functionMethodData);\n\n\t\t\t// Push task to worker-task-reqs collection\n\t\t\tconst taskId = objectIdHexString();\n\n\t\t\t// Watch worker-task-resps for result\n\t\t\tpromise = new Promise((resolve, reject) => {\n\t\t\t\tlet changeStream = WorkerTaskResponses.watchCollection([{ $match: { 'fullDocument.id_request': taskId } }], { fullDocument: 'updateLookup' });\n\n\t\t\t\tchangeStream.on('change', (change) => {\n\t\t\t\t\tif (change.operationType === 'insert') {\n\t\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\n\t\t\t\t\t\tconst taskResponse = change.fullDocument;\n\n\t\t\t\t\t\tif (taskResponse.has_error) {\n\t\t\t\t\t\t\treject(taskResponse.data); // Task failed, return error\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(taskResponse.data); // Task succeeded, return result\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tchangeStream.close(); // Close the cursor after receiving response\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tchangeStream.on('error', (error) => {\n\t\t\t\t\tconsole.error('Error watching worker responses:', error);\n\t\t\t\t\treject(error);\n\t\t\t\t\tchangeStream.close();\n\t\t\t\t});\n\n\t\t\t\t// changeStream.on('close', () => {\n\t\t\t\t// \tconsole.log('Change stream closed for task:', taskId);\n\t\t\t\t// });\n\t\t\t});\n\n\t\t\tWorkerTaskRequests.create({\n\t\t\t\t_id: taskId,\n\t\t\t\tmethod: method,\n\t\t\t\tparams: functionMethodData,\n\t\t\t\tstatus: 'pending',\n\t\t\t\tid_user: this['id_user'],\n\t\t\t\tuser: this['user'],\n\t\t\t\tid_ws: this['id_socket']\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Internal Method', method, this['user'] || '', '', functionMethodData);\n\t\t\tpromise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype), ...functionMethodData)\n\t\t\t\t.then(res => {\n\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\t\t\treturn res;\n\t\t\t\t}, methodErrs => {\n\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\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\t\t\treturn methodErrs;\n\t\t\t\t});\n\t\t}\n\n\t\tif (methodData[methodData.length - 1] && typeof(methodData[methodData.length - 1]) === 'function') {\n\t\t\tpromise.then(res => methodData[methodData.length - 1](null, res), err => methodData[methodData.length - 1](err, null));\n\t\t}\n\t\t\n\t\treturn promise;\n\t}\n\n\tprivate sendWS(ws: WebSocket, messageDate: Date, method: string, methodData: any[], data: ServerResponseModel) {\n\t\tthis._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, reply_to?: string, local_override = false) {\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' || local_override) {\n\t\t\t\t\tthis._mailer.sendMail({\n\t\t\t\t\t\treplyTo: reply_to !== null && reply_to !== undefined ? reply_to : (this.serverConfig['MAIL_REPLY_TO'] || undefined), //orders@acefluids.com\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":["collections_1","require","logs_1","counters_1","pdf_1","aws_1","path","fs","nodemailer","sesTransport","accounts_1","init_1","cron_jobs_1","cron_jobs_2","flags_1","method_response_collection_1","common_1","log_collection_1","log_method_latency_collection_1","moment","report_builder_1","support_1","monitor_1","email_history_collection_1","mongo_manager_1","client_s3_1","worker_task_request_collection_1","worker_task_response_collection_1","AWS","serverConfig","this","_serverConfig","_s3","_s3USEast1","prototype","s3","S3","credentials","accessKeyId","process","env","AWS_ACCESS_KEY","secretAccessKey","AWS_SECRET_ACCESS_KEY","region","AWS_REGION","apiVersion","s3USEast1","MethodManager","exports","mainServer","clientDir","monitorManagerFunction","isWorkersEnabled","isWorkerInstance","_this","_methods","_sendQueue","_runningQueue","_isWorkersEnabled","_isWorkerInstance","_debugCallMethodInternalHits","_debugCallMethodHits","_debugCallMethodCronJobHits","_debugSendQueueHits","_mainServer","_monitorManagerFunction","loadServerInit","loadServerCronJobs","loadAccountMethods","loadAWSMethods","loadCollectionMethods","loadCounterMethods","loadLogMethods","loadPDFMethods","loadCronJobMethods","loadFlagMethods","loadReportBuilderMethods","loadSupportMethods","loadMonitorMethods","_aws","sesMail","_mailer","createTransport","AWS_SES_REGION","host","port","secure","auth","user","pass","tls","ciphers","setInterval","getSubscriptionManager","getEnableDebug","console","log","Date","length","i","sendItem","ws","getWS","id_ws","readyState","OPEN","bufferedAmount","pop","send","JSON","stringify","data","error","unsubscribeWS","method","Logs","insertOne","_id","objectIdHexString","type","collection","id_document","payload","getBinarySize","methodData","id_user","messageId","route","MethodResponses","create","__v","message_id","response","date","splice","getMainServer","methods","Object","assign","callMethodCron","_i","arguments","skipValidation","check","sendEmail","_schema","valObj","rootKeys","keys","filter","a","includes","validate","errors","monitor_2","taskId_1","monitor_3","promise","startMonitorFunction","Promise","resolve","reject","changeStream","WorkerTaskResponses","watchCollection","$match","fullDocument.id_request","fullDocument","on","change","operationType","finishMonitorFunction","taskResponse","has_error","close","WorkerTaskRequests","params","status","_a","function","call","apply","__spreadArray","then","res","methodErrs","callMethod","id_methodLatency","messageDate","monitor_4","taskId","changeStream_1","monitor_5","sendWS","serverRes","hasError","LogMethodLatencies","deleteOne","__awaiter","findById","latency","sent","updateOne","$set","date_end","latency_ms","diff","date_start","err","callMethodInternal","monitor_6","taskId_2","monitor_7","functionMethodData","slice","sendTo","subject","text","html","attachments","send_from","reply_to","local_override","match","RegExp","sendMail","replyTo","undefined","from","MAIL_FROM","to","info","EmailHistories","email","success","verified","getAWS","readFile","fileName","existsSync","join","__dirname","readImage"],"mappings":"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","file":"method.manager.js","sourcesContent":["import { ServerResponseModel } from '../models/server-response.model';\nimport { loadCollectionMethods } from '../methods/collections';\nimport { MethodModel } from '../models/method.model';\nimport { loadLogMethods } from '../methods/logs';\nimport { loadCounterMethods } from '../methods/counters';\nimport { loadPDFMethods } from '../methods/pdf';\nimport { loadAWSMethods } from '../methods/aws';\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport * as nodemailer from 'nodemailer';\nimport * as sesTransport from 'nodemailer-ses-transport';\nimport { loadAccountMethods } from '../methods/accounts';\nimport { loadServerInit } from '../fixtures/init';\nimport { loadServerCronJobs } from '../fixtures/cron-jobs';\nimport { loadCronJobMethods } from '../methods/cron-jobs';\nimport { loadFlagMethods } from '../methods/flags';\nimport { 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-timezone';\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 { MonitorManagerFunction } from './monitor.manager';\nimport { S3 } from '@aws-sdk/client-s3';\nimport { WorkerTaskRequests } from '../collections/worker-task-request.collection';\nimport { WorkerTaskResponses } from '../collections/worker-task-response.collection';\n\nexport class AWS {\n\tprivate _serverConfig = null;\n\tprivate _s3: S3 = null;\n\tprivate _s3USEast1: S3 = 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: process.env.AWS_ACCESS_KEY,\n\t\t\t\tsecretAccessKey: process.env.AWS_SECRET_ACCESS_KEY\n\t\t\t},\n\t\t\tregion: process.env.AWS_REGION,\n\t\t\tapiVersion: '2006-03-01'\n\t\t});\n\n\t\treturn this._s3;\n\t}\n\n\tpublic s3USEast1() : S3 {\n\t\tif (process.env.AWS_REGION === 'us-east-1') {\n\t\t\treturn this.s3();\n\t\t}\n\t\telse {\n\t\t\tif (this._s3USEast1) {\n\t\t\t\treturn this._s3USEast1;\n\t\t\t}\n\t\t\t\n\t\t\tthis._s3USEast1 = new S3({\n\t\t\t\tcredentials: {\n\t\t\t\t\taccessKeyId: process.env.AWS_ACCESS_KEY,\n\t\t\t\t\tsecretAccessKey: process.env.AWS_SECRET_ACCESS_KEY\n\t\t\t\t},\n\t\t\t\tregion: 'us-east-1',\n\t\t\t\tapiVersion: '2006-03-01'\n\t\t\t});\n\t\n\t\t\treturn this._s3USEast1;\n\t\t}\n\t}\n}\n\nexport class MethodManager {\n\tprivate _mainServer: ResolveIOMainServer;\n\tpublic _methods: MethodModel = {};\n\tprivate _mailer: nodemailer.Transporter;\n\tprivate _aws: AWS;\n\tprivate serverConfig;\n\tprivate clientDir;\n\tprivate _sendQueue = [];\n\tprivate _runningQueue = false;\n\tprivate _monitorManagerFunction: MonitorManagerFunction;\n\tprivate _isWorkersEnabled = false;\n\tprivate _isWorkerInstance = false;\n\n\tprivate _debugCallMethodInternalHits = 0;\n\tprivate _debugCallMethodHits = 0;\n\tprivate _debugCallMethodCronJobHits = 0;\n\tprivate _debugSendQueueHits = 0;\n\n\tconstructor(mainServer, serverConfig, clientDir, monitorManagerFunction: MonitorManagerFunction, isWorkersEnabled, isWorkerInstance) {\n\t\tthis._mainServer = mainServer;\n\t\tthis.serverConfig = serverConfig;\n\t\tthis.clientDir = clientDir;\n\t\tthis._monitorManagerFunction = monitorManagerFunction;\n\t\tthis._isWorkersEnabled = isWorkersEnabled;\n\t\tthis._isWorkerInstance = isWorkerInstance;\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\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\t\t\tthis._mailer = nodemailer.createTransport(sesTransport({\n\t\t\t\taccessKeyId: process.env.AWS_ACCESS_KEY,\n\t\t\t\tsecretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,\n\t\t\t\tregion: process.env.AWS_SES_REGION\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tthis._mailer = nodemailer.createTransport({\n\t\t\t\thost: 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._mainServer.getSubscriptionManager() && this._mainServer.getSubscriptionManager().getEnableDebug()) {\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Send Queue Length', this._sendQueue.length);\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Send Queue Hits', this._debugSendQueueHits);\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Call Method Internal Hits', this._debugCallMethodInternalHits);\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Call Method Hits', this._debugCallMethodHits);\n\t\t\t\tconsole.log(new Date(), 'Method Manager', 'Call Method Cron Hits', this._debugCallMethodCronJobHits);\n\t\t\t}\n\n\t\t\tthis._debugCallMethodInternalHits = 0;\n\t\t\tthis._debugCallMethodHits = 0;\n\t\t\tthis._debugCallMethodCronJobHits = 0;\n\t\t\tthis._debugSendQueueHits = 0;\n\t\t\tthis._debugSendQueueHits = 0;\n\t\t}, 60000);\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\n\t\t\t\t\tfor (let i = this._sendQueue.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tthis._debugSendQueueHits += 1;\n\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\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 !== 'uploadFileAndSave' && sendItem.method !== 'getDrivers' && sendItem.method !== 'processAirdropDistribution') {\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\tthis._debugCallMethodCronJobHits += 1;\n\n\t\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + 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\n\t\tlet promise = null;\n\n\t\t// Check if workers are enabled and this is not a worker instance\n\t\tif (this._isWorkersEnabled && !this._isWorkerInstance && method !== 'insertSubscriptionLog' && method !== 'countQuery' && method !== 'incCounter' && method !== 'supportCreateBillingUser') {\n\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Cron Method', method, '', '', methodData);\n\n\t\t\t// Push task to worker-task-reqs collection\n\t\t\tconst taskId = objectIdHexString();\n\n\t\t\t// Watch worker-task-resps for result\n\t\t\tpromise = new Promise((resolve, reject) => {\n\t\t\t\tlet changeStream = WorkerTaskResponses.watchCollection([{ $match: { 'fullDocument.id_request': taskId } }], { fullDocument: 'updateLookup' });\n\n\t\t\t\tchangeStream.on('change', (change) => {\n\t\t\t\t\tif (change.operationType === 'insert') {\n\t\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst taskResponse = change.fullDocument;\n\n\t\t\t\t\t\tif (taskResponse.has_error) {\n\t\t\t\t\t\t\treject(taskResponse.data); // Task failed, return error\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(taskResponse.data); // Task succeeded, return result\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tchangeStream.close(); // Close the cursor after receiving response\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tchangeStream.on('error', (error) => {\n\t\t\t\t\tconsole.error('Error watching worker responses:', error);\n\t\t\t\t\treject(error);\n\t\t\t\t\tchangeStream.close();\n\t\t\t\t});\n\n\t\t\t\t// changeStream.on('close', () => {\n\t\t\t\t// \tconsole.log('Change stream closed for task:', taskId);\n\t\t\t\t// });\n\t\t\t});\n\n\t\t\tWorkerTaskRequests.create({\n\t\t\t\t_id: taskId,\n\t\t\t\tmethod: method,\n\t\t\t\tparams: methodData,\n\t\t\t\tstatus: 'pending',\n\t\t\t\tid_user: this['id_user'],\n\t\t\t\tuser: this['user'],\n\t\t\t\tid_ws: this['id_socket']\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Cron Method', method, '', '', methodData);\n\t\t\tlet promise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype, {id_user: '', user: '', id_ws: ''}), ...methodData)\n\t\t\t.then(res => {\n\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\t\treturn res;\n\t\t\t}, methodErrs => {\n\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\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\t\treturn methodErrs;\n\t\t\t});\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\tthis._debugCallMethodHits += 1;\n\t\t\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, new Date(), 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\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\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 Schema 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\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\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\tif (method !== 'processAirdropDistribution') {\n\t\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\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\n\t\t// Check if workers are enabled and this is not a worker instance\n\t\tif (this._isWorkersEnabled && !this._isWorkerInstance && method !== 'insertSubscriptionLog' && method !== 'countQuery' && method !== 'incCounter' && method !== 'supportCreateBillingUser') {\t\n\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Method', method, ws['user'] || '', ws['id_socket'] || '', methodData);\n\t\t\t\n\t\t\t// Push task to worker-task-reqs collection\n\t\t\tconst taskId = objectIdHexString();\n\t\t\t// console.log('Workers are enabled. Delegating task to worker.', taskId);\n\n\t\t\tlet changeStream = WorkerTaskResponses.watchCollection([{ $match: { 'fullDocument.id_request': taskId } }], { fullDocument: 'updateLookup' });\n\n\t\t\tchangeStream.on('change', async (change) => {\n\t\t\t\tif (change.operationType === 'insert') {\n\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\n\t\t\t\t\tconst taskResponse = change.fullDocument;\n\n\t\t\t\t\t// console.log('Task response found', taskId, taskResponse.data);\n\n\t\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\t\thasError: taskResponse.has_error,\n\t\t\t\t\t\tdata: taskResponse.data\n\t\t\t\t\t};\n\n\t\t\t\t\tthis.sendWS(ws, new Date(), method, methodData, serverRes);\n\n\t\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\t\tlet latency = await LogMethodLatencies.findById(id_methodLatency);\n\t\n\t\t\t\t\t\tif (latency) {\n\t\t\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\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// console.log('Sent on WS', ws['id_socket'], new Date(), method, methodData, serverRes);\n\n\t\t\t\t\tchangeStream.close(); // Close the cursor after receiving response\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tchangeStream.on('error', (error) => {\n\t\t\t\tconsole.error('Error watching worker responses:', error);\n\t\t\t\tchangeStream.close();\n\t\t\t});\n\n\t\t\tWorkerTaskRequests.create({\n\t\t\t\t_id: taskId,\n\t\t\t\tmethod: method,\n\t\t\t\tparams: methodData,\n\t\t\t\tstatus: 'pending',\n\t\t\t\tid_user: ws['id_user'],\n\t\t\t\tuser: ws['user'],\n\t\t\t\tid_ws: ws['id_socket']\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Method', method, ws['user'] || '', ws['id_socket'] || '', methodData);\n\t\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\t.then(async (res) => {\n\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\thasError: false,\n\t\t\t\t\tdata: res\n\t\t\t\t};\n\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\tlet latency = await LogMethodLatencies.findById(id_methodLatency);\n\n\t\t\t\t\tif (latency) {\n\t\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\t}\n\t\t\t\t}\n\t\t\t}, err => {\n\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\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: err\n\t\t\t\t};\n\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\n\t\t\t\tif (method !== 'processAirdropDistribution') {\n\t\t\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\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t// Call/run method internal (No Emit on Socket)\n\tpublic callMethodInternal(method: string, ...methodData: any[]): Promise<any> {\n\t\tthis._debugCallMethodInternalHits += 1;\n\t\t\n\t\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\t\t\treturn null;\n\t\t}\n\n\t\tif ((methodData.length > 1 || (methodData[0] && typeof(methodData[0]) !== 'function')) && !this._methods[method].skipValidation) {\n\t\t\tif (!this._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\telse if (!this._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\tif (method !== 'insertSubscriptionLog' && method !== 'getDataURIfromURL' && method !== 'processAirdropDistribution') {\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 functionMethodData = typeof(methodData[methodData.length - 1]) === 'function' ? methodData.slice(0, -1) : methodData;\n\t\tlet promise = null;\n\n\t\tif (this._isWorkersEnabled && !this._isWorkerInstance && method !== 'insertSubscriptionLog' && method !== 'countQuery' && method !== 'incCounter' && method !== 'supportCreateBillingUser') {\n\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Internal Method', method, this['user'] || '', '', functionMethodData);\n\n\t\t\t// Push task to worker-task-reqs collection\n\t\t\tconst taskId = objectIdHexString();\n\n\t\t\t// Watch worker-task-resps for result\n\t\t\tpromise = new Promise((resolve, reject) => {\n\t\t\t\tlet changeStream = WorkerTaskResponses.watchCollection([{ $match: { 'fullDocument.id_request': taskId } }], { fullDocument: 'updateLookup' });\n\n\t\t\t\tchangeStream.on('change', (change) => {\n\t\t\t\t\tif (change.operationType === 'insert') {\n\t\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\n\t\t\t\t\t\tconst taskResponse = change.fullDocument;\n\n\t\t\t\t\t\tif (taskResponse.has_error) {\n\t\t\t\t\t\t\treject(taskResponse.data); // Task failed, return error\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(taskResponse.data); // Task succeeded, return result\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tchangeStream.close(); // Close the cursor after receiving response\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tchangeStream.on('error', (error) => {\n\t\t\t\t\tconsole.error('Error watching worker responses:', error);\n\t\t\t\t\treject(error);\n\t\t\t\t\tchangeStream.close();\n\t\t\t\t});\n\n\t\t\t\t// changeStream.on('close', () => {\n\t\t\t\t// \tconsole.log('Change stream closed for task:', taskId);\n\t\t\t\t// });\n\t\t\t});\n\n\t\t\tWorkerTaskRequests.create({\n\t\t\t\t_id: taskId,\n\t\t\t\tmethod: method,\n\t\t\t\tparams: functionMethodData,\n\t\t\t\tstatus: 'pending',\n\t\t\t\tid_user: this['id_user'],\n\t\t\t\tuser: this['user'],\n\t\t\t\tid_ws: this['id_socket']\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tlet monitor = this._monitorManagerFunction.startMonitorFunction('Internal Method', method, this['user'] || '', '', functionMethodData);\n\t\t\tpromise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype), ...functionMethodData)\n\t\t\t\t.then(res => {\n\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\t\t\treturn res;\n\t\t\t\t}, methodErrs => {\n\t\t\t\t\tthis._monitorManagerFunction.finishMonitorFunction(monitor);\n\t\t\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\t\t\treturn methodErrs;\n\t\t\t\t});\n\t\t}\n\n\t\tif (methodData[methodData.length - 1] && typeof(methodData[methodData.length - 1]) === 'function') {\n\t\t\tpromise.then(res => methodData[methodData.length - 1](null, res), err => methodData[methodData.length - 1](err, null));\n\t\t}\n\t\t\n\t\treturn promise;\n\t}\n\n\tprivate sendWS(ws: WebSocket, messageDate: Date, method: string, methodData: any[], data: ServerResponseModel) {\n\t\tthis._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, reply_to?: string, local_override = false) {\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' || local_override) {\n\t\t\t\t\tthis._mailer.sendMail({\n\t\t\t\t\t\treplyTo: reply_to !== null && reply_to !== undefined ? reply_to : (this.serverConfig['MAIL_REPLY_TO'] || undefined), //orders@acefluids.com\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/methods/pdf.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(t,a,r,i){return new(r=r||Promise)(function(n,e){function fulfilled(t){try{step(i.next(t))}catch(t){e(t)}}function rejected(t){try{step(i.throw(t))}catch(t){e(t)}}function step(t){var e;t.done?n(t.value):((e=t.value)instanceof r?e:new r(function(t){t(e)})).then(fulfilled,rejected)}step((i=i.apply(t,a||[])).next())})},__generator=this&&this.__generator||function(a,r){var i,o,s,l={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},f={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(f[Symbol.iterator]=function(){return this}),f;function verb(n){return function(t){var e=[n,t];if(i)throw new TypeError("Generator is already executing.");for(;l=f&&e[f=0]?0:l;)try{if(i=1,o&&(s=2&e[0]?o.return:e[0]?o.throw||((s=o.return)&&s.call(o),0):o.next)&&!(s=s.call(o,e[1])).done)return s;switch(o=0,(e=s?[2&e[0],s.value]:e)[0]){case 0:case 1:s=e;break;case 4:return l.label++,{value:e[1],done:!1};case 5:l.label++,o=e[1],e=[0];continue;case 7:e=l.ops.pop(),l.trys.pop();continue;default:if(!(s=0<(s=l.trys).length&&s[s.length-1])&&(6===e[0]||2===e[0])){l=0;continue}if(3===e[0]&&(!s||e[1]>s[0]&&e[1]<s[3]))l.label=e[1];else if(6===e[0]&&l.label<s[1])l.label=s[1],s=e;else{if(!(s&&l.label<s[2])){s[2]&&l.ops.pop(),l.trys.pop();continue}l.label=s[2],l.ops.push(e)}}e=r.call(a,l)}catch(t){e=[6,t],o=0}finally{i=s=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}}},fs=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadPDFMethods=void 0,require("fs")),simpl_schema_1=require("simpl-schema"),pdf_lib_1=require("pdf-lib"),puppeteer=require("puppeteer"),path=require("path"),pdfCnt=0;function loadPDFMethods(t){t.methods({generatePDF:{check:new simpl_schema_1.default({html:{type:String},fileName:{type:String},orientation:{type:String,optional:!0},fontSize:{type:String,optional:!0},upload:{type:Boolean,optional:!0},uploadFileOrder:{type:Number,optional:!0},uploadFileType:{type:String,optional:!0}}),function:function(p,u,g,h,b,m,w){var t=this;return void 0===g&&(g="portrait"),void 0===h&&(h="12px"),void 0===b&&(b=!1),void 0===m&&(m=-1),void 0===w&&(w=""),new Promise(function(c,d){return __awaiter(t,void 0,void 0,function(){var e,n,a,r,i,o,s,l,f=this;return __generator(this,function(t){switch(t.label){case 0:return a=["--disable-dev-shm-usage","--no-sandbox","--disable-setuid-sandbox","--disable-accelerated-2d-canvas","--disable-gpu","--allow-file-access-from-files","--enable-local-file-accesses","--font-render-hinting=none"],[4,puppeteer.launch({headless:!0,devtools:!1,ignoreHTTPSErrors:!0,args:a,ignoreDefaultArgs:["--disable-extensions"]})];case 1:return[4,(e=t.sent()).newPage()];case 2:return n=t.sent(),a="",a=fs.existsSync(path.join(__dirname,"../private/fonts/dejavuserif.woff"))?path.join(__dirname,"../private/fonts/"):fs.existsSync(path.join(this.clientDir,"./private/fonts/dejavuserif.woff"))?path.join(this.clientDir,"./private/fonts/"):"/usr/share/fonts/dejavu/",s="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif.woff").buffer).toString("base64"),r="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif-bold.woff").buffer).toString("base64"),i="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif-italic.woff").buffer).toString("base64"),o="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif-bolditalic.woff").buffer).toString("base64"),s='\n\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t<style type="text/css">\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: \'Dejavu Serif\';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url("'+s+"\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\""+r+"\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\""+i+"\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\""+o+"\") format('woff');\n\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\tbody {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\tfont-size: "+(h||"12px")+";\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\t\tpage-break-inside: avoid !important;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\t\tpadding-top: 1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\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\t.box {\n\t\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\t\t\t\t\t\t\t\twhite-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n\t\t\t\t\t\t\t\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\t\t\t\t\t\t\t\tword-wrap: break-word; /* Internet Explorer 5.5+ */\n\t\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif'; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t</head>\n\t\t\t\t\t\t<body>\n\t\t\t\t\t"+p.replace(new RegExp("flex-basis:","g"),"-webkit-flex-basis:").replace(new RegExp("flex:","g"),"-webkit-flex:")+"</body>",[4,n.setContent(s,{waitUntil:["domcontentloaded","load","networkidle0"]})];case 3:return t.sent(),[4,n.evaluateHandle("document.fonts.ready")];case 4:return t.sent(),l=pdfCnt+++"-"+u.replace(new RegExp(/[^0-9\.a-zA-Z]/g),""),[4,n.pdf({scale:1,landscape:"portrait"!==g,format:"letter",margin:{top:"1cm",bottom:"1cm",left:"1cm",right:"1cm"},printBackground:!0,displayHeaderFooter:!0,headerTemplate:"\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#header { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t",footerTemplate:'\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<div style="padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;">\n\t\t\t\t\t\t\t\tPage <span class="pageNumber"></span> of <span class="totalPages"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t',path:path.join(__dirname,l),timeout:0})];case 5:return t.sent(),[4,e.close()];case 6:return t.sent(),fs.existsSync(path.join(__dirname,l))?fs.readFile(path.join(__dirname,l),function(t,e){t?d("No file"):(fs.unlinkSync(path.join(__dirname,l)),b?(t="data:application/pdf;base64,"+Buffer.from(e).toString("base64"),f.callMethodInternal("uploadFileAndSave",u,t,4*Math.ceil(t.length/3),null!==m?m:-1,w,!1,function(t,e){t?d(t):c(e)})):c("data:application/pdf;base64,"+Buffer.from(e).toString("base64")))}):(d("No tmp file"),console.log("No tmp file ",l)),[2]}})})})}},generatePDFNoPageNumber:{check:new simpl_schema_1.default({html:{type:String},fileName:{type:String},orientation:{type:String,optional:!0},fontSize:{type:String,optional:!0},upload:{type:Boolean,optional:!0},uploadFileOrder:{type:Number,optional:!0},uploadFileType:{type:String,optional:!0}}),function:function(p,u,g,h,b,m,w){var t=this;return void 0===g&&(g="portrait"),void 0===h&&(h="12px"),void 0===b&&(b=!1),void 0===m&&(m=-1),void 0===w&&(w=""),new Promise(function(c,d){return __awaiter(t,void 0,void 0,function(){var e,n,a,r,i,o,s,l,f=this;return __generator(this,function(t){switch(t.label){case 0:return a=["--disable-dev-shm-usage","--no-sandbox","--disable-setuid-sandbox","--disable-accelerated-2d-canvas","--disable-gpu","--allow-file-access-from-files","--enable-local-file-accesses","--font-render-hinting=none"],[4,puppeteer.launch({headless:!0,devtools:!1,ignoreHTTPSErrors:!0,args:a,ignoreDefaultArgs:["--disable-extensions"]})];case 1:return[4,(e=t.sent()).newPage()];case 2:return n=t.sent(),a="",a=fs.existsSync(path.join(__dirname,"../private/fonts/dejavuserif.woff"))?path.join(__dirname,"../private/fonts/"):fs.existsSync(path.join(this.clientDir,"./private/fonts/dejavuserif.woff"))?path.join(this.clientDir,"./private/fonts/"):"/usr/share/fonts/dejavu/",s="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif.woff").buffer).toString("base64"),r="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif-bold.woff").buffer).toString("base64"),i="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif-italic.woff").buffer).toString("base64"),o="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif-bolditalic.woff").buffer).toString("base64"),s='\n\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t<style type="text/css">\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: \'Dejavu Serif\';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url("'+s+"\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\""+r+"\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\""+i+"\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\""+o+"\") format('woff');\n\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\tbody {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\tfont-size: "+(h||"12px")+";\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\t\tpage-break-inside: avoid !important;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\t\tpadding-top: 1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\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\t.box {\n\t\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\t\t\t\t\t\t\t\twhite-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n\t\t\t\t\t\t\t\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\t\t\t\t\t\t\t\tword-wrap: break-word; /* Internet Explorer 5.5+ */\n\t\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif'; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<meta charset=\"UTF-8\">\n\t\t\t\t\t\t</head>\n\t\t\t\t\t\t<body>\n\t\t\t\t\t"+p.replace(new RegExp("flex-basis:","g"),"-webkit-flex-basis:").replace(new RegExp("flex:","g"),"-webkit-flex:")+"</body>",[4,n.setContent(s,{waitUntil:["domcontentloaded","load","networkidle0"]})];case 3:return t.sent(),[4,n.evaluateHandle("document.fonts.ready")];case 4:return t.sent(),l=pdfCnt+++"-"+u.replace(new RegExp(/[^0-9\.a-zA-Z]/g),""),[4,n.pdf({scale:1,landscape:"portrait"!==g,format:"letter",margin:{top:"1cm",bottom:"1cm",left:"1cm",right:"1cm"},printBackground:!0,displayHeaderFooter:!0,headerTemplate:"\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#header { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t",footerTemplate:'\n\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t\t<div style="padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t',path:path.join(__dirname,l),timeout:0})];case 5:return t.sent(),[4,e.close()];case 6:return t.sent(),fs.existsSync(path.join(__dirname,l))?fs.readFile(path.join(__dirname,l),function(t,e){t?d("No file"):(fs.unlinkSync(path.join(__dirname,l)),b?(t="data:application/pdf;base64,"+Buffer.from(e).toString("base64"),f.callMethodInternal("uploadFileAndSave",u,t,4*Math.ceil(t.length/3),null!==m?m:-1,w,!1,function(t,e){t?d(t):c(e)})):c("data:application/pdf;base64,"+Buffer.from(e).toString("base64")))}):(d("No tmp file"),console.log("No tmp file ",l)),[2]}})})})}},mergePDFResolve:{check:new simpl_schema_1.default({fileKeys:{type:Array},"fileKeys.$":{type:String},fileName:{type:String},fileType:{type:String,optional:!0}}),function:function(r,p,u){var i=this;return new Promise(function(d,a){i.callMethodInternal("getSignedUrls",r,900,function(t,e){var n;e&&e.length?(n=[],e.forEach(function(t){n.push(i.callMethodInternal("getDataURIfromURL",t))}),Promise.all(n).then(function(c){return __awaiter(i,void 0,void 0,function(){var e,n,a,r,i,o,s,l,f;return __generator(this,function(t){switch(t.label){case 0:return[4,pdf_lib_1.PDFDocument.create()];case 1:e=t.sent(),n=0,t.label=2;case 2:if(!(n<c.length))return[3,20];if(!(a=c[n]))return[3,18];t.label=3;case 3:return(t.trys.push([3,16,,17]),a.startsWith("data:application/pdf;base64,"))?[4,pdf_lib_1.PDFDocument.load(a,{updateMetadata:!1,parseSpeed:pdf_lib_1.ParseSpeeds.Fastest,ignoreEncryption:!0})]:[3,6];case 4:return r=t.sent(),[4,e.copyPages(r,r.getPageIndices())];case 5:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 6:return a.startsWith("data:image/jpeg;base64,/9j/")||a.startsWith("data:image/png;base64,/9j/")?[4,pdf_lib_1.PDFDocument.create()]:[3,10];case 7:return[4,(r=t.sent()).embedJpg(a)];case 8:return i=t.sent(),o=r.addPage(),s=i.scaleToFit(.75*o.getWidth(),.75*o.getHeight()),o.drawImage(i,{x:o.getWidth()/2-s.width/2,y:o.getHeight()/2-s.height/2,width:s.width,height:s.height}),[4,e.copyPages(r,r.getPageIndices())];case 9:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 10:return a.startsWith("data:image/png;base64,iVBOR")?[4,pdf_lib_1.PDFDocument.create()]:[3,14];case 11:return[4,(r=t.sent()).embedPng(a)];case 12:return i=t.sent(),o=r.addPage(),s=i.scaleToFit(.75*o.getWidth(),.75*o.getHeight()),o.drawImage(i,{x:o.getWidth()/2-s.width/2,y:o.getHeight()/2-s.height/2,width:s.width,height:s.height}),[4,e.copyPages(r,r.getPageIndices())];case 13:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 14:console.log("Error - unsupported!!",a.slice(0,60)),t.label=15;case 15:return[3,17];case 16:return l=t.sent(),console.log("Error processing fileData:",a.slice(0,60),l),[3,17];case 17:return[3,19];case 18:console.log("Error - no filedata!!",a),t.label=19;case 19:return n++,[3,2];case 20:return[4,e.save()];case 21:return l=t.sent(),f="data:application/pdf;base64,"+Buffer.from(l).toString("base64"),this.callMethodInternal("uploadFileAndSave",p,f,4*Math.ceil(f.length/3),-1,u,!1,function(t,e){d(e)}),[2]}})})})):(i.callMethodInternal("insertErrorLog","PDF Merge - getSignedUrls",[r,t]),a(t))})})}},mergePDFResolveNoSave:{check:new simpl_schema_1.default({fileKeys:{type:Array},"fileKeys.$":{type:String}}),function:function(r){var i=this;return new Promise(function(d,a){i.callMethodInternal("getSignedUrls",r,900,function(t,e){var n;e&&e.length?(n=[],e.forEach(function(t){n.push(i.callMethodInternal("getDataURIfromURL",t))}),Promise.all(n).then(function(c){return __awaiter(i,void 0,void 0,function(){var e,n,a,r,i,o,s,l,f;return __generator(this,function(t){switch(t.label){case 0:return[4,pdf_lib_1.PDFDocument.create()];case 1:e=t.sent(),n=0,t.label=2;case 2:if(!(n<c.length))return[3,20];if(!(a=c[n]))return[3,18];t.label=3;case 3:return(t.trys.push([3,16,,17]),a.startsWith("data:application/pdf;base64,"))?[4,pdf_lib_1.PDFDocument.load(a,{updateMetadata:!1,parseSpeed:pdf_lib_1.ParseSpeeds.Fastest,ignoreEncryption:!0})]:[3,6];case 4:return r=t.sent(),[4,e.copyPages(r,r.getPageIndices())];case 5:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 6:return a.startsWith("data:image/jpeg;base64,/9j/")||a.startsWith("data:image/png;base64,/9j/")?[4,pdf_lib_1.PDFDocument.create()]:[3,10];case 7:return[4,(r=t.sent()).embedJpg(a)];case 8:return i=t.sent(),o=r.addPage(),s=i.scaleToFit(.75*o.getWidth(),.75*o.getHeight()),o.drawImage(i,{x:o.getWidth()/2-s.width/2,y:o.getHeight()/2-s.height/2,width:s.width,height:s.height}),[4,e.copyPages(r,r.getPageIndices())];case 9:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 10:return a.startsWith("data:image/png;base64,iVBOR")?[4,pdf_lib_1.PDFDocument.create()]:[3,14];case 11:return[4,(r=t.sent()).embedPng(a)];case 12:return i=t.sent(),o=r.addPage(),s=i.scaleToFit(.75*o.getWidth(),.75*o.getHeight()),o.drawImage(i,{x:o.getWidth()/2-s.width/2,y:o.getHeight()/2-s.height/2,width:s.width,height:s.height}),[4,e.copyPages(r,r.getPageIndices())];case 13:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 14:console.log("Error - unsupported!!",a.slice(0,60)),t.label=15;case 15:return[3,17];case 16:return l=t.sent(),console.log("Error processing fileData:",a.slice(0,60),l),[3,17];case 17:return[3,19];case 18:console.log("Error - no filedata!!",a),t.label=19;case 19:return n++,[3,2];case 20:return[4,e.save()];case 21:return l=t.sent(),f="data:application/pdf;base64,"+Buffer.from(l).toString("base64"),d(f),[2]}})})})):(i.callMethodInternal("insertErrorLog","PDF Merge - getSignedUrls",[r,t]),a(t))})})}},mergePDFResolveHtml:{check:new simpl_schema_1.default({htmls:{type:Array},"htmls.$":{type:String},fileName:{type:String},fileType:{type:String,optional:!0},save:{type:Boolean,optional:!0}}),function:function(d,p,u,g){var e=this;return void 0===g&&(g=!0),new Promise(function(c,t){return __awaiter(e,void 0,void 0,function(){var e,n,a,r,i,o,s,l,f;return __generator(this,function(t){switch(t.label){case 0:return[4,pdf_lib_1.PDFDocument.create()];case 1:e=t.sent(),n=0,t.label=2;case 2:if(!(n<d.length))return[3,20];if(!(a=d[n]))return[3,18];t.label=3;case 3:return(t.trys.push([3,16,,17]),a.startsWith("data:application/pdf;base64,"))?[4,pdf_lib_1.PDFDocument.load(a,{updateMetadata:!1,parseSpeed:pdf_lib_1.ParseSpeeds.Fastest,ignoreEncryption:!0})]:[3,6];case 4:return r=t.sent(),[4,e.copyPages(r,r.getPageIndices())];case 5:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 6:return a.startsWith("data:image/jpeg;base64,/9j/")||a.startsWith("data:image/png;base64,/9j/")?[4,pdf_lib_1.PDFDocument.create()]:[3,10];case 7:return[4,(r=t.sent()).embedJpg(a)];case 8:return i=t.sent(),o=r.addPage(),s=i.scaleToFit(.75*o.getWidth(),.75*o.getHeight()),o.drawImage(i,{x:o.getWidth()/2-s.width/2,y:o.getHeight()/2-s.height/2,width:s.width,height:s.height}),[4,e.copyPages(r,r.getPageIndices())];case 9:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 10:return a.startsWith("data:image/png;base64,iVBOR")?[4,pdf_lib_1.PDFDocument.create()]:[3,14];case 11:return[4,(r=t.sent()).embedPng(a)];case 12:return i=t.sent(),o=r.addPage(),s=i.scaleToFit(.75*o.getWidth(),.75*o.getHeight()),o.drawImage(i,{x:o.getWidth()/2-s.width/2,y:o.getHeight()/2-s.height/2,width:s.width,height:s.height}),[4,e.copyPages(r,r.getPageIndices())];case 13:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 14:console.log("Error - unsupported!!",a.slice(0,60)),t.label=15;case 15:return[3,17];case 16:return l=t.sent(),console.log("Error processing fileData:",a.slice(0,60),l),[3,17];case 17:return[3,19];case 18:console.log("Error - no filedata!!",a),t.label=19;case 19:return n++,[3,2];case 20:return[4,e.save()];case 21:return l=t.sent(),f="data:application/pdf;base64,"+Buffer.from(l).toString("base64"),g?this.callMethodInternal("uploadFileAndSave",p,f,4*Math.ceil(f.length/3),-1,u,!1,function(t,e){c(e)}):c(f),[2]}})})})}}})}exports.loadPDFMethods=loadPDFMethods;
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(t,a,r,i){return new(r=r||Promise)(function(n,e){function fulfilled(t){try{step(i.next(t))}catch(t){e(t)}}function rejected(t){try{step(i.throw(t))}catch(t){e(t)}}function step(t){var e;t.done?n(t.value):((e=t.value)instanceof r?e:new r(function(t){t(e)})).then(fulfilled,rejected)}step((i=i.apply(t,a||[])).next())})},__generator=this&&this.__generator||function(a,r){var i,o,s,l={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},f={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(f[Symbol.iterator]=function(){return this}),f;function verb(n){return function(t){var e=[n,t];if(i)throw new TypeError("Generator is already executing.");for(;l=f&&e[f=0]?0:l;)try{if(i=1,o&&(s=2&e[0]?o.return:e[0]?o.throw||((s=o.return)&&s.call(o),0):o.next)&&!(s=s.call(o,e[1])).done)return s;switch(o=0,(e=s?[2&e[0],s.value]:e)[0]){case 0:case 1:s=e;break;case 4:return l.label++,{value:e[1],done:!1};case 5:l.label++,o=e[1],e=[0];continue;case 7:e=l.ops.pop(),l.trys.pop();continue;default:if(!(s=0<(s=l.trys).length&&s[s.length-1])&&(6===e[0]||2===e[0])){l=0;continue}if(3===e[0]&&(!s||e[1]>s[0]&&e[1]<s[3]))l.label=e[1];else if(6===e[0]&&l.label<s[1])l.label=s[1],s=e;else{if(!(s&&l.label<s[2])){s[2]&&l.ops.pop(),l.trys.pop();continue}l.label=s[2],l.ops.push(e)}}e=r.call(a,l)}catch(t){e=[6,t],o=0}finally{i=s=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}}},fs=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadPDFMethods=void 0,require("fs")),simpl_schema_1=require("simpl-schema"),pdf_lib_1=require("pdf-lib"),puppeteer=require("puppeteer"),path=require("path"),pdfCnt=0;function loadPDFMethods(t){t.methods({generatePDF:{check:new simpl_schema_1.default({html:{type:String},fileName:{type:String},orientation:{type:String,optional:!0},fontSize:{type:String,optional:!0},upload:{type:Boolean,optional:!0},uploadFileOrder:{type:Number,optional:!0},uploadFileType:{type:String,optional:!0}}),function:function(p,u,g,h,b,m,w){var t=this;return void 0===g&&(g="portrait"),void 0===h&&(h="12px"),void 0===b&&(b=!1),void 0===m&&(m=-1),void 0===w&&(w=""),new Promise(function(c,d){return __awaiter(t,void 0,void 0,function(){var e,n,a,r,i,o,s,l,f=this;return __generator(this,function(t){switch(t.label){case 0:return a=["--disable-dev-shm-usage","--no-sandbox","--disable-setuid-sandbox","--disable-accelerated-2d-canvas","--disable-gpu","--allow-file-access-from-files","--enable-local-file-accesses","--font-render-hinting=none"],[4,puppeteer.launch({headless:!0,devtools:!1,args:a,ignoreDefaultArgs:["--disable-extensions"]})];case 1:return[4,(e=t.sent()).newPage()];case 2:return n=t.sent(),a="",a=fs.existsSync(path.join(__dirname,"../private/fonts/dejavuserif.woff"))?path.join(__dirname,"../private/fonts/"):fs.existsSync(path.join(this.clientDir,"./private/fonts/dejavuserif.woff"))?path.join(this.clientDir,"./private/fonts/"):"/usr/share/fonts/dejavu/",s="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif.woff").buffer).toString("base64"),r="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif-bold.woff").buffer).toString("base64"),i="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif-italic.woff").buffer).toString("base64"),o="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif-bolditalic.woff").buffer).toString("base64"),s='\n\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t<style type="text/css">\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: \'Dejavu Serif\';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url("'+s+"\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\""+r+"\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\""+i+"\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\""+o+"\") format('woff');\n\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\tbody {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\tfont-size: "+(h||"12px")+";\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\t\tpage-break-inside: avoid !important;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\t\tpadding-top: 1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\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\t.box {\n\t\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\t\t\t\t\t\t\t\twhite-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n\t\t\t\t\t\t\t\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\t\t\t\t\t\t\t\tword-wrap: break-word; /* Internet Explorer 5.5+ */\n\t\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif'; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t</head>\n\t\t\t\t\t\t<body>\n\t\t\t\t\t"+p.replace(new RegExp("flex-basis:","g"),"-webkit-flex-basis:").replace(new RegExp("flex:","g"),"-webkit-flex:")+"</body>",[4,n.setContent(s,{waitUntil:["domcontentloaded","load","networkidle0"]})];case 3:return t.sent(),[4,n.evaluateHandle("document.fonts.ready")];case 4:return t.sent(),l=pdfCnt+++"-"+u.replace(new RegExp(/[^0-9\.a-zA-Z]/g),""),[4,n.pdf({scale:1,landscape:"portrait"!==g,format:"letter",margin:{top:"1cm",bottom:"1cm",left:"1cm",right:"1cm"},printBackground:!0,displayHeaderFooter:!0,headerTemplate:"\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#header { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t",footerTemplate:'\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<div style="padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;">\n\t\t\t\t\t\t\t\tPage <span class="pageNumber"></span> of <span class="totalPages"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t',path:path.join(__dirname,l),timeout:0})];case 5:return t.sent(),[4,e.close()];case 6:return t.sent(),fs.existsSync(path.join(__dirname,l))?fs.readFile(path.join(__dirname,l),function(t,e){t?d("No file"):(fs.unlinkSync(path.join(__dirname,l)),b?(t="data:application/pdf;base64,"+Buffer.from(e).toString("base64"),f.callMethodInternal("uploadFileAndSave",u,t,4*Math.ceil(t.length/3),null!==m?m:-1,w,!1,function(t,e){t?d(t):c(e)})):c("data:application/pdf;base64,"+Buffer.from(e).toString("base64")))}):(d("No tmp file"),console.log("No tmp file ",l)),[2]}})})})}},generatePDFNoPageNumber:{check:new simpl_schema_1.default({html:{type:String},fileName:{type:String},orientation:{type:String,optional:!0},fontSize:{type:String,optional:!0},upload:{type:Boolean,optional:!0},uploadFileOrder:{type:Number,optional:!0},uploadFileType:{type:String,optional:!0}}),function:function(p,u,g,h,b,m,w){var t=this;return void 0===g&&(g="portrait"),void 0===h&&(h="12px"),void 0===b&&(b=!1),void 0===m&&(m=-1),void 0===w&&(w=""),new Promise(function(c,d){return __awaiter(t,void 0,void 0,function(){var e,n,a,r,i,o,s,l,f=this;return __generator(this,function(t){switch(t.label){case 0:return a=["--disable-dev-shm-usage","--no-sandbox","--disable-setuid-sandbox","--disable-accelerated-2d-canvas","--disable-gpu","--allow-file-access-from-files","--enable-local-file-accesses","--font-render-hinting=none"],[4,puppeteer.launch({headless:!0,devtools:!1,args:a,ignoreDefaultArgs:["--disable-extensions"]})];case 1:return[4,(e=t.sent()).newPage()];case 2:return n=t.sent(),a="",a=fs.existsSync(path.join(__dirname,"../private/fonts/dejavuserif.woff"))?path.join(__dirname,"../private/fonts/"):fs.existsSync(path.join(this.clientDir,"./private/fonts/dejavuserif.woff"))?path.join(this.clientDir,"./private/fonts/"):"/usr/share/fonts/dejavu/",s="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif.woff").buffer).toString("base64"),r="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif-bold.woff").buffer).toString("base64"),i="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif-italic.woff").buffer).toString("base64"),o="data:application/font-woff;base64,"+Buffer.from(fs.readFileSync(a+"dejavuserif-bolditalic.woff").buffer).toString("base64"),s='\n\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t<style type="text/css">\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: \'Dejavu Serif\';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url("'+s+"\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\""+r+"\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\""+i+"\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\""+o+"\") format('woff');\n\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\tbody {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\tfont-size: "+(h||"12px")+";\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\t\tpage-break-inside: avoid !important;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\t\tpadding-top: 1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\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\t.box {\n\t\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\t\t\t\t\t\t\t\twhite-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n\t\t\t\t\t\t\t\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\t\t\t\t\t\t\t\tword-wrap: break-word; /* Internet Explorer 5.5+ */\n\t\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif'; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<meta charset=\"UTF-8\">\n\t\t\t\t\t\t</head>\n\t\t\t\t\t\t<body>\n\t\t\t\t\t"+p.replace(new RegExp("flex-basis:","g"),"-webkit-flex-basis:").replace(new RegExp("flex:","g"),"-webkit-flex:")+"</body>",[4,n.setContent(s,{waitUntil:["domcontentloaded","load","networkidle0"]})];case 3:return t.sent(),[4,n.evaluateHandle("document.fonts.ready")];case 4:return t.sent(),l=pdfCnt+++"-"+u.replace(new RegExp(/[^0-9\.a-zA-Z]/g),""),[4,n.pdf({scale:1,landscape:"portrait"!==g,format:"letter",margin:{top:"1cm",bottom:"1cm",left:"1cm",right:"1cm"},printBackground:!0,displayHeaderFooter:!0,headerTemplate:"\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#header { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t",footerTemplate:'\n\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t\t<div style="padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t',path:path.join(__dirname,l),timeout:0})];case 5:return t.sent(),[4,e.close()];case 6:return t.sent(),fs.existsSync(path.join(__dirname,l))?fs.readFile(path.join(__dirname,l),function(t,e){t?d("No file"):(fs.unlinkSync(path.join(__dirname,l)),b?(t="data:application/pdf;base64,"+Buffer.from(e).toString("base64"),f.callMethodInternal("uploadFileAndSave",u,t,4*Math.ceil(t.length/3),null!==m?m:-1,w,!1,function(t,e){t?d(t):c(e)})):c("data:application/pdf;base64,"+Buffer.from(e).toString("base64")))}):(d("No tmp file"),console.log("No tmp file ",l)),[2]}})})})}},mergePDFResolve:{check:new simpl_schema_1.default({fileKeys:{type:Array},"fileKeys.$":{type:String},fileName:{type:String},fileType:{type:String,optional:!0}}),function:function(r,p,u){var i=this;return new Promise(function(d,a){i.callMethodInternal("getSignedUrls",r,900,function(t,e){var n;e&&e.length?(n=[],e.forEach(function(t){n.push(i.callMethodInternal("getDataURIfromURL",t))}),Promise.all(n).then(function(c){return __awaiter(i,void 0,void 0,function(){var e,n,a,r,i,o,s,l,f;return __generator(this,function(t){switch(t.label){case 0:return[4,pdf_lib_1.PDFDocument.create()];case 1:e=t.sent(),n=0,t.label=2;case 2:if(!(n<c.length))return[3,20];if(!(a=c[n]))return[3,18];t.label=3;case 3:return(t.trys.push([3,16,,17]),a.startsWith("data:application/pdf;base64,"))?[4,pdf_lib_1.PDFDocument.load(a,{updateMetadata:!1,parseSpeed:pdf_lib_1.ParseSpeeds.Fastest,ignoreEncryption:!0})]:[3,6];case 4:return r=t.sent(),[4,e.copyPages(r,r.getPageIndices())];case 5:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 6:return a.startsWith("data:image/jpeg;base64,/9j/")||a.startsWith("data:image/png;base64,/9j/")?[4,pdf_lib_1.PDFDocument.create()]:[3,10];case 7:return[4,(r=t.sent()).embedJpg(a)];case 8:return i=t.sent(),o=r.addPage(),s=i.scaleToFit(.75*o.getWidth(),.75*o.getHeight()),o.drawImage(i,{x:o.getWidth()/2-s.width/2,y:o.getHeight()/2-s.height/2,width:s.width,height:s.height}),[4,e.copyPages(r,r.getPageIndices())];case 9:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 10:return a.startsWith("data:image/png;base64,iVBOR")?[4,pdf_lib_1.PDFDocument.create()]:[3,14];case 11:return[4,(r=t.sent()).embedPng(a)];case 12:return i=t.sent(),o=r.addPage(),s=i.scaleToFit(.75*o.getWidth(),.75*o.getHeight()),o.drawImage(i,{x:o.getWidth()/2-s.width/2,y:o.getHeight()/2-s.height/2,width:s.width,height:s.height}),[4,e.copyPages(r,r.getPageIndices())];case 13:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 14:console.log("Error - unsupported!!",a.slice(0,60)),t.label=15;case 15:return[3,17];case 16:return l=t.sent(),console.log("Error processing fileData:",a.slice(0,60),l),[3,17];case 17:return[3,19];case 18:console.log("Error - no filedata!!",a),t.label=19;case 19:return n++,[3,2];case 20:return[4,e.save()];case 21:return l=t.sent(),f="data:application/pdf;base64,"+Buffer.from(l).toString("base64"),this.callMethodInternal("uploadFileAndSave",p,f,4*Math.ceil(f.length/3),-1,u,!1,function(t,e){d(e)}),[2]}})})})):(i.callMethodInternal("insertErrorLog","PDF Merge - getSignedUrls",[r,t]),a(t))})})}},mergePDFResolveNoSave:{check:new simpl_schema_1.default({fileKeys:{type:Array},"fileKeys.$":{type:String}}),function:function(r){var i=this;return new Promise(function(d,a){i.callMethodInternal("getSignedUrls",r,900,function(t,e){var n;e&&e.length?(n=[],e.forEach(function(t){n.push(i.callMethodInternal("getDataURIfromURL",t))}),Promise.all(n).then(function(c){return __awaiter(i,void 0,void 0,function(){var e,n,a,r,i,o,s,l,f;return __generator(this,function(t){switch(t.label){case 0:return[4,pdf_lib_1.PDFDocument.create()];case 1:e=t.sent(),n=0,t.label=2;case 2:if(!(n<c.length))return[3,20];if(!(a=c[n]))return[3,18];t.label=3;case 3:return(t.trys.push([3,16,,17]),a.startsWith("data:application/pdf;base64,"))?[4,pdf_lib_1.PDFDocument.load(a,{updateMetadata:!1,parseSpeed:pdf_lib_1.ParseSpeeds.Fastest,ignoreEncryption:!0})]:[3,6];case 4:return r=t.sent(),[4,e.copyPages(r,r.getPageIndices())];case 5:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 6:return a.startsWith("data:image/jpeg;base64,/9j/")||a.startsWith("data:image/png;base64,/9j/")?[4,pdf_lib_1.PDFDocument.create()]:[3,10];case 7:return[4,(r=t.sent()).embedJpg(a)];case 8:return i=t.sent(),o=r.addPage(),s=i.scaleToFit(.75*o.getWidth(),.75*o.getHeight()),o.drawImage(i,{x:o.getWidth()/2-s.width/2,y:o.getHeight()/2-s.height/2,width:s.width,height:s.height}),[4,e.copyPages(r,r.getPageIndices())];case 9:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 10:return a.startsWith("data:image/png;base64,iVBOR")?[4,pdf_lib_1.PDFDocument.create()]:[3,14];case 11:return[4,(r=t.sent()).embedPng(a)];case 12:return i=t.sent(),o=r.addPage(),s=i.scaleToFit(.75*o.getWidth(),.75*o.getHeight()),o.drawImage(i,{x:o.getWidth()/2-s.width/2,y:o.getHeight()/2-s.height/2,width:s.width,height:s.height}),[4,e.copyPages(r,r.getPageIndices())];case 13:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 14:console.log("Error - unsupported!!",a.slice(0,60)),t.label=15;case 15:return[3,17];case 16:return l=t.sent(),console.log("Error processing fileData:",a.slice(0,60),l),[3,17];case 17:return[3,19];case 18:console.log("Error - no filedata!!",a),t.label=19;case 19:return n++,[3,2];case 20:return[4,e.save()];case 21:return l=t.sent(),f="data:application/pdf;base64,"+Buffer.from(l).toString("base64"),d(f),[2]}})})})):(i.callMethodInternal("insertErrorLog","PDF Merge - getSignedUrls",[r,t]),a(t))})})}},mergePDFResolveHtml:{check:new simpl_schema_1.default({htmls:{type:Array},"htmls.$":{type:String},fileName:{type:String},fileType:{type:String,optional:!0},save:{type:Boolean,optional:!0}}),function:function(d,p,u,g){var e=this;return void 0===g&&(g=!0),new Promise(function(c,t){return __awaiter(e,void 0,void 0,function(){var e,n,a,r,i,o,s,l,f;return __generator(this,function(t){switch(t.label){case 0:return[4,pdf_lib_1.PDFDocument.create()];case 1:e=t.sent(),n=0,t.label=2;case 2:if(!(n<d.length))return[3,20];if(!(a=d[n]))return[3,18];t.label=3;case 3:return(t.trys.push([3,16,,17]),a.startsWith("data:application/pdf;base64,"))?[4,pdf_lib_1.PDFDocument.load(a,{updateMetadata:!1,parseSpeed:pdf_lib_1.ParseSpeeds.Fastest,ignoreEncryption:!0})]:[3,6];case 4:return r=t.sent(),[4,e.copyPages(r,r.getPageIndices())];case 5:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 6:return a.startsWith("data:image/jpeg;base64,/9j/")||a.startsWith("data:image/png;base64,/9j/")?[4,pdf_lib_1.PDFDocument.create()]:[3,10];case 7:return[4,(r=t.sent()).embedJpg(a)];case 8:return i=t.sent(),o=r.addPage(),s=i.scaleToFit(.75*o.getWidth(),.75*o.getHeight()),o.drawImage(i,{x:o.getWidth()/2-s.width/2,y:o.getHeight()/2-s.height/2,width:s.width,height:s.height}),[4,e.copyPages(r,r.getPageIndices())];case 9:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 10:return a.startsWith("data:image/png;base64,iVBOR")?[4,pdf_lib_1.PDFDocument.create()]:[3,14];case 11:return[4,(r=t.sent()).embedPng(a)];case 12:return i=t.sent(),o=r.addPage(),s=i.scaleToFit(.75*o.getWidth(),.75*o.getHeight()),o.drawImage(i,{x:o.getWidth()/2-s.width/2,y:o.getHeight()/2-s.height/2,width:s.width,height:s.height}),[4,e.copyPages(r,r.getPageIndices())];case 13:return t.sent().forEach(function(t){e.addPage(t)}),[3,15];case 14:console.log("Error - unsupported!!",a.slice(0,60)),t.label=15;case 15:return[3,17];case 16:return l=t.sent(),console.log("Error processing fileData:",a.slice(0,60),l),[3,17];case 17:return[3,19];case 18:console.log("Error - no filedata!!",a),t.label=19;case 19:return n++,[3,2];case 20:return[4,e.save()];case 21:return l=t.sent(),f="data:application/pdf;base64,"+Buffer.from(l).toString("base64"),g?this.callMethodInternal("uploadFileAndSave",p,f,4*Math.ceil(f.length/3),-1,u,!1,function(t,e){c(e)}):c(f),[2]}})})})}}})}exports.loadPDFMethods=loadPDFMethods;
|
|
2
2
|
//# sourceMappingURL=pdf.js.map
|
package/methods/pdf.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/methods/pdf.ts"],"names":["fs","require","simpl_schema_1","pdf_lib_1","puppeteer","path","pdfCnt","loadPDFMethods","methodManager","methods","generatePDF","check","default","html","type","String","fileName","orientation","optional","fontSize","upload","Boolean","uploadFileOrder","Number","uploadFileType","function","_this","this","Promise","resolve","reject","__awaiter","args","launch","headless","devtools","ignoreHTTPSErrors","ignoreDefaultArgs","browser","_a","sent","newPage","page","pathToFont","existsSync","join","__dirname","clientDir","dejavuserif_woff","Buffer","from","readFileSync","buffer","toString","dejavuserifBold_woff","dejavuserifItalic_woff","dejavuserifBoldItalic_woff","content","replace","RegExp","setContent","waitUntil","evaluateHandle","tmpFileName","pdf","scale","landscape","format","margin","top","bottom","left","right","printBackground","displayHeaderFooter","headerTemplate","footerTemplate","timeout","close","readFile","errRead","data","unlinkSync","fileData","callMethodInternal","Math","ceil","length","err","res","console","log","generatePDFNoPageNumber","mergePDFResolve","fileKeys","Array","fileKeys.$","fileType","errSigneds","resSigneds","promises_1","forEach","signedUrl","push","all","then","fileDatas","PDFDocument","create","mergedPdf","i","startsWith","load","updateMetadata","parseSpeed","ParseSpeeds","Fastest","ignoreEncryption","copyPages","getPageIndices","addPage","embedJpg","img","imgDim","scaleToFit","getWidth","getHeight","drawImage","x","width","y","height","embedPng","slice","error_1","save","mergedPDFUint8","b64PDF","errUp","resUp","mergePDFResolveNoSave","promises_2","error_2","mergePDFResolveHtml","htmls","htmls.$","error_3","exports"],"mappings":"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","file":"pdf.js","sourcesContent":["import * as fs from 'fs';\nimport { MethodManager } from '../managers/method.manager';\nimport SimpleSchema from 'simpl-schema';\nimport { ParseSpeeds, PDFDocument } from 'pdf-lib';\nimport * as puppeteer from 'puppeteer';\nimport * as path from 'path';\n\nlet pdfCnt = 0;\n\nexport function loadPDFMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tgeneratePDF: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\thtml: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\torientation: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tfontSize: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tupload: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileOrder: {\n\t\t\t\t\ttype: Number,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(html, fileName, orientation = 'portrait', fontSize = '12px', upload = false, uploadFileOrder = -1, uploadFileType = '') {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\t// console.log(new Date(), 'GENERATE PDF CALL', fileName, orientation, fontSize, upload);\n\n\t\t\t\t\tconst args = [\n\t\t\t\t\t\t\"--disable-dev-shm-usage\",\n\t\t\t\t\t\t\"--no-sandbox\",\n\t\t\t\t\t\t\"--disable-setuid-sandbox\",\n\t\t\t\t\t\t\"--disable-accelerated-2d-canvas\",\n\t\t\t\t\t\t\"--disable-gpu\",\n\t\t\t\t\t\t\"--allow-file-access-from-files\", \n\t\t\t\t\t\t\"--enable-local-file-accesses\",\n\t\t\t\t\t\t'--font-render-hinting=none'\n\t\t\t\t\t];\n\n\t\t\t\t\tconst browser = await puppeteer.launch({\n\t\t\t\t\t\theadless: true, // run in headless mode\n\t\t\t\t\t\tdevtools: false, // run with dev tools\n\t\t\t\t\t\tignoreHTTPSErrors: true, // ignore https error\n\t\t\t\t\t\targs,\n\t\t\t\t\t\tignoreDefaultArgs: [\"--disable-extensions\"]\n\t\t\t\t\t}); // run browser\n\t\t\t\t\t\n\t\t\t\t\tconst page = await browser.newPage(); // create new tab\n\n\t\t\t\t\tlet pathToFont = '';\n\n\t\t\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\tpathToFont = path.join(__dirname, ('../private/fonts/'));\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\t\tpathToFont = path.join(this.clientDir, ('./private/fonts/'));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tpathToFont = '/usr/share/fonts/dejavu/';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tlet dejavuserif_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifBold_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bold.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-italic.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifBoldItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bolditalic.woff').buffer).toString('base64');\n\n\t\t\t\t\tlet content = `\n\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserif_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBold_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBoldItalic_woff + `\") format('woff');\n\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\tbody {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\tfont-size: ` + (fontSize ? fontSize : '12px') + `;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\t\tpage-break-inside: avoid !important;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\t\tpadding-top: 1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\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\t.box {\n\t\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\t\t\t\t\t\t\t\twhite-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n\t\t\t\t\t\t\t\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\t\t\t\t\t\t\t\tword-wrap: break-word; /* Internet Explorer 5.5+ */\n\t\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif'; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t</head>\n\t\t\t\t\t\t<body>\n\t\t\t\t\t` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>';\n\n\t\t\t\t\tawait page.setContent(content, { waitUntil: ['domcontentloaded', 'load', 'networkidle0'] });\n\t\t\t\t\tawait page.evaluateHandle('document.fonts.ready');\n\t\t\t\t\t\n\t\t\t\t\tlet tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/[^0-9\\.a-zA-Z]/g), '');\t\n\t\t\t\t\n\t\t\t\t\tawait page.pdf({\n\t\t\t\t\t\tscale: 1,\n\t\t\t\t\t\tlandscape: orientation === 'portrait' ? false : true,\n\t\t\t\t\t\tformat: 'letter',\n\t\t\t\t\t\tmargin: {\n\t\t\t\t\t\t\ttop: '1cm',\n\t\t\t\t\t\t\tbottom: '1cm',\n\t\t\t\t\t\t\tleft: '1cm',\n\t\t\t\t\t\t\tright: '1cm'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tprintBackground: true,\n\t\t\t\t\t\tdisplayHeaderFooter: true,\n\t\t\t\t\t\theaderTemplate: `\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#header { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t`,\n\t\t\t\t\t\tfooterTemplate: `\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<div style=\"padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;\">\n\t\t\t\t\t\t\t\tPage <span class=\"pageNumber\"></span> of <span class=\"totalPages\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`,\n\t\t\t\t\t\tpath: path.join(__dirname, (tmpFileName)),\n\t\t\t\t\t\ttimeout: 0\n\t\t\t\t\t});\n\t\t\t\t\tawait browser.close();\n\t\t\t\t\t\n\t\t\t\t\tif (fs.existsSync(path.join(__dirname, (tmpFileName)))) {\n\t\t\t\t\t\tfs.readFile(path.join(__dirname, (tmpFileName)), (errRead, data) => {\n\t\t\t\t\t\t\tif (!errRead) {\n\t\t\t\t\t\t\t\tfs.unlinkSync(path.join(__dirname, (tmpFileName)));\n\t\t\t\t\t\t\t\tif (!upload) {\n\t\t\t\t\t\t\t\t\tresolve('data:application/pdf;base64,' + Buffer.from(data).toString('base64'));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet fileData = 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal('uploadFileAndSave', fileName, fileData, (4 * Math.ceil(fileData.length / 3)), uploadFileOrder !== null ? uploadFileOrder : -1, uploadFileType, false, (err, res) => {\n\t\t\t\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('No file');\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\telse {\n\t\t\t\t\t\treject('No tmp file');\n\t\t\t\t\t\tconsole.log('No tmp file ', tmpFileName);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgeneratePDFNoPageNumber: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\thtml: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\torientation: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tfontSize: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tupload: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileOrder: {\n\t\t\t\t\ttype: Number,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(html, fileName, orientation = 'portrait', fontSize = '12px', upload = false, uploadFileOrder = -1, uploadFileType = '') {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\t// console.log(new Date(), 'GENERATE PDF CALL', fileName, orientation, fontSize, upload);\n\n\t\t\t\t\tconst args = [\n\t\t\t\t\t\t\"--disable-dev-shm-usage\",\n\t\t\t\t\t\t\"--no-sandbox\",\n\t\t\t\t\t\t\"--disable-setuid-sandbox\",\n\t\t\t\t\t\t\"--disable-accelerated-2d-canvas\",\n\t\t\t\t\t\t\"--disable-gpu\",\n\t\t\t\t\t\t\"--allow-file-access-from-files\", \n\t\t\t\t\t\t\"--enable-local-file-accesses\",\n\t\t\t\t\t\t'--font-render-hinting=none'\n\t\t\t\t\t];\n\n\t\t\t\t\tconst browser = await puppeteer.launch({\n\t\t\t\t\t\theadless: true, // run in headless mode\n\t\t\t\t\t\tdevtools: false, // run with dev tools\n\t\t\t\t\t\tignoreHTTPSErrors: true, // ignore https error\n\t\t\t\t\t\targs,\n\t\t\t\t\t\tignoreDefaultArgs: [\"--disable-extensions\"]\n\t\t\t\t\t}); // run browser\n\t\t\t\t\t\n\t\t\t\t\tconst page = await browser.newPage(); // create new tab\n\n\t\t\t\t\tlet pathToFont = '';\n\n\t\t\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\tpathToFont = path.join(__dirname, ('../private/fonts/'));\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\t\tpathToFont = path.join(this.clientDir, ('./private/fonts/'));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tpathToFont = '/usr/share/fonts/dejavu/';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tlet dejavuserif_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifBold_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bold.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-italic.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifBoldItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bolditalic.woff').buffer).toString('base64');\n\n\t\t\t\t\tlet content = `\n\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserif_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBold_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBoldItalic_woff + `\") format('woff');\n\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\tbody {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\tfont-size: ` + (fontSize ? fontSize : '12px') + `;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\t\tpage-break-inside: avoid !important;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\t\tpadding-top: 1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\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\t.box {\n\t\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\t\t\t\t\t\t\t\twhite-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n\t\t\t\t\t\t\t\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\t\t\t\t\t\t\t\tword-wrap: break-word; /* Internet Explorer 5.5+ */\n\t\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif'; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<meta charset=\"UTF-8\">\n\t\t\t\t\t\t</head>\n\t\t\t\t\t\t<body>\n\t\t\t\t\t` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>';\n\n\t\t\t\t\tawait page.setContent(content, { waitUntil: ['domcontentloaded', 'load', 'networkidle0'] });\n\t\t\t\t\tawait page.evaluateHandle('document.fonts.ready');\n\t\t\t\t\t\n\t\t\t\t\tlet tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/[^0-9\\.a-zA-Z]/g), '');\t\n\t\t\t\t\n\t\t\t\t\tawait page.pdf({\n\t\t\t\t\t\tscale: 1,\n\t\t\t\t\t\tlandscape: orientation === 'portrait' ? false : true,\n\t\t\t\t\t\tformat: 'letter',\n\t\t\t\t\t\tmargin: {\n\t\t\t\t\t\t\ttop: '1cm',\n\t\t\t\t\t\t\tbottom: '1cm',\n\t\t\t\t\t\t\tleft: '1cm',\n\t\t\t\t\t\t\tright: '1cm'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tprintBackground: true,\n\t\t\t\t\t\tdisplayHeaderFooter: true,\n\t\t\t\t\t\theaderTemplate: `\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#header { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t`,\n\t\t\t\t\t\tfooterTemplate: `\n\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t\t<div style=\"padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`,\n\t\t\t\t\t\tpath: path.join(__dirname, (tmpFileName)),\n\t\t\t\t\t\ttimeout: 0\n\t\t\t\t\t});\n\t\t\t\t\tawait browser.close();\n\t\t\t\t\t\n\t\t\t\t\tif (fs.existsSync(path.join(__dirname, (tmpFileName)))) {\n\t\t\t\t\t\tfs.readFile(path.join(__dirname, (tmpFileName)), (errRead, data) => {\n\t\t\t\t\t\t\tif (!errRead) {\n\t\t\t\t\t\t\t\tfs.unlinkSync(path.join(__dirname, (tmpFileName)));\n\t\t\t\t\t\t\t\tif (!upload) {\n\t\t\t\t\t\t\t\t\tresolve('data:application/pdf;base64,' + Buffer.from(data).toString('base64'));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet fileData = 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal('uploadFileAndSave', fileName, fileData, (4 * Math.ceil(fileData.length / 3)), uploadFileOrder !== null ? uploadFileOrder : -1, uploadFileType, false, (err, res) => {\n\t\t\t\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('No file');\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\telse {\n\t\t\t\t\t\treject('No tmp file');\n\t\t\t\t\t\tconsole.log('No tmp file ', tmpFileName);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmergePDFResolve: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileKeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'fileKeys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(fileKeys: string[], fileName: string, fileType?: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tthis.callMethodInternal('getSignedUrls', fileKeys, 900, (errSigneds, resSigneds) => {\n\t\t\t\t\t\tif (resSigneds && resSigneds.length) {\n\t\t\t\t\t\t\tlet promises = [];\n\t\t\n\t\t\t\t\t\t\tresSigneds.forEach((signedUrl) => {\n\t\t\t\t\t\t\t\tpromises.push(this.callMethodInternal('getDataURIfromURL', signedUrl));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tPromise.all(promises).then(async (fileDatas) => {\n\t\t\t\t\t\t\t\tconst mergedPdf = await PDFDocument.create();\n\t\t\n\t\t\t\t\t\t\t\tfor (let i = 0; i < fileDatas.length; i++) {\n\t\t\t\t\t\t\t\t\tlet fileData = fileDatas[i];\n\t\t\n\t\t\t\t\t\t\t\t\tif (fileData) {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tif (fileData.startsWith('data:application/pdf;base64,')) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.load(fileData, { updateMetadata: false, parseSpeed: ParseSpeeds.Fastest, ignoreEncryption: true });\n\t\t\t\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse if (fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/')) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\t\t\t\tconst img = await pdf.embedJpg(fileData);\n\t\t\t\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\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\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse if (fileData.startsWith('data:image/png;base64,iVBOR')) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\t\t\t\tconst img = await pdf.embedPng(fileData);\n\t\t\t\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\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\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log('Error - unsupported!!', fileData.slice(0, 60));\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\tcatch (error) {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log('Error processing fileData:', fileData.slice(0, 60), error);\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\telse {\n\t\t\t\t\t\t\t\t\t\tconsole.log('Error - no filedata!!', fileData);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\n\t\t\t\t\t\t\t\tlet mergedPDFUint8 = await mergedPdf.save();\n\t\t\n\t\t\t\t\t\t\t\tconst b64PDF = 'data:application/pdf;base64,' + Buffer.from(mergedPDFUint8).toString('base64');\n\t\t\n\t\t\t\t\t\t\t\tthis.callMethodInternal('uploadFileAndSave', fileName, b64PDF, (4 * Math.ceil(b64PDF.length / 3)), -1, fileType, false, (errUp, resUp) => {\n\t\t\t\t\t\t\t\t\tresolve(resUp);\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.callMethodInternal('insertErrorLog', 'PDF Merge - getSignedUrls', [\n\t\t\t\t\t\t\t\tfileKeys,\n\t\t\t\t\t\t\t\terrSigneds\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\treject(errSigneds);\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},\t\t\n\t\tmergePDFResolveNoSave: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileKeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'fileKeys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(fileKeys: string[]) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tthis.callMethodInternal('getSignedUrls', fileKeys, 900, (errSigneds, resSigneds) => {\n\t\t\t\t\t\tif (resSigneds && resSigneds.length) {\n\t\t\t\t\t\t\tlet promises = [];\n\n\t\t\t\t\t\t\tresSigneds.forEach((signedUrl) => {\n\t\t\t\t\t\t\t\tpromises.push(this.callMethodInternal('getDataURIfromURL', signedUrl));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tPromise.all(promises).then(async (fileDatas) => {\n\t\t\t\t\t\t\t\tconst mergedPdf = await PDFDocument.create();\n\n\t\t\t\t\t\t\t\tfor (let i = 0; i < fileDatas.length; i++) {\n\n\t\t\t\t\t\t\t\t\tlet fileData = fileDatas[i];\n\n\t\t\t\t\t\t\t\t\tif (fileData) {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tif (fileData.startsWith('data:application/pdf;base64,')) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.load(fileData, { updateMetadata: false, parseSpeed: ParseSpeeds.Fastest, ignoreEncryption: true});\n\t\t\t\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse if (fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/')) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\t\t\t\tconst img = await pdf.embedJpg(fileData);\n\t\t\t\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\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\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse if (fileData.startsWith('data:image/png;base64,iVBOR')) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\t\t\t\tconst img = await pdf.embedPng(fileData);\n\t\t\t\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\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\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log('Error - unsupported!!', fileData.slice(0, 60));\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\tcatch (error) {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log('Error processing fileData:', fileData.slice(0, 60), error);\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\telse {\n\t\t\t\t\t\t\t\t\t\tconsole.log('Error - no filedata!!', fileData);\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\tlet mergedPDFUint8 = await mergedPdf.save();\n\n\t\t\t\t\t\t\t\tconst b64PDF = 'data:application/pdf;base64,' + Buffer.from(mergedPDFUint8).toString('base64');\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tresolve(b64PDF);\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.callMethodInternal('insertErrorLog', 'PDF Merge - getSignedUrls', [\n\t\t\t\t\t\t\t\tfileKeys,\n\t\t\t\t\t\t\t\terrSigneds\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\treject(errSigneds);\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\tmergePDFResolveHtml: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\thtmls: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'htmls.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tsave: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(htmls: string[], fileName: string, fileType?: string, save = true) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tconst mergedPdf = await PDFDocument.create();\n\n\t\t\t\t\tfor (let i = 0; i < htmls.length; i++) {\n\n\t\t\t\t\t\tlet fileData = htmls[i];\n\n\t\t\t\t\t\tif (fileData) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif (fileData.startsWith('data:application/pdf;base64,')) {\n\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.load(fileData, { updateMetadata: false, parseSpeed: ParseSpeeds.Fastest, ignoreEncryption: true });\n\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse if (fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/')) {\n\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\tconst img = await pdf.embedJpg(fileData);\n\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse if (fileData.startsWith('data:image/png;base64,iVBOR')) {\n\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\tconst img = await pdf.embedPng(fileData);\n\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse {\n\t\t\t\t\t\t\t\t\tconsole.log('Error - unsupported!!', fileData.slice(0, 60));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\t\t\tconsole.log('Error processing fileData:', fileData.slice(0, 60), error);\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\tconsole.log('Error - no filedata!!', fileData);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tlet mergedPDFUint8 = await mergedPdf.save();\n\n\t\t\t\t\tconst b64PDF = 'data:application/pdf;base64,' + Buffer.from(mergedPDFUint8).toString('base64');\n\n\t\t\t\t\tif (save) {\n\t\t\t\t\t\tthis.callMethodInternal('uploadFileAndSave', fileName, b64PDF, (4 * Math.ceil(b64PDF.length / 3)), -1, fileType, false, (errUp, resUp) => {\n\t\t\t\t\t\t\tresolve(resUp);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(b64PDF);\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/methods/pdf.ts"],"names":["fs","require","simpl_schema_1","pdf_lib_1","puppeteer","path","pdfCnt","loadPDFMethods","methodManager","methods","generatePDF","check","default","html","type","String","fileName","orientation","optional","fontSize","upload","Boolean","uploadFileOrder","Number","uploadFileType","function","_this","this","Promise","resolve","reject","__awaiter","args","launch","headless","devtools","ignoreDefaultArgs","browser","_a","sent","newPage","page","pathToFont","existsSync","join","__dirname","clientDir","dejavuserif_woff","Buffer","from","readFileSync","buffer","toString","dejavuserifBold_woff","dejavuserifItalic_woff","dejavuserifBoldItalic_woff","content","replace","RegExp","setContent","waitUntil","evaluateHandle","tmpFileName","pdf","scale","landscape","format","margin","top","bottom","left","right","printBackground","displayHeaderFooter","headerTemplate","footerTemplate","timeout","close","readFile","errRead","data","unlinkSync","fileData","callMethodInternal","Math","ceil","length","err","res","console","log","generatePDFNoPageNumber","mergePDFResolve","fileKeys","Array","fileKeys.$","fileType","errSigneds","resSigneds","promises_1","forEach","signedUrl","push","all","then","fileDatas","PDFDocument","create","mergedPdf","i","startsWith","load","updateMetadata","parseSpeed","ParseSpeeds","Fastest","ignoreEncryption","copyPages","getPageIndices","addPage","embedJpg","img","imgDim","scaleToFit","getWidth","getHeight","drawImage","x","width","y","height","embedPng","slice","error_1","save","mergedPDFUint8","b64PDF","errUp","resUp","mergePDFResolveNoSave","promises_2","error_2","mergePDFResolveHtml","htmls","htmls.$","error_3","exports"],"mappings":"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","file":"pdf.js","sourcesContent":["import * as fs from 'fs';\nimport { MethodManager } from '../managers/method.manager';\nimport SimpleSchema from 'simpl-schema';\nimport { ParseSpeeds, PDFDocument } from 'pdf-lib';\nimport * as puppeteer from 'puppeteer';\nimport * as path from 'path';\n\nlet pdfCnt = 0;\n\nexport function loadPDFMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tgeneratePDF: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\thtml: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\torientation: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tfontSize: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tupload: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileOrder: {\n\t\t\t\t\ttype: Number,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(html, fileName, orientation = 'portrait', fontSize = '12px', upload = false, uploadFileOrder = -1, uploadFileType = '') {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\t// console.log(new Date(), 'GENERATE PDF CALL', fileName, orientation, fontSize, upload);\n\n\t\t\t\t\tconst args = [\n\t\t\t\t\t\t\"--disable-dev-shm-usage\",\n\t\t\t\t\t\t\"--no-sandbox\",\n\t\t\t\t\t\t\"--disable-setuid-sandbox\",\n\t\t\t\t\t\t\"--disable-accelerated-2d-canvas\",\n\t\t\t\t\t\t\"--disable-gpu\",\n\t\t\t\t\t\t\"--allow-file-access-from-files\", \n\t\t\t\t\t\t\"--enable-local-file-accesses\",\n\t\t\t\t\t\t'--font-render-hinting=none'\n\t\t\t\t\t];\n\n\t\t\t\t\tconst browser = await puppeteer.launch({\n\t\t\t\t\t\theadless: true, // run in headless mode\n\t\t\t\t\t\tdevtools: false, // run with dev tools\n\t\t\t\t\t\targs,\n\t\t\t\t\t\tignoreDefaultArgs: [\"--disable-extensions\"]\n\t\t\t\t\t}); // run browser\n\t\t\t\t\t\n\t\t\t\t\tconst page = await browser.newPage(); // create new tab\n\n\t\t\t\t\tlet pathToFont = '';\n\n\t\t\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\tpathToFont = path.join(__dirname, ('../private/fonts/'));\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\t\tpathToFont = path.join(this.clientDir, ('./private/fonts/'));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tpathToFont = '/usr/share/fonts/dejavu/';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tlet dejavuserif_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifBold_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bold.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-italic.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifBoldItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bolditalic.woff').buffer).toString('base64');\n\n\t\t\t\t\tlet content = `\n\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserif_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBold_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBoldItalic_woff + `\") format('woff');\n\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\tbody {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\tfont-size: ` + (fontSize ? fontSize : '12px') + `;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\t\tpage-break-inside: avoid !important;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\t\tpadding-top: 1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\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\t.box {\n\t\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\t\t\t\t\t\t\t\twhite-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n\t\t\t\t\t\t\t\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\t\t\t\t\t\t\t\tword-wrap: break-word; /* Internet Explorer 5.5+ */\n\t\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif'; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t</head>\n\t\t\t\t\t\t<body>\n\t\t\t\t\t` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>';\n\n\t\t\t\t\tawait page.setContent(content, { waitUntil: ['domcontentloaded', 'load', 'networkidle0'] });\n\t\t\t\t\tawait page.evaluateHandle('document.fonts.ready');\n\t\t\t\t\t\n\t\t\t\t\tlet tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/[^0-9\\.a-zA-Z]/g), '');\t\n\t\t\t\t\n\t\t\t\t\tawait page.pdf({\n\t\t\t\t\t\tscale: 1,\n\t\t\t\t\t\tlandscape: orientation === 'portrait' ? false : true,\n\t\t\t\t\t\tformat: 'letter',\n\t\t\t\t\t\tmargin: {\n\t\t\t\t\t\t\ttop: '1cm',\n\t\t\t\t\t\t\tbottom: '1cm',\n\t\t\t\t\t\t\tleft: '1cm',\n\t\t\t\t\t\t\tright: '1cm'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tprintBackground: true,\n\t\t\t\t\t\tdisplayHeaderFooter: true,\n\t\t\t\t\t\theaderTemplate: `\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#header { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t`,\n\t\t\t\t\t\tfooterTemplate: `\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<div style=\"padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;\">\n\t\t\t\t\t\t\t\tPage <span class=\"pageNumber\"></span> of <span class=\"totalPages\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`,\n\t\t\t\t\t\tpath: path.join(__dirname, (tmpFileName)),\n\t\t\t\t\t\ttimeout: 0\n\t\t\t\t\t});\n\t\t\t\t\tawait browser.close();\n\t\t\t\t\t\n\t\t\t\t\tif (fs.existsSync(path.join(__dirname, (tmpFileName)))) {\n\t\t\t\t\t\tfs.readFile(path.join(__dirname, (tmpFileName)), (errRead, data) => {\n\t\t\t\t\t\t\tif (!errRead) {\n\t\t\t\t\t\t\t\tfs.unlinkSync(path.join(__dirname, (tmpFileName)));\n\t\t\t\t\t\t\t\tif (!upload) {\n\t\t\t\t\t\t\t\t\tresolve('data:application/pdf;base64,' + Buffer.from(data).toString('base64'));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet fileData = 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal('uploadFileAndSave', fileName, fileData, (4 * Math.ceil(fileData.length / 3)), uploadFileOrder !== null ? uploadFileOrder : -1, uploadFileType, false, (err, res) => {\n\t\t\t\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('No file');\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\telse {\n\t\t\t\t\t\treject('No tmp file');\n\t\t\t\t\t\tconsole.log('No tmp file ', tmpFileName);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgeneratePDFNoPageNumber: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\thtml: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\torientation: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tfontSize: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tupload: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileOrder: {\n\t\t\t\t\ttype: Number,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(html, fileName, orientation = 'portrait', fontSize = '12px', upload = false, uploadFileOrder = -1, uploadFileType = '') {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\t// console.log(new Date(), 'GENERATE PDF CALL', fileName, orientation, fontSize, upload);\n\n\t\t\t\t\tconst args = [\n\t\t\t\t\t\t\"--disable-dev-shm-usage\",\n\t\t\t\t\t\t\"--no-sandbox\",\n\t\t\t\t\t\t\"--disable-setuid-sandbox\",\n\t\t\t\t\t\t\"--disable-accelerated-2d-canvas\",\n\t\t\t\t\t\t\"--disable-gpu\",\n\t\t\t\t\t\t\"--allow-file-access-from-files\", \n\t\t\t\t\t\t\"--enable-local-file-accesses\",\n\t\t\t\t\t\t'--font-render-hinting=none'\n\t\t\t\t\t];\n\n\t\t\t\t\tconst browser = await puppeteer.launch({\n\t\t\t\t\t\theadless: true, // run in headless mode\n\t\t\t\t\t\tdevtools: false, // run with dev tools\n\t\t\t\t\t\targs,\n\t\t\t\t\t\tignoreDefaultArgs: [\"--disable-extensions\"]\n\t\t\t\t\t}); // run browser\n\t\t\t\t\t\n\t\t\t\t\tconst page = await browser.newPage(); // create new tab\n\n\t\t\t\t\tlet pathToFont = '';\n\n\t\t\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\tpathToFont = path.join(__dirname, ('../private/fonts/'));\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\t\tpathToFont = path.join(this.clientDir, ('./private/fonts/'));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tpathToFont = '/usr/share/fonts/dejavu/';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tlet dejavuserif_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifBold_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bold.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-italic.woff').buffer).toString('base64');\n\t\t\t\t\tlet dejavuserifBoldItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bolditalic.woff').buffer).toString('base64');\n\n\t\t\t\t\tlet content = `\n\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserif_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBold_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBoldItalic_woff + `\") format('woff');\n\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\tbody {\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\tfont-size: ` + (fontSize ? fontSize : '12px') + `;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\t\tpage-break-inside: avoid !important;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\t\tpadding-top: 1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\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\t.box {\n\t\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\t\t\t\t\t\t\t\twhite-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n\t\t\t\t\t\t\t\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\t\t\t\t\t\t\t\tword-wrap: break-word; /* Internet Explorer 5.5+ */\n\t\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif'; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<meta charset=\"UTF-8\">\n\t\t\t\t\t\t</head>\n\t\t\t\t\t\t<body>\n\t\t\t\t\t` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>';\n\n\t\t\t\t\tawait page.setContent(content, { waitUntil: ['domcontentloaded', 'load', 'networkidle0'] });\n\t\t\t\t\tawait page.evaluateHandle('document.fonts.ready');\n\t\t\t\t\t\n\t\t\t\t\tlet tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/[^0-9\\.a-zA-Z]/g), '');\t\n\t\t\t\t\n\t\t\t\t\tawait page.pdf({\n\t\t\t\t\t\tscale: 1,\n\t\t\t\t\t\tlandscape: orientation === 'portrait' ? false : true,\n\t\t\t\t\t\tformat: 'letter',\n\t\t\t\t\t\tmargin: {\n\t\t\t\t\t\t\ttop: '1cm',\n\t\t\t\t\t\t\tbottom: '1cm',\n\t\t\t\t\t\t\tleft: '1cm',\n\t\t\t\t\t\t\tright: '1cm'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tprintBackground: true,\n\t\t\t\t\t\tdisplayHeaderFooter: true,\n\t\t\t\t\t\theaderTemplate: `\n\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t#header { \n\t\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t<span></span>\n\t\t\t\t\t\t`,\n\t\t\t\t\t\tfooterTemplate: `\n\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t\t<div style=\"padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`,\n\t\t\t\t\t\tpath: path.join(__dirname, (tmpFileName)),\n\t\t\t\t\t\ttimeout: 0\n\t\t\t\t\t});\n\t\t\t\t\tawait browser.close();\n\t\t\t\t\t\n\t\t\t\t\tif (fs.existsSync(path.join(__dirname, (tmpFileName)))) {\n\t\t\t\t\t\tfs.readFile(path.join(__dirname, (tmpFileName)), (errRead, data) => {\n\t\t\t\t\t\t\tif (!errRead) {\n\t\t\t\t\t\t\t\tfs.unlinkSync(path.join(__dirname, (tmpFileName)));\n\t\t\t\t\t\t\t\tif (!upload) {\n\t\t\t\t\t\t\t\t\tresolve('data:application/pdf;base64,' + Buffer.from(data).toString('base64'));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet fileData = 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');\n\t\t\t\t\t\t\t\t\tthis.callMethodInternal('uploadFileAndSave', fileName, fileData, (4 * Math.ceil(fileData.length / 3)), uploadFileOrder !== null ? uploadFileOrder : -1, uploadFileType, false, (err, res) => {\n\t\t\t\t\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treject('No file');\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\telse {\n\t\t\t\t\t\treject('No tmp file');\n\t\t\t\t\t\tconsole.log('No tmp file ', tmpFileName);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmergePDFResolve: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileKeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'fileKeys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(fileKeys: string[], fileName: string, fileType?: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tthis.callMethodInternal('getSignedUrls', fileKeys, 900, (errSigneds, resSigneds) => {\n\t\t\t\t\t\tif (resSigneds && resSigneds.length) {\n\t\t\t\t\t\t\tlet promises = [];\n\t\t\n\t\t\t\t\t\t\tresSigneds.forEach((signedUrl) => {\n\t\t\t\t\t\t\t\tpromises.push(this.callMethodInternal('getDataURIfromURL', signedUrl));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tPromise.all(promises).then(async (fileDatas) => {\n\t\t\t\t\t\t\t\tconst mergedPdf = await PDFDocument.create();\n\t\t\n\t\t\t\t\t\t\t\tfor (let i = 0; i < fileDatas.length; i++) {\n\t\t\t\t\t\t\t\t\tlet fileData = fileDatas[i];\n\t\t\n\t\t\t\t\t\t\t\t\tif (fileData) {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tif (fileData.startsWith('data:application/pdf;base64,')) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.load(fileData, { updateMetadata: false, parseSpeed: ParseSpeeds.Fastest, ignoreEncryption: true });\n\t\t\t\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse if (fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/')) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\t\t\t\tconst img = await pdf.embedJpg(fileData);\n\t\t\t\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\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\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse if (fileData.startsWith('data:image/png;base64,iVBOR')) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\t\t\t\tconst img = await pdf.embedPng(fileData);\n\t\t\t\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\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\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log('Error - unsupported!!', fileData.slice(0, 60));\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\tcatch (error) {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log('Error processing fileData:', fileData.slice(0, 60), error);\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\telse {\n\t\t\t\t\t\t\t\t\t\tconsole.log('Error - no filedata!!', fileData);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\n\t\t\t\t\t\t\t\tlet mergedPDFUint8 = await mergedPdf.save();\n\t\t\n\t\t\t\t\t\t\t\tconst b64PDF = 'data:application/pdf;base64,' + Buffer.from(mergedPDFUint8).toString('base64');\n\t\t\n\t\t\t\t\t\t\t\tthis.callMethodInternal('uploadFileAndSave', fileName, b64PDF, (4 * Math.ceil(b64PDF.length / 3)), -1, fileType, false, (errUp, resUp) => {\n\t\t\t\t\t\t\t\t\tresolve(resUp);\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.callMethodInternal('insertErrorLog', 'PDF Merge - getSignedUrls', [\n\t\t\t\t\t\t\t\tfileKeys,\n\t\t\t\t\t\t\t\terrSigneds\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\treject(errSigneds);\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},\t\t\n\t\tmergePDFResolveNoSave: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileKeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'fileKeys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(fileKeys: string[]) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tthis.callMethodInternal('getSignedUrls', fileKeys, 900, (errSigneds, resSigneds) => {\n\t\t\t\t\t\tif (resSigneds && resSigneds.length) {\n\t\t\t\t\t\t\tlet promises = [];\n\n\t\t\t\t\t\t\tresSigneds.forEach((signedUrl) => {\n\t\t\t\t\t\t\t\tpromises.push(this.callMethodInternal('getDataURIfromURL', signedUrl));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tPromise.all(promises).then(async (fileDatas) => {\n\t\t\t\t\t\t\t\tconst mergedPdf = await PDFDocument.create();\n\n\t\t\t\t\t\t\t\tfor (let i = 0; i < fileDatas.length; i++) {\n\n\t\t\t\t\t\t\t\t\tlet fileData = fileDatas[i];\n\n\t\t\t\t\t\t\t\t\tif (fileData) {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tif (fileData.startsWith('data:application/pdf;base64,')) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.load(fileData, { updateMetadata: false, parseSpeed: ParseSpeeds.Fastest, ignoreEncryption: true});\n\t\t\t\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse if (fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/')) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\t\t\t\tconst img = await pdf.embedJpg(fileData);\n\t\t\t\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\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\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse if (fileData.startsWith('data:image/png;base64,iVBOR')) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\t\t\t\tconst img = await pdf.embedPng(fileData);\n\t\t\t\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\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\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log('Error - unsupported!!', fileData.slice(0, 60));\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\tcatch (error) {\n\t\t\t\t\t\t\t\t\t\t\tconsole.log('Error processing fileData:', fileData.slice(0, 60), error);\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\telse {\n\t\t\t\t\t\t\t\t\t\tconsole.log('Error - no filedata!!', fileData);\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\tlet mergedPDFUint8 = await mergedPdf.save();\n\n\t\t\t\t\t\t\t\tconst b64PDF = 'data:application/pdf;base64,' + Buffer.from(mergedPDFUint8).toString('base64');\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tresolve(b64PDF);\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.callMethodInternal('insertErrorLog', 'PDF Merge - getSignedUrls', [\n\t\t\t\t\t\t\t\tfileKeys,\n\t\t\t\t\t\t\t\terrSigneds\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\treject(errSigneds);\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\tmergePDFResolveHtml: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\thtmls: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'htmls.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tsave: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(htmls: string[], fileName: string, fileType?: string, save = true) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tconst mergedPdf = await PDFDocument.create();\n\n\t\t\t\t\tfor (let i = 0; i < htmls.length; i++) {\n\n\t\t\t\t\t\tlet fileData = htmls[i];\n\n\t\t\t\t\t\tif (fileData) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif (fileData.startsWith('data:application/pdf;base64,')) {\n\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.load(fileData, { updateMetadata: false, parseSpeed: ParseSpeeds.Fastest, ignoreEncryption: true });\n\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse if (fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/')) {\n\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\tconst img = await pdf.embedJpg(fileData);\n\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse if (fileData.startsWith('data:image/png;base64,iVBOR')) {\n\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\t\tconst img = await pdf.embedPng(fileData);\n\t\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\telse {\n\t\t\t\t\t\t\t\t\tconsole.log('Error - unsupported!!', fileData.slice(0, 60));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\t\t\tconsole.log('Error processing fileData:', fileData.slice(0, 60), error);\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\tconsole.log('Error - no filedata!!', fileData);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tlet mergedPDFUint8 = await mergedPdf.save();\n\n\t\t\t\t\tconst b64PDF = 'data:application/pdf;base64,' + Buffer.from(mergedPDFUint8).toString('base64');\n\n\t\t\t\t\tif (save) {\n\t\t\t\t\t\tthis.callMethodInternal('uploadFileAndSave', fileName, b64PDF, (4 * Math.ceil(b64PDF.length / 3)), -1, fileType, false, (errUp, resUp) => {\n\t\t\t\t\t\t\tresolve(resUp);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(b64PDF);\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": "20.3.
|
|
3
|
+
"version": "20.3.16",
|
|
4
4
|
"description": "",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"package": "./build_package.sh",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"path": "0.12.7",
|
|
39
39
|
"pdf-lib": "1.17.1",
|
|
40
40
|
"pm2": "5.3.0",
|
|
41
|
-
"puppeteer": "^
|
|
41
|
+
"puppeteer": "^23.6.0",
|
|
42
42
|
"rus-diff": "1.1.0",
|
|
43
43
|
"scmp": "2.1.0",
|
|
44
44
|
"simpl-schema": "1.12.0",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"path": "0.12.7",
|
|
96
96
|
"pdf-lib": "1.17.1",
|
|
97
97
|
"pm2": "5.3.0",
|
|
98
|
-
"puppeteer": "^
|
|
98
|
+
"puppeteer": "^23.6.0",
|
|
99
99
|
"rus-diff": "1.1.0",
|
|
100
100
|
"scmp": "2.1.0",
|
|
101
101
|
"simpl-schema": "1.12.0",
|