@resolveio/server-lib 20.7.5 → 20.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client-server-app.js +1 -1
- package/client-server-app.js.map +1 -1
- package/collections/app-status.collection.js +1 -1
- package/collections/app-status.collection.js.map +1 -1
- package/collections/counter.collection.js +1 -1
- package/collections/counter.collection.js.map +1 -1
- package/collections/cron-job-history.collection.js +1 -1
- package/collections/cron-job-history.collection.js.map +1 -1
- package/collections/cron-job.collection.js +1 -1
- package/collections/cron-job.collection.js.map +1 -1
- package/collections/email-history.collection.js +1 -1
- package/collections/email-history.collection.js.map +1 -1
- package/collections/email-verified.collection.js +1 -1
- package/collections/email-verified.collection.js.map +1 -1
- package/collections/file.collection.js +1 -1
- package/collections/file.collection.js.map +1 -1
- package/collections/flag-update.collection.js +1 -1
- package/collections/flag-update.collection.js.map +1 -1
- package/collections/flag.collection.js +1 -1
- package/collections/flag.collection.js.map +1 -1
- package/collections/log-method-latency.collection.js +1 -1
- package/collections/log-method-latency.collection.js.map +1 -1
- package/collections/log-subscription.collection.js +1 -1
- package/collections/log-subscription.collection.js.map +1 -1
- package/collections/log.collection.js +1 -1
- package/collections/log.collection.js.map +1 -1
- package/collections/logged-in-users.collection.js +1 -1
- package/collections/logged-in-users.collection.js.map +1 -1
- package/collections/method-response.collection.js +1 -1
- package/collections/method-response.collection.js.map +1 -1
- package/collections/monitor-cpu.collection.js +1 -1
- package/collections/monitor-cpu.collection.js.map +1 -1
- package/collections/monitor-function.collection.js +1 -1
- package/collections/monitor-function.collection.js.map +1 -1
- package/collections/monitor-memory.collection.js +1 -1
- package/collections/monitor-memory.collection.js.map +1 -1
- package/collections/monitor-mongo.collection.js +1 -1
- package/collections/monitor-mongo.collection.js.map +1 -1
- package/collections/notification.collection.js +1 -1
- package/collections/notification.collection.js.map +1 -1
- package/collections/report-builder-dashboard-builder.collection.js +1 -1
- package/collections/report-builder-dashboard-builder.collection.js.map +1 -1
- package/collections/report-builder-library.collection.js +1 -1
- package/collections/report-builder-library.collection.js.map +1 -1
- package/collections/report-builder-report.collection.js +1 -1
- package/collections/report-builder-report.collection.js.map +1 -1
- package/collections/user-group.collection.js +1 -1
- package/collections/user-group.collection.js.map +1 -1
- package/collections/user-guide.collection.js +1 -1
- package/collections/user-guide.collection.js.map +1 -1
- package/collections/user.collection.js +1 -1
- package/collections/user.collection.js.map +1 -1
- package/fixtures/cron-jobs.js +1 -1
- package/fixtures/cron-jobs.js.map +1 -1
- package/fixtures/init.js +1 -1
- package/fixtures/init.js.map +1 -1
- package/http/auth.d.ts +2 -1
- package/http/auth.js +1 -1
- package/http/auth.js.map +1 -1
- package/http/home.js +1 -1
- package/http/home.js.map +1 -1
- package/managers/cron.manager.d.ts +3 -1
- package/managers/cron.manager.js +1 -1
- package/managers/cron.manager.js.map +1 -1
- package/managers/local-log.manager.d.ts +3 -1
- package/managers/local-log.manager.js +1 -1
- package/managers/local-log.manager.js.map +1 -1
- package/managers/method.manager.d.ts +12 -7
- package/managers/method.manager.js +1 -1
- package/managers/method.manager.js.map +1 -1
- package/managers/mongo.manager.d.ts +17 -12
- package/managers/mongo.manager.js +1 -1
- package/managers/mongo.manager.js.map +1 -1
- package/managers/monitor.manager.d.ts +15 -7
- package/managers/monitor.manager.js +1 -1
- package/managers/monitor.manager.js.map +1 -1
- package/managers/subscription.manager.d.ts +5 -3
- package/managers/subscription.manager.js +1 -1
- package/managers/subscription.manager.js.map +1 -1
- package/managers/websocket.manager.d.ts +3 -1
- package/managers/websocket.manager.js +1 -1
- package/managers/websocket.manager.js.map +1 -1
- package/methods/accounts.js +1 -1
- package/methods/accounts.js.map +1 -1
- package/methods/aws.js +1 -1
- package/methods/aws.js.map +1 -1
- package/methods/collections.js +1 -1
- package/methods/collections.js.map +1 -1
- package/methods/counters.js +1 -1
- package/methods/counters.js.map +1 -1
- package/methods/cron-jobs.js +1 -1
- package/methods/cron-jobs.js.map +1 -1
- package/methods/logs.js +1 -1
- package/methods/logs.js.map +1 -1
- package/methods/monitor.js +1 -1
- package/methods/monitor.js.map +1 -1
- package/methods/pdf.js +1 -1
- package/methods/pdf.js.map +1 -1
- package/methods/report-builder.js +1 -1
- package/methods/report-builder.js.map +1 -1
- package/methods/support.js +1 -1
- package/methods/support.js.map +1 -1
- package/models/method.model.d.ts +6 -1
- package/package.json +3 -2
- package/publications/logs.js +1 -1
- package/publications/logs.js.map +1 -1
- package/resolveio-server-app.d.ts +14 -10
- package/resolveio-server-app.js +1 -1
- package/resolveio-server-app.js.map +1 -1
- package/server-app.d.ts +5 -4
- package/server-app.js +1 -1
- package/server-app.js.map +1 -1
package/fixtures/cron-jobs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(e,
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,t,o,c){return new(o=o||Promise)(function(r,n){function fulfilled(e){try{step(c.next(e))}catch(e){n(e)}}function rejected(e){try{step(c.throw(e))}catch(e){n(e)}}function step(e){var n;e.done?r(e.value):((n=e.value)instanceof o?n:new o(function(e){e(n)})).then(fulfilled,rejected)}step((c=c.apply(e,t||[])).next())})},__generator=this&&this.__generator||function(t,o){var c,a,i,l={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},u={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function verb(r){return function(e){var n=[r,e];if(c)throw new TypeError("Generator is already executing.");for(;l=u&&n[u=0]?0:l;)try{if(c=1,a&&(i=2&n[0]?a.return:n[0]?a.throw||((i=a.return)&&i.call(a),0):a.next)&&!(i=i.call(a,n[1])).done)return i;switch(a=0,(n=i?[2&n[0],i.value]:n)[0]){case 0:case 1:i=n;break;case 4:return l.label++,{value:n[1],done:!1};case 5:l.label++,a=n[1],n=[0];continue;case 7:n=l.ops.pop(),l.trys.pop();continue;default:if(!(i=0<(i=l.trys).length&&i[i.length-1])&&(6===n[0]||2===n[0])){l=0;continue}if(3===n[0]&&(!i||n[1]>i[0]&&n[1]<i[3]))l.label=n[1];else if(6===n[0]&&l.label<i[1])l.label=i[1],i=n;else{if(!(i&&l.label<i[2])){i[2]&&l.ops.pop(),l.trys.pop();continue}l.label=i[2],l.ops.push(n)}}n=o.call(t,l)}catch(e){n=[6,e],a=0}finally{c=i=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}}},cron_job_collection_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadServerCronJobs=void 0,require("../collections/cron-job.collection")),common_1=require("../util/common");function loadServerCronJobs(){return __awaiter(this,void 0,void 0,function(){var n;return __generator(this,function(e){switch(e.label){case 0:return[4,cron_job_collection_1.CronJobs.find({})];case 1:return(n=e.sent()).some(function(e){return"Email Merged Docs Cleanup"===e.name})?[3,3]:[4,cron_job_collection_1.CronJobs.create({_id:(0,common_1.objectIdHexString)(),__v:0,name:"Email Merged Docs Cleanup",repeat:!0,time_to_run:"0 0 * * *",method_run:"cronEmailMergedDocsCleanUp",method_run_data:null,next_run:new Date,running:!1,timezone:process.env.TZ_CLIENT||"America/Chicago"})];case 2:e.sent(),e.label=3;case 3:return n.some(function(e){return"Stuck Cron Job"===e.name})?[3,5]:[4,cron_job_collection_1.CronJobs.create({_id:(0,common_1.objectIdHexString)(),__v:0,name:"Stuck Cron Job",repeat:!0,time_to_run:"*/5 * * * *",method_run:"stuckCronJob",method_run_data:null,next_run:new Date,running:!1,timezone:process.env.TZ_CLIENT||"America/Chicago"})];case 4:e.sent(),e.label=5;case 5:return n.some(function(e){return e.running})?[4,cron_job_collection_1.CronJobs.updateMany({running:!0},{$set:{running:!1}})]:[3,7];case 6:e.sent(),e.label=7;case 7:return[2]}})})}exports.loadServerCronJobs=loadServerCronJobs;
|
|
2
2
|
//# sourceMappingURL=cron-jobs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/fixtures/cron-jobs.ts"],"names":["cron_job_collection_1","require","common_1","loadServerCronJobs","CronJobs","find","cronJobs","_a","sent","some","a","name","create","_id","objectIdHexString","__v","repeat","time_to_run","method_run","method_run_data","next_run","Date","running","timezone","process","env","TZ_CLIENT","updateMany","$set","exports"],"mappings":"k8CAAAA,uB,yFAAAC,QAAA,oCAAA,GACAC,SAAAD,QAAA,gBAAA,EAEA,SAAsBE,qB,gHAEN,MAAA,CAAA,EAAMH,sBAAAI,SAASC,KAAK,EAAE,G,cAAjCC,EAAWC,EAAAC,KAAA,GAEDC,KAAK,SAAAC,GAAK,MAAW,8BAAXA,EAAEC,IAAF,CAAsC,
|
|
1
|
+
{"version":3,"sources":["../../src/fixtures/cron-jobs.ts"],"names":["cron_job_collection_1","require","common_1","loadServerCronJobs","CronJobs","find","cronJobs","_a","sent","some","a","name","create","_id","objectIdHexString","__v","repeat","time_to_run","method_run","method_run_data","next_run","Date","running","timezone","process","env","TZ_CLIENT","updateMany","$set","exports"],"mappings":"k8CAAAA,uB,yFAAAC,QAAA,oCAAA,GACAC,SAAAD,QAAA,gBAAA,EAEA,SAAsBE,qB,gHAEN,MAAA,CAAA,EAAMH,sBAAAI,SAASC,KAAK,EAAE,G,cAAjCC,EAAWC,EAAAC,KAAA,GAEDC,KAAK,SAAAC,GAAK,MAAW,8BAAXA,EAAEC,IAAF,CAAsC,EAA1D,CAAA,EAAA,GACH,CAAA,EAAMX,sBAAAI,SAASQ,OAAO,CACrBC,KAAK,EAAAX,SAAAY,mBAAiB,EACtBC,IAAK,EACLJ,KAAO,4BACPK,OAAS,CAAA,EACTC,YAAc,YACdC,WAAa,6BACbC,gBAAkB,KAClBC,SAAW,IAAIC,KACfC,QAAU,CAAA,EACVC,SAAUC,QAAQC,IAAIC,WAAa,iB,CACnC,G,OAXDnB,EAAAC,KAAA,E,wBAcIF,EAASG,KAAK,SAAAC,GAAK,MAAW,mBAAXA,EAAEC,IAAF,CAA2B,EAA/C,CAAA,EAAA,GACH,CAAA,EAAMX,sBAAAI,SAASQ,OAAO,CACrBC,KAAK,EAAAX,SAAAY,mBAAiB,EACtBC,IAAK,EACLJ,KAAO,iBACPK,OAAS,CAAA,EACTC,YAAc,cACdC,WAAa,eACbC,gBAAkB,KAClBC,SAAW,IAAIC,KACfC,QAAU,CAAA,EACVC,SAAUC,QAAQC,IAAIC,WAAa,iB,CACnC,G,OAXDnB,EAAAC,KAAA,E,wBAcGF,EAASG,KAAK,SAAAC,GAAK,OAAAA,EAAEY,OAAF,CAAS,EAC/B,CAAA,EAAMtB,sBAAAI,SAASuB,WAAW,CAACL,QAAS,CAAA,CAAI,EAAG,CAACM,KAAM,CAACN,QAAS,CAAA,CAAK,CAAC,CAAC,GADhE,CAAA,EAAA,G,OACHf,EAAAC,KAAA,E,gCAnCFqB,QAAA1B,mBAAAA","file":"cron-jobs.js","sourcesContent":["import { CronJobs } from '../collections/cron-job.collection';\nimport { objectIdHexString } from '../util/common';\n\nexport async function loadServerCronJobs() {\n\t\n\tlet cronJobs = await CronJobs.find({});\n\n\tif (!cronJobs.some(a => a.name === 'Email Merged Docs Cleanup')) {\n\t\tawait CronJobs.create({\n\t\t\t_id: objectIdHexString(),\n\t\t\t__v: 0,\n\t\t\tname : 'Email Merged Docs Cleanup', \n\t\t\trepeat : true, \n\t\t\ttime_to_run : '0 0 * * *', \n\t\t\tmethod_run : 'cronEmailMergedDocsCleanUp', \n\t\t\tmethod_run_data : null, \n\t\t\tnext_run : new Date(), \n\t\t\trunning : false,\n\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t});\n\t}\n\n\tif (!cronJobs.some(a => a.name === 'Stuck Cron Job')) {\n\t\tawait CronJobs.create({\n\t\t\t_id: objectIdHexString(),\n\t\t\t__v: 0,\n\t\t\tname : 'Stuck Cron Job', \n\t\t\trepeat : true, \n\t\t\ttime_to_run : '*/5 * * * *', \n\t\t\tmethod_run : 'stuckCronJob', \n\t\t\tmethod_run_data : null, \n\t\t\tnext_run : new Date(), \n\t\t\trunning : false,\n\t\t\ttimezone: process.env.TZ_CLIENT || 'America/Chicago'\n\t\t});\n\t}\n\n\tif (cronJobs.some(a => a.running)) {\n\t\tawait CronJobs.updateMany({running: true}, {$set: {running: false}});\n\t}\n}"]}
|
package/fixtures/init.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(e,n,l,o){return new(l=l||Promise)(function(r,t){function fulfilled(e){try{step(o.next(e))}catch(e){t(e)}}function rejected(e){try{step(o.throw(e))}catch(e){t(e)}}function step(e){var t;e.done?r(e.value):((t=e.value)instanceof l?t:new l(function(e){e(t)})).then(fulfilled,rejected)}step((o=o.apply(e,n||[])).next())})},__generator=this&&this.__generator||function(n,l){var o,i,
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,n,l,o){return new(l=l||Promise)(function(r,t){function fulfilled(e){try{step(o.next(e))}catch(e){t(e)}}function rejected(e){try{step(o.throw(e))}catch(e){t(e)}}function step(e){var t;e.done?r(e.value):((t=e.value)instanceof l?t:new l(function(e){e(t)})).then(fulfilled,rejected)}step((o=o.apply(e,n||[])).next())})},__generator=this&&this.__generator||function(n,l){var o,a,i,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},c={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function verb(r){return function(e){var t=[r,e];if(o)throw new TypeError("Generator is already executing.");for(;s=c&&t[c=0]?0:s;)try{if(o=1,a&&(i=2&t[0]?a.return:t[0]?a.throw||((i=a.return)&&i.call(a),0):a.next)&&!(i=i.call(a,t[1])).done)return i;switch(a=0,(t=i?[2&t[0],i.value]:t)[0]){case 0:case 1:i=t;break;case 4:return s.label++,{value:t[1],done:!1};case 5:s.label++,a=t[1],t=[0];continue;case 7:t=s.ops.pop(),s.trys.pop();continue;default:if(!(i=0<(i=s.trys).length&&i[i.length-1])&&(6===t[0]||2===t[0])){s=0;continue}if(3===t[0]&&(!i||t[1]>i[0]&&t[1]<i[3]))s.label=t[1];else if(6===t[0]&&s.label<i[1])s.label=i[1],i=t;else{if(!(i&&s.label<i[2])){i[2]&&s.ops.pop(),s.trys.pop();continue}s.label=i[2],s.ops.push(t)}}t=l.call(n,s)}catch(e){t=[6,e],a=0}finally{o=i=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}},email_history_collection_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadServerInit=void 0,require("../collections/email-history.collection")),flag_collection_1=require("../collections/flag.collection"),resolveio_server_app_1=require("../resolveio-server-app");function loadServerInit(){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,email_history_collection_1.EmailHistories.updateMany({status:"processing"},{$set:{status:"pending"}})];case 1:return e.sent(),[4,flag_collection_1.Flags.findOne({type:"Enable Debug"})];case 2:return e.sent()?[3,4]:[4,flag_collection_1.Flags.insertOne({type:"Enable Debug",value:!1})];case 3:e.sent(),e.label=4;case 4:return[4,flag_collection_1.Flags.findOne({type:"Enable Debug PDF"})];case 5:return(t=e.sent())?[3,7]:[4,flag_collection_1.Flags.insertOne({type:"Enable Debug PDF",value:!1})];case 6:return e.sent(),[3,9];case 7:return t.value&&"http://localhost:4200"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL?[4,flag_collection_1.Flags.updateOne({_id:t._id},{$set:{value:!1}})]:[3,9];case 8:e.sent(),e.label=9;case 9:return[2]}})})}exports.loadServerInit=loadServerInit;
|
|
2
2
|
//# sourceMappingURL=init.js.map
|
package/fixtures/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/fixtures/init.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../src/fixtures/init.ts"],"names":["email_history_collection_1","require","flag_collection_1","resolveio_server_app_1","loadServerInit","EmailHistories","updateMany","status","$set","_a","sent","Flags","findOne","type","insertOne","value","enableDebugFlagPDF","ResolveIOServer","getServerConfig","updateOne","_id","exports"],"mappings":"k8CAAAA,4B,qFAAAC,QAAA,yCAAA,GACAC,kBAAAD,QAAA,gCAAA,EACAE,uBAAAF,QAAA,yBAAA,EAEA,SAAsBG,iB,gHACrB,MAAA,CAAA,EAAMJ,2BAAAK,eAAeC,WAAW,CAACC,OAAQ,YAAY,EAAG,CAACC,KAAM,CAACD,OAAQ,SAAS,CAAC,CAAC,G,OAE7D,OAFtBE,EAAAC,KAAA,EAEsB,CAAA,EAAMR,kBAAAS,MAAMC,QAAQ,CAACC,KAAM,cAAc,CAAC,G,cAA1CJ,EAAAC,KAAA,EAElB,CAAA,EAAA,GACH,CAAA,EAAMR,kBAAAS,MAAMG,UAAU,CAACD,KAAM,eAAgBE,MAAO,CAAA,CAAK,CAAC,G,OAA1DN,EAAAC,KAAA,E,iBAGwB,MAAA,CAAA,EAAMR,kBAAAS,MAAMC,QAAQ,CAACC,KAAM,kBAAkB,CAAC,G,cAAnEG,EAAqBP,EAAAC,KAAA,GAErB,CAAA,EAAA,GACH,CAAA,EAAMR,kBAAAS,MAAMG,UAAU,CAACD,KAAM,mBAAoBE,MAAO,CAAA,CAAK,CAAC,G,cAA9DN,EAAAC,KAAA,E,oBAEQM,EAAmBD,OAA2D,0BAAlDZ,uBAAAc,gBAAgBC,gBAAe,EAAa,SAChF,CAAA,EAAMhB,kBAAAS,MAAMQ,UAAU,CAACC,IAAKJ,EAAmBI,GAAG,EAAG,CAACZ,KAAM,CAACO,MAAO,CAAA,CAAK,CAAC,CAAC,GADnE,CAAA,EAAA,G,OACRN,EAAAC,KAAA,E,gCAfFW,QAAAjB,eAAAA","file":"init.js","sourcesContent":["import { EmailHistories } from '../collections/email-history.collection';\nimport { Flags } from '../collections/flag.collection';\nimport { ResolveIOServer } from '../resolveio-server-app';\n\nexport async function loadServerInit() {\n\tawait EmailHistories.updateMany({status: 'processing'}, {$set: {status: 'pending'}});\n\n\tlet enableDebugFlag = await Flags.findOne({type: 'Enable Debug'});\n\n\tif (!enableDebugFlag) {\n\t\tawait Flags.insertOne({type: 'Enable Debug', value: false});\n\t}\n\n\tlet enableDebugFlagPDF = await Flags.findOne({type: 'Enable Debug PDF'});\n\n\tif (!enableDebugFlagPDF) {\n\t\tawait Flags.insertOne({type: 'Enable Debug PDF', value: false});\n\t}\n\telse if (enableDebugFlagPDF.value && ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200') {\n\t\tawait Flags.updateOne({_id: enableDebugFlagPDF._id}, {$set: {value: false}});\n\t}\n}"]}
|
package/http/auth.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { ResolveIOMainServer } from '../server-app';
|
|
2
|
+
export declare function setupAuthRoutes(mainServer: ResolveIOMainServer, app: any, serverConfig: any): void;
|
package/http/auth.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(e,s,t,o){return new(t=t||Promise)(function(n,r){function fulfilled(e){try{step(o.next(e))}catch(e){r(e)}}function rejected(e){try{step(o.throw(e))}catch(e){r(e)}}function step(e){var r;e.done?n(e.value):((r=e.value)instanceof t?r:new t(function(e){e(r)})).then(fulfilled,rejected)}step((o=o.apply(e,s||[])).next())})},__generator=this&&this.__generator||function(s,t){var o,i,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},d={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(d[Symbol.iterator]=function(){return this}),d;function verb(n){return function(e){var r=[n,e];if(o)throw new TypeError("Generator is already executing.");for(;l=d&&r[d=0]?0:l;)try{if(o=1,i&&(a=2&r[0]?i.return:r[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,r[1])).done)return a;switch(i=0,(r=a?[2&r[0],a.value]:r)[0]){case 0:case 1:a=r;break;case 4:return l.label++,{value:r[1],done:!1};case 5:l.label++,i=r[1],r=[0];continue;case 7:r=l.ops.pop(),l.trys.pop();continue;default:if(!(a=0<(a=l.trys).length&&a[a.length-1])&&(6===r[0]||2===r[0])){l=0;continue}if(3===r[0]&&(!a||r[1]>a[0]&&r[1]<a[3]))l.label=r[1];else if(6===r[0]&&l.label<a[1])l.label=a[1],a=r;else{if(!(a&&l.label<a[2])){a[2]&&l.ops.pop(),l.trys.pop();continue}l.label=a[2],l.ops.push(r)}}r=t.call(s,l)}catch(e){r=[6,e],i=0}finally{o=a=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}}},user_collection_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.setupAuthRoutes=void 0,require("../collections/user.collection")),jwt=require("jsonwebtoken"),handlebars=require("handlebars"),resolveio_server_app_1=require("../resolveio-server-app"),simpl_schema_1=require("simpl-schema"),bodyParser=require("body-parser"),jwt_decode_1=require("jwt-decode"),common_1=require("../util/common");function setupAuthRoutes(d,e,u){var r=this;e.post("/login365",bodyParser.json(),function(i,a){return __awaiter(r,void 0,void 0,function(){var r,n,s,t,o;return __generator(this,function(e){switch(e.label){case 0:return i.headers.origin===u.ROOT_URL||i.headers.origin===u.SEC_ROOT_URL?[3,1]:(a.send(JSON.stringify({error:!0,result:"Invalid header"})),[3,11]);case 1:n=i.body,r=new simpl_schema_1.default({id_token:{type:String}});try{r.validate(n)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/login)",e),resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /login365\n\nData Being Checked\n"+JSON.stringify(n,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),a.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2]}return(r=n.id_token.split("&"),n=r[0].split("=")[1],(s=(0,jwt_decode_1.default)(n))&&s.name&&s.preferred_username&&s.oid)?[4,user_collection_1.Users.findOne({"other.ms_oid":s.oid})]:[3,10];case 2:return(t=e.sent())?[3,5]:[4,user_collection_1.Users.findOne({email:s.preferred_username.toLowerCase()})];case 3:return(t=e.sent())?[4,user_collection_1.Users.updateOne({_id:t._id},{$set:{"other.ms_oid":s.oid}})]:[3,5];case 4:e.sent(),e.label=5;case 5:return t?[3,7]:(t={_id:(0,common_1.objectIdHexString)(),__v:0,roles:{super_admin:!1,approvals:[],groups:[],notifications:[],miscs:[]},username:s.preferred_username.toLowerCase(),email:s.preferred_username.toLowerCase(),fullname:s.name,active:!0,phonenumber:"",readonly:!1,other:{ms_oid:s.oid},attempts:0,salt:jwt.sign({now:(Date.now()-1e3).toString()},u.JWT_SECRET,{expiresIn:7776e6}),hash:jwt.sign({now:(Date.now()+1e3).toString()},u.JWT_SECRET,{expiresIn:7776e6}),last:new Date,settings:null,services:null,is_customer:!1},[4,user_collection_1.Users.create(t)]);case 6:return e.sent(),[3,9];case 7:return(o=!1,t.email!==s.preferred_username.toLowerCase()&&(t.email=s.preferred_username.toLowerCase(),o=!0),t.fullname!==s.name&&(t.fullname=s.name,o=!0),o)?[4,user_collection_1.Users.updateOne({_id:t._id},{$set:{email:t.email,fullname:t.fullname}})]:[3,9];case 8:e.sent(),e.label=9;case 9:return a.send(JSON.stringify({error:!1,result:{token:jwt.sign({id_user:t._id},u.JWT_SECRET,{expiresIn:7776e6})}})),[3,11];case 10:console.log("ERROR - 1",r,n,s),a.send(JSON.stringify({error:!0,result:"Invalid Azure Token"})),e.label=11;case 11:return[2]}})})}),e.post("/login",bodyParser.json(),function(a,l){return __awaiter(r,void 0,void 0,function(){var r,n,s,t,o,i;return __generator(this,function(e){switch(e.label){case 0:return a.headers.origin===u.ROOT_URL||a.headers.origin===u.SEC_ROOT_URL?[3,1]:(l.send(JSON.stringify({error:!0,result:"Invalid header"})),[3,8]);case 1:r=a.body,n=new simpl_schema_1.default({username:{type:String},password:{type:String}});try{n.validate(r)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/login)",e),resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /login\n\nData Being Checked\n"+JSON.stringify(r,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),l.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2]}return[4,user_collection_1.Users.findOne({active:!0,username:r.username})];case 2:return(s=e.sent())?[3,4]:[4,user_collection_1.Users.findOne({active:!0,email:r.username})];case 3:s=e.sent(),e.label=4;case 4:return s?[4,user_collection_1.Users.authenticate(s,r.password)]:(l.send(JSON.stringify({error:!0,result:"Invalid Username And Password"})),[2]);case 5:return(t=e.sent()).error?("Too Many Attempts"===t.error?(l.send(JSON.stringify({error:!0,result:t.error+". A password reset link has been sent to your email, please reset your password."})),s.services||(s.services={}),s.services.forgot_password=jwt.sign({id_user:s._id},u.JWT_SECRET),o={userToChangePassword:s.fullname,userWhoResetPassword:resolveio_server_app_1.ResolveIOServer.getClientName()+" System",url:u.ROOT_URL+"/forgot-password?"+encodeURIComponent(u.SERVER_URL)+"&"+s.services.forgot_password},user_collection_1.Users.updateOne({_id:s._id},{$set:{services:s.services}}).then(function(e){d.getMethodManager().readFile("email-templates/forgot-password.html").then(function(e){e=handlebars.compile(e);handlebars.registerHelper("equals",function(e,r){return e===r}),d.getMethodManager().sendEmail(s.email,"ResolveIO ("+resolveio_server_app_1.ResolveIOServer.getClientName()+") - Forgot Password","",e(o),null,null,"")},function(e){return console.log(e)})},function(e){})):"No Salt Value Stored"===t.error?(l.send(JSON.stringify({error:!0,result:"A password reset link has been sent to your email, please reset your password."})),s.services||(s.services={}),s.services.forgot_password=jwt.sign({id_user:s._id},u.JWT_SECRET),i={userToChangePassword:s.fullname,userWhoResetPassword:resolveio_server_app_1.ResolveIOServer.getClientName()+" System",url:u.ROOT_URL+"/forgot-password?"+encodeURIComponent(u.SERVER_URL)+"&"+s.services.forgot_password},user_collection_1.Users.updateOne({_id:s._id},{$set:{services:s.services}}).then(function(e){d.getMethodManager().readFile("email-templates/forgot-password.html").then(function(e){e=handlebars.compile(e);handlebars.registerHelper("equals",function(e,r){return e===r}),d.getMethodManager().sendEmail(s.email,"ResolveIO ("+resolveio_server_app_1.ResolveIOServer.getClientName()+") - Forgot Password","",e(i),null,null,"")},function(e){return console.log(e)})},function(e){})):l.send(JSON.stringify({error:!0,result:t.error})),[3,8]):[3,6];case 6:return t&&t.data&&t.data.active?[4,user_collection_1.Users.resetAttempts(t.data)]:[3,8];case 7:e.sent(),l.send(JSON.stringify({error:!1,result:{token:jwt.sign({id_user:t.data._id},u.JWT_SECRET,{expiresIn:7776e6})}})),e.label=8;case 8:return[2]}})})}),e.post("/accessToken",bodyParser.json(),function(t,o){return __awaiter(this,void 0,void 0,function(){var r,n,s=this;return __generator(this,function(e){if(t.headers.origin!==u.ROOT_URL&&t.headers.origin!==u.SEC_ROOT_URL&&t.headers.origin!==u.RESOLVEIO_URL&&t.headers.origin!==u.RESOLVEIO_SECONDARY_URL)o.send(JSON.stringify({error:!0,result:"Invalid header"}));else{r=t.body,n=new simpl_schema_1.default({refreshToken:{type:String}});try{n.validate(r)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/accessToken)",e),resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /accessToken\n\nData Being Checked\n"+JSON.stringify(r,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),o.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2]}jwt.verify(r.refreshToken,u.JWT_SECRET,function(e,r){e?o.send(JSON.stringify({error:!0,result:"Invalid Token"})):user_collection_1.Users.findById(r.id_user).then(function(r){return __awaiter(s,void 0,void 0,function(){return __generator(this,function(e){return r?r.active?o.send(JSON.stringify({error:!1,result:{token:jwt.sign({id_user:r._id},u.JWT_SECRET,{expiresIn:2592e5}),user:r}})):o.send(JSON.stringify({error:!0,result:"Account is Disabled"})):o.send(JSON.stringify({error:!0,result:"Invalid User"})),[2]})})},function(e){o.send(JSON.stringify({error:!0,result:"Invalid Mongo Get User"}))})})}return[2]})})}),e.post("/userWithEnrollmentToken",bodyParser.json(),function(e,n){if(e.headers.origin!==u.ROOT_URL&&e.headers.origin!==u.SEC_ROOT_URL&&e.headers.origin!==u.RESOLVEIO_URL&&e.headers.origin!==u.RESOLVEIO_SECONDARY_URL)n.send(JSON.stringify({error:!0,result:"Invalid header"}));else{var s=e.body,e=new simpl_schema_1.default({enrollmentToken:{type:String}});try{e.validate(s)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/userWithEnrollmentToken)",e),resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /userWithEnrollmentToken\n\nData Being Checked\n"+JSON.stringify(s,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),void n.send(JSON.stringify({error:!0,result:"Invalid Parameters"}))}jwt.verify(s.enrollmentToken,u.JWT_SECRET,function(e,r){e?n.send(JSON.stringify({error:!0,result:"Invalid Token"})):user_collection_1.Users.findOne({$and:[{_id:r.id_user},{"services.enrollment":s.enrollmentToken}]},{projection:{_id:1,__v:1,username:1,active:1}}).then(function(e){e?e.active?n.send(JSON.stringify({error:!1,result:{user:e}})):n.send(JSON.stringify({error:!0,result:"Account is Disabled"})):n.send(JSON.stringify({error:!0,result:"Invalid User"}))},function(e){n.send(JSON.stringify({error:!0,result:"Invalid Mongo Get User"}))})})}}),e.post("/setUserWithEnrollmentToken",bodyParser.json(),function(e,t){var n=this;if(e.headers.origin!==u.ROOT_URL&&e.headers.origin!==u.SEC_ROOT_URL&&e.headers.origin!==u.RESOLVEIO_URL&&e.headers.origin!==u.RESOLVEIO_SECONDARY_URL)t.send(JSON.stringify({error:!0,result:"Invalid header"}));else{var o=e.body,e=new simpl_schema_1.default({enrollmentToken:{type:String},password:{type:String}});try{e.validate(o)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/setUserWithEnrollmentToken)",e),resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /setUserWithEnrollmentToken\n\nData Being Checked\n"+JSON.stringify(o,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),void t.send(JSON.stringify({error:!0,result:"Invalid Parameters"}))}jwt.verify(o.enrollmentToken,u.JWT_SECRET,function(r,s){return __awaiter(n,void 0,void 0,function(){var n=this;return __generator(this,function(e){return r?t.send(JSON.stringify({error:!0,result:"Invalid Token"})):user_collection_1.Users.findOne({$and:[{_id:s.id_user},{"services.enrollment":o.enrollmentToken}]}).then(function(r){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?r.active?[4,user_collection_1.Users.setPassword(r,o.password)]:[3,2]:[3,4];case 1:return e.sent(),t.send(JSON.stringify({error:!1,result:!0})),[3,3];case 2:t.send(JSON.stringify({error:!0,result:"Account is Disabled"})),e.label=3;case 3:return[3,5];case 4:t.send(JSON.stringify({error:!0,result:"Invalid User"})),e.label=5;case 5:return[2]}})})},function(e){t.send(JSON.stringify({error:!0,result:"Invalid Mongo Get User"}))}),[2]})})})}}),e.post("/userWithForgotPasswordToken",bodyParser.json(),function(e,n){if(e.headers.origin!==u.ROOT_URL&&e.headers.origin!==u.SEC_ROOT_URL&&e.headers.origin!==u.RESOLVEIO_URL&&e.headers.origin!==u.RESOLVEIO_SECONDARY_URL)n.send(JSON.stringify({error:!0,result:"Invalid header"}));else{var s=e.body,e=new simpl_schema_1.default({forgotPasswordToken:{type:String}});try{e.validate(s)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/userWithForgotPasswordToken)",e),resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /userWithForgotPasswordToken\n\nData Being Checked\n"+JSON.stringify(s,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),void n.send(JSON.stringify({error:!0,result:"Invalid Parameters"}))}jwt.verify(s.forgotPasswordToken,u.JWT_SECRET,function(e,r){e?n.send(JSON.stringify({error:!0,result:"Invalid Token"})):user_collection_1.Users.findOne({$and:[{_id:r.id_user},{"services.forgot_password":s.forgotPasswordToken}]},{projection:{_id:1,__v:1,username:1,active:1}}).then(function(e){e?e.active?n.send(JSON.stringify({error:!1,result:{user:e}})):n.send(JSON.stringify({error:!0,result:"Account is Disabled"})):n.send(JSON.stringify({error:!0,result:"Invalid Token"}))},function(e){n.send(JSON.stringify({error:!0,result:"Invalid Mongo Get User"}))})})}}),e.post("/setUserWithForgotPasswordToken",bodyParser.json(),function(e,t){var n=this;if(e.headers.origin!==u.ROOT_URL&&e.headers.origin!==u.SEC_ROOT_URL&&e.headers.origin!==u.RESOLVEIO_URL&&e.headers.origin!==u.RESOLVEIO_SECONDARY_URL)t.send(JSON.stringify({error:!0,result:"Invalid header"}));else{var o=e.body,e=new simpl_schema_1.default({forgotPasswordToken:{type:String},password:{type:String}});try{e.validate(o)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/setUserWithForgotPasswordToken)",e),resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /setUserWithForgotPasswordToken\n\nData Being Checked\n"+JSON.stringify(o,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),void t.send(JSON.stringify({error:!0,result:"Invalid Parameters"}))}jwt.verify(o.forgotPasswordToken,u.JWT_SECRET,function(r,s){return __awaiter(n,void 0,void 0,function(){var n=this;return __generator(this,function(e){return r?t.send(JSON.stringify({error:!0,result:"Invalid Token"})):user_collection_1.Users.findOne({$and:[{_id:s.id_user},{"services.forgot_password":o.forgotPasswordToken}]}).then(function(r){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?r.active?[4,user_collection_1.Users.setPassword(r,o.password)]:[3,2]:[3,4];case 1:return e.sent(),t.send(JSON.stringify({error:!1,result:!0})),[3,3];case 2:t.send(JSON.stringify({error:!0,result:"Account is Disabled"})),e.label=3;case 3:return[3,5];case 4:t.send(JSON.stringify({error:!0,result:"Invalid User"})),e.label=5;case 5:return[2]}})})},function(e){t.send(JSON.stringify({error:!0,result:"Invalid Mongo Get User"}))}),[2]})})})}}),e.post("/resetPassword",bodyParser.json(),function(t,o){return __awaiter(r,void 0,void 0,function(){var r,n,s;return __generator(this,function(e){switch(e.label){case 0:return t.headers.origin===u.ROOT_URL||t.headers.origin===u.SEC_ROOT_URL?[3,1]:(o.send(JSON.stringify({error:!0,result:"Invalid header"})),[3,5]);case 1:r=t.body,n=new simpl_schema_1.default({username:{type:String}});try{n.validate(r)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/resetPassword)",e),resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /resetPassword\n\nData Being Checked\n"+JSON.stringify(r,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),o.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2]}return[4,user_collection_1.Users.findOne({active:!0,username:r.username})];case 2:return(s=e.sent())?[3,4]:[4,user_collection_1.Users.findOne({active:!0,email:r.username})];case 3:s=e.sent(),e.label=4;case 4:s&&d.getMethodManager().callMethod.call(d.getMethodManager(),"resetUserPassword",s._id),o.send(JSON.stringify({error:!1,result:""})),e.label=5;case 5:return[2]}})})})}exports.setupAuthRoutes=setupAuthRoutes;
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,n,t,o){return new(t=t||Promise)(function(s,r){function fulfilled(e){try{step(o.next(e))}catch(e){r(e)}}function rejected(e){try{step(o.throw(e))}catch(e){r(e)}}function step(e){var r;e.done?s(e.value):((r=e.value)instanceof t?r:new t(function(e){e(r)})).then(fulfilled,rejected)}step((o=o.apply(e,n||[])).next())})},__generator=this&&this.__generator||function(n,t){var o,a,i,l={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},u={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function verb(s){return function(e){var r=[s,e];if(o)throw new TypeError("Generator is already executing.");for(;l=u&&r[u=0]?0:l;)try{if(o=1,a&&(i=2&r[0]?a.return:r[0]?a.throw||((i=a.return)&&i.call(a),0):a.next)&&!(i=i.call(a,r[1])).done)return i;switch(a=0,(r=i?[2&r[0],i.value]:r)[0]){case 0:case 1:i=r;break;case 4:return l.label++,{value:r[1],done:!1};case 5:l.label++,a=r[1],r=[0];continue;case 7:r=l.ops.pop(),l.trys.pop();continue;default:if(!(i=0<(i=l.trys).length&&i[i.length-1])&&(6===r[0]||2===r[0])){l=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]<i[3]))l.label=r[1];else if(6===r[0]&&l.label<i[1])l.label=i[1],i=r;else{if(!(i&&l.label<i[2])){i[2]&&l.ops.pop(),l.trys.pop();continue}l.label=i[2],l.ops.push(r)}}r=t.call(n,l)}catch(e){r=[6,e],a=0}finally{o=i=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}}},bodyParser=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.setupAuthRoutes=void 0,require("body-parser")),handlebars=require("handlebars"),jwt=require("jsonwebtoken"),jwt_decode_1=require("jwt-decode"),simpl_schema_1=require("simpl-schema"),user_collection_1=require("../collections/user.collection"),resolveio_server_app_1=require("../resolveio-server-app"),common_1=require("../util/common");function setupAuthRoutes(d,e,_){var r=this;e.post("/login365",bodyParser.json(),function(l,u){return __awaiter(r,void 0,void 0,function(){var r,s,n,t,o,a,i;return __generator(this,function(e){switch(e.label){case 0:return l.headers.origin===_.ROOT_URL||l.headers.origin===_.SEC_ROOT_URL?[3,1]:(u.send(JSON.stringify({error:!0,result:"Invalid header"})),[3,16]);case 1:r=l.body,s=new simpl_schema_1.default({id_token:{type:String}}),e.label=2;case 2:return e.trys.push([2,3,,6]),s.validate(r),[3,6];case 3:return(i=e.sent())?(console.error(new Date,"Error in HTTP Check (/login)",i),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /login365\n\nData Being Checked\n"+JSON.stringify(r,null,2)+"\n\nErrors\n"+JSON.stringify(i,null,2))]):[3,5];case 4:return e.sent(),u.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2];case 5:return[3,6];case 6:return(n=r.id_token.split("&"),t=n[0].split("=")[1],(o=(0,jwt_decode_1.default)(t))&&o.name&&o.preferred_username&&o.oid)?[4,user_collection_1.Users.findOne({"other.ms_oid":o.oid})]:[3,15];case 7:return(a=e.sent())?[3,10]:[4,user_collection_1.Users.findOne({email:o.preferred_username.toLowerCase()})];case 8:return(a=e.sent())?[4,user_collection_1.Users.updateOne({_id:a._id},{$set:{"other.ms_oid":o.oid}})]:[3,10];case 9:e.sent(),e.label=10;case 10:return a?[3,12]:(a={_id:(0,common_1.objectIdHexString)(),__v:0,roles:{super_admin:!1,approvals:[],groups:[],notifications:[],miscs:[]},username:o.preferred_username.toLowerCase(),email:o.preferred_username.toLowerCase(),fullname:o.name,active:!0,phonenumber:"",readonly:!1,other:{ms_oid:o.oid},attempts:0,salt:jwt.sign({now:(Date.now()-1e3).toString()},_.JWT_SECRET,{expiresIn:7776e6}),hash:jwt.sign({now:(Date.now()+1e3).toString()},_.JWT_SECRET,{expiresIn:7776e6}),last:new Date,settings:null,services:null,is_customer:!1},[4,user_collection_1.Users.create(a)]);case 11:return e.sent(),[3,14];case 12:return(i=!1,a.email!==o.preferred_username.toLowerCase()&&(a.email=o.preferred_username.toLowerCase(),i=!0),a.fullname!==o.name&&(a.fullname=o.name,i=!0),i)?[4,user_collection_1.Users.updateOne({_id:a._id},{$set:{email:a.email,fullname:a.fullname}})]:[3,14];case 13:e.sent(),e.label=14;case 14:return u.send(JSON.stringify({error:!1,result:{token:jwt.sign({id_user:a._id},_.JWT_SECRET,{expiresIn:7776e6})}})),[3,16];case 15:console.log("ERROR - 1",n,t,o),u.send(JSON.stringify({error:!0,result:"Invalid Azure Token"})),e.label=16;case 16:return[2]}})})}),e.post("/login",bodyParser.json(),function(u,c){return __awaiter(r,void 0,void 0,function(){var r,s,n,t,o,a,i,l;return __generator(this,function(e){switch(e.label){case 0:return u.headers.origin===_.ROOT_URL||u.headers.origin===_.SEC_ROOT_URL?[3,1]:(c.send(JSON.stringify({error:!0,result:"Invalid header"})),[3,20]);case 1:r=u.body,s=new simpl_schema_1.default({username:{type:String},password:{type:String}}),e.label=2;case 2:return e.trys.push([2,3,,6]),s.validate(r),[3,6];case 3:return(n=e.sent())?(console.error(new Date,"Error in HTTP Check (/login)",n),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /login\n\nData Being Checked\n"+JSON.stringify(r,null,2)+"\n\nErrors\n"+JSON.stringify(n,null,2))]):[3,5];case 4:return e.sent(),c.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2];case 5:return[3,6];case 6:return[4,user_collection_1.Users.findOne({active:!0,username:r.username})];case 7:return(t=e.sent())?[3,9]:[4,user_collection_1.Users.findOne({active:!0,email:r.username})];case 8:t=e.sent(),e.label=9;case 9:return t?[4,user_collection_1.Users.authenticate(t,r.password)]:(c.send(JSON.stringify({error:!0,result:"Invalid Username And Password"})),[2]);case 10:return(o=e.sent()).error?"Too Many Attempts"!==o.error?[3,13]:(c.send(JSON.stringify({error:!0,result:o.error+". A password reset link has been sent to your email, please reset your password."})),t.services||(t.services={}),t.services.forgot_password=jwt.sign({id_user:t._id},_.JWT_SECRET),a={userToChangePassword:t.fullname,userWhoResetPassword:resolveio_server_app_1.ResolveIOServer.getClientName()+" System",url:_.ROOT_URL+"/forgot-password?"+encodeURIComponent(_.SERVER_URL)+"&"+t.services.forgot_password},[4,user_collection_1.Users.updateOne({_id:t._id},{$set:{services:t.services}})]):[3,18];case 11:return e.sent(),i=d.getMethodManager().readFile("email-templates/forgot-password.html"),l=handlebars.compile(i),handlebars.registerHelper("equals",function(e,r){return e===r}),[4,d.getMethodManager().sendEmail(t.email,"ResolveIO ("+resolveio_server_app_1.ResolveIOServer.getClientName()+") - Forgot Password","",l(a),null,null,"")];case 12:return e.sent(),[3,17];case 13:return"No Salt Value Stored"!==o.error?[3,16]:(c.send(JSON.stringify({error:!0,result:"A password reset link has been sent to your email, please reset your password."})),t.services||(t.services={}),t.services.forgot_password=jwt.sign({id_user:t._id},_.JWT_SECRET),a={userToChangePassword:t.fullname,userWhoResetPassword:resolveio_server_app_1.ResolveIOServer.getClientName()+" System",url:_.ROOT_URL+"/forgot-password?"+encodeURIComponent(_.SERVER_URL)+"&"+t.services.forgot_password},[4,user_collection_1.Users.updateOne({_id:t._id},{$set:{services:t.services}})]);case 14:return e.sent(),i=d.getMethodManager().readFile("email-templates/forgot-password.html"),l=handlebars.compile(i),handlebars.registerHelper("equals",function(e,r){return e===r}),[4,d.getMethodManager().sendEmail(t.email,"ResolveIO ("+resolveio_server_app_1.ResolveIOServer.getClientName()+") - Forgot Password","",l(a),null,null,"")];case 15:return e.sent(),[3,17];case 16:c.send(JSON.stringify({error:!0,result:o.error})),e.label=17;case 17:return[3,20];case 18:return o&&o.data&&o.data.active?[4,user_collection_1.Users.resetAttempts(o.data)]:[3,20];case 19:e.sent(),c.send(JSON.stringify({error:!1,result:{token:jwt.sign({id_user:o.data._id},_.JWT_SECRET,{expiresIn:7776e6})}})),e.label=20;case 20:return[2]}})})}),e.post("/accessToken",bodyParser.json(),function(o,a){return __awaiter(r,void 0,void 0,function(){var r,s,n,t=this;return __generator(this,function(e){switch(e.label){case 0:return o.headers.origin===_.ROOT_URL||o.headers.origin===_.SEC_ROOT_URL||o.headers.origin===_.RESOLVEIO_URL||o.headers.origin===_.RESOLVEIO_SECONDARY_URL?[3,1]:(a.send(JSON.stringify({error:!0,result:"Invalid header"})),[3,7]);case 1:r=o.body,s=new simpl_schema_1.default({refreshToken:{type:String}}),e.label=2;case 2:return e.trys.push([2,3,,6]),s.validate(r),[3,6];case 3:return(n=e.sent())?(console.error(new Date,"Error in HTTP Check (/accessToken)",n),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /accessToken\n\nData Being Checked\n"+JSON.stringify(r,null,2)+"\n\nErrors\n"+JSON.stringify(n,null,2))]):[3,5];case 4:return e.sent(),a.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2];case 5:return[3,6];case 6:jwt.verify(r.refreshToken,_.JWT_SECRET,function(s,n){return __awaiter(t,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return s?(a.send(JSON.stringify({error:!0,result:"Invalid Token"})),[3,4]):[3,1];case 1:return e.trys.push([1,3,,4]),[4,user_collection_1.Users.findById(n.id_user)];case 2:return(r=e.sent())?r.active?a.send(JSON.stringify({error:!1,result:{token:jwt.sign({id_user:r._id},_.JWT_SECRET,{expiresIn:2592e5}),user:r}})):a.send(JSON.stringify({error:!0,result:"Account is Disabled"})):a.send(JSON.stringify({error:!0,result:"Invalid User"})),[3,4];case 3:return e.sent(),a.send(JSON.stringify({error:!0,result:"Invalid Mongo Get User"})),[3,4];case 4:return[2]}})})}),e.label=7;case 7:return[2]}})})}),e.post("/userWithEnrollmentToken",bodyParser.json(),function(n,a){return __awaiter(r,void 0,void 0,function(){var t,r,s,o=this;return __generator(this,function(e){switch(e.label){case 0:return n.headers.origin===_.ROOT_URL||n.headers.origin===_.SEC_ROOT_URL||n.headers.origin===_.RESOLVEIO_URL||n.headers.origin===_.RESOLVEIO_SECONDARY_URL?[3,1]:(a.send(JSON.stringify({error:!0,result:"Invalid header"})),[3,7]);case 1:t=n.body,r=new simpl_schema_1.default({enrollmentToken:{type:String}}),e.label=2;case 2:return e.trys.push([2,3,,6]),r.validate(t),[3,6];case 3:return(s=e.sent())?(console.error(new Date,"Error in HTTP Check (/userWithEnrollmentToken)",s),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /userWithEnrollmentToken\n\nData Being Checked\n"+JSON.stringify(t,null,2)+"\n\nErrors\n"+JSON.stringify(s,null,2))]):[3,5];case 4:return e.sent(),a.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2];case 5:return[3,6];case 6:jwt.verify(t.enrollmentToken,_.JWT_SECRET,function(s,n){return __awaiter(o,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return s?(a.send(JSON.stringify({error:!0,result:"Invalid Token"})),[3,4]):[3,1];case 1:return e.trys.push([1,3,,4]),[4,user_collection_1.Users.findOne({$and:[{_id:n.id_user},{"services.enrollment":t.enrollmentToken}]},{projection:{_id:1,__v:1,username:1,active:1}})];case 2:return(r=e.sent())?r.active?a.send(JSON.stringify({error:!1,result:{user:r}})):a.send(JSON.stringify({error:!0,result:"Account is Disabled"})):a.send(JSON.stringify({error:!0,result:"Invalid User"})),[3,4];case 3:return e.sent(),a.send(JSON.stringify({error:!0,result:"Invalid Mongo Get User"})),[3,4];case 4:return[2]}})})}),e.label=7;case 7:return[2]}})})}),e.post("/setUserWithEnrollmentToken",bodyParser.json(),function(n,a){return __awaiter(r,void 0,void 0,function(){var t,r,s,o=this;return __generator(this,function(e){switch(e.label){case 0:return n.headers.origin===_.ROOT_URL||n.headers.origin===_.SEC_ROOT_URL||n.headers.origin===_.RESOLVEIO_URL||n.headers.origin===_.RESOLVEIO_SECONDARY_URL?[3,1]:(a.send(JSON.stringify({error:!0,result:"Invalid header"})),[3,7]);case 1:t=n.body,r=new simpl_schema_1.default({enrollmentToken:{type:String},password:{type:String}}),e.label=2;case 2:return e.trys.push([2,3,,6]),r.validate(t),[3,6];case 3:return(s=e.sent())?(console.error(new Date,"Error in HTTP Check (/setUserWithEnrollmentToken)",s),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /setUserWithEnrollmentToken\n\nData Being Checked\n"+JSON.stringify(t,null,2)+"\n\nErrors\n"+JSON.stringify(s,null,2))]):[3,5];case 4:return e.sent(),a.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2];case 5:return[3,6];case 6:jwt.verify(t.enrollmentToken,_.JWT_SECRET,function(s,n){return __awaiter(o,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return s?(a.send(JSON.stringify({error:!0,result:"Invalid Token"})),[3,9]):[3,1];case 1:return e.trys.push([1,8,,9]),[4,user_collection_1.Users.findOne({$and:[{_id:n.id_user},{"services.enrollment":t.enrollmentToken}]})];case 2:return(r=e.sent())?r.active?[4,user_collection_1.Users.setPassword(r,t.password)]:[3,4]:[3,6];case 3:return e.sent(),a.send(JSON.stringify({error:!1,result:!0})),[3,5];case 4:a.send(JSON.stringify({error:!0,result:"Account is Disabled"})),e.label=5;case 5:return[3,7];case 6:a.send(JSON.stringify({error:!0,result:"Invalid User"})),e.label=7;case 7:return[3,9];case 8:return e.sent(),a.send(JSON.stringify({error:!0,result:"Invalid Mongo Get User"})),[3,9];case 9:return[2]}})})}),e.label=7;case 7:return[2]}})})}),e.post("/userWithForgotPasswordToken",bodyParser.json(),function(n,a){return __awaiter(r,void 0,void 0,function(){var t,r,s,o=this;return __generator(this,function(e){switch(e.label){case 0:return n.headers.origin===_.ROOT_URL||n.headers.origin===_.SEC_ROOT_URL||n.headers.origin===_.RESOLVEIO_URL||n.headers.origin===_.RESOLVEIO_SECONDARY_URL?[3,1]:(a.send(JSON.stringify({error:!0,result:"Invalid header"})),[3,7]);case 1:t=n.body,r=new simpl_schema_1.default({forgotPasswordToken:{type:String}}),e.label=2;case 2:return e.trys.push([2,3,,6]),r.validate(t),[3,6];case 3:return(s=e.sent())?(console.error(new Date,"Error in HTTP Check (/userWithForgotPasswordToken)",s),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /userWithForgotPasswordToken\n\nData Being Checked\n"+JSON.stringify(t,null,2)+"\n\nErrors\n"+JSON.stringify(s,null,2))]):[3,5];case 4:return e.sent(),a.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2];case 5:return[3,6];case 6:jwt.verify(t.forgotPasswordToken,_.JWT_SECRET,function(s,n){return __awaiter(o,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return s?(a.send(JSON.stringify({error:!0,result:"Invalid Token"})),[3,4]):[3,1];case 1:return e.trys.push([1,3,,4]),[4,user_collection_1.Users.findOne({$and:[{_id:n.id_user},{"services.forgot_password":t.forgotPasswordToken}]},{projection:{_id:1,__v:1,username:1,active:1}})];case 2:return(r=e.sent())?r.active?a.send(JSON.stringify({error:!1,result:{user:r}})):a.send(JSON.stringify({error:!0,result:"Account is Disabled"})):a.send(JSON.stringify({error:!0,result:"Invalid Token"})),[3,4];case 3:return e.sent(),a.send(JSON.stringify({error:!0,result:"Invalid Mongo Get User"})),[3,4];case 4:return[2]}})})}),e.label=7;case 7:return[2]}})})}),e.post("/setUserWithForgotPasswordToken",bodyParser.json(),function(n,a){return __awaiter(r,void 0,void 0,function(){var t,r,s,o=this;return __generator(this,function(e){switch(e.label){case 0:return n.headers.origin===_.ROOT_URL||n.headers.origin===_.SEC_ROOT_URL||n.headers.origin===_.RESOLVEIO_URL||n.headers.origin===_.RESOLVEIO_SECONDARY_URL?[3,1]:(a.send(JSON.stringify({error:!0,result:"Invalid header"})),[3,7]);case 1:t=n.body,r=new simpl_schema_1.default({forgotPasswordToken:{type:String},password:{type:String}}),e.label=2;case 2:return e.trys.push([2,3,,6]),r.validate(t),[3,6];case 3:return(s=e.sent())?(console.error(new Date,"Error in HTTP Check (/setUserWithForgotPasswordToken)",s),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /setUserWithForgotPasswordToken\n\nData Being Checked\n"+JSON.stringify(t,null,2)+"\n\nErrors\n"+JSON.stringify(s,null,2))]):[3,5];case 4:return e.sent(),a.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2];case 5:return[3,6];case 6:jwt.verify(t.forgotPasswordToken,_.JWT_SECRET,function(s,n){return __awaiter(o,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return s?(a.send(JSON.stringify({error:!0,result:"Invalid Token"})),[3,9]):[3,1];case 1:return e.trys.push([1,8,,9]),[4,user_collection_1.Users.findOne({$and:[{_id:n.id_user},{"services.forgot_password":t.forgotPasswordToken}]})];case 2:return(r=e.sent())?r.active?[4,user_collection_1.Users.setPassword(r,t.password)]:[3,4]:[3,6];case 3:return e.sent(),a.send(JSON.stringify({error:!1,result:!0})),[3,5];case 4:a.send(JSON.stringify({error:!0,result:"Account is Disabled"})),e.label=5;case 5:return[3,7];case 6:a.send(JSON.stringify({error:!0,result:"Invalid User"})),e.label=7;case 7:return[3,9];case 8:return e.sent(),a.send(JSON.stringify({error:!0,result:"Invalid Mongo Get User"})),[3,9];case 9:return[2]}})})}),e.label=7;case 7:return[2]}})})}),e.post("/resetPassword",bodyParser.json(),function(o,a){return __awaiter(r,void 0,void 0,function(){var r,s,n,t;return __generator(this,function(e){switch(e.label){case 0:return o.headers.origin===_.ROOT_URL||o.headers.origin===_.SEC_ROOT_URL?[3,1]:(a.send(JSON.stringify({error:!0,result:"Invalid header"})),[3,10]);case 1:r=o.body,s=new simpl_schema_1.default({username:{type:String}}),e.label=2;case 2:return e.trys.push([2,3,,6]),s.validate(r),[3,6];case 3:return(n=e.sent())?(console.error(new Date,"Error in HTTP Check (/resetPassword)",n),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /resetPassword\n\nData Being Checked\n"+JSON.stringify(r,null,2)+"\n\nErrors\n"+JSON.stringify(n,null,2))]):[3,5];case 4:return e.sent(),a.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2];case 5:return[3,6];case 6:return[4,user_collection_1.Users.findOne({active:!0,username:r.username})];case 7:return(t=e.sent())?[3,9]:[4,user_collection_1.Users.findOne({active:!0,email:r.username})];case 8:t=e.sent(),e.label=9;case 9:t&&d.getMethodManager().callMethod.call(d.getMethodManager(),"resetUserPassword",t._id),a.send(JSON.stringify({error:!1,result:""})),e.label=10;case 10:return[2]}})})})}exports.setupAuthRoutes=setupAuthRoutes;
|
|
2
2
|
//# sourceMappingURL=auth.js.map
|
package/http/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/http/auth.ts"],"names":["user_collection_1","require","jwt","handlebars","resolveio_server_app_1","simpl_schema_1","bodyParser","jwt_decode_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","errors","console","Date","ResolveIOServer","getMainServer","getMethodManager","sendEmail","getClientName","tokenData","split","token","decodedJWT","Users","findOne","other.ms_oid","user","_a","sent","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","user_1","authenticate","resAuth","emailData_1","userToChangePassword","userWhoResetPassword","url","encodeURIComponent","then","resUp","readFile","html","template","compile","registerHelper","a","b","errEmail","errUp","emailData_2","err","resetAttempts","refreshToken","verify","decoded","findById","body_1","enrollmentToken","$and","services.enrollment","projection","body_2","setPassword","body_3","forgotPasswordToken","services.forgot_password","body_4","callMethod","call","exports"],"mappings":"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","file":"auth.js","sourcesContent":["import { Users } from '../collections/user.collection';\nimport * as jwt from 'jsonwebtoken';\nimport * as handlebars from 'handlebars';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { UserModel } from '../models/user.model';\nimport SimpleSchema from 'simpl-schema';\nimport * as bodyParser from 'body-parser';\nimport jwt_decode from 'jwt-decode';\nimport { objectIdHexString } from '../util/common';\n\nexport function setupAuthRoutes(mainServer, 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\tResolveIOServer.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\tResolveIOServer.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\tUsers.updateOne({_id: user._id}, {$set: {services: user.services}}).then(resUp => {\n\t\t\t\t\t\tmainServer.getMethodManager().readFile('email-templates/forgot-password.html').then(html => {\n\t\t\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t\t\t});\n\t\t\n\t\t\t\t\t\t\tmainServer.getMethodManager().sendEmail(user.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData), null, null, '');\n\t\t\t\t\t\t}, errEmail => console.log(errEmail));\n\t\t\t\t\t}, errUp => {});\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\tUsers.updateOne({_id: user._id}, {$set: {services: user.services}}).then(resUp => {\n\t\t\t\t\t\tmainServer.getMethodManager().readFile('email-templates/forgot-password.html').then(html => {\n\t\t\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t\t\t});\n\t\t\n\t\t\t\t\t\t\tmainServer.getMethodManager().sendEmail(user.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData), null, null, '');\n\t\t\t\t\t\t}, errEmail => console.log(errEmail));\n\t\t\t\t\t}, err => {});\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 function (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\tResolveIOServer.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'], (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\tUsers.findById(decoded['id_user']).then(async (user: UserModel) => {\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}, error => {\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(), function (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\tResolveIOServer.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'], (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\tUsers.findOne({\n\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t{'services.enrollment': body.enrollmentToken}\n\t\t\t\t\t\t]\n\t\t\t\t\t}, {projection: {_id: 1, __v: 1, username: 1, active: 1}}).then((user) => {\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}, error => {\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(), function (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\tResolveIOServer.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\tUsers.findOne({\n\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t{'services.enrollment': body.enrollmentToken}\n\t\t\t\t\t\t]\n\t\t\t\t\t}).then(async (user: UserModel) => {\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}, error => {\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(), function (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\tResolveIOServer.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'], (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\tUsers.findOne({\n\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t{'services.forgot_password': body.forgotPasswordToken}\n\t\t\t\t\t\t]\n\t\t\t\t\t}, {projection: {_id: 1, __v: 1, username: 1, active: 1}}).then((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\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}, error => {\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(), function (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\tResolveIOServer.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\tUsers.findOne({\n\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t{'services.forgot_password': body.forgotPasswordToken}\n\t\t\t\t\t\t]\n\t\t\t\t\t}).then(async (user: UserModel) => {\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}, error => {\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\tResolveIOServer.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\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}"]}
|
package/http/home.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setupHomeRoutes=void 0
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,n,o,s){return new(o=o||Promise)(function(t,r){function fulfilled(e){try{step(s.next(e))}catch(e){r(e)}}function rejected(e){try{step(s.throw(e))}catch(e){r(e)}}function step(e){var r;e.done?t(e.value):((r=e.value)instanceof o?r:new o(function(e){e(r)})).then(fulfilled,rejected)}step((s=s.apply(e,n||[])).next())})},__generator=this&&this.__generator||function(n,o){var s,a,i,l={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},u={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function verb(t){return function(e){var r=[t,e];if(s)throw new TypeError("Generator is already executing.");for(;l=u&&r[u=0]?0:l;)try{if(s=1,a&&(i=2&r[0]?a.return:r[0]?a.throw||((i=a.return)&&i.call(a),0):a.next)&&!(i=i.call(a,r[1])).done)return i;switch(a=0,(r=i?[2&r[0],i.value]:r)[0]){case 0:case 1:i=r;break;case 4:return l.label++,{value:r[1],done:!1};case 5:l.label++,a=r[1],r=[0];continue;case 7:r=l.ops.pop(),l.trys.pop();continue;default:if(!(i=0<(i=l.trys).length&&i[i.length-1])&&(6===r[0]||2===r[0])){l=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]<i[3]))l.label=r[1];else if(6===r[0]&&l.label<i[1])l.label=i[1],i=r;else{if(!(i&&l.label<i[2])){i[2]&&l.ops.pop(),l.trys.pop();continue}l.label=i[2],l.ops.push(r)}}r=o.call(n,l)}catch(e){r=[6,e],a=0}finally{s=i=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}}},bodyParser=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.setupHomeRoutes=void 0,require("body-parser")),simpl_schema_1=require("simpl-schema"),resolveio_server_app_1=require("../resolveio-server-app");function setupHomeRoutes(a,e,i){var r=this;e.post("/resolveioContactUs",bodyParser.json(),function(o,s){return __awaiter(r,void 0,void 0,function(){var r,t,n;return __generator(this,function(e){switch(e.label){case 0:return o.headers.origin===i.ROOT_URL||o.headers.origin===i.SEC_ROOT_URL?[3,1]:(s.send(JSON.stringify({error:!0,result:"Invalid header"})),[3,7]);case 1:r=o.body,t=new simpl_schema_1.default({form:{type:Object},"form.name":{type:String},"form.email":{type:String},"form.phone":{type:String},"form.subject":{type:String},"form.message":{type:String}}),e.label=2;case 2:return e.trys.push([2,3,,6]),t.validate(r),[3,6];case 3:return(n=e.sent())?(console.error(new Date,"Error in HTTP Check (/resolveioContactUs)",n),[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",resolveio_server_app_1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /resolveioContactUs\n\nData Being Checked\n"+JSON.stringify(r,null,2)+"\n\nErrors\n"+JSON.stringify(n,null,2))]):[3,5];case 4:return e.sent(),s.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2];case 5:return[3,6];case 6:n=o.body.form,a.getMethodManager().sendEmail("dustin@resolveio.com","ResolveIO - Contact Us","","Name: "+n.name+"<br>Email: "+n.email+"<br>Phone: "+n.phone+"<br>Subject: "+n.subject+"<br>Message: "+n.message+"<br>"),s.send(JSON.stringify({error:!1,result:null})),e.label=7;case 7:return[2]}})})})}exports.setupHomeRoutes=setupHomeRoutes;
|
|
2
2
|
//# sourceMappingURL=home.js.map
|
package/http/home.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/http/home.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../src/http/home.ts"],"names":["bodyParser","require","simpl_schema_1","resolveio_server_app_1","setupHomeRoutes","mainServer","app","serverConfig","_this","this","post","json","request","response","__awaiter","headers","origin","send","JSON","stringify","error","result","body","schema","default","form","type","Object","form.name","String","form.email","form.phone","form.subject","form.message","validate","console","Date","errors_1","ResolveIOServer","getMainServer","getMethodManager","sendEmail","getClientName","_a","sent","name","email","phone","subject","message","exports"],"mappings":"k8CAAAA,Y,sFAAAC,QAAA,aAAA,GACAC,eAAAD,QAAA,cAAA,EACAE,uBAAAF,QAAA,yBAAA,EAEA,SAAgBG,gBAAgBC,EAAYC,EAAKC,GAAjD,IAAAC,EAAAC,KACCH,EAAII,KAAK,sBAAuBV,WAAWW,KAAI,EAAI,SAAOC,EAASC,GAAQ,OAAAC,UAAAN,EAAA,KAAA,EAAA,KAAA,EAAA,W,4EACtEI,EAAQG,QAAQC,SAAWT,EAAuB,UAAKK,EAAQG,QAAQC,SAAWT,EAA2B,aAA7G,CAAA,EAAA,IACHM,EAASI,KAAKC,KAAKC,UAAU,CAC5BC,MAAO,CAAA,EACPC,OAAQ,gB,CACR,CAAC,E,cAGEC,EAAOV,EAAQU,KAEfC,EAAS,IAAIrB,eAAAsB,QAAa,CAC7BC,KAAM,CACLC,KAAMC,M,EAEPC,YAAa,CACZF,KAAMG,M,EAEPC,aAAc,CACbJ,KAAMG,M,EAEPE,aAAc,CACbL,KAAMG,M,EAEPG,eAAgB,CACfN,KAAMG,M,EAEPI,eAAgB,CACfP,KAAMG,M,EAEP,E,8CAGAN,EAAOW,SAASZ,CAAI,E,iCAInBa,QAAQf,MAAM,IAAIgB,KAAQ,4CAA6CC,CAAM,EAE7E,CAAA,EAAMlC,uBAAAmC,gBAAgBC,cAAa,EAAGC,iBAAgB,EAAGC,UAAU,oBAAqBtC,uBAAAmC,gBAAgBI,cAAa,EAAK,wBAAyB,kEAA8ExB,KAAKC,UAAUG,EAAM,KAAM,CAAC,EAAI,eAAiBJ,KAAKC,UAAUkB,EAAQ,KAAM,CAAC,CAAC,IAH9S,CAAA,EAAA,G,OAUH,OAPAM,EAAAC,KAAA,EAEA/B,EAASI,KAAKC,KAAKC,UAAU,CAC5BC,MAAO,CAAA,EACPC,OAAQ,oB,CACR,CAAC,EAEF,CAAA,G,0BAIWI,EAAOb,EAAQU,KAAKG,KAExBpB,EAAWmC,iBAAgB,EAAGC,UAAU,uBAAwB,yBAA0B,GAC1F,SAAWhB,EAAKoB,KAChB,cAAYpB,EAAKqB,MACjB,cAAYrB,EAAKsB,MACjB,gBAActB,EAAKuB,QACnB,gBAAcvB,EAAKwB,QAAU,MAAM,EAEnCpC,EAASI,KAAKC,KAAKC,UAAU,CACrCC,MAAO,CAAA,EACPC,OAAQ,I,CACR,CAAC,E,gCAEH,CACF,CAjEA6B,QAAA9C,gBAAAA","file":"home.js","sourcesContent":["import * as bodyParser from 'body-parser';\nimport SimpleSchema from 'simpl-schema';\nimport { ResolveIOServer } from '../resolveio-server-app';\n\nexport function setupHomeRoutes(mainServer, app, serverConfig) {\n\tapp.post('/resolveioContactUs', 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\tform: {\n\t\t\t\t\ttype: Object\n\t\t\t\t},\n\t\t\t\t'form.name': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\t'form.email': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\t'form.phone': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\t'form.subject': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\t'form.message': {\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 (/resolveioContactUs)', 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 ' + '/resolveioContactUs' + '\\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 let form = request.body.form;\n \n mainServer.getMethodManager().sendEmail('dustin@resolveio.com', 'ResolveIO - Contact Us', '', \n 'Name: ' + form.name + '<br>' + \n 'Email: ' + form.email + '<br>' + \n 'Phone: ' + form.phone + '<br>' + \n 'Subject: ' + form.subject + '<br>' + \n 'Message: ' + form.message + '<br>');\n\n response.send(JSON.stringify({\n\t\t\t\terror: false,\n\t\t\t\tresult: null\n\t\t\t}));\n\t\t}\n\t});\n}"]}
|
|
@@ -3,7 +3,9 @@ export declare class CronManager {
|
|
|
3
3
|
private _watchCrons$;
|
|
4
4
|
private _jobs;
|
|
5
5
|
constructor();
|
|
6
|
-
|
|
6
|
+
static create(): CronManager;
|
|
7
|
+
private initialize;
|
|
8
|
+
private watchCrons;
|
|
7
9
|
private doesCronJobExist;
|
|
8
10
|
private doesCronJobNameExist;
|
|
9
11
|
private addCronJob;
|
package/managers/cron.manager.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(e,o,r,i){return new(r=r||Promise)(function(t,n){function fulfilled(e){try{step(i.next(e))}catch(e){n(e)}}function rejected(e){try{step(i.throw(e))}catch(e){n(e)}}function step(e){var n;e.done?t(e.value):((n=e.value)instanceof r?n:new r(function(e){e(n)})).then(fulfilled,rejected)}step((i=i.apply(e,o||[])).next())})},__generator=this&&this.__generator||function(o,r){var i,a,s,c={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},_={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(_[Symbol.iterator]=function(){return this}),_;function verb(t){return function(e){var n=[t,e];if(i)throw new TypeError("Generator is already executing.");for(;c=_&&n[_=0]?0:c;)try{if(i=1,a&&(s=2&n[0]?a.return:n[0]?a.throw||((s=a.return)&&s.call(a),0):a.next)&&!(s=s.call(a,n[1])).done)return s;switch(a=0,(n=s?[2&n[0],s.value]:n)[0]){case 0:case 1:s=n;break;case 4:return c.label++,{value:n[1],done:!1};case 5:c.label++,a=n[1],n=[0];continue;case 7:n=c.ops.pop(),c.trys.pop();continue;default:if(!(s=0<(s=c.trys).length&&s[s.length-1])&&(6===n[0]||2===n[0])){c=0;continue}if(3===n[0]&&(!s||n[1]>s[0]&&n[1]<s[3]))c.label=n[1];else if(6===n[0]&&c.label<s[1])c.label=s[1],s=n;else{if(!(s&&c.label<s[2])){s[2]&&c.ops.pop(),c.trys.pop();continue}c.label=s[2],c.ops.push(n)}}n=r.call(o,c)}catch(e){n=[6,e],a=0}finally{i=s=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}}},cron_job_collection_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.CronManager=void 0,require("../collections/cron-job.collection")),cron_1=require("../cron/cron"),cron_job_history_collection_1=require("../collections/cron-job-history.collection"),resolveio_server_app_1=require("../resolveio-server-app"),common_1=require("../util/common"),CronManager=function(){function CronManager(){this._jobs=[],this._cronManager=new cron_1.CronJobManager,this.watchCrons()}return CronManager.prototype.watchCrons=function(){return __awaiter(this,void 0,void 0,function(){var n=this;return __generator(this,function(e){switch(e.label){case 0:return this._watchCrons$&&!this._watchCrons$.closed&&(this._watchCrons$.removeAllListeners(),this._watchCrons$.close(),this._watchCrons$=null),[4,new Promise(function(e){return setTimeout(e,1e3)})];case 1:return e.sent(),this._watchCrons$&&!this._watchCrons$.closed||(cron_job_collection_1.CronJobs.find().then(function(e){n._jobs=e,n._jobs.forEach(function(e){n.addCronJob(e),e.running&&cron_job_collection_1.CronJobs.updateOne({_id:e._id},{$set:{running:!1}})})}),this._watchCrons$=cron_job_collection_1.CronJobs.watchCollection([],{fullDocument:"updateLookup"}),this._watchCrons$.on("change",function(o){return __awaiter(n,void 0,void 0,function(){var n,t;return __generator(this,function(e){return"insert"===o.operationType?o.fullDocument&&(this._jobs.some(function(e){return e._id===o.documentKey._id})||this._jobs.push(o.fullDocument),this.addCronJob(o.fullDocument)):"replace"===o.operationType||"update"===o.operationType?o.fullDocument?(n=this._jobs.find(function(e){return e._id===o.documentKey._id}))?(this._jobs.splice(this._jobs.map(function(e){return e._id}).indexOf(o.documentKey._id),1,o.fullDocument),n.name!==o.fullDocument.name?(this.removeCronJob(n.name),this.addCronJob(o.fullDocument)):(typeof n.time_to_run!=typeof o.fullDocument.time_to_run||"string"==typeof n.time_to_run&&n.time_to_run!==o.fullDocument.time_to_run||n.time_to_run instanceof Date&&n.time_to_run.getTime()!==o.fullDocument.time_to_run.getTime()||n.timezone!==o.fullDocument.timezone)&&this.updateCronJob(o.fullDocument)):(this._jobs.push(o.fullDocument),this.addCronJob(o.fullDocument)):this._jobs.some(function(e){return e._id===o.documentKey._id})&&(t=this._jobs.find(function(e){return e._id===o.documentKey._id}),this.removeCronJob(t.name),this._jobs.splice(this._jobs.map(function(e){return e._id}).indexOf(o.documentKey._id),1)):"delete"===o.operationType&&this._jobs.some(function(e){return e._id===o.documentKey._id})&&(t=this._jobs.find(function(e){return e._id===o.documentKey._id}),this.removeCronJob(t.name),this._jobs.splice(this._jobs.map(function(e){return e._id}).indexOf(o.documentKey._id),1)),[2]})})}).on("error",function(e){n._watchCrons$.removeAllListeners(),n._watchCrons$.close(),n._watchCrons$=null,n.watchCrons()}).on("end",function(){n._watchCrons$.removeAllListeners(),n._watchCrons$.close(),n._watchCrons$=null,n.watchCrons()}).on("close",function(){n._watchCrons$.removeAllListeners(),n._watchCrons$=null,n.watchCrons()})),[2]}})})},CronManager.prototype.doesCronJobExist=function(e){return this._cronManager.exists(e.name)},CronManager.prototype.doesCronJobNameExist=function(e){return this._cronManager.exists(e)},CronManager.prototype.addCronJob=function(n){var e=this;if(!this.doesCronJobExist(n))try{this._cronManager.add(n.name,n.time_to_run,function(){return e.runCronJob(n)},null,!0,n.timezone,null,!1);var t=new Date(this._cronManager.getJob(n.name).nextDate().ts);(n.running||t&&!n.next_run||t.getTime()!==n.next_run.getTime())&&cron_job_collection_1.CronJobs.updateOne({_id:n._id},{$set:{running:!1,next_run:t||null}})}catch(e){console.log("Cron error",e),n.time_to_run instanceof Date&&this.runCronJob(n)}},CronManager.prototype.updateCronJob=function(e){var n,t=this;this.doesCronJobExist(e)&&(this._cronManager.update(e.name,e.time_to_run,function(){return t.runCronJob(e)},null,!0,e.timezone),!(n=new Date(this._cronManager.getJob(e.name).nextDate().ts))||e.next_run&&n.getTime()===e.next_run.getTime()||cron_job_collection_1.CronJobs.updateOne({_id:e._id},{$set:{next_run:n}}))},CronManager.prototype.removeCronJob=function(e){this.doesCronJobNameExist(e)&&this._cronManager.delete(e)},CronManager.prototype.startCronJob=function(e){this.doesCronJobExist(e)&&this._cronManager.start(e.name)},CronManager.prototype.stopCronJob=function(e){this.doesCronJobExist(e)&&this._cronManager.stop(e.name)},CronManager.prototype.stopAllCronJobs=function(){this._cronManager.stopAll()},CronManager.prototype.runCronJob=function(s){var e=this,n=new Date;cron_job_collection_1.CronJobs.findOneAndUpdate({$and:[{_id:s._id},{running:!1},{$or:[{next_run:{$exists:!1}},{next_run:null},{next_run:{$lte:n}}]}]},{$set:{running:!0}}).then(function(a){return __awaiter(e,void 0,void 0,function(){var t,n,o,r,i=this;return __generator(this,function(e){switch(e.label){case 0:return a?(t={_id:(0,common_1.objectIdHexString)(),name:a.name,reoccuring:a.repeat,time_to_run:a.time_to_run,method_name:a.method_run,id_cronjob:a._id,server_restart:!0,passed:!0,error:"",date_scheduled:a.next_run,date_start:new Date,date_end:null,date_next:null},[4,cron_job_history_collection_1.CronJobHistories.create(t)]):[3,14];case 1:e.sent(),n=setTimeout(function(){return __awaiter(i,void 0,void 0,function(){var n;return __generator(this,function(e){return console.log(new Date,"Cron Timeout",JSON.stringify(s,null,2)),a.repeat?(n=new Date(this._cronManager.getJob(a.name).nextDate().ts),t.date_next=n,cron_job_collection_1.CronJobs.updateOne({_id:a._id},{$set:{running:!1,next_run:n}})):cron_job_collection_1.CronJobs.deleteOne({_id:a._id}),[2]})})},3e5),e.label=2;case 2:return(e.trys.push([2,11,12,13]),a.method_run_data)?[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethodCron(a.method_run,a.method_run_data)]:[3,4];case 3:return e.sent(),[3,6];case 4:return[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethodCron(a.method_run)];case 5:e.sent(),e.label=6;case 6:return a.method_complete?a.method_complete_data?[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethodCron(a.method_complete,a.method_complete_data)]:[3,8]:[3,10];case 7:return e.sent(),[3,10];case 8:return[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethodCron(a.method_complete)];case 9:e.sent(),e.label=10;case 10:return[3,13];case 11:return o=e.sent(),console.log(new Date,"Cron Error",JSON.stringify(o,null,2)),t.error=JSON.stringify(o,null,2),t.passed=!1,a.repeat?(r=new Date(this._cronManager.getJob(a.name).nextDate().ts),t.date_next=r,cron_job_collection_1.CronJobs.updateOne({_id:a._id},{$set:{running:!1,next_run:r}})):cron_job_collection_1.CronJobs.deleteOne({_id:a._id}),[3,13];case 12:return clearTimeout(n),[7];case 13:a.repeat?(r=new Date(this._cronManager.getJob(a.name).nextDate().ts),t.date_next=r,cron_job_collection_1.CronJobs.updateOne({_id:a._id},{$set:{running:!1,next_run:r}})):cron_job_collection_1.CronJobs.deleteOne({_id:a._id}),cron_job_history_collection_1.CronJobHistories.updateOne({_id:t._id},{$set:{server_restart:!1,passed:t.passed,error:t.error,date_end:new Date,date_next:t.date_next}}),e.label=14;case 14:return[2]}})})},function(){})},CronManager}();exports.CronManager=CronManager;
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,r,o,a){return new(o=o||Promise)(function(t,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a.throw(e))}catch(e){n(e)}}function step(e){var n;e.done?t(e.value):((n=e.value)instanceof o?n:new o(function(e){e(n)})).then(fulfilled,rejected)}step((a=a.apply(e,r||[])).next())})},__generator=this&&this.__generator||function(r,o){var a,i,s,c={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},u={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function verb(t){return function(e){var n=[t,e];if(a)throw new TypeError("Generator is already executing.");for(;c=u&&n[u=0]?0:c;)try{if(a=1,i&&(s=2&n[0]?i.return:n[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,n[1])).done)return s;switch(i=0,(n=s?[2&n[0],s.value]:n)[0]){case 0:case 1:s=n;break;case 4:return c.label++,{value:n[1],done:!1};case 5:c.label++,i=n[1],n=[0];continue;case 7:n=c.ops.pop(),c.trys.pop();continue;default:if(!(s=0<(s=c.trys).length&&s[s.length-1])&&(6===n[0]||2===n[0])){c=0;continue}if(3===n[0]&&(!s||n[1]>s[0]&&n[1]<s[3]))c.label=n[1];else if(6===n[0]&&c.label<s[1])c.label=s[1],s=n;else{if(!(s&&c.label<s[2])){s[2]&&c.ops.pop(),c.trys.pop();continue}c.label=s[2],c.ops.push(n)}}n=o.call(r,c)}catch(e){n=[6,e],i=0}finally{a=s=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}}},__values=this&&this.__values||function(e){var n="function"==typeof Symbol&&Symbol.iterator,t=n&&e[n],r=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&r>=e.length?void 0:e)&&e[r++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")},cron_job_history_collection_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.CronManager=void 0,require("../collections/cron-job-history.collection")),cron_job_collection_1=require("../collections/cron-job.collection"),cron_1=require("../cron/cron"),resolveio_server_app_1=require("../resolveio-server-app"),common_1=require("../util/common"),CronManager=function(){function CronManager(){this._jobs=[]}return CronManager.create=function(){var e=this,n=new CronManager;return setImmediate(function(){return __awaiter(e,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,n.initialize()];case 1:return[2,e.sent()]}})})}),n},CronManager.prototype.initialize=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._cronManager=new cron_1.CronJobManager,[4,this.watchCrons()];case 1:return e.sent(),[2]}})})},CronManager.prototype.watchCrons=function(){return __awaiter(this,void 0,void 0,function(){var n,t,r,o,a,i,s=this;return __generator(this,function(e){switch(e.label){case 0:return!this._watchCrons$||this._watchCrons$.closed?[3,2]:(this._watchCrons$.removeAllListeners(),[4,this._watchCrons$.close()]);case 1:e.sent(),this._watchCrons$=null,e.label=2;case 2:return[4,new Promise(function(e){return setTimeout(e,1e3)})];case 3:return e.sent(),this._watchCrons$&&!this._watchCrons$.closed?[3,14]:[4,cron_job_collection_1.CronJobs.find()];case 4:o=e.sent(),this._jobs=o,e.label=5;case 5:e.trys.push([5,11,12,13]),n=__values(this._jobs),t=n.next(),e.label=6;case 6:return t.done?[3,10]:(r=t.value,[4,this.addCronJob(r)]);case 7:return(e.sent(),r.running)?[4,cron_job_collection_1.CronJobs.updateOne({_id:r._id},{$set:{running:!1}})]:[3,9];case 8:e.sent(),e.label=9;case 9:return t=n.next(),[3,6];case 10:return[3,13];case 11:return o=e.sent(),a={error:o},[3,13];case 12:try{t&&!t.done&&(i=n.return)&&i.call(n)}finally{if(a)throw a.error}return[7];case 13:this._watchCrons$=cron_job_collection_1.CronJobs.watchCollection([],{fullDocument:"updateLookup"}),this._watchCrons$.on("change",function(r){return __awaiter(s,void 0,void 0,function(){var n,t;return __generator(this,function(e){switch(e.label){case 0:return"insert"!==r.operationType?[3,3]:r.fullDocument?(this._jobs.some(function(e){return e._id===r.documentKey._id})||this._jobs.push(r.fullDocument),[4,this.addCronJob(r.fullDocument)]):[3,2];case 1:e.sent(),e.label=2;case 2:return[3,14];case 3:return"replace"!==r.operationType&&"update"!==r.operationType?[3,13]:r.fullDocument?(n=this._jobs.find(function(e){return e._id===r.documentKey._id}))?(this._jobs.splice(this._jobs.map(function(e){return e._id}).indexOf(r.documentKey._id),1,r.fullDocument),n.name===r.fullDocument.name?[3,5]:(this.removeCronJob(n.name),[4,this.addCronJob(r.fullDocument)])):[3,8]:[3,11];case 4:return e.sent(),[3,7];case 5:return typeof n.time_to_run!=typeof r.fullDocument.time_to_run||"string"==typeof n.time_to_run&&n.time_to_run!==r.fullDocument.time_to_run||n.time_to_run instanceof Date&&n.time_to_run.getTime()!==r.fullDocument.time_to_run.getTime()||n.timezone!==r.fullDocument.timezone?[4,this.updateCronJob(r.fullDocument)]:[3,7];case 6:e.sent(),e.label=7;case 7:return[3,10];case 8:return this._jobs.push(r.fullDocument),[4,this.addCronJob(r.fullDocument)];case 9:e.sent(),e.label=10;case 10:return[3,12];case 11:this._jobs.some(function(e){return e._id===r.documentKey._id})&&(t=this._jobs.find(function(e){return e._id===r.documentKey._id}),this.removeCronJob(t.name),this._jobs.splice(this._jobs.map(function(e){return e._id}).indexOf(r.documentKey._id),1)),e.label=12;case 12:return[3,14];case 13:"delete"===r.operationType&&this._jobs.some(function(e){return e._id===r.documentKey._id})&&(t=this._jobs.find(function(e){return e._id===r.documentKey._id}),this.removeCronJob(t.name),this._jobs.splice(this._jobs.map(function(e){return e._id}).indexOf(r.documentKey._id),1)),e.label=14;case 14:return[2]}})})}).on("error",function(){return __awaiter(s,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this._watchCrons$.close()];case 1:return e.sent(),[2]}})})}).on("end",function(){return __awaiter(s,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this._watchCrons$.close()];case 1:return e.sent(),[2]}})})}).on("close",function(){return __awaiter(s,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._watchCrons$.removeAllListeners(),this._watchCrons$=null,[4,this.watchCrons()];case 1:return e.sent(),[2]}})})}),e.label=14;case 14:return[2]}})})},CronManager.prototype.doesCronJobExist=function(e){return this._cronManager.exists(e.name)},CronManager.prototype.doesCronJobNameExist=function(e){return this._cronManager.exists(e)},CronManager.prototype.addCronJob=function(r){return __awaiter(this,void 0,void 0,function(){var n,t=this;return __generator(this,function(e){switch(e.label){case 0:if(this.doesCronJobExist(r))return[3,7];e.label=1;case 1:return(e.trys.push([1,4,,7]),this._cronManager.add(r.name,r.time_to_run,function(){return t.runCronJob(r)},null,!0,r.timezone,null,!1),n=new Date(this._cronManager.getJob(r.name).nextDate().ts),r.running||n&&!r.next_run||n.getTime()!==r.next_run.getTime())?[4,cron_job_collection_1.CronJobs.updateOne({_id:r._id},{$set:{running:!1,next_run:n||null}})]:[3,3];case 2:e.sent(),e.label=3;case 3:return[3,7];case 4:return(n=e.sent(),console.log("Cron error",n),r.time_to_run instanceof Date)?[4,this.runCronJob(r)]:[3,6];case 5:e.sent(),e.label=6;case 6:return[3,7];case 7:return[2]}})})},CronManager.prototype.updateCronJob=function(r){return __awaiter(this,void 0,void 0,function(){var n,t=this;return __generator(this,function(e){switch(e.label){case 0:return this.doesCronJobExist(r)?(this._cronManager.update(r.name,r.time_to_run,function(){return t.runCronJob(r)},null,!0,r.timezone),!(n=new Date(this._cronManager.getJob(r.name).nextDate().ts))||r.next_run&&n.getTime()===r.next_run.getTime()?[3,2]:[4,cron_job_collection_1.CronJobs.updateOne({_id:r._id},{$set:{next_run:n}})]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})},CronManager.prototype.removeCronJob=function(e){this.doesCronJobNameExist(e)&&this._cronManager.delete(e)},CronManager.prototype.startCronJob=function(e){this.doesCronJobExist(e)&&this._cronManager.start(e.name)},CronManager.prototype.stopCronJob=function(e){this.doesCronJobExist(e)&&this._cronManager.stop(e.name)},CronManager.prototype.stopAllCronJobs=function(){this._cronManager.stopAll()},CronManager.prototype.runCronJob=function(s){return __awaiter(this,void 0,void 0,function(){var t,r,n,o,a,i=this;return __generator(this,function(e){switch(e.label){case 0:return o=new Date,[4,cron_job_collection_1.CronJobs.findOneAndUpdate({$and:[{_id:s._id},{running:!1},{$or:[{next_run:{$exists:!1}},{next_run:null},{next_run:{$lte:o}}]}]},{$set:{running:!0}})];case 1:return(t=e.sent())?(r={_id:(0,common_1.objectIdHexString)(),name:t.name,reoccuring:t.repeat,time_to_run:t.time_to_run,method_name:t.method_run,id_cronjob:t._id,server_restart:!0,passed:!0,error:"",date_scheduled:t.next_run,date_start:new Date,date_end:null,date_next:null},[4,cron_job_history_collection_1.CronJobHistories.create(r)]):[3,24];case 2:e.sent(),n=setTimeout(function(){return __awaiter(i,void 0,void 0,function(){var n;return __generator(this,function(e){switch(e.label){case 0:return(console.log(new Date,"Cron Timeout",JSON.stringify(s,null,2)),t.repeat)?(n=new Date(this._cronManager.getJob(t.name).nextDate().ts),r.date_next=n,[4,cron_job_collection_1.CronJobs.updateOne({_id:t._id},{$set:{running:!1,next_run:n}})]):[3,2];case 1:return e.sent(),[3,4];case 2:return[4,cron_job_collection_1.CronJobs.deleteOne({_id:t._id})];case 3:e.sent(),e.label=4;case 4:return[2]}})})},3e5),e.label=3;case 3:return(e.trys.push([3,12,17,18]),t.method_run_data)?[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethodCron(t.method_run,t.method_run_data)]:[3,5];case 4:return e.sent(),[3,7];case 5:return[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethodCron(t.method_run)];case 6:e.sent(),e.label=7;case 7:return t.method_complete?t.method_complete_data?[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethodCron(t.method_complete,t.method_complete_data)]:[3,9]:[3,11];case 8:return e.sent(),[3,11];case 9:return[4,resolveio_server_app_1.ResolveIOServer.getMainServer().getMethodManager().callMethodCron(t.method_complete)];case 10:e.sent(),e.label=11;case 11:return[3,18];case 12:return(o=e.sent(),console.log(new Date,"Cron Error",JSON.stringify(o,null,2)),r.error=JSON.stringify(o,null,2),r.passed=!1,t.repeat)?(a=new Date(this._cronManager.getJob(t.name).nextDate().ts),r.date_next=a,[4,cron_job_collection_1.CronJobs.updateOne({_id:t._id},{$set:{running:!1,next_run:a}})]):[3,14];case 13:return e.sent(),[3,16];case 14:return[4,cron_job_collection_1.CronJobs.deleteOne({_id:t._id})];case 15:e.sent(),e.label=16;case 16:return[3,18];case 17:return clearTimeout(n),[7];case 18:return t.repeat?(a=new Date(this._cronManager.getJob(t.name).nextDate().ts),r.date_next=a,[4,cron_job_collection_1.CronJobs.updateOne({_id:t._id},{$set:{running:!1,next_run:a}})]):[3,20];case 19:return e.sent(),[3,22];case 20:return[4,cron_job_collection_1.CronJobs.deleteOne({_id:t._id})];case 21:e.sent(),e.label=22;case 22:return[4,cron_job_history_collection_1.CronJobHistories.updateOne({_id:r._id},{$set:{server_restart:!1,passed:r.passed,error:r.error,date_end:new Date,date_next:r.date_next}})];case 23:e.sent(),e.label=24;case 24:return[2]}})})},CronManager}();exports.CronManager=CronManager;
|
|
2
2
|
//# sourceMappingURL=cron.manager.js.map
|