@resolveio/server-lib 12.0.7 → 12.0.9
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.
|
@@ -475,8 +475,9 @@ var MethodManager = /** @class */ (function () {
|
|
|
475
475
|
route: ''
|
|
476
476
|
});
|
|
477
477
|
}
|
|
478
|
-
var
|
|
479
|
-
var
|
|
478
|
+
var functionMethodData = typeof (methodData[methodData.length - 1]) === 'function' ? methodData.slice(0, -1) : methodData;
|
|
479
|
+
var monitor = new monitor_manager_1.MonitorFunction('Internal Method', method, this['id_user'] || '', functionMethodData);
|
|
480
|
+
var promise = (_a = this._methods[method].function).call.apply(_a, __spreadArrays([Object.assign({}, this, MethodManager.prototype)], functionMethodData)).then(function (res) {
|
|
480
481
|
monitor.finish();
|
|
481
482
|
return res;
|
|
482
483
|
}, function (methodErrs) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/managers/method.manager.ts"],"names":[],"mappings":"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","file":"method.manager.js","sourcesContent":["import { ServerResponseModel } from '../models/server-response.model';\nimport { loadCollectionMethods } from '../methods/collections';\nimport { MethodModel } from '../models/method.model';\nimport { loadLogMethods } from '../methods/logs';\nimport { loadCounterMethods } from '../methods/counters';\nimport { loadPDFMethods } from '../methods/pdf';\nimport { loadAWSMethods } from '../methods/aws';\nimport { loadCloudConvertMethods } from '../methods/cloudconvert';\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport * as nodemailer from 'nodemailer';\nimport * as 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';\nimport { loadReportBuilderMethods } from '../methods/report-builder';\nimport { loadSupportMethods } from '../methods/support';\nimport { loadMonitorMethods } from '../methods/monitor';\nimport { EmailHistories } from '../collections/email-history.collection';\nimport { objectIdHexString } from './mongo.manager';\nimport { MonitorFunction } from './monitor.manager';\nimport { S3 } from '@aws-sdk/client-s3';\nimport { Worker } from 'worker_threads';\nimport * as os from 'os';\n\nexport class AWS {\n\tprivate _serverConfig = null;\n\tprivate _s3: 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: this._serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this._serverConfig.AWSSECRETACCESSKEY\n\t\t\t},\n\t\t\tregion: this._serverConfig.AWSREGION\n\t\t});\n\n\t\treturn this._s3;\n\t}\n}\n\nexport interface HelperThreadJob {\n\tjobNumber: number;\n\tmethod: string;\n\tparams: any[];\n\tpromiseResolve: Function;\n\tpromiseReject: Function;\n}\n\nexport interface HelperThreadMessage {\n\tjobNumber: number;\n\tmethod: string;\n\tparams: any[];\n\terror?: boolean;\n\tresult?: any;\n}\n\nexport class HelperThread {\n\t_serverConfig = null;\n\t_helperThread = null;\n\t_jobNumber = 0;\n\t_jobQueue: HelperThreadJob[] = [];\n\n\tconstructor(serverConfig) {\n\t\tthis._serverConfig = serverConfig;\n\t}\n\n\tprivate setupHelperThread() {\n\t\tthis._helperThread = new Worker(path.join(__dirname, '../multi_threaded/helper_thread.js'), <any>{ \n\t\t\tworkerData: { \n\t\t\t\tserverConfig: this._serverConfig\n\t\t\t}\n\t\t});\n\n\t\tthis._helperThread.on('message', (msg: HelperThreadMessage) => {\n\t\t\tlet job = this._jobQueue.filter(a => a.jobNumber === msg.jobNumber)[0];\n\t\t\t\n\t\t\tif (msg.error) {\n\t\t\t\tjob.promiseReject(msg.result);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tjob.promiseResolve(msg.result);\n\t\t\t}\n\n\t\t\tthis._jobQueue.splice(this._jobQueue.map(a => a.jobNumber).indexOf(msg.jobNumber), 1);\n\t\t});\n\n\t\tthis._helperThread.on('exit', code => {\n\t\t\tconsole.error('HELPER TRADER THREAD EXITED!!!!!!!!!!!!!!!!!!', code);\n\t\t\tthis.setupHelperThread();\n\t\t});\n\n\t\tthis._helperThread.on('error', code => {\n\t\t\tconsole.error('HELPER THREAD RECV ERROR !!!!!!!!!!!!!!!!!!', code);\n\t\t});\n\t}\n\n\tpublic sendJobToHelperThread(method: string, ...params: any[]) {\n\t\tif (!this._helperThread) {\n\t\t\tthis.setupHelperThread();\n\t\t}\n\t\t\n\t\tlet promise = new Promise((resolve, reject) => {\n\t\t\tlet jobNumber = this._jobNumber++;\n\n\t\t\tlet job: HelperThreadJob = {\n\t\t\t\tjobNumber: jobNumber,\n\t\t\t\tmethod: method,\n\t\t\t\tparams: params,\n\t\t\t\tpromiseResolve: resolve,\n\t\t\t\tpromiseReject: reject\n\t\t\t};\n\n\t\t\tlet msg: HelperThreadMessage = {\n\t\t\t\tjobNumber: jobNumber,\n\t\t\t\tmethod: method,\n\t\t\t\tparams: params\n\t\t\t};\n\t\t\t\n\t\t\tthis._jobQueue.push(job);\n\t\t\tthis._helperThread.postMessage(msg);\n\t\t});\n\n\t\treturn promise;\n\t}\n}\n\nexport class MethodManager {\n\n\tprivate _mainServer: ResolveIOMainServer;\n\tpublic _methods: MethodModel = {};\n\tprivate _mailer: nodemailer.Transporter;\n\tprivate _aws: AWS;\n\tprivate serverConfig;\n\tprivate clientDir;\n\tprivate _sendQueue = [];\n\tprivate _runningQueue = false;\n\tprivate _helperThread: HelperThread = null;\n\n\tconstructor(mainServer, serverConfig, clientDir) {\n\t\tthis._mainServer = mainServer;\n\t\tthis.serverConfig = serverConfig;\n\t\tthis.clientDir = clientDir;\n\n\t\t// Fixtures\n\t\tloadServerInit();\n\t\tloadServerCronJobs();\n\n\t\t// Methods\n\t\tloadAccountMethods(this);\n\t\tloadAWSMethods(this);\n\t\tloadCloudConvertMethods(this);\n\t\tloadCollectionMethods(this);\n\t\tloadCounterMethods(this);\n\t\tloadLogMethods(this);\n\t\tloadPDFMethods(this);\n\t\tloadCronJobMethods(this);\n\t\tloadFlagMethods(this);\n\t\tloadReportBuilderMethods(this);\n\t\tloadSupportMethods(this);\n\t\tloadMonitorMethods(this);\n\n\t\tthis._aws = new AWS(serverConfig);\n\n\t\tif (mainServer.sesMail) {\n\t\t\tthis._mailer = nodemailer.createTransport(sesTransport({\n\t\t\t\taccessKeyId: this.serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this.serverConfig.AWS_SECRET_ACCESS_KEY,\n\t\t\t\tregion: this.serverConfig.AWS_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\tif (os.cpus().length > 1) {\n\t\t\tthis._helperThread = new HelperThread(this.serverConfig);\n\t\t}\n\n\t\tsetInterval(() => {\n\t\t\tif (!this._runningQueue) {\n\t\t\t\tif (this._sendQueue.length) {\n\t\t\t\t\tthis._runningQueue = true;\n\t\t\t\t\tfor (let i = this._sendQueue.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tlet ws = this._mainServer.getWS(this._sendQueue[i].id_ws);\n\t\t\t\t\t\tif (ws && ws.readyState === ws.OPEN) {\n\t\t\t\t\t\t\tif (ws.bufferedAmount < 20480) {\n\t\t\t\t\t\t\t\tlet sendItem = this._sendQueue.pop();\n\t\t\t\t\t\t\t\tws.send(JSON.stringify(sendItem.data), (error) => {\n\t\t\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\t\t\tconsole.log('Error on WS: ', error);\n\t\t\t\t\t\t\t\t\t\tthis._mainServer.unsubscribeWS(ws);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (sendItem.method !== 'reportBuilderGetResults' && sendItem.method !== 'reportBuilderGetDistinctValue' && sendItem.method !== 'reportBuilderBuildTree' && sendItem.method !== 'generatePDF' && sendItem.method !== 'getWOOfflineData' && sendItem.method !== 'countQuery' && sendItem.method !== 'countWithQuery' && sendItem.method !== 'countCollectionWithQuery' && sendItem.method !== 'find' && sendItem.method !== 'findOne' && sendItem.method !== 'findWithOptions' && sendItem.method !== 'setWSAppVersion' && sendItem.method !== 'uploadFileAndSave' && sendItem.method !== 'getDrivers') {\n\t\t\t\t\t\t\t\t\tLogs.insertOne({\n\t\t\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t\t\ttype: 'client-response',\n\t\t\t\t\t\t\t\t\t\tcollection: '',\n\t\t\t\t\t\t\t\t\t\tid_document: '',\n\t\t\t\t\t\t\t\t\t\tpayload: getBinarySize(JSON.stringify([sendItem.methodData, sendItem.data])) < 200000 ? JSON.stringify([sendItem.methodData, sendItem.data], null, 2) : 'Too Big',\n\t\t\t\t\t\t\t\t\t\tmethod: sendItem.method,\n\t\t\t\t\t\t\t\t\t\tid_user: ws['id_user'] || '',\n\t\t\t\t\t\t\t\t\t\tuser: ws['user'] || '',\n\t\t\t\t\t\t\t\t\t\tmessageId: sendItem.data.messageId,\n\t\t\t\t\t\t\t\t\t\troute: ''\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tMethodResponses.create({\n\t\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\t\tid_user: ws['id_user'] || '',\n\t\t\t\t\t\t\t\t\tmessage_id: sendItem.data.messageId,\n\t\t\t\t\t\t\t\t\tresponse: getBinarySize(JSON.stringify(sendItem.data)) < 200000 ? sendItem.data : {error: 'Too Big'},\n\t\t\t\t\t\t\t\t\tmethod: sendItem.method,\n\t\t\t\t\t\t\t\t\tdate: sendItem.date\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis._sendQueue.splice(i, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._runningQueue = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}, 1);\n\t}\n\n\tpublic getMainServer() {\n\t\treturn this._mainServer;\n\t}\n\n\t// Add methods to private methods object\n\tpublic methods(method: MethodModel) {\n\t\tthis._methods = Object.assign(this._methods, method);\n\t}\n\n\tpublic callMethodCron(method: string, ...methodData: any[]) {\n\t\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'No Method: ' + method);\n\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif ((methodData.length > 1 || methodData[0]) && !this._methods[method].skipValidation) {\n\t\t\tif (!this._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\n\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!this._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\n\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet valObj = {};\n\t\t\t\tlet valKeys = Object.keys(this._methods[method].check._schema);\n\n\t\t\t\tlet rootKeys = valKeys.filter(a => !a.includes('.'));\n\t\t\t\t\n\t\t\t\tfor (let i = 0; i < methodData.length; i++) {\n\t\t\t\t\tvalObj[rootKeys[i]] = methodData[i];\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthis._methods[method].check.validate(valObj);\n\t\t\t\t}\n\t\t\t\tcatch (errors) {\n\t\t\t\t\tif (errors) {\n\t\t\t\t\t\tconsole.error(new Date(), 'Error in Method Check (' + method + ')', errors);\n\n\t\t\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'Match Error On Method ' + method + '\\n\\nData Being Checked\\n' + JSON.stringify(valObj, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\t\t\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tlet monitor = new MonitorFunction('Cron Method', method, '', methodData);\n\t\tlet promise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype, {id_user: '', user: '', id_ws: ''}), ...methodData)\n\t\t.then(res => {\n\t\t\tmonitor.finish();\n\t\t\treturn res;\n\t\t}, methodErrs => {\n\t\t\tmonitor.finish();\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'Error Detected During Method ' + method + ' - (callMethodCron)\\n\\nData \\n' + JSON.stringify(methodData, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(methodErrs, null, 2));\n\t\t\treturn methodErrs;\n\t\t});\n\n\t\treturn promise;\n\t}\n\n\t// Call/run method (Emit on Socket)\n\tpublic callMethod(id_methodLatency: string, ws: WebSocket, messageDate: Date, messageId: number, method: string, ...methodData: any[]) {\n\t\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'No Method: ' + method);\n\t\t\t\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: true,\n\t\t\t\tdata: 'Internal Error'\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tif (id_methodLatency) {\n\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ((methodData.length > 1 || methodData[0]) && !this._methods[method].skipValidation) {\n\t\t\tif (!this._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\n\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\t\t\t\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t};\n\t\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t\t}\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!this._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\n\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\t\t\t\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t};\n\n\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t\t}\n\t\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet valObj = {};\n\t\t\t\tlet valKeys = Object.keys(this._methods[method].check._schema);\n\n\t\t\t\tlet rootKeys = valKeys.filter(a => !a.includes('.'));\n\t\t\t\t\n\t\t\t\tfor (let i = 0; i < methodData.length; i++) {\n\t\t\t\t\tvalObj[rootKeys[i]] = methodData[i];\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthis._methods[method].check.validate(valObj);\n\t\t\t\t}\n\t\t\t\tcatch (errors) {\n\t\t\t\t\tif (errors) {\n\t\t\t\t\t\tconsole.error(new Date(), 'Error in Method Check (' + method + ')', errors);\n\n\t\t\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'Match Error On Method ' + method + '\\n\\nData Being Checked\\n' + JSON.stringify(valObj, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\t\t\thasError: true,\n\t\t\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t\t\t};\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t\t\t\t}\n\t\t\t\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tlet monitor = new MonitorFunction('Method', method, ws['user'], methodData);\n\t\tthis._methods[method].function.call(Object.assign({}, this, MethodManager.prototype, {id_user: ws['id_user'], user: ws['user'], id_ws: ws['id_socket']}), ...methodData)\n\t\t.then(async (res) => {\n\t\t\tmonitor.finish();\n\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: false,\n\t\t\t\tdata: res\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tif (id_methodLatency) {\n\t\t\t\tlet latency = await LogMethodLatencies.findById(id_methodLatency);\n\n\t\t\t\tif (latency) {\n\t\t\t\t\tLogMethodLatencies.updateOne({_id: id_methodLatency}, {$set: {date_end: new Date(), latency_ms: moment().diff(moment(latency.date_start), 'milliseconds', true)}});\n\t\t\t\t}\n\t\t\t}\n\t\t}, err => {\n\t\t\tmonitor.finish();\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: true,\n\t\t\t\tdata: err\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tif (id_methodLatency) {\n\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t}\n\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'Error Detected During Method ' + method + ' - (callMethod)\\n\\nData \\n' + JSON.stringify(methodData, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(err, null, 2));\n\t\t});\n\t}\n\n\t// Call/run method internal (No Emit on Socket)\n\tpublic callMethodInternal(method, ...methodData: any[]): Promise<any> {\n\t\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\t\t\treturn null;\n\t\t}\n\n\t\tif ((methodData.length > 1 || (methodData[0] && typeof(methodData[0]) !== 'function')) && !this._methods[method].skipValidation) {\n\t\t\tif (!this._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\telse if (!this._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\tif (method !== 'insertSubscriptionLog' && method !== 'getDataURIfromURL') {\n\t\t\tLogs.insertOne({\n\t\t\t\t_id: objectIdHexString(),\n\t\t\t\ttype: 'callMethodInternal',\n\t\t\t\tcollection: '',\n\t\t\t\tid_document: '',\n\t\t\t\tpayload: getBinarySize(JSON.stringify([methodData])) < 200000 ? JSON.stringify([methodData], null, 2) : 'Too Big',\n\t\t\t\tmethod: method,\n\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\tuser: this['user'] || '',\n\t\t\t\tmessageId: 0,\n\t\t\t\troute: ''\n\t\t\t});\n\t\t}\n\n\t\tlet monitor = new MonitorFunction('Internal Method', method, this['id_user'] || '', methodData);\n\t\tlet promise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype), ...methodData)\n\t\t.then(res => {\n\t\t\tmonitor.finish();\n\t\t\treturn res;\n\t\t}, methodErrs => {\n\t\t\tmonitor.finish();\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'Error Detected During Method ' + method + ' - (callMethodInternal)\\n\\nData \\n' + JSON.stringify(methodData, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(methodErrs, null, 2));\n\t\t\treturn methodErrs;\n\t\t});\n\n\t\tif (methodData[methodData.length - 1] && typeof(methodData[methodData.length - 1]) === 'function') {\n\t\t\tpromise.then(res => methodData[methodData.length - 1](null, res), err => methodData[methodData.length - 1](err, null));\n\t\t}\n\t\t\n\t\treturn promise;\n\t}\n\n\tprivate sendWS(ws: WebSocket, messageDate: Date, method: string, methodData: any[], data: ServerResponseModel) {\n\t\tthis._sendQueue.splice(0, 0, {\n\t\t\tid_ws: ws['id_socket'],\n\t\t\tmethod: method,\n\t\t\tmethodData: methodData,\n\t\t\tdata: data,\n\t\t\tdate: messageDate\n\t\t});\n\t}\n\n\tpublic sendEmail(sendTo: string, subject: string, text?: string, html?: string, attachments?: any[], send_from?: string) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif ((this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) || this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/www\\.dev\\./)) || this.serverConfig['ROOT_URL'] === 'http://localhost:4200') && !sendTo.match(new RegExp(/\\@resolveio\\.com/))) {\n\t\t\t\tsendTo = 'dev@resolveio.com';\n\t\t\t}\n\n\t\t\tif (sendTo) {\n\t\t\t\tif (this.serverConfig['ROOT_URL'] !== 'http://localhost:4200') {\n\t\t\t\t\tthis._mailer.sendMail({\n\t\t\t\t\t\treplyTo: undefined,\n\t\t\t\t\t\tfrom: send_from ? send_from : this.serverConfig.MAIL_FROM,\n\t\t\t\t\t\tto: sendTo,\n\t\t\t\t\t\tsubject: (this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) || this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/www\\.dev\\./)) ? '(DEV SERVER) - ' : '') + subject,\n\t\t\t\t\t\ttext: text,\n\t\t\t\t\t\thtml: html,\n\t\t\t\t\t\tattachments: attachments\n\t\t\t\t\t}, (err, info) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\tEmailHistories.create({\n\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\t\t\t\t\tuser: this['user'] || '',\n\t\t\t\t\t\t\t\temail: sendTo,\n\t\t\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\t\t\tverified: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tEmailHistories.create({\n\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\t\t\t\t\tuser: this['user'] || '',\n\t\t\t\t\t\t\t\temail: sendTo,\n\t\t\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\t\t\tverified: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconsole.log('Send email', sendTo, subject, text, html, attachments, send_from);\n\t\t\t\t}\n\n\t\t\t\tresolve(true);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic getAWS(): AWS {\n\t\treturn this._aws;\n\t}\n\n\tpublic readFile(fileName) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/' + fileName)))) {\n\t\t\t\tfs.readFile(path.join(__dirname, ('../private/' + fileName)), 'utf-8', (err, res) => { \n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(this.clientDir, ('./private/' + fileName)), 'utf-8', (err, res) => { \n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic readImage(fileName) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/' + fileName)))) {\n\t\t\t\tfs.readFile(path.join(__dirname, ('../private/' + fileName)), 'base64', (err, res) => { \n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(this.clientDir, ('./private/' + fileName)), 'base64', (err, res) => { \n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../src/managers/method.manager.ts"],"names":[],"mappings":"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","file":"method.manager.js","sourcesContent":["import { ServerResponseModel } from '../models/server-response.model';\nimport { loadCollectionMethods } from '../methods/collections';\nimport { MethodModel } from '../models/method.model';\nimport { loadLogMethods } from '../methods/logs';\nimport { loadCounterMethods } from '../methods/counters';\nimport { loadPDFMethods } from '../methods/pdf';\nimport { loadAWSMethods } from '../methods/aws';\nimport { loadCloudConvertMethods } from '../methods/cloudconvert';\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport * as nodemailer from 'nodemailer';\nimport * 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';\nimport { loadReportBuilderMethods } from '../methods/report-builder';\nimport { loadSupportMethods } from '../methods/support';\nimport { loadMonitorMethods } from '../methods/monitor';\nimport { EmailHistories } from '../collections/email-history.collection';\nimport { objectIdHexString } from './mongo.manager';\nimport { MonitorFunction } from './monitor.manager';\nimport { S3 } from '@aws-sdk/client-s3';\nimport { Worker } from 'worker_threads';\nimport * as os from 'os';\n\nexport class AWS {\n\tprivate _serverConfig = null;\n\tprivate _s3: 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: this._serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this._serverConfig.AWSSECRETACCESSKEY\n\t\t\t},\n\t\t\tregion: this._serverConfig.AWSREGION\n\t\t});\n\n\t\treturn this._s3;\n\t}\n}\n\nexport interface HelperThreadJob {\n\tjobNumber: number;\n\tmethod: string;\n\tparams: any[];\n\tpromiseResolve: Function;\n\tpromiseReject: Function;\n}\n\nexport interface HelperThreadMessage {\n\tjobNumber: number;\n\tmethod: string;\n\tparams: any[];\n\terror?: boolean;\n\tresult?: any;\n}\n\nexport class HelperThread {\n\t_serverConfig = null;\n\t_helperThread = null;\n\t_jobNumber = 0;\n\t_jobQueue: HelperThreadJob[] = [];\n\n\tconstructor(serverConfig) {\n\t\tthis._serverConfig = serverConfig;\n\t}\n\n\tprivate setupHelperThread() {\n\t\tthis._helperThread = new Worker(path.join(__dirname, '../multi_threaded/helper_thread.js'), <any>{ \n\t\t\tworkerData: { \n\t\t\t\tserverConfig: this._serverConfig\n\t\t\t}\n\t\t});\n\n\t\tthis._helperThread.on('message', (msg: HelperThreadMessage) => {\n\t\t\tlet job = this._jobQueue.filter(a => a.jobNumber === msg.jobNumber)[0];\n\t\t\t\n\t\t\tif (msg.error) {\n\t\t\t\tjob.promiseReject(msg.result);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tjob.promiseResolve(msg.result);\n\t\t\t}\n\n\t\t\tthis._jobQueue.splice(this._jobQueue.map(a => a.jobNumber).indexOf(msg.jobNumber), 1);\n\t\t});\n\n\t\tthis._helperThread.on('exit', code => {\n\t\t\tconsole.error('HELPER TRADER THREAD EXITED!!!!!!!!!!!!!!!!!!', code);\n\t\t\tthis.setupHelperThread();\n\t\t});\n\n\t\tthis._helperThread.on('error', code => {\n\t\t\tconsole.error('HELPER THREAD RECV ERROR !!!!!!!!!!!!!!!!!!', code);\n\t\t});\n\t}\n\n\tpublic sendJobToHelperThread(method: string, ...params: any[]) {\n\t\tif (!this._helperThread) {\n\t\t\tthis.setupHelperThread();\n\t\t}\n\t\t\n\t\tlet promise = new Promise((resolve, reject) => {\n\t\t\tlet jobNumber = this._jobNumber++;\n\n\t\t\tlet job: HelperThreadJob = {\n\t\t\t\tjobNumber: jobNumber,\n\t\t\t\tmethod: method,\n\t\t\t\tparams: params,\n\t\t\t\tpromiseResolve: resolve,\n\t\t\t\tpromiseReject: reject\n\t\t\t};\n\n\t\t\tlet msg: HelperThreadMessage = {\n\t\t\t\tjobNumber: jobNumber,\n\t\t\t\tmethod: method,\n\t\t\t\tparams: params\n\t\t\t};\n\t\t\t\n\t\t\tthis._jobQueue.push(job);\n\t\t\tthis._helperThread.postMessage(msg);\n\t\t});\n\n\t\treturn promise;\n\t}\n}\n\nexport class MethodManager {\n\n\tprivate _mainServer: ResolveIOMainServer;\n\tpublic _methods: MethodModel = {};\n\tprivate _mailer: nodemailer.Transporter;\n\tprivate _aws: AWS;\n\tprivate serverConfig;\n\tprivate clientDir;\n\tprivate _sendQueue = [];\n\tprivate _runningQueue = false;\n\tprivate _helperThread: HelperThread = null;\n\n\tconstructor(mainServer, serverConfig, clientDir) {\n\t\tthis._mainServer = mainServer;\n\t\tthis.serverConfig = serverConfig;\n\t\tthis.clientDir = clientDir;\n\n\t\t// Fixtures\n\t\tloadServerInit();\n\t\tloadServerCronJobs();\n\n\t\t// Methods\n\t\tloadAccountMethods(this);\n\t\tloadAWSMethods(this);\n\t\tloadCloudConvertMethods(this);\n\t\tloadCollectionMethods(this);\n\t\tloadCounterMethods(this);\n\t\tloadLogMethods(this);\n\t\tloadPDFMethods(this);\n\t\tloadCronJobMethods(this);\n\t\tloadFlagMethods(this);\n\t\tloadReportBuilderMethods(this);\n\t\tloadSupportMethods(this);\n\t\tloadMonitorMethods(this);\n\n\t\tthis._aws = new AWS(serverConfig);\n\n\t\tif (mainServer.sesMail) {\n\t\t\tthis._mailer = nodemailer.createTransport(sesTransport({\n\t\t\t\taccessKeyId: this.serverConfig.AWSACCESSKEYID,\n\t\t\t\tsecretAccessKey: this.serverConfig.AWS_SECRET_ACCESS_KEY,\n\t\t\t\tregion: this.serverConfig.AWS_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\tif (os.cpus().length > 1) {\n\t\t\tthis._helperThread = new HelperThread(this.serverConfig);\n\t\t}\n\n\t\tsetInterval(() => {\n\t\t\tif (!this._runningQueue) {\n\t\t\t\tif (this._sendQueue.length) {\n\t\t\t\t\tthis._runningQueue = true;\n\t\t\t\t\tfor (let i = this._sendQueue.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tlet ws = this._mainServer.getWS(this._sendQueue[i].id_ws);\n\t\t\t\t\t\tif (ws && ws.readyState === ws.OPEN) {\n\t\t\t\t\t\t\tif (ws.bufferedAmount < 20480) {\n\t\t\t\t\t\t\t\tlet sendItem = this._sendQueue.pop();\n\t\t\t\t\t\t\t\tws.send(JSON.stringify(sendItem.data), (error) => {\n\t\t\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\t\t\tconsole.log('Error on WS: ', error);\n\t\t\t\t\t\t\t\t\t\tthis._mainServer.unsubscribeWS(ws);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (sendItem.method !== 'reportBuilderGetResults' && sendItem.method !== 'reportBuilderGetDistinctValue' && sendItem.method !== 'reportBuilderBuildTree' && sendItem.method !== 'generatePDF' && sendItem.method !== 'getWOOfflineData' && sendItem.method !== 'countQuery' && sendItem.method !== 'countWithQuery' && sendItem.method !== 'countCollectionWithQuery' && sendItem.method !== 'find' && sendItem.method !== 'findOne' && sendItem.method !== 'findWithOptions' && sendItem.method !== 'setWSAppVersion' && sendItem.method !== 'uploadFileAndSave' && sendItem.method !== 'getDrivers') {\n\t\t\t\t\t\t\t\t\tLogs.insertOne({\n\t\t\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t\t\ttype: 'client-response',\n\t\t\t\t\t\t\t\t\t\tcollection: '',\n\t\t\t\t\t\t\t\t\t\tid_document: '',\n\t\t\t\t\t\t\t\t\t\tpayload: getBinarySize(JSON.stringify([sendItem.methodData, sendItem.data])) < 200000 ? JSON.stringify([sendItem.methodData, sendItem.data], null, 2) : 'Too Big',\n\t\t\t\t\t\t\t\t\t\tmethod: sendItem.method,\n\t\t\t\t\t\t\t\t\t\tid_user: ws['id_user'] || '',\n\t\t\t\t\t\t\t\t\t\tuser: ws['user'] || '',\n\t\t\t\t\t\t\t\t\t\tmessageId: sendItem.data.messageId,\n\t\t\t\t\t\t\t\t\t\troute: ''\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tMethodResponses.create({\n\t\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\t\tid_user: ws['id_user'] || '',\n\t\t\t\t\t\t\t\t\tmessage_id: sendItem.data.messageId,\n\t\t\t\t\t\t\t\t\tresponse: getBinarySize(JSON.stringify(sendItem.data)) < 200000 ? sendItem.data : {error: 'Too Big'},\n\t\t\t\t\t\t\t\t\tmethod: sendItem.method,\n\t\t\t\t\t\t\t\t\tdate: sendItem.date\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis._sendQueue.splice(i, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._runningQueue = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}, 1);\n\t}\n\n\tpublic getMainServer() {\n\t\treturn this._mainServer;\n\t}\n\n\t// Add methods to private methods object\n\tpublic methods(method: MethodModel) {\n\t\tthis._methods = Object.assign(this._methods, method);\n\t}\n\n\tpublic callMethodCron(method: string, ...methodData: any[]) {\n\t\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'No Method: ' + method);\n\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif ((methodData.length > 1 || methodData[0]) && !this._methods[method].skipValidation) {\n\t\t\tif (!this._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\n\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!this._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\n\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet valObj = {};\n\t\t\t\tlet valKeys = Object.keys(this._methods[method].check._schema);\n\n\t\t\t\tlet rootKeys = valKeys.filter(a => !a.includes('.'));\n\t\t\t\t\n\t\t\t\tfor (let i = 0; i < methodData.length; i++) {\n\t\t\t\t\tvalObj[rootKeys[i]] = methodData[i];\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthis._methods[method].check.validate(valObj);\n\t\t\t\t}\n\t\t\t\tcatch (errors) {\n\t\t\t\t\tif (errors) {\n\t\t\t\t\t\tconsole.error(new Date(), 'Error in Method Check (' + method + ')', errors);\n\n\t\t\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'Match Error On Method ' + method + '\\n\\nData Being Checked\\n' + JSON.stringify(valObj, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\t\t\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tlet monitor = new MonitorFunction('Cron Method', method, '', methodData);\n\t\tlet promise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype, {id_user: '', user: '', id_ws: ''}), ...methodData)\n\t\t.then(res => {\n\t\t\tmonitor.finish();\n\t\t\treturn res;\n\t\t}, methodErrs => {\n\t\t\tmonitor.finish();\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'Error Detected During Method ' + method + ' - (callMethodCron)\\n\\nData \\n' + JSON.stringify(methodData, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(methodErrs, null, 2));\n\t\t\treturn methodErrs;\n\t\t});\n\n\t\treturn promise;\n\t}\n\n\t// Call/run method (Emit on Socket)\n\tpublic callMethod(id_methodLatency: string, ws: WebSocket, messageDate: Date, messageId: number, method: string, ...methodData: any[]) {\n\t\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'No Method: ' + method);\n\t\t\t\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: true,\n\t\t\t\tdata: 'Internal Error'\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tif (id_methodLatency) {\n\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ((methodData.length > 1 || methodData[0]) && !this._methods[method].skipValidation) {\n\t\t\tif (!this._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\n\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\t\t\t\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t};\n\t\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t\t}\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse if (!this._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\n\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'No Check Function For Method ' + method);\n\t\t\t\t\n\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\thasError: true,\n\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t};\n\n\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t\t}\n\t\n\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet valObj = {};\n\t\t\t\tlet valKeys = Object.keys(this._methods[method].check._schema);\n\n\t\t\t\tlet rootKeys = valKeys.filter(a => !a.includes('.'));\n\t\t\t\t\n\t\t\t\tfor (let i = 0; i < methodData.length; i++) {\n\t\t\t\t\tvalObj[rootKeys[i]] = methodData[i];\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthis._methods[method].check.validate(valObj);\n\t\t\t\t}\n\t\t\t\tcatch (errors) {\n\t\t\t\t\tif (errors) {\n\t\t\t\t\t\tconsole.error(new Date(), 'Error in Method Check (' + method + ')', errors);\n\n\t\t\t\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'Match Error On Method ' + method + '\\n\\nData Being Checked\\n' + JSON.stringify(valObj, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\t\t\thasError: true,\n\t\t\t\t\t\t\tdata: 'Internal Error'\n\t\t\t\t\t\t};\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\t\t\t\tif (id_methodLatency) {\n\t\t\t\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t\t\t\t}\n\t\t\t\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tlet monitor = new MonitorFunction('Method', method, ws['user'], methodData);\n\t\tthis._methods[method].function.call(Object.assign({}, this, MethodManager.prototype, {id_user: ws['id_user'], user: ws['user'], id_ws: ws['id_socket']}), ...methodData)\n\t\t.then(async (res) => {\n\t\t\tmonitor.finish();\n\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: false,\n\t\t\t\tdata: res\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tif (id_methodLatency) {\n\t\t\t\tlet latency = await LogMethodLatencies.findById(id_methodLatency);\n\n\t\t\t\tif (latency) {\n\t\t\t\t\tLogMethodLatencies.updateOne({_id: id_methodLatency}, {$set: {date_end: new Date(), latency_ms: moment().diff(moment(latency.date_start), 'milliseconds', true)}});\n\t\t\t\t}\n\t\t\t}\n\t\t}, err => {\n\t\t\tmonitor.finish();\n\t\t\tlet serverRes: ServerResponseModel = {\n\t\t\t\tmessageId: messageId,\n\t\t\t\thasError: true,\n\t\t\t\tdata: err\n\t\t\t};\n\n\t\t\tthis.sendWS(ws, messageDate, method, methodData, serverRes);\n\n\t\t\tif (id_methodLatency) {\n\t\t\t\tLogMethodLatencies.deleteOne({_id: id_methodLatency});\n\t\t\t}\n\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'Error Detected During Method ' + method + ' - (callMethod)\\n\\nData \\n' + JSON.stringify(methodData, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(err, null, 2));\n\t\t});\n\t}\n\n\t// Call/run method internal (No Emit on Socket)\n\tpublic callMethodInternal(method, ...methodData: any[]): Promise<any> {\n\t\tif (!this._methods[method]) {\n\t\t\tconsole.log('No Method: ' + method);\n\t\t\treturn null;\n\t\t}\n\n\t\tif ((methodData.length > 1 || (methodData[0] && typeof(methodData[0]) !== 'function')) && !this._methods[method].skipValidation) {\n\t\t\tif (!this._methods[method].check) {\n\t\t\t\tconsole.error(new Date(), 'No Check Function For Method ' + method);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\telse if (!this._methods[method].check._schema) {\n\t\t\t\tconsole.error(new Date(), 'No Check Schema For Method ' + method);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\tif (method !== 'insertSubscriptionLog' && method !== 'getDataURIfromURL') {\n\t\t\tLogs.insertOne({\n\t\t\t\t_id: objectIdHexString(),\n\t\t\t\ttype: 'callMethodInternal',\n\t\t\t\tcollection: '',\n\t\t\t\tid_document: '',\n\t\t\t\tpayload: getBinarySize(JSON.stringify([methodData])) < 200000 ? JSON.stringify([methodData], null, 2) : 'Too Big',\n\t\t\t\tmethod: method,\n\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\tuser: this['user'] || '',\n\t\t\t\tmessageId: 0,\n\t\t\t\troute: ''\n\t\t\t});\n\t\t}\n\n\t\tlet functionMethodData = typeof(methodData[methodData.length - 1]) === 'function' ? methodData.slice(0, -1) : methodData;\n\n\t\tlet monitor = new MonitorFunction('Internal Method', method, this['id_user'] || '', functionMethodData);\n\t\tlet promise = this._methods[method].function.call(Object.assign({}, this, MethodManager.prototype), ...functionMethodData)\n\t\t.then(res => {\n\t\t\tmonitor.finish();\n\t\t\treturn res;\n\t\t}, methodErrs => {\n\t\t\tmonitor.finish();\n\t\t\tthis.sendEmail('dev@resolveio.com', 'SERVER - Error Detected - ' + this.serverConfig['CLIENT_NAME'], 'Error Detected During Method ' + method + ' - (callMethodInternal)\\n\\nData \\n' + JSON.stringify(methodData, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(methodErrs, null, 2));\n\t\t\treturn methodErrs;\n\t\t});\n\n\t\tif (methodData[methodData.length - 1] && typeof(methodData[methodData.length - 1]) === 'function') {\n\t\t\tpromise.then(res => methodData[methodData.length - 1](null, res), err => methodData[methodData.length - 1](err, null));\n\t\t}\n\t\t\n\t\treturn promise;\n\t}\n\n\tprivate sendWS(ws: WebSocket, messageDate: Date, method: string, methodData: any[], data: ServerResponseModel) {\n\t\tthis._sendQueue.splice(0, 0, {\n\t\t\tid_ws: ws['id_socket'],\n\t\t\tmethod: method,\n\t\t\tmethodData: methodData,\n\t\t\tdata: data,\n\t\t\tdate: messageDate\n\t\t});\n\t}\n\n\tpublic sendEmail(sendTo: string, subject: string, text?: string, html?: string, attachments?: any[], send_from?: string) {\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tif ((this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) || this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/www\\.dev\\./)) || this.serverConfig['ROOT_URL'] === 'http://localhost:4200') && !sendTo.match(new RegExp(/\\@resolveio\\.com/))) {\n\t\t\t\tsendTo = 'dev@resolveio.com';\n\t\t\t}\n\n\t\t\tif (sendTo) {\n\t\t\t\tif (this.serverConfig['ROOT_URL'] !== 'http://localhost:4200') {\n\t\t\t\t\tthis._mailer.sendMail({\n\t\t\t\t\t\treplyTo: undefined,\n\t\t\t\t\t\tfrom: send_from ? send_from : this.serverConfig.MAIL_FROM,\n\t\t\t\t\t\tto: sendTo,\n\t\t\t\t\t\tsubject: (this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/dev\\./)) || this.serverConfig['ROOT_URL'].match(new RegExp(/https\\:\\/\\/www\\.dev\\./)) ? '(DEV SERVER) - ' : '') + subject,\n\t\t\t\t\t\ttext: text,\n\t\t\t\t\t\thtml: html,\n\t\t\t\t\t\tattachments: attachments\n\t\t\t\t\t}, (err, info) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\tconsole.log(err);\n\n\t\t\t\t\t\t\tEmailHistories.create({\n\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\t\t\t\t\tuser: this['user'] || '',\n\t\t\t\t\t\t\t\temail: sendTo,\n\t\t\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\t\t\tverified: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tEmailHistories.create({\n\t\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\t\tid_user: this['id_user'] || '',\n\t\t\t\t\t\t\t\tuser: this['user'] || '',\n\t\t\t\t\t\t\t\temail: sendTo,\n\t\t\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\t\t\tverified: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconsole.log('Send email', sendTo, subject, text, html, attachments, send_from);\n\t\t\t\t}\n\n\t\t\t\tresolve(true);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic getAWS(): AWS {\n\t\treturn this._aws;\n\t}\n\n\tpublic readFile(fileName) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/' + fileName)))) {\n\t\t\t\tfs.readFile(path.join(__dirname, ('../private/' + fileName)), 'utf-8', (err, res) => { \n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(this.clientDir, ('./private/' + fileName)), 'utf-8', (err, res) => { \n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic readImage(fileName) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/' + fileName)))) {\n\t\t\t\tfs.readFile(path.join(__dirname, ('../private/' + fileName)), 'base64', (err, res) => { \n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/' + fileName)))) {\n\t\t\t\t\tfs.readFile(path.join(this.clientDir, ('./private/' + fileName)), 'base64', (err, res) => { \n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}"]}
|
package/methods/pdf.js
CHANGED
|
@@ -342,35 +342,46 @@ function loadPDFMethods(methodManager) {
|
|
|
342
342
|
promises_1.push(_this.callMethodInternal('getDataURIfromURL', signedUrl));
|
|
343
343
|
});
|
|
344
344
|
Promise.all(promises_1).then(function (fileDatas) { return __awaiter(_this, void 0, void 0, function () {
|
|
345
|
-
var
|
|
345
|
+
var mergedPdf_1, i, fileData, pdf, copiedPages, pdf, img, page, imgDim, copiedPages, pdf, img, page, imgDim, copiedPages, b64PDF;
|
|
346
|
+
var _this = this;
|
|
346
347
|
return __generator(this, function (_a) {
|
|
347
348
|
switch (_a.label) {
|
|
348
|
-
case 0:
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
349
|
+
case 0:
|
|
350
|
+
if (!this._helperThread) return [3 /*break*/, 1];
|
|
351
|
+
this._helperThread.sendJobToHelperThread('mergePDFResolve', fileDatas).then(function (res) {
|
|
352
|
+
_this.callMethodInternal('uploadFileAndSave', fileName, res, (4 * Math.ceil(res.length / 3)), -1, fileType, false, function (errUp, resUp) {
|
|
353
|
+
resolve(resUp);
|
|
354
|
+
});
|
|
355
|
+
}, function (err) {
|
|
356
|
+
reject(err);
|
|
357
|
+
});
|
|
358
|
+
return [3 /*break*/, 18];
|
|
359
|
+
case 1: return [4 /*yield*/, pdf_lib_1.PDFDocument.create()];
|
|
353
360
|
case 2:
|
|
354
|
-
|
|
361
|
+
mergedPdf_1 = _a.sent();
|
|
362
|
+
i = 0;
|
|
363
|
+
_a.label = 3;
|
|
364
|
+
case 3:
|
|
365
|
+
if (!(i < fileDatas.length)) return [3 /*break*/, 16];
|
|
355
366
|
fileData = fileDatas[i];
|
|
356
|
-
if (!fileData.startsWith('data:application/pdf;base64,')) return [3 /*break*/,
|
|
367
|
+
if (!fileData.startsWith('data:application/pdf;base64,')) return [3 /*break*/, 6];
|
|
357
368
|
return [4 /*yield*/, pdf_lib_1.PDFDocument.load(fileData)];
|
|
358
|
-
case 3:
|
|
359
|
-
pdf = _a.sent();
|
|
360
|
-
return [4 /*yield*/, mergedPdf.copyPages(pdf, pdf.getPageIndices())];
|
|
361
369
|
case 4:
|
|
370
|
+
pdf = _a.sent();
|
|
371
|
+
return [4 /*yield*/, mergedPdf_1.copyPages(pdf, pdf.getPageIndices())];
|
|
372
|
+
case 5:
|
|
362
373
|
copiedPages = _a.sent();
|
|
363
374
|
copiedPages.forEach(function (page) {
|
|
364
|
-
|
|
375
|
+
mergedPdf_1.addPage(page);
|
|
365
376
|
});
|
|
366
|
-
return [3 /*break*/,
|
|
367
|
-
case 5:
|
|
368
|
-
if (!(fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/'))) return [3 /*break*/, 9];
|
|
369
|
-
return [4 /*yield*/, pdf_lib_1.PDFDocument.create()];
|
|
377
|
+
return [3 /*break*/, 15];
|
|
370
378
|
case 6:
|
|
379
|
+
if (!(fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/'))) return [3 /*break*/, 10];
|
|
380
|
+
return [4 /*yield*/, pdf_lib_1.PDFDocument.create()];
|
|
381
|
+
case 7:
|
|
371
382
|
pdf = _a.sent();
|
|
372
383
|
return [4 /*yield*/, pdf.embedJpg(fileData)];
|
|
373
|
-
case
|
|
384
|
+
case 8:
|
|
374
385
|
img = _a.sent();
|
|
375
386
|
page = pdf.addPage();
|
|
376
387
|
imgDim = img.size();
|
|
@@ -384,20 +395,20 @@ function loadPDFMethods(methodManager) {
|
|
|
384
395
|
width: imgDim.width,
|
|
385
396
|
height: imgDim.height,
|
|
386
397
|
});
|
|
387
|
-
return [4 /*yield*/,
|
|
388
|
-
case
|
|
398
|
+
return [4 /*yield*/, mergedPdf_1.copyPages(pdf, pdf.getPageIndices())];
|
|
399
|
+
case 9:
|
|
389
400
|
copiedPages = _a.sent();
|
|
390
401
|
copiedPages.forEach(function (page) {
|
|
391
|
-
|
|
402
|
+
mergedPdf_1.addPage(page);
|
|
392
403
|
});
|
|
393
|
-
return [3 /*break*/,
|
|
394
|
-
case 9:
|
|
395
|
-
if (!fileData.startsWith('data:image/png;base64,iVBOR')) return [3 /*break*/, 13];
|
|
396
|
-
return [4 /*yield*/, pdf_lib_1.PDFDocument.create()];
|
|
404
|
+
return [3 /*break*/, 15];
|
|
397
405
|
case 10:
|
|
406
|
+
if (!fileData.startsWith('data:image/png;base64,iVBOR')) return [3 /*break*/, 14];
|
|
407
|
+
return [4 /*yield*/, pdf_lib_1.PDFDocument.create()];
|
|
408
|
+
case 11:
|
|
398
409
|
pdf = _a.sent();
|
|
399
410
|
return [4 /*yield*/, pdf.embedPng(fileData)];
|
|
400
|
-
case
|
|
411
|
+
case 12:
|
|
401
412
|
img = _a.sent();
|
|
402
413
|
page = pdf.addPage();
|
|
403
414
|
imgDim = img.size();
|
|
@@ -411,26 +422,27 @@ function loadPDFMethods(methodManager) {
|
|
|
411
422
|
width: imgDim.width,
|
|
412
423
|
height: imgDim.height,
|
|
413
424
|
});
|
|
414
|
-
return [4 /*yield*/,
|
|
415
|
-
case
|
|
425
|
+
return [4 /*yield*/, mergedPdf_1.copyPages(pdf, pdf.getPageIndices())];
|
|
426
|
+
case 13:
|
|
416
427
|
copiedPages = _a.sent();
|
|
417
428
|
copiedPages.forEach(function (page) {
|
|
418
|
-
|
|
429
|
+
mergedPdf_1.addPage(page);
|
|
419
430
|
});
|
|
420
|
-
return [3 /*break*/,
|
|
421
|
-
case 13:
|
|
422
|
-
console.log('Error - unsupported!!', fileData.slice(0, 60));
|
|
423
|
-
_a.label = 14;
|
|
431
|
+
return [3 /*break*/, 15];
|
|
424
432
|
case 14:
|
|
433
|
+
console.log('Error - unsupported!!', fileData.slice(0, 60));
|
|
434
|
+
_a.label = 15;
|
|
435
|
+
case 15:
|
|
425
436
|
i++;
|
|
426
|
-
return [3 /*break*/,
|
|
427
|
-
case
|
|
428
|
-
case
|
|
437
|
+
return [3 /*break*/, 3];
|
|
438
|
+
case 16: return [4 /*yield*/, mergedPdf_1.saveAsBase64({ dataUri: true })];
|
|
439
|
+
case 17:
|
|
429
440
|
b64PDF = _a.sent();
|
|
430
441
|
this.callMethodInternal('uploadFileAndSave', fileName, b64PDF, (4 * Math.ceil(b64PDF.length / 3)), -1, fileType, false, function (errUp, resUp) {
|
|
431
442
|
resolve(resUp);
|
|
432
443
|
});
|
|
433
|
-
|
|
444
|
+
_a.label = 18;
|
|
445
|
+
case 18: return [2 /*return*/];
|
|
434
446
|
}
|
|
435
447
|
});
|
|
436
448
|
}); });
|
package/methods/pdf.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/methods/pdf.ts"],"names":[],"mappings":"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","file":"pdf.js","sourcesContent":["let fs = require('fs');\nimport { FileModel } from '../models/file.model';\nimport { HelperThread, MethodManager } from '../managers/method.manager';\nimport * as bent from 'bent';\nimport SimpleSchema from 'simpl-schema';\nimport { Files } from '../collections/file.collection';\nimport { objectIdHexString } from '../managers/mongo.manager';\n\nimport { PDFDocument } from 'pdf-lib';\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 = '8px', upload = false, uploadFileOrder = -1, uploadFileType = '') {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (this._helperThread) {\n\t\t\t\t\t\t(<HelperThread>this._helperThread).sendJobToHelperThread('generatePDF', html, fileName, orientation, fontSize).then((res: string) => {\n\t\t\t\t\t\t\tif (!upload) {\n\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tlet fileData = res;\n\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\tif (err) {\n\t\t\t\t\t\t\t\t\t\treject(err);\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\tresolve(res);\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}, err => {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet phantom = require('phantom');\n\t\t\t\t\t\tlet phInstance = null;\n\t\t\t\t\t\t\n\t\t\t\t\t\tphantom.create().then(instance => {\n\t\t\t\t\t\t\tphInstance = instance;\n\t\t\t\t\t\t\treturn instance.createPage();\n\t\t\t\t\t\t}).then(page => {\n\t\t\t\t\t\t\tlet requestsArray = [];\n\n\t\t\t\t\t\t\tpage.on('onResourceRequested', (requestData, networkRequest) => {\n\t\t\t\t\t\t\t\trequestsArray.push(requestData.id);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tpage.on('onResourceReceived', (response) => {\n\t\t\t\t\t\t\t\tif (response.stage === 'end') {\n\t\t\t\t\t\t\t\t\tlet index = requestsArray.indexOf(response.id);\n\t\t\t\t\t\t\t\t\trequestsArray.splice(index, 1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tpage.property('paperSize', {\n\t\t\t\t\t\t\t\tformat: 'letter',\n\t\t\t\t\t\t\t\tmargin: '1cm',\n\t\t\t\t\t\t\t\torientation: orientation,\n\t\t\t\t\t\t\t\tfooter: {\n\t\t\t\t\t\t\t\t\theight: '1cm',\n\t\t\t\t\t\t\t\t\tcontents: phInstance.callback((pageNum, numPages) => {\n\t\t\t\t\t\t\t\t\t\treturn '<span style=\\'float:right; font-size: 12px;\\'>Page ' + pageNum + ' of ' + numPages + '</span>';\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\tpage.property('content', `\n\t\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\t\tsrc: url(\"/usr/share/fonts/dejavu/DejaVuSerif.ttf\");\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\t\tsrc: url(\"/usr/share/fonts/dejavu/DejaVuSerif-Bold.ttf\");\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\t\tsrc: url(\"/usr/share/fonts/dejavu/DejaVuSerif-Italic.ttf\");\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\t\tsrc: url(\"/usr/share/fonts/dejavu/DejaVuSerif-BoldItalic.ttf\");\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tbody {\n\t\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\t\tfont-size: ` + (fontSize ? fontSize : '8px') + `;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\t\t\tmargin-bottom: 1px;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t.box {\n\t\t\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\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\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\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\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\t\t\tfont-family: Open Sans; \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t</head>\n\t\t\t\t\t\t\t<body>\n\t\t\t\t\t\t` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>');\n\t\t\t\t\t\t\tlet tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/\\W/g), '');\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlet interval = setInterval(() => {\n\t\t\t\t\t\t\t\tif (requestsArray.length === 0) {\n\n\t\t\t\t\t\t\t\t\tclearInterval(interval);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tpage.render(tmpFileName, {\n\t\t\t\t\t\t\t\t\t\tformat: 'pdf',\n\t\t\t\t\t\t\t\t\t\tquality: '100'\n\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\tif (fs.existsSync(tmpFileName)) {\n\t\t\t\t\t\t\t\t\t\t\tfs.readFile(tmpFileName, (errRead, data) => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (!errRead) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfs.unlinkSync(tmpFileName);\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (!upload) {\n\t\t\t\t\t\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\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\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\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\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\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\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\treject('No file');\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\t\n\t\t\t\t\t\t\t\t\t\t\t\tsetTimeout(function() { phInstance.exit(); }, 0);\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\telse {\n\t\t\t\t\t\t\t\t\t\t\treject('No tmp file');\n\t\t\t\t\t\t\t\t\t\t\tconsole.log('No tmp file ', tmpFileName);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\tconsole.log(err);\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}, 1000);\n\t\t\t\t\t\t}, error => {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\tsetTimeout(function() { phInstance.exit(); }, 0);\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\tcompressBase64AndUploadPDF: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\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\tfilePath: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileContent: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(id_file: string, fileName: string, filePath: string, fileContent: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tthis.callMethodInternal('getCCProcessURL').then(async resCC => {\n\t\t\t\t\t\tconst request = bent('https:' + resCC.url, 'POST', 'json', 200);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet body = await request('', {\n\t\t\t\t\t\t\t\tmode: 'compress',\n\t\t\t\t\t\t\t\tinput: 'base64',\n\t\t\t\t\t\t\t\tfile: fileContent,\n\t\t\t\t\t\t\t\tfilename: fileName,\n\t\t\t\t\t\t\t\toutputformat: 'pdf',\n\t\t\t\t\t\t\t\twait: true,\n\t\t\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\t\t\t's3': {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': this.serverConfig['AWSACCESSKEYID'],\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': this.serverConfig['AWSSECRETACCESSKEY'],\n\t\t\t\t\t\t\t\t\t\t'region': this.serverConfig['AWSREGION'],\n\t\t\t\t\t\t\t\t\t\t'bucket': this.serverConfig['AWSBUCKET'],\n\t\t\t\t\t\t\t\t\t\t'path': filePath\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\n\t\t\t\t\t\t\tif (body.output.size) {\n\t\t\t\t\t\t\t\tFiles.updateOne({_id: id_file}, {$set: {size: body.output.size}});\n\n\t\t\t\t\t\t\t\tresolve(true);\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('Compressed file has no size, compress failed');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, errCC => reject(errCC));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tcompressPDFOnS3: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\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\tfilePath: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(id_file: string, fileName: string, filePath: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tthis.callMethodInternal('getCCProcessURL').then(async resCC => {\n\t\t\t\t\t\tconst request = bent('https:' + resCC.url, 'POST', 'json', 200);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet body = await request('', {\n\t\t\t\t\t\t\t\tmode: 'compress',\n\t\t\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\t\t\t's3': {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': this.serverConfig['AWSACCESSKEYID'],\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': this.serverConfig['AWSSECRETACCESSKEY'],\n\t\t\t\t\t\t\t\t\t\t'region': this.serverConfig['AWSREGION'],\n\t\t\t\t\t\t\t\t\t\t'bucket': this.serverConfig['AWSBUCKET']\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\tfile: filePath,\n\t\t\t\t\t\t\t\tfilename: fileName,\n\t\t\t\t\t\t\t\toutputformat: 'pdf',\n\t\t\t\t\t\t\t\twait: true,\n\t\t\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\t\t\t's3': {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': this.serverConfig['AWSACCESSKEYID'],\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': this.serverConfig['AWSSECRETACCESSKEY'],\n\t\t\t\t\t\t\t\t\t\t'region': this.serverConfig['AWSREGION'],\n\t\t\t\t\t\t\t\t\t\t'bucket': this.serverConfig['AWSBUCKET'],\n\t\t\t\t\t\t\t\t\t\t'path': filePath\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\n\t\t\t\t\t\t\tif (body.output.size) {\n\t\t\t\t\t\t\t\tFiles.updateOne({_id: id_file}, {$set: {size: body.output.size}});\n\n\t\t\t\t\t\t\t\tresolve(true);\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('Compressed file has no size, compress failed');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, errCC => reject(errCC));\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\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\t\t\t\t\t\t\t\t\tlet fileData = fileDatas[i];\n\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\tconst pdf = await PDFDocument.load(fileData);\n\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\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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 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\tconst pdf = await PDFDocument.create();\n\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\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\tlet imgDim = img.size();\n\t\t\t\t\t\t\t\t\t\tif (imgDim.width > page.getWidth() || imgDim.height > page.getWidth()) {\n\t\t\t\t\t\t\t\t\t\t\timgDim = img.scaleToFit(page.getWidth(), page.getHeight());\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\timg.scaleToFit(page.getWidth() / 2, page.getHeight() / 2);\n\t\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\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\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\n\t\t\t\t\t\t\t\t\t\t});\n\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\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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 if (fileData.startsWith('data:image/png;base64,iVBOR')) {\n\t\t\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\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\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\tlet imgDim = img.size();\n\t\t\t\t\t\t\t\t\t\tif (imgDim.width > page.getWidth() || imgDim.height > page.getWidth()) {\n\t\t\t\t\t\t\t\t\t\t\timgDim = img.scaleToFit(page.getWidth(), page.getHeight());\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\timg.scaleToFit(page.getWidth() / 2, page.getHeight() / 2);\n\t\t\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\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\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\t\t\theight: imgDim.height,\n\t\t\t\t\t\t\t\t\t\t});\n\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\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\t\n\t\t\t\t\t\t\t\t\telse {\n\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}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst b64PDF = await mergedPdf.saveAsBase64({ dataUri: true });\n\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},\n\t\tmergePDF: {\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\tlet mergeFileName = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\n\t\t\t\t\tthis.callMethodInternal('createCloudConvertJob', fileKeys, ['merge', 'optimize'], mergeFileName, fileName).then(resCCJob => {\n\t\t\t\t\t\tif (resCCJob) {\n\t\t\t\t\t\t\tlet resFile: FileModel = {\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\tname: fileName,\n\t\t\t\t\t\t\t\tsize: resCCJob.data.tasks.filter(a => a.name === 'task-2')[0].result.files[0].size,\n\t\t\t\t\t\t\t\tkey: mergeFileName,\n\t\t\t\t\t\t\t\ttype: fileType ? fileType : '',\n\t\t\t\t\t\t\t\torder: -1\n\t\t\t\t\t\t\t};\n\t\n\t\t\t\t\t\t\tif (resFile.size) {\n\t\t\t\t\t\t\t\tthis.callMethodInternal('insertDocument', 'files', resFile, (errUpFile, resUpFile) => {\n\t\t\t\t\t\t\t\t\tif (resUpFile) {\n\t\t\t\t\t\t\t\t\t\tresFile.status = 'Uploaded';\n\t\t\t\t\t\t\t\t\t\tresolve(resFile);\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\treject(errUpFile);\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('Merged file has no size, merge failed');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, (err) => {\n\t\t\t\t\t\tconsole.log('Create Cloud Convert Job Error', err);\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmergePDFV1: {\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\n\t\t\t\t\tthis.callMethodInternal('getCCProcessURL').then(async resCC => {\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet mergeFileName = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\t\t\t\t\t\n\t\t\t\t\t\tconst request = bent('https:' + resCC.url, 'POST', 'json', 200);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet body = await request('', {\n\t\t\t\t\t\t\t\tmode: 'combine',\n\t\t\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\t\t\ts3: {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': this.serverConfig['AWSACCESSKEYID'],\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': this.serverConfig['AWSSECRETACCESSKEY'],\n\t\t\t\t\t\t\t\t\t\t'region': this.serverConfig['AWSREGION'],\n\t\t\t\t\t\t\t\t\t\t'bucket': this.serverConfig['AWSBUCKET']\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\tfiles: fileKeys,\n\t\t\t\t\t\t\t\toutputformat: 'pdf',\n\t\t\t\t\t\t\t\twait: true,\n\t\t\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\t\t\t's3': {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': this.serverConfig['AWSACCESSKEYID'],\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': this.serverConfig['AWSSECRETACCESSKEY'],\n\t\t\t\t\t\t\t\t\t\t'region': this.serverConfig['AWSREGION'],\n\t\t\t\t\t\t\t\t\t\t'bucket': this.serverConfig['AWSBUCKET'],\n\t\t\t\t\t\t\t\t\t\t'path': mergeFileName\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\tconverteroptions: {\n\t\t\t\t\t\t\t\t\t'resize': '612x792',\n\t\t\t\t\t\t\t\t\t'resizemode': 'scale',\n\t\t\t\t\t\t\t\t\t'resizeenlarge': null,\n\t\t\t\t\t\t\t\t\t'grayscale': null,\n\t\t\t\t\t\t\t\t\t'auto_orient': null,\n\t\t\t\t\t\t\t\t\t'strip_metatags': false,\n\t\t\t\t\t\t\t\t\t'density': 72,\n\t\t\t\t\t\t\t\t\t'rotate': null,\n\t\t\t\t\t\t\t\t\t'command': null\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tlet resFile: FileModel = {\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\tname: fileName,\n\t\t\t\t\t\t\t\tsize: body.output.size,\n\t\t\t\t\t\t\t\tkey: mergeFileName,\n\t\t\t\t\t\t\t\ttype: fileType ? fileType : '',\n\t\t\t\t\t\t\t\torder: -1\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tif (body.output.size) {\n\t\t\t\t\t\t\t\tthis.callMethodInternal('insertDocument', 'files', resFile, (errUpFile, resUpFile) => {\n\t\t\t\t\t\t\t\t\tif (resUpFile) {\n\t\t\t\t\t\t\t\t\t\tresFile.status = 'Uploaded';\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('compressPDFOnS3', resFile._id, fileName, mergeFileName, (errCompress, resCompress) => {\n\t\t\t\t\t\t\t\t\t\t\tif (resCompress) {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(resFile);\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\treject(errCompress);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject(errUpFile);\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('Merged file has no size, merge failed');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, errCC => reject(errCC));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmergePDFNoUpload: {\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\n\t\t\t\t\tthis.callMethodInternal('getCCProcessURL').then(async resCC => {\n\t\t\t\t\t\tlet mergeFileName = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst request = bent('https:' + resCC.url, 'POST', 'json', 200);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet body = await request('', {\n\t\t\t\t\t\t\t\tmode: 'combine',\n\t\t\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\t\t\ts3: {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': this.serverConfig['AWSACCESSKEYID'],\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': this.serverConfig['AWSSECRETACCESSKEY'],\n\t\t\t\t\t\t\t\t\t\t'region': this.serverConfig['AWSREGION'],\n\t\t\t\t\t\t\t\t\t\t'bucket': this.serverConfig['AWSBUCKET']\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\tfiles: fileKeys,\n\t\t\t\t\t\t\t\toutputformat: 'pdf',\n\t\t\t\t\t\t\t\twait: true,\n\t\t\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\t\t\t's3': {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': this.serverConfig['AWSACCESSKEYID'],\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': this.serverConfig['AWSSECRETACCESSKEY'],\n\t\t\t\t\t\t\t\t\t\t'region': this.serverConfig['AWSREGION'],\n\t\t\t\t\t\t\t\t\t\t'bucket': this.serverConfig['AWSBUCKET'],\n\t\t\t\t\t\t\t\t\t\t'path': mergeFileName\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\tconverteroptions: {\n\t\t\t\t\t\t\t\t\t'resize': '612x792',\n\t\t\t\t\t\t\t\t\t'resizemode': 'scale',\n\t\t\t\t\t\t\t\t\t'resizeenlarge': null,\n\t\t\t\t\t\t\t\t\t'grayscale': null,\n\t\t\t\t\t\t\t\t\t'auto_orient': null,\n\t\t\t\t\t\t\t\t\t'strip_metatags': false,\n\t\t\t\t\t\t\t\t\t'density': 72,\n\t\t\t\t\t\t\t\t\t'rotate': null,\n\t\t\t\t\t\t\t\t\t'command': null\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tlet resFile: FileModel = {\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\tname: fileName,\n\t\t\t\t\t\t\t\tsize: body.output.size,\n\t\t\t\t\t\t\t\tkey: mergeFileName,\n\t\t\t\t\t\t\t\ttype: fileType ? fileType : '',\n\t\t\t\t\t\t\t\torder: -1\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tthis.callMethodInternal('insertDocument', 'files', resFile, (errUpFile, resUpFile) => {\n\t\t\t\t\t\t\t\tif (resUpFile) {\n\t\t\t\t\t\t\t\t\tresFile.status = 'Uploaded';\n\n\t\t\t\t\t\t\t\t\tresolve(resFile);\n\n\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('deleteFile', mergeFileName);\n\t\t\t\t\t\t\t\t\t}, 60000);\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\treject(errUpFile);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, errCC => reject(errCC));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../src/methods/pdf.ts"],"names":[],"mappings":"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","file":"pdf.js","sourcesContent":["let fs = require('fs');\nimport { FileModel } from '../models/file.model';\nimport { HelperThread, MethodManager } from '../managers/method.manager';\nimport * as bent from 'bent';\nimport SimpleSchema from 'simpl-schema';\nimport { Files } from '../collections/file.collection';\nimport { objectIdHexString } from '../managers/mongo.manager';\n\nimport { PDFDocument } from 'pdf-lib';\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 = '8px', upload = false, uploadFileOrder = -1, uploadFileType = '') {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (this._helperThread) {\n\t\t\t\t\t\t(<HelperThread>this._helperThread).sendJobToHelperThread('generatePDF', html, fileName, orientation, fontSize).then((res: string) => {\n\t\t\t\t\t\t\tif (!upload) {\n\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tlet fileData = res;\n\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\tif (err) {\n\t\t\t\t\t\t\t\t\t\treject(err);\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\tresolve(res);\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}, err => {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet phantom = require('phantom');\n\t\t\t\t\t\tlet phInstance = null;\n\t\t\t\t\t\t\n\t\t\t\t\t\tphantom.create().then(instance => {\n\t\t\t\t\t\t\tphInstance = instance;\n\t\t\t\t\t\t\treturn instance.createPage();\n\t\t\t\t\t\t}).then(page => {\n\t\t\t\t\t\t\tlet requestsArray = [];\n\n\t\t\t\t\t\t\tpage.on('onResourceRequested', (requestData, networkRequest) => {\n\t\t\t\t\t\t\t\trequestsArray.push(requestData.id);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tpage.on('onResourceReceived', (response) => {\n\t\t\t\t\t\t\t\tif (response.stage === 'end') {\n\t\t\t\t\t\t\t\t\tlet index = requestsArray.indexOf(response.id);\n\t\t\t\t\t\t\t\t\trequestsArray.splice(index, 1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tpage.property('paperSize', {\n\t\t\t\t\t\t\t\tformat: 'letter',\n\t\t\t\t\t\t\t\tmargin: '1cm',\n\t\t\t\t\t\t\t\torientation: orientation,\n\t\t\t\t\t\t\t\tfooter: {\n\t\t\t\t\t\t\t\t\theight: '1cm',\n\t\t\t\t\t\t\t\t\tcontents: phInstance.callback((pageNum, numPages) => {\n\t\t\t\t\t\t\t\t\t\treturn '<span style=\\'float:right; font-size: 12px;\\'>Page ' + pageNum + ' of ' + numPages + '</span>';\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\tpage.property('content', `\n\t\t\t\t\t\t\t<head>\n\t\t\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\t\tsrc: url(\"/usr/share/fonts/dejavu/DejaVuSerif.ttf\");\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\t\tsrc: url(\"/usr/share/fonts/dejavu/DejaVuSerif-Bold.ttf\");\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\t\t\tsrc: url(\"/usr/share/fonts/dejavu/DejaVuSerif-Italic.ttf\");\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\t\t\tsrc: url(\"/usr/share/fonts/dejavu/DejaVuSerif-BoldItalic.ttf\");\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tbody {\n\t\t\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\t\t\tfont-size: ` + (fontSize ? fontSize : '8px') + `;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\t\t\tmargin-bottom: 1px;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t.box {\n\t\t\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\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\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\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\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\t\t\tfont-family: Open Sans; \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</style>\n\t\t\t\t\t\t\t</head>\n\t\t\t\t\t\t\t<body>\n\t\t\t\t\t\t` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>');\n\t\t\t\t\t\t\tlet tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/\\W/g), '');\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlet interval = setInterval(() => {\n\t\t\t\t\t\t\t\tif (requestsArray.length === 0) {\n\n\t\t\t\t\t\t\t\t\tclearInterval(interval);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tpage.render(tmpFileName, {\n\t\t\t\t\t\t\t\t\t\tformat: 'pdf',\n\t\t\t\t\t\t\t\t\t\tquality: '100'\n\t\t\t\t\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\t\t\t\t\tif (fs.existsSync(tmpFileName)) {\n\t\t\t\t\t\t\t\t\t\t\tfs.readFile(tmpFileName, (errRead, data) => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (!errRead) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfs.unlinkSync(tmpFileName);\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (!upload) {\n\t\t\t\t\t\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\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\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\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\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\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\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\treject('No file');\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\t\n\t\t\t\t\t\t\t\t\t\t\t\tsetTimeout(function() { phInstance.exit(); }, 0);\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\telse {\n\t\t\t\t\t\t\t\t\t\t\treject('No tmp file');\n\t\t\t\t\t\t\t\t\t\t\tconsole.log('No tmp file ', tmpFileName);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\tconsole.log(err);\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}, 1000);\n\t\t\t\t\t\t}, error => {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\tsetTimeout(function() { phInstance.exit(); }, 0);\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\tcompressBase64AndUploadPDF: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\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\tfilePath: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileContent: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(id_file: string, fileName: string, filePath: string, fileContent: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tthis.callMethodInternal('getCCProcessURL').then(async resCC => {\n\t\t\t\t\t\tconst request = bent('https:' + resCC.url, 'POST', 'json', 200);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet body = await request('', {\n\t\t\t\t\t\t\t\tmode: 'compress',\n\t\t\t\t\t\t\t\tinput: 'base64',\n\t\t\t\t\t\t\t\tfile: fileContent,\n\t\t\t\t\t\t\t\tfilename: fileName,\n\t\t\t\t\t\t\t\toutputformat: 'pdf',\n\t\t\t\t\t\t\t\twait: true,\n\t\t\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\t\t\t's3': {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': this.serverConfig['AWSACCESSKEYID'],\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': this.serverConfig['AWSSECRETACCESSKEY'],\n\t\t\t\t\t\t\t\t\t\t'region': this.serverConfig['AWSREGION'],\n\t\t\t\t\t\t\t\t\t\t'bucket': this.serverConfig['AWSBUCKET'],\n\t\t\t\t\t\t\t\t\t\t'path': filePath\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\n\t\t\t\t\t\t\tif (body.output.size) {\n\t\t\t\t\t\t\t\tFiles.updateOne({_id: id_file}, {$set: {size: body.output.size}});\n\n\t\t\t\t\t\t\t\tresolve(true);\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('Compressed file has no size, compress failed');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, errCC => reject(errCC));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tcompressPDFOnS3: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\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\tfilePath: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(id_file: string, fileName: string, filePath: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\n\t\t\t\t\tthis.callMethodInternal('getCCProcessURL').then(async resCC => {\n\t\t\t\t\t\tconst request = bent('https:' + resCC.url, 'POST', 'json', 200);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet body = await request('', {\n\t\t\t\t\t\t\t\tmode: 'compress',\n\t\t\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\t\t\t's3': {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': this.serverConfig['AWSACCESSKEYID'],\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': this.serverConfig['AWSSECRETACCESSKEY'],\n\t\t\t\t\t\t\t\t\t\t'region': this.serverConfig['AWSREGION'],\n\t\t\t\t\t\t\t\t\t\t'bucket': this.serverConfig['AWSBUCKET']\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\tfile: filePath,\n\t\t\t\t\t\t\t\tfilename: fileName,\n\t\t\t\t\t\t\t\toutputformat: 'pdf',\n\t\t\t\t\t\t\t\twait: true,\n\t\t\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\t\t\t's3': {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': this.serverConfig['AWSACCESSKEYID'],\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': this.serverConfig['AWSSECRETACCESSKEY'],\n\t\t\t\t\t\t\t\t\t\t'region': this.serverConfig['AWSREGION'],\n\t\t\t\t\t\t\t\t\t\t'bucket': this.serverConfig['AWSBUCKET'],\n\t\t\t\t\t\t\t\t\t\t'path': filePath\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\n\t\t\t\t\t\t\tif (body.output.size) {\n\t\t\t\t\t\t\t\tFiles.updateOne({_id: id_file}, {$set: {size: body.output.size}});\n\n\t\t\t\t\t\t\t\tresolve(true);\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('Compressed file has no size, compress failed');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, errCC => reject(errCC));\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\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\tif (this._helperThread) {\n\t\t\t\t\t\t\t\t\t(<HelperThread>this._helperThread).sendJobToHelperThread('mergePDFResolve', fileDatas).then((res: string) => {\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('uploadFileAndSave', fileName, res, (4 * Math.ceil(res.length / 3)), -1, fileType, false, (errUp, resUp) => {\n\t\t\t\t\t\t\t\t\t\t\tresolve(resUp);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\t\t\t\treject(err);\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\tconst mergedPdf = await PDFDocument.create();\n\n\t\t\t\t\t\t\t\t\tfor (let i = 0; i < fileDatas.length; i++) {\n\t\t\t\t\t\t\t\t\t\tlet fileData = fileDatas[i];\n\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\tconst pdf = await PDFDocument.load(fileData);\n\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\tcopiedPages.forEach((page) => {\n\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});\n\t\t\t\t\t\t\t\t\t\t}\n\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\tconst pdf = await PDFDocument.create();\n\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\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\t\tlet imgDim = img.size();\n\t\t\t\t\t\t\t\t\t\t\tif (imgDim.width > page.getWidth() || imgDim.height > page.getWidth()) {\n\t\t\t\t\t\t\t\t\t\t\t\timgDim = img.scaleToFit(page.getWidth(), page.getHeight());\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\timg.scaleToFit(page.getWidth() / 2, page.getHeight() / 2);\n\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\tx: page.getWidth() / 2 - imgDim.width / 2,\n\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\twidth: imgDim.width,\n\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});\n\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\tcopiedPages.forEach((page) => {\n\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});\n\t\t\t\t\t\t\t\t\t\t}\n\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\tconst pdf = await PDFDocument.create();\n\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\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\t\t\t\tlet imgDim = img.size();\n\t\t\t\t\t\t\t\t\t\t\tif (imgDim.width > page.getWidth() || imgDim.height > page.getWidth()) {\n\t\t\t\t\t\t\t\t\t\t\t\timgDim = img.scaleToFit(page.getWidth(), page.getHeight());\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\timg.scaleToFit(page.getWidth() / 2, page.getHeight() / 2);\n\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\tx: page.getWidth() / 2 - imgDim.width / 2,\n\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\twidth: imgDim.width,\n\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});\n\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\tcopiedPages.forEach((page) => {\n\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});\n\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\telse {\n\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}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tconst b64PDF = await mergedPdf.saveAsBase64({ dataUri: true });\n\n\t\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\t\tresolve(resUp);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\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\tmergePDF: {\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\tlet mergeFileName = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\n\t\t\t\t\tthis.callMethodInternal('createCloudConvertJob', fileKeys, ['merge', 'optimize'], mergeFileName, fileName).then(resCCJob => {\n\t\t\t\t\t\tif (resCCJob) {\n\t\t\t\t\t\t\tlet resFile: FileModel = {\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\tname: fileName,\n\t\t\t\t\t\t\t\tsize: resCCJob.data.tasks.filter(a => a.name === 'task-2')[0].result.files[0].size,\n\t\t\t\t\t\t\t\tkey: mergeFileName,\n\t\t\t\t\t\t\t\ttype: fileType ? fileType : '',\n\t\t\t\t\t\t\t\torder: -1\n\t\t\t\t\t\t\t};\n\t\n\t\t\t\t\t\t\tif (resFile.size) {\n\t\t\t\t\t\t\t\tthis.callMethodInternal('insertDocument', 'files', resFile, (errUpFile, resUpFile) => {\n\t\t\t\t\t\t\t\t\tif (resUpFile) {\n\t\t\t\t\t\t\t\t\t\tresFile.status = 'Uploaded';\n\t\t\t\t\t\t\t\t\t\tresolve(resFile);\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\treject(errUpFile);\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('Merged file has no size, merge failed');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, (err) => {\n\t\t\t\t\t\tconsole.log('Create Cloud Convert Job Error', err);\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmergePDFV1: {\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\n\t\t\t\t\tthis.callMethodInternal('getCCProcessURL').then(async resCC => {\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet mergeFileName = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\t\t\t\t\t\n\t\t\t\t\t\tconst request = bent('https:' + resCC.url, 'POST', 'json', 200);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet body = await request('', {\n\t\t\t\t\t\t\t\tmode: 'combine',\n\t\t\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\t\t\ts3: {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': this.serverConfig['AWSACCESSKEYID'],\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': this.serverConfig['AWSSECRETACCESSKEY'],\n\t\t\t\t\t\t\t\t\t\t'region': this.serverConfig['AWSREGION'],\n\t\t\t\t\t\t\t\t\t\t'bucket': this.serverConfig['AWSBUCKET']\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\tfiles: fileKeys,\n\t\t\t\t\t\t\t\toutputformat: 'pdf',\n\t\t\t\t\t\t\t\twait: true,\n\t\t\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\t\t\t's3': {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': this.serverConfig['AWSACCESSKEYID'],\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': this.serverConfig['AWSSECRETACCESSKEY'],\n\t\t\t\t\t\t\t\t\t\t'region': this.serverConfig['AWSREGION'],\n\t\t\t\t\t\t\t\t\t\t'bucket': this.serverConfig['AWSBUCKET'],\n\t\t\t\t\t\t\t\t\t\t'path': mergeFileName\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\tconverteroptions: {\n\t\t\t\t\t\t\t\t\t'resize': '612x792',\n\t\t\t\t\t\t\t\t\t'resizemode': 'scale',\n\t\t\t\t\t\t\t\t\t'resizeenlarge': null,\n\t\t\t\t\t\t\t\t\t'grayscale': null,\n\t\t\t\t\t\t\t\t\t'auto_orient': null,\n\t\t\t\t\t\t\t\t\t'strip_metatags': false,\n\t\t\t\t\t\t\t\t\t'density': 72,\n\t\t\t\t\t\t\t\t\t'rotate': null,\n\t\t\t\t\t\t\t\t\t'command': null\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tlet resFile: FileModel = {\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\tname: fileName,\n\t\t\t\t\t\t\t\tsize: body.output.size,\n\t\t\t\t\t\t\t\tkey: mergeFileName,\n\t\t\t\t\t\t\t\ttype: fileType ? fileType : '',\n\t\t\t\t\t\t\t\torder: -1\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tif (body.output.size) {\n\t\t\t\t\t\t\t\tthis.callMethodInternal('insertDocument', 'files', resFile, (errUpFile, resUpFile) => {\n\t\t\t\t\t\t\t\t\tif (resUpFile) {\n\t\t\t\t\t\t\t\t\t\tresFile.status = 'Uploaded';\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('compressPDFOnS3', resFile._id, fileName, mergeFileName, (errCompress, resCompress) => {\n\t\t\t\t\t\t\t\t\t\t\tif (resCompress) {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve(resFile);\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\treject(errCompress);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject(errUpFile);\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('Merged file has no size, merge failed');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, errCC => reject(errCC));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmergePDFNoUpload: {\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\n\t\t\t\t\tthis.callMethodInternal('getCCProcessURL').then(async resCC => {\n\t\t\t\t\t\tlet mergeFileName = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst request = bent('https:' + resCC.url, 'POST', 'json', 200);\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tlet body = await request('', {\n\t\t\t\t\t\t\t\tmode: 'combine',\n\t\t\t\t\t\t\t\tinput: {\n\t\t\t\t\t\t\t\t\ts3: {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': this.serverConfig['AWSACCESSKEYID'],\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': this.serverConfig['AWSSECRETACCESSKEY'],\n\t\t\t\t\t\t\t\t\t\t'region': this.serverConfig['AWSREGION'],\n\t\t\t\t\t\t\t\t\t\t'bucket': this.serverConfig['AWSBUCKET']\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\tfiles: fileKeys,\n\t\t\t\t\t\t\t\toutputformat: 'pdf',\n\t\t\t\t\t\t\t\twait: true,\n\t\t\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\t\t\t's3': {\n\t\t\t\t\t\t\t\t\t\t'accesskeyid': this.serverConfig['AWSACCESSKEYID'],\n\t\t\t\t\t\t\t\t\t\t'secretaccesskey': this.serverConfig['AWSSECRETACCESSKEY'],\n\t\t\t\t\t\t\t\t\t\t'region': this.serverConfig['AWSREGION'],\n\t\t\t\t\t\t\t\t\t\t'bucket': this.serverConfig['AWSBUCKET'],\n\t\t\t\t\t\t\t\t\t\t'path': mergeFileName\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\tconverteroptions: {\n\t\t\t\t\t\t\t\t\t'resize': '612x792',\n\t\t\t\t\t\t\t\t\t'resizemode': 'scale',\n\t\t\t\t\t\t\t\t\t'resizeenlarge': null,\n\t\t\t\t\t\t\t\t\t'grayscale': null,\n\t\t\t\t\t\t\t\t\t'auto_orient': null,\n\t\t\t\t\t\t\t\t\t'strip_metatags': false,\n\t\t\t\t\t\t\t\t\t'density': 72,\n\t\t\t\t\t\t\t\t\t'rotate': null,\n\t\t\t\t\t\t\t\t\t'command': null\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tlet resFile: FileModel = {\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\tname: fileName,\n\t\t\t\t\t\t\t\tsize: body.output.size,\n\t\t\t\t\t\t\t\tkey: mergeFileName,\n\t\t\t\t\t\t\t\ttype: fileType ? fileType : '',\n\t\t\t\t\t\t\t\torder: -1\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tthis.callMethodInternal('insertDocument', 'files', resFile, (errUpFile, resUpFile) => {\n\t\t\t\t\t\t\t\tif (resUpFile) {\n\t\t\t\t\t\t\t\t\tresFile.status = 'Uploaded';\n\n\t\t\t\t\t\t\t\t\tresolve(resFile);\n\n\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\tthis.callMethodInternal('deleteFile', mergeFileName);\n\t\t\t\t\t\t\t\t\t}, 60000);\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\treject(errUpFile);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(error) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, errCC => reject(errCC));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}"]}
|
|
@@ -38,15 +38,14 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
var worker_threads_1 = require("worker_threads");
|
|
40
40
|
var fs = require('fs');
|
|
41
|
+
var pdf_lib_1 = require("pdf-lib");
|
|
41
42
|
var jobQueue = [];
|
|
42
43
|
var runningQueue = false;
|
|
43
44
|
var pdfCnt = 0;
|
|
44
|
-
console.log('Helper thread started'
|
|
45
|
-
// if (!isMainThread) {
|
|
45
|
+
console.log('Helper thread started');
|
|
46
46
|
worker_threads_1.parentPort.on('message', function (msg) {
|
|
47
47
|
jobQueue.splice(0, 0, msg);
|
|
48
48
|
});
|
|
49
|
-
// }
|
|
50
49
|
setInterval(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
51
50
|
var job_1;
|
|
52
51
|
return __generator(this, function (_a) {
|
|
@@ -66,12 +65,24 @@ setInterval(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
|
66
65
|
runningQueue = false;
|
|
67
66
|
});
|
|
68
67
|
}
|
|
68
|
+
else if (job_1.method === 'mergePDFResolve') {
|
|
69
|
+
mergePDFResolve(job_1.params).then(function (res) {
|
|
70
|
+
job_1.result = res;
|
|
71
|
+
job_1.error = false;
|
|
72
|
+
worker_threads_1.parentPort.postMessage(job_1);
|
|
73
|
+
runningQueue = false;
|
|
74
|
+
}, function (err) {
|
|
75
|
+
job_1.result = err;
|
|
76
|
+
job_1.error = true;
|
|
77
|
+
worker_threads_1.parentPort.postMessage(job_1);
|
|
78
|
+
runningQueue = false;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
69
81
|
}
|
|
70
82
|
return [2 /*return*/];
|
|
71
83
|
});
|
|
72
84
|
}); }, 1);
|
|
73
85
|
function generatePDF(data) {
|
|
74
|
-
console.log('Running generate PDF');
|
|
75
86
|
var html = data[0];
|
|
76
87
|
var fileName = data[1];
|
|
77
88
|
var orientation = data[2] || 'portrait';
|
|
@@ -141,5 +152,100 @@ function generatePDF(data) {
|
|
|
141
152
|
});
|
|
142
153
|
});
|
|
143
154
|
}
|
|
155
|
+
function mergePDFResolve(data) {
|
|
156
|
+
var _this = this;
|
|
157
|
+
var fileDatas = data[0];
|
|
158
|
+
return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
159
|
+
var mergedPdf, i, fileData, pdf, copiedPages, pdf, img, page, imgDim, copiedPages, pdf, img, page, imgDim, copiedPages, b64PDF;
|
|
160
|
+
return __generator(this, function (_a) {
|
|
161
|
+
switch (_a.label) {
|
|
162
|
+
case 0: return [4 /*yield*/, pdf_lib_1.PDFDocument.create()];
|
|
163
|
+
case 1:
|
|
164
|
+
mergedPdf = _a.sent();
|
|
165
|
+
i = 0;
|
|
166
|
+
_a.label = 2;
|
|
167
|
+
case 2:
|
|
168
|
+
if (!(i < fileDatas.length)) return [3 /*break*/, 15];
|
|
169
|
+
fileData = fileDatas[i];
|
|
170
|
+
if (!fileData.startsWith('data:application/pdf;base64,')) return [3 /*break*/, 5];
|
|
171
|
+
return [4 /*yield*/, pdf_lib_1.PDFDocument.load(fileData)];
|
|
172
|
+
case 3:
|
|
173
|
+
pdf = _a.sent();
|
|
174
|
+
return [4 /*yield*/, mergedPdf.copyPages(pdf, pdf.getPageIndices())];
|
|
175
|
+
case 4:
|
|
176
|
+
copiedPages = _a.sent();
|
|
177
|
+
copiedPages.forEach(function (page) {
|
|
178
|
+
mergedPdf.addPage(page);
|
|
179
|
+
});
|
|
180
|
+
return [3 /*break*/, 14];
|
|
181
|
+
case 5:
|
|
182
|
+
if (!(fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/'))) return [3 /*break*/, 9];
|
|
183
|
+
return [4 /*yield*/, pdf_lib_1.PDFDocument.create()];
|
|
184
|
+
case 6:
|
|
185
|
+
pdf = _a.sent();
|
|
186
|
+
return [4 /*yield*/, pdf.embedJpg(fileData)];
|
|
187
|
+
case 7:
|
|
188
|
+
img = _a.sent();
|
|
189
|
+
page = pdf.addPage();
|
|
190
|
+
imgDim = img.size();
|
|
191
|
+
if (imgDim.width > page.getWidth() || imgDim.height > page.getWidth()) {
|
|
192
|
+
imgDim = img.scaleToFit(page.getWidth(), page.getHeight());
|
|
193
|
+
}
|
|
194
|
+
img.scaleToFit(page.getWidth() / 2, page.getHeight() / 2);
|
|
195
|
+
page.drawImage(img, {
|
|
196
|
+
x: page.getWidth() / 2 - imgDim.width / 2,
|
|
197
|
+
y: page.getHeight() / 2 - imgDim.height / 2,
|
|
198
|
+
width: imgDim.width,
|
|
199
|
+
height: imgDim.height,
|
|
200
|
+
});
|
|
201
|
+
return [4 /*yield*/, mergedPdf.copyPages(pdf, pdf.getPageIndices())];
|
|
202
|
+
case 8:
|
|
203
|
+
copiedPages = _a.sent();
|
|
204
|
+
copiedPages.forEach(function (page) {
|
|
205
|
+
mergedPdf.addPage(page);
|
|
206
|
+
});
|
|
207
|
+
return [3 /*break*/, 14];
|
|
208
|
+
case 9:
|
|
209
|
+
if (!fileData.startsWith('data:image/png;base64,iVBOR')) return [3 /*break*/, 13];
|
|
210
|
+
return [4 /*yield*/, pdf_lib_1.PDFDocument.create()];
|
|
211
|
+
case 10:
|
|
212
|
+
pdf = _a.sent();
|
|
213
|
+
return [4 /*yield*/, pdf.embedPng(fileData)];
|
|
214
|
+
case 11:
|
|
215
|
+
img = _a.sent();
|
|
216
|
+
page = pdf.addPage();
|
|
217
|
+
imgDim = img.size();
|
|
218
|
+
if (imgDim.width > page.getWidth() || imgDim.height > page.getWidth()) {
|
|
219
|
+
imgDim = img.scaleToFit(page.getWidth(), page.getHeight());
|
|
220
|
+
}
|
|
221
|
+
img.scaleToFit(page.getWidth() / 2, page.getHeight() / 2);
|
|
222
|
+
page.drawImage(img, {
|
|
223
|
+
x: page.getWidth() / 2 - imgDim.width / 2,
|
|
224
|
+
y: page.getHeight() / 2 - imgDim.height / 2,
|
|
225
|
+
width: imgDim.width,
|
|
226
|
+
height: imgDim.height,
|
|
227
|
+
});
|
|
228
|
+
return [4 /*yield*/, mergedPdf.copyPages(pdf, pdf.getPageIndices())];
|
|
229
|
+
case 12:
|
|
230
|
+
copiedPages = _a.sent();
|
|
231
|
+
copiedPages.forEach(function (page) {
|
|
232
|
+
mergedPdf.addPage(page);
|
|
233
|
+
});
|
|
234
|
+
return [3 /*break*/, 14];
|
|
235
|
+
case 13:
|
|
236
|
+
console.log('Error - unsupported!!', fileData.slice(0, 60));
|
|
237
|
+
_a.label = 14;
|
|
238
|
+
case 14:
|
|
239
|
+
i++;
|
|
240
|
+
return [3 /*break*/, 2];
|
|
241
|
+
case 15: return [4 /*yield*/, mergedPdf.saveAsBase64({ dataUri: true })];
|
|
242
|
+
case 16:
|
|
243
|
+
b64PDF = _a.sent();
|
|
244
|
+
resolve(b64PDF);
|
|
245
|
+
return [2 /*return*/];
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
}); });
|
|
249
|
+
}
|
|
144
250
|
|
|
145
251
|
//# sourceMappingURL=helper_thread.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/multi_threaded/helper_thread.ts"],"names":[],"mappings":"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","file":"helper_thread.js","sourcesContent":["import { parentPort, isMainThread } from 'worker_threads';\nlet fs = require('fs');\nimport { HelperThreadMessage } from '../managers/method.manager';\n\nlet jobQueue: HelperThreadMessage[] = [];\nlet runningQueue = false;\n\nlet pdfCnt = 0;\n\nconsole.log('Helper thread started', isMainThread);\n\n// if (!isMainThread) {\n parentPort.on('message', (msg: HelperThreadMessage) => {\n jobQueue.splice(0, 0, msg);\n });\n// }\n\nsetInterval(async () => {\n if (!runningQueue && jobQueue.length) {\n runningQueue = true;\n\n let job = jobQueue.pop();\n if (job.method === 'generatePDF') {\n generatePDF(job.params).then(res => {\n job.result = res;\n job.error = false;\n parentPort.postMessage(job);\n runningQueue = false;\n }, err => {\n job.result = err;\n job.error = true;\n parentPort.postMessage(job);\n runningQueue = false;\n });\n }\n }\n}, 1);\n\nfunction generatePDF(data: any[]) {\n console.log('Running generate PDF');\n \n let html = data[0];\n let fileName = data[1];\n let orientation = data[2] || 'portrait';\n let fontSize = data[3] || '8px';\n\n return new Promise((resolve, reject) => {\n let phantom = require('phantom');\n let phInstance = null;\n \n phantom.create().then(instance => {\n phInstance = instance;\n return instance.createPage();\n }).then(page => {\n let requestsArray = [];\n\n page.on('onResourceRequested', (requestData, networkRequest) => {\n requestsArray.push(requestData.id);\n });\n\n page.on('onResourceReceived', (response) => {\n if (response.stage === 'end') {\n let index = requestsArray.indexOf(response.id);\n requestsArray.splice(index, 1);\n }\n });\n\n page.property('paperSize', {\n format: 'letter',\n margin: '1cm',\n orientation: orientation,\n footer: {\n height: '1cm',\n contents: phInstance.callback((pageNum, numPages) => {\n return '<span style=\\'float:right; font-size: 12px;\\'>Page ' + pageNum + ' of ' + numPages + '</span>';\n })\n }\n });\n page.property('content', `\n <head>\n <style>\n @font-face {\n font-family: 'Dejavu Serif', serif;\n font-style: normal;\n font-weight: normal;\n src: url(\"/usr/share/fonts/dejavu/DejaVuSerif.ttf\");\n }\n\n @font-face {\n font-family: 'Dejavu Serif', serif;\n font-style: normal;\n font-weight: bold;\n src: url(\"/usr/share/fonts/dejavu/DejaVuSerif-Bold.ttf\");\n }\n\n @font-face {\n font-family: 'Dejavu Serif', serif;\n font-style: italic;\n font-weight: normal;\n src: url(\"/usr/share/fonts/dejavu/DejaVuSerif-Italic.ttf\");\n }\n\n @font-face {\n font-family: 'Dejavu Serif', serif;\n font-style: italic;\n font-weight: bold;\n src: url(\"/usr/share/fonts/dejavu/DejaVuSerif-BoldItalic.ttf\");\n }\n\n body {\n font-family: 'Dejavu Serif', serif;\n font-size: ` + (fontSize ? fontSize : '8px') + `;\n }\n\n .row {\n display: -webkit-flex;\n display: flex;\n flex-wrap: wrap;\n -webkit-flex-wrap: wrap;\n }\n \n .page-break {\n page-break-before: always !important;\n margin-bottom: 1px;\n }\n\n .cell {\n box-sizing: border-box;\n padding : 2px;\n -webkit-flex: 1;\n word-wrap: break-word;\n }\n\n .cell-no-padding {\n box-sizing: border-box;\n -webkit-flex: 1;\n word-wrap: break-word;\n }\n\n .centered {\n -webkit-justify-content: center;\n -webkit-align-items: center;\n display: -webkit-flex;\n text-align: center;\n }\n\n .centered-left {\n -webkit-align-items: center;\n display: -webkit-flex;\n -webkit-justify-content: flex-start;\n }\n\n .centered-right {\n -webkit-justify-content: flex-end;\n -webkit-align-items: center;\n display: -webkit-flex;\n }\n \n .box {\n border: 1px solid black;\n margin: -1px 0px 0px -1px;\n }\n\n .boxNoBorder {\n margin: -1px 0px 0px -1px;\n }\n\n pre {\n white-space: pre-wrap; /* css-3 */\n white-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n white-space: -pre-wrap; /* Opera 4-6 */\n white-space: -o-pre-wrap; /* Opera 7 */\n word-wrap: break-word; /* Internet Explorer 5.5+ */\n font-size: 12px;\n font-family: Open Sans; \n }\n </style>\n </head>\n <body>\n ` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>');\n let tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/\\W/g), '');\n \n let interval = setInterval(() => {\n if (requestsArray.length === 0) {\n clearInterval(interval);\n \n page.render(tmpFileName, {\n format: 'pdf',\n quality: '100'\n }).then(() => {\n if (fs.existsSync(tmpFileName)) {\n fs.readFile(tmpFileName, (errRead, data) => {\n if (!errRead) {\n fs.unlinkSync(tmpFileName);\n resolve('data:application/pdf;base64,' + Buffer.from(data).toString('base64'));\n }\n else {\n reject('No file');\n }\n \n setTimeout(function() { phInstance.exit(); }, 0);\n });\n }\n else {\n reject('No tmp file');\n console.log('No tmp file ', tmpFileName);\n }\n }, err => {\n console.log(err);\n setTimeout(function() { phInstance.exit(); }, 0);\n });\n }\n }, 1000);\n }, error => {\n reject(error);\n setTimeout(function() { phInstance.exit(); }, 0);\n });\n });\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../src/multi_threaded/helper_thread.ts"],"names":[],"mappings":"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","file":"helper_thread.js","sourcesContent":["import { parentPort } from 'worker_threads';\nlet fs = require('fs');\nimport { HelperThreadMessage } from '../managers/method.manager';\nimport { PDFDocument } from 'pdf-lib';\n\nlet jobQueue: HelperThreadMessage[] = [];\nlet runningQueue = false;\n\nlet pdfCnt = 0;\n\nconsole.log('Helper thread started');\n\nparentPort.on('message', (msg: HelperThreadMessage) => {\n jobQueue.splice(0, 0, msg);\n});\n\nsetInterval(async () => {\n if (!runningQueue && jobQueue.length) {\n runningQueue = true;\n\n let job = jobQueue.pop();\n if (job.method === 'generatePDF') {\n generatePDF(job.params).then(res => {\n job.result = res;\n job.error = false;\n parentPort.postMessage(job);\n runningQueue = false;\n }, err => {\n job.result = err;\n job.error = true;\n parentPort.postMessage(job);\n runningQueue = false;\n });\n }\n else if (job.method === 'mergePDFResolve') {\n mergePDFResolve(job.params).then(res => {\n job.result = res;\n job.error = false;\n parentPort.postMessage(job);\n runningQueue = false;\n }, err => {\n job.result = err;\n job.error = true;\n parentPort.postMessage(job);\n runningQueue = false;\n });\n }\n }\n}, 1);\n\nfunction generatePDF(data: any[]) {\n let html = data[0];\n let fileName = data[1];\n let orientation = data[2] || 'portrait';\n let fontSize = data[3] || '8px';\n\n return new Promise((resolve, reject) => {\n let phantom = require('phantom');\n let phInstance = null;\n \n phantom.create().then(instance => {\n phInstance = instance;\n return instance.createPage();\n }).then(page => {\n let requestsArray = [];\n\n page.on('onResourceRequested', (requestData, networkRequest) => {\n requestsArray.push(requestData.id);\n });\n\n page.on('onResourceReceived', (response) => {\n if (response.stage === 'end') {\n let index = requestsArray.indexOf(response.id);\n requestsArray.splice(index, 1);\n }\n });\n\n page.property('paperSize', {\n format: 'letter',\n margin: '1cm',\n orientation: orientation,\n footer: {\n height: '1cm',\n contents: phInstance.callback((pageNum, numPages) => {\n return '<span style=\\'float:right; font-size: 12px;\\'>Page ' + pageNum + ' of ' + numPages + '</span>';\n })\n }\n });\n page.property('content', `\n <head>\n <style>\n @font-face {\n font-family: 'Dejavu Serif', serif;\n font-style: normal;\n font-weight: normal;\n src: url(\"/usr/share/fonts/dejavu/DejaVuSerif.ttf\");\n }\n\n @font-face {\n font-family: 'Dejavu Serif', serif;\n font-style: normal;\n font-weight: bold;\n src: url(\"/usr/share/fonts/dejavu/DejaVuSerif-Bold.ttf\");\n }\n\n @font-face {\n font-family: 'Dejavu Serif', serif;\n font-style: italic;\n font-weight: normal;\n src: url(\"/usr/share/fonts/dejavu/DejaVuSerif-Italic.ttf\");\n }\n\n @font-face {\n font-family: 'Dejavu Serif', serif;\n font-style: italic;\n font-weight: bold;\n src: url(\"/usr/share/fonts/dejavu/DejaVuSerif-BoldItalic.ttf\");\n }\n\n body {\n font-family: 'Dejavu Serif', serif;\n font-size: ` + (fontSize ? fontSize : '8px') + `;\n }\n\n .row {\n display: -webkit-flex;\n display: flex;\n flex-wrap: wrap;\n -webkit-flex-wrap: wrap;\n }\n \n .page-break {\n page-break-before: always !important;\n margin-bottom: 1px;\n }\n\n .cell {\n box-sizing: border-box;\n padding : 2px;\n -webkit-flex: 1;\n word-wrap: break-word;\n }\n\n .cell-no-padding {\n box-sizing: border-box;\n -webkit-flex: 1;\n word-wrap: break-word;\n }\n\n .centered {\n -webkit-justify-content: center;\n -webkit-align-items: center;\n display: -webkit-flex;\n text-align: center;\n }\n\n .centered-left {\n -webkit-align-items: center;\n display: -webkit-flex;\n -webkit-justify-content: flex-start;\n }\n\n .centered-right {\n -webkit-justify-content: flex-end;\n -webkit-align-items: center;\n display: -webkit-flex;\n }\n \n .box {\n border: 1px solid black;\n margin: -1px 0px 0px -1px;\n }\n\n .boxNoBorder {\n margin: -1px 0px 0px -1px;\n }\n\n pre {\n white-space: pre-wrap; /* css-3 */\n white-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n white-space: -pre-wrap; /* Opera 4-6 */\n white-space: -o-pre-wrap; /* Opera 7 */\n word-wrap: break-word; /* Internet Explorer 5.5+ */\n font-size: 12px;\n font-family: Open Sans; \n }\n </style>\n </head>\n <body>\n ` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>');\n let tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/\\W/g), '');\n \n let interval = setInterval(() => {\n if (requestsArray.length === 0) {\n clearInterval(interval);\n \n page.render(tmpFileName, {\n format: 'pdf',\n quality: '100'\n }).then(() => {\n if (fs.existsSync(tmpFileName)) {\n fs.readFile(tmpFileName, (errRead, data) => {\n if (!errRead) {\n fs.unlinkSync(tmpFileName);\n resolve('data:application/pdf;base64,' + Buffer.from(data).toString('base64'));\n }\n else {\n reject('No file');\n }\n \n setTimeout(function() { phInstance.exit(); }, 0);\n });\n }\n else {\n reject('No tmp file');\n console.log('No tmp file ', tmpFileName);\n }\n }, err => {\n console.log(err);\n setTimeout(function() { phInstance.exit(); }, 0);\n });\n }\n }, 1000);\n }, error => {\n reject(error);\n setTimeout(function() { phInstance.exit(); }, 0);\n });\n });\n}\n\nfunction mergePDFResolve(data: any[]) {\n let fileDatas = data[0];\n\n return new Promise(async (resolve, reject) => {\n const mergedPdf = await PDFDocument.create();\n\n for (let i = 0; i < fileDatas.length; i++) {\n let fileData = fileDatas[i];\n if (fileData.startsWith('data:application/pdf;base64,')) {\n const pdf = await PDFDocument.load(fileData);\n const copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n copiedPages.forEach((page) => {\n mergedPdf.addPage(page);\n });\n }\n else if (fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/')) {\n const pdf = await PDFDocument.create();\n const img = await pdf.embedJpg(fileData);\n const page = pdf.addPage();\n let imgDim = img.size();\n if (imgDim.width > page.getWidth() || imgDim.height > page.getWidth()) {\n imgDim = img.scaleToFit(page.getWidth(), page.getHeight());\n }\n img.scaleToFit(page.getWidth() / 2, page.getHeight() / 2);\n page.drawImage(img, {\n x: page.getWidth() / 2 - imgDim.width / 2,\n y: page.getHeight() / 2 - imgDim.height / 2,\n width: imgDim.width,\n height: imgDim.height,\n });\n const copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n copiedPages.forEach((page) => {\n mergedPdf.addPage(page);\n });\n }\n else if (fileData.startsWith('data:image/png;base64,iVBOR')) {\n const pdf = await PDFDocument.create();\n const img = await pdf.embedPng(fileData);\n const page = pdf.addPage();\n let imgDim = img.size();\n if (imgDim.width > page.getWidth() || imgDim.height > page.getWidth()) {\n imgDim = img.scaleToFit(page.getWidth(), page.getHeight());\n }\n img.scaleToFit(page.getWidth() / 2, page.getHeight() / 2);\n page.drawImage(img, {\n x: page.getWidth() / 2 - imgDim.width / 2,\n y: page.getHeight() / 2 - imgDim.height / 2,\n width: imgDim.width,\n height: imgDim.height,\n });\n const copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n copiedPages.forEach((page) => {\n mergedPdf.addPage(page);\n });\n }\n \n else {\n console.log('Error - unsupported!!', fileData.slice(0, 60));\n }\n }\n\n const b64PDF = await mergedPdf.saveAsBase64({ dataUri: true });\n\n resolve(b64PDF);\n });\n}"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@resolveio/server-lib",
|
|
3
|
-
"version": "12.0.
|
|
3
|
+
"version": "12.0.9",
|
|
4
4
|
"description": "",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"package": "npm run build-prod && npm pack ./dist",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"author": "",
|
|
13
13
|
"license": "ISC",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@aws-sdk/client-s3": "3.
|
|
16
|
-
"@aws-sdk/s3-request-presigner": "3.
|
|
15
|
+
"@aws-sdk/client-s3": "3.40.1",
|
|
16
|
+
"@aws-sdk/s3-request-presigner": "3.40.1",
|
|
17
17
|
"bent": "7.3.12",
|
|
18
18
|
"body-parser": "1.19.0",
|
|
19
19
|
"clone": "2.1.2",
|