@resolveio/server-lib 20.7.8 → 20.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/collections/cron-job.collection.js.map +1 -1
  2. package/collections/email-history.collection.js.map +1 -1
  3. package/collections/email-verified.collection.js.map +1 -1
  4. package/collections/file.collection.js.map +1 -1
  5. package/collections/flag-update.collection.js.map +1 -1
  6. package/collections/flag.collection.js.map +1 -1
  7. package/collections/log-method-latency.collection.js.map +1 -1
  8. package/collections/log-subscription.collection.js.map +1 -1
  9. package/collections/log.collection.js.map +1 -1
  10. package/collections/logged-in-users.collection.js.map +1 -1
  11. package/collections/method-response.collection.js.map +1 -1
  12. package/collections/monitor-cpu.collection.js.map +1 -1
  13. package/collections/monitor-function.collection.js.map +1 -1
  14. package/collections/monitor-memory.collection.js.map +1 -1
  15. package/collections/monitor-mongo.collection.js.map +1 -1
  16. package/collections/notification.collection.js.map +1 -1
  17. package/collections/report-builder-dashboard-builder.collection.js.map +1 -1
  18. package/collections/report-builder-library.collection.js.map +1 -1
  19. package/collections/report-builder-report.collection.js.map +1 -1
  20. package/collections/user-group.collection.js.map +1 -1
  21. package/collections/user.collection.js.map +1 -1
  22. package/cron/cron.d.ts +1 -1
  23. package/cron/cron.js +1 -1
  24. package/cron/cron.js.map +1 -1
  25. package/http/auth.js.map +1 -1
  26. package/http/health.d.ts +1 -1
  27. package/http/health.js +1 -1
  28. package/http/health.js.map +1 -1
  29. package/managers/method.manager.js +1 -1
  30. package/managers/method.manager.js.map +1 -1
  31. package/managers/mongo.manager.d.ts +1 -1
  32. package/managers/mongo.manager.js +1 -1
  33. package/managers/mongo.manager.js.map +1 -1
  34. package/managers/monitor.manager.js.map +1 -1
  35. package/managers/subscription.manager.js.map +1 -1
  36. package/methods/aws.js.map +1 -1
  37. package/methods/cron-jobs.js +1 -1
  38. package/methods/cron-jobs.js.map +1 -1
  39. package/methods/monitor.js.map +1 -1
  40. package/methods/support.js.map +1 -1
  41. package/package.json +1 -1
  42. package/publications/cron-jobs.js.map +1 -1
  43. package/publications/files.js.map +1 -1
  44. package/publications/report-builder-reports.js.map +1 -1
  45. package/server-app.js +1 -1
  46. package/server-app.js.map +1 -1
  47. package/util/schema-report-builder.js.map +1 -1
package/http/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/http/auth.ts"],"names":["bodyParser","require","handlebars","jwt","jwt_decode_1","simpl_schema_1","user_collection_1","resolveio_server_app_1","common_1","setupAuthRoutes","mainServer","app","serverConfig","_this","this","post","json","request","response","__awaiter","headers","origin","send","JSON","stringify","error","result","body","schema","default","id_token","type","String","validate","console","Date","errors_1","ResolveIOServer","getMainServer","getMethodManager","sendEmail","getClientName","_a","sent","tokenData","split","token","decodedJWT","Users","findOne","other.ms_oid","user","email","toLowerCase","updateOne","_id","$set","objectIdHexString","__v","roles","super_admin","approvals","groups","notifications","miscs","username","fullname","active","phonenumber","readonly","other","ms_oid","attempts","salt","sign","now","toString","expiresIn","hash","last","settings","services","is_customer","create","update","id_user","log","password","errors_2","authenticate","resAuth","emailData","userToChangePassword","userWhoResetPassword","url","encodeURIComponent","html","readFile","template","compile","registerHelper","a","b","resetAttempts","refreshToken","errors_3","verify","err","decoded","findById","_b","body_1","enrollmentToken","errors_4","$and","services.enrollment","projection","body_2","errors_5","setPassword","body_3","forgotPasswordToken","errors_6","services.forgot_password","body_4","errors_7","errors_8","callMethod","call","exports"],"mappings":"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","file":"auth.js","sourcesContent":["import * as bodyParser from 'body-parser';\nimport * as handlebars from 'handlebars';\nimport * as jwt from 'jsonwebtoken';\nimport jwt_decode from 'jwt-decode';\nimport SimpleSchema from 'simpl-schema';\nimport { Users } from '../collections/user.collection';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { ResolveIOMainServer } from '../server-app';\nimport { objectIdHexString } from '../util/common';\n\nexport function setupAuthRoutes(mainServer: ResolveIOMainServer, app, serverConfig) {\n\tapp.post('/login365', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tid_token: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/login)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/login365' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet tokenData = body.id_token.split('&');\n\t\t\tlet token = tokenData[0].split('=')[1];\n\t\t\tlet decodedJWT = jwt_decode(token);\n\n\t\t\tif (decodedJWT && decodedJWT['name'] && decodedJWT['preferred_username'] && decodedJWT['oid']) {\n\t\t\t\tlet user = await Users.findOne({'other.ms_oid': decodedJWT['oid']});\n\n\t\t\t\tif (!user) {\n\t\t\t\t\tuser = await Users.findOne({email: decodedJWT['preferred_username'].toLowerCase()});\n\n\t\t\t\t\tif (user) {\n\t\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {'other.ms_oid': decodedJWT['oid']}});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!user) {\n\t\t\t\t\tuser = {\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\troles: {\n\t\t\t\t\t\t\tsuper_admin: false,\n\t\t\t\t\t\t\tapprovals: [],\n\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\tnotifications: [],\n\t\t\t\t\t\t\tmiscs: []\n\t\t\t\t\t\t},\n\t\t\t\t\t\tusername: decodedJWT['preferred_username'].toLowerCase(),\n\t\t\t\t\t\temail: decodedJWT['preferred_username'].toLowerCase(),\n\t\t\t\t\t\tfullname: decodedJWT['name'],\n\t\t\t\t\t\tactive: true,\n\t\t\t\t\t\tphonenumber: '',\n\t\t\t\t\t\treadonly: false,\n\t\t\t\t\t\tother: {\n\t\t\t\t\t\t\tms_oid: decodedJWT['oid']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tattempts: 0,\n\t\t\t\t\t\tsalt: jwt.sign({now: (Date.now() - 1000).toString()}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t}),\n\t\t\t\t\t\thash: jwt.sign({now: (Date.now() + 1000).toString()}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tlast: new Date(),\n\t\t\t\t\t\tsettings: null,\n\t\t\t\t\t\tservices: null,\n\t\t\t\t\t\tis_customer: false\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tawait Users.create(user);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet update = false;\n\n\t\t\t\t\tif (user.email !== decodedJWT['preferred_username'].toLowerCase()) {\n\t\t\t\t\t\tuser.email = decodedJWT['preferred_username'].toLowerCase();\n\t\t\t\t\t\tupdate = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (user.fullname !== decodedJWT['name']) {\n\t\t\t\t\t\tuser.fullname = decodedJWT['name'];\n\t\t\t\t\t\tupdate = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (update) {\n\t\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {email: user.email, fullname: user.fullname}});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\terror: false,\n\t\t\t\t\tresult: {\n\t\t\t\t\t\ttoken: jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconsole.log('ERROR - 1', tokenData, token, decodedJWT);\n\n\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\terror: true,\n\t\t\t\t\tresult: 'Invalid Azure Token'\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t});\n\n\t// Login via HTTP, return refresh token if authenticated\n\tapp.post('/login', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tusername: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/login)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/login' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet user = await Users.findOne({active: true, username: body.username});\n\n\t\t\tif (!user) {\n\t\t\t\tuser = await Users.findOne({active: true, email: body.username});\n\t\t\t}\n\t\t\t\n\t\t\tif (!user) {\n\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\terror: true,\n\t\t\t\t\tresult: 'Invalid Username And Password'\n\t\t\t\t}));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet resAuth = await Users.authenticate(user, body.password);\n\n\t\t\tif (resAuth['error']) {\n\t\t\t\tif (resAuth['error'] === 'Too Many Attempts') {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: resAuth['error'] + '. A password reset link has been sent to your email, please reset your password.'\n\t\t\t\t\t}));\n\n\t\t\t\t\tif (!user.services) {\n\t\t\t\t\t\tuser.services = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tuser.services['forgot_password'] = jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET']);\n\n\t\t\t\t\tlet emailData = {\n\t\t\t\t\t\tuserToChangePassword: user.fullname,\n\t\t\t\t\t\tuserWhoResetPassword: ResolveIOServer.getClientName() + ' System',\n\t\t\t\t\t\turl: (serverConfig['ROOT_URL'] + '/forgot-password?' + encodeURIComponent(serverConfig['SERVER_URL']) + '&' + user.services['forgot_password'])\n\t\t\t\t\t};\n\n\t\t\t\t\tlet resUp = await Users.updateOne({_id: user._id}, {$set: {services: user.services}});\n\t\t\t\t\tlet html = mainServer.getMethodManager().readFile('email-templates/forgot-password.html');\n\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t});\n\t\n\t\t\t\t\tawait mainServer.getMethodManager().sendEmail(user.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData), null, null, '');\n\t\t\t\t}\n\t\t\t\telse if (resAuth['error'] === 'No Salt Value Stored') {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'A password reset link has been sent to your email, please reset your password.'\n\t\t\t\t\t}));\n\n\t\t\t\t\tif (!user.services) {\n\t\t\t\t\t\tuser.services = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tuser.services['forgot_password'] = jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET']);\n\n\t\t\t\t\tlet emailData = {\n\t\t\t\t\t\tuserToChangePassword: user.fullname,\n\t\t\t\t\t\tuserWhoResetPassword: ResolveIOServer.getClientName() + ' System',\n\t\t\t\t\t\turl: (serverConfig['ROOT_URL'] + '/forgot-password?' + encodeURIComponent(serverConfig['SERVER_URL']) + '&' + user.services['forgot_password'])\n\t\t\t\t\t};\n\n\t\t\t\t\tlet resUp = await Users.updateOne({_id: user._id}, {$set: {services: user.services}});\n\t\t\t\t\tlet html = mainServer.getMethodManager().readFile('email-templates/forgot-password.html');\n\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t});\n\n\t\t\t\t\tawait mainServer.getMethodManager().sendEmail(user.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData), null, null, '');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: resAuth['error']\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (resAuth && resAuth['data'] && resAuth['data'].active) {\n\t\t\t\t\tawait Users.resetAttempts(resAuth['data']);\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: false,\n\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\ttoken: jwt.sign({id_user: resAuth['data']._id}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} \n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tapp.post('/accessToken', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\trefreshToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/accessToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/accessToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.refreshToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findById(decoded['id_user']);\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\t\t\t\ttoken: jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\t\t\t\t\texpiresIn : 3 * 24 * 60 * 60 * 1000 // 3 days\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\tuser: user\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\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 {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/userWithEnrollmentToken', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tenrollmentToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/userWithEnrollmentToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/userWithEnrollmentToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.enrollmentToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.enrollment': body.enrollmentToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}, {projection: {_id: 1, __v: 1, username: 1, active: 1}});\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\t\t\t\tuser: user\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\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 {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/setUserWithEnrollmentToken', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tenrollmentToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/setUserWithEnrollmentToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/setUserWithEnrollmentToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.enrollmentToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.enrollment': body.enrollmentToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tawait Users.setPassword(user, body.password);\n\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: true\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\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 {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/userWithForgotPasswordToken', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tforgotPasswordToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/userWithForgotPasswordToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/userWithForgotPasswordToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.forgotPasswordToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.forgot_password': body.forgotPasswordToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}, {projection: {_id: 1, __v: 1, username: 1, active: 1}});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\t\t\t\tuser: user\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid Token'\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 {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/setUserWithForgotPasswordToken', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tforgotPasswordToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/setUserWithForgotPasswordToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/setUserWithForgotPasswordToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.forgotPasswordToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.forgot_password': body.forgotPasswordToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tawait Users.setPassword(user, body.password);\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: true\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\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 {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/resetPassword', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tusername: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/resetPassword)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/resetPassword' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet user = await Users.findOne({active: true, username: body.username});\n\n\t\t\tif (!user) {\n\t\t\t\tuser = await Users.findOne({active: true, email: body.username});\n\t\t\t}\n\t\t\t\n\t\t\tif (user) {\n\t\t\t\tmainServer.getMethodManager().callMethod.call(mainServer.getMethodManager(), 'resetUserPassword', user._id);\n\t\t\t}\n\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: false,\n\t\t\t\tresult: ''\n\t\t\t}));\n\t\t}\n\t});\n}"]}
1
+ {"version":3,"sources":["../../src/http/auth.ts"],"names":["bodyParser","require","handlebars","jwt","jwt_decode_1","simpl_schema_1","user_collection_1","resolveio_server_app_1","common_1","setupAuthRoutes","mainServer","app","serverConfig","_this","this","post","json","request","response","__awaiter","headers","origin","send","JSON","stringify","error","result","body","schema","default","id_token","type","String","validate","console","Date","errors_1","ResolveIOServer","getMainServer","getMethodManager","sendEmail","getClientName","_a","sent","tokenData","split","token","decodedJWT","Users","findOne","other.ms_oid","user","email","toLowerCase","updateOne","_id","$set","objectIdHexString","__v","roles","super_admin","approvals","groups","notifications","miscs","username","fullname","active","phonenumber","readonly","other","ms_oid","attempts","salt","sign","now","toString","expiresIn","hash","last","settings","services","is_customer","create","update","id_user","log","password","errors_2","authenticate","resAuth","emailData","userToChangePassword","userWhoResetPassword","url","encodeURIComponent","html","readFile","template","compile","registerHelper","a","b","resetAttempts","refreshToken","errors_3","verify","err","decoded","findById","_b","body_1","enrollmentToken","errors_4","$and","services.enrollment","projection","body_2","errors_5","setPassword","body_3","forgotPasswordToken","errors_6","services.forgot_password","body_4","errors_7","errors_8","callMethod","call","exports"],"mappings":"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","file":"auth.js","sourcesContent":["import * as bodyParser from 'body-parser';\nimport * as handlebars from 'handlebars';\nimport * as jwt from 'jsonwebtoken';\nimport jwt_decode from 'jwt-decode';\nimport SimpleSchema from 'simpl-schema';\nimport { Users } from '../collections/user.collection';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { ResolveIOMainServer } from '../server-app';\nimport { objectIdHexString } from '../util/common';\n\nexport function setupAuthRoutes(mainServer: ResolveIOMainServer, app, serverConfig) {\n\tapp.post('/login365', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tid_token: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/login)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/login365' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet tokenData = body.id_token.split('&');\n\t\t\tlet token = tokenData[0].split('=')[1];\n\t\t\tlet decodedJWT = jwt_decode(token);\n\n\t\t\tif (decodedJWT && decodedJWT['name'] && decodedJWT['preferred_username'] && decodedJWT['oid']) {\n\t\t\t\tlet user = await Users.findOne({'other.ms_oid': decodedJWT['oid']});\n\n\t\t\t\tif (!user) {\n\t\t\t\t\tuser = await Users.findOne({email: decodedJWT['preferred_username'].toLowerCase()});\n\n\t\t\t\t\tif (user) {\n\t\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {'other.ms_oid': decodedJWT['oid']}});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!user) {\n\t\t\t\t\tuser = {\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\troles: {\n\t\t\t\t\t\t\tsuper_admin: false,\n\t\t\t\t\t\t\tapprovals: [],\n\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\tnotifications: [],\n\t\t\t\t\t\t\tmiscs: []\n\t\t\t\t\t\t},\n\t\t\t\t\t\tusername: decodedJWT['preferred_username'].toLowerCase(),\n\t\t\t\t\t\temail: decodedJWT['preferred_username'].toLowerCase(),\n\t\t\t\t\t\tfullname: decodedJWT['name'],\n\t\t\t\t\t\tactive: true,\n\t\t\t\t\t\tphonenumber: '',\n\t\t\t\t\t\treadonly: false,\n\t\t\t\t\t\tother: {\n\t\t\t\t\t\t\tms_oid: decodedJWT['oid']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tattempts: 0,\n\t\t\t\t\t\tsalt: jwt.sign({now: (Date.now() - 1000).toString()}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t}),\n\t\t\t\t\t\thash: jwt.sign({now: (Date.now() + 1000).toString()}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tlast: new Date(),\n\t\t\t\t\t\tsettings: null,\n\t\t\t\t\t\tservices: null,\n\t\t\t\t\t\tis_customer: false\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tawait Users.create(user);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet update = false;\n\n\t\t\t\t\tif (user.email !== decodedJWT['preferred_username'].toLowerCase()) {\n\t\t\t\t\t\tuser.email = decodedJWT['preferred_username'].toLowerCase();\n\t\t\t\t\t\tupdate = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (user.fullname !== decodedJWT['name']) {\n\t\t\t\t\t\tuser.fullname = decodedJWT['name'];\n\t\t\t\t\t\tupdate = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (update) {\n\t\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {email: user.email, fullname: user.fullname}});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\terror: false,\n\t\t\t\t\tresult: {\n\t\t\t\t\t\ttoken: jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconsole.log('ERROR - 1', tokenData, token, decodedJWT);\n\n\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\terror: true,\n\t\t\t\t\tresult: 'Invalid Azure Token'\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t});\n\n\t// Login via HTTP, return refresh token if authenticated\n\tapp.post('/login', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tusername: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/login)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/login' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet user = await Users.findOne({active: true, username: body.username});\n\n\t\t\tif (!user) {\n\t\t\t\tuser = await Users.findOne({active: true, email: body.username});\n\t\t\t}\n\t\t\t\n\t\t\tif (!user) {\n\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\terror: true,\n\t\t\t\t\tresult: 'Invalid Username And Password'\n\t\t\t\t}));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet resAuth = await Users.authenticate(user, body.password);\n\n\t\t\tif (resAuth['error']) {\n\t\t\t\tif (resAuth['error'] === 'Too Many Attempts') {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: resAuth['error'] + '. A password reset link has been sent to your email, please reset your password.'\n\t\t\t\t\t}));\n\n\t\t\t\t\tif (!user.services) {\n\t\t\t\t\t\tuser.services = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tuser.services['forgot_password'] = jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET']);\n\n\t\t\t\t\tlet emailData = {\n\t\t\t\t\t\tuserToChangePassword: user.fullname,\n\t\t\t\t\t\tuserWhoResetPassword: ResolveIOServer.getClientName() + ' System',\n\t\t\t\t\t\turl: (serverConfig['ROOT_URL'] + '/forgot-password?' + encodeURIComponent(serverConfig['SERVER_URL']) + '&' + user.services['forgot_password'])\n\t\t\t\t\t};\n\n\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {services: user.services}});\n\t\t\t\t\tlet html = mainServer.getMethodManager().readFile('email-templates/forgot-password.html');\n\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t});\n\t\n\t\t\t\t\tawait mainServer.getMethodManager().sendEmail(user.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData), null, null, '');\n\t\t\t\t}\n\t\t\t\telse if (resAuth['error'] === 'No Salt Value Stored') {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'A password reset link has been sent to your email, please reset your password.'\n\t\t\t\t\t}));\n\n\t\t\t\t\tif (!user.services) {\n\t\t\t\t\t\tuser.services = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tuser.services['forgot_password'] = jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET']);\n\n\t\t\t\t\tlet emailData = {\n\t\t\t\t\t\tuserToChangePassword: user.fullname,\n\t\t\t\t\t\tuserWhoResetPassword: ResolveIOServer.getClientName() + ' System',\n\t\t\t\t\t\turl: (serverConfig['ROOT_URL'] + '/forgot-password?' + encodeURIComponent(serverConfig['SERVER_URL']) + '&' + user.services['forgot_password'])\n\t\t\t\t\t};\n\n\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {services: user.services}});\n\t\t\t\t\tlet html = mainServer.getMethodManager().readFile('email-templates/forgot-password.html');\n\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t});\n\n\t\t\t\t\tawait mainServer.getMethodManager().sendEmail(user.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData), null, null, '');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: resAuth['error']\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (resAuth && resAuth['data'] && resAuth['data'].active) {\n\t\t\t\t\tawait Users.resetAttempts(resAuth['data']);\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: false,\n\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\ttoken: jwt.sign({id_user: resAuth['data']._id}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} \n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tapp.post('/accessToken', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\trefreshToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/accessToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/accessToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.refreshToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findById(decoded['id_user']);\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\t\t\t\ttoken: jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\t\t\t\t\texpiresIn : 3 * 24 * 60 * 60 * 1000 // 3 days\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\tuser: user\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\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 {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/userWithEnrollmentToken', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tenrollmentToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/userWithEnrollmentToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/userWithEnrollmentToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.enrollmentToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.enrollment': body.enrollmentToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}, {projection: {_id: 1, __v: 1, username: 1, active: 1}});\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\t\t\t\tuser: user\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\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 {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/setUserWithEnrollmentToken', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tenrollmentToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/setUserWithEnrollmentToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/setUserWithEnrollmentToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.enrollmentToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.enrollment': body.enrollmentToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tawait Users.setPassword(user, body.password);\n\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: true\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\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 {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/userWithForgotPasswordToken', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tforgotPasswordToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/userWithForgotPasswordToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/userWithForgotPasswordToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.forgotPasswordToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.forgot_password': body.forgotPasswordToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}, {projection: {_id: 1, __v: 1, username: 1, active: 1}});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\t\t\t\tuser: user\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid Token'\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 {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/setUserWithForgotPasswordToken', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tforgotPasswordToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/setUserWithForgotPasswordToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/setUserWithForgotPasswordToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.forgotPasswordToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.forgot_password': body.forgotPasswordToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tawait Users.setPassword(user, body.password);\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: true\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\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 {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/resetPassword', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tusername: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/resetPassword)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/resetPassword' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet user = await Users.findOne({active: true, username: body.username});\n\n\t\t\tif (!user) {\n\t\t\t\tuser = await Users.findOne({active: true, email: body.username});\n\t\t\t}\n\t\t\t\n\t\t\tif (user) {\n\t\t\t\tmainServer.getMethodManager().callMethod.call(mainServer.getMethodManager(), 'resetUserPassword', user._id);\n\t\t\t}\n\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: false,\n\t\t\t\tresult: ''\n\t\t\t}));\n\t\t}\n\t});\n}"]}
package/http/health.d.ts CHANGED
@@ -1 +1 @@
1
- export declare function setupHealthRoutes(app: any, serverConfig: any): void;
1
+ export declare function setupHealthRoutes(app: any): void;
package/http/health.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setupHealthRoutes=void 0;var bodyParser=require("body-parser");function setupHealthRoutes(e,t){e.get("/health",bodyParser.json(),function(e,t){t.sendStatus(200)})}exports.setupHealthRoutes=setupHealthRoutes;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setupHealthRoutes=void 0;var bodyParser=require("body-parser");function setupHealthRoutes(e){e.get("/health",bodyParser.json(),function(e,t){t.sendStatus(200)})}exports.setupHealthRoutes=setupHealthRoutes;
2
2
  //# sourceMappingURL=health.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/http/health.ts"],"names":["bodyParser","require","setupHealthRoutes","app","serverConfig","get","json","request","response","sendStatus","exports"],"mappings":"qGAAA,IAAAA,WAAAC,QAAA,aAAA,EAEA,SAAgBC,kBAAkBC,EAAKC,GACtCD,EAAIE,IAAI,UAAWL,WAAWM,KAAI,EAAI,SAAUC,EAASC,GACxDA,EAASC,WAAW,GAAG,CACxB,CAAC,CACF,CAJAC,QAAAR,kBAAAA","file":"health.js","sourcesContent":["import * as bodyParser from 'body-parser';\n\nexport function setupHealthRoutes(app, serverConfig) {\n\tapp.get('/health', bodyParser.json(), function (request, response) {\n\t\tresponse.sendStatus(200);\n\t});\n}"]}
1
+ {"version":3,"sources":["../../src/http/health.ts"],"names":["bodyParser","require","setupHealthRoutes","app","get","json","request","response","sendStatus","exports"],"mappings":"qGAAA,IAAAA,WAAAC,QAAA,aAAA,EAEA,SAAgBC,kBAAkBC,GACjCA,EAAIC,IAAI,UAAWJ,WAAWK,KAAI,EAAI,SAAUC,EAASC,GACxDA,EAASC,WAAW,GAAG,CACxB,CAAC,CACF,CAJAC,QAAAP,kBAAAA","file":"health.js","sourcesContent":["import * as bodyParser from 'body-parser';\n\nexport function setupHealthRoutes(app) {\n\tapp.get('/health', bodyParser.json(), function (request, response) {\n\t\tresponse.sendStatus(200);\n\t});\n}"]}
@@ -1,2 +1,2 @@
1
- "use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,o,n,s){return new(n=n||Promise)(function(r,t){function fulfilled(e){try{step(s.next(e))}catch(e){t(e)}}function rejected(e){try{step(s.throw(e))}catch(e){t(e)}}function step(e){var t;e.done?r(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(fulfilled,rejected)}step((s=s.apply(e,o||[])).next())})},__generator=this&&this.__generator||function(o,n){var s,i,a,c={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function verb(r){return function(e){var t=[r,e];if(s)throw new TypeError("Generator is already executing.");for(;c=l&&t[l=0]?0:c;)try{if(s=1,i&&(a=2&t[0]?i.return:t[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,t[1])).done)return a;switch(i=0,(t=a?[2&t[0],a.value]:t)[0]){case 0:case 1:a=t;break;case 4:return c.label++,{value:t[1],done:!1};case 5:c.label++,i=t[1],t=[0];continue;case 7:t=c.ops.pop(),c.trys.pop();continue;default:if(!(a=0<(a=c.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){c=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3]))c.label=t[1];else if(6===t[0]&&c.label<a[1])c.label=a[1],a=t;else{if(!(a&&c.label<a[2])){a[2]&&c.ops.pop(),c.trys.pop();continue}c.label=a[2],c.ops.push(t)}}t=n.call(o,c)}catch(e){t=[6,e],i=0}finally{s=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}},__read=this&&this.__read||function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var o,n,s=r.call(e),i=[];try{for(;(void 0===t||0<t--)&&!(o=s.next()).done;)i.push(o.value)}catch(e){n={error:e}}finally{try{o&&!o.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}return i},__spreadArray=this&&this.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var o,n=0,s=t.length;n<s;n++)!o&&n in t||((o=o||Array.prototype.slice.call(t,0,n))[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))},__values=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],o=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&o>=e.length?void 0:e)&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},client_s3_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.MethodManager=exports.AWS=void 0,require("@aws-sdk/client-s3")),fs=require("fs"),nodemailer=require("nodemailer"),sesTransport=require("nodemailer-ses-transport"),path=require("path"),email_history_collection_1=require("../collections/email-history.collection"),log_collection_1=require("../collections/log.collection"),cron_jobs_1=require("../fixtures/cron-jobs"),init_1=require("../fixtures/init"),accounts_1=require("../methods/accounts"),aws_1=require("../methods/aws"),collections_1=require("../methods/collections"),counters_1=require("../methods/counters"),cron_jobs_2=require("../methods/cron-jobs"),flag_updates_1=require("../methods/flag-updates"),flags_1=require("../methods/flags"),logs_1=require("../methods/logs"),monitor_1=require("../methods/monitor"),pdf_1=require("../methods/pdf"),report_builder_1=require("../methods/report-builder"),support_1=require("../methods/support"),resolveio_server_app_1=require("../resolveio-server-app"),common_1=require("../util/common"),AWS=function(){function AWS(){this._s3=null,this._s3USEast1=null}return AWS.prototype.create=function(){var e=new AWS;return e.initialize(),e},AWS.prototype.initialize=function(){},AWS.prototype.s3=function(){return this._s3||(this._s3=new client_s3_1.S3({credentials:{accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY},region:process.env.AWS_REGION,apiVersion:"2006-03-01"})),this._s3},AWS.prototype.s3USEast1=function(){return"us-east-1"===process.env.AWS_REGION?this.s3():(this._s3USEast1||(this._s3USEast1=new client_s3_1.S3({credentials:{accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY},region:"us-east-1",apiVersion:"2006-03-01"})),this._s3USEast1)},AWS}(),MethodManager=(exports.AWS=AWS,function(){function MethodManager(){this._methods={},this._isWorkersEnabled=!1,this._isWorkerInstance=!1,this.emailQueue=new Set,this.isEmailProcessing=!1,this._debugcallMethodHits=0,this._debugCallMethodHits=0,this._debugCallMethodCronJobHits=0,this._debugSendQueueHits=0,this.clientDir="",this.serverConfig=""}return MethodManager.create=function(e,t,r,o){var n=new MethodManager;return n.initialize(e,t,r,o),n},MethodManager.prototype.initialize=function(e,t,r,o){var n=this;this._websocketManager=e,this._monitorManagerFunction=t,this._isWorkersEnabled=r,this._isWorkerInstance=o,this.clientDir=resolveio_server_app_1.ResolveIOServer.getClientDir(),this.serverConfig=resolveio_server_app_1.ResolveIOServer.getServerConfig(),"false"!==process.env.IS_WORKERS_ENABLED&&("true"!==process.env.IS_WORKER_INSTANCE||"0"!==process.env.WORKER_INDEX)||process.env.NODE_APP_INSTANCE&&"0"!==process.env.NODE_APP_INSTANCE||setTimeout(function(){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return console.log(new Date,"Start Server Fixture"),[4,(0,init_1.loadServerInit)()];case 1:return e.sent(),console.log(new Date,"End Server Fixture"),[2]}})})},5e3),setImmediate(function(){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,(0,cron_jobs_1.loadServerCronJobs)()];case 1:return e.sent(),(0,accounts_1.loadAccountMethods)(this),(0,aws_1.loadAWSMethods)(this),(0,collections_1.loadCollectionMethods)(this),(0,counters_1.loadCounterMethods)(this),(0,logs_1.loadLogMethods)(this),(0,pdf_1.loadPDFMethods)(this),(0,cron_jobs_2.loadCronJobMethods)(this),(0,flags_1.loadFlagMethods)(this),(0,flag_updates_1.loadFlagUpdatesMethods)(this),(0,report_builder_1.loadReportBuilderMethods)(this),(0,support_1.loadSupportMethods)(this),(0,monitor_1.loadMonitorMethods)(this),[2]}})})}),this._aws=new AWS,resolveio_server_app_1.ResolveIOServer.getSESMail()?this._mailer=nodemailer.createTransport(sesTransport({accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY,region:process.env.AWS_SES_REGION})):this._mailer=nodemailer.createTransport({host:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_HOST,port:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_PORT,secure:!1,auth:{user:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_USERNAME,pass:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_PASSWORD},tls:{ciphers:"SSLv3"}}),setInterval(function(){resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&(console.log(new Date,"Method Manager","Send Queue Hits",n._debugSendQueueHits),console.log(new Date,"Method Manager","Call Method Internal Hits",n._debugcallMethodHits),console.log(new Date,"Method Manager","Call Method Hits",n._debugCallMethodHits),console.log(new Date,"Method Manager","Call Method Cron Hits",n._debugCallMethodCronJobHits)),n._debugcallMethodHits=0,n._debugCallMethodHits=0,n._debugCallMethodCronJobHits=0,n._debugSendQueueHits=0},6e4),this._isWorkersEnabled&&!this._isWorkerInstance||setImmediate(function(){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.setupEmailWatcher()];case 1:return e.sent(),[2]}})})})},MethodManager.prototype.methods=function(e){this._methods=Object.assign(this._methods,e)},MethodManager.prototype.callMethodCron=function(c){for(var l=[],e=1;e<arguments.length;e++)l[e-1]=arguments[e];return __awaiter(this,void 0,void 0,function(){var t,r,o,n,s,i,a;return __generator(this,function(e){switch(e.label){case 0:return(this._debugCallMethodCronJobHits+=1,this._methods[c])?[3,2]:(console.log("No Method: "+c),[4,this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"No Method: "+c)]);case 1:throw e.sent(),new Error("No Method: "+c);case 2:return!(1<l.length||l[0])||this._methods[c].skipValidation?[3,10]:this._methods[c].check?[3,4]:(console.error(new Date,"No Check Function For Cron Method "+c),[4,this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"No Check Function For Cron Method "+c)]);case 3:throw e.sent(),new Error("No Check Function For Cron Method "+c);case 4:return this._methods[c].check._schema?[3,6]:(console.error(new Date,"No Check Schema For Cron Method "+c),[4,this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"No Check Function For Cron Method "+c)]);case 5:throw e.sent(),new Error("No Check Schema For Cron Method "+c);case 6:for(t={},a=Object.keys(this._methods[c].check._schema),r=a.filter(function(e){return!e.includes(".")}),o=0;o<l.length;o++)t[r[o]]=l[o];e.label=7;case 7:return e.trys.push([7,8,,10]),this._methods[c].check.validate(t),[3,10];case 8:return n=e.sent(),console.error(new Date,"Error in Cron Method Check ("+c+")",n),[4,this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Match Error On Cron Method "+c+"\n\nData Being Checked\n"+JSON.stringify(t,null,2)+"\n\nErrors\n"+JSON.stringify(n,null,2))];case 9:throw e.sent(),n.message="".concat((new Date).toISOString()," - Error in Cron Method Check (").concat(c,"): ").concat(n.message),n;case 10:s=this._monitorManagerFunction.startMonitorFunction("Cron Method",c,"","",l),e.label=11;case 11:return e.trys.push([11,13,15,17]),[4,(a=this._methods[c].function).call.apply(a,__spreadArray([Object.assign({},this,MethodManager.prototype,{id_user:"",user:"",id_ws:""})],__read(l),!1))];case 12:return[2,e.sent()];case 13:return i=e.sent(),[4,this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Error Detected During Cron Method "+c+" - (callMethodCron)\n\nData \n"+JSON.stringify(l,null,2)+"\n\nErrors\n"+JSON.stringify(i,null,2))];case 14:throw e.sent(),i.message="".concat((new Date).toISOString()," - Error in Cron Method (").concat(c,"): ").concat(i.message),i;case 15:return[4,this._monitorManagerFunction.finishMonitorFunction(s)];case 16:return e.sent(),[7];case 17:return[2]}})})},MethodManager.prototype.callMethod=function(a){for(var c=[],e=1;e<arguments.length;e++)c[e-1]=arguments[e];return __awaiter(this,void 0,void 0,function(){var o,n,t,r,s,i=this;return __generator(this,function(e){switch(e.label){case 0:if(this._debugcallMethodHits+=1,!this._methods[a])throw console.log("No Method: "+a),new Error("No Method: ".concat(a));if((1<c.length||c[0]&&"function"!=typeof c[0])&&!this._methods[a].skipValidation){if(!this._methods[a].check)throw console.error(new Date,"No Check Function For Method "+a),new Error("No Check Function For Method: ".concat(a));if(!this._methods[a].check._schema)throw console.error(new Date,"No Check Schema For Method "+a),new Error("No Check Schema For Method: ".concat(a))}return"insertSubscriptionLog"===a||"getDataURIfromURL"===a||"processAirdropDistribution"===a||"incCounter"===a||"supportCreateBillingUser"===a||"countCollectionWithQuery"===a?[3,4]:"https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL?[3,1]:(resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),createdAt:new Date,type:"callMethod",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([c]))<2e5?JSON.stringify([c],null,2):"Too Big",method:a,id_user:this.id_user||"",user:this.user||"",messageId:0,route:""}}),[3,3]);case 1:return[4,log_collection_1.Logs.insertOne({_id:(0,common_1.objectIdHexString)(),type:"callMethod",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([c]))<2e5?JSON.stringify([c],null,2):"Too Big",method:a,id_user:this.id_user||"",user:this.user||"",messageId:0,route:"",client:"ResolveIO",instance:"backend.resolveio.com",instance_index:process.env.NODE_APP_INSTANCE||""})];case 2:e.sent(),e.label=3;case 3:e.label=4;case 4:return(o="function"==typeof c[c.length-1]?c.slice(0,-1):c,resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())?[3,5]:(n=null,[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().oneTimeTransaction(function(){return __awaiter(i,void 0,void 0,function(){var t,r;return __generator(this,function(e){switch(e.label){case 0:n=this._monitorManagerFunction.startMonitorFunction("Method",a,this.user||"","",o),e.label=1;case 1:return e.trys.push([1,3,7,9]),[4,(r=this._methods[a].function).call.apply(r,__spreadArray([Object.assign({},this,MethodManager.prototype)],__read(o),!1))];case 2:return r=e.sent(),c[c.length-1]&&"function"==typeof c[c.length-1]&&c[c.length-1](null,r),[2,r];case 3:return t=e.sent(),[4,this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Error Detected During Method "+a+" - (callMethod)\n\nData \n"+JSON.stringify(c,null,2)+"\n\nErrors\n"+JSON.stringify(t,null,2))];case 4:return e.sent(),t.message="".concat((new Date).toISOString()," - Error in Method With Session (").concat(a,") - New Session: ").concat(t.message),c[c.length-1]&&"function"==typeof c[c.length-1]&&c[c.length-1](t,null),process.env.IS_WORKER_INSTANCE?[3,6]:[4,this.callMethod("insertErrorLog","Error in Method: ".concat(a," - ").concat(JSON.stringify(c,null,2)))];case 5:e.sent(),e.label=6;case 6:return[3,9];case 7:return[4,this._monitorManagerFunction.finishMonitorFunction(n)];case 8:return e.sent(),[7];case 9:return[2]}})})})]);case 5:t=this._monitorManagerFunction.startMonitorFunction("Method",a,this.user||"","",o),e.label=6;case 6:return e.trys.push([6,8,12,14]),[4,(s=this._methods[a].function).call.apply(s,__spreadArray([Object.assign({},this,MethodManager.prototype)],__read(o),!1))];case 7:return s=e.sent(),c[c.length-1]&&"function"==typeof c[c.length-1]&&c[c.length-1](null,s),[2,s];case 8:return r=e.sent(),[4,this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Error Detected During Method "+a+" - (callMethod)\n\nData \n"+JSON.stringify(c,null,2)+"\n\nErrors\n"+JSON.stringify(r,null,2))];case 9:return e.sent(),r.message="".concat((new Date).toISOString()," - Error in Method (").concat(a,") - Existing Session: ").concat(r.message),c[c.length-1]&&"function"==typeof c[c.length-1]&&c[c.length-1](r,null),process.env.IS_WORKER_INSTANCE?[3,11]:[4,this.callMethod("insertErrorLog","Error in Method: ".concat(a," - ").concat(JSON.stringify(c,null,2)))];case 10:e.sent(),e.label=11;case 11:return[3,14];case 12:return[4,this._monitorManagerFunction.finishMonitorFunction(t)];case 13:return e.sent(),[7];case 14:return[2]}})})},MethodManager.prototype.setupEmailWatcher=function(){return __awaiter(this,void 0,void 0,function(){var r,o=this;return __generator(this,function(e){switch(e.label){case 0:return(r=email_history_collection_1.EmailHistories.watchCollection([])).on("change",function(r){return __awaiter(o,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return"insert"===r.operationType&&r.fullDocument&&"pending"===r.fullDocument.status?(this.emailQueue.add(r.fullDocument._id.toString()),[4,this.tryProcessEmail()]):[3,2];case 1:return e.sent(),[3,3];case 2:"update"!==r.operationType&&"replace"!==r.operationType||(t=r.fullDocument)&&"pending"!==t.status&&this.emailQueue.has(t._id.toString())&&this.emailQueue.delete(t._id.toString()),e.label=3;case 3:return[2]}})})}).on("error",function(t){return __awaiter(o,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return console.error("Email history changestream error",t),[4,r.close()];case 1:return e.sent(),[2]}})})}).on("close",function(){return __awaiter(o,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.setupEmailWatcher()];case 1:return e.sent(),[2]}})})}),[4,this.loadPendingEmails()];case 1:return e.sent(),[2]}})})},MethodManager.prototype.loadPendingEmails=function(){return __awaiter(this,void 0,void 0,function(){var t,r,o,n,s,i;return __generator(this,function(e){switch(e.label){case 0:return[4,email_history_collection_1.EmailHistories.find({status:"pending"},{sort:{_id:1}})];case 1:t=e.sent();try{for(r=__values(t),o=r.next();!o.done;o=r.next())n=o.value,this.emailQueue.add(n._id.toString())}catch(e){s={error:e}}finally{try{o&&!o.done&&(i=r.return)&&i.call(r)}finally{if(s)throw s.error}}return[4,this.tryProcessEmail()];case 2:return e.sent(),[2]}})})},MethodManager.prototype.tryProcessEmail=function(){return __awaiter(this,void 0,void 0,function(){var t,u,r,h=this;return __generator(this,function(e){switch(e.label){case 0:if(this.isEmailProcessing||0===this.emailQueue.size)return[2];this.isEmailProcessing=!0,e.label=1;case 1:e.trys.push([1,5,6,9]),t=function(){var o,t,r,n,s,i,a,c,l;return __generator(this,function(e){switch(e.label){case 0:return s=u.emailQueue.values().next().value,u.emailQueue.delete(s),[4,email_history_collection_1.EmailHistories.findOneAndUpdate({_id:s,status:"pending"},{$set:{status:"processing",processingAt:new Date}})];case 1:if(!(o=e.sent()))return[2,"continue"];if(!(o.attachments&&0<o.attachments.length))return[3,14];e.label=2;case 2:e.trys.push([2,12,,14]),e.label=3;case 3:e.trys.push([3,9,10,11]),c=void 0,t=__values(o.attachments),r=t.next(),e.label=4;case 4:return r.done?[3,8]:(n=r.value).path&&n.path.startsWith("http")?[4,fetch(n.path)]:[3,7];case 5:if((s=e.sent()).ok)return[4,s.arrayBuffer()];throw new Error("Failed to fetch attachment: ".concat(n.path));case 6:i=e.sent(),i=Buffer.from(i),i.length<=20971520&&(n.content=i,delete n.path),e.label=7;case 7:return r=t.next(),[3,4];case 8:return[3,11];case 9:return i=e.sent(),c={error:i},[3,11];case 10:try{r&&!r.done&&(l=t.return)&&l.call(t)}finally{if(c)throw c.error}return[7];case 11:return[3,14];case 12:return a=e.sent(),console.error("Failed to fetch attachment:",a),[4,email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"failed",error:"string"==typeof a?a:u.safeStringify(a),completedAt:new Date}})];case 13:return e.sent(),[2,"continue"];case 14:return(a={replyTo:o.reply_to||resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_REPLY_TO||void 0,from:o.send_from||resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_FROM,to:o.email,subject:(resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/dev\./)||resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/www\.dev\./)?"(DEV SERVER) - ":"")+o.subject,text:"string"==typeof o.text?o.text:"",html:"string"==typeof o.html?o.html:"",attachments:o.attachments||[]}).attachments&&0<a.attachments.length&&(a.attachments=a.attachments.map(function(e){e=__assign({},e);return!e.content||"object"!=typeof e.content||e.content instanceof Buffer?"string"==typeof e.content&&"base64"===e.encoding?(e.content=Buffer.from(e.content,"base64"),delete e.encoding):"string"==typeof e.content&&(e.content=Buffer.from(e.content)):"Binary"===e.content._bsontype&&0===e.content.sub_type?e.content=Buffer.from(e.content.buffer):e.content=Buffer.from(e.content),e})),u._mailer.sendMail(a,function(r,e){return __awaiter(h,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return(e.trys.push([0,7,,9]),r)?(console.error("Failed to send email:",r),[4,email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"failed",error:"string"==typeof r?r:this.safeStringify(r),completedAt:new Date}})]):[3,2];case 1:return e.sent(),[3,6];case 2:return"dev@resolveio.com"!==o.email?[3,4]:[4,email_history_collection_1.EmailHistories.deleteOne({_id:o._id})];case 3:return e.sent(),[3,6];case 4:return[4,email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"completed",completedAt:new Date}})];case 5:e.sent(),e.label=6;case 6:return[3,9];case 7:return t=e.sent(),console.error("Error in sendMail callback:",t),[4,email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"failed",error:"string"==typeof t?t:this.safeStringify(t),completedAt:new Date}})];case 8:return e.sent(),[3,9];case 9:return[2]}})})}),[4,new Promise(function(e){return setTimeout(e,1e3)})];case 15:return e.sent(),[2]}})},u=this,e.label=2;case 2:return 0<this.emailQueue.size?[5,t()]:[3,4];case 3:return e.sent(),[3,2];case 4:return[3,9];case 5:return r=e.sent(),console.error("Error processing email queue:",r),[3,9];case 6:return(this.isEmailProcessing=!1,0<this.emailQueue.size)?[4,this.tryProcessEmail()]:[3,8];case 7:e.sent(),e.label=8;case 8:return[7];case 9:return[2]}})})},MethodManager.prototype.safeStringify=function(e){try{return JSON.stringify(e,this.getCircularReplacer())}catch(e){return"Error in JSON stringifying: ".concat(e.message)}},MethodManager.prototype.getCircularReplacer=function(){var r=new WeakSet;return function(e,t){if("object"==typeof t&&null!==t){if(r.has(t))return"[Circular]";r.add(t)}return t}},MethodManager.prototype.sendEmail=function(o,n,s,i,a,c,l,u){return void 0===u&&(u=!1),__awaiter(this,void 0,void 0,function(){var t,r;return __generator(this,function(e){switch(e.label){case 0:if(!(o=!resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/dev\./)&&!resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/www\.dev\./)&&"http://localhost:4200"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||o.match(/\@resolveio\.com/)?o:"dev@resolveio.com"))return[3,7];if("http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL&&!u)return[3,5];a=a||[],a=(a=Array.isArray(a)?a:[a]).map(function(e){e=__assign({},e);return Buffer.isBuffer(e.content)&&(e.content=e.content.toString("base64"),e.encoding="base64"),e}),t={_id:(0,common_1.objectIdHexString)(),__v:0,date:new Date,id_user:this.id_user||"",user:this.user||"",email:o,subject:n||"",text:s||"",html:i||"",attachments:a||[],send_from:c||"",reply_to:l||"",status:"pending",error:""},e.label=1;case 1:return e.trys.push([1,3,,4]),[4,email_history_collection_1.EmailHistories.insertOne(t)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.error("Failed to queue email:",r),r.message="Failed to queue email: ".concat(r.message),r;case 4:return[3,6];case 5:return console.log("Send email",o,n,s,i,a,c),[2,!0];case 6:return[3,8];case 7:return[2,!0];case 8:return[2]}})})},MethodManager.prototype.getAWS=function(){return this._aws},MethodManager.prototype.readFile=function(e){fs.existsSync(path.join(__dirname,"../private/"+e))?fs.readFile(path.join(__dirname,"../private/"+e),"utf-8",function(e,t){if(e)throw e;return t}):fs.existsSync(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e))&&fs.readFile(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e),"utf-8",function(e,t){if(e)throw e;return t})},MethodManager.prototype.readImage=function(e){fs.existsSync(path.join(__dirname,"../private/"+e))?fs.readFile(path.join(__dirname,"../private/"+e),"base64",function(e,t){if(e)throw e;return t}):fs.existsSync(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e))&&fs.readFile(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e),"base64",function(e,t){if(e)throw e;return t})},MethodManager}());exports.MethodManager=MethodManager;
1
+ "use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,o,n,s){return new(n=n||Promise)(function(r,t){function fulfilled(e){try{step(s.next(e))}catch(e){t(e)}}function rejected(e){try{step(s.throw(e))}catch(e){t(e)}}function step(e){var t;e.done?r(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(fulfilled,rejected)}step((s=s.apply(e,o||[])).next())})},__generator=this&&this.__generator||function(o,n){var s,i,a,c={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function verb(r){return function(e){var t=[r,e];if(s)throw new TypeError("Generator is already executing.");for(;c=l&&t[l=0]?0:c;)try{if(s=1,i&&(a=2&t[0]?i.return:t[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,t[1])).done)return a;switch(i=0,(t=a?[2&t[0],a.value]:t)[0]){case 0:case 1:a=t;break;case 4:return c.label++,{value:t[1],done:!1};case 5:c.label++,i=t[1],t=[0];continue;case 7:t=c.ops.pop(),c.trys.pop();continue;default:if(!(a=0<(a=c.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){c=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3]))c.label=t[1];else if(6===t[0]&&c.label<a[1])c.label=a[1],a=t;else{if(!(a&&c.label<a[2])){a[2]&&c.ops.pop(),c.trys.pop();continue}c.label=a[2],c.ops.push(t)}}t=n.call(o,c)}catch(e){t=[6,e],i=0}finally{s=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}},__read=this&&this.__read||function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var o,n,s=r.call(e),i=[];try{for(;(void 0===t||0<t--)&&!(o=s.next()).done;)i.push(o.value)}catch(e){n={error:e}}finally{try{o&&!o.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}return i},__spreadArray=this&&this.__spreadArray||function(e,t,r){if(r||2===arguments.length)for(var o,n=0,s=t.length;n<s;n++)!o&&n in t||((o=o||Array.prototype.slice.call(t,0,n))[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))},__values=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],o=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&o>=e.length?void 0:e)&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},client_s3_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.MethodManager=exports.AWS=void 0,require("@aws-sdk/client-s3")),fs=require("fs"),nodemailer=require("nodemailer"),sesTransport=require("nodemailer-ses-transport"),path=require("path"),email_history_collection_1=require("../collections/email-history.collection"),log_collection_1=require("../collections/log.collection"),cron_jobs_1=require("../fixtures/cron-jobs"),init_1=require("../fixtures/init"),accounts_1=require("../methods/accounts"),aws_1=require("../methods/aws"),collections_1=require("../methods/collections"),counters_1=require("../methods/counters"),cron_jobs_2=require("../methods/cron-jobs"),flag_updates_1=require("../methods/flag-updates"),flags_1=require("../methods/flags"),logs_1=require("../methods/logs"),monitor_1=require("../methods/monitor"),pdf_1=require("../methods/pdf"),report_builder_1=require("../methods/report-builder"),support_1=require("../methods/support"),resolveio_server_app_1=require("../resolveio-server-app"),common_1=require("../util/common"),AWS=function(){function AWS(){this._s3=null,this._s3USEast1=null}return AWS.prototype.create=function(){var e=new AWS;return e.initialize(),e},AWS.prototype.initialize=function(){},AWS.prototype.s3=function(){return this._s3||(this._s3=new client_s3_1.S3({credentials:{accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY},region:process.env.AWS_REGION,apiVersion:"2006-03-01"})),this._s3},AWS.prototype.s3USEast1=function(){return"us-east-1"===process.env.AWS_REGION?this.s3():(this._s3USEast1||(this._s3USEast1=new client_s3_1.S3({credentials:{accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY},region:"us-east-1",apiVersion:"2006-03-01"})),this._s3USEast1)},AWS}(),MethodManager=(exports.AWS=AWS,function(){function MethodManager(){this._methods={},this._isWorkersEnabled=!1,this._isWorkerInstance=!1,this.emailQueue=new Set,this.isEmailProcessing=!1,this._debugcallMethodHits=0,this._debugCallMethodHits=0,this._debugCallMethodCronJobHits=0,this._debugSendQueueHits=0,this.clientDir="",this.serverConfig=""}return MethodManager.create=function(e,t,r,o){var n=new MethodManager;return n.initialize(e,t,r,o),n},MethodManager.prototype.initialize=function(e,t,r,o){var n=this;this._websocketManager=e,this._monitorManagerFunction=t,this._isWorkersEnabled=r,this._isWorkerInstance=o,this.clientDir=resolveio_server_app_1.ResolveIOServer.getClientDir(),this.serverConfig=resolveio_server_app_1.ResolveIOServer.getServerConfig(),"false"!==process.env.IS_WORKERS_ENABLED&&("true"!==process.env.IS_WORKER_INSTANCE||"0"!==process.env.WORKER_INDEX)||process.env.NODE_APP_INSTANCE&&"0"!==process.env.NODE_APP_INSTANCE||setTimeout(function(){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return console.log(new Date,"Start Server Fixture"),[4,(0,init_1.loadServerInit)()];case 1:return e.sent(),console.log(new Date,"End Server Fixture"),[2]}})})},5e3),setImmediate(function(){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,(0,cron_jobs_1.loadServerCronJobs)()];case 1:return e.sent(),(0,accounts_1.loadAccountMethods)(this),(0,aws_1.loadAWSMethods)(this),(0,collections_1.loadCollectionMethods)(this),(0,counters_1.loadCounterMethods)(this),(0,logs_1.loadLogMethods)(this),(0,pdf_1.loadPDFMethods)(this),(0,cron_jobs_2.loadCronJobMethods)(this),(0,flags_1.loadFlagMethods)(this),(0,flag_updates_1.loadFlagUpdatesMethods)(this),(0,report_builder_1.loadReportBuilderMethods)(this),(0,support_1.loadSupportMethods)(this),(0,monitor_1.loadMonitorMethods)(this),[2]}})})}),this._aws=new AWS,resolveio_server_app_1.ResolveIOServer.getSESMail()?this._mailer=nodemailer.createTransport(sesTransport({accessKeyId:process.env.AWS_ACCESS_KEY,secretAccessKey:process.env.AWS_SECRET_ACCESS_KEY,region:process.env.AWS_SES_REGION})):this._mailer=nodemailer.createTransport({host:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_HOST,port:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_PORT,secure:!1,auth:{user:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_USERNAME,pass:resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_PASSWORD},tls:{ciphers:"SSLv3"}}),setInterval(function(){resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager()&&resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getEnableDebug()&&(console.log(new Date,"Method Manager","Send Queue Hits",n._debugSendQueueHits),console.log(new Date,"Method Manager","Call Method Internal Hits",n._debugcallMethodHits),console.log(new Date,"Method Manager","Call Method Hits",n._debugCallMethodHits),console.log(new Date,"Method Manager","Call Method Cron Hits",n._debugCallMethodCronJobHits)),n._debugcallMethodHits=0,n._debugCallMethodHits=0,n._debugCallMethodCronJobHits=0,n._debugSendQueueHits=0},6e4),this._isWorkersEnabled&&!this._isWorkerInstance||setImmediate(function(){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.setupEmailWatcher()];case 1:return e.sent(),[2]}})})})},MethodManager.prototype.methods=function(e){this._methods=Object.assign(this._methods,e)},MethodManager.prototype.callMethodCron=function(c){for(var l=[],e=1;e<arguments.length;e++)l[e-1]=arguments[e];return __awaiter(this,void 0,void 0,function(){var t,r,o,n,s,i,a;return __generator(this,function(e){switch(e.label){case 0:return(this._debugCallMethodCronJobHits+=1,this._methods[c])?[3,2]:(console.log("No Method: "+c),[4,this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"No Method: "+c)]);case 1:throw e.sent(),new Error("No Method: "+c);case 2:return!(1<l.length||l[0])||this._methods[c].skipValidation?[3,10]:this._methods[c].check?[3,4]:(console.error(new Date,"No Check Function For Cron Method "+c),[4,this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"No Check Function For Cron Method "+c)]);case 3:throw e.sent(),new Error("No Check Function For Cron Method "+c);case 4:return this._methods[c].check._schema?[3,6]:(console.error(new Date,"No Check Schema For Cron Method "+c),[4,this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"No Check Function For Cron Method "+c)]);case 5:throw e.sent(),new Error("No Check Schema For Cron Method "+c);case 6:for(t={},a=Object.keys(this._methods[c].check._schema),r=a.filter(function(e){return!e.includes(".")}),o=0;o<l.length;o++)t[r[o]]=l[o];e.label=7;case 7:return e.trys.push([7,8,,10]),this._methods[c].check.validate(t),[3,10];case 8:return n=e.sent(),console.error(new Date,"Error in Cron Method Check ("+c+")",n),[4,this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Match Error On Cron Method "+c+"\n\nData Being Checked\n"+JSON.stringify(t,null,2)+"\n\nErrors\n"+JSON.stringify(n,null,2))];case 9:throw e.sent(),n.message="".concat((new Date).toISOString()," - Error in Cron Method Check (").concat(c,"): ").concat(n.message),n;case 10:s=this._monitorManagerFunction.startMonitorFunction("Cron Method",c,"","",l),e.label=11;case 11:return e.trys.push([11,13,15,17]),[4,(a=this._methods[c].function).call.apply(a,__spreadArray([Object.assign({},this,MethodManager.prototype,{id_user:"",user:"",id_ws:""})],__read(l),!1))];case 12:return[2,e.sent()];case 13:return i=e.sent(),[4,this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Error Detected During Cron Method "+c+" - (callMethodCron)\n\nData \n"+JSON.stringify(l,null,2)+"\n\nErrors\n"+JSON.stringify(i,null,2))];case 14:throw e.sent(),i.message="".concat((new Date).toISOString()," - Error in Cron Method (").concat(c,"): ").concat(i.message),i;case 15:return[4,this._monitorManagerFunction.finishMonitorFunction(s)];case 16:return e.sent(),[7];case 17:return[2]}})})},MethodManager.prototype.callMethod=function(a){for(var c=[],e=1;e<arguments.length;e++)c[e-1]=arguments[e];return __awaiter(this,void 0,void 0,function(){var o,n,t,r,s,i=this;return __generator(this,function(e){switch(e.label){case 0:if(this._debugcallMethodHits+=1,!this._methods[a])throw console.log("No Method: "+a),new Error("No Method: ".concat(a));if((1<c.length||c[0]&&"function"!=typeof c[0])&&!this._methods[a].skipValidation){if(!this._methods[a].check)throw console.error(new Date,"No Check Function For Method "+a),new Error("No Check Function For Method: ".concat(a));if(!this._methods[a].check._schema)throw console.error(new Date,"No Check Schema For Method "+a),new Error("No Check Schema For Method: ".concat(a))}return"insertSubscriptionLog"===a||"getDataURIfromURL"===a||"processAirdropDistribution"===a||"incCounter"===a||"supportCreateBillingUser"===a||"countCollectionWithQuery"===a?[3,4]:"https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL?[3,1]:(resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),createdAt:new Date,type:"callMethod",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([c]))<2e5?JSON.stringify([c],null,2):"Too Big",method:a,id_user:this.id_user||"",user:this.user||"",messageId:0,route:""}}),[3,3]);case 1:return[4,log_collection_1.Logs.insertOne({_id:(0,common_1.objectIdHexString)(),type:"callMethod",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([c]))<2e5?JSON.stringify([c],null,2):"Too Big",method:a,id_user:this.id_user||"",user:this.user||"",messageId:0,route:"",client:"ResolveIO",instance:"backend.resolveio.com",instance_index:process.env.NODE_APP_INSTANCE||""})];case 2:e.sent(),e.label=3;case 3:e.label=4;case 4:return(o="function"==typeof c[c.length-1]?c.slice(0,-1):c,resolveio_server_app_1.ResolveIOServer.getMongoManager().getSession())?[3,5]:(n=null,[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().oneTimeTransaction(function(){return __awaiter(i,void 0,void 0,function(){var t,r;return __generator(this,function(e){switch(e.label){case 0:n=this._monitorManagerFunction.startMonitorFunction("Method",a,this.user||"","",o),e.label=1;case 1:return e.trys.push([1,3,7,9]),[4,(r=this._methods[a].function).call.apply(r,__spreadArray([Object.assign({},this,MethodManager.prototype)],__read(o),!1))];case 2:return r=e.sent(),c[c.length-1]&&"function"==typeof c[c.length-1]&&c[c.length-1](null,r),[2,r];case 3:return t=e.sent(),[4,this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Error Detected During Method "+a+" - (callMethod)\n\nData \n"+JSON.stringify(c,null,2)+"\n\nErrors\n"+JSON.stringify(t,null,2))];case 4:return e.sent(),t.message="".concat((new Date).toISOString()," - Error in Method With Session (").concat(a,") - New Session: ").concat(t.message),c[c.length-1]&&"function"==typeof c[c.length-1]&&c[c.length-1](t,null),process.env.IS_WORKER_INSTANCE?[3,6]:[4,this.callMethod("insertErrorLog","Error in Method: ".concat(a," - ").concat(JSON.stringify(c,null,2)))];case 5:e.sent(),e.label=6;case 6:return[3,9];case 7:return[4,this._monitorManagerFunction.finishMonitorFunction(n)];case 8:return e.sent(),[7];case 9:return[2]}})})})]);case 5:t=this._monitorManagerFunction.startMonitorFunction("Method",a,this.user||"","",o),e.label=6;case 6:return e.trys.push([6,8,12,14]),[4,(s=this._methods[a].function).call.apply(s,__spreadArray([Object.assign({},this,MethodManager.prototype)],__read(o),!1))];case 7:return s=e.sent(),c[c.length-1]&&"function"==typeof c[c.length-1]&&c[c.length-1](null,s),[2,s];case 8:return r=e.sent(),[4,this.sendEmail("dev@resolveio.com","SERVER - Error Detected - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,"Error Detected During Method "+a+" - (callMethod)\n\nData \n"+JSON.stringify(c,null,2)+"\n\nErrors\n"+JSON.stringify(r,null,2))];case 9:return e.sent(),r.message="".concat((new Date).toISOString()," - Error in Method (").concat(a,") - Existing Session: ").concat(r.message),c[c.length-1]&&"function"==typeof c[c.length-1]&&c[c.length-1](r,null),process.env.IS_WORKER_INSTANCE?[3,11]:[4,this.callMethod("insertErrorLog","Error in Method: ".concat(a," - ").concat(JSON.stringify(c,null,2)))];case 10:e.sent(),e.label=11;case 11:return[3,14];case 12:return[4,this._monitorManagerFunction.finishMonitorFunction(t)];case 13:return e.sent(),[7];case 14:return[2]}})})},MethodManager.prototype.setupEmailWatcher=function(){return __awaiter(this,void 0,void 0,function(){var r,o=this;return __generator(this,function(e){switch(e.label){case 0:return(r=email_history_collection_1.EmailHistories.watchCollection([])).on("change",function(r){return __awaiter(o,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return"insert"===r.operationType&&r.fullDocument&&"pending"===r.fullDocument.status?(this.emailQueue.add(r.fullDocument._id.toString()),[4,this.tryProcessEmail()]):[3,2];case 1:return e.sent(),[3,3];case 2:"update"!==r.operationType&&"replace"!==r.operationType||(t=r.fullDocument)&&"pending"!==t.status&&this.emailQueue.has(t._id.toString())&&this.emailQueue.delete(t._id.toString()),e.label=3;case 3:return[2]}})})}).on("error",function(t){return __awaiter(o,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return console.error("Email history changestream error",t),[4,r.close()];case 1:return e.sent(),[2]}})})}).on("close",function(){return __awaiter(o,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.setupEmailWatcher()];case 1:return e.sent(),[2]}})})}),[4,this.loadPendingEmails()];case 1:return e.sent(),[2]}})})},MethodManager.prototype.loadPendingEmails=function(){return __awaiter(this,void 0,void 0,function(){var t,r,o,n,s,i;return __generator(this,function(e){switch(e.label){case 0:return[4,email_history_collection_1.EmailHistories.find({status:"pending"},{sort:{_id:1}})];case 1:t=e.sent();try{for(r=__values(t),o=r.next();!o.done;o=r.next())n=o.value,this.emailQueue.add(n._id.toString())}catch(e){s={error:e}}finally{try{o&&!o.done&&(i=r.return)&&i.call(r)}finally{if(s)throw s.error}}return[4,this.tryProcessEmail()];case 2:return e.sent(),[2]}})})},MethodManager.prototype.tryProcessEmail=function(){return __awaiter(this,void 0,void 0,function(){var t,u,r,h=this;return __generator(this,function(e){switch(e.label){case 0:if(this.isEmailProcessing||0===this.emailQueue.size)return[2];this.isEmailProcessing=!0,e.label=1;case 1:e.trys.push([1,5,6,9]),t=function(){var o,t,r,n,s,i,a,c,l;return __generator(this,function(e){switch(e.label){case 0:return s=u.emailQueue.values().next().value,u.emailQueue.delete(s),[4,email_history_collection_1.EmailHistories.findOneAndUpdate({_id:s,status:"pending"},{$set:{status:"processing",processingAt:new Date}})];case 1:if(!(o=e.sent()))return[2,"continue"];if(!(o.attachments&&0<o.attachments.length))return[3,14];e.label=2;case 2:e.trys.push([2,12,,14]),e.label=3;case 3:e.trys.push([3,9,10,11]),c=void 0,t=__values(o.attachments),r=t.next(),e.label=4;case 4:return r.done?[3,8]:(n=r.value).path&&n.path.startsWith("http")?[4,fetch(n.path)]:[3,7];case 5:if((s=e.sent()).ok)return[4,s.arrayBuffer()];throw new Error("Failed to fetch attachment: ".concat(n.path));case 6:i=e.sent(),i=Buffer.from(i),i.length<=20971520&&(n.content=i,delete n.path),e.label=7;case 7:return r=t.next(),[3,4];case 8:return[3,11];case 9:return i=e.sent(),c={error:i},[3,11];case 10:try{r&&!r.done&&(l=t.return)&&l.call(t)}finally{if(c)throw c.error}return[7];case 11:return[3,14];case 12:return a=e.sent(),console.error("Failed to fetch attachment:",a),[4,email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"failed",error:"string"==typeof a?a:u.safeStringify(a),completedAt:new Date}})];case 13:return e.sent(),[2,"continue"];case 14:return(a={replyTo:o.reply_to||resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_REPLY_TO||void 0,from:o.send_from||resolveio_server_app_1.ResolveIOServer.getServerConfig().MAIL_FROM,to:o.email,subject:(resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/dev\./)||resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/www\.dev\./)?"(DEV SERVER) - ":"")+o.subject,text:"string"==typeof o.text?o.text:"",html:"string"==typeof o.html?o.html:"",attachments:o.attachments||[]}).attachments&&0<a.attachments.length&&(a.attachments=a.attachments.map(function(e){e=__assign({},e);return!e.content||"object"!=typeof e.content||e.content instanceof Buffer?"string"==typeof e.content&&"base64"===e.encoding?(e.content=Buffer.from(e.content,"base64"),delete e.encoding):"string"==typeof e.content&&(e.content=Buffer.from(e.content)):"Binary"===e.content._bsontype&&0===e.content.sub_type?e.content=Buffer.from(e.content.buffer):e.content=Buffer.from(e.content),e})),u._mailer.sendMail(a,function(r){return __awaiter(h,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return(e.trys.push([0,7,,9]),r)?(console.error("Failed to send email:",r),[4,email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"failed",error:"string"==typeof r?r:this.safeStringify(r),completedAt:new Date}})]):[3,2];case 1:return e.sent(),[3,6];case 2:return"dev@resolveio.com"!==o.email?[3,4]:[4,email_history_collection_1.EmailHistories.deleteOne({_id:o._id})];case 3:return e.sent(),[3,6];case 4:return[4,email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"completed",completedAt:new Date}})];case 5:e.sent(),e.label=6;case 6:return[3,9];case 7:return t=e.sent(),console.error("Error in sendMail callback:",t),[4,email_history_collection_1.EmailHistories.updateOne({_id:o._id},{$set:{status:"failed",error:"string"==typeof t?t:this.safeStringify(t),completedAt:new Date}})];case 8:return e.sent(),[3,9];case 9:return[2]}})})}),[4,new Promise(function(e){return setTimeout(e,1e3)})];case 15:return e.sent(),[2]}})},u=this,e.label=2;case 2:return 0<this.emailQueue.size?[5,t()]:[3,4];case 3:return e.sent(),[3,2];case 4:return[3,9];case 5:return r=e.sent(),console.error("Error processing email queue:",r),[3,9];case 6:return(this.isEmailProcessing=!1,0<this.emailQueue.size)?[4,this.tryProcessEmail()]:[3,8];case 7:e.sent(),e.label=8;case 8:return[7];case 9:return[2]}})})},MethodManager.prototype.safeStringify=function(e){try{return JSON.stringify(e,this.getCircularReplacer())}catch(e){return"Error in JSON stringifying: ".concat(e.message)}},MethodManager.prototype.getCircularReplacer=function(){var r=new WeakSet;return function(e,t){if("object"==typeof t&&null!==t){if(r.has(t))return"[Circular]";r.add(t)}return t}},MethodManager.prototype.sendEmail=function(o,n,s,i,a,c,l,u){return void 0===u&&(u=!1),__awaiter(this,void 0,void 0,function(){var t,r;return __generator(this,function(e){switch(e.label){case 0:if(!(o=!resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/dev\./)&&!resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL.match(/https:\/\/www\.dev\./)&&"http://localhost:4200"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||o.match(/\@resolveio\.com/)?o:"dev@resolveio.com"))return[3,7];if("http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL&&!u)return[3,5];a=a||[],a=(a=Array.isArray(a)?a:[a]).map(function(e){e=__assign({},e);return Buffer.isBuffer(e.content)&&(e.content=e.content.toString("base64"),e.encoding="base64"),e}),t={_id:(0,common_1.objectIdHexString)(),__v:0,date:new Date,id_user:this.id_user||"",user:this.user||"",email:o,subject:n||"",text:s||"",html:i||"",attachments:a||[],send_from:c||"",reply_to:l||"",status:"pending",error:""},e.label=1;case 1:return e.trys.push([1,3,,4]),[4,email_history_collection_1.EmailHistories.insertOne(t)];case 2:return[2,e.sent()];case 3:throw r=e.sent(),console.error("Failed to queue email:",r),r.message="Failed to queue email: ".concat(r.message),r;case 4:return[3,6];case 5:return console.log("Send email",o,n,s,i,a,c),[2,!0];case 6:return[3,8];case 7:return[2,!0];case 8:return[2]}})})},MethodManager.prototype.getAWS=function(){return this._aws},MethodManager.prototype.readFile=function(e){fs.existsSync(path.join(__dirname,"../private/"+e))?fs.readFile(path.join(__dirname,"../private/"+e),"utf-8",function(e,t){if(e)throw e;return t}):fs.existsSync(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e))&&fs.readFile(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e),"utf-8",function(e,t){if(e)throw e;return t})},MethodManager.prototype.readImage=function(e){fs.existsSync(path.join(__dirname,"../private/"+e))?fs.readFile(path.join(__dirname,"../private/"+e),"base64",function(e,t){if(e)throw e;return t}):fs.existsSync(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e))&&fs.readFile(path.join(resolveio_server_app_1.ResolveIOServer.getClientDir(),"./private/"+e),"base64",function(e,t){if(e)throw e;return t})},MethodManager}());exports.MethodManager=MethodManager;
2
2
  //# sourceMappingURL=method.manager.js.map