@resolveio/server-lib 20.7.10 → 20.7.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cron/cron.js +1 -1
- package/cron/cron.js.map +1 -1
- package/managers/method.manager.d.ts +2 -2
- package/managers/method.manager.js +1 -1
- package/managers/method.manager.js.map +1 -1
- package/methods/pdf.js +1 -1
- package/methods/pdf.js.map +1 -1
- package/package.json +1 -1
- package/resolveio-server-app.js +1 -1
- package/resolveio-server-app.js.map +1 -1
- package/server-app.js +1 -1
- package/server-app.js.map +1 -1
package/methods/pdf.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/methods/pdf.ts"],"names":["fs","require","path","pdf_lib_1","puppeteer","simpl_schema_1","flag_collection_1","pdfCnt","loadPDFMethods","methodManager","methods","generatePDF","check","default","html","type","String","fileName","orientation","optional","fontSize","upload","Boolean","uploadFileOrder","Number","uploadFileType","function","args","browser","Flags","findOne","enableDebugFlag","_a","sent","value","launch","headless","devtools","ignoreDefaultArgs","newPage","page","pathToFont","existsSync","join","__dirname","this","clientDir","dejavuserif_woff","Buffer","from","readFileSync","buffer","toString","dejavuserifBold_woff","dejavuserifItalic_woff","dejavuserifBoldItalic_woff","content","replace","RegExp","setContent","waitUntil","evaluateHandle","tmpFileName","pdf","scale","landscape","format","margin","top","bottom","left","right","printBackground","displayHeaderFooter","headerTemplate","footerTemplate","timeout","setViewport","width","height","close","readFile","errRead","data","message","unlinkSync","fileData","_this","callMethod","Math","ceil","length","Error","generatePDFNoPageNumber","mergePDFResolve","fileKeys","Array","fileKeys.$","fileType","resSigneds","promises_1","forEach","signedUrl","push","Promise","all","fileDatas","PDFDocument","create","mergedPdf_1","i","startsWith","load","updateMetadata","parseSpeed","ParseSpeeds","Fastest","ignoreEncryption","copyPages","getPageIndices","addPage","embedJpg","img","imgDim","scaleToFit","getWidth","getHeight","drawImage","x","y","embedPng","console","log","slice","error_1","concat","save","mergedPDFUint8","b64PDF","err_1","mergePDFResolveNoSave","promises_2","mergedPdf_2","error_2","err_2","mergePDFResolveHtml","htmls","htmls.$","mergedPdf","error_3","exports"],"mappings":"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","file":"pdf.js","sourcesContent":["import * as fs from 'fs';\nimport * as path from 'path';\nimport { ParseSpeeds, PDFDocument } from 'pdf-lib';\nimport * as puppeteer from 'puppeteer';\nimport SimpleSchema from 'simpl-schema';\nimport { Flags } from '../collections/flag.collection';\nimport { MethodManager } from '../managers/method.manager';\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: async function(html, fileName, orientation = 'portrait', fontSize = '12px', upload = false, uploadFileOrder = -1, uploadFileType = '') {\n\t\t\t\t// console.log(new Date(), 'GENERATE PDF CALL', fileName, orientation, fontSize, upload);\n\n\t\t\t\tconst args = [\n\t\t\t\t\t\"--disable-dev-shm-usage\",\n\t\t\t\t\t\"--no-sandbox\",\n\t\t\t\t\t\"--disable-setuid-sandbox\",\n\t\t\t\t\t\"--disable-accelerated-2d-canvas\",\n\t\t\t\t\t\"--disable-gpu\",\n\t\t\t\t\t\"--allow-file-access-from-files\", \n\t\t\t\t\t\"--enable-local-file-accesses\",\n\t\t\t\t\t'--font-render-hinting=none'\n\t\t\t\t];\n\n\t\t\t\tlet browser = null;\n\n\t\t\t\tlet enableDebugFlag = await Flags.findOne({type: 'Enable Debug PDF'});\n\t\t\t\t\n\t\t\t\tif (enableDebugFlag && enableDebugFlag.value) {\n\t\t\t\t\tbrowser = await puppeteer.launch({\n\t\t\t\t\t\theadless: false, // run in headless mode\n\t\t\t\t\t\tdevtools: true, // run with dev tools\n\t\t\t\t\t\targs,\n\t\t\t\t\t\tignoreDefaultArgs: [\"--disable-extensions\"]\n\t\t\t\t\t}); // run browser\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tbrowser = await puppeteer.launch({\n\t\t\t\t\t\theadless: true, // run in headless mode\n\t\t\t\t\t\tdevtools: false, // run with dev tools\n\t\t\t\t\t\targs,\n\t\t\t\t\t\tignoreDefaultArgs: [\"--disable-extensions\"]\n\t\t\t\t\t}); // run browser\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst page = await browser.newPage(); // create new tab\n\n\t\t\t\tlet pathToFont = '';\n\n\t\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\tpathToFont = path.join(__dirname, ('../private/fonts/'));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\tpathToFont = path.join(this.clientDir, ('./private/fonts/'));\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tpathToFont = '/usr/share/fonts/dejavu/';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet dejavuserif_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif.woff').buffer).toString('base64');\n\t\t\t\tlet dejavuserifBold_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bold.woff').buffer).toString('base64');\n\t\t\t\tlet dejavuserifItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-italic.woff').buffer).toString('base64');\n\t\t\t\tlet dejavuserifBoldItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bolditalic.woff').buffer).toString('base64');\n\n\t\t\t\tlet content = `\n\t\t\t\t\t<head>\n\t\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserif_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBold_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBoldItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbody {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\tfont-size: ` + (fontSize ? fontSize : '12px') + `;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\tpage-break-inside: avoid !important;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\tpadding-top: 1px;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t.box {\n\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\t\t\t\t\t\t\twhite-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n\t\t\t\t\t\t\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\t\t\t\t\t\t\tword-wrap: break-word; /* Internet Explorer 5.5+ */\n\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif'; \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t</head>\n\t\t\t\t\t<body>\n\t\t\t\t` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>';\n\n\t\t\t\tawait page.setContent(content, { waitUntil: ['domcontentloaded', 'load', 'networkidle0'] });\n\t\t\t\tawait page.evaluateHandle('document.fonts.ready');\n\t\t\t\t\n\t\t\t\tlet tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/[^0-9\\.a-zA-Z]/g), '');\t\n\t\t\t\n\t\t\t\tawait page.pdf({\n\t\t\t\t\tscale: 1,\n\t\t\t\t\tlandscape: orientation === 'portrait' ? false : true,\n\t\t\t\t\tformat: 'letter',\n\t\t\t\t\tmargin: {\n\t\t\t\t\t\ttop: '1cm',\n\t\t\t\t\t\tbottom: '1cm',\n\t\t\t\t\t\tleft: '1cm',\n\t\t\t\t\t\tright: '1cm'\n\t\t\t\t\t},\n\t\t\t\t\tprintBackground: true,\n\t\t\t\t\tdisplayHeaderFooter: true,\n\t\t\t\t\theaderTemplate: `\n\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t#header { \n\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important; \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t`,\n\t\t\t\t\tfooterTemplate: `\n\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t\t<div style=\"padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;\">\n\t\t\t\t\t\t\tPage <span class=\"pageNumber\"></span> of <span class=\"totalPages\"></span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`,\n\t\t\t\t\tpath: path.join(__dirname, (tmpFileName)),\n\t\t\t\t\ttimeout: 0\n\t\t\t\t});\n\n\t\t\t\tif (enableDebugFlag && enableDebugFlag.value) {\n\t\t\t\t\t// Set viewport dimensions based on orientation\n\t\t\t\t\tif (orientation === 'landscape') {\n\t\t\t\t\t\tawait page.setViewport({ width: 1100, height: 850 });\n\t\t\t\t\t} \n\t\t\t\t\telse {\n\t\t\t\t\t\tawait page.setViewport({ width: 850, height: 1100 });\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tawait browser.close();\n\t\t\t\t\n\t\t\t\tif (fs.existsSync(path.join(__dirname, (tmpFileName)))) {\n\t\t\t\t\tfs.readFile(path.join(__dirname, (tmpFileName)), (errRead, data) => {\n\t\t\t\t\t\tif (!errRead) {\n\t\t\t\t\t\t\tfs.unlinkSync(path.join(__dirname, (tmpFileName)));\n\t\t\t\t\t\t\tif (!upload) {\n\t\t\t\t\t\t\t\treturn 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');\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 = 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');\n\t\t\t\t\t\t\t\treturn this.callMethod('uploadFileAndSave', fileName, fileData, (4 * Math.ceil(fileData.length / 3)), uploadFileOrder !== null ? uploadFileOrder : -1, uploadFileType, 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\terrRead.message = 'Error in Generate PDF: No file - ' + errRead.message;\n\t\t\t\t\t\t\tthrow errRead;\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\tthrow new Error('Error in Generate PDF: No tmp file');\n\t\t\t\t\tconsole.log('No tmp file ', tmpFileName);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tgeneratePDFNoPageNumber: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\thtml: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\torientation: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tfontSize: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tupload: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileOrder: {\n\t\t\t\t\ttype: Number,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(html, fileName, orientation = 'portrait', fontSize = '12px', upload = false, uploadFileOrder = -1, uploadFileType = '') {\n\t\t\t\t// console.log(new Date(), 'GENERATE PDF CALL', fileName, orientation, fontSize, upload);\n\n\t\t\t\tconst args = [\n\t\t\t\t\t\"--disable-dev-shm-usage\",\n\t\t\t\t\t\"--no-sandbox\",\n\t\t\t\t\t\"--disable-setuid-sandbox\",\n\t\t\t\t\t\"--disable-accelerated-2d-canvas\",\n\t\t\t\t\t\"--disable-gpu\",\n\t\t\t\t\t\"--allow-file-access-from-files\", \n\t\t\t\t\t\"--enable-local-file-accesses\",\n\t\t\t\t\t'--font-render-hinting=none'\n\t\t\t\t];\n\n\t\t\t\tconst browser = await puppeteer.launch({\n\t\t\t\t\theadless: true, // run in headless mode\n\t\t\t\t\tdevtools: false, // run with dev tools\n\t\t\t\t\targs,\n\t\t\t\t\tignoreDefaultArgs: [\"--disable-extensions\"]\n\t\t\t\t}); // run browser\n\t\t\t\t\n\t\t\t\tconst page = await browser.newPage(); // create new tab\n\n\t\t\t\tlet pathToFont = '';\n\n\t\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\tpathToFont = path.join(__dirname, ('../private/fonts/'));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\tpathToFont = path.join(this.clientDir, ('./private/fonts/'));\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tpathToFont = '/usr/share/fonts/dejavu/';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet dejavuserif_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif.woff').buffer).toString('base64');\n\t\t\t\tlet dejavuserifBold_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bold.woff').buffer).toString('base64');\n\t\t\t\tlet dejavuserifItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-italic.woff').buffer).toString('base64');\n\t\t\t\tlet dejavuserifBoldItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bolditalic.woff').buffer).toString('base64');\n\n\t\t\t\tlet content = `\n\t\t\t\t\t<head>\n\t\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserif_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBold_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBoldItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbody {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\tfont-size: ` + (fontSize ? fontSize : '12px') + `;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\tpage-break-inside: avoid !important;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\tpadding-top: 1px;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t.box {\n\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\t\t\t\t\t\t\twhite-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n\t\t\t\t\t\t\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\t\t\t\t\t\t\tword-wrap: break-word; /* Internet Explorer 5.5+ */\n\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif'; \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t\t<meta charset=\"UTF-8\">\n\t\t\t\t\t</head>\n\t\t\t\t\t<body>\n\t\t\t\t` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>';\n\n\t\t\t\tawait page.setContent(content, { waitUntil: ['domcontentloaded', 'load', 'networkidle0'] });\n\t\t\t\tawait page.evaluateHandle('document.fonts.ready');\n\t\t\t\t\n\t\t\t\tlet tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/[^0-9\\.a-zA-Z]/g), '');\t\n\t\t\t\n\t\t\t\tawait page.pdf({\n\t\t\t\t\tscale: 1,\n\t\t\t\t\tlandscape: orientation === 'portrait' ? false : true,\n\t\t\t\t\tformat: 'letter',\n\t\t\t\t\tmargin: {\n\t\t\t\t\t\ttop: '1cm',\n\t\t\t\t\t\tbottom: '1cm',\n\t\t\t\t\t\tleft: '1cm',\n\t\t\t\t\t\tright: '1cm'\n\t\t\t\t\t},\n\t\t\t\t\tprintBackground: true,\n\t\t\t\t\tdisplayHeaderFooter: true,\n\t\t\t\t\theaderTemplate: `\n\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t#header { \n\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important; \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t`,\n\t\t\t\t\tfooterTemplate: `\n\t\t\t\t\t<style>\n\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t}\n\t\t\t\t\t</style>\n\t\t\t\t\t<div style=\"padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;\">\n\t\t\t\t\t\t\n\t\t\t\t\t</div>\n\t\t\t\t\t`,\n\t\t\t\t\tpath: path.join(__dirname, (tmpFileName)),\n\t\t\t\t\ttimeout: 0\n\t\t\t\t});\n\t\t\t\tawait browser.close();\n\t\t\t\t\n\t\t\t\tif (fs.existsSync(path.join(__dirname, (tmpFileName)))) {\n\t\t\t\t\tfs.readFile(path.join(__dirname, (tmpFileName)), (errRead, data) => {\n\t\t\t\t\t\tif (!errRead) {\n\t\t\t\t\t\t\tfs.unlinkSync(path.join(__dirname, (tmpFileName)));\n\t\t\t\t\t\t\tif (!upload) {\n\t\t\t\t\t\t\t\treturn 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');\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 = 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');\n\t\t\t\t\t\t\t\treturn this.callMethod('uploadFileAndSave', fileName, fileData, (4 * Math.ceil(fileData.length / 3)), uploadFileOrder !== null ? uploadFileOrder : -1, uploadFileType, 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\terrRead.message = 'Error in Generate PDF No Page Number: No file - ' + errRead.message;\n\t\t\t\t\t\t\tthrow errRead;\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\tthrow new Error('Error in Generate PDF No Page Number: No tmp file');\n\t\t\t\t\tconsole.log('No tmp file ', tmpFileName);\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: async function(fileKeys: string[], fileName: string, fileType?: string) {\n\t\t\t\ttry {\n\t\t\t\t\tlet resSigneds = await this.callMethod('getSignedUrls', fileKeys, 900);\n\n\t\t\t\t\tif (resSigneds && resSigneds.length) {\n\t\t\t\t\t\tlet promises = [];\n\t\n\t\t\t\t\t\tresSigneds.forEach((signedUrl) => {\n\t\t\t\t\t\t\tpromises.push(this.callMethod('getDataURIfromURL', signedUrl));\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet fileDatas = await Promise.all(promises);\n\t\t\t\t\t\tconst mergedPdf = await PDFDocument.create();\n\n\t\t\t\t\t\tfor (let i = 0; i < fileDatas.length; i++) {\n\t\t\t\t\t\t\tlet fileData = fileDatas[i];\n\n\t\t\t\t\t\t\tif (fileData) {\n\t\t\t\t\t\t\t\ttry {\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, { updateMetadata: false, parseSpeed: ParseSpeeds.Fastest, ignoreEncryption: true });\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.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\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.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\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 {\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\tthrow new Error('Error in Merge PDF Resolve: Unsupported document type - ' + fileData.slice(0, 60));\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\tcatch (error) {\n\t\t\t\t\t\t\t\t\tconsole.log('Error processing fileData:', fileData.slice(0, 60), error.message);\n\t\t\t\t\t\t\t\t\terror.message = `Error in Merge PDF Resolve: Error processing fileData: ${fileData.slice(0, 60)} - ${error.message}`;\n\t\t\t\t\t\t\t\t\tthrow error;\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\tconsole.log('Error - no filedata!!', fileData);\n\t\t\t\t\t\t\t\tthrow new Error('Error in Merge PDF Resolve: No File Data');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet mergedPDFUint8 = await mergedPdf.save();\n\n\t\t\t\t\t\tconst b64PDF = 'data:application/pdf;base64,' + Buffer.from(mergedPDFUint8).toString('base64');\n\n\t\t\t\t\t\treturn this.callMethod('uploadFileAndSave', fileName, b64PDF, (4 * Math.ceil(b64PDF.length / 3)), -1, fileType, false);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.message = 'Error in Merge PDF Resolve: PDF Merge - Get Signed URLs - ' + err.message;\n\t\t\t\t\t\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t},\t\t\n\t\tmergePDFResolveNoSave: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileKeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'fileKeys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(fileKeys: string[]) {\n\t\t\t\ttry {\n\t\t\t\t\tlet resSigneds = await this.callMethod('getSignedUrls', fileKeys, 900);\n\t\t\t\t\tif (resSigneds && resSigneds.length) {\n\t\t\t\t\t\tlet promises = [];\n\n\t\t\t\t\t\tresSigneds.forEach((signedUrl) => {\n\t\t\t\t\t\t\tpromises.push(this.callMethod('getDataURIfromURL', signedUrl));\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet fileDatas = await Promise.all(promises);\n\t\t\t\t\t\tconst mergedPdf = await PDFDocument.create();\n\n\t\t\t\t\t\tfor (let i = 0; i < fileDatas.length; i++) {\n\t\t\t\t\t\t\tlet fileData = fileDatas[i];\n\n\t\t\t\t\t\t\tif (fileData) {\n\t\t\t\t\t\t\t\ttry {\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, { updateMetadata: false, parseSpeed: ParseSpeeds.Fastest, ignoreEncryption: true});\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.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\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.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\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 {\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\t\t\t\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\t\t\t\tconsole.log('Error processing fileData:', fileData.slice(0, 60), error);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconsole.log('Error - no filedata!!', fileData);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet mergedPDFUint8 = await mergedPdf.save();\n\n\t\t\t\t\t\tconst b64PDF = 'data:application/pdf;base64,' + Buffer.from(mergedPDFUint8).toString('base64');\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn b64PDF;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in Merge PDF Resolve No Save: No signed urls');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.message = `Error in Merge PDF Resolve: ${err.message}`;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tmergePDFResolveHtml: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\thtmls: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'htmls.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tsave: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(htmls: string[], fileName: string, fileType?: string, save = true) {\n\t\t\t\tconst mergedPdf = await PDFDocument.create();\n\n\t\t\t\tfor (let i = 0; i < htmls.length; i++) {\n\t\t\t\t\tlet fileData = htmls[i];\n\n\t\t\t\t\tif (fileData) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif (fileData.startsWith('data:application/pdf;base64,')) {\n\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.load(fileData, { updateMetadata: false, parseSpeed: ParseSpeeds.Fastest, ignoreEncryption: true });\n\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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 if (fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/')) {\n\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\tconst img = await pdf.embedJpg(fileData);\n\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\theight: imgDim.height,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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 if (fileData.startsWith('data:image/png;base64,iVBOR')) {\n\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\tconst img = await pdf.embedPng(fileData);\n\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\theight: imgDim.height,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\tconsole.log('Error - unsupported!!', fileData.slice(0, 60));\n\t\t\t\t\t\t\t\tthrow new Error('Error in Merge PDF Resolve HTML: Unsupported file - ' + fileData.slice(0, 60));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\t\tconsole.log('Error processing fileData:', fileData.slice(0, 60), error);\n\t\t\t\t\t\t\terror.message = `Error in Merge PDF Resolve HTML: Error processing filedata - ${error.message}`;\n\t\t\t\t\t\t\tthrow error;\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\tconsole.log('Error - no filedata!!', fileData);\n\t\t\t\t\t\tthrow new Error('Error in Merge PDF Resolve HTML: No File data');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet mergedPDFUint8 = await mergedPdf.save();\n\n\t\t\t\tconst b64PDF = 'data:application/pdf;base64,' + Buffer.from(mergedPDFUint8).toString('base64');\n\n\t\t\t\tif (save) {\n\t\t\t\t\treturn this.callMethod('uploadFileAndSave', fileName, b64PDF, (4 * Math.ceil(b64PDF.length / 3)), -1, fileType, false);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn b64PDF;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../src/methods/pdf.ts"],"names":["fs","require","path","pdf_lib_1","puppeteer","simpl_schema_1","flag_collection_1","pdfCnt","loadPDFMethods","methodManager","methods","generatePDF","check","default","html","type","String","fileName","orientation","optional","fontSize","upload","Boolean","uploadFileOrder","Number","uploadFileType","function","args","browser","Flags","findOne","enableDebugFlag","_a","sent","value","launch","headless","devtools","ignoreDefaultArgs","newPage","page","pathToFont","existsSync","join","__dirname","this","clientDir","dejavuserif_woff","Buffer","from","readFileSync","buffer","toString","dejavuserifBold_woff","dejavuserifItalic_woff","dejavuserifBoldItalic_woff","content","replace","RegExp","setContent","waitUntil","evaluateHandle","tmpFileName","pdf","scale","landscape","format","margin","top","bottom","left","right","printBackground","displayHeaderFooter","headerTemplate","footerTemplate","timeout","setViewport","width","height","close","console","log","Error","data","unlinkSync","fileData","callMethod","Math","ceil","length","errRead","message","generatePDFNoPageNumber","mergePDFResolve","fileKeys","Array","fileKeys.$","fileType","resSigneds","promises_1","forEach","signedUrl","push","_this","Promise","all","fileDatas","PDFDocument","create","mergedPdf_1","i","startsWith","load","updateMetadata","parseSpeed","ParseSpeeds","Fastest","ignoreEncryption","copyPages","getPageIndices","addPage","embedJpg","img","imgDim","scaleToFit","getWidth","getHeight","drawImage","x","y","embedPng","slice","error_1","concat","save","mergedPDFUint8","b64PDF","err_1","mergePDFResolveNoSave","promises_2","mergedPdf_2","error_2","err_2","mergePDFResolveHtml","htmls","htmls.$","mergedPdf","error_3","exports"],"mappings":"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","file":"pdf.js","sourcesContent":["import * as fs from 'fs';\nimport * as path from 'path';\nimport { ParseSpeeds, PDFDocument } from 'pdf-lib';\nimport * as puppeteer from 'puppeteer';\nimport SimpleSchema from 'simpl-schema';\nimport { Flags } from '../collections/flag.collection';\nimport { MethodManager } from '../managers/method.manager';\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: async function(html, fileName, orientation = 'portrait', fontSize = '12px', upload = false, uploadFileOrder = -1, uploadFileType = '') {\n\t\t\t\t// console.log(new Date(), 'GENERATE PDF CALL', fileName, orientation, fontSize, upload);\n\n\t\t\t\tconst args = [\n\t\t\t\t\t\"--disable-dev-shm-usage\",\n\t\t\t\t\t\"--no-sandbox\",\n\t\t\t\t\t\"--disable-setuid-sandbox\",\n\t\t\t\t\t\"--disable-accelerated-2d-canvas\",\n\t\t\t\t\t\"--disable-gpu\",\n\t\t\t\t\t\"--allow-file-access-from-files\", \n\t\t\t\t\t\"--enable-local-file-accesses\",\n\t\t\t\t\t'--font-render-hinting=none'\n\t\t\t\t];\n\n\t\t\t\tlet browser = null;\n\n\t\t\t\tlet enableDebugFlag = await Flags.findOne({type: 'Enable Debug PDF'});\n\t\t\t\t\n\t\t\t\tif (enableDebugFlag && enableDebugFlag.value) {\n\t\t\t\t\tbrowser = await puppeteer.launch({\n\t\t\t\t\t\theadless: false, // run in headless mode\n\t\t\t\t\t\tdevtools: true, // run with dev tools\n\t\t\t\t\t\targs,\n\t\t\t\t\t\tignoreDefaultArgs: [\"--disable-extensions\"]\n\t\t\t\t\t}); // run browser\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tbrowser = await puppeteer.launch({\n\t\t\t\t\t\theadless: true, // run in headless mode\n\t\t\t\t\t\tdevtools: false, // run with dev tools\n\t\t\t\t\t\targs,\n\t\t\t\t\t\tignoreDefaultArgs: [\"--disable-extensions\"]\n\t\t\t\t\t}); // run browser\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst page = await browser.newPage(); // create new tab\n\n\t\t\t\tlet pathToFont = '';\n\n\t\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\tpathToFont = path.join(__dirname, ('../private/fonts/'));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\tpathToFont = path.join(this.clientDir, ('./private/fonts/'));\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tpathToFont = '/usr/share/fonts/dejavu/';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet dejavuserif_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif.woff').buffer).toString('base64');\n\t\t\t\tlet dejavuserifBold_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bold.woff').buffer).toString('base64');\n\t\t\t\tlet dejavuserifItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-italic.woff').buffer).toString('base64');\n\t\t\t\tlet dejavuserifBoldItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bolditalic.woff').buffer).toString('base64');\n\n\t\t\t\tlet content = `\n\t\t\t\t\t<head>\n\t\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserif_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBold_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBoldItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbody {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\tfont-size: ` + (fontSize ? fontSize : '12px') + `;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\tpage-break-inside: avoid !important;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\tpadding-top: 1px;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t.box {\n\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\t\t\t\t\t\t\twhite-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n\t\t\t\t\t\t\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\t\t\t\t\t\t\tword-wrap: break-word; /* Internet Explorer 5.5+ */\n\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif'; \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t</head>\n\t\t\t\t\t<body>\n\t\t\t\t` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>';\n\n\t\t\t\tawait page.setContent(content, { waitUntil: ['domcontentloaded', 'load', 'networkidle0'] });\n\t\t\t\tawait page.evaluateHandle('document.fonts.ready');\n\t\t\t\t\n\t\t\t\tlet tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/[^0-9\\.a-zA-Z]/g), '');\t\n\t\t\t\n\t\t\t\tawait page.pdf({\n\t\t\t\t\tscale: 1,\n\t\t\t\t\tlandscape: orientation === 'portrait' ? false : true,\n\t\t\t\t\tformat: 'letter',\n\t\t\t\t\tmargin: {\n\t\t\t\t\t\ttop: '1cm',\n\t\t\t\t\t\tbottom: '1cm',\n\t\t\t\t\t\tleft: '1cm',\n\t\t\t\t\t\tright: '1cm'\n\t\t\t\t\t},\n\t\t\t\t\tprintBackground: true,\n\t\t\t\t\tdisplayHeaderFooter: true,\n\t\t\t\t\theaderTemplate: `\n\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t#header { \n\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important; \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t`,\n\t\t\t\t\tfooterTemplate: `\n\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t\t<div style=\"padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;\">\n\t\t\t\t\t\t\tPage <span class=\"pageNumber\"></span> of <span class=\"totalPages\"></span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`,\n\t\t\t\t\tpath: path.join(__dirname, (tmpFileName)),\n\t\t\t\t\ttimeout: 0\n\t\t\t\t});\n\n\t\t\t\tif (enableDebugFlag && enableDebugFlag.value) {\n\t\t\t\t\t// Set viewport dimensions based on orientation\n\t\t\t\t\tif (orientation === 'landscape') {\n\t\t\t\t\t\tawait page.setViewport({ width: 1100, height: 850 });\n\t\t\t\t\t} \n\t\t\t\t\telse {\n\t\t\t\t\t\tawait page.setViewport({ width: 850, height: 1100 });\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tawait browser.close();\n\t\t\t\t\n\t\t\t\tif (fs.existsSync(path.join(__dirname, (tmpFileName)))) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet data = fs.readFileSync(path.join(__dirname, (tmpFileName)));\n\t\t\t\t\t\tfs.unlinkSync(path.join(__dirname, (tmpFileName)));\n\t\t\t\t\t\tif (!upload) {\n\t\t\t\t\t\t\treturn 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tlet fileData = 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');\n\t\t\t\t\t\t\treturn this.callMethod('uploadFileAndSave', fileName, fileData, (4 * Math.ceil(fileData.length / 3)), uploadFileOrder !== null ? uploadFileOrder : -1, uploadFileType, false);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (errRead) {\n\t\t\t\t\t\terrRead.message = 'Error in Generate PDF: No file - ' + errRead.message;\n\t\t\t\t\t\tthrow errRead;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconsole.log('No tmp file ', tmpFileName);\n\t\t\t\t\tthrow new Error('Error in Generate PDF: No tmp file');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tgeneratePDFNoPageNumber: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\thtml: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\torientation: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tfontSize: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tupload: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileOrder: {\n\t\t\t\t\ttype: Number,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tuploadFileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(html, fileName, orientation = 'portrait', fontSize = '12px', upload = false, uploadFileOrder = -1, uploadFileType = '') {\n\t\t\t\t// console.log(new Date(), 'GENERATE PDF CALL', fileName, orientation, fontSize, upload);\n\n\t\t\t\tconst args = [\n\t\t\t\t\t\"--disable-dev-shm-usage\",\n\t\t\t\t\t\"--no-sandbox\",\n\t\t\t\t\t\"--disable-setuid-sandbox\",\n\t\t\t\t\t\"--disable-accelerated-2d-canvas\",\n\t\t\t\t\t\"--disable-gpu\",\n\t\t\t\t\t\"--allow-file-access-from-files\", \n\t\t\t\t\t\"--enable-local-file-accesses\",\n\t\t\t\t\t'--font-render-hinting=none'\n\t\t\t\t];\n\n\t\t\t\tconst browser = await puppeteer.launch({\n\t\t\t\t\theadless: true, // run in headless mode\n\t\t\t\t\tdevtools: false, // run with dev tools\n\t\t\t\t\targs,\n\t\t\t\t\tignoreDefaultArgs: [\"--disable-extensions\"]\n\t\t\t\t}); // run browser\n\t\t\t\t\n\t\t\t\tconst page = await browser.newPage(); // create new tab\n\n\t\t\t\tlet pathToFont = '';\n\n\t\t\t\tif (fs.existsSync(path.join(__dirname, ('../private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\tpathToFont = path.join(__dirname, ('../private/fonts/'));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (fs.existsSync(path.join(this.clientDir, ('./private/fonts/dejavuserif.woff')))) {\n\t\t\t\t\t\tpathToFont = path.join(this.clientDir, ('./private/fonts/'));\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tpathToFont = '/usr/share/fonts/dejavu/';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet dejavuserif_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif.woff').buffer).toString('base64');\n\t\t\t\tlet dejavuserifBold_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bold.woff').buffer).toString('base64');\n\t\t\t\tlet dejavuserifItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-italic.woff').buffer).toString('base64');\n\t\t\t\tlet dejavuserifBoldItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bolditalic.woff').buffer).toString('base64');\n\n\t\t\t\tlet content = `\n\t\t\t\t\t<head>\n\t\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserif_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: normal;\n\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBold_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\tfont-weight: normal;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@font-face {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif';\n\t\t\t\t\t\t\t\tfont-style: italic;\n\t\t\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\t\t\tsrc: url(\"` + dejavuserifBoldItalic_woff + `\") format('woff');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbody {\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif', serif;\n\t\t\t\t\t\t\t\tfont-size: ` + (fontSize ? fontSize : '12px') + `;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.row {\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\t-webkit-flex-wrap: wrap;\n\t\t\t\t\t\t\t\tpage-break-inside: avoid !important;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.page-break {\n\t\t\t\t\t\t\t\tpage-break-before: always !important;\n\t\t\t\t\t\t\t\tpadding-top: 1px;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.cell {\n\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\tpadding : 2px;\n\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.cell-no-padding {\n\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t\t-webkit-flex: 1;\n\t\t\t\t\t\t\t\tword-wrap: break-word;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.centered {\n\t\t\t\t\t\t\t\t-webkit-justify-content: center;\n\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.centered-left {\n\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t\t-webkit-justify-content: flex-start;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.centered-right {\n\t\t\t\t\t\t\t\t-webkit-justify-content: flex-end;\n\t\t\t\t\t\t\t\t-webkit-align-items: center;\n\t\t\t\t\t\t\t\tdisplay: -webkit-flex;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t.box {\n\t\t\t\t\t\t\t\tborder: 1px solid black;\n\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t.boxNoBorder {\n\t\t\t\t\t\t\t\tmargin: -1px 0px 0px -1px;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tpre {\n\t\t\t\t\t\t\t\twhite-space: pre-wrap; /* css-3 */\n\t\t\t\t\t\t\t\twhite-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n\t\t\t\t\t\t\t\twhite-space: -pre-wrap; /* Opera 4-6 */\n\t\t\t\t\t\t\t\twhite-space: -o-pre-wrap; /* Opera 7 */\n\t\t\t\t\t\t\t\tword-wrap: break-word; /* Internet Explorer 5.5+ */\n\t\t\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\t\t\tfont-family: 'Dejavu Serif'; \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t\t<meta charset=\"UTF-8\">\n\t\t\t\t\t</head>\n\t\t\t\t\t<body>\n\t\t\t\t` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>';\n\n\t\t\t\tawait page.setContent(content, { waitUntil: ['domcontentloaded', 'load', 'networkidle0'] });\n\t\t\t\tawait page.evaluateHandle('document.fonts.ready');\n\t\t\t\t\n\t\t\t\tlet tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/[^0-9\\.a-zA-Z]/g), '');\t\n\t\t\t\n\t\t\t\tawait page.pdf({\n\t\t\t\t\tscale: 1,\n\t\t\t\t\tlandscape: orientation === 'portrait' ? false : true,\n\t\t\t\t\tformat: 'letter',\n\t\t\t\t\tmargin: {\n\t\t\t\t\t\ttop: '1cm',\n\t\t\t\t\t\tbottom: '1cm',\n\t\t\t\t\t\tleft: '1cm',\n\t\t\t\t\t\tright: '1cm'\n\t\t\t\t\t},\n\t\t\t\t\tprintBackground: true,\n\t\t\t\t\tdisplayHeaderFooter: true,\n\t\t\t\t\theaderTemplate: `\n\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t#header { \n\t\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important; \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t\t<span></span>\n\t\t\t\t\t`,\n\t\t\t\t\tfooterTemplate: `\n\t\t\t\t\t<style>\n\t\t\t\t\t\t#footer { \n\t\t\t\t\t\t\tpadding: 0 0 10px 10px !important;\n\t\t\t\t\t\t\tfont-size: 10px;\n\t\t\t\t\t\t\tfont-family: san-serif;\n\t\t\t\t\t\t}\n\t\t\t\t\t</style>\n\t\t\t\t\t<div style=\"padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;\">\n\t\t\t\t\t\t\n\t\t\t\t\t</div>\n\t\t\t\t\t`,\n\t\t\t\t\tpath: path.join(__dirname, (tmpFileName)),\n\t\t\t\t\ttimeout: 0\n\t\t\t\t});\n\t\t\t\tawait browser.close();\n\t\t\t\t\n\t\t\t\tif (fs.existsSync(path.join(__dirname, (tmpFileName)))) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet data = fs.readFileSync(path.join(__dirname, (tmpFileName)))\n\t\t\t\t\t\tfs.unlinkSync(path.join(__dirname, (tmpFileName)));\n\t\t\t\t\t\tif (!upload) {\n\t\t\t\t\t\t\treturn 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tlet fileData = 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');\n\t\t\t\t\t\t\treturn this.callMethod('uploadFileAndSave', fileName, fileData, (4 * Math.ceil(fileData.length / 3)), uploadFileOrder !== null ? uploadFileOrder : -1, uploadFileType, false);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (errRead) {\n\t\t\t\t\t\terrRead.message = 'Error in Generate PDF No Page Number: No file - ' + errRead.message;\n\t\t\t\t\t\tthrow errRead;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconsole.log('No tmp file ', tmpFileName);\n\t\t\t\t\tthrow new Error('Error in Generate PDF No Page Number: No tmp file');\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: async function(fileKeys: string[], fileName: string, fileType?: string) {\n\t\t\t\ttry {\n\t\t\t\t\tlet resSigneds = await this.callMethod('getSignedUrls', fileKeys, 900);\n\n\t\t\t\t\tif (resSigneds && resSigneds.length) {\n\t\t\t\t\t\tlet promises = [];\n\t\n\t\t\t\t\t\tresSigneds.forEach((signedUrl) => {\n\t\t\t\t\t\t\tpromises.push(this.callMethod('getDataURIfromURL', signedUrl));\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet fileDatas = await Promise.all(promises);\n\t\t\t\t\t\tconst mergedPdf = await PDFDocument.create();\n\n\t\t\t\t\t\tfor (let i = 0; i < fileDatas.length; i++) {\n\t\t\t\t\t\t\tlet fileData = fileDatas[i];\n\n\t\t\t\t\t\t\tif (fileData) {\n\t\t\t\t\t\t\t\ttry {\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, { updateMetadata: false, parseSpeed: ParseSpeeds.Fastest, ignoreEncryption: true });\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.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\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.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\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 {\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\tthrow new Error('Error in Merge PDF Resolve: Unsupported document type - ' + fileData.slice(0, 60));\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\tcatch (error) {\n\t\t\t\t\t\t\t\t\tconsole.log('Error processing fileData:', fileData.slice(0, 60), error.message);\n\t\t\t\t\t\t\t\t\terror.message = `Error in Merge PDF Resolve: Error processing fileData: ${fileData.slice(0, 60)} - ${error.message}`;\n\t\t\t\t\t\t\t\t\tthrow error;\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\tconsole.log('Error - no filedata!!', fileData);\n\t\t\t\t\t\t\t\tthrow new Error('Error in Merge PDF Resolve: No File Data');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet mergedPDFUint8 = await mergedPdf.save();\n\n\t\t\t\t\t\tconst b64PDF = 'data:application/pdf;base64,' + Buffer.from(mergedPDFUint8).toString('base64');\n\n\t\t\t\t\t\treturn this.callMethod('uploadFileAndSave', fileName, b64PDF, (4 * Math.ceil(b64PDF.length / 3)), -1, fileType, false);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.message = 'Error in Merge PDF Resolve: PDF Merge - Get Signed URLs - ' + err.message;\n\t\t\t\t\t\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t},\t\t\n\t\tmergePDFResolveNoSave: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileKeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'fileKeys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(fileKeys: string[]) {\n\t\t\t\ttry {\n\t\t\t\t\tlet resSigneds = await this.callMethod('getSignedUrls', fileKeys, 900);\n\t\t\t\t\tif (resSigneds && resSigneds.length) {\n\t\t\t\t\t\tlet promises = [];\n\n\t\t\t\t\t\tresSigneds.forEach((signedUrl) => {\n\t\t\t\t\t\t\tpromises.push(this.callMethod('getDataURIfromURL', signedUrl));\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet fileDatas = await Promise.all(promises);\n\t\t\t\t\t\tconst mergedPdf = await PDFDocument.create();\n\n\t\t\t\t\t\tfor (let i = 0; i < fileDatas.length; i++) {\n\t\t\t\t\t\t\tlet fileData = fileDatas[i];\n\n\t\t\t\t\t\t\tif (fileData) {\n\t\t\t\t\t\t\t\ttry {\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, { updateMetadata: false, parseSpeed: ParseSpeeds.Fastest, ignoreEncryption: true});\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.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\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.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\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 {\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\t\t\t\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\t\t\t\tconsole.log('Error processing fileData:', fileData.slice(0, 60), error);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tconsole.log('Error - no filedata!!', fileData);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet mergedPDFUint8 = await mergedPdf.save();\n\n\t\t\t\t\t\tconst b64PDF = 'data:application/pdf;base64,' + Buffer.from(mergedPDFUint8).toString('base64');\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn b64PDF;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in Merge PDF Resolve No Save: No signed urls');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.message = `Error in Merge PDF Resolve: ${err.message}`;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tmergePDFResolveHtml: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\thtmls: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'htmls.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tsave: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(htmls: string[], fileName: string, fileType?: string, save = true) {\n\t\t\t\tconst mergedPdf = await PDFDocument.create();\n\n\t\t\t\tfor (let i = 0; i < htmls.length; i++) {\n\t\t\t\t\tlet fileData = htmls[i];\n\n\t\t\t\t\tif (fileData) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif (fileData.startsWith('data:application/pdf;base64,')) {\n\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.load(fileData, { updateMetadata: false, parseSpeed: ParseSpeeds.Fastest, ignoreEncryption: true });\n\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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 if (fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/')) {\n\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\tconst img = await pdf.embedJpg(fileData);\n\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\theight: imgDim.height,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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 if (fileData.startsWith('data:image/png;base64,iVBOR')) {\n\t\t\t\t\t\t\t\tconst pdf = await PDFDocument.create();\n\t\t\t\t\t\t\t\tconst img = await pdf.embedPng(fileData);\n\t\t\t\t\t\t\t\tconst page = pdf.addPage();\n\t\t\t\t\t\t\t\tlet imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);\n\t\t\t\t\t\t\t\tpage.drawImage(img, {\n\t\t\t\t\t\t\t\t\tx: page.getWidth() / 2 - imgDim.width / 2,\n\t\t\t\t\t\t\t\t\ty: page.getHeight() / 2 - imgDim.height / 2,\n\t\t\t\t\t\t\t\t\twidth: imgDim.width,\n\t\t\t\t\t\t\t\t\theight: imgDim.height,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tconst copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());\n\t\t\t\t\t\t\t\tcopiedPages.forEach((page) => {\n\t\t\t\t\t\t\t\t\tmergedPdf.addPage(page);\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\tconsole.log('Error - unsupported!!', fileData.slice(0, 60));\n\t\t\t\t\t\t\t\tthrow new Error('Error in Merge PDF Resolve HTML: Unsupported file - ' + fileData.slice(0, 60));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\t\tconsole.log('Error processing fileData:', fileData.slice(0, 60), error);\n\t\t\t\t\t\t\terror.message = `Error in Merge PDF Resolve HTML: Error processing filedata - ${error.message}`;\n\t\t\t\t\t\t\tthrow error;\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\tconsole.log('Error - no filedata!!', fileData);\n\t\t\t\t\t\tthrow new Error('Error in Merge PDF Resolve HTML: No File data');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet mergedPDFUint8 = await mergedPdf.save();\n\n\t\t\t\tconst b64PDF = 'data:application/pdf;base64,' + Buffer.from(mergedPDFUint8).toString('base64');\n\n\t\t\t\tif (save) {\n\t\t\t\t\treturn this.callMethod('uploadFileAndSave', fileName, b64PDF, (4 * Math.ceil(b64PDF.length / 3)), -1, fileType, false);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn b64PDF;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}"]}
|
package/package.json
CHANGED
package/resolveio-server-app.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(e,o,t,v){return new(t=t||Promise)(function(n,r){function fulfilled(e){try{step(v.next(e))}catch(e){r(e)}}function rejected(e){try{step(v.throw(e))}catch(e){r(e)}}function step(e){var r;e.done?n(e.value):((r=e.value)instanceof t?r:new t(function(e){e(r)})).then(fulfilled,rejected)}step((v=v.apply(e,o||[])).next())})},__generator=this&&this.__generator||function(o,t){var v,s,l,i={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},a={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function verb(n){return function(e){var r=[n,e];if(v)throw new TypeError("Generator is already executing.");for(;i=a&&r[a=0]?0:i;)try{if(v=1,s&&(l=2&r[0]?s.return:r[0]?s.throw||((l=s.return)&&l.call(s),0):s.next)&&!(l=l.call(s,r[1])).done)return l;switch(s=0,(r=l?[2&r[0],l.value]:r)[0]){case 0:case 1:l=r;break;case 4:return i.label++,{value:r[1],done:!1};case 5:i.label++,s=r[1],r=[0];continue;case 7:r=i.ops.pop(),i.trys.pop();continue;default:if(!(l=0<(l=i.trys).length&&l[l.length-1])&&(6===r[0]||2===r[0])){i=0;continue}if(3===r[0]&&(!l||r[1]>l[0]&&r[1]<l[3]))i.label=r[1];else if(6===r[0]&&i.label<l[1])i.label=l[1],l=r;else{if(!(l&&i.label<l[2])){l[2]&&i.ops.pop(),i.trys.pop();continue}i.label=l[2],i.ops.push(r)}}r=t.call(o,i)}catch(e){r=[6,e],s=0}finally{v=l=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}}},mongodb_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResolveIOServer=void 0,require("mongodb")),ResolveIOServer=function(){function ResolveIOServer(){}return ResolveIOServer.create=function(n,o,t,v,s,l){return void 0===s&&(s=!0),void 0===l&&(l=!1),__awaiter(this,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return[4,(r=new ResolveIOServer).initialize(n,o,t,v,s,l)];case 1:return e.sent(),[2,r]}})})},ResolveIOServer.prototype.initialize=function(t,v,s,l,i,a){return void 0===i&&(i=!0),void 0===a&&(a=!1),__awaiter(this,void 0,void 0,function(){var r,n,o;return __generator(this,function(e){switch(e.label){case 0:ResolveIOServer._serverConfig=t,ResolveIOServer._clientRoutes=v,ResolveIOServer._client=s,ResolveIOServer._clientDir=l,ResolveIOServer._sesMail=i,ResolveIOServer._standardProgram=a,e.label=1;case 1:return e.trys.push([1,7,,8]),[4,mongodb_1.MongoClient.connect(ResolveIOServer.getServerConfig().MONGO_URL)];case 2:return r=e.sent(),ResolveIOServer.setMongoConnection(r),ResolveIOServer.setMainDB(r.db(ResolveIOServer.getServerConfig().DATABASE)),[4,Promise.resolve().then(function(){return require("./managers/local-log.manager")})];case 3:return r=e.sent().LocalLogManager,n=r.create(),ResolveIOServer.setLocalLogManager(n),[4,Promise.resolve().then(function(){return require("./managers/mongo.manager")})];case 4:return[4,e.sent().MongoManager.create()];case 5:return n=e.sent(),ResolveIOServer.setMongoManager(n),[4,Promise.resolve().then(function(){return require("./server-app")})];case 6:return o=e.sent().ResolveIOMainServer,o=o.create(),ResolveIOServer.setMainServer(o),[2,!0];case 7:return(o=e.sent()).message="Error in Mongo Client Connect And Run ResolveIO Server App Library - "+o.message,process.exit(1),[3,8];case 8:return[2]}})})},ResolveIOServer.getClientName=function(){return this._client},ResolveIOServer.getMainServer=function(){return ResolveIOServer._mainServer},ResolveIOServer.setMainServer=function(e){ResolveIOServer._mainServer=e},ResolveIOServer.setMongoConnection=function(e){ResolveIOServer._mongoConnection=e},ResolveIOServer.getMongoConnection=function(){return ResolveIOServer._mongoConnection},ResolveIOServer.getMainDB=function(){return ResolveIOServer._mainDB},ResolveIOServer.setMainDB=function(e){ResolveIOServer._mainDB=e},ResolveIOServer.getMongoManager=function(){return ResolveIOServer._mongoManager},ResolveIOServer.setMongoManager=function(e){ResolveIOServer._mongoManager=e},ResolveIOServer.getLocalLogManager=function(){return ResolveIOServer._localLogManager},ResolveIOServer.setLocalLogManager=function(e){ResolveIOServer._localLogManager=e},ResolveIOServer.getServerConfig=function(){return ResolveIOServer._serverConfig},ResolveIOServer.getClientRoutes=function(){return ResolveIOServer._clientRoutes},ResolveIOServer.getClientDir=function(){return ResolveIOServer._clientDir},ResolveIOServer.getSESMail=function(){return ResolveIOServer._sesMail},ResolveIOServer.getStandardProgram=function(){return ResolveIOServer._standardProgram},ResolveIOServer._serverConfig=null,ResolveIOServer._clientRoutes=[],ResolveIOServer._mongoConnection=null,ResolveIOServer._mainDB=null,ResolveIOServer._mainServer=null,ResolveIOServer._localLogManager=null,ResolveIOServer._mongoManager=null,ResolveIOServer._client="",ResolveIOServer._clientDir="",ResolveIOServer._sesMail=!0,ResolveIOServer._standardProgram=!1,ResolveIOServer}();exports.ResolveIOServer=ResolveIOServer;
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,o,t,v){return new(t=t||Promise)(function(n,r){function fulfilled(e){try{step(v.next(e))}catch(e){r(e)}}function rejected(e){try{step(v.throw(e))}catch(e){r(e)}}function step(e){var r;e.done?n(e.value):((r=e.value)instanceof t?r:new t(function(e){e(r)})).then(fulfilled,rejected)}step((v=v.apply(e,o||[])).next())})},__generator=this&&this.__generator||function(o,t){var v,s,l,i={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},a={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function verb(n){return function(e){var r=[n,e];if(v)throw new TypeError("Generator is already executing.");for(;i=a&&r[a=0]?0:i;)try{if(v=1,s&&(l=2&r[0]?s.return:r[0]?s.throw||((l=s.return)&&l.call(s),0):s.next)&&!(l=l.call(s,r[1])).done)return l;switch(s=0,(r=l?[2&r[0],l.value]:r)[0]){case 0:case 1:l=r;break;case 4:return i.label++,{value:r[1],done:!1};case 5:i.label++,s=r[1],r=[0];continue;case 7:r=i.ops.pop(),i.trys.pop();continue;default:if(!(l=0<(l=i.trys).length&&l[l.length-1])&&(6===r[0]||2===r[0])){i=0;continue}if(3===r[0]&&(!l||r[1]>l[0]&&r[1]<l[3]))i.label=r[1];else if(6===r[0]&&i.label<l[1])i.label=l[1],l=r;else{if(!(l&&i.label<l[2])){l[2]&&i.ops.pop(),i.trys.pop();continue}i.label=l[2],i.ops.push(r)}}r=t.call(o,i)}catch(e){r=[6,e],s=0}finally{v=l=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}}},mongodb_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResolveIOServer=void 0,require("mongodb")),ResolveIOServer=function(){function ResolveIOServer(){}return ResolveIOServer.create=function(n,o,t,v,s,l){return void 0===s&&(s=!0),void 0===l&&(l=!1),__awaiter(this,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return[4,(r=new ResolveIOServer).initialize(n,o,t,v,s,l)];case 1:return e.sent(),[2,r]}})})},ResolveIOServer.prototype.initialize=function(t,v,s,l,i,a){return void 0===i&&(i=!0),void 0===a&&(a=!1),__awaiter(this,void 0,void 0,function(){var r,n,o;return __generator(this,function(e){switch(e.label){case 0:ResolveIOServer._serverConfig=t,ResolveIOServer._clientRoutes=v,ResolveIOServer._client=s,ResolveIOServer._clientDir=l,ResolveIOServer._sesMail=i,ResolveIOServer._standardProgram=a,e.label=1;case 1:return e.trys.push([1,7,,8]),[4,mongodb_1.MongoClient.connect(ResolveIOServer.getServerConfig().MONGO_URL)];case 2:return r=e.sent(),ResolveIOServer.setMongoConnection(r),ResolveIOServer.setMainDB(r.db(ResolveIOServer.getServerConfig().DATABASE)),[4,Promise.resolve().then(function(){return require("./managers/local-log.manager")})];case 3:return r=e.sent().LocalLogManager,n=r.create(),ResolveIOServer.setLocalLogManager(n),[4,Promise.resolve().then(function(){return require("./managers/mongo.manager")})];case 4:return[4,e.sent().MongoManager.create()];case 5:return n=e.sent(),ResolveIOServer.setMongoManager(n),[4,Promise.resolve().then(function(){return require("./server-app")})];case 6:return o=e.sent().ResolveIOMainServer,o=o.create(),ResolveIOServer.setMainServer(o),[2,!0];case 7:return(o=e.sent()).message="Error in ResolveIOServer (initialize): Mongo Client Connect And Run ResolveIO Server App Library - "+o.message,process.exit(1),[3,8];case 8:return[2]}})})},ResolveIOServer.getClientName=function(){return this._client},ResolveIOServer.getMainServer=function(){return ResolveIOServer._mainServer},ResolveIOServer.setMainServer=function(e){ResolveIOServer._mainServer=e},ResolveIOServer.setMongoConnection=function(e){ResolveIOServer._mongoConnection=e},ResolveIOServer.getMongoConnection=function(){return ResolveIOServer._mongoConnection},ResolveIOServer.getMainDB=function(){return ResolveIOServer._mainDB},ResolveIOServer.setMainDB=function(e){ResolveIOServer._mainDB=e},ResolveIOServer.getMongoManager=function(){return ResolveIOServer._mongoManager},ResolveIOServer.setMongoManager=function(e){ResolveIOServer._mongoManager=e},ResolveIOServer.getLocalLogManager=function(){return ResolveIOServer._localLogManager},ResolveIOServer.setLocalLogManager=function(e){ResolveIOServer._localLogManager=e},ResolveIOServer.getServerConfig=function(){return ResolveIOServer._serverConfig},ResolveIOServer.getClientRoutes=function(){return ResolveIOServer._clientRoutes},ResolveIOServer.getClientDir=function(){return ResolveIOServer._clientDir},ResolveIOServer.getSESMail=function(){return ResolveIOServer._sesMail},ResolveIOServer.getStandardProgram=function(){return ResolveIOServer._standardProgram},ResolveIOServer._serverConfig=null,ResolveIOServer._clientRoutes=[],ResolveIOServer._mongoConnection=null,ResolveIOServer._mainDB=null,ResolveIOServer._mainServer=null,ResolveIOServer._localLogManager=null,ResolveIOServer._mongoManager=null,ResolveIOServer._client="",ResolveIOServer._clientDir="",ResolveIOServer._sesMail=!0,ResolveIOServer._standardProgram=!1,ResolveIOServer}();exports.ResolveIOServer=ResolveIOServer;
|
|
2
2
|
//# sourceMappingURL=resolveio-server-app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/resolveio-server-app.ts"],"names":["mongodb_1","require","ResolveIOServer","create","serverConfig","clientRoutes","client","clientDir","sesMail","standardProgram","resolveioServer","initialize","_a","sent","prototype","_serverConfig","_clientRoutes","_client","_clientDir","_sesMail","_standardProgram","MongoClient","connect","getServerConfig","dbConnection","setMongoConnection","setMainDB","db","Promise","resolve","then","LocalLogManager_1","LocalLogManager","localLogManager","setLocalLogManager","MongoManager","mongoManager","setMongoManager","serverApp","ResolveIOMainServer","app","setMainServer","message","err_1","process","exit","getClientName","this","getMainServer","_mainServer","mainServer","mongoConnection","_mongoConnection","getMongoConnection","getMainDB","_mainDB","mainDB","getMongoManager","_mongoManager","getLocalLogManager","_localLogManager","getClientRoutes","getClientDir","getSESMail","getStandardProgram","exports"],"mappings":"k8CAAAA,W,sFAAAC,QAAA,SAAA,GAKAC,gBAAA,WAaC,SAAAA,mBAwGD,OAtGqBA,gBAAAC,OAApB,SAA2BC,EAAcC,EAAwBC,EAAgBC,EAAWC,EAAgBC,G,OAAhB,KAAA,IAAAD,IAAAA,EAAA,CAAA,GAAgB,KAAA,IAAAC,IAAAA,EAAA,CAAA,G,yGAE3G,MAAA,CAAA,GADMC,EAAkB,IAAIR,iBACNS,WAAWP,EAAcC,EAAcC,EAAQC,EAAWC,EAASC,CAAe,G,OACxG,OADAG,EAAAC,KAAA,EACA,CAAA,EAAOH,E,OAGMR,gBAAAY,UAAAH,WAAd,SAAyBP,EAAcC,EAAwBC,EAAgBC,EAAWC,EAAgBC,G,OAAhB,KAAA,IAAAD,IAAAA,EAAA,CAAA,GAAgB,KAAA,IAAAC,IAAAA,EAAA,CAAA,G,6GACzGP,gBAAgBa,cAAgBX,EAChCF,gBAAgBc,cAAgBX,EAChCH,gBAAgBe,QAAUX,EAC1BJ,gBAAgBgB,WAAaX,EAC7BL,gBAAgBiB,SAAWX,EAC3BN,gBAAgBkB,iBAAmBX,E,iBAGf,O,sBAAA,CAAA,EAAMT,UAAAqB,YAAYC,QAAQpB,gBAAgBqB,gBAAe,EAAc,SAAC,G,OAIpE,OAJnBC,EAAeZ,EAAAC,KAAA,EACnBX,gBAAgBuB,mBAAmBD,CAAY,EAC/CtB,gBAAgBwB,UAAUF,EAAaG,GAAGzB,gBAAgBqB,gBAAe,EAAa,QAAC,CAAC,EAEjE,CAAA,EAAAK,QAAAC,QAAA,EAAAC,KAAA,WAAA,OAAA7B,QAAa,8BAA8B,CAAA,CAAA,G,OAI9C,OAJhB8B,EAAmBnB,EAAAC,KAA4C,EAAEmB,gBACjEC,EAAkBF,EAAgB5B,OAAM,EAC5CD,gBAAgBgC,mBAAmBD,CAAe,EAE9B,CAAA,EAAAL,QAAAC,QAAA,EAAAC,KAAA,WAAA,OAAA7B,QAAa,0BAA0B,CAAA,CAAA,G,OACxC,MAAA,CAAA,EADCW,EAAAC,KAAwC,EAAEsB,aACxBhC,OAAM,G,OAG3B,OAHbiC,EAAexB,EAAAC,KAAA,EACnBX,gBAAgBmC,gBAAgBD,CAAY,EAE3B,CAAA,EAAAR,QAAAC,QAAA,EAAAC,KAAA,WAAA,OAAA7B,QAAa,cAAc,CAAA,CAAA,G,OAI5C,OAJIqC,EAAa1B,EAAAC,KAA4B,EAAE0B,oBAC3CC,EAAMF,EAAUnC,OAAM,EAC1BD,gBAAgBuC,cAAcD,CAAG,EAEjC,CAAA,EAAO,CAAA,G,0BAGHE,QAAU,
|
|
1
|
+
{"version":3,"sources":["../../src/resolveio-server-app.ts"],"names":["mongodb_1","require","ResolveIOServer","create","serverConfig","clientRoutes","client","clientDir","sesMail","standardProgram","resolveioServer","initialize","_a","sent","prototype","_serverConfig","_clientRoutes","_client","_clientDir","_sesMail","_standardProgram","MongoClient","connect","getServerConfig","dbConnection","setMongoConnection","setMainDB","db","Promise","resolve","then","LocalLogManager_1","LocalLogManager","localLogManager","setLocalLogManager","MongoManager","mongoManager","setMongoManager","serverApp","ResolveIOMainServer","app","setMainServer","message","err_1","process","exit","getClientName","this","getMainServer","_mainServer","mainServer","mongoConnection","_mongoConnection","getMongoConnection","getMainDB","_mainDB","mainDB","getMongoManager","_mongoManager","getLocalLogManager","_localLogManager","getClientRoutes","getClientDir","getSESMail","getStandardProgram","exports"],"mappings":"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","file":"resolveio-server-app.js","sourcesContent":["import { Db, MongoClient } from 'mongodb';\nimport { LocalLogManager } from './managers/local-log.manager';\nimport { MongoManager } from './managers/mongo.manager';\nimport { ResolveIOMainServer } from './server-app';\n\nexport class ResolveIOServer {\n\tprivate static _serverConfig = null;\n\tprivate static _clientRoutes = [];\n\tprivate static _mongoConnection: MongoClient = null;\n\tprivate static _mainDB: Db = null;\n\tprivate static _mainServer = null;\n\tprivate static _localLogManager = null;\n\tprivate static _mongoManager = null;\n\tprivate static _client = '';\n\tprivate static _clientDir = '';\n\tprivate static _sesMail = true;\n\tprivate static _standardProgram = false;\n\n\tconstructor() {}\n\t\n\tpublic static async create(serverConfig, clientRoutes: string[], client: string, clientDir, sesMail = true, standardProgram = false) {\n\t\tconst resolveioServer = new ResolveIOServer();\n\t\tawait resolveioServer.initialize(serverConfig, clientRoutes, client, clientDir, sesMail, standardProgram);\n\t\treturn resolveioServer;\n\t}\n\n\tprivate async initialize(serverConfig, clientRoutes: string[], client: string, clientDir, sesMail = true, standardProgram = false) {\n\t\tResolveIOServer._serverConfig = serverConfig;\n\t\tResolveIOServer._clientRoutes = clientRoutes;\n\t\tResolveIOServer._client = client;\n\t\tResolveIOServer._clientDir = clientDir;\n\t\tResolveIOServer._sesMail = sesMail;\n\t\tResolveIOServer._standardProgram = standardProgram;\n\t\t\n\t\ttry {\n\t\t\tlet dbConnection = await MongoClient.connect(ResolveIOServer.getServerConfig()['MONGO_URL']);\n\t\t\tResolveIOServer.setMongoConnection(dbConnection);\n\t\t\tResolveIOServer.setMainDB(dbConnection.db(ResolveIOServer.getServerConfig()['DATABASE']));\n\t\n\t\t\tlet LocalLogManager = (await import('./managers/local-log.manager')).LocalLogManager;\n\t\t\tlet localLogManager = LocalLogManager.create();\n\t\t\tResolveIOServer.setLocalLogManager(localLogManager);\n\n\t\t\tlet MongoManager = (await import('./managers/mongo.manager')).MongoManager;\n\t\t\tlet mongoManager = await MongoManager.create();\n\t\t\tResolveIOServer.setMongoManager(mongoManager);\n\t\t\t\n\t\t\tlet serverApp = (await import('./server-app')).ResolveIOMainServer;\n\t\t\tlet app = serverApp.create();\n\t\t\tResolveIOServer.setMainServer(app);\n\t\t\t\n\t\t\treturn true;\n\t\t}\n\t\tcatch (err) {\n\t\t\terr.message = 'Error in ResolveIOServer (initialize): Mongo Client Connect And Run ResolveIO Server App Library - ' + err.message;\n\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\n\tpublic static getClientName() {\n\t\treturn this._client;\n\t}\n\n\tpublic static getMainServer(): ResolveIOMainServer {\n\t\treturn ResolveIOServer._mainServer;\n\t}\n\n\tpublic static setMainServer(mainServer: ResolveIOMainServer) {\n\t\tResolveIOServer._mainServer = mainServer;\n\t}\n\n\tpublic static setMongoConnection(mongoConnection: MongoClient) {\n\t\tResolveIOServer._mongoConnection = mongoConnection;\n\t}\n\n\tpublic static getMongoConnection(): MongoClient {\n\t\treturn ResolveIOServer._mongoConnection;\n\t}\n\n\tpublic static getMainDB(): Db {\n\t\treturn ResolveIOServer._mainDB;\n\t}\n\n\tpublic static setMainDB(mainDB: Db) {\n\t\tResolveIOServer._mainDB = mainDB\n\t}\n\n\tpublic static getMongoManager(): MongoManager {\n\t\treturn ResolveIOServer._mongoManager;\n\t}\n\n\tpublic static setMongoManager(mongoManager: MongoManager) {\n\t\tResolveIOServer._mongoManager = mongoManager;\n\t}\n\n\tpublic static getLocalLogManager(): LocalLogManager {\n\t\treturn ResolveIOServer._localLogManager;\n\t}\n\n\tpublic static setLocalLogManager(localLogManager: LocalLogManager) {\n\t\tResolveIOServer._localLogManager = localLogManager;\n\t}\n\n\tpublic static getServerConfig() {\n\t\treturn ResolveIOServer._serverConfig;\n\t}\n\n\tpublic static getClientRoutes() {\n\t\treturn ResolveIOServer._clientRoutes;\n\t}\n\n\tpublic static getClientDir(): string {\n\t\treturn ResolveIOServer._clientDir;\n\t}\n\n\tpublic static getSESMail(): boolean {\n\t\treturn ResolveIOServer._sesMail;\n\t}\n\n\tpublic static getStandardProgram(): boolean {\n\t\treturn ResolveIOServer._standardProgram;\n\t}\n}"]}
|
package/server-app.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(e,n,s,o){return new(s=s||Promise)(function(t,r){function fulfilled(e){try{step(o.next(e))}catch(e){r(e)}}function rejected(e){try{step(o.throw(e))}catch(e){r(e)}}function step(e){var r;e.done?t(e.value):((r=e.value)instanceof s?r:new s(function(e){e(r)})).then(fulfilled,rejected)}step((o=o.apply(e,n||[])).next())})},__generator=this&&this.__generator||function(n,s){var o,i,a,c={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function verb(t){return function(e){var r=[t,e];if(o)throw new TypeError("Generator is already executing.");for(;c=l&&r[l=0]?0:c;)try{if(o=1,i&&(a=2&r[0]?i.return:r[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,r[1])).done)return a;switch(i=0,(r=a?[2&r[0],a.value]:r)[0]){case 0:case 1:a=r;break;case 4:return c.label++,{value:r[1],done:!1};case 5:c.label++,i=r[1],r=[0];continue;case 7:r=c.ops.pop(),c.trys.pop();continue;default:if(!(a=0<(a=c.trys).length&&a[a.length-1])&&(6===r[0]||2===r[0])){c=0;continue}if(3===r[0]&&(!a||r[1]>a[0]&&r[1]<a[3]))c.label=r[1];else if(6===r[0]&&c.label<a[1])c.label=a[1],a=r;else{if(!(a&&c.label<a[2])){a[2]&&c.ops.pop(),c.trys.pop();continue}c.label=a[2],c.ops.push(r)}}r=s.call(n,c)}catch(e){r=[6,e],i=0}finally{o=a=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}}},__read=this&&this.__read||function(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,s,o=t.call(e),i=[];try{for(;(void 0===r||0<r--)&&!(n=o.next()).done;)i.push(n.value)}catch(e){s={error:e}}finally{try{n&&!n.done&&(t=o.return)&&t.call(o)}finally{if(s)throw s.error}}return i},__spreadArray=this&&this.__spreadArray||function(e,r,t){if(t||2===arguments.length)for(var n,s=0,o=r.length;s<o;s++)!n&&s in r||((n=n||Array.prototype.slice.call(r,0,s))[s]=r[s]);return e.concat(n||Array.prototype.slice.call(r))},__values=this&&this.__values||function(e){var r="function"==typeof Symbol&&Symbol.iterator,t=r&&e[r],n=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&n>=e.length?void 0:e)&&e[n++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")},bodyParser=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResolveIOMainServer=void 0,require("body-parser")),express=require("express"),xmlParser=require("express-xml-bodyparser"),http_1=require("http"),jwt=require("jsonwebtoken"),moment=require("moment-timezone"),WebSocket=require("ws"),log_collection_1=require("./collections/log.collection"),user_collection_1=require("./collections/user.collection"),cron_manager_1=require("./managers/cron.manager"),method_manager_1=require("./managers/method.manager"),monitor_manager_1=require("./managers/monitor.manager"),subscription_manager_1=require("./managers/subscription.manager"),common_1=require("./util/common"),mongodb_1=require("mongodb"),auth_1=require("./http/auth"),health_1=require("./http/health"),home_1=require("./http/home"),websocket_manager_1=require("./managers/websocket.manager"),resolveio_server_app_1=require("./resolveio-server-app"),ResolveIOMainServer=function(){function ResolveIOMainServer(){this._offlineUpdates=[],this.sesMail=!1,this.standardProgram=!1,this.publicProgram=!1,this._rebootFlag=!1,this._runningTasks=[],this.LOGGER="ERROR",this._clientRoutes=[],this._lastErrorMsg=null,this._debugMsgRecv=0,this._debugMsgQueue=0,this._isWorkersEnabled=!1,this._isWorkerInstance=!1,this._safeShutdown=!1,this._workers=[],this._taskQueue=[],this._inFlightRequests={}}return ResolveIOMainServer.create=function(){var e=new ResolveIOMainServer;return e.initialize(),e},ResolveIOMainServer.prototype.initialize=function(){var e=this,o=(this._serverStartTime=new Date,this._lastErrorMsg=null,this._monitorManager=new monitor_manager_1.MonitorManager,this._monitorManagerFunction=new monitor_manager_1.MonitorManagerFunction,this._isWorkersEnabled="true"===process.env.IS_WORKERS_ENABLED,this._isWorkerInstance="true"===process.env.IS_WORKER_INSTANCE,setInterval(function(){e._subscriptionManager&&e._subscriptionManager.getEnableDebug()&&(console.log(new Date,"Server App","Msg Recv Hits",e._debugMsgRecv),console.log(new Date,"Server App","Msg Queue Hits",e._debugMsgQueue)),e._debugMsgQueue=0,e._debugMsgRecv=0},6e4),!1);setTimeout(function(){o=!0},5e3),process.on("unhandledRejection",function(n,s){return __awaiter(e,void 0,void 0,function(){var r,t=this;return __generator(this,function(e){switch(e.label){case 0:return n&&"MongoError"===n.name&&48===n.code?[2]:n&&"MongoServerError"===n.name&&!o?[2]:(console.error(new Date,"Unhandled Rejection at Promise",[n,s]),r=moment().diff(this._serverStartTime,"seconds"),n&&("MongoNetworkTimeoutError"===n.name||n instanceof mongodb_1.MongoNetworkTimeoutError)?60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - MongoNetworkTimeoutError - Quitting NodeJS - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify({name:n.name,message:n.message,stack:n.stack},null,2))]):[3,2]:[3,3]);case 1:e.sent(),process.exit(1),e.label=2;case 2:return[3,11];case 3:return n&&"MongoError"===n.name&&"not master"===n.message?60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Rejection - Quitting NodeJS - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n.name,n.message,n.stack],null,2))]):[3,5]:[3,6];case 4:e.sent(),e.label=5;case 5:return process.exit(1),[3,11];case 6:return n&&"MongoError"===n.name&&"not master and slaveOk=false"===n.message?60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Rejection - Quitting NodeJS - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n.name,n.message,n.stack],null,2))]):[3,8]:[3,9];case 7:e.sent(),e.label=8;case 8:return process.exit(1),[3,11];case 9:return n?"StatusError"!==n.name&&""!==n.message&&60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Rejection - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n.name,n.message,n.stack],null,2))]):[3,11]:[3,11];case 10:e.sent(),e.label=11;case 11:return[2]}})})}),process.on("uncaughtException",function(t){return __awaiter(e,void 0,void 0,function(){var r=this;return __generator(this,function(e){switch(e.label){case 0:return(console.error(t,"Uncaught Exception thrown"),60<moment().diff(this._serverStartTime,"seconds")&&!this._lastErrorMsg)?(this._lastErrorMsg=new Date,setTimeout(function(){r._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Exception - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([t.name,t.message,t.stack],null,2))]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})}),process.on("SIGINT",function(){return __awaiter(e,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._rebootFlag=!0,this._serverHTTP&&this._serverHTTP.close(),[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),process.on("SIGTERM",function(){return __awaiter(e,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._rebootFlag=!0,this._serverHTTP&&this._serverHTTP.close(),[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),process.on("SIGQUIT",function(){return __awaiter(e,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._rebootFlag=!0,this._serverHTTP&&this._serverHTTP.close(),[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),"DEBUG"===this.LOGGER&&console.log("Starting ResolveIO Server"),this._isWorkersEnabled?this._isWorkerInstance?(console.log("Running as a Worker instance"),this._methodManager=method_manager_1.MethodManager.create(null,this._monitorManagerFunction,this._isWorkersEnabled,this._isWorkerInstance),this._cronManager=cron_manager_1.CronManager.create(),this.startWorkerInstance()):(console.log("Running as a Server instance"),this._websocketManager=websocket_manager_1.WebSocketManager.create(this),this.startServerInstance(),this._methodManager=method_manager_1.MethodManager.create(this._websocketManager,this._monitorManagerFunction,this._isWorkersEnabled,this._isWorkerInstance),this._subscriptionManager=subscription_manager_1.SubscriptionManager.create(this._serverWSS,resolveio_server_app_1.ResolveIOServer.getServerConfig(),this._monitorManagerFunction),this.listen()):(console.log("Running with Workers Disabled"),this._websocketManager=websocket_manager_1.WebSocketManager.create(this),this.startServerInstance(),this._methodManager=method_manager_1.MethodManager.create(this._websocketManager,this._monitorManagerFunction,this._isWorkersEnabled,this._isWorkerInstance),this._subscriptionManager=subscription_manager_1.SubscriptionManager.create(this._serverWSS,resolveio_server_app_1.ResolveIOServer.getServerConfig(),this._monitorManagerFunction),this._cronManager=cron_manager_1.CronManager.create(),this.listen())},ResolveIOMainServer.prototype.startServerInstance=function(){this._app=express(),this._app.use(bodyParser.json({limit:"50mb",reviver:common_1.dateReviver})),this._app.use(bodyParser.urlencoded({limit:"50mb",extended:!0,parameterLimit:1e6})),this._app.use(xmlParser()),this._portHTTP=process.env.PORT_HTTP||resolveio_server_app_1.ResolveIOServer.getServerConfig().PORT_HTTP||8080,this._portWSS=process.env.PORT_WSS||resolveio_server_app_1.ResolveIOServer.getServerConfig().PORT_WSS||8081,"DEBUG"===this.LOGGER&&console.log("Setup ports"),this.createServer(),"DEBUG"===this.LOGGER&&console.log("Create server"),this._app.use(function(e,r,t){r.setHeader("Access-Control-Allow-Origin","*"),r.setHeader("Access-Control-Allow-Methods","GET, POST"),r.setHeader("Access-Control-Allow-Headers","X-Requested-With,content-type"),r.setHeader("Access-Control-Allow-Credentials","false"),t()}),"DEBUG"===this.LOGGER&&console.log("Setup cors"),(0,auth_1.setupAuthRoutes)(this,this._app,resolveio_server_app_1.ResolveIOServer.getServerConfig()),(0,health_1.setupHealthRoutes)(this._app),"ResolveIO"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME&&!this.standardProgram||(0,home_1.setupHomeRoutes)(this,this._app,resolveio_server_app_1.ResolveIOServer.getServerConfig()),"DEBUG"===this.LOGGER&&console.log("Setup express routes")},ResolveIOMainServer.prototype.startWorkerInstance=function(){var e=this,r=(console.log(new Date,"Worker instance started, connecting to main server via WebSocket..."),resolveio_server_app_1.ResolveIOServer.getServerConfig().SERVER_URL+"/websocket?workerToken="+resolveio_server_app_1.ResolveIOServer.getServerConfig().WORKER_TOKEN),n=new WebSocket(r),s=null,t=null;n.on("open",function(){console.log(new Date,"Connected to main server as worker",process.env.WORKER_INDEX,process.env.NODE_APP_INSTANCE),e.sendWorkerResponse(n,"ping"),t=setInterval(function(){s?(s=null,e.sendWorkerResponse(n,"ping")):n.close()},15e3)}),n.on("message",function(t){return __awaiter(e,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return"ping"!==(t="string"!=typeof t?t.toString():t)?[3,1]:(this.sendWorkerResponse(n,"pong"),[3,4]);case 1:return"pong"!==t?[3,2]:(s=new Date,[3,4]);case 2:r=void 0;try{r=JSON.parse(t,common_1.dateReviver)}catch(e){return console.error("Worker parse error",e),[2]}return"task"!==r.type?[3,4]:[4,this.handleIncomingTask(n,r)];case 3:e.sent(),e.label=4;case 4:return[2]}})})}),n.on("close",function(){console.log(new Date,"Disconnected from main server. Reconnecting in 5s..."),setTimeout(e.startWorkerInstance,5e3),t&&clearInterval(t)}),n.on("error",function(e){console.error(new Date,"Worker WS error:",e),n.close()})},ResolveIOMainServer.prototype.handleIncomingTask=function(u,_){return __awaiter(this,void 0,void 0,function(){var r,t,n,s,o,i,a,c,l=this;return __generator(this,function(e){switch(e.label){case 0:if(r=_.taskId,t=_.method,n=_.params,s=_.userContext,this._runningTasks.push(r),!r||!t)return console.log("Invalid task message received",_),[2];o=!1,i=setTimeout(function(){return __awaiter(l,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return o=!0,console.error("Worker timed out on task:",r),this.sendWorkerResponse(u,{type:"taskComplete",taskId:r,error:!0,message:"Task timed out"}),[4,this._methodManager.callMethod("insertErrorLog","Timeout in Method: ".concat(t," - ").concat(JSON.stringify(_,null,2)))];case 1:return e.sent(),[2]}})})},12e4),e.label=1;case 1:return e.trys.push([1,3,,5]),a=Object.assign({},this._methodManager,method_manager_1.MethodManager.prototype,{id_user:(null==s?void 0:s.id_user)||"",user:(null==s?void 0:s.user)||"",id_ws:(null==s?void 0:s.id_ws)||""}),[4,(c=this._methodManager.callMethod).call.apply(c,__spreadArray([a,t],__read(n),!1))];case 2:return c=e.sent(),o||(clearTimeout(i),this.sendWorkerResponse(u,{type:"taskComplete",taskId:r,error:!1,result:c})),this._runningTasks=this._runningTasks.filter(function(e){return e!==r}),[3,5];case 3:return a=e.sent(),o||(clearTimeout(i),console.error("Worker failed task:",r,a),this.sendWorkerResponse(u,{type:"taskComplete",taskId:r,error:!0,message:a||"Unknown error"})),[4,this._methodManager.callMethod("insertErrorLog","Error in Method: ".concat(t," - ").concat(JSON.stringify(_,null,2)))];case 4:return e.sent(),this._runningTasks=this._runningTasks.filter(function(e){return e!==r}),[3,5];case 5:return[2]}})})},ResolveIOMainServer.prototype.sendWorkerResponse=function(e,r){if("string"!=typeof r&&(r=JSON.stringify(r)),e&&e.readyState===e.OPEN)try{e.send(r)}catch(e){console.error("Failed to send worker response:",e)}else e&&e.close()},ResolveIOMainServer.prototype.safeShutdown=function(){return __awaiter(this,void 0,void 0,function(){var r=this;return __generator(this,function(e){switch(e.label){case 0:if(this._safeShutdown||console.log(new Date,"Safe Shutdown Command Received"),this._monitorManagerFunction.getActiveMonitorFunctions().length||this._offlineUpdates.length||this._taskQueue.length||this._runningTasks.length)return[3,7];if(!resolveio_server_app_1.ResolveIOServer.getMongoConnection())return[3,5];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,resolveio_server_app_1.ResolveIOServer.getMongoConnection().close(!1)];case 2:return e.sent(),console.log(new Date,"Safe Exit Complete, Process Exit"),process.exit(0),[3,4];case 3:return e.sent(),process.exit(1),[3,4];case 4:return[3,6];case 5:process.exit(0),e.label=6;case 6:return[3,8];case 7:this._safeShutdown||(this._safeShutdown=!0,setTimeout(function(){r._safeShutdown=!1},1e3),console.log(new Date,"Safe Exit In Progress",this._monitorManagerFunction.getActiveMonitorFunctions().length,this._offlineUpdates.length)),setImmediate(function(){return __awaiter(r,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),e.label=8;case 8:return[2]}})})},ResolveIOMainServer.prototype.getIsWorkersEnabled=function(){return this._isWorkersEnabled},ResolveIOMainServer.prototype.getIsWorkerInstance=function(){return this._isWorkerInstance},ResolveIOMainServer.prototype.getWSList=function(){var r=[];return this._serverWSS.clients.forEach(function(e){r.push(e.id_socket)}),r},ResolveIOMainServer.prototype.getWSUserList=function(){var r=[];return this._serverWSS.clients.forEach(function(e){r.push(e.id_user)}),r},ResolveIOMainServer.prototype.getHTTPServer=function(){return this._serverHTTP},ResolveIOMainServer.prototype.getCronManager=function(){return this._cronManager},ResolveIOMainServer.prototype.getMethodManager=function(){return this._methodManager},ResolveIOMainServer.prototype.getSubscriptionManager=function(){return this._subscriptionManager},ResolveIOMainServer.prototype.getMonitorManager=function(){return this._monitorManager},ResolveIOMainServer.prototype.getRebootFlag=function(){return this._rebootFlag},ResolveIOMainServer.prototype.getWebSocketManager=function(){return this._websocketManager},ResolveIOMainServer.prototype.createServer=function(){var r=this;this._serverHTTP=(0,http_1.createServer)(this._app),this._serverHTTP.keepAliveTimeout=65e3,this._serverHTTP.headersTimeout=66e3,this._serverWSS=new WebSocket.Server({port:this._portWSS,verifyClient:this.publicProgram?null:function(s,o){var e;r._rebootFlag?o(!1,409,"Unable To Process"):("DEBUG"===r.LOGGER&&console.log("Verify Client",s,o),s.req.url&&s.req.url.includes("workerToken=")?(s.req.url.split("workerToken=")[1]||"")===resolveio_server_app_1.ResolveIOServer.getServerConfig().WORKER_TOKEN?o(!0):o(!1,401,"Unauthorized"):(e=s.req.headers["sec-websocket-protocol"].split(/,/),(s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().SEC_ROOT_URL||s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().RESOLVEIO_URL||s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().RESOLVEIO_SECONDARY_URL)&&(e=e[0])?jwt.verify(e,resolveio_server_app_1.ResolveIOServer.getServerConfig().JWT_SECRET,function(t,n){return __awaiter(r,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return t?(o(!1,401,"Unauthorized"),[3,5]):[3,1];case 1:s.req.id_user=n.id_user,e.label=2;case 2:return e.trys.push([2,4,,5]),[4,user_collection_1.Users.findById(n.id_user)];case 3:return(r=e.sent())?(s.req.user=r.fullname,s.req.user_readonly=r.readonly||!1,s.req.doc_user=r,o(!0)):o(!1),[3,5];case 4:return e.sent(),o(!1),[3,5];case 5:return[2]}})})}):o(!1,401,"Unauthorized")))}})},ResolveIOMainServer.prototype.listen=function(){var e=this;this._serverHTTP.listen(this._portHTTP,function(){console.log("Running server on port %s",e._portHTTP)}),this._serverWSS.on("listening",function(){console.log("Running server on port %s",e._portWSS)}),this._serverWSS.on("connection",function(o,i){return __awaiter(e,void 0,void 0,function(){var r,t,n,s=this;return __generator(this,function(e){switch(e.label){case 0:return i.url&&i.url.includes("workerToken=")?(r=(0,common_1.objectIdHexString)(),o.id_worker=r,this._workers.push({id:r,ws:o,activeTasks:0,maxConcurrency:2}),n=t=null,o.on("open",function(){s.sendWorkerResponse(o,"ping"),t=setInterval(function(){n?(n=null,s.sendWorkerResponse(o,"ping")):o.close()},15e3)}),console.log(new Date,"Worker connected:",r),o.on("message",function(e){"ping"===(e="string"!=typeof e?e.toString():e)?s.sendWorkerResponse(o,"pong"):"pong"===e?n=new Date:s.handleWorkerMessage(r,e)}),o.on("close",function(){console.log(new Date,"Worker disconnected:",r),s._workers=s._workers.filter(function(e){return e.id!==r}),t&&clearInterval(t)}),o.on("error",function(e){console.error("Error on WS Worker",e),o.close()}),[3,3]):[3,1];case 1:return o.id_socket=(0,common_1.objectIdHexString)(),o.id_user=i.id_user,o.user=i.user,o.user_readonly=i.user_readonly,o.doc_user=i.doc_user,this._websocketManager.addWebSocket(o),[4,this._subscriptionManager.createLoggedInUser(o.id_socket)];case 2:e.sent(),setTimeout(function(){o.pingTime=new Date,o.send("ping",function(r){return __awaiter(s,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?(this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Error WS Ping"),[4,this.unsubscribeWS(o)]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})})},5e3),"DEBUG"===this.LOGGER&&console.log("Connection from user: "+i.user),o.isAlive=!0,o.retryCnt=0,o.on("message",function(n){return __awaiter(s,void 0,void 0,function(){var r,t;return __generator(this,function(e){switch(e.label){case 0:this._debugMsgRecv+=1,r=[],e.label=1;case 1:return e.trys.push([1,2,,4]),r=JSON.parse(n,common_1.dateReviver),[3,4];case 2:return t=e.sent(),console.log("Error - JSON.parse",n),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - JSON Parse Error - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n,t]))];case 3:return e.sent(),[2];case 4:return[4,this.processSocketMessage(o,r)];case 5:return e.sent(),[2]}})})}).on("end",function(){o.close()}).on("error",function(){o.close()}).on("close",function(){return __awaiter(s,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.unsubscribeWS(o)];case 1:return e.sent(),[2]}})})}),e.label=3;case 3:return[2]}})})}),setInterval(function(){return __awaiter(e,void 0,void 0,function(){var r,n,t,s,o,i,a,c=this;return __generator(this,function(e){switch(e.label){case 0:r=function(t){return __generator(this,function(e){switch(e.label){case 0:return t.pingTime&&2e4<=Date.now()-t.pingTime.getTime()?!1!==t.isAlive?[3,4]:(t.retryCnt++,3<=t.retryCnt?[4,n.unsubscribeWS(t)]:[3,2]):[3,5];case 1:return e.sent(),[3,3];case 2:t.pingTime=new Date,t.send("ping",function(r){return __awaiter(c,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?(this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Error WS Ping"),[4,this.unsubscribeWS(t)]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})}),e.label=3;case 3:return[3,5];case 4:t.retryCnt=0,t.isAlive=!1,t.pingTime=new Date,t.send("ping",function(r){return __awaiter(c,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?(this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Error WS Ping"),[4,this.unsubscribeWS(t)]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})}),e.label=5;case 5:return[2]}})},n=this,e.label=1;case 1:e.trys.push([1,6,7,8]),t=__values(this._serverWSS.clients),s=t.next(),e.label=2;case 2:return s.done?[3,5]:(o=s.value,[5,r(o)]);case 3:e.sent(),e.label=4;case 4:return s=t.next(),[3,2];case 5:return[3,8];case 6:return o=e.sent(),i={error:o},[3,8];case 7:try{s&&!s.done&&(a=t.return)&&a.call(t)}finally{if(i)throw i.error}return[7];case 8:return[2]}})})},2e4)},ResolveIOMainServer.prototype.processSocketMessage=function(i,a){return __awaiter(this,void 0,void 0,function(){var r,t,n,s,o;return __generator(this,function(e){switch(e.label){case 0:if("string"==typeof a&&"ping"===a)return i&&i.readyState===i.OPEN&&i.send("pong"),[2];if("string"==typeof a&&"pong"===a)return i.isAlive=!0,i.pongTime=new Date,i.latency=moment.duration(moment(i.pongTime).diff(i.pingTime)).asMilliseconds(),this._subscriptionManager.loggedInLatency(i),[2];if(!Array.isArray(a[0]))return console.log("Invalid message format (expected array of arrays)",a),[2];e.label=1;case 1:e.trys.push([1,6,7,8]),r=__values(a),t=r.next(),e.label=2;case 2:return t.done?[3,5]:(n=t.value,[4,this.handleClientMessage(i,n)]);case 3:e.sent(),e.label=4;case 4:return t=r.next(),[3,2];case 5:return[3,8];case 6:return n=e.sent(),s={error:n},[3,8];case 7:try{t&&!t.done&&(o=r.return)&&o.call(r)}finally{if(s)throw s.error}return[7];case 8:return[2]}})})},ResolveIOMainServer.prototype.handleClientMessage=function(f,m){return __awaiter(this,void 0,void 0,function(){var r,t,n,s,o,i,a,c,l,u,_,g,h,d,v,p;return __generator(this,function(e){switch(e.label){case 0:return(r=m[0],t=m[1],n=m[2],s=m[3],this.publicProgram||!this._clientRoutes.some(function(e){return r.includes(e)})||f.doc_user.roles.groups.some(function(e){return e.views.some(function(e){return r.includes(e)||e.includes(r)})})||f.doc_user.roles.super_admin)?"subscription"!==s?[3,4]:(i=m[4],o=m[5],"sub"!==i?[3,2]:[4,this._subscriptionManager.subscribe(r,t,f,n,o,m.slice(6))]):[2];case 1:return e.sent(),[3,3];case 2:this._subscriptionManager.unsubscribe(r,t,f,n,o,m.slice(6)),e.label=3;case 3:return[3,22];case 4:if(this.publicProgram||"offline"!==s)return[3,16];i={messageId:n,hasError:!1,data:"ACK"},f&&f.readyState===f.OPEN&&this._websocketManager.send(f,i),this._offlineUpdates.push(f),a=m[4],c=0,e.label=5;case 5:if(!(c<a.length))return[3,15];if(l=a[c],l=l.data,l.shift(),l.shift(),p=l.shift(),l.shift(),u=l.shift(),p={messageId:p,hasError:!1,data:"ACK"},f&&f.readyState===f.OPEN&&this._websocketManager.send(f,p),"insertDocument"===u&&"driver-gps"===l[0])return[3,14];if("reportBuilderGetResults"!==u&&"reportBuilderGetDistinctValue"!==u&&"reportBuilderBuildTree"!==u&&"generatePDF"!==u&&"getWOOfflineData"!==u&&"countQuery"!==u&&"countWithQuery"!==u&&"countCollectionWithQuery"!==u&&"find"!==u&&"findOne"!==u&&"findWithOptions"!==u&&"getDrivers"!==u&&"processAirdropDistribution"!==u){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,6];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),createdAt:new Date,type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify(l))<2e5?JSON.stringify(l,null,2):"Too Big",method:u,id_user:f.id_user||"",user:f.user||"",messageId:n,route:r}})}return[3,8];case 6:return[4,log_collection_1.Logs.insertOne({_id:(0,common_1.objectIdHexString)(),type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify(l))<2e5?JSON.stringify(l,null,2):"Too Big",method:u,id_user:f.id_user||"",user:f.user||"",messageId:n,route:r,client:"ResolveIO",instance:"backend.resolveio.com",instance_index:process.env.NODE_APP_INSTANCE||""})];case 7:e.sent(),e.label=8;case 8:if(!this._methodManager._methods[u])return[3,13];e.label=9;case 9:return e.trys.push([9,11,,12]),[4,(p=this._methodManager.callMethod).call.apply(p,__spreadArray([Object.assign({},this._methodManager,method_manager_1.MethodManager.prototype,{id_user:f.id_user,user:f.user,id_ws:f.id_socket}),u],__read(l),!1))];case 10:return e.sent(),[3,12];case 11:return d=e.sent(),console.log(new Date,"Offline Error",JSON.stringify(d,null,2)),[3,12];case 12:return"updateDocumentOffline"!==u&&"updateDocumentPropsOffline"!==u||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(l[0]),[3,14];case 13:console.log("Offline - Could not find method: "+u),e.label=14;case 14:return c++,[3,5];case 15:return this._offlineUpdates.splice(this._offlineUpdates.map(function(e){return e.id_socket}).indexOf(f.id_socket),1),[3,22];case 16:if(_=__spreadArray([],__read(m),!1),_.shift(),_.shift(),g=_.shift(),"method"!==_.shift())return[3,22];if(h=_.shift(),f.user_readonly)return[2];if("reportBuilderGetResults"!==h&&"reportBuilderGetDistinctValue"!==h&&"reportBuilderBuildTree"!==h&&"generatePDF"!==h&&"getWOOfflineData"!==h&&"countQuery"!==h&&"countWithQuery"!==h&&"countCollectionWithQuery"!==h&&"find"!==h&&"findOne"!==h&&"findWithOptions"!==h&&"getDrivers"!==h&&"processAirdropDistribution"!==h){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,17];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),createdAt:new Date,type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify(_))<2e5?JSON.stringify(_,null,2):"Too Big",method:h,id_user:f.id_user||"",user:f.user||"",messageId:n,route:r}})}return[3,19];case 17:return[4,log_collection_1.Logs.insertOne({_id:(0,common_1.objectIdHexString)(),type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify(_))<2e5?JSON.stringify(_,null,2):"Too Big",method:h,id_user:f.id_user||"",user:f.user||"",messageId:n,route:r,client:"ResolveIO",instance:"backend.resolveio.com",instance_index:process.env.NODE_APP_INSTANCE||""})];case 18:e.sent(),e.label=19;case 19:return(d={messageId:g,hasError:!1,data:"ACK"},f&&f.readyState===f.OPEN&&this._websocketManager.send(f,d),v=this.findAvailableWorker(),this._isWorkersEnabled&&v&&"find"!==h&&"insertDocument"!==h&&"countWithQuery"!==h&&"findOne"!==h&&"updateDocumentProps"!==h&&"findWithOptions"!==h&&"updateDocument"!==h&&"insertErrorLog"!==h&&"removeDocument"!==h&&"supportCreateBillingUser"!==h&&"getSignedUrl"!==h&&"getSignedUrls"!==h&&"getSignedUrlWithId"!==h&&"incorrectUser"!==h&&"reloadWS"!==h&&"reconnectWS"!==h&&"disconnectWS"!==h)?(v="task-"+(0,common_1.objectIdHexString)(),this._inFlightRequests[v]={ws:f,messageId:g,method:h},this.queueTask(v,h,_,{id_user:f.id_user,user:f.user,id_ws:f.id_socket}),[3,22]):[3,20];case 20:return[4,this.callMethodLocally(f,g,h,_)];case 21:e.sent(),e.label=22;case 22:return[2]}})})},ResolveIOMainServer.prototype.callMethodLocally=function(s,o,i,a){return __awaiter(this,void 0,void 0,function(){var r,t,n;return __generator(this,function(e){switch(e.label){case 0:r={messageId:o,hasError:!1,data:null},e.label=1;case 1:return e.trys.push([1,3,,4]),[4,(n=this._methodManager.callMethod).call.apply(n,__spreadArray([Object.assign({},this._methodManager,method_manager_1.MethodManager.prototype,{id_user:s.id_user,user:s.user,id_ws:s.id_socket}),i],__read(a),!1))];case 2:return n=e.sent(),r.data=n,[3,4];case 3:return t=e.sent(),r.hasError=!0,r.data=t||"Unknown error",[3,4];case 4:return s&&s.readyState===s.OPEN&&this._websocketManager.send(s,r),[2]}})})},ResolveIOMainServer.prototype.queueTask=function(e,r,t,n){this._taskQueue.push({taskId:e,method:r,params:t,userContext:n}),this.dispatchQueue()},ResolveIOMainServer.prototype.dispatchQueue=function(){if(this._taskQueue.length)for(var e=0;e<9999;e++){var r=this._taskQueue[0];if(!r)break;var t=this.findAvailableWorker();if(!t)break;this._taskQueue.shift(),this.assignTaskToWorker(t,r)}},ResolveIOMainServer.prototype.findAvailableWorker=function(){var e=this._workers.filter(function(e){return e.activeTasks<e.maxConcurrency});return e.length?(e.sort(function(e,r){return e.activeTasks-r.activeTasks}),e[0]):null},ResolveIOMainServer.prototype.assignTaskToWorker=function(r,t){r.activeTasks++;var e={type:"task",taskId:t.taskId,method:t.method,params:t.params,userContext:t.userContext};try{r.ws.send(JSON.stringify(e))}catch(e){console.error("Failed to send task to worker:",e),r.activeTasks=Math.max(0,r.activeTasks-1),this._taskQueue.unshift(t)}},ResolveIOMainServer.prototype.handleWorkerMessage=function(r,t){var e,n,s,o;try{o=JSON.parse(t,common_1.dateReviver)}catch(e){return void console.error("Failed to parse worker message:",t)}"taskComplete"===o.type&&((t=this._workers.find(function(e){return e.id===r}))?(t.activeTasks=Math.max(0,t.activeTasks-1),t=o.taskId,e=o.error,n=o.message,o=o.result,(s=this._inFlightRequests[t])?(delete this._inFlightRequests[t],o={messageId:s.messageId,hasError:!1,data:o},e&&(o.hasError=!0,o.data=n),s.ws&&s.ws.readyState===s.ws.OPEN&&this._websocketManager.send(s.ws,o)):console.error("No in-flight request found for task:",t),this.dispatchQueue()):console.error("Unknown worker for taskComplete:",r))},ResolveIOMainServer.prototype.unsubscribeWS=function(r){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._subscriptionManager&&this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Unsub WS",r.user,r.id_socket),[4,this._subscriptionManager.unsubscribeAll(r)];case 1:return e.sent(),r.removeAllListeners(),r=null,[2]}})})},ResolveIOMainServer.prototype.getApp=function(){return this._app},ResolveIOMainServer.prototype.getServerConfig=function(){return resolveio_server_app_1.ResolveIOServer.getServerConfig()},ResolveIOMainServer}();exports.ResolveIOMainServer=ResolveIOMainServer;
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,n,s,o){return new(s=s||Promise)(function(t,r){function fulfilled(e){try{step(o.next(e))}catch(e){r(e)}}function rejected(e){try{step(o.throw(e))}catch(e){r(e)}}function step(e){var r;e.done?t(e.value):((r=e.value)instanceof s?r:new s(function(e){e(r)})).then(fulfilled,rejected)}step((o=o.apply(e,n||[])).next())})},__generator=this&&this.__generator||function(n,s){var o,i,a,c={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function verb(t){return function(e){var r=[t,e];if(o)throw new TypeError("Generator is already executing.");for(;c=l&&r[l=0]?0:c;)try{if(o=1,i&&(a=2&r[0]?i.return:r[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,r[1])).done)return a;switch(i=0,(r=a?[2&r[0],a.value]:r)[0]){case 0:case 1:a=r;break;case 4:return c.label++,{value:r[1],done:!1};case 5:c.label++,i=r[1],r=[0];continue;case 7:r=c.ops.pop(),c.trys.pop();continue;default:if(!(a=0<(a=c.trys).length&&a[a.length-1])&&(6===r[0]||2===r[0])){c=0;continue}if(3===r[0]&&(!a||r[1]>a[0]&&r[1]<a[3]))c.label=r[1];else if(6===r[0]&&c.label<a[1])c.label=a[1],a=r;else{if(!(a&&c.label<a[2])){a[2]&&c.ops.pop(),c.trys.pop();continue}c.label=a[2],c.ops.push(r)}}r=s.call(n,c)}catch(e){r=[6,e],i=0}finally{o=a=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}}},__read=this&&this.__read||function(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,s,o=t.call(e),i=[];try{for(;(void 0===r||0<r--)&&!(n=o.next()).done;)i.push(n.value)}catch(e){s={error:e}}finally{try{n&&!n.done&&(t=o.return)&&t.call(o)}finally{if(s)throw s.error}}return i},__spreadArray=this&&this.__spreadArray||function(e,r,t){if(t||2===arguments.length)for(var n,s=0,o=r.length;s<o;s++)!n&&s in r||((n=n||Array.prototype.slice.call(r,0,s))[s]=r[s]);return e.concat(n||Array.prototype.slice.call(r))},__values=this&&this.__values||function(e){var r="function"==typeof Symbol&&Symbol.iterator,t=r&&e[r],n=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&n>=e.length?void 0:e)&&e[n++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")},bodyParser=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResolveIOMainServer=void 0,require("body-parser")),express=require("express"),xmlParser=require("express-xml-bodyparser"),http_1=require("http"),jwt=require("jsonwebtoken"),moment=require("moment-timezone"),WebSocket=require("ws"),log_collection_1=require("./collections/log.collection"),user_collection_1=require("./collections/user.collection"),cron_manager_1=require("./managers/cron.manager"),method_manager_1=require("./managers/method.manager"),monitor_manager_1=require("./managers/monitor.manager"),subscription_manager_1=require("./managers/subscription.manager"),common_1=require("./util/common"),mongodb_1=require("mongodb"),auth_1=require("./http/auth"),health_1=require("./http/health"),home_1=require("./http/home"),websocket_manager_1=require("./managers/websocket.manager"),resolveio_server_app_1=require("./resolveio-server-app"),ResolveIOMainServer=function(){function ResolveIOMainServer(){this._offlineUpdates=[],this.sesMail=!1,this.standardProgram=!1,this.publicProgram=!1,this._rebootFlag=!1,this._runningTasks=[],this.LOGGER="ERROR",this._clientRoutes=[],this._lastErrorMsg=null,this._debugMsgRecv=0,this._debugMsgQueue=0,this._isWorkersEnabled=!1,this._isWorkerInstance=!1,this._safeShutdown=!1,this._workers=[],this._taskQueue=[],this._inFlightRequests={}}return ResolveIOMainServer.create=function(){var e=new ResolveIOMainServer;return e.initialize(),e},ResolveIOMainServer.prototype.initialize=function(){var e=this,o=(this._serverStartTime=new Date,this._lastErrorMsg=null,this._monitorManager=new monitor_manager_1.MonitorManager,this._monitorManagerFunction=new monitor_manager_1.MonitorManagerFunction,this._isWorkersEnabled="true"===process.env.IS_WORKERS_ENABLED,this._isWorkerInstance="true"===process.env.IS_WORKER_INSTANCE,setInterval(function(){e._subscriptionManager&&e._subscriptionManager.getEnableDebug()&&(console.log(new Date,"Server App","Msg Recv Hits",e._debugMsgRecv),console.log(new Date,"Server App","Msg Queue Hits",e._debugMsgQueue)),e._debugMsgQueue=0,e._debugMsgRecv=0},6e4),!1);setTimeout(function(){o=!0},5e3),process.on("unhandledRejection",function(n,s){return __awaiter(e,void 0,void 0,function(){var r,t=this;return __generator(this,function(e){switch(e.label){case 0:return n&&"MongoError"===n.name&&48===n.code?[2]:n&&"MongoServerError"===n.name&&!o?[2]:(console.error(new Date,"Unhandled Rejection at Promise",[n,s]),r=moment().diff(this._serverStartTime,"seconds"),n&&("MongoNetworkTimeoutError"===n.name||n instanceof mongodb_1.MongoNetworkTimeoutError)?60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - MongoNetworkTimeoutError - Quitting NodeJS - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify({name:n.name,message:n.message,stack:n.stack},null,2))]):[3,2]:[3,3]);case 1:e.sent(),process.exit(1),e.label=2;case 2:return[3,11];case 3:return n&&"MongoError"===n.name&&"not master"===n.message?60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Rejection - Quitting NodeJS - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n.name,n.message,n.stack],null,2))]):[3,5]:[3,6];case 4:e.sent(),e.label=5;case 5:return process.exit(1),[3,11];case 6:return n&&"MongoError"===n.name&&"not master and slaveOk=false"===n.message?60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Rejection - Quitting NodeJS - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n.name,n.message,n.stack],null,2))]):[3,8]:[3,9];case 7:e.sent(),e.label=8;case 8:return process.exit(1),[3,11];case 9:return n?"StatusError"!==n.name&&""!==n.message&&60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Rejection - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n.name,n.message,n.stack],null,2))]):[3,11]:[3,11];case 10:e.sent(),e.label=11;case 11:return[2]}})})}),process.on("uncaughtException",function(t){return __awaiter(e,void 0,void 0,function(){var r=this;return __generator(this,function(e){switch(e.label){case 0:return(console.error(t,"Uncaught Exception thrown"),60<moment().diff(this._serverStartTime,"seconds")&&!this._lastErrorMsg)?(this._lastErrorMsg=new Date,setTimeout(function(){r._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Exception - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([t.name,t.message,t.stack],null,2))]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})}),process.on("SIGINT",function(){return __awaiter(e,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._rebootFlag=!0,this._serverHTTP&&this._serverHTTP.close(),[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),process.on("SIGTERM",function(){return __awaiter(e,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._rebootFlag=!0,this._serverHTTP&&this._serverHTTP.close(),[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),process.on("SIGQUIT",function(){return __awaiter(e,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._rebootFlag=!0,this._serverHTTP&&this._serverHTTP.close(),[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),"DEBUG"===this.LOGGER&&console.log("Starting ResolveIO Server"),this._isWorkersEnabled?this._isWorkerInstance?(console.log("Running as a Worker instance"),this._methodManager=method_manager_1.MethodManager.create(null,this._monitorManagerFunction,this._isWorkersEnabled,this._isWorkerInstance),this._cronManager=cron_manager_1.CronManager.create(),this.startWorkerInstance()):(console.log("Running as a Server instance"),this._websocketManager=websocket_manager_1.WebSocketManager.create(this),this.startServerInstance(),this._methodManager=method_manager_1.MethodManager.create(this._websocketManager,this._monitorManagerFunction,this._isWorkersEnabled,this._isWorkerInstance),this._subscriptionManager=subscription_manager_1.SubscriptionManager.create(this._serverWSS,resolveio_server_app_1.ResolveIOServer.getServerConfig(),this._monitorManagerFunction),this.listen()):(console.log("Running with Workers Disabled"),this._websocketManager=websocket_manager_1.WebSocketManager.create(this),this.startServerInstance(),this._methodManager=method_manager_1.MethodManager.create(this._websocketManager,this._monitorManagerFunction,this._isWorkersEnabled,this._isWorkerInstance),this._subscriptionManager=subscription_manager_1.SubscriptionManager.create(this._serverWSS,resolveio_server_app_1.ResolveIOServer.getServerConfig(),this._monitorManagerFunction),this._cronManager=cron_manager_1.CronManager.create(),this.listen())},ResolveIOMainServer.prototype.startServerInstance=function(){this._app=express(),this._app.use(bodyParser.json({limit:"50mb",reviver:common_1.dateReviver})),this._app.use(bodyParser.urlencoded({limit:"50mb",extended:!0,parameterLimit:1e6})),this._app.use(xmlParser()),this._portHTTP=process.env.PORT_HTTP||resolveio_server_app_1.ResolveIOServer.getServerConfig().PORT_HTTP||8080,this._portWSS=process.env.PORT_WSS||resolveio_server_app_1.ResolveIOServer.getServerConfig().PORT_WSS||8081,"DEBUG"===this.LOGGER&&console.log("Setup ports"),this.createServer(),"DEBUG"===this.LOGGER&&console.log("Create server"),this._app.use(function(e,r,t){r.setHeader("Access-Control-Allow-Origin","*"),r.setHeader("Access-Control-Allow-Methods","GET, POST"),r.setHeader("Access-Control-Allow-Headers","X-Requested-With,content-type"),r.setHeader("Access-Control-Allow-Credentials","false"),t()}),"DEBUG"===this.LOGGER&&console.log("Setup cors"),(0,auth_1.setupAuthRoutes)(this,this._app,resolveio_server_app_1.ResolveIOServer.getServerConfig()),(0,health_1.setupHealthRoutes)(this._app),"ResolveIO"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME&&!this.standardProgram||(0,home_1.setupHomeRoutes)(this,this._app,resolveio_server_app_1.ResolveIOServer.getServerConfig()),"DEBUG"===this.LOGGER&&console.log("Setup express routes")},ResolveIOMainServer.prototype.startWorkerInstance=function(){var e=this,r=(console.log(new Date,"Worker instance started, connecting to main server via WebSocket..."),resolveio_server_app_1.ResolveIOServer.getServerConfig().SERVER_URL+"/websocket?workerToken="+resolveio_server_app_1.ResolveIOServer.getServerConfig().WORKER_TOKEN),n=new WebSocket(r),s=null,t=null;n.on("open",function(){console.log(new Date,"Connected to main server as worker",process.env.WORKER_INDEX,process.env.NODE_APP_INSTANCE),e.sendWorkerResponse(n,"ping"),t=setInterval(function(){s?(s=null,e.sendWorkerResponse(n,"ping")):n.close()},15e3)}),n.on("message",function(t){return __awaiter(e,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return"ping"!==(t="string"!=typeof t?t.toString():t)?[3,1]:(this.sendWorkerResponse(n,"pong"),[3,4]);case 1:return"pong"!==t?[3,2]:(s=new Date,[3,4]);case 2:r=void 0;try{r=JSON.parse(t,common_1.dateReviver)}catch(e){return console.error("Worker parse error",e),[2]}return"task"!==r.type?[3,4]:[4,this.handleIncomingTask(n,r)];case 3:e.sent(),e.label=4;case 4:return[2]}})})}),n.on("close",function(){console.log(new Date,"Disconnected from main server. Reconnecting in 5s..."),setTimeout(e.startWorkerInstance,5e3),t&&clearInterval(t)}),n.on("error",function(e){console.error(new Date,"Worker WS error:",e),n.close()})},ResolveIOMainServer.prototype.handleIncomingTask=function(u,_){return __awaiter(this,void 0,void 0,function(){var r,t,n,s,o,i,a,c,l=this;return __generator(this,function(e){switch(e.label){case 0:if(r=_.taskId,t=_.method,n=_.params,s=_.userContext,this._runningTasks.push(r),!r||!t)return console.log("Invalid task message received",_),[2];o=!1,i=setTimeout(function(){return __awaiter(l,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return o=!0,console.error(new Date,"Worker timed out on task:",r,"Method:",t),console.error(new Date,"Error in Method: ".concat(t," - ").concat(JSON.stringify(_,null,2))),this.sendWorkerResponse(u,{type:"taskComplete",taskId:r,error:!0,message:"Task timed out"}),[4,this._methodManager.callMethod("insertErrorLog","Timeout in Method: ".concat(t," - ").concat(JSON.stringify(_,null,2)))];case 1:return e.sent(),[2]}})})},12e4),e.label=1;case 1:return e.trys.push([1,3,,5]),a=Object.assign({},this._methodManager,method_manager_1.MethodManager.prototype,{id_user:(null==s?void 0:s.id_user)||"",user:(null==s?void 0:s.user)||"",id_ws:(null==s?void 0:s.id_ws)||""}),[4,(c=this._methodManager.callMethod).call.apply(c,__spreadArray([a,t],__read(n),!1))];case 2:return c=e.sent(),o||(clearTimeout(i),this.sendWorkerResponse(u,{type:"taskComplete",taskId:r,error:!1,result:c})),this._runningTasks=this._runningTasks.filter(function(e){return e!==r}),[3,5];case 3:return a=e.sent(),o||(clearTimeout(i),console.error("Worker failed task:",r,"Method:",t,a),this.sendWorkerResponse(u,{type:"taskComplete",taskId:r,error:!0,message:a||"Unknown error"})),console.error(new Date,"Error in Method: ".concat(t," - ").concat(JSON.stringify(_,null,2))),[4,this._methodManager.callMethod("insertErrorLog","Error in Method: ".concat(t," - ").concat(JSON.stringify(_,null,2)))];case 4:return e.sent(),this._runningTasks=this._runningTasks.filter(function(e){return e!==r}),[3,5];case 5:return[2]}})})},ResolveIOMainServer.prototype.sendWorkerResponse=function(e,r){if("string"!=typeof r&&(r=JSON.stringify(r)),e&&e.readyState===e.OPEN)try{e.send(r)}catch(e){console.error("Failed to send worker response:",e)}else e&&e.close()},ResolveIOMainServer.prototype.safeShutdown=function(){return __awaiter(this,void 0,void 0,function(){var r=this;return __generator(this,function(e){switch(e.label){case 0:if(this._safeShutdown||console.log(new Date,"Safe Shutdown Command Received"),this._monitorManagerFunction.getActiveMonitorFunctions().length||this._offlineUpdates.length||this._taskQueue.length||this._runningTasks.length)return[3,7];if(!resolveio_server_app_1.ResolveIOServer.getMongoConnection())return[3,5];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,resolveio_server_app_1.ResolveIOServer.getMongoConnection().close(!1)];case 2:return e.sent(),console.log(new Date,"Safe Exit Complete, Process Exit"),process.exit(0),[3,4];case 3:return e.sent(),process.exit(1),[3,4];case 4:return[3,6];case 5:process.exit(0),e.label=6;case 6:return[3,8];case 7:this._safeShutdown||(this._safeShutdown=!0,setTimeout(function(){r._safeShutdown=!1},1e3),console.log(new Date,"Safe Exit In Progress",this._monitorManagerFunction.getActiveMonitorFunctions().length,this._offlineUpdates.length)),setImmediate(function(){return __awaiter(r,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),e.label=8;case 8:return[2]}})})},ResolveIOMainServer.prototype.getIsWorkersEnabled=function(){return this._isWorkersEnabled},ResolveIOMainServer.prototype.getIsWorkerInstance=function(){return this._isWorkerInstance},ResolveIOMainServer.prototype.getWSList=function(){var r=[];return this._serverWSS.clients.forEach(function(e){r.push(e.id_socket)}),r},ResolveIOMainServer.prototype.getWSUserList=function(){var r=[];return this._serverWSS.clients.forEach(function(e){r.push(e.id_user)}),r},ResolveIOMainServer.prototype.getHTTPServer=function(){return this._serverHTTP},ResolveIOMainServer.prototype.getCronManager=function(){return this._cronManager},ResolveIOMainServer.prototype.getMethodManager=function(){return this._methodManager},ResolveIOMainServer.prototype.getSubscriptionManager=function(){return this._subscriptionManager},ResolveIOMainServer.prototype.getMonitorManager=function(){return this._monitorManager},ResolveIOMainServer.prototype.getRebootFlag=function(){return this._rebootFlag},ResolveIOMainServer.prototype.getWebSocketManager=function(){return this._websocketManager},ResolveIOMainServer.prototype.createServer=function(){var r=this;this._serverHTTP=(0,http_1.createServer)(this._app),this._serverHTTP.keepAliveTimeout=65e3,this._serverHTTP.headersTimeout=66e3,this._serverWSS=new WebSocket.Server({port:this._portWSS,verifyClient:this.publicProgram?null:function(s,o){var e;r._rebootFlag?o(!1,409,"Unable To Process"):("DEBUG"===r.LOGGER&&console.log("Verify Client",s,o),s.req.url&&s.req.url.includes("workerToken=")?(s.req.url.split("workerToken=")[1]||"")===resolveio_server_app_1.ResolveIOServer.getServerConfig().WORKER_TOKEN?o(!0):o(!1,401,"Unauthorized"):(e=s.req.headers["sec-websocket-protocol"].split(/,/),(s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().SEC_ROOT_URL||s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().RESOLVEIO_URL||s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().RESOLVEIO_SECONDARY_URL)&&(e=e[0])?jwt.verify(e,resolveio_server_app_1.ResolveIOServer.getServerConfig().JWT_SECRET,function(t,n){return __awaiter(r,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return t?(o(!1,401,"Unauthorized"),[3,5]):[3,1];case 1:s.req.id_user=n.id_user,e.label=2;case 2:return e.trys.push([2,4,,5]),[4,user_collection_1.Users.findById(n.id_user)];case 3:return(r=e.sent())?(s.req.user=r.fullname,s.req.user_readonly=r.readonly||!1,s.req.doc_user=r,o(!0)):o(!1),[3,5];case 4:return e.sent(),o(!1),[3,5];case 5:return[2]}})})}):o(!1,401,"Unauthorized")))}})},ResolveIOMainServer.prototype.listen=function(){var e=this;this._serverHTTP.listen(this._portHTTP,function(){console.log("Running server on port %s",e._portHTTP)}),this._serverWSS.on("listening",function(){console.log("Running server on port %s",e._portWSS)}),this._serverWSS.on("connection",function(o,i){return __awaiter(e,void 0,void 0,function(){var r,t,n,s=this;return __generator(this,function(e){switch(e.label){case 0:return i.url&&i.url.includes("workerToken=")?(r=(0,common_1.objectIdHexString)(),o.id_worker=r,this._workers.push({id:r,ws:o,activeTasks:0,maxConcurrency:2}),n=t=null,o.on("open",function(){s.sendWorkerResponse(o,"ping"),t=setInterval(function(){n?(n=null,s.sendWorkerResponse(o,"ping")):o.close()},15e3)}),console.log(new Date,"Worker connected:",r),o.on("message",function(e){"ping"===(e="string"!=typeof e?e.toString():e)?s.sendWorkerResponse(o,"pong"):"pong"===e?n=new Date:s.handleWorkerMessage(r,e)}),o.on("close",function(){console.log(new Date,"Worker disconnected:",r),s._workers=s._workers.filter(function(e){return e.id!==r}),t&&clearInterval(t)}),o.on("error",function(e){console.error("Error on WS Worker",e),o.close()}),[3,3]):[3,1];case 1:return o.id_socket=(0,common_1.objectIdHexString)(),o.id_user=i.id_user,o.user=i.user,o.user_readonly=i.user_readonly,o.doc_user=i.doc_user,this._websocketManager.addWebSocket(o),[4,this._subscriptionManager.createLoggedInUser(o.id_socket)];case 2:e.sent(),setTimeout(function(){o.pingTime=new Date,o.send("ping",function(r){return __awaiter(s,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?(this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Error WS Ping"),[4,this.unsubscribeWS(o)]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})})},5e3),"DEBUG"===this.LOGGER&&console.log("Connection from user: "+i.user),o.isAlive=!0,o.retryCnt=0,o.on("message",function(n){return __awaiter(s,void 0,void 0,function(){var r,t;return __generator(this,function(e){switch(e.label){case 0:this._debugMsgRecv+=1,r=[],e.label=1;case 1:return e.trys.push([1,2,,4]),r=JSON.parse(n,common_1.dateReviver),[3,4];case 2:return t=e.sent(),console.log("Error - JSON.parse",n),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - JSON Parse Error - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n,t]))];case 3:return e.sent(),[2];case 4:return[4,this.processSocketMessage(o,r)];case 5:return e.sent(),[2]}})})}).on("end",function(){o.close()}).on("error",function(){o.close()}).on("close",function(){return __awaiter(s,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.unsubscribeWS(o)];case 1:return e.sent(),[2]}})})}),e.label=3;case 3:return[2]}})})}),setInterval(function(){return __awaiter(e,void 0,void 0,function(){var r,n,t,s,o,i,a,c=this;return __generator(this,function(e){switch(e.label){case 0:r=function(t){return __generator(this,function(e){switch(e.label){case 0:return t.pingTime&&2e4<=Date.now()-t.pingTime.getTime()?!1!==t.isAlive?[3,4]:(t.retryCnt++,3<=t.retryCnt?[4,n.unsubscribeWS(t)]:[3,2]):[3,5];case 1:return e.sent(),[3,3];case 2:t.pingTime=new Date,t.send("ping",function(r){return __awaiter(c,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?(this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Error WS Ping"),[4,this.unsubscribeWS(t)]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})}),e.label=3;case 3:return[3,5];case 4:t.retryCnt=0,t.isAlive=!1,t.pingTime=new Date,t.send("ping",function(r){return __awaiter(c,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?(this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Error WS Ping"),[4,this.unsubscribeWS(t)]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})}),e.label=5;case 5:return[2]}})},n=this,e.label=1;case 1:e.trys.push([1,6,7,8]),t=__values(this._serverWSS.clients),s=t.next(),e.label=2;case 2:return s.done?[3,5]:(o=s.value,[5,r(o)]);case 3:e.sent(),e.label=4;case 4:return s=t.next(),[3,2];case 5:return[3,8];case 6:return o=e.sent(),i={error:o},[3,8];case 7:try{s&&!s.done&&(a=t.return)&&a.call(t)}finally{if(i)throw i.error}return[7];case 8:return[2]}})})},2e4)},ResolveIOMainServer.prototype.processSocketMessage=function(i,a){return __awaiter(this,void 0,void 0,function(){var r,t,n,s,o;return __generator(this,function(e){switch(e.label){case 0:if("string"==typeof a&&"ping"===a)return i&&i.readyState===i.OPEN&&i.send("pong"),[2];if("string"==typeof a&&"pong"===a)return i.isAlive=!0,i.pongTime=new Date,i.latency=moment.duration(moment(i.pongTime).diff(i.pingTime)).asMilliseconds(),this._subscriptionManager.loggedInLatency(i),[2];if(!Array.isArray(a[0]))return console.log("Invalid message format (expected array of arrays)",a),[2];e.label=1;case 1:e.trys.push([1,6,7,8]),r=__values(a),t=r.next(),e.label=2;case 2:return t.done?[3,5]:(n=t.value,[4,this.handleClientMessage(i,n)]);case 3:e.sent(),e.label=4;case 4:return t=r.next(),[3,2];case 5:return[3,8];case 6:return n=e.sent(),s={error:n},[3,8];case 7:try{t&&!t.done&&(o=r.return)&&o.call(r)}finally{if(s)throw s.error}return[7];case 8:return[2]}})})},ResolveIOMainServer.prototype.handleClientMessage=function(f,m){return __awaiter(this,void 0,void 0,function(){var r,t,n,s,o,i,a,c,l,u,_,g,h,d,v,p;return __generator(this,function(e){switch(e.label){case 0:return(r=m[0],t=m[1],n=m[2],s=m[3],this.publicProgram||!this._clientRoutes.some(function(e){return r.includes(e)})||f.doc_user.roles.groups.some(function(e){return e.views.some(function(e){return r.includes(e)||e.includes(r)})})||f.doc_user.roles.super_admin)?"subscription"!==s?[3,4]:(i=m[4],o=m[5],"sub"!==i?[3,2]:[4,this._subscriptionManager.subscribe(r,t,f,n,o,m.slice(6))]):[2];case 1:return e.sent(),[3,3];case 2:this._subscriptionManager.unsubscribe(r,t,f,n,o,m.slice(6)),e.label=3;case 3:return[3,22];case 4:if(this.publicProgram||"offline"!==s)return[3,16];i={messageId:n,hasError:!1,data:"ACK"},f&&f.readyState===f.OPEN&&this._websocketManager.send(f,i),this._offlineUpdates.push(f),a=m[4],c=0,e.label=5;case 5:if(!(c<a.length))return[3,15];if(l=a[c],l=l.data,l.shift(),l.shift(),p=l.shift(),l.shift(),u=l.shift(),p={messageId:p,hasError:!1,data:"ACK"},f&&f.readyState===f.OPEN&&this._websocketManager.send(f,p),"insertDocument"===u&&"driver-gps"===l[0])return[3,14];if("reportBuilderGetResults"!==u&&"reportBuilderGetDistinctValue"!==u&&"reportBuilderBuildTree"!==u&&"generatePDF"!==u&&"getWOOfflineData"!==u&&"countQuery"!==u&&"countWithQuery"!==u&&"countCollectionWithQuery"!==u&&"find"!==u&&"findOne"!==u&&"findWithOptions"!==u&&"getDrivers"!==u&&"processAirdropDistribution"!==u){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,6];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),createdAt:new Date,type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify(l))<2e5?JSON.stringify(l,null,2):"Too Big",method:u,id_user:f.id_user||"",user:f.user||"",messageId:n,route:r}})}return[3,8];case 6:return[4,log_collection_1.Logs.insertOne({_id:(0,common_1.objectIdHexString)(),type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify(l))<2e5?JSON.stringify(l,null,2):"Too Big",method:u,id_user:f.id_user||"",user:f.user||"",messageId:n,route:r,client:"ResolveIO",instance:"backend.resolveio.com",instance_index:process.env.NODE_APP_INSTANCE||""})];case 7:e.sent(),e.label=8;case 8:if(!this._methodManager._methods[u])return[3,13];e.label=9;case 9:return e.trys.push([9,11,,12]),[4,(p=this._methodManager.callMethod).call.apply(p,__spreadArray([Object.assign({},this._methodManager,method_manager_1.MethodManager.prototype,{id_user:f.id_user,user:f.user,id_ws:f.id_socket}),u],__read(l),!1))];case 10:return e.sent(),[3,12];case 11:return d=e.sent(),console.log(new Date,"Offline Error",JSON.stringify(d,null,2)),[3,12];case 12:return"updateDocumentOffline"!==u&&"updateDocumentPropsOffline"!==u||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(l[0]),[3,14];case 13:console.log("Offline - Could not find method: "+u),e.label=14;case 14:return c++,[3,5];case 15:return this._offlineUpdates.splice(this._offlineUpdates.map(function(e){return e.id_socket}).indexOf(f.id_socket),1),[3,22];case 16:if(_=__spreadArray([],__read(m),!1),_.shift(),_.shift(),g=_.shift(),"method"!==_.shift())return[3,22];if(h=_.shift(),f.user_readonly)return[2];if("reportBuilderGetResults"!==h&&"reportBuilderGetDistinctValue"!==h&&"reportBuilderBuildTree"!==h&&"generatePDF"!==h&&"getWOOfflineData"!==h&&"countQuery"!==h&&"countWithQuery"!==h&&"countCollectionWithQuery"!==h&&"find"!==h&&"findOne"!==h&&"findWithOptions"!==h&&"getDrivers"!==h&&"processAirdropDistribution"!==h){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,17];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),createdAt:new Date,type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify(_))<2e5?JSON.stringify(_,null,2):"Too Big",method:h,id_user:f.id_user||"",user:f.user||"",messageId:n,route:r}})}return[3,19];case 17:return[4,log_collection_1.Logs.insertOne({_id:(0,common_1.objectIdHexString)(),type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify(_))<2e5?JSON.stringify(_,null,2):"Too Big",method:h,id_user:f.id_user||"",user:f.user||"",messageId:n,route:r,client:"ResolveIO",instance:"backend.resolveio.com",instance_index:process.env.NODE_APP_INSTANCE||""})];case 18:e.sent(),e.label=19;case 19:return(d={messageId:g,hasError:!1,data:"ACK"},f&&f.readyState===f.OPEN&&this._websocketManager.send(f,d),v=this.findAvailableWorker(),this._isWorkersEnabled&&v&&"find"!==h&&"insertDocument"!==h&&"countWithQuery"!==h&&"findOne"!==h&&"updateDocumentProps"!==h&&"findWithOptions"!==h&&"updateDocument"!==h&&"insertErrorLog"!==h&&"removeDocument"!==h&&"supportCreateBillingUser"!==h&&"getSignedUrl"!==h&&"getSignedUrls"!==h&&"getSignedUrlWithId"!==h&&"incorrectUser"!==h&&"reloadWS"!==h&&"reconnectWS"!==h&&"disconnectWS"!==h)?(v="task-"+(0,common_1.objectIdHexString)(),this._inFlightRequests[v]={ws:f,messageId:g,method:h},this.queueTask(v,h,_,{id_user:f.id_user,user:f.user,id_ws:f.id_socket}),[3,22]):[3,20];case 20:return[4,this.callMethodLocally(f,g,h,_)];case 21:e.sent(),e.label=22;case 22:return[2]}})})},ResolveIOMainServer.prototype.callMethodLocally=function(s,o,i,a){return __awaiter(this,void 0,void 0,function(){var r,t,n;return __generator(this,function(e){switch(e.label){case 0:r={messageId:o,hasError:!1,data:null},e.label=1;case 1:return e.trys.push([1,3,,4]),[4,(n=this._methodManager.callMethod).call.apply(n,__spreadArray([Object.assign({},this._methodManager,method_manager_1.MethodManager.prototype,{id_user:s.id_user,user:s.user,id_ws:s.id_socket}),i],__read(a),!1))];case 2:return n=e.sent(),r.data=n,[3,4];case 3:return t=e.sent(),r.hasError=!0,r.data=t||"Unknown error",[3,4];case 4:return s&&s.readyState===s.OPEN&&this._websocketManager.send(s,r),[2]}})})},ResolveIOMainServer.prototype.queueTask=function(e,r,t,n){this._taskQueue.push({taskId:e,method:r,params:t,userContext:n}),this.dispatchQueue()},ResolveIOMainServer.prototype.dispatchQueue=function(){if(this._taskQueue.length)for(var e=0;e<9999;e++){var r=this._taskQueue[0];if(!r)break;var t=this.findAvailableWorker();if(!t)break;this._taskQueue.shift(),this.assignTaskToWorker(t,r)}},ResolveIOMainServer.prototype.findAvailableWorker=function(){var e=this._workers.filter(function(e){return e.activeTasks<e.maxConcurrency});return e.length?(e.sort(function(e,r){return e.activeTasks-r.activeTasks}),e[0]):null},ResolveIOMainServer.prototype.assignTaskToWorker=function(r,t){r.activeTasks++;var e={type:"task",taskId:t.taskId,method:t.method,params:t.params,userContext:t.userContext};try{r.ws.send(JSON.stringify(e))}catch(e){console.error("Failed to send task to worker:",e),r.activeTasks=Math.max(0,r.activeTasks-1),this._taskQueue.unshift(t)}},ResolveIOMainServer.prototype.handleWorkerMessage=function(r,t){var e,n,s,o;try{o=JSON.parse(t,common_1.dateReviver)}catch(e){return void console.error("Failed to parse worker message:",t)}"taskComplete"===o.type&&((t=this._workers.find(function(e){return e.id===r}))?(t.activeTasks=Math.max(0,t.activeTasks-1),t=o.taskId,e=o.error,n=o.message,o=o.result,(s=this._inFlightRequests[t])?(delete this._inFlightRequests[t],o={messageId:s.messageId,hasError:!1,data:o},e&&(o.hasError=!0,o.data=n),s.ws&&s.ws.readyState===s.ws.OPEN&&this._websocketManager.send(s.ws,o)):console.error("No in-flight request found for task:",t),this.dispatchQueue()):console.error("Unknown worker for taskComplete:",r))},ResolveIOMainServer.prototype.unsubscribeWS=function(r){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._subscriptionManager&&this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Unsub WS",r.user,r.id_socket),[4,this._subscriptionManager.unsubscribeAll(r)];case 1:return e.sent(),r.removeAllListeners(),r=null,[2]}})})},ResolveIOMainServer.prototype.getApp=function(){return this._app},ResolveIOMainServer.prototype.getServerConfig=function(){return resolveio_server_app_1.ResolveIOServer.getServerConfig()},ResolveIOMainServer}();exports.ResolveIOMainServer=ResolveIOMainServer;
|
|
2
2
|
//# sourceMappingURL=server-app.js.map
|