@resolveio/server-lib 22.2.26 → 22.2.27
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.
|
@@ -102,7 +102,8 @@ var WorkerServerManager = /** @class */ (function () {
|
|
|
102
102
|
var _this = this;
|
|
103
103
|
var workerIndex = encodeURIComponent(String(process.env.WORKER_INDEX || ''));
|
|
104
104
|
var workerInstance = encodeURIComponent(String(process.env.NODE_APP_INSTANCE || ''));
|
|
105
|
-
var
|
|
105
|
+
var workerToken = encodeURIComponent(String(this._serverConfig['WORKER_TOKEN'] || ''));
|
|
106
|
+
var wsUrl = this._serverConfig['SERVER_URL'] + '/websocket?workerToken=' + workerToken + '&workerIndex=' + workerIndex + '&workerInstance=' + workerInstance;
|
|
106
107
|
var ws = new WebSocket(wsUrl);
|
|
107
108
|
var lastComm = new Date();
|
|
108
109
|
var interval = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/managers/worker-server.manager.ts"],"names":[],"mappings":"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","file":"worker-server.manager.js","sourcesContent":["import { pack, unpack } from 'msgpackr';\nimport * as WebSocket from 'ws';\nimport { TaskPayload, TaskResponse } from '../models/server-message.model';\nimport { dateReviver, round } from '../util/common';\nimport { MethodManager } from './method.manager';\n\nexport class WorkerServerManager {\n private _methodManager: MethodManager;\n private _serverConfig;\n private _runningTasks = [];\n\tprivate _taskLogThresholdMs = 200;\n\n constructor() {}\n \n static create(methodManager: MethodManager, serverConfig) {\n const workerServerManager = new WorkerServerManager();\n workerServerManager.initialize(methodManager, serverConfig);\n return workerServerManager;\n }\n\n public initialize(methodManager: MethodManager, serverConfig) {\n this._methodManager = methodManager;\n this._serverConfig = serverConfig;\n\t\tif (this._methodManager && typeof this._methodManager.onReady === 'function') {\n\t\t\tthis._methodManager.onReady(() => this.startWorkerInstance());\n\t\t}\n\t\telse {\n\t\t\tthis.startWorkerInstance();\n\t\t}\n }\n\n private startWorkerInstance() {\n const workerIndex = encodeURIComponent(String(process.env.WORKER_INDEX || ''));\n const workerInstance = encodeURIComponent(String(process.env.NODE_APP_INSTANCE || ''));\n let wsUrl = this._serverConfig['SERVER_URL'] + '/websocket?workerToken=' + this._serverConfig['WORKER_TOKEN'] + '&workerIndex=' + workerIndex + '&workerInstance=' + workerInstance;\n const ws = new WebSocket(wsUrl);\n \n let lastComm = new Date();\n let interval = null;\n let missedPongs = 0;\n const heartbeatIntervalMs = 15000;\n const maxMissedPongs = 2;\n const maxSilenceMs = heartbeatIntervalMs * (maxMissedPongs + 1);\n let openTimeout = null;\n let opened = false;\n \n // Set timeout if the socket never opens\n openTimeout = setTimeout(() => {\n if (!opened) {\n console.error(new Date(), 'WebSocket connection timeout. Retrying...');\n ws.terminate(); // force close if still connecting\n }\n }, 10000); // 10 seconds timeout\n \n ws.on('open', () => {\n opened = true;\n clearTimeout(openTimeout);\n \n console.log(new Date(), 'Connected to main server as worker', process.env.WORKER_INDEX, process.env.NODE_APP_INSTANCE);\n this.sendWorkerResponse(ws, 'ping');\n \n interval = setInterval(() => {\n const now = Date.now();\n const last = lastComm ? lastComm.getTime() : 0;\n const silenceMs = last ? now - last : maxSilenceMs + 1;\n if (silenceMs > maxSilenceMs || missedPongs > maxMissedPongs) {\n ws.close();\n return;\n }\n missedPongs += 1;\n this.sendWorkerResponse(ws, 'ping');\n }, heartbeatIntervalMs);\n });\n \n\t\tws.on('message', async (rawData: WebSocket.RawData) => {\n\t\t\tlastComm = new Date();\n\t\t\tif (typeof rawData === 'string') {\n\t\t\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\t\t\tconsole.log(new Date(), 'Message Recv', rawData);\n\t\t\t\t}\n\n\t\t\t\tif (rawData === 'ping') {\n\t\t\t\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\t\t\t\tconsole.log(new Date(), 'Recv Ping, Sending Pong');\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.sendWorkerResponse(ws, 'pong');\n\t\t\t\t}\n\t\t\t\telse if (rawData === 'pong') {\n\t\t\t\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\t\t\t\tconsole.log(new Date(), 'Recv Pong');\n\t\t\t\t\t}\n\t\t\t\t\tmissedPongs = 0;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet msg: any;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tmsg = JSON.parse(rawData, dateReviver);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\tconsole.error('Worker parse error', e);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (msg.type === 'task') {\n\t\t\t\t\t\tawait this.handleIncomingTask(ws, msg);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet messageBuffer: Buffer;\n\n\t\t\tif (Buffer.isBuffer(rawData)) {\n\t\t\t\tmessageBuffer = rawData;\n\t\t\t}\n\t\t\telse if (Array.isArray(rawData)) {\n\t\t\t\tconst chunks = rawData as unknown as ReadonlyArray<Uint8Array>;\n\t\t\t\tmessageBuffer = Buffer.concat(chunks);\n\t\t\t}\n\t\t\telse if (rawData instanceof ArrayBuffer) {\n\t\t\t\tmessageBuffer = Buffer.from(rawData);\n\t\t\t}\n\t\t\telse if (ArrayBuffer.isView(rawData)) {\n\t\t\t\tconst view = rawData as NodeJS.ArrayBufferView;\n\t\t\t\tmessageBuffer = Buffer.from(view.buffer, view.byteOffset, view.byteLength);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmessageBuffer = Buffer.from(rawData as any);\n\t\t\t}\n\n\t\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\t\tconsole.log(new Date(), 'Message Recv (binary)', messageBuffer.length);\n\t\t\t}\n\n\t\t\tif (messageBuffer.length === 4) {\n\t\t\t\tlet heartbeat = messageBuffer.toString('utf8');\n\n\t\t\t\tif (heartbeat === 'ping') {\n\t\t\t\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\t\t\t\tconsole.log(new Date(), 'Recv Ping (binary), Sending Pong');\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.sendWorkerResponse(ws, 'pong');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\telse if (heartbeat === 'pong') {\n\t\t\t\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\t\t\t\tconsole.log(new Date(), 'Recv Pong (binary)');\n\t\t\t\t\t}\n\t\t\t\t\tmissedPongs = 0;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet msg: TaskPayload;\n\n\t\t\ttry {\n\t\t\t\tmsg = unpack(messageBuffer);\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\tconsole.error('Worker binary parse error', e);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (msg.type === 'task') {\n\t\t\t\tawait this.handleIncomingTask(ws, msg);\n\t\t\t}\n\t\t});\n \n ws.on('close', () => {\n setTimeout(() => {\n this.startWorkerInstance();\n }, 1000);\n \n if (interval) {\n clearInterval(interval);\n }\n clearTimeout(openTimeout);\n });\n \n\t\tws.on('error', (err) => {\n\t\t\tconst message = err?.message || '';\n\t\t\tconst statusMatch = message.match(/Unexpected server response:\\s*(\\d{3})/);\n\t\t\tconst statusCode = statusMatch ? statusMatch[1] : null;\n\t\t\tconst isRestartNoise = statusCode === '502';\n\t\t\tif (statusCode && !isRestartNoise) {\n\t\t\t\tconsole.error(new Date(), `Worker WS error: Failure ${statusCode}`);\n\t\t\t}\n\t\t\telse if (!isRestartNoise) {\n\t\t\t\tconsole.error(new Date(), 'Worker WS error:', err);\n\t\t\t}\n\t\t\telse if (this._methodManager.getEnableDebug()) {\n\t\t\t\tconsole.log(new Date(), 'Worker WS reconnecting after main restart', message);\n\t\t\t}\n\t\t\tws.close();\n\t\t});\n }\n\n private async handleIncomingTask(ws: WebSocket.WebSocket, data: TaskPayload) {\n let { taskId, messageId, method, params, userContext } = data;\n\t\tconst receivedAt = Date.now();\n\t\tconst queuedAt = data.queuedAt;\n\t\tconst dispatchedAt = data.dispatchedAt;\n\t\tconst queueWaitMs = queuedAt && dispatchedAt ? round(dispatchedAt - queuedAt) : (queuedAt ? round(receivedAt - queuedAt) : null);\n\t\tconst dispatchDelayMs = dispatchedAt ? round(receivedAt - dispatchedAt) : null;\n this._runningTasks.push(taskId);\n const missingMethod = !method || !this._methodManager.getMethod(method);\n if (!taskId || !method || missingMethod) {\n if (missingMethod) {\n console.error(new Date(), 'No method in method manager for handleIncomingTask worker server', method);\n\t\t\t\tif (this._methodManager.getMethod('insertErrorLog')) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait this._methodManager.callMethod('insertErrorLog', `No Method in worker server handleIncomingTask: ${method} - ${JSON.stringify(data, null, 2)}`);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\tconsole.error(new Date(), 'insertErrorLog failed in worker-server', error);\n\t\t\t\t\t}\n\t\t\t\t}\n }\n\n // console.log('Invalid task message received', data);\n\t\t\tthis.logWorkerEvent('workerTaskInvalid', {\n\t\t\t\ttaskId,\n\t\t\t\tmethod,\n\t\t\t\tmessageId,\n\t\t\t\tqueueWaitMs,\n\t\t\t\tdispatchDelayMs,\n\t\t\t\tuserContext,\n\t\t\t\tparams\n\t\t\t});\n this.sendWorkerResponse(ws, {\n type: 'taskComplete',\n taskId,\n messageId,\n error: true,\n result: 'Invalid task'\n });\n\n return;\n }\n\n let timedOut = false;\n let timeoutHandle = setTimeout(async () => {\n timedOut = true;\n\t\t\tconst timeoutAt = Date.now();\n\t\t\tconst runMs = round(timeoutAt - receivedAt);\n\t\t\tconst totalMs = queuedAt ? round(timeoutAt - queuedAt) : null;\n console.error(new Date(), 'Worker timed out on task:', taskId, 'Method:', method);\n\n\t\t\tthis.logWorkerEvent('workerTaskTimeout', {\n\t\t\t\ttaskId,\n\t\t\t\tmethod,\n\t\t\t\tmessageId,\n\t\t\t\trunMs,\n\t\t\t\tqueueWaitMs,\n\t\t\t\tdispatchDelayMs,\n\t\t\t\ttotalMs,\n\t\t\t\tuserContext,\n\t\t\t\tparams\n\t\t\t});\n\n this.sendWorkerResponse(ws, {\n type: 'taskComplete',\n taskId,\n messageId,\n error: true,\n result: 'Task timed out'\n });\n\n await this._methodManager.callMethod('insertErrorLog', `Timeout in Method: ${method} - ${JSON.stringify(data, null, 2)}`);\n }, this._methodManager.getMethod(method)?.timeoutOverride || (1000 * 60 * 2));\n\n try {\n let managerThis = Object.assign({}, this._methodManager, MethodManager.prototype, {\n id_user: userContext?.id_user || '',\n user: userContext?.user || '',\n id_ws: userContext?.id_ws || ''\n });\n\n if (this._methodManager.getEnableDebug()) {\n console.log(new Date(), 'Running method', method);\n }\n\n\t\t\tlet result = await this._methodManager.callMethod.call(managerThis, method, ...params);\n\t\t\tlet packedResult: Uint8Array | Buffer = null;\n\t\t\tlet meta: Record<string, any> = null;\n\t\t\tlet publicationPayload: any = undefined;\n\t\t\tlet publicationMeta: Record<string, any> = null;\n\t\t\tconst isPublicationResponse = !!(result && result.__publicationResponse);\n\n\t\t\ttry {\n\t\t\t\tif (isPublicationResponse) {\n\t\t\t\t\tpublicationPayload = result.payload;\n\t\t\t\t\tpublicationMeta = {\n\t\t\t\t\t\ttype: 'publication',\n\t\t\t\t\t\tpublication: result.publication,\n\t\t\t\t\t\tsubscriptionData: result.subscriptionData,\n\t\t\t\t\t\tuserSpecific: result.userSpecific,\n\t\t\t\t\t\tsnapshot: result.snapshot\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (isPublicationResponse) {\n\t\t\t\t\tmeta = publicationMeta;\n\t\t\t\t\tpackedResult = <Buffer>pack(publicationPayload);\n\t\t\t\t\tresult = null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tpackedResult = <Buffer>pack(result);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (packErr) {\n\t\t\t\tconsole.error(new Date(), 'Worker pack error', packErr);\n\t\t\t\tif (isPublicationResponse) {\n\t\t\t\t\tmeta = publicationMeta;\n\t\t\t\t\tresult = publicationPayload;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\t\tconsole.log(new Date(), 'Finished method', method);\n\t\t\t}\n\n\t\t\tif (!timedOut) {\n\t\t\t\tclearTimeout(timeoutHandle);\n\t\t\t\tconst payload: TaskResponse = {\n\t\t\t\t\ttype: 'taskComplete',\n\t\t\t\t\ttaskId,\n\t\t\t\t\tmessageId,\n\t\t\t\t\terror: false,\n\t\t\t\t\tresult: packedResult ? null : result,\n\t\t\t\t\tpackedResult,\n\t\t\t\t\tencoding: 'msgpack',\n\t\t\t\t\tmeta\n\t\t\t\t};\n\n\t\t\t\tthis.sendWorkerResponse(ws, payload);\n\t\t\t}\n\n this._runningTasks = this._runningTasks.filter(a => a !== taskId);\n \n if (this._methodManager.getEnableDebug()) {\n console.log(new Date(), 'Done with Task', JSON.stringify(this._runningTasks, null, 2));\n }\n }\n catch (err) {\n if (!timedOut) {\n clearTimeout(timeoutHandle);\n\t\t\t\tconst errorAt = Date.now();\n\t\t\t\tconst runMs = round(errorAt - receivedAt);\n\t\t\t\tconst totalMs = queuedAt ? round(errorAt - queuedAt) : null;\n console.error('Worker failed task:', taskId, 'Method:', method, err);\n err.message = 'Worker failed task:' + taskId + ' Method:' + method + ' - ' + err.message;\n\t\t\t\tthis.logWorkerEvent('workerTaskError', {\n\t\t\t\t\ttaskId,\n\t\t\t\t\tmethod,\n\t\t\t\t\tmessageId,\n\t\t\t\t\trunMs,\n\t\t\t\t\tqueueWaitMs,\n\t\t\t\t\tdispatchDelayMs,\n\t\t\t\t\ttotalMs,\n\t\t\t\t\tuserContext,\n\t\t\t\t\tparams,\n\t\t\t\t\terror: err\n\t\t\t\t});\n this.sendWorkerResponse(ws, {\n type: 'taskComplete',\n taskId,\n messageId,\n error: true,\n result: err || 'Unknown error'\n });\n throw err;\n }\n\n\t\t\tconst errorAt = Date.now();\n\t\t\tconst runMs = round(errorAt - receivedAt);\n\t\t\tconst totalMs = queuedAt ? round(errorAt - queuedAt) : null;\n\t\t\tthis.logWorkerEvent('workerTaskError', {\n\t\t\t\ttaskId,\n\t\t\t\tmethod,\n\t\t\t\tmessageId,\n\t\t\t\trunMs,\n\t\t\t\tqueueWaitMs,\n\t\t\t\tdispatchDelayMs,\n\t\t\t\ttotalMs,\n\t\t\t\tuserContext,\n\t\t\t\tparams,\n\t\t\t\terror: err\n\t\t\t});\n\n console.error(new Date(), `Error in Method: ${method} - ${JSON.stringify(data, null, 2)}`);\n \n await this._methodManager.callMethod('insertErrorLog', `Error in Method: ${method} - ${JSON.stringify(data, null, 2)}`);\n \n this._runningTasks = this._runningTasks.filter(a => a !== taskId);\n }\n }\n\n\tprivate logWorkerEvent(event: string, details: Record<string, any>) {\n\t\tconsole.log(this.safeStringify({\n\t\t\tts: new Date().toISOString(),\n\t\t\tevent,\n\t\t\t...details\n\t\t}));\n\t}\n\n\tprivate safeStringify(value: any): string {\n\t\ttry {\n\t\t\tconst seen = new WeakSet();\n\t\t\treturn JSON.stringify(value, (key, val) => {\n\t\t\t\tif (key === '__proto__') {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tif (typeof val === 'bigint') {\n\t\t\t\t\treturn val.toString();\n\t\t\t\t}\n\t\t\t\tif (val instanceof Error) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: val.name,\n\t\t\t\t\t\tmessage: val.message,\n\t\t\t\t\t\tstack: val.stack\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (val && typeof val === 'object') {\n\t\t\t\t\tif (seen.has(val)) {\n\t\t\t\t\t\treturn '[Circular]';\n\t\t\t\t\t}\n\t\t\t\t\tseen.add(val);\n\t\t\t\t}\n\t\t\t\treturn val;\n\t\t\t});\n\t\t}\n\t\tcatch (err) {\n\t\t\treturn JSON.stringify({\n\t\t\t\terror: 'safeStringifyFailed',\n\t\t\t\tmessage: err?.message || String(err)\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic sendWorkerResponse(ws, payload: TaskResponse | string) {\n\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\tconsole.log(new Date(), 'Sending', typeof payload === 'string' ? payload : '[binary]');\n\t\t}\n\n\t\tif (ws && ws.readyState === WebSocket.OPEN) {\n\t\t\ttry {\n\t\t\t\tif (typeof payload === 'string') {\n\t\t\t\t\tws.send(payload);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tws.send(pack(payload));\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\tconsole.error('Failed to send worker response:', err);\n\t\t\t}\n\t\t}\n\t\telse if (ws) {\n\t\t\tws.close();\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/managers/worker-server.manager.ts"],"names":[],"mappings":"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","file":"worker-server.manager.js","sourcesContent":["import { pack, unpack } from 'msgpackr';\nimport * as WebSocket from 'ws';\nimport { TaskPayload, TaskResponse } from '../models/server-message.model';\nimport { dateReviver, round } from '../util/common';\nimport { MethodManager } from './method.manager';\n\nexport class WorkerServerManager {\n private _methodManager: MethodManager;\n private _serverConfig;\n private _runningTasks = [];\n\tprivate _taskLogThresholdMs = 200;\n\n constructor() {}\n \n static create(methodManager: MethodManager, serverConfig) {\n const workerServerManager = new WorkerServerManager();\n workerServerManager.initialize(methodManager, serverConfig);\n return workerServerManager;\n }\n\n public initialize(methodManager: MethodManager, serverConfig) {\n this._methodManager = methodManager;\n this._serverConfig = serverConfig;\n\t\tif (this._methodManager && typeof this._methodManager.onReady === 'function') {\n\t\t\tthis._methodManager.onReady(() => this.startWorkerInstance());\n\t\t}\n\t\telse {\n\t\t\tthis.startWorkerInstance();\n\t\t}\n }\n\n private startWorkerInstance() {\n const workerIndex = encodeURIComponent(String(process.env.WORKER_INDEX || ''));\n const workerInstance = encodeURIComponent(String(process.env.NODE_APP_INSTANCE || ''));\n const workerToken = encodeURIComponent(String(this._serverConfig['WORKER_TOKEN'] || ''));\n let wsUrl = this._serverConfig['SERVER_URL'] + '/websocket?workerToken=' + workerToken + '&workerIndex=' + workerIndex + '&workerInstance=' + workerInstance;\n const ws = new WebSocket(wsUrl);\n \n let lastComm = new Date();\n let interval = null;\n let missedPongs = 0;\n const heartbeatIntervalMs = 15000;\n const maxMissedPongs = 2;\n const maxSilenceMs = heartbeatIntervalMs * (maxMissedPongs + 1);\n let openTimeout = null;\n let opened = false;\n \n // Set timeout if the socket never opens\n openTimeout = setTimeout(() => {\n if (!opened) {\n console.error(new Date(), 'WebSocket connection timeout. Retrying...');\n ws.terminate(); // force close if still connecting\n }\n }, 10000); // 10 seconds timeout\n \n ws.on('open', () => {\n opened = true;\n clearTimeout(openTimeout);\n \n console.log(new Date(), 'Connected to main server as worker', process.env.WORKER_INDEX, process.env.NODE_APP_INSTANCE);\n this.sendWorkerResponse(ws, 'ping');\n \n interval = setInterval(() => {\n const now = Date.now();\n const last = lastComm ? lastComm.getTime() : 0;\n const silenceMs = last ? now - last : maxSilenceMs + 1;\n if (silenceMs > maxSilenceMs || missedPongs > maxMissedPongs) {\n ws.close();\n return;\n }\n missedPongs += 1;\n this.sendWorkerResponse(ws, 'ping');\n }, heartbeatIntervalMs);\n });\n \n\t\tws.on('message', async (rawData: WebSocket.RawData) => {\n\t\t\tlastComm = new Date();\n\t\t\tif (typeof rawData === 'string') {\n\t\t\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\t\t\tconsole.log(new Date(), 'Message Recv', rawData);\n\t\t\t\t}\n\n\t\t\t\tif (rawData === 'ping') {\n\t\t\t\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\t\t\t\tconsole.log(new Date(), 'Recv Ping, Sending Pong');\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.sendWorkerResponse(ws, 'pong');\n\t\t\t\t}\n\t\t\t\telse if (rawData === 'pong') {\n\t\t\t\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\t\t\t\tconsole.log(new Date(), 'Recv Pong');\n\t\t\t\t\t}\n\t\t\t\t\tmissedPongs = 0;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet msg: any;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tmsg = JSON.parse(rawData, dateReviver);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\tconsole.error('Worker parse error', e);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (msg.type === 'task') {\n\t\t\t\t\t\tawait this.handleIncomingTask(ws, msg);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet messageBuffer: Buffer;\n\n\t\t\tif (Buffer.isBuffer(rawData)) {\n\t\t\t\tmessageBuffer = rawData;\n\t\t\t}\n\t\t\telse if (Array.isArray(rawData)) {\n\t\t\t\tconst chunks = rawData as unknown as ReadonlyArray<Uint8Array>;\n\t\t\t\tmessageBuffer = Buffer.concat(chunks);\n\t\t\t}\n\t\t\telse if (rawData instanceof ArrayBuffer) {\n\t\t\t\tmessageBuffer = Buffer.from(rawData);\n\t\t\t}\n\t\t\telse if (ArrayBuffer.isView(rawData)) {\n\t\t\t\tconst view = rawData as NodeJS.ArrayBufferView;\n\t\t\t\tmessageBuffer = Buffer.from(view.buffer, view.byteOffset, view.byteLength);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmessageBuffer = Buffer.from(rawData as any);\n\t\t\t}\n\n\t\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\t\tconsole.log(new Date(), 'Message Recv (binary)', messageBuffer.length);\n\t\t\t}\n\n\t\t\tif (messageBuffer.length === 4) {\n\t\t\t\tlet heartbeat = messageBuffer.toString('utf8');\n\n\t\t\t\tif (heartbeat === 'ping') {\n\t\t\t\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\t\t\t\tconsole.log(new Date(), 'Recv Ping (binary), Sending Pong');\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.sendWorkerResponse(ws, 'pong');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\telse if (heartbeat === 'pong') {\n\t\t\t\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\t\t\t\tconsole.log(new Date(), 'Recv Pong (binary)');\n\t\t\t\t\t}\n\t\t\t\t\tmissedPongs = 0;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet msg: TaskPayload;\n\n\t\t\ttry {\n\t\t\t\tmsg = unpack(messageBuffer);\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\tconsole.error('Worker binary parse error', e);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (msg.type === 'task') {\n\t\t\t\tawait this.handleIncomingTask(ws, msg);\n\t\t\t}\n\t\t});\n \n ws.on('close', () => {\n setTimeout(() => {\n this.startWorkerInstance();\n }, 1000);\n \n if (interval) {\n clearInterval(interval);\n }\n clearTimeout(openTimeout);\n });\n \n\t\tws.on('error', (err) => {\n\t\t\tconst message = err?.message || '';\n\t\t\tconst statusMatch = message.match(/Unexpected server response:\\s*(\\d{3})/);\n\t\t\tconst statusCode = statusMatch ? statusMatch[1] : null;\n\t\t\tconst isRestartNoise = statusCode === '502';\n\t\t\tif (statusCode && !isRestartNoise) {\n\t\t\t\tconsole.error(new Date(), `Worker WS error: Failure ${statusCode}`);\n\t\t\t}\n\t\t\telse if (!isRestartNoise) {\n\t\t\t\tconsole.error(new Date(), 'Worker WS error:', err);\n\t\t\t}\n\t\t\telse if (this._methodManager.getEnableDebug()) {\n\t\t\t\tconsole.log(new Date(), 'Worker WS reconnecting after main restart', message);\n\t\t\t}\n\t\t\tws.close();\n\t\t});\n }\n\n private async handleIncomingTask(ws: WebSocket.WebSocket, data: TaskPayload) {\n let { taskId, messageId, method, params, userContext } = data;\n\t\tconst receivedAt = Date.now();\n\t\tconst queuedAt = data.queuedAt;\n\t\tconst dispatchedAt = data.dispatchedAt;\n\t\tconst queueWaitMs = queuedAt && dispatchedAt ? round(dispatchedAt - queuedAt) : (queuedAt ? round(receivedAt - queuedAt) : null);\n\t\tconst dispatchDelayMs = dispatchedAt ? round(receivedAt - dispatchedAt) : null;\n this._runningTasks.push(taskId);\n const missingMethod = !method || !this._methodManager.getMethod(method);\n if (!taskId || !method || missingMethod) {\n if (missingMethod) {\n console.error(new Date(), 'No method in method manager for handleIncomingTask worker server', method);\n\t\t\t\tif (this._methodManager.getMethod('insertErrorLog')) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait this._methodManager.callMethod('insertErrorLog', `No Method in worker server handleIncomingTask: ${method} - ${JSON.stringify(data, null, 2)}`);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (error) {\n\t\t\t\t\t\tconsole.error(new Date(), 'insertErrorLog failed in worker-server', error);\n\t\t\t\t\t}\n\t\t\t\t}\n }\n\n // console.log('Invalid task message received', data);\n\t\t\tthis.logWorkerEvent('workerTaskInvalid', {\n\t\t\t\ttaskId,\n\t\t\t\tmethod,\n\t\t\t\tmessageId,\n\t\t\t\tqueueWaitMs,\n\t\t\t\tdispatchDelayMs,\n\t\t\t\tuserContext,\n\t\t\t\tparams\n\t\t\t});\n this.sendWorkerResponse(ws, {\n type: 'taskComplete',\n taskId,\n messageId,\n error: true,\n result: 'Invalid task'\n });\n\n return;\n }\n\n let timedOut = false;\n let timeoutHandle = setTimeout(async () => {\n timedOut = true;\n\t\t\tconst timeoutAt = Date.now();\n\t\t\tconst runMs = round(timeoutAt - receivedAt);\n\t\t\tconst totalMs = queuedAt ? round(timeoutAt - queuedAt) : null;\n console.error(new Date(), 'Worker timed out on task:', taskId, 'Method:', method);\n\n\t\t\tthis.logWorkerEvent('workerTaskTimeout', {\n\t\t\t\ttaskId,\n\t\t\t\tmethod,\n\t\t\t\tmessageId,\n\t\t\t\trunMs,\n\t\t\t\tqueueWaitMs,\n\t\t\t\tdispatchDelayMs,\n\t\t\t\ttotalMs,\n\t\t\t\tuserContext,\n\t\t\t\tparams\n\t\t\t});\n\n this.sendWorkerResponse(ws, {\n type: 'taskComplete',\n taskId,\n messageId,\n error: true,\n result: 'Task timed out'\n });\n\n await this._methodManager.callMethod('insertErrorLog', `Timeout in Method: ${method} - ${JSON.stringify(data, null, 2)}`);\n }, this._methodManager.getMethod(method)?.timeoutOverride || (1000 * 60 * 2));\n\n try {\n let managerThis = Object.assign({}, this._methodManager, MethodManager.prototype, {\n id_user: userContext?.id_user || '',\n user: userContext?.user || '',\n id_ws: userContext?.id_ws || ''\n });\n\n if (this._methodManager.getEnableDebug()) {\n console.log(new Date(), 'Running method', method);\n }\n\n\t\t\tlet result = await this._methodManager.callMethod.call(managerThis, method, ...params);\n\t\t\tlet packedResult: Uint8Array | Buffer = null;\n\t\t\tlet meta: Record<string, any> = null;\n\t\t\tlet publicationPayload: any = undefined;\n\t\t\tlet publicationMeta: Record<string, any> = null;\n\t\t\tconst isPublicationResponse = !!(result && result.__publicationResponse);\n\n\t\t\ttry {\n\t\t\t\tif (isPublicationResponse) {\n\t\t\t\t\tpublicationPayload = result.payload;\n\t\t\t\t\tpublicationMeta = {\n\t\t\t\t\t\ttype: 'publication',\n\t\t\t\t\t\tpublication: result.publication,\n\t\t\t\t\t\tsubscriptionData: result.subscriptionData,\n\t\t\t\t\t\tuserSpecific: result.userSpecific,\n\t\t\t\t\t\tsnapshot: result.snapshot\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (isPublicationResponse) {\n\t\t\t\t\tmeta = publicationMeta;\n\t\t\t\t\tpackedResult = <Buffer>pack(publicationPayload);\n\t\t\t\t\tresult = null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tpackedResult = <Buffer>pack(result);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (packErr) {\n\t\t\t\tconsole.error(new Date(), 'Worker pack error', packErr);\n\t\t\t\tif (isPublicationResponse) {\n\t\t\t\t\tmeta = publicationMeta;\n\t\t\t\t\tresult = publicationPayload;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\t\tconsole.log(new Date(), 'Finished method', method);\n\t\t\t}\n\n\t\t\tif (!timedOut) {\n\t\t\t\tclearTimeout(timeoutHandle);\n\t\t\t\tconst payload: TaskResponse = {\n\t\t\t\t\ttype: 'taskComplete',\n\t\t\t\t\ttaskId,\n\t\t\t\t\tmessageId,\n\t\t\t\t\terror: false,\n\t\t\t\t\tresult: packedResult ? null : result,\n\t\t\t\t\tpackedResult,\n\t\t\t\t\tencoding: 'msgpack',\n\t\t\t\t\tmeta\n\t\t\t\t};\n\n\t\t\t\tthis.sendWorkerResponse(ws, payload);\n\t\t\t}\n\n this._runningTasks = this._runningTasks.filter(a => a !== taskId);\n \n if (this._methodManager.getEnableDebug()) {\n console.log(new Date(), 'Done with Task', JSON.stringify(this._runningTasks, null, 2));\n }\n }\n catch (err) {\n if (!timedOut) {\n clearTimeout(timeoutHandle);\n\t\t\t\tconst errorAt = Date.now();\n\t\t\t\tconst runMs = round(errorAt - receivedAt);\n\t\t\t\tconst totalMs = queuedAt ? round(errorAt - queuedAt) : null;\n console.error('Worker failed task:', taskId, 'Method:', method, err);\n err.message = 'Worker failed task:' + taskId + ' Method:' + method + ' - ' + err.message;\n\t\t\t\tthis.logWorkerEvent('workerTaskError', {\n\t\t\t\t\ttaskId,\n\t\t\t\t\tmethod,\n\t\t\t\t\tmessageId,\n\t\t\t\t\trunMs,\n\t\t\t\t\tqueueWaitMs,\n\t\t\t\t\tdispatchDelayMs,\n\t\t\t\t\ttotalMs,\n\t\t\t\t\tuserContext,\n\t\t\t\t\tparams,\n\t\t\t\t\terror: err\n\t\t\t\t});\n this.sendWorkerResponse(ws, {\n type: 'taskComplete',\n taskId,\n messageId,\n error: true,\n result: err || 'Unknown error'\n });\n throw err;\n }\n\n\t\t\tconst errorAt = Date.now();\n\t\t\tconst runMs = round(errorAt - receivedAt);\n\t\t\tconst totalMs = queuedAt ? round(errorAt - queuedAt) : null;\n\t\t\tthis.logWorkerEvent('workerTaskError', {\n\t\t\t\ttaskId,\n\t\t\t\tmethod,\n\t\t\t\tmessageId,\n\t\t\t\trunMs,\n\t\t\t\tqueueWaitMs,\n\t\t\t\tdispatchDelayMs,\n\t\t\t\ttotalMs,\n\t\t\t\tuserContext,\n\t\t\t\tparams,\n\t\t\t\terror: err\n\t\t\t});\n\n console.error(new Date(), `Error in Method: ${method} - ${JSON.stringify(data, null, 2)}`);\n \n await this._methodManager.callMethod('insertErrorLog', `Error in Method: ${method} - ${JSON.stringify(data, null, 2)}`);\n \n this._runningTasks = this._runningTasks.filter(a => a !== taskId);\n }\n }\n\n\tprivate logWorkerEvent(event: string, details: Record<string, any>) {\n\t\tconsole.log(this.safeStringify({\n\t\t\tts: new Date().toISOString(),\n\t\t\tevent,\n\t\t\t...details\n\t\t}));\n\t}\n\n\tprivate safeStringify(value: any): string {\n\t\ttry {\n\t\t\tconst seen = new WeakSet();\n\t\t\treturn JSON.stringify(value, (key, val) => {\n\t\t\t\tif (key === '__proto__') {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tif (typeof val === 'bigint') {\n\t\t\t\t\treturn val.toString();\n\t\t\t\t}\n\t\t\t\tif (val instanceof Error) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: val.name,\n\t\t\t\t\t\tmessage: val.message,\n\t\t\t\t\t\tstack: val.stack\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (val && typeof val === 'object') {\n\t\t\t\t\tif (seen.has(val)) {\n\t\t\t\t\t\treturn '[Circular]';\n\t\t\t\t\t}\n\t\t\t\t\tseen.add(val);\n\t\t\t\t}\n\t\t\t\treturn val;\n\t\t\t});\n\t\t}\n\t\tcatch (err) {\n\t\t\treturn JSON.stringify({\n\t\t\t\terror: 'safeStringifyFailed',\n\t\t\t\tmessage: err?.message || String(err)\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic sendWorkerResponse(ws, payload: TaskResponse | string) {\n\t\tif (this._methodManager.getEnableDebug()) {\n\t\t\tconsole.log(new Date(), 'Sending', typeof payload === 'string' ? payload : '[binary]');\n\t\t}\n\n\t\tif (ws && ws.readyState === WebSocket.OPEN) {\n\t\t\ttry {\n\t\t\t\tif (typeof payload === 'string') {\n\t\t\t\t\tws.send(payload);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tws.send(pack(payload));\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\tconsole.error('Failed to send worker response:', err);\n\t\t\t}\n\t\t}\n\t\telse if (ws) {\n\t\t\tws.close();\n\t\t}\n\t}\n}\n"]}
|
package/methods/aws.js
CHANGED
|
@@ -56,7 +56,37 @@ var file_collection_1 = require("../collections/file.collection");
|
|
|
56
56
|
var resolveio_server_app_1 = require("../resolveio-server-app");
|
|
57
57
|
var common_1 = require("../util/common");
|
|
58
58
|
var fs = require('fs');
|
|
59
|
+
var path = require('path');
|
|
59
60
|
var pdfCnt = 1000000;
|
|
61
|
+
var NON_PDF_CONTENT_TYPES = {
|
|
62
|
+
'.csv': 'text/csv; charset=utf-8',
|
|
63
|
+
'.css': 'text/css; charset=utf-8',
|
|
64
|
+
'.env': 'text/plain; charset=utf-8',
|
|
65
|
+
'.gz': 'application/gzip',
|
|
66
|
+
'.html': 'text/html; charset=utf-8',
|
|
67
|
+
'.json': 'application/json',
|
|
68
|
+
'.js': 'application/javascript',
|
|
69
|
+
'.md': 'text/markdown; charset=utf-8',
|
|
70
|
+
'.tar': 'application/x-tar',
|
|
71
|
+
'.tgz': 'application/gzip',
|
|
72
|
+
'.ts': 'application/typescript',
|
|
73
|
+
'.txt': 'text/plain; charset=utf-8',
|
|
74
|
+
'.xml': 'application/xml',
|
|
75
|
+
'.yaml': 'application/yaml',
|
|
76
|
+
'.yml': 'application/yaml',
|
|
77
|
+
'.zip': 'application/zip'
|
|
78
|
+
};
|
|
79
|
+
function inferNonPDFContentType(fileName) {
|
|
80
|
+
if (!fileName) {
|
|
81
|
+
return 'application/octet-stream';
|
|
82
|
+
}
|
|
83
|
+
var normalized = fileName.toLowerCase();
|
|
84
|
+
if (normalized.endsWith('.tar.gz')) {
|
|
85
|
+
return 'application/gzip';
|
|
86
|
+
}
|
|
87
|
+
var extension = path.extname(normalized);
|
|
88
|
+
return NON_PDF_CONTENT_TYPES[extension] || 'application/octet-stream';
|
|
89
|
+
}
|
|
60
90
|
function loadAWSMethods(methodManager) {
|
|
61
91
|
methodManager.methods({
|
|
62
92
|
uploadFileAndSave: {
|
|
@@ -261,7 +291,7 @@ function loadAWSMethods(methodManager) {
|
|
|
261
291
|
}),
|
|
262
292
|
function: function (fileName, fileData, fileSize, fileOrder, fileType) {
|
|
263
293
|
return __awaiter(this, void 0, void 0, function () {
|
|
264
|
-
var key, s3, res, err_3;
|
|
294
|
+
var key, s3, contentType, res, err_3;
|
|
265
295
|
return __generator(this, function (_a) {
|
|
266
296
|
switch (_a.label) {
|
|
267
297
|
case 0:
|
|
@@ -273,12 +303,13 @@ function loadAWSMethods(methodManager) {
|
|
|
273
303
|
_a.label = 1;
|
|
274
304
|
case 1:
|
|
275
305
|
_a.trys.push([1, 3, , 4]);
|
|
306
|
+
contentType = inferNonPDFContentType(fileName);
|
|
276
307
|
return [4 /*yield*/, s3.putObject({
|
|
277
308
|
Bucket: process.env.AWS_S3_BUCKET,
|
|
278
309
|
Key: key,
|
|
279
310
|
Body: Buffer.from(fileData),
|
|
280
311
|
ACL: 'private',
|
|
281
|
-
ContentType:
|
|
312
|
+
ContentType: contentType,
|
|
282
313
|
ContentDisposition: 'inline'
|
|
283
314
|
})];
|
|
284
315
|
case 2:
|
|
@@ -322,7 +353,7 @@ function loadAWSMethods(methodManager) {
|
|
|
322
353
|
}),
|
|
323
354
|
function: function (fileName, fileDataBuffer, fileSize, fileOrder, fileType) {
|
|
324
355
|
return __awaiter(this, void 0, void 0, function () {
|
|
325
|
-
var key, s3, res, err_4;
|
|
356
|
+
var key, s3, contentType, res, err_4;
|
|
326
357
|
return __generator(this, function (_a) {
|
|
327
358
|
switch (_a.label) {
|
|
328
359
|
case 0:
|
|
@@ -334,12 +365,13 @@ function loadAWSMethods(methodManager) {
|
|
|
334
365
|
_a.label = 1;
|
|
335
366
|
case 1:
|
|
336
367
|
_a.trys.push([1, 3, , 4]);
|
|
368
|
+
contentType = inferNonPDFContentType(fileName);
|
|
337
369
|
return [4 /*yield*/, s3.putObject({
|
|
338
370
|
Bucket: process.env.AWS_S3_BUCKET,
|
|
339
371
|
Key: key,
|
|
340
372
|
Body: fileDataBuffer,
|
|
341
373
|
ACL: 'private',
|
|
342
|
-
ContentType:
|
|
374
|
+
ContentType: contentType,
|
|
343
375
|
ContentDisposition: 'inline'
|
|
344
376
|
})];
|
|
345
377
|
case 2:
|
|
@@ -380,7 +412,7 @@ function loadAWSMethods(methodManager) {
|
|
|
380
412
|
}),
|
|
381
413
|
function: function (fileName, fileData, fileOrder, fileType) {
|
|
382
414
|
return __awaiter(this, void 0, void 0, function () {
|
|
383
|
-
var key, s3, res, err_5;
|
|
415
|
+
var key, s3, contentType, res, err_5;
|
|
384
416
|
return __generator(this, function (_a) {
|
|
385
417
|
switch (_a.label) {
|
|
386
418
|
case 0:
|
|
@@ -392,12 +424,13 @@ function loadAWSMethods(methodManager) {
|
|
|
392
424
|
_a.label = 1;
|
|
393
425
|
case 1:
|
|
394
426
|
_a.trys.push([1, 3, , 4]);
|
|
427
|
+
contentType = inferNonPDFContentType(fileName);
|
|
395
428
|
return [4 /*yield*/, s3.putObject({
|
|
396
429
|
Bucket: process.env.AWS_S3_BUCKET,
|
|
397
430
|
Key: key,
|
|
398
431
|
Body: fs.createReadStream(fileData),
|
|
399
432
|
ACL: 'private',
|
|
400
|
-
ContentType:
|
|
433
|
+
ContentType: contentType,
|
|
401
434
|
ContentDisposition: 'inline'
|
|
402
435
|
})];
|
|
403
436
|
case 2:
|
package/methods/aws.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/methods/aws.ts"],"names":[],"mappings":"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","file":"aws.js","sourcesContent":["import { GetObjectCommand } from '@aws-sdk/client-s3';\nimport { getSignedUrl } from '@aws-sdk/s3-request-presigner';\nimport axios from 'axios';\nimport SimpleSchema from 'simpl-schema';\nimport { Files } from '../collections/file.collection';\nimport { AWS, MethodManager } from '../managers/method.manager';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { objectIdHexString } from '../util/common';\nlet fs = require('fs');\nlet pdfCnt = 1000000;\n\nexport function loadAWSMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tuploadFileAndSave: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileData: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileSize: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tfileOrder: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tcompress: {\n\t\t\t\t\ttype: Boolean\n\t\t\t\t}\n\t\t\t}),\n\t\t\t// eslint-disable-next-line no-unused-vars\n\t\t\tfunction: async function(fileName: string, fileData: string, fileSize: number, fileOrder: number, fileType: string, compress: Boolean) {\n\t\t\t\tif (!fileName) {\n\t\t\t\t\tthrow new Error(\"Invalid File Name provided\");\n\t\t\t\t}\n\n\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\tconst maxRetries = 3;\n\t\t\t\tlet attempt = 0;\n\n\t\t\t\twhile (attempt <= maxRetries) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet res = await s3.putObject({\n\t\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\t\tKey: key,\n\t\t\t\t\t\t\tBody: Buffer.from(fileData.replace('data:' + fileData.split(',')[0].split(':')[1].split(';')[0] + ';base64,', ''), 'base64'), \n\t\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\t\tContentType: fileData.split(',')[0].split(':')[1].split(';')[0], \n\t\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\treturn Files.create({\n\t\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\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\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\tattempt++;\n\t\t\t\t\t\tif (attempt <= maxRetries) {\n\t\t\t\t\t\t\tconst backoff = Math.pow(2, attempt) * 1000;\n\t\t\t\t\t\t\tconsole.warn(`Attempt ${attempt} failed. Retrying in ${backoff / 1000} seconds...`);\n\t\t\t\t\t\t\t// eslint-disable-next-line no-restricted-syntax\n\t\t\t\t\t\t\tawait new Promise(resolve => setTimeout(resolve, backoff));\n\t\t\t\t\t\t} \n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthrow new Error(`Error in AWS Upload File And Save: Failed to upload after ${maxRetries} attempts: ${err.message}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\t\tuploadPDFBufferAndSave: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileDataBuffer: {\n\t\t\t\t\ttype: Buffer\n\t\t\t\t},\n\t\t\t\tfileSize: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tfileOrder: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tfunction: async function(fileName: string, fileDataBuffer: any, fileSize: number, fileOrder: number, fileType: string) {\n\t\t\t\t\tif (!fileName) {\n\t\t\t\t\t\tthrow new Error(\"Invalid File Name provided\");\n\t\t\t\t\t}\n\n\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\tconst maxRetries = 3;\n\t\t\t\tlet attempt = 0;\n\n\t\t\t\twhile (attempt <= maxRetries) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet res = await s3.putObject({\n\t\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\t\tKey: key,\n\t\t\t\t\t\t\tBody: fileDataBuffer,\n\t\t\t\t\t\t\tACL: 'private',\n\t\t\t\t\t\t\tContentType: 'application/pdf',\n\t\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\treturn Files.create({\n\t\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\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\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\tattempt++;\n\t\t\t\t\t\tif (attempt <= maxRetries) {\n\t\t\t\t\t\t\tconst backoff = Math.pow(2, attempt) * 1000;\n\t\t\t\t\t\t\tconsole.warn(`Attempt ${attempt} failed. Retrying in ${backoff / 1000} seconds...`);\n\t\t\t\t\t\t\t// eslint-disable-next-line no-restricted-syntax\n\t\t\t\t\t\t\tawait new Promise(resolve => setTimeout(resolve, backoff));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthrow new Error(`Error in AWS Upload PDF Buffer And Save: Failed to upload after ${maxRetries} attempts: ${err.message}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tuploadNonPDFFileAndSave: {\n\t\t\tcheck: new SimpleSchema({\t\n\t\t\t\tfileName: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileData: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileSize: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileOrder: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileType: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t}\t\n\t\t\t}),\t\n\t\t\tfunction: async function(fileName: string, fileData: string, fileSize: number, fileOrder: number, fileType: string) {\t\n\t\t\t\tif (!fileName) {\n\t\t\t\t\tthrow new Error(\"Invalid File Name provided\");\n\t\t\t\t}\n\n\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + fileName;\t\n\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tlet res = await s3.putObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: key, \n\t\t\t\t\t\tBody: Buffer.from(fileData), \n\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\tContentType: 'application/gzip', \n\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t});\n\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\treturn Files.create({\t\n\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\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\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Upload Non PDF File And Save: ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\t\n\t\t},\n\t\tuploadNonPDFBufferAndSave: {\n\t\t\tcheck: new SimpleSchema({\t\n\t\t\t\tfileName: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileDataBuffer: {\t\n\t\t\t\t\ttype: Buffer\n\t\t\t\t},\t\n\t\t\t\tfileSize: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileOrder: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileType: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t}\t\n\t\t\t}),\t\n\t\t\tfunction: async function(fileName: string, fileDataBuffer, fileSize: number, fileOrder: number, fileType: string) {\t\n\t\t\t\tif (!fileName) {\n\t\t\t\t\tthrow new Error(\"Invalid File Name provided\");\n\t\t\t\t}\n\n\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + fileName;\t\n\t\t\t\t\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\n\t\t\t\ttry {\n\t\t\t\t\tlet res = await s3.putObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: key, \n\t\t\t\t\t\tBody: fileDataBuffer, \n\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\tContentType: 'application/gzip', \n\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t});\n\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\treturn Files.create({\t\n\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\n\t\t\t\t\t\t});\n\t\t\t\t\t}\t\n\t\t\t\t\telse {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Upload Non PDF Buffer And Save: ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\t\n\t\t},\n\t\tuploadNonPDFStreamAndSave: {\n\t\t\tcheck: new SimpleSchema({\t\n\t\t\t\tfileName: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileData: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileOrder: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileType: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t}\t\n\t\t\t}),\t\n\t\t\tfunction: async function(fileName: string, fileData: string, fileOrder: number, fileType: string) {\t\n\t\t\t\tif (!fileName) {\n\t\t\t\t\tthrow new Error(\"Invalid File Name provided\");\n\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + fileName;\t\n\t\t\t\t\t\t\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tlet res = await s3.putObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: key, \n\t\t\t\t\t\tBody: fs.createReadStream(fileData), \n\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\tContentType: 'application/gzip', \n\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t});\n\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\treturn Files.create({\t\n\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: 1, key: key, order: fileOrder, type: fileType\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\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Upload Non PDF Stream And Save: ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\t\n\t\t},\n\t\tdeleteFiles: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'keys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(keys: string[]) {\n\t\t\t\tif (!Array.isArray(keys) || keys.length === 0) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\tlet files = await Files.find({key: {$in: keys}});\n\t\n\t\t\t\tlet deleteCnt = files.length;\n\t\n\t\t\t\tfor (let file of files) {\n\t\t\t\t\tawait Files.deleteOne({_id: file._id});\n\t\t\t\t\t\n\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet res = await s3.deleteObject({\n\t\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\t\tKey: file.key\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\tdeleteCnt--;\n\t\t\t\t\t\t\tif (!deleteCnt) {\n\t\t\t\t\t\t\t\treturn files.length;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\terr.mesage = 'Error In AWS Delete Files: ' + err.mesage;\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t},\n\t\tdeleteFile: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkey: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(key: string) {\t\t\n\t\t\t\tlet file = await Files.findOne({key: key});\n\t\n\t\t\t\tif (file) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait Files.deleteOne({_id: file._id});\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\terr.mesage = 'Error In AWS Delete File (Resolve Side): ' + err.mesage;\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tlet res = await s3.deleteObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\tKey: key\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\treturn res;\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Delete File (AWS Side): ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tdeleteFileWithId: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(id_file: string) {\n\t\t\t\tlet file = await Files.findOne({_id: id_file});\n\t\n\t\t\t\tif (!file) {\n\t\t\t\t\tthrow new Error('Error in AWS Delete File With ID: Could not find file');\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tawait Files.deleteOne({_id: file._id});\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Delete File With ID (Resolve Side): ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tlet res = await s3.deleteObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\tKey: file.key\n\t\t\t\t\t});\n\n\t\t\t\t\treturn res;\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Delete File With ID (AWS Side): ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tgetSignedUrlsAndFilesWithId: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tids: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'ids.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(ids: string[], expires: number) {\n\t\t\t\tlet res = [];\n\n\t\t\t\tlet files = await Files.find({_id: {$in: ids}});\n\t\t\t\t\n\t\t\t\tfor (let i = 0; i < files.length; i++) {\n\t\t\t\t\tlet file = files[i];\n\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: file.key\n\t\t\t\t\t});\n\t\t\t\t\tres.push(await getSignedUrl(s3, getCommand, {expiresIn: expires}));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn {res: res, fileArray: files.map(a => a.name)};\n\t\t\t}\n\t\t},\n\t\tgetSignedUrlWithId: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(id_file: string, expires: number) {\n\t\t\t\tlet file = await Files.findOne({_id: id_file});\n\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\tKey: file.key\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\treturn getSignedUrl(s3, getCommand, {expiresIn: expires});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrlUSEast1BucketAndKey: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tbucket: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tkey: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(bucket: string, key: string, expires: number) {\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3USEast1();\n\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\tBucket: bucket, \n\t\t\t\t\tKey: key\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\treturn getSignedUrl(s3, getCommand, {expiresIn: expires});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrl: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkey: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(key: string, expires: number) {\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\tKey: key\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\treturn getSignedUrl(s3, getCommand, {expiresIn: expires});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrls: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'keys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(keys: string[], expires: number) {\n\t\t\t\tlet res = [];\n\n\t\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\t\tlet key = keys[i];\n\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: key\n\t\t\t\t\t});\n\n\t\t\t\t\tres.push(await getSignedUrl(s3, getCommand, {expiresIn: expires}));\n\t\t\t\t}\n\n\t\t\t\treturn res;\n\t\t\t}\n\t\t},\n\t\tgetDataURIfromURL: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\turl: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(url: string) {\n\t\t\t\tconst response = await axios.get(url, {\n\t\t\t\t\tresponseType: 'arraybuffer'\n\t\t\t\t});\n\t\t\t\n\t\t\t\tif (response.status !== 200) {\n\t\t\t\t\tthrow new Error(`Error in Get Data URI From URL: Failed to fetch URL, status: ${response.status}`);\n\t\t\t\t}\n\t\t\t\n\t\t\t\tconst contentType = response.headers['content-type'];\n\t\t\t\tconst dataBase64 = Buffer.from(response.data).toString('base64');\n\t\t\t\treturn `data:${contentType};base64,${dataBase64}`;\n\t\t\t}\n\t\t},\n\t\temailFile: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\temail: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n additional_message: {\n type: String\n }\n\t\t\t}),\n\t\t\tfunction: async function(id_file: string, email: string, additional_message) {\n\t\t\t\tlet file = await Files.findById(id_file);\n\n\t\t\t\tif (!file) {\n\t\t\t\t\tthrow new Error('Error in AWS Email File: Could not find file');\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tlet resPDF = await this.callMethod('getSignedUrl', file.key, 259200);\n\t\t\t\t\t\n\t\t\t\t\tif (resPDF) {\n\t\t\t\t\t\tif (file.size < 5000000) {\n\t\t\t\t\t\t\tlet emailMessage = 'Attached is the file requested for email.\\n' + (additional_message !== '' ? '\\nAdditional Message:\\n' + additional_message + '\\n' : '') ;\n\n\t\t\t\t\t\t\tawait this.sendEmail(email, ResolveIOServer.getClientName() + ' File - ' + file.name, emailMessage, '', [{\n\t\t\t\t\t\t\t\tfilename: file.name,\n\t\t\t\t\t\t\t\tpath: resPDF\n\t\t\t\t\t\t\t}], null, '');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tlet emailMessage = 'Please click the link to the requested file.\\n' + (additional_message !== '' ? '\\nAdditional Message:\\n' + additional_message + '\\n' : '') ;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tawait this.sendEmail(email, ResolveIOServer.getClientName() + ' File - ' + file.name, emailMessage + resPDF, '', null, null, '');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in AWS Email File: Could not get file URL');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Email File: ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/methods/aws.ts"],"names":[],"mappings":"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","file":"aws.js","sourcesContent":["import { GetObjectCommand } from '@aws-sdk/client-s3';\nimport { getSignedUrl } from '@aws-sdk/s3-request-presigner';\nimport axios from 'axios';\nimport SimpleSchema from 'simpl-schema';\nimport { Files } from '../collections/file.collection';\nimport { AWS, MethodManager } from '../managers/method.manager';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { objectIdHexString } from '../util/common';\nlet fs = require('fs');\nlet path = require('path');\nlet pdfCnt = 1000000;\n\nconst NON_PDF_CONTENT_TYPES = {\n\t'.csv': 'text/csv; charset=utf-8',\n\t'.css': 'text/css; charset=utf-8',\n\t'.env': 'text/plain; charset=utf-8',\n\t'.gz': 'application/gzip',\n\t'.html': 'text/html; charset=utf-8',\n\t'.json': 'application/json',\n\t'.js': 'application/javascript',\n\t'.md': 'text/markdown; charset=utf-8',\n\t'.tar': 'application/x-tar',\n\t'.tgz': 'application/gzip',\n\t'.ts': 'application/typescript',\n\t'.txt': 'text/plain; charset=utf-8',\n\t'.xml': 'application/xml',\n\t'.yaml': 'application/yaml',\n\t'.yml': 'application/yaml',\n\t'.zip': 'application/zip'\n};\n\nfunction inferNonPDFContentType(fileName: string): string {\n\tif (!fileName) {\n\t\treturn 'application/octet-stream';\n\t}\n\n\tconst normalized = fileName.toLowerCase();\n\tif (normalized.endsWith('.tar.gz')) {\n\t\treturn 'application/gzip';\n\t}\n\n\tconst extension = path.extname(normalized);\n\treturn NON_PDF_CONTENT_TYPES[extension] || 'application/octet-stream';\n}\n\nexport function loadAWSMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tuploadFileAndSave: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileData: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileSize: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tfileOrder: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tcompress: {\n\t\t\t\t\ttype: Boolean\n\t\t\t\t}\n\t\t\t}),\n\t\t\t// eslint-disable-next-line no-unused-vars\n\t\t\tfunction: async function(fileName: string, fileData: string, fileSize: number, fileOrder: number, fileType: string, compress: Boolean) {\n\t\t\t\tif (!fileName) {\n\t\t\t\t\tthrow new Error(\"Invalid File Name provided\");\n\t\t\t\t}\n\n\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\tconst maxRetries = 3;\n\t\t\t\tlet attempt = 0;\n\n\t\t\t\twhile (attempt <= maxRetries) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet res = await s3.putObject({\n\t\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\t\tKey: key,\n\t\t\t\t\t\t\tBody: Buffer.from(fileData.replace('data:' + fileData.split(',')[0].split(':')[1].split(';')[0] + ';base64,', ''), 'base64'), \n\t\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\t\tContentType: fileData.split(',')[0].split(':')[1].split(';')[0], \n\t\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\treturn Files.create({\n\t\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\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\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\tattempt++;\n\t\t\t\t\t\tif (attempt <= maxRetries) {\n\t\t\t\t\t\t\tconst backoff = Math.pow(2, attempt) * 1000;\n\t\t\t\t\t\t\tconsole.warn(`Attempt ${attempt} failed. Retrying in ${backoff / 1000} seconds...`);\n\t\t\t\t\t\t\t// eslint-disable-next-line no-restricted-syntax\n\t\t\t\t\t\t\tawait new Promise(resolve => setTimeout(resolve, backoff));\n\t\t\t\t\t\t} \n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthrow new Error(`Error in AWS Upload File And Save: Failed to upload after ${maxRetries} attempts: ${err.message}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\t\tuploadPDFBufferAndSave: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileDataBuffer: {\n\t\t\t\t\ttype: Buffer\n\t\t\t\t},\n\t\t\t\tfileSize: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tfileOrder: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tfunction: async function(fileName: string, fileDataBuffer: any, fileSize: number, fileOrder: number, fileType: string) {\n\t\t\t\t\tif (!fileName) {\n\t\t\t\t\t\tthrow new Error(\"Invalid File Name provided\");\n\t\t\t\t\t}\n\n\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\tconst maxRetries = 3;\n\t\t\t\tlet attempt = 0;\n\n\t\t\t\twhile (attempt <= maxRetries) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet res = await s3.putObject({\n\t\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\t\tKey: key,\n\t\t\t\t\t\t\tBody: fileDataBuffer,\n\t\t\t\t\t\t\tACL: 'private',\n\t\t\t\t\t\t\tContentType: 'application/pdf',\n\t\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\treturn Files.create({\n\t\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\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\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\tattempt++;\n\t\t\t\t\t\tif (attempt <= maxRetries) {\n\t\t\t\t\t\t\tconst backoff = Math.pow(2, attempt) * 1000;\n\t\t\t\t\t\t\tconsole.warn(`Attempt ${attempt} failed. Retrying in ${backoff / 1000} seconds...`);\n\t\t\t\t\t\t\t// eslint-disable-next-line no-restricted-syntax\n\t\t\t\t\t\t\tawait new Promise(resolve => setTimeout(resolve, backoff));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthrow new Error(`Error in AWS Upload PDF Buffer And Save: Failed to upload after ${maxRetries} attempts: ${err.message}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tuploadNonPDFFileAndSave: {\n\t\t\tcheck: new SimpleSchema({\t\n\t\t\t\tfileName: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileData: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileSize: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileOrder: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileType: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t}\t\n\t\t\t}),\t\n\t\t\tfunction: async function(fileName: string, fileData: string, fileSize: number, fileOrder: number, fileType: string) {\t\n\t\t\t\tif (!fileName) {\n\t\t\t\t\tthrow new Error(\"Invalid File Name provided\");\n\t\t\t\t}\n\n\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + fileName;\t\n\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tconst contentType = inferNonPDFContentType(fileName);\n\t\t\t\t\tlet res = await s3.putObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: key, \n\t\t\t\t\t\tBody: Buffer.from(fileData), \n\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\tContentType: contentType, \n\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t});\n\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\treturn Files.create({\t\n\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\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\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Upload Non PDF File And Save: ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\t\n\t\t},\n\t\tuploadNonPDFBufferAndSave: {\n\t\t\tcheck: new SimpleSchema({\t\n\t\t\t\tfileName: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileDataBuffer: {\t\n\t\t\t\t\ttype: Buffer\n\t\t\t\t},\t\n\t\t\t\tfileSize: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileOrder: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileType: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t}\t\n\t\t\t}),\t\n\t\t\tfunction: async function(fileName: string, fileDataBuffer, fileSize: number, fileOrder: number, fileType: string) {\t\n\t\t\t\tif (!fileName) {\n\t\t\t\t\tthrow new Error(\"Invalid File Name provided\");\n\t\t\t\t}\n\n\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + fileName;\t\n\t\t\t\t\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\n\t\t\t\ttry {\n\t\t\t\t\tconst contentType = inferNonPDFContentType(fileName);\n\t\t\t\t\tlet res = await s3.putObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: key, \n\t\t\t\t\t\tBody: fileDataBuffer, \n\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\tContentType: contentType, \n\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t});\n\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\treturn Files.create({\t\n\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\n\t\t\t\t\t\t});\n\t\t\t\t\t}\t\n\t\t\t\t\telse {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Upload Non PDF Buffer And Save: ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\t\n\t\t},\n\t\tuploadNonPDFStreamAndSave: {\n\t\t\tcheck: new SimpleSchema({\t\n\t\t\t\tfileName: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileData: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileOrder: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileType: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t}\t\n\t\t\t}),\t\n\t\t\tfunction: async function(fileName: string, fileData: string, fileOrder: number, fileType: string) {\t\n\t\t\t\tif (!fileName) {\n\t\t\t\t\tthrow new Error(\"Invalid File Name provided\");\n\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + fileName;\t\n\t\t\t\t\t\t\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tconst contentType = inferNonPDFContentType(fileName);\n\t\t\t\t\tlet res = await s3.putObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: key, \n\t\t\t\t\t\tBody: fs.createReadStream(fileData), \n\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\tContentType: contentType, \n\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t});\n\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\treturn Files.create({\t\n\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: 1, key: key, order: fileOrder, type: fileType\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\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Upload Non PDF Stream And Save: ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\t\n\t\t},\n\t\tdeleteFiles: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'keys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(keys: string[]) {\n\t\t\t\tif (!Array.isArray(keys) || keys.length === 0) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\tlet files = await Files.find({key: {$in: keys}});\n\t\n\t\t\t\tlet deleteCnt = files.length;\n\t\n\t\t\t\tfor (let file of files) {\n\t\t\t\t\tawait Files.deleteOne({_id: file._id});\n\t\t\t\t\t\n\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet res = await s3.deleteObject({\n\t\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\t\tKey: file.key\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\tdeleteCnt--;\n\t\t\t\t\t\t\tif (!deleteCnt) {\n\t\t\t\t\t\t\t\treturn files.length;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\terr.mesage = 'Error In AWS Delete Files: ' + err.mesage;\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t},\n\t\tdeleteFile: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkey: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(key: string) {\t\t\n\t\t\t\tlet file = await Files.findOne({key: key});\n\t\n\t\t\t\tif (file) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait Files.deleteOne({_id: file._id});\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\terr.mesage = 'Error In AWS Delete File (Resolve Side): ' + err.mesage;\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tlet res = await s3.deleteObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\tKey: key\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\treturn res;\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Delete File (AWS Side): ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tdeleteFileWithId: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(id_file: string) {\n\t\t\t\tlet file = await Files.findOne({_id: id_file});\n\t\n\t\t\t\tif (!file) {\n\t\t\t\t\tthrow new Error('Error in AWS Delete File With ID: Could not find file');\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tawait Files.deleteOne({_id: file._id});\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Delete File With ID (Resolve Side): ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tlet res = await s3.deleteObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\tKey: file.key\n\t\t\t\t\t});\n\n\t\t\t\t\treturn res;\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Delete File With ID (AWS Side): ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tgetSignedUrlsAndFilesWithId: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tids: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'ids.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(ids: string[], expires: number) {\n\t\t\t\tlet res = [];\n\n\t\t\t\tlet files = await Files.find({_id: {$in: ids}});\n\t\t\t\t\n\t\t\t\tfor (let i = 0; i < files.length; i++) {\n\t\t\t\t\tlet file = files[i];\n\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: file.key\n\t\t\t\t\t});\n\t\t\t\t\tres.push(await getSignedUrl(s3, getCommand, {expiresIn: expires}));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn {res: res, fileArray: files.map(a => a.name)};\n\t\t\t}\n\t\t},\n\t\tgetSignedUrlWithId: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(id_file: string, expires: number) {\n\t\t\t\tlet file = await Files.findOne({_id: id_file});\n\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\tKey: file.key\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\treturn getSignedUrl(s3, getCommand, {expiresIn: expires});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrlUSEast1BucketAndKey: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tbucket: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tkey: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(bucket: string, key: string, expires: number) {\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3USEast1();\n\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\tBucket: bucket, \n\t\t\t\t\tKey: key\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\treturn getSignedUrl(s3, getCommand, {expiresIn: expires});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrl: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkey: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(key: string, expires: number) {\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\tKey: key\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\treturn getSignedUrl(s3, getCommand, {expiresIn: expires});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrls: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'keys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(keys: string[], expires: number) {\n\t\t\t\tlet res = [];\n\n\t\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\t\tlet key = keys[i];\n\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: key\n\t\t\t\t\t});\n\n\t\t\t\t\tres.push(await getSignedUrl(s3, getCommand, {expiresIn: expires}));\n\t\t\t\t}\n\n\t\t\t\treturn res;\n\t\t\t}\n\t\t},\n\t\tgetDataURIfromURL: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\turl: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(url: string) {\n\t\t\t\tconst response = await axios.get(url, {\n\t\t\t\t\tresponseType: 'arraybuffer'\n\t\t\t\t});\n\t\t\t\n\t\t\t\tif (response.status !== 200) {\n\t\t\t\t\tthrow new Error(`Error in Get Data URI From URL: Failed to fetch URL, status: ${response.status}`);\n\t\t\t\t}\n\t\t\t\n\t\t\t\tconst contentType = response.headers['content-type'];\n\t\t\t\tconst dataBase64 = Buffer.from(response.data).toString('base64');\n\t\t\t\treturn `data:${contentType};base64,${dataBase64}`;\n\t\t\t}\n\t\t},\n\t\temailFile: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\temail: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n additional_message: {\n type: String\n }\n\t\t\t}),\n\t\t\tfunction: async function(id_file: string, email: string, additional_message) {\n\t\t\t\tlet file = await Files.findById(id_file);\n\n\t\t\t\tif (!file) {\n\t\t\t\t\tthrow new Error('Error in AWS Email File: Could not find file');\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tlet resPDF = await this.callMethod('getSignedUrl', file.key, 259200);\n\t\t\t\t\t\n\t\t\t\t\tif (resPDF) {\n\t\t\t\t\t\tif (file.size < 5000000) {\n\t\t\t\t\t\t\tlet emailMessage = 'Attached is the file requested for email.\\n' + (additional_message !== '' ? '\\nAdditional Message:\\n' + additional_message + '\\n' : '') ;\n\n\t\t\t\t\t\t\tawait this.sendEmail(email, ResolveIOServer.getClientName() + ' File - ' + file.name, emailMessage, '', [{\n\t\t\t\t\t\t\t\tfilename: file.name,\n\t\t\t\t\t\t\t\tpath: resPDF\n\t\t\t\t\t\t\t}], null, '');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tlet emailMessage = 'Please click the link to the requested file.\\n' + (additional_message !== '' ? '\\nAdditional Message:\\n' + additional_message + '\\n' : '') ;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tawait this.sendEmail(email, ResolveIOServer.getClientName() + ' File - ' + file.name, emailMessage + resPDF, '', null, null, '');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in AWS Email File: Could not get file URL');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Email File: ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}\n"]}
|
package/package.json
CHANGED
package/server-app.js
CHANGED
|
@@ -1127,7 +1127,8 @@ var ResolveIOMainServer = /** @class */ (function () {
|
|
|
1127
1127
|
var workerToken = requestUrl.searchParams.get('workerToken') || '';
|
|
1128
1128
|
var workerIndex = requestUrl.searchParams.get('workerIndex');
|
|
1129
1129
|
var workerInstance = requestUrl.searchParams.get('workerInstance');
|
|
1130
|
-
|
|
1130
|
+
var expectedWorkerToken = String(resolveio_server_app_1.ResolveIOServer.getServerConfig()['WORKER_TOKEN'] || '');
|
|
1131
|
+
if (workerToken === expectedWorkerToken) {
|
|
1131
1132
|
if (workerIndex) {
|
|
1132
1133
|
info.req['workerIndex'] = workerIndex;
|
|
1133
1134
|
}
|