@resolveio/server-lib 20.10.1 → 20.10.2
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/collections/email-history.collection.js +18 -0
- package/collections/email-history.collection.js.map +1 -1
- package/collections/log.collection.js +4 -0
- package/collections/log.collection.js.map +1 -1
- package/managers/method.manager.d.ts +9 -1
- package/managers/method.manager.js +444 -178
- package/managers/method.manager.js.map +1 -1
- package/managers/subscription.manager.js +73 -29
- package/managers/subscription.manager.js.map +1 -1
- package/methods/logs.js +23 -4
- package/methods/logs.js.map +1 -1
- package/models/email-history.model.d.ts +11 -0
- package/models/email-history.model.js.map +1 -1
- package/models/log.model.d.ts +1 -0
- package/models/log.model.js.map +1 -1
- package/package.json +1 -1
- package/server-app.js +79 -36
- package/server-app.js.map +1 -1
- package/util/error-tracking.d.ts +13 -0
- package/util/error-tracking.js +121 -0
- package/util/error-tracking.js.map +1 -0
package/methods/logs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/methods/logs.ts"],"names":[],"mappings":"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","file":"logs.js","sourcesContent":["import { LogMethodLatencies } from '../collections/log-method-latency.collection';\nimport { LogSubscriptions } from '../collections/log-subscription.collection';\nimport { Logs } from '../collections/log.collection';\nimport { MethodManager } from '../managers/method.manager';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { objectIdHexString } from '../util/common';\n\nexport function loadLogMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tinsertErrorLog: {\n\t\t\tfunction: async function(message, data) {\n\t\t\t\tawait this.sendEmail('dev@resolveio.com', 'Error Detected - ' + ResolveIOServer.getClientName(), this.user + '\\n' + message + '\\n' + JSON.stringify(data, null, 2));\n\n\t\t\t\tif (\n\t\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'\n\t\t\t\t&& ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200'\n\t\t\t\t) {\n\t\t\t\t\tResolveIOServer.getLocalLogManager().writeLog({\n\t\t\t\t\t\ttype: 'log',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\tcreatedAt: new Date(),\n\t\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t\t\tcollection: '',\n\t\t\t\t\t\t\tid_document: '',\n\t\t\t\t\t\t\tpayload: JSON.stringify([data], null, 2),\n\t\t\t\t\t\t\tmethod: '',\n\t\t\t\t\t\t\tid_user: this.id_user || '',\n\t\t\t\t\t\t\tuser: this.user || '',\n\t\t\t\t\t\t\tmessageId: 0,\n\t\t\t\t\t\t\troute: '',\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\tawait Logs.insertOne({\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t\tcollection: '',\n\t\t\t\t\t\tid_document: '',\n\t\t\t\t\t\tpayload: JSON.stringify([data], null, 2),\n\t\t\t\t\t\tmethod: '',\n\t\t\t\t\t\tid_user: this.id_user || '',\n\t\t\t\t\t\tuser: this.user || '',\n\t\t\t\t\t\tmessageId: 0,\n\t\t\t\t\t\troute: '',\n\t\t\t\t\t\tclient: 'ResolveIO',\n\t\t\t\t\t\tinstance: 'backend.resolveio.com',\n\t\t\t\t\t\tinstance_index: process.env.NODE_APP_INSTANCE || ''\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tskipValidation: true\n\t\t},\n\t\tinsertSubscriptionLog: {\n\t\t\tfunction: async function(type, subscription, collection_name, subData) {\n\t\t\t\tif (\n\t\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'\n\t\t\t\t&& ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200'\n\t\t\t\t) {\n\t\t\t\t\tResolveIOServer.getLocalLogManager().writeLog({\n\t\t\t\t\t\ttype: 'log-subscription',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\ttype: type,\n\t\t\t\t\t\t\tsubscription: subscription,\n\t\t\t\t\t\t\tcollection_name: collection_name,\n\t\t\t\t\t\t\tsubData: subData\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\tawait LogSubscriptions.create({\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\ttype: type,\n\t\t\t\t\t\tsubscription: subscription,\n\t\t\t\t\t\tcollection_name: collection_name,\n\t\t\t\t\t\tsubData: subData,\n\t\t\t\t\t\tclient: 'ResolveIO',\n\t\t\t\t\t\tinstance: 'backend.resolveio.com'\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tskipValidation: true\n\t\t},\n\t\tsuperadminAPM: {\n\t\t\tfunction: async function(date_start: Date, date_end: Date, graphInterval) {\n\t\t\t\tlet latencies = await LogMethodLatencies.aggregate([\n\t\t\t\t\t{\n\t\t\t\t\t\t$match: {\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$gte: date_start}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$lte: date_end}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t_id: '$method',\n\t\t\t\t\t\t\tmethod: {$first: '$method'},\n\t\t\t\t\t\t\tcount: {$sum: 1},\n\t\t\t\t\t\t\tlatency_min: {$min: '$latency_ms'},\n\t\t\t\t\t\t\tlatency_avg: {$avg: '$latency_ms'},\n\t\t\t\t\t\t\tlatency_max: {$max: '$latency_ms'}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t], {allowDiskUse: true, readPreference: this.serverConfig['ROOT_URL'] !== 'http://localhost:4200' ? 'secondary' : 'primary'}, true);\n\n\t\t\t\tlet subscriptions = await LogSubscriptions.aggregate([\n\t\t\t\t\t{\n\t\t\t\t\t\t$match: {\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$gte: date_start}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$lte: date_end}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t_id: '$subscription',\n\t\t\t\t\t\t\tsubscription: {$first: '$subscription'},\n\t\t\t\t\t\t\tcount: {$sum: 1}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t], {allowDiskUse: true, readPreference: this.serverConfig['ROOT_URL'] !== 'http://localhost:4200' ? 'secondary' : 'primary'}, true);\n\n\t\t\t\tlet groupId = {};\n\t\t\t\tlet groupSort = {};\n\n\t\t\t\tif (graphInterval === 'seconds') {\n\t\t\t\t\tgroupId = {\n\t\t\t\t\t\tsecond: {\n\t\t\t\t\t\t\t$second: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tminute: {\n\t\t\t\t\t\t\t$minute: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tgroupSort = {\n\t\t\t\t\t\t'_id.year': 1,\n\t\t\t\t\t\t'_id.month': 1,\n\t\t\t\t\t\t'_id.day': 1,\n\t\t\t\t\t\t'_id.hour': 1,\n\t\t\t\t\t\t'_id.minute': 1,\n\t\t\t\t\t\t'_id.second': 1\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if (graphInterval === 'minutes') {\n\t\t\t\t\tgroupId = {\n\t\t\t\t\t\tminute: {\n\t\t\t\t\t\t\t$minute: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tgroupSort = {\n\t\t\t\t\t\t'_id.year': 1,\n\t\t\t\t\t\t'_id.month': 1,\n\t\t\t\t\t\t'_id.day': 1,\n\t\t\t\t\t\t'_id.hour': 1,\n\t\t\t\t\t\t'_id.minute': 1\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if (graphInterval === 'hours') {\n\t\t\t\t\tgroupId = {\n\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tgroupSort = {\n\t\t\t\t\t\t'_id.year': 1,\n\t\t\t\t\t\t'_id.month': 1,\n\t\t\t\t\t\t'_id.day': 1,\n\t\t\t\t\t\t'_id.hour': 1\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tgroupId = {\n\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tgroupSort = {\n\t\t\t\t\t\t'_id.year': 1,\n\t\t\t\t\t\t'_id.month': 1,\n\t\t\t\t\t\t'_id.day': 1\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tlet methodGraphData = await LogMethodLatencies.aggregate([\n\t\t\t\t\t{\n\t\t\t\t\t\t$match: {\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$gte: date_start}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$lte: date_end}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t_id: groupId,\n\t\t\t\t\t\t\tcount: {\n\t\t\t\t\t\t\t\t$sum: 1\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\t{\n\t\t\t\t\t\t$sort: groupSort\n\t\t\t\t\t}\n\t\t\t\t], {allowDiskUse: true, readPreference: this.serverConfig['ROOT_URL'] !== 'http://localhost:4200' ? 'secondary' : 'primary'}, true);\n\n\t\t\t\tlet subGraphData = await LogSubscriptions.aggregate([\n\t\t\t\t\t{\n\t\t\t\t\t\t$match: {\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$gte: date_start}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$lte: date_end}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t_id: groupId,\n\t\t\t\t\t\t\tcount: {\n\t\t\t\t\t\t\t\t$sum: 1\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\t{\n\t\t\t\t\t\t$sort: groupSort\n\t\t\t\t\t}\n\t\t\t\t], {allowDiskUse: true, readPreference: this.serverConfig['ROOT_URL'] !== 'http://localhost:4200' ? 'secondary' : 'primary'}, true);\n\n\t\t\t\treturn {\n\t\t\t\t\tmethods: latencies,\n\t\t\t\t\tsubscriptions: subscriptions,\n\t\t\t\t\tmethodGraphData: methodGraphData,\n\t\t\t\t\tsubGraphData: subGraphData\n\t\t\t\t};\n\t\t\t},\n\t\t\tskipValidation: true\n\t\t}\n\t});\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../src/methods/logs.ts"],"names":[],"mappings":"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","file":"logs.js","sourcesContent":["import { LogMethodLatencies } from '../collections/log-method-latency.collection';\nimport { LogSubscriptions } from '../collections/log-subscription.collection';\nimport { Logs } from '../collections/log.collection';\nimport { MethodManager } from '../managers/method.manager';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { objectIdHexString } from '../util/common';\nimport { getCorrelationId } from '../util/error-tracking';\n\nexport function loadLogMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tinsertErrorLog: {\n\t\t\tfunction: async function(message, data) {\n\t\t\t\tconst correlationId = getCorrelationId();\n\t\t\t\tconst payload = {\n\t\t\t\t\tuser: this.user,\n\t\t\t\t\tid_user: this.id_user,\n\t\t\t\t\tmessage,\n\t\t\t\t\tdata,\n\t\t\t\t\tcorrelationId\n\t\t\t\t};\n\n\t\t\t\tawait this.sendEmail(\n\t\t\t\t\t'dev@resolveio.com',\n\t\t\t\t\t'Error Detected - ' + ResolveIOServer.getClientName(),\n\t\t\t\t\tJSON.stringify(payload, null, 2),\n\t\t\t\t\tnull,\n\t\t\t\t\tnull,\n\t\t\t\t\tnull,\n\t\t\t\t\tnull,\n\t\t\t\t\tfalse,\n\t\t\t\t\tfalse,\n\t\t\t\t\t{\n\t\t\t\t\t\tcorrelationId,\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tcontext: 'insertErrorLog',\n\t\t\t\t\t\t\tmessage\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'\n\t\t\t\t&& ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200'\n\t\t\t\t) {\n\t\t\t\t\tResolveIOServer.getLocalLogManager().writeLog({\n\t\t\t\t\t\ttype: 'log',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\tcreatedAt: new Date(),\n\t\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t\t\tcollection: '',\n\t\t\t\t\t\t\tid_document: '',\n\t\t\t\t\t\t\tpayload: JSON.stringify([payload], null, 2),\n\t\t\t\t\t\t\tmethod: '',\n\t\t\t\t\t\t\tid_user: this.id_user || '',\n\t\t\t\t\t\t\tuser: this.user || '',\n\t\t\t\t\t\t\tmessageId: 0,\n\t\t\t\t\t\t\troute: '',\n\t\t\t\t\t\t\tcorrelationId\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\tawait Logs.insertOne({\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t\tcollection: '',\n\t\t\t\t\t\tid_document: '',\n\t\t\t\t\t\tpayload: JSON.stringify([payload], null, 2),\n\t\t\t\t\t\tmethod: '',\n\t\t\t\t\t\tid_user: this.id_user || '',\n\t\t\t\t\t\tuser: this.user || '',\n\t\t\t\t\t\tmessageId: 0,\n\t\t\t\t\t\troute: '',\n\t\t\t\t\t\tclient: 'ResolveIO',\n\t\t\t\t\t\tinstance: 'backend.resolveio.com',\n\t\t\t\t\t\tinstance_index: process.env.NODE_APP_INSTANCE || '',\n\t\t\t\t\t\tcorrelationId\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tskipValidation: true\n\t\t},\n\t\tinsertSubscriptionLog: {\n\t\t\tfunction: async function(type, subscription, collection_name, subData) {\n\t\t\t\tif (\n\t\t\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'\n\t\t\t\t&& ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200'\n\t\t\t\t) {\n\t\t\t\t\tResolveIOServer.getLocalLogManager().writeLog({\n\t\t\t\t\t\ttype: 'log-subscription',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\t\ttype: type,\n\t\t\t\t\t\t\tsubscription: subscription,\n\t\t\t\t\t\t\tcollection_name: collection_name,\n\t\t\t\t\t\t\tsubData: subData\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\tawait LogSubscriptions.create({\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\tdate: new Date(),\n\t\t\t\t\t\ttype: type,\n\t\t\t\t\t\tsubscription: subscription,\n\t\t\t\t\t\tcollection_name: collection_name,\n\t\t\t\t\t\tsubData: subData,\n\t\t\t\t\t\tclient: 'ResolveIO',\n\t\t\t\t\t\tinstance: 'backend.resolveio.com'\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tskipValidation: true\n\t\t},\n\t\tsuperadminAPM: {\n\t\t\tfunction: async function(date_start: Date, date_end: Date, graphInterval) {\n\t\t\t\tlet latencies = await LogMethodLatencies.aggregate([\n\t\t\t\t\t{\n\t\t\t\t\t\t$match: {\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$gte: date_start}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$lte: date_end}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t_id: '$method',\n\t\t\t\t\t\t\tmethod: {$first: '$method'},\n\t\t\t\t\t\t\tcount: {$sum: 1},\n\t\t\t\t\t\t\tlatency_min: {$min: '$latency_ms'},\n\t\t\t\t\t\t\tlatency_avg: {$avg: '$latency_ms'},\n\t\t\t\t\t\t\tlatency_max: {$max: '$latency_ms'}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t], {allowDiskUse: true, readPreference: this.serverConfig['ROOT_URL'] !== 'http://localhost:4200' ? 'secondary' : 'primary'}, true);\n\n\t\t\t\tlet subscriptions = await LogSubscriptions.aggregate([\n\t\t\t\t\t{\n\t\t\t\t\t\t$match: {\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$gte: date_start}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$lte: date_end}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t_id: '$subscription',\n\t\t\t\t\t\t\tsubscription: {$first: '$subscription'},\n\t\t\t\t\t\t\tcount: {$sum: 1}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t], {allowDiskUse: true, readPreference: this.serverConfig['ROOT_URL'] !== 'http://localhost:4200' ? 'secondary' : 'primary'}, true);\n\n\t\t\t\tlet groupId = {};\n\t\t\t\tlet groupSort = {};\n\n\t\t\t\tif (graphInterval === 'seconds') {\n\t\t\t\t\tgroupId = {\n\t\t\t\t\t\tsecond: {\n\t\t\t\t\t\t\t$second: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tminute: {\n\t\t\t\t\t\t\t$minute: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tgroupSort = {\n\t\t\t\t\t\t'_id.year': 1,\n\t\t\t\t\t\t'_id.month': 1,\n\t\t\t\t\t\t'_id.day': 1,\n\t\t\t\t\t\t'_id.hour': 1,\n\t\t\t\t\t\t'_id.minute': 1,\n\t\t\t\t\t\t'_id.second': 1\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if (graphInterval === 'minutes') {\n\t\t\t\t\tgroupId = {\n\t\t\t\t\t\tminute: {\n\t\t\t\t\t\t\t$minute: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tgroupSort = {\n\t\t\t\t\t\t'_id.year': 1,\n\t\t\t\t\t\t'_id.month': 1,\n\t\t\t\t\t\t'_id.day': 1,\n\t\t\t\t\t\t'_id.hour': 1,\n\t\t\t\t\t\t'_id.minute': 1\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse if (graphInterval === 'hours') {\n\t\t\t\t\tgroupId = {\n\t\t\t\t\t\thour: {\n\t\t\t\t\t\t\t$hour: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tgroupSort = {\n\t\t\t\t\t\t'_id.year': 1,\n\t\t\t\t\t\t'_id.month': 1,\n\t\t\t\t\t\t'_id.day': 1,\n\t\t\t\t\t\t'_id.hour': 1\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tgroupId = {\n\t\t\t\t\t\tday: {\n\t\t\t\t\t\t\t$dayOfMonth: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tmonth: {\n\t\t\t\t\t\t\t$month: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t},\n\t\t\t\t\t\tyear: {\n\t\t\t\t\t\t\t$year: {\n\t\t\t\t\t\t\t\tdate: '$createdAt',\n\t\t\t\t\t\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t\t\t\t\t\t} \n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tgroupSort = {\n\t\t\t\t\t\t'_id.year': 1,\n\t\t\t\t\t\t'_id.month': 1,\n\t\t\t\t\t\t'_id.day': 1\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tlet methodGraphData = await LogMethodLatencies.aggregate([\n\t\t\t\t\t{\n\t\t\t\t\t\t$match: {\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$gte: date_start}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$lte: date_end}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t_id: groupId,\n\t\t\t\t\t\t\tcount: {\n\t\t\t\t\t\t\t\t$sum: 1\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\t{\n\t\t\t\t\t\t$sort: groupSort\n\t\t\t\t\t}\n\t\t\t\t], {allowDiskUse: true, readPreference: this.serverConfig['ROOT_URL'] !== 'http://localhost:4200' ? 'secondary' : 'primary'}, true);\n\n\t\t\t\tlet subGraphData = await LogSubscriptions.aggregate([\n\t\t\t\t\t{\n\t\t\t\t\t\t$match: {\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$gte: date_start}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcreatedAt: {$lte: date_end}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t$group: {\n\t\t\t\t\t\t\t_id: groupId,\n\t\t\t\t\t\t\tcount: {\n\t\t\t\t\t\t\t\t$sum: 1\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\t{\n\t\t\t\t\t\t$sort: groupSort\n\t\t\t\t\t}\n\t\t\t\t], {allowDiskUse: true, readPreference: this.serverConfig['ROOT_URL'] !== 'http://localhost:4200' ? 'secondary' : 'primary'}, true);\n\n\t\t\t\treturn {\n\t\t\t\t\tmethods: latencies,\n\t\t\t\t\tsubscriptions: subscriptions,\n\t\t\t\t\tmethodGraphData: methodGraphData,\n\t\t\t\t\tsubGraphData: subGraphData\n\t\t\t\t};\n\t\t\t},\n\t\t\tskipValidation: true\n\t\t}\n\t});\n}\n"]}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import { CollectionDocument } from './collection-document.model';
|
|
2
|
+
export interface EmailHistoryOccurrence {
|
|
3
|
+
_id: string;
|
|
4
|
+
createdAt: Date;
|
|
5
|
+
subject: string;
|
|
6
|
+
text?: string;
|
|
7
|
+
html?: string;
|
|
8
|
+
meta?: Record<string, any>;
|
|
9
|
+
}
|
|
2
10
|
export interface EmailHistoryModel extends CollectionDocument {
|
|
3
11
|
date: Date;
|
|
4
12
|
id_user: string;
|
|
@@ -15,5 +23,8 @@ export interface EmailHistoryModel extends CollectionDocument {
|
|
|
15
23
|
processingAt?: Date;
|
|
16
24
|
completedAt?: Date;
|
|
17
25
|
force_ses?: boolean;
|
|
26
|
+
correlationId?: string;
|
|
27
|
+
meta?: Record<string, any>;
|
|
28
|
+
occurrences?: EmailHistoryOccurrence[];
|
|
18
29
|
}
|
|
19
30
|
export type EmailHistoryStatusType = 'pending' | 'processing' | 'completed' | 'failed';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/models/email-history.model.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"sources":["../../src/models/email-history.model.ts"],"names":[],"mappings":";;AAkCA,yDAAyD;AACzD,kGAAkG;AAClG,mEAAmE;AACnE,iHAAiH;AACjH,4DAA4D;AAC5D,0GAA0G;AAC1G,gHAAgH;AAChH,sGAAsG;AACtG,2EAA2E;AAC3E,4OAA4O;AAC5O,uFAAuF;AACvF,sKAAsK","file":"email-history.model.js","sourcesContent":["import { CollectionDocument } from './collection-document.model';\n\nexport interface EmailHistoryOccurrence {\n\t_id: string;\n\tcreatedAt: Date;\n\tsubject: string;\n\ttext?: string;\n\thtml?: string;\n\tmeta?: Record<string, any>;\n}\n\nexport interface EmailHistoryModel extends CollectionDocument {\n\tdate: Date;\n\tid_user: string;\n\tuser: string;\n\temail: string;\n\tsubject: string;\n\ttext: string;\n\thtml: string;\n\tattachments: any[];\n\tsend_from: string;\n\treply_to: string;\n\tstatus: EmailHistoryStatusType;\n\terror: string;\n\tprocessingAt?: Date;\n\tcompletedAt?: Date;\n\tforce_ses?: boolean;\n\tcorrelationId?: string;\n\tmeta?: Record<string, any>;\n\toccurrences?: EmailHistoryOccurrence[];\n}\n\nexport type EmailHistoryStatusType = 'pending' | 'processing' | 'completed' | 'failed';\n\n// ------------------ Nodemailer Attachments ------------\n// filename - filename to be reported as the name of the attached file. Use of unicode is allowed.\n// content - String, Buffer or a Stream contents for the attachment\n// path - path to the file if you want to stream the file instead of including it (better for larger attachments)\n// href – an URL to the file (data uris are allowed as well)\n// httpHeaders - optional HTTP headers to pass on with the href request, eg. {authorization: \"bearer ...\"}\n// contentType - optional content type for the attachment, if not set will be derived from the filename property\n// contentDisposition - optional content disposition type for the attachment, defaults to ‘attachment’\n// cid - optional content id for using inline images in HTML message source\n// encoding - If set and content is string, then encodes the content to a Buffer using the specified encoding. Example values: ‘base64’, ‘hex’, ‘binary’ etc. Useful if you want to use binary attachments in a JSON formatted email object.\n// headers - custom headers for the attachment node. Same usage as with message headers\n// raw - is an optional special value that overrides entire contents of current mime node including mime headers. Useful if you want to prepare node contents yourself\n"]}
|
package/models/log.model.d.ts
CHANGED
|
@@ -12,5 +12,6 @@ export interface LogModel extends CollectionDocument {
|
|
|
12
12
|
client: string;
|
|
13
13
|
instance: string;
|
|
14
14
|
instance_index: string;
|
|
15
|
+
correlationId?: string;
|
|
15
16
|
}
|
|
16
17
|
export type LogTypeType = 'all' | 'error' | 'document' | 'query' | 'queryResponse' | 'client-request' | 'client-response' | 'callMethod';
|
package/models/log.model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/models/log.model.ts"],"names":[],"mappings":"","file":"log.model.js","sourcesContent":["import { CollectionDocument } from './collection-document.model';\n\nexport interface LogModel extends CollectionDocument {\n\ttype: LogTypeType;\n\tcollection: string;\n\tid_document: string;\n\tpayload: string;\n\tmethod: string;\n\tid_user: string;\n\tuser: string;\n\tmessageId: number;\n\troute: string;\n\tclient: string;\n\tinstance: string;\n\tinstance_index: string;\n}\n\nexport type LogTypeType = 'all' | 'error' | 'document' | 'query' | 'queryResponse' | 'client-request' | 'client-response' | 'callMethod'
|
|
1
|
+
{"version":3,"sources":["../../src/models/log.model.ts"],"names":[],"mappings":"","file":"log.model.js","sourcesContent":["import { CollectionDocument } from './collection-document.model';\n\nexport interface LogModel extends CollectionDocument {\n\ttype: LogTypeType;\n\tcollection: string;\n\tid_document: string;\n\tpayload: string;\n\tmethod: string;\n\tid_user: string;\n\tuser: string;\n\tmessageId: number;\n\troute: string;\n\tclient: string;\n\tinstance: string;\n\tinstance_index: string;\n\tcorrelationId?: string;\n}\n\nexport type LogTypeType = 'all' | 'error' | 'document' | 'query' | 'queryResponse' | 'client-request' | 'client-response' | 'callMethod';\n"]}
|
package/package.json
CHANGED
package/server-app.js
CHANGED
|
@@ -89,6 +89,7 @@ var method_manager_1 = require("./managers/method.manager");
|
|
|
89
89
|
var monitor_manager_1 = require("./managers/monitor.manager");
|
|
90
90
|
var subscription_manager_1 = require("./managers/subscription.manager");
|
|
91
91
|
var common_1 = require("./util/common");
|
|
92
|
+
var error_tracking_1 = require("./util/error-tracking");
|
|
92
93
|
var mongodb_1 = require("mongodb");
|
|
93
94
|
var auth_1 = require("./http/auth");
|
|
94
95
|
var health_1 = require("./http/health");
|
|
@@ -162,103 +163,145 @@ var ResolveIOMainServer = /** @class */ (function () {
|
|
|
162
163
|
}, 5000);
|
|
163
164
|
process.removeAllListeners('unhandledRejection');
|
|
164
165
|
process.on('unhandledRejection', function (error, rej) { return __awaiter(_this, void 0, void 0, function () {
|
|
165
|
-
var diffTimeSec;
|
|
166
|
+
var _a, normalizedError, correlationId, errorDetails, diffTimeSec;
|
|
166
167
|
var _this = this;
|
|
167
|
-
return __generator(this, function (
|
|
168
|
-
switch (
|
|
168
|
+
return __generator(this, function (_b) {
|
|
169
|
+
switch (_b.label) {
|
|
169
170
|
case 0:
|
|
171
|
+
_a = (0, error_tracking_1.ensureErrorWithCorrelation)(error), normalizedError = _a.error, correlationId = _a.correlationId;
|
|
170
172
|
if (this._methodManager.getEnableDebug()) {
|
|
171
|
-
console.error(new Date(), 'ERROR DETECTED w/ Debug Flag Active: unhandledRejection', [
|
|
173
|
+
console.error(new Date(), 'ERROR DETECTED w/ Debug Flag Active: unhandledRejection', [normalizedError, rej, { correlationId: correlationId }]);
|
|
172
174
|
}
|
|
173
|
-
// Condition to filter out the MongoError with
|
|
174
|
-
if (
|
|
175
|
+
// Condition to filter out the MongoError with specific codes
|
|
176
|
+
if (normalizedError && normalizedError['name'] === 'MongoError' && (normalizedError['code'] === 48 || normalizedError['code'] === 26 || normalizedError['code'] === 11000 || normalizedError['code'] === 251)) {
|
|
175
177
|
return [2 /*return*/]; // Simply return without doing anything further
|
|
176
178
|
}
|
|
177
|
-
if (
|
|
179
|
+
if (normalizedError && normalizedError['name'] === 'MongoServerError' && (!initServerFlag || normalizedError['code'] === 26 || normalizedError['code'] === 11000 || normalizedError['code'] === 86 || normalizedError['code'] === 251)) {
|
|
178
180
|
return [2 /*return*/]; // Simply return without doing anything further
|
|
179
181
|
}
|
|
180
|
-
|
|
182
|
+
errorDetails = {
|
|
183
|
+
id: correlationId,
|
|
184
|
+
name: normalizedError === null || normalizedError === void 0 ? void 0 : normalizedError.name,
|
|
185
|
+
message: normalizedError === null || normalizedError === void 0 ? void 0 : normalizedError.message,
|
|
186
|
+
stack: normalizedError === null || normalizedError === void 0 ? void 0 : normalizedError.stack,
|
|
187
|
+
code: normalizedError === null || normalizedError === void 0 ? void 0 : normalizedError.code,
|
|
188
|
+
codeName: normalizedError === null || normalizedError === void 0 ? void 0 : normalizedError.codeName
|
|
189
|
+
};
|
|
190
|
+
console.error(new Date(), 'Unhandled Rejection at Promise', [errorDetails]);
|
|
181
191
|
diffTimeSec = moment().diff(this._serverStartTime, 'seconds');
|
|
182
|
-
if (!(
|
|
192
|
+
if (!(normalizedError && (normalizedError['name'] === 'MongoNetworkTimeoutError' || normalizedError instanceof mongodb_1.MongoNetworkTimeoutError))) return [3 /*break*/, 3];
|
|
183
193
|
if (!(diffTimeSec > 60 && !this._lastErrorMsg)) return [3 /*break*/, 2];
|
|
184
194
|
this._lastErrorMsg = new Date();
|
|
185
195
|
setTimeout(function () {
|
|
186
196
|
_this._lastErrorMsg = null;
|
|
187
197
|
}, 60000);
|
|
188
198
|
// Sending email notification (using your existing method)
|
|
189
|
-
return [4 /*yield*/, this._methodManager.sendEmail('dev@resolveio.com', 'SERVER - MongoNetworkTimeoutError - Quitting NodeJS - ' + resolveio_server_app_1.ResolveIOServer.getServerConfig()['CLIENT_NAME'], JSON.stringify({
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
199
|
+
return [4 /*yield*/, this._methodManager.sendEmail('dev@resolveio.com', 'SERVER - MongoNetworkTimeoutError - Quitting NodeJS - ' + resolveio_server_app_1.ResolveIOServer.getServerConfig()['CLIENT_NAME'], JSON.stringify(errorDetails, null, 2), null, null, null, null, false, false, {
|
|
200
|
+
correlationId: correlationId,
|
|
201
|
+
meta: {
|
|
202
|
+
context: 'unhandledRejection',
|
|
203
|
+
scenario: 'MongoNetworkTimeoutError'
|
|
204
|
+
}
|
|
205
|
+
})];
|
|
194
206
|
case 1:
|
|
195
207
|
// Sending email notification (using your existing method)
|
|
196
|
-
|
|
208
|
+
_b.sent();
|
|
197
209
|
// Exiting the process
|
|
198
210
|
process.exit(1);
|
|
199
|
-
|
|
211
|
+
_b.label = 2;
|
|
200
212
|
case 2: return [3 /*break*/, 11];
|
|
201
213
|
case 3:
|
|
202
|
-
if (!(
|
|
214
|
+
if (!(normalizedError && normalizedError['name'] === 'MongoError' && normalizedError['message'] === 'not master')) return [3 /*break*/, 6];
|
|
203
215
|
if (!(diffTimeSec > 60 && !this._lastErrorMsg)) return [3 /*break*/, 5];
|
|
204
216
|
this._lastErrorMsg = new Date();
|
|
205
217
|
setTimeout(function () {
|
|
206
218
|
_this._lastErrorMsg = null;
|
|
207
219
|
}, 60000);
|
|
208
|
-
return [4 /*yield*/, this._methodManager.sendEmail('dev@resolveio.com', 'SERVER - Unhandled Rejection - Quitting NodeJS - ' + resolveio_server_app_1.ResolveIOServer.getServerConfig()['CLIENT_NAME'], JSON.stringify(
|
|
220
|
+
return [4 /*yield*/, this._methodManager.sendEmail('dev@resolveio.com', 'SERVER - Unhandled Rejection - Quitting NodeJS - ' + resolveio_server_app_1.ResolveIOServer.getServerConfig()['CLIENT_NAME'], JSON.stringify(errorDetails, null, 2), null, null, null, null, false, false, {
|
|
221
|
+
correlationId: correlationId,
|
|
222
|
+
meta: {
|
|
223
|
+
context: 'unhandledRejection',
|
|
224
|
+
scenario: 'MongoNotMaster'
|
|
225
|
+
}
|
|
226
|
+
})];
|
|
209
227
|
case 4:
|
|
210
|
-
|
|
211
|
-
|
|
228
|
+
_b.sent();
|
|
229
|
+
_b.label = 5;
|
|
212
230
|
case 5:
|
|
213
231
|
process.exit(1);
|
|
214
232
|
return [3 /*break*/, 11];
|
|
215
233
|
case 6:
|
|
216
|
-
if (!(
|
|
234
|
+
if (!(normalizedError && normalizedError['name'] === 'MongoError' && normalizedError['message'] === 'not master and slaveOk=false')) return [3 /*break*/, 9];
|
|
217
235
|
if (!(diffTimeSec > 60 && !this._lastErrorMsg)) return [3 /*break*/, 8];
|
|
218
236
|
this._lastErrorMsg = new Date();
|
|
219
237
|
setTimeout(function () {
|
|
220
238
|
_this._lastErrorMsg = null;
|
|
221
239
|
}, 60000);
|
|
222
|
-
return [4 /*yield*/, this._methodManager.sendEmail('dev@resolveio.com', 'SERVER - Unhandled Rejection - Quitting NodeJS - ' + resolveio_server_app_1.ResolveIOServer.getServerConfig()['CLIENT_NAME'], JSON.stringify(
|
|
240
|
+
return [4 /*yield*/, this._methodManager.sendEmail('dev@resolveio.com', 'SERVER - Unhandled Rejection - Quitting NodeJS - ' + resolveio_server_app_1.ResolveIOServer.getServerConfig()['CLIENT_NAME'], JSON.stringify(errorDetails, null, 2), null, null, null, null, false, false, {
|
|
241
|
+
correlationId: correlationId,
|
|
242
|
+
meta: {
|
|
243
|
+
context: 'unhandledRejection',
|
|
244
|
+
scenario: 'MongoNotMasterSlaveOk'
|
|
245
|
+
}
|
|
246
|
+
})];
|
|
223
247
|
case 7:
|
|
224
|
-
|
|
225
|
-
|
|
248
|
+
_b.sent();
|
|
249
|
+
_b.label = 8;
|
|
226
250
|
case 8:
|
|
227
251
|
process.exit(1);
|
|
228
252
|
return [3 /*break*/, 11];
|
|
229
253
|
case 9:
|
|
230
|
-
if (!
|
|
231
|
-
if (!(error['name'] !== 'StatusError' && error['message'] !== '')) return [3 /*break*/, 11];
|
|
254
|
+
if (!(normalizedError && normalizedError['name'] !== 'StatusError' && normalizedError['message'] !== '')) return [3 /*break*/, 11];
|
|
232
255
|
if (!(diffTimeSec > 60 && !this._lastErrorMsg)) return [3 /*break*/, 11];
|
|
233
256
|
this._lastErrorMsg = new Date();
|
|
234
257
|
setTimeout(function () {
|
|
235
258
|
_this._lastErrorMsg = null;
|
|
236
259
|
}, 60000);
|
|
237
|
-
return [4 /*yield*/, this._methodManager.sendEmail('dev@resolveio.com', 'SERVER - Unhandled Rejection - ' + resolveio_server_app_1.ResolveIOServer.getServerConfig()['CLIENT_NAME'], JSON.stringify(
|
|
260
|
+
return [4 /*yield*/, this._methodManager.sendEmail('dev@resolveio.com', 'SERVER - Unhandled Rejection - ' + resolveio_server_app_1.ResolveIOServer.getServerConfig()['CLIENT_NAME'], JSON.stringify(errorDetails, null, 2), null, null, null, null, false, false, {
|
|
261
|
+
correlationId: correlationId,
|
|
262
|
+
meta: {
|
|
263
|
+
context: 'unhandledRejection',
|
|
264
|
+
scenario: 'General'
|
|
265
|
+
}
|
|
266
|
+
})];
|
|
238
267
|
case 10:
|
|
239
|
-
|
|
240
|
-
|
|
268
|
+
_b.sent();
|
|
269
|
+
_b.label = 11;
|
|
241
270
|
case 11: return [2 /*return*/];
|
|
242
271
|
}
|
|
243
272
|
});
|
|
244
273
|
}); });
|
|
245
274
|
process.on('uncaughtException', function (error) { return __awaiter(_this, void 0, void 0, function () {
|
|
246
|
-
var diffTimeSec;
|
|
275
|
+
var _a, normalizedError, correlationId, diffTimeSec, errorDetails;
|
|
247
276
|
var _this = this;
|
|
248
|
-
return __generator(this, function (
|
|
249
|
-
switch (
|
|
277
|
+
return __generator(this, function (_b) {
|
|
278
|
+
switch (_b.label) {
|
|
250
279
|
case 0:
|
|
251
|
-
|
|
280
|
+
_a = (0, error_tracking_1.ensureErrorWithCorrelation)(error), normalizedError = _a.error, correlationId = _a.correlationId;
|
|
281
|
+
console.error(normalizedError, 'Uncaught Exception thrown', { correlationId: correlationId });
|
|
252
282
|
diffTimeSec = moment().diff(this._serverStartTime, 'seconds');
|
|
253
283
|
if (!(diffTimeSec > 60 && !this._lastErrorMsg)) return [3 /*break*/, 2];
|
|
254
284
|
this._lastErrorMsg = new Date();
|
|
255
285
|
setTimeout(function () {
|
|
256
286
|
_this._lastErrorMsg = null;
|
|
257
287
|
}, 60000);
|
|
258
|
-
|
|
288
|
+
errorDetails = {
|
|
289
|
+
id: correlationId,
|
|
290
|
+
name: normalizedError === null || normalizedError === void 0 ? void 0 : normalizedError.name,
|
|
291
|
+
message: normalizedError === null || normalizedError === void 0 ? void 0 : normalizedError.message,
|
|
292
|
+
stack: normalizedError === null || normalizedError === void 0 ? void 0 : normalizedError.stack,
|
|
293
|
+
code: normalizedError === null || normalizedError === void 0 ? void 0 : normalizedError.code,
|
|
294
|
+
codeName: normalizedError === null || normalizedError === void 0 ? void 0 : normalizedError.codeName
|
|
295
|
+
};
|
|
296
|
+
return [4 /*yield*/, this._methodManager.sendEmail('dev@resolveio.com', 'SERVER - Unhandled Exception - ' + resolveio_server_app_1.ResolveIOServer.getServerConfig()['CLIENT_NAME'], JSON.stringify(errorDetails, null, 2), null, null, null, null, false, false, {
|
|
297
|
+
correlationId: correlationId,
|
|
298
|
+
meta: {
|
|
299
|
+
context: 'uncaughtException'
|
|
300
|
+
}
|
|
301
|
+
})];
|
|
259
302
|
case 1:
|
|
260
|
-
|
|
261
|
-
|
|
303
|
+
_b.sent();
|
|
304
|
+
_b.label = 2;
|
|
262
305
|
case 2: return [2 /*return*/];
|
|
263
306
|
}
|
|
264
307
|
});
|