@resolveio/server-lib 20.0.28 → 20.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/client-server-app.js +1 -1
  2. package/client-server-app.js.map +1 -1
  3. package/cron/cron.js +1 -1
  4. package/cron/cron.js.map +1 -1
  5. package/fixtures/cron-jobs.js +1 -1
  6. package/fixtures/cron-jobs.js.map +1 -1
  7. package/fixtures/init.js +1 -1
  8. package/fixtures/init.js.map +1 -1
  9. package/http/auth.js +1 -1
  10. package/http/auth.js.map +1 -1
  11. package/index.js +1 -1
  12. package/index.js.map +1 -1
  13. package/managers/cron.manager.js +1 -1
  14. package/managers/cron.manager.js.map +1 -1
  15. package/managers/method.manager.js +1 -1
  16. package/managers/method.manager.js.map +1 -1
  17. package/managers/mongo.manager.js +1 -1
  18. package/managers/mongo.manager.js.map +1 -1
  19. package/managers/monitor.manager.js +1 -1
  20. package/managers/monitor.manager.js.map +1 -1
  21. package/managers/subscription.manager.js +1 -1
  22. package/managers/subscription.manager.js.map +1 -1
  23. package/methods/accounts.js +1 -1
  24. package/methods/accounts.js.map +1 -1
  25. package/methods/aws.js +1 -1
  26. package/methods/aws.js.map +1 -1
  27. package/methods/counters.js +1 -1
  28. package/methods/counters.js.map +1 -1
  29. package/methods/cron-jobs.js +1 -1
  30. package/methods/cron-jobs.js.map +1 -1
  31. package/methods/logs.js +1 -1
  32. package/methods/logs.js.map +1 -1
  33. package/methods/monitor.js +1 -1
  34. package/methods/monitor.js.map +1 -1
  35. package/methods/pdf.js +1 -1
  36. package/methods/pdf.js.map +1 -1
  37. package/methods/report-builder.js +1 -1
  38. package/methods/report-builder.js.map +1 -1
  39. package/methods/support.js +1 -1
  40. package/methods/support.js.map +1 -1
  41. package/methods.ts +34 -0
  42. package/package.json +1 -1
  43. package/publications/report-builder-libraries.js +1 -1
  44. package/publications/report-builder-libraries.js.map +1 -1
  45. package/publications.ts +31 -0
  46. package/server-app.js +1 -1
  47. package/server-app.js.map +1 -1
  48. package/util/schema-report-builder.js +1 -1
  49. package/util/schema-report-builder.js.map +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";var __awaiter=this&&this.__awaiter||function(e,a,u,l){return new(u=u||Promise)(function(r,n){function t(e){try{i(l.next(e))}catch(e){n(e)}}function o(e){try{i(l.throw(e))}catch(e){n(e)}}function i(e){var n;e.done?r(e.value):((n=e.value)instanceof u?n:new u(function(e){e(n)})).then(t,o)}i((l=l.apply(e,a||[])).next())})},__generator=this&&this.__generator||function(t,o){var i,a,u,l={label:0,sent:function(){if(1&u[0])throw u[1];return u[1]},trys:[],ops:[]},c={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function e(r){return function(e){var n=[r,e];if(i)throw new TypeError("Generator is already executing.");for(;l=c&&n[c=0]?0:l;)try{if(i=1,a&&(u=2&n[0]?a.return:n[0]?a.throw||((u=a.return)&&u.call(a),0):a.next)&&!(u=u.call(a,n[1])).done)return u;switch(a=0,(n=u?[2&n[0],u.value]:n)[0]){case 0:case 1:u=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(!(u=0<(u=l.trys).length&&u[u.length-1])&&(6===n[0]||2===n[0])){l=0;continue}if(3===n[0]&&(!u||n[1]>u[0]&&n[1]<u[3]))l.label=n[1];else if(6===n[0]&&l.label<u[1])l.label=u[1],u=n;else{if(!(u&&l.label<u[2])){u[2]&&l.ops.pop(),l.trys.pop();continue}l.label=u[2],l.ops.push(n)}}n=o.call(t,l)}catch(e){n=[6,e],a=0}finally{i=u=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}}},serverConfig=(Object.defineProperty(exports,"__esModule",{value:!0}),require("./settings.json")),index_1=require("./index");new index_1.ResolveIOServer(serverConfig,[],"ResolveIO Server Library",__dirname),index_1.ResolveIOServer.connectAndRun().then(function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(e){return[2]})})});
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(e,n,o,i){return new(o=o||Promise)(function(t,r){function fulfilled(e){try{step(i.next(e))}catch(e){r(e)}}function rejected(e){try{step(i.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((i=i.apply(e,n||[])).next())})},__generator=this&&this.__generator||function(n,o){var i,a,l,u={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},s={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function verb(t){return function(e){var r=[t,e];if(i)throw new TypeError("Generator is already executing.");for(;u=s&&r[s=0]?0:u;)try{if(i=1,a&&(l=2&r[0]?a.return:r[0]?a.throw||((l=a.return)&&l.call(a),0):a.next)&&!(l=l.call(a,r[1])).done)return l;switch(a=0,(r=l?[2&r[0],l.value]:r)[0]){case 0:case 1:l=r;break;case 4:return u.label++,{value:r[1],done:!1};case 5:u.label++,a=r[1],r=[0];continue;case 7:r=u.ops.pop(),u.trys.pop();continue;default:if(!(l=0<(l=u.trys).length&&l[l.length-1])&&(6===r[0]||2===r[0])){u=0;continue}if(3===r[0]&&(!l||r[1]>l[0]&&r[1]<l[3]))u.label=r[1];else if(6===r[0]&&u.label<l[1])u.label=l[1],l=r;else{if(!(l&&u.label<l[2])){l[2]&&u.ops.pop(),u.trys.pop();continue}u.label=l[2],u.ops.push(r)}}r=o.call(n,u)}catch(e){r=[6,e],a=0}finally{i=l=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}}},serverConfig=(Object.defineProperty(exports,"__esModule",{value:!0}),require("./settings.json")),index_1=require("./index");new index_1.ResolveIOServer(serverConfig,[],"ResolveIO Server Library",__dirname),index_1.ResolveIOServer.connectAndRun().then(function(){return __awaiter(void 0,void 0,void 0,function(){return __generator(this,function(e){return[2]})})});
2
2
  //# sourceMappingURL=client-server-app.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/client-server-app.ts"],"names":["serverConfig","require","index_1","ResolveIOServer","__dirname","connectAndRun","then","__awaiter"],"mappings":"44CAAIA,c,uDAAeC,QAAQ,iBAAiB,GAC5CC,QAAAD,QAAA,SAAA,EAEA,IAAIC,QAAAC,gBAAgBH,aAAc,GAAI,2BAA4BI,SAAS,EAC3EF,QAAAC,gBAAgBE,cAAa,EAAGC,KAAK,WAAA,OAAAC,UAAA,KAAA,EAAA,KAAA,EAAA,KAAA,EAAA,W,kDAEpC","file":"client-server-app.js","sourcesContent":["let serverConfig = require('./settings.json');\nimport { ResolveIOServer } from './index';\n\nnew ResolveIOServer(serverConfig, [], 'ResolveIO Server Library', __dirname);\nResolveIOServer.connectAndRun().then(async () => {\n\t\n});"]}
1
+ {"version":3,"sources":["../../src/client-server-app.ts"],"names":["serverConfig","require","index_1","ResolveIOServer","__dirname","connectAndRun","then","__awaiter"],"mappings":"k8CAAIA,c,uDAAeC,QAAQ,iBAAiB,GAC5CC,QAAAD,QAAA,SAAA,EAEA,IAAIC,QAAAC,gBAAgBH,aAAc,GAAI,2BAA4BI,SAAS,EAC3EF,QAAAC,gBAAgBE,cAAa,EAAGC,KAAK,WAAA,OAAAC,UAAA,KAAA,EAAA,KAAA,EAAA,KAAA,EAAA,W,kDAEpC","file":"client-server-app.js","sourcesContent":["let serverConfig = require('./settings.json');\nimport { ResolveIOServer } from './index';\n\nnew ResolveIOServer(serverConfig, [], 'ResolveIO Server Library', __dirname);\nResolveIOServer.connectAndRun().then(async () => {\n\t\n});"]}
package/cron/cron.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CronJobManager=void 0;var cron_1=require("cron"),CronJobManager=function(){function o(o,t,n,e,r,s,c,a){this.jobs={},o&&t&&n&&this.add(o,t,n,e,r,s,c,a)}return o.prototype.getJob=function(o){return this.jobs[o]},o.prototype.getJobs=function(){return Object.keys(this.jobs)},o.prototype.add=function(t,n,o,e,r,s,c,a){if(("string"==typeof n||n instanceof Date)&&"string"==typeof t&&o instanceof Function)try{this.jobs[t]&&(this.delete(t),console.warn("".concat(t," already existed and was deleted from the manager..."))),this.jobs[t]=new cron_1.CronJob(n,o,e,r,s,c,a)}catch(o){console.error("crontab: ".concat(n," possibly not valid, job ").concat(t," not started...").concat(o.message))}else console.warn("couldn't add: ".concat(t," improper arguments"))},o.prototype.update=function(o,t,n,e,r,s,c,a){var i;this.jobs[o]?(i=this.jobs[o].running,this.jobs[o].stop(),t=new cron_1.CronJob(t,n,e,r||i,s,c,a),delete this.jobs[o],this.jobs[o]=t):console.warn("Job with key ".concat(o," does not exist."))},o.prototype.delete=function(t){try{this.jobs[t].stop(),delete this.jobs[t]}catch(o){console.error(new Date,"error in trying to stop job: ".concat(t,": ").concat(o))}},o.prototype.start=function(t){try{this.jobs[t].running?console.warn("".concat(t," job already running")):this.jobs[t].start()}catch(o){console.error("couldn't start job: ".concat(t,": ").concat(o))}},o.prototype.stop=function(t){try{this.jobs[t].running?this.jobs[t].stop():console.warn("".concat(t," job already stopped"))}catch(o){console.error("couldn't stop job: ".concat(t,": ").concat(o))}},o.prototype.stopAll=function(){for(var o in this.jobs)try{this.jobs[o].stop()}catch(o){}},o.prototype.exists=function(o){return!!this.jobs[o]},o}();exports.CronJobManager=CronJobManager;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CronJobManager=void 0;var cron_1=require("cron"),CronJobManager=function(){function CronJobManager(o,t,n,r,e,s,a,c){this.jobs={},o&&t&&n&&this.add(o,t,n,r,e,s,a,c)}return CronJobManager.prototype.getJob=function(o){return this.jobs[o]},CronJobManager.prototype.getJobs=function(){return Object.keys(this.jobs)},CronJobManager.prototype.add=function(t,n,o,r,e,s,a,c){if(("string"==typeof n||n instanceof Date)&&"string"==typeof t&&o instanceof Function)try{this.jobs[t]&&(this.delete(t),console.warn("".concat(t," already existed and was deleted from the manager..."))),this.jobs[t]=new cron_1.CronJob(n,o,r,e,s,a,c)}catch(o){console.error("crontab: ".concat(n," possibly not valid, job ").concat(t," not started...").concat(o.message))}else console.warn("couldn't add: ".concat(t," improper arguments"))},CronJobManager.prototype.update=function(o,t,n,r,e,s,a,c){var i;this.jobs[o]?(i=this.jobs[o].running,this.jobs[o].stop(),t=new cron_1.CronJob(t,n,r,e||i,s,a,c),delete this.jobs[o],this.jobs[o]=t):console.warn("Job with key ".concat(o," does not exist."))},CronJobManager.prototype.delete=function(t){try{this.jobs[t].stop(),delete this.jobs[t]}catch(o){console.error(new Date,"error in trying to stop job: ".concat(t,": ").concat(o))}},CronJobManager.prototype.start=function(t){try{this.jobs[t].running?console.warn("".concat(t," job already running")):this.jobs[t].start()}catch(o){console.error("couldn't start job: ".concat(t,": ").concat(o))}},CronJobManager.prototype.stop=function(t){try{this.jobs[t].running?this.jobs[t].stop():console.warn("".concat(t," job already stopped"))}catch(o){console.error("couldn't stop job: ".concat(t,": ").concat(o))}},CronJobManager.prototype.stopAll=function(){for(var o in this.jobs)try{this.jobs[o].stop()}catch(o){}},CronJobManager.prototype.exists=function(o){return!!this.jobs[o]},CronJobManager}();exports.CronJobManager=CronJobManager;
2
2
  //# sourceMappingURL=cron.js.map
package/cron/cron.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cron/cron.ts"],"names":["cron_1","require","CronJobManager","key","tab","task","onComplete","start","timeZone","context","runOnInit","this","jobs","add","prototype","getJob","getJobs","Object","keys","Date","Function","delete","console","warn","concat","CronJob","fooBaredByUser","error","message","update","wasRunning","running","stop","newJob","err","stopAll","jobKey","exists","exports"],"mappings":"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","file":"cron.js","sourcesContent":["import { CronJob, CronCommand, CronTime, CronOnCompleteCommand, CronJobParams } from 'cron';\n\nexport class CronJobManager {\n\tprivate jobs: { [key: string]: CronJob };\n\n constructor(key?: string, tab?: string | Date, task?: CronCommand<any, boolean>, onComplete?: CronOnCompleteCommand, start?: boolean, timeZone?: string, context?: CronJobParams, runOnInit?: boolean) {\n this.jobs = {};\n if (key && tab && task) {\n this.add(key, tab, task, onComplete, start, timeZone, context, runOnInit);\n }\n }\n\n getJob(key: string): CronJob {\n return this.jobs[key];\n }\n\n getJobs(): string[] {\n return Object.keys(this.jobs);\n }\n\n add(key: string, tab: string | Date, task: CronCommand<any, boolean>, onComplete?: CronOnCompleteCommand, start?: boolean, timeZone?: string, context?: CronJobParams, runOnInit?: boolean): void {\n\t\tif ((typeof tab === 'string' || tab instanceof Date) && typeof key === 'string' && task instanceof Function) {\n\t\t\ttry {\n\t\t\t\tif (this.jobs[key]) {\n\t\t\t\t\tthis.delete(key);\n\t\t\t\t\tconsole.warn(`${key} already existed and was deleted from the manager...`);\n\t\t\t\t}\n\t\t\t\tthis.jobs[key] = new CronJob(tab, task, onComplete, start, timeZone, context, runOnInit);\n\t\t\t} catch (fooBaredByUser) {\n\t\t\t\tconsole.error(`crontab: ${tab} possibly not valid, job ${key} not started...${fooBaredByUser.message}`);\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.warn(`couldn't add: ${key} improper arguments`);\n\t\t}\n\t}\n\n\tupdate(key: string, tab: string | Date, task: CronCommand<any, boolean>, onComplete?: () => void, start?: boolean, timeZone?: string, context?: any, runOnInit?: boolean): void {\n\t\t// Check if the job exists\n\t\tif (!this.jobs[key]) {\n\t\t\tconsole.warn(`Job with key ${key} does not exist.`);\n\t\t\treturn;\n\t\t}\n\n\t\t// Store the running state\n\t\tconst wasRunning = this.jobs[key].running;\n\t\n\t\t// Stop the existing job\n\t\tthis.jobs[key].stop();\n\t\n\t\t// Create a new job instance with the updated properties\n\t\tconst newJob = new CronJob(\n\t\t\ttab,\n\t\t\ttask,\n\t\t\tonComplete,\n\t\t\tstart || wasRunning,\n\t\t\ttimeZone,\n\t\t\tcontext,\n\t\t\trunOnInit\n\t\t);\n\n\t\tdelete this.jobs[key];\n\t\n\t\t// Replace the old job with the new one\n\t\tthis.jobs[key] = newJob;\n\t}\n\t\n\t\n\tdelete(key: string) {\n\t\ttry {\n\t\t\tthis.jobs[key].stop();\n\t\t\tdelete this.jobs[key];\n\t\t}\n\t\tcatch (err) { \n\t\t\tconsole.error(new Date(), `error in trying to stop job: ${key}: ${err}`);\n\t\t}\n\t}\n\n\tstart(key: string) {\n\t\ttry {\n\t\t\tif (this.jobs[key].running) {\n\t\t\t\tconsole.warn(`${key} job already running`);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.jobs[key].start();\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error(`couldn't start job: ${key}: ${err}`);\n\t\t}\n\t}\n\n\tstop(key: string) {\n\t\ttry {\n\t\t\tif (!this.jobs[key].running ) {\n\t\t\t\tconsole.warn(`${key} job already stopped`);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.jobs[key].stop();\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error(`couldn't stop job: ${key}: ${err}`);\n\t\t}\n\t}\n\n\tstopAll() {\n\t\tfor (let jobKey in this.jobs) {\n\t\t\ttry {\n\t\t\t\tthis.jobs[jobKey].stop();\n\t\t\t}\n\t\t\tcatch (err) {\n\t\n\t\t\t}\n\t\t}\n\t}\n\n\texists(key: string) {\n\t\treturn !!this.jobs[key];\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/cron/cron.ts"],"names":["cron_1","require","CronJobManager","key","tab","task","onComplete","start","timeZone","context","runOnInit","this","jobs","add","prototype","getJob","getJobs","Object","keys","Date","Function","delete","console","warn","concat","CronJob","fooBaredByUser","error","message","update","wasRunning","running","stop","newJob","err","stopAll","jobKey","exists","exports"],"mappings":"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","file":"cron.js","sourcesContent":["import { CronJob, CronCommand, CronTime, CronOnCompleteCommand, CronJobParams } from 'cron';\n\nexport class CronJobManager {\n\tprivate jobs: { [key: string]: CronJob };\n\n constructor(key?: string, tab?: string | Date, task?: CronCommand<any, boolean>, onComplete?: CronOnCompleteCommand, start?: boolean, timeZone?: string, context?: CronJobParams, runOnInit?: boolean) {\n this.jobs = {};\n if (key && tab && task) {\n this.add(key, tab, task, onComplete, start, timeZone, context, runOnInit);\n }\n }\n\n getJob(key: string): CronJob {\n return this.jobs[key];\n }\n\n getJobs(): string[] {\n return Object.keys(this.jobs);\n }\n\n add(key: string, tab: string | Date, task: CronCommand<any, boolean>, onComplete?: CronOnCompleteCommand, start?: boolean, timeZone?: string, context?: CronJobParams, runOnInit?: boolean): void {\n\t\tif ((typeof tab === 'string' || tab instanceof Date) && typeof key === 'string' && task instanceof Function) {\n\t\t\ttry {\n\t\t\t\tif (this.jobs[key]) {\n\t\t\t\t\tthis.delete(key);\n\t\t\t\t\tconsole.warn(`${key} already existed and was deleted from the manager...`);\n\t\t\t\t}\n\t\t\t\tthis.jobs[key] = new CronJob(tab, task, onComplete, start, timeZone, context, runOnInit);\n\t\t\t} catch (fooBaredByUser) {\n\t\t\t\tconsole.error(`crontab: ${tab} possibly not valid, job ${key} not started...${fooBaredByUser.message}`);\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.warn(`couldn't add: ${key} improper arguments`);\n\t\t}\n\t}\n\n\tupdate(key: string, tab: string | Date, task: CronCommand<any, boolean>, onComplete?: () => void, start?: boolean, timeZone?: string, context?: any, runOnInit?: boolean): void {\n\t\t// Check if the job exists\n\t\tif (!this.jobs[key]) {\n\t\t\tconsole.warn(`Job with key ${key} does not exist.`);\n\t\t\treturn;\n\t\t}\n\n\t\t// Store the running state\n\t\tconst wasRunning = this.jobs[key].running;\n\t\n\t\t// Stop the existing job\n\t\tthis.jobs[key].stop();\n\t\n\t\t// Create a new job instance with the updated properties\n\t\tconst newJob = new CronJob(\n\t\t\ttab,\n\t\t\ttask,\n\t\t\tonComplete,\n\t\t\tstart || wasRunning,\n\t\t\ttimeZone,\n\t\t\tcontext,\n\t\t\trunOnInit\n\t\t);\n\n\t\tdelete this.jobs[key];\n\t\n\t\t// Replace the old job with the new one\n\t\tthis.jobs[key] = newJob;\n\t}\n\t\n\t\n\tdelete(key: string) {\n\t\ttry {\n\t\t\tthis.jobs[key].stop();\n\t\t\tdelete this.jobs[key];\n\t\t}\n\t\tcatch (err) { \n\t\t\tconsole.error(new Date(), `error in trying to stop job: ${key}: ${err}`);\n\t\t}\n\t}\n\n\tstart(key: string) {\n\t\ttry {\n\t\t\tif (this.jobs[key].running) {\n\t\t\t\tconsole.warn(`${key} job already running`);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.jobs[key].start();\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error(`couldn't start job: ${key}: ${err}`);\n\t\t}\n\t}\n\n\tstop(key: string) {\n\t\ttry {\n\t\t\tif (!this.jobs[key].running ) {\n\t\t\t\tconsole.warn(`${key} job already stopped`);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.jobs[key].stop();\n\t\t\t}\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error(`couldn't stop job: ${key}: ${err}`);\n\t\t}\n\t}\n\n\tstopAll() {\n\t\tfor (let jobKey in this.jobs) {\n\t\t\ttry {\n\t\t\t\tthis.jobs[jobKey].stop();\n\t\t\t}\n\t\t\tcatch (err) {\n\t\n\t\t\t}\n\t\t}\n\t}\n\n\texists(key: string) {\n\t\treturn !!this.jobs[key];\n\t}\n}"]}
@@ -1,2 +1,2 @@
1
- "use strict";var __awaiter=this&&this.__awaiter||function(e,i,c,u){return new(c=c||Promise)(function(o,n){function r(e){try{a(u.next(e))}catch(e){n(e)}}function t(e){try{a(u.throw(e))}catch(e){n(e)}}function a(e){var n;e.done?o(e.value):((n=e.value)instanceof c?n:new c(function(e){e(n)})).then(r,t)}a((u=u.apply(e,i||[])).next())})},__generator=this&&this.__generator||function(r,t){var a,i,c,u={label:0,sent:function(){if(1&c[0])throw c[1];return c[1]},trys:[],ops:[]},l={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function e(o){return function(e){var n=[o,e];if(a)throw new TypeError("Generator is already executing.");for(;u=l&&n[l=0]?0:u;)try{if(a=1,i&&(c=2&n[0]?i.return:n[0]?i.throw||((c=i.return)&&c.call(i),0):i.next)&&!(c=c.call(i,n[1])).done)return c;switch(i=0,(n=c?[2&n[0],c.value]:n)[0]){case 0:case 1:c=n;break;case 4:return u.label++,{value:n[1],done:!1};case 5:u.label++,i=n[1],n=[0];continue;case 7:n=u.ops.pop(),u.trys.pop();continue;default:if(!(c=0<(c=u.trys).length&&c[c.length-1])&&(6===n[0]||2===n[0])){u=0;continue}if(3===n[0]&&(!c||n[1]>c[0]&&n[1]<c[3]))u.label=n[1];else if(6===n[0]&&u.label<c[1])u.label=c[1],c=n;else{if(!(c&&u.label<c[2])){c[2]&&u.ops.pop(),u.trys.pop();continue}u.label=c[2],u.ops.push(n)}}n=t.call(r,u)}catch(e){n=[6,e],i=0}finally{a=c=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")),mongo_manager_1=require("../managers/mongo.manager");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})||cron_job_collection_1.CronJobs.create({_id:(0,mongo_manager_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"}),n.some(function(e){return"Stuck Cron Job"===e.name})||cron_job_collection_1.CronJobs.create({_id:(0,mongo_manager_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"}),n.some(function(e){return e.running})&&cron_job_collection_1.CronJobs.updateMany({running:!0},{$set:{running:!1}}),[2]}})})}exports.loadServerCronJobs=loadServerCronJobs;
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(e,o,t,a){return new(t=t||Promise)(function(r,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?r(e.value):((n=e.value)instanceof t?n:new t(function(e){e(n)})).then(fulfilled,rejected)}step((a=a.apply(e,o||[])).next())})},__generator=this&&this.__generator||function(o,t){var a,i,c,l={label:0,sent:function(){if(1&c[0])throw c[1];return c[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(a)throw new TypeError("Generator is already executing.");for(;l=u&&n[u=0]?0:l;)try{if(a=1,i&&(c=2&n[0]?i.return:n[0]?i.throw||((c=i.return)&&c.call(i),0):i.next)&&!(c=c.call(i,n[1])).done)return c;switch(i=0,(n=c?[2&n[0],c.value]:n)[0]){case 0:case 1:c=n;break;case 4:return l.label++,{value:n[1],done:!1};case 5:l.label++,i=n[1],n=[0];continue;case 7:n=l.ops.pop(),l.trys.pop();continue;default:if(!(c=0<(c=l.trys).length&&c[c.length-1])&&(6===n[0]||2===n[0])){l=0;continue}if(3===n[0]&&(!c||n[1]>c[0]&&n[1]<c[3]))l.label=n[1];else if(6===n[0]&&l.label<c[1])l.label=c[1],c=n;else{if(!(c&&l.label<c[2])){c[2]&&l.ops.pop(),l.trys.pop();continue}l.label=c[2],l.ops.push(n)}}n=t.call(o,l)}catch(e){n=[6,e],i=0}finally{a=c=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")),mongo_manager_1=require("../managers/mongo.manager");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})||cron_job_collection_1.CronJobs.create({_id:(0,mongo_manager_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"}),n.some(function(e){return"Stuck Cron Job"===e.name})||cron_job_collection_1.CronJobs.create({_id:(0,mongo_manager_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"}),n.some(function(e){return e.running})&&cron_job_collection_1.CronJobs.updateMany({running:!0},{$set:{running:!1}}),[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","mongo_manager_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":"44CAAAA,uB,yFAAAC,QAAA,oCAAA,GACAC,gBAAAD,QAAA,2BAAA,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,GAC7DX,sBAAAI,SAASQ,OAAO,CACfC,KAAK,EAAAX,gBAAAY,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,EAGGpB,EAASG,KAAK,SAAAC,GAAK,MAAW,mBAAXA,EAAEC,IAAF,CAA2B,GAClDX,sBAAAI,SAASQ,OAAO,CACfC,KAAK,EAAAX,gBAAAY,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,EAGEpB,EAASG,KAAK,SAAAC,GAAK,OAAAA,EAAEY,OAAF,CAAS,GAC/BtB,sBAAAI,SAASuB,WAAW,CAACL,QAAS,CAAA,CAAI,EAAG,CAACM,KAAM,CAACN,QAAS,CAAA,CAAK,CAAC,CAAC,E,SAnC/DO,QAAA1B,mBAAAA","file":"cron-jobs.js","sourcesContent":["import { CronJobs } from '../collections/cron-job.collection';\nimport { objectIdHexString } from '../managers/mongo.manager';\n\nexport async function loadServerCronJobs() {\n\n\tlet cronJobs = await CronJobs.find({});\n\n\tif (!cronJobs.some(a => a.name === 'Email Merged Docs Cleanup')) {\n\t\tCronJobs.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\tCronJobs.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\tCronJobs.updateMany({running: true}, {$set: {running: false}});\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/fixtures/cron-jobs.ts"],"names":["cron_job_collection_1","require","mongo_manager_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,gBAAAD,QAAA,2BAAA,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,GAC7DX,sBAAAI,SAASQ,OAAO,CACfC,KAAK,EAAAX,gBAAAY,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,EAGGpB,EAASG,KAAK,SAAAC,GAAK,MAAW,mBAAXA,EAAEC,IAAF,CAA2B,GAClDX,sBAAAI,SAASQ,OAAO,CACfC,KAAK,EAAAX,gBAAAY,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,EAGEpB,EAASG,KAAK,SAAAC,GAAK,OAAAA,EAAEY,OAAF,CAAS,GAC/BtB,sBAAAI,SAASuB,WAAW,CAACL,QAAS,CAAA,CAAI,EAAG,CAACM,KAAM,CAACN,QAAS,CAAA,CAAK,CAAC,CAAC,E,SAnC/DO,QAAA1B,mBAAAA","file":"cron-jobs.js","sourcesContent":["import { CronJobs } from '../collections/cron-job.collection';\nimport { objectIdHexString } from '../managers/mongo.manager';\n\nexport async function loadServerCronJobs() {\n\n\tlet cronJobs = await CronJobs.find({});\n\n\tif (!cronJobs.some(a => a.name === 'Email Merged Docs Cleanup')) {\n\t\tCronJobs.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\tCronJobs.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\tCronJobs.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,a,i,c){return new(i=i||Promise)(function(n,t){function r(e){try{l(c.next(e))}catch(e){t(e)}}function o(e){try{l(c.throw(e))}catch(e){t(e)}}function l(e){var t;e.done?n(e.value):((t=e.value)instanceof i?t:new i(function(e){e(t)})).then(r,o)}l((c=c.apply(e,a||[])).next())})},__generator=this&&this.__generator||function(r,o){var l,a,i,c={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},u={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function e(n){return function(e){var t=[n,e];if(l)throw new TypeError("Generator is already executing.");for(;c=u&&t[u=0]?0:c;)try{if(l=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 c.label++,{value:t[1],done:!1};case 5:c.label++,a=t[1],t=[0];continue;case 7:t=c.ops.pop(),c.trys.pop();continue;default:if(!(i=0<(i=c.trys).length&&i[i.length-1])&&(6===t[0]||2===t[0])){c=0;continue}if(3===t[0]&&(!i||t[1]>i[0]&&t[1]<i[3]))c.label=t[1];else if(6===t[0]&&c.label<i[1])c.label=i[1],i=t;else{if(!(i&&c.label<i[2])){i[2]&&c.ops.pop(),c.trys.pop();continue}c.label=i[2],c.ops.push(t)}}t=o.call(r,c)}catch(e){t=[6,e],a=0}finally{l=i=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}},flag_collection_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadServerInit=void 0,require("../collections/flag.collection"));function loadServerInit(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,flag_collection_1.Flags.findOne({type:"Enable Debug"})];case 1:return e.sent()||flag_collection_1.Flags.insertOne({type:"Enable Debug",value:!1}),[2]}})})}exports.loadServerInit=loadServerInit;
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(e,r,o,l){return new(o=o||Promise)(function(n,t){function fulfilled(e){try{step(l.next(e))}catch(e){t(e)}}function rejected(e){try{step(l.throw(e))}catch(e){t(e)}}function step(e){var t;e.done?n(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(fulfilled,rejected)}step((l=l.apply(e,r||[])).next())})},__generator=this&&this.__generator||function(r,o){var l,i,a,c={label:0,sent:function(){if(1&a[0])throw a[1];return a[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(n){return function(e){var t=[n,e];if(l)throw new TypeError("Generator is already executing.");for(;c=u&&t[u=0]?0:c;)try{if(l=1,i&&(a=2&t[0]?i.return:t[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,t[1])).done)return a;switch(i=0,(t=a?[2&t[0],a.value]:t)[0]){case 0:case 1:a=t;break;case 4:return c.label++,{value:t[1],done:!1};case 5:c.label++,i=t[1],t=[0];continue;case 7:t=c.ops.pop(),c.trys.pop();continue;default:if(!(a=0<(a=c.trys).length&&a[a.length-1])&&(6===t[0]||2===t[0])){c=0;continue}if(3===t[0]&&(!a||t[1]>a[0]&&t[1]<a[3]))c.label=t[1];else if(6===t[0]&&c.label<a[1])c.label=a[1],a=t;else{if(!(a&&c.label<a[2])){a[2]&&c.ops.pop(),c.trys.pop();continue}c.label=a[2],c.ops.push(t)}}t=o.call(r,c)}catch(e){t=[6,e],i=0}finally{l=a=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}},flag_collection_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadServerInit=void 0,require("../collections/flag.collection"));function loadServerInit(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,flag_collection_1.Flags.findOne({type:"Enable Debug"})];case 1:return e.sent()||flag_collection_1.Flags.insertOne({type:"Enable Debug",value:!1}),[2]}})})}exports.loadServerInit=loadServerInit;
2
2
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/fixtures/init.ts"],"names":["flag_collection_1","require","loadServerInit","Flags","findOne","type","_a","sent","insertOne","value","exports"],"mappings":"44CACAA,mB,qFAAAC,QAAA,gCAAA,GAEA,SAAsBC,iB,0GACC,MAAA,CAAA,EAAMF,kBAAAG,MAAMC,QAAQ,CAACC,KAAM,cAAc,CAAC,G,cAA1CC,EAAAC,KAAA,GAGrBP,kBAAAG,MAAMK,UAAU,CAACH,KAAM,eAAgBI,MAAO,CAAA,CAAK,CAAC,E,SAJtDC,QAAAR,eAAAA","file":"init.js","sourcesContent":["import { objectIdHexString } from '../managers/mongo.manager';\nimport { Flags } from '../collections/flag.collection';\n\nexport async function loadServerInit() {\n\tlet enableDebugFlag = await Flags.findOne({type: 'Enable Debug'});\n\n\tif (!enableDebugFlag) {\n\t\tFlags.insertOne({type: 'Enable Debug', value: false});\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/fixtures/init.ts"],"names":["flag_collection_1","require","loadServerInit","Flags","findOne","type","_a","sent","insertOne","value","exports"],"mappings":"k8CACAA,mB,qFAAAC,QAAA,gCAAA,GAEA,SAAsBC,iB,0GACC,MAAA,CAAA,EAAMF,kBAAAG,MAAMC,QAAQ,CAACC,KAAM,cAAc,CAAC,G,cAA1CC,EAAAC,KAAA,GAGrBP,kBAAAG,MAAMK,UAAU,CAACH,KAAM,eAAgBI,MAAO,CAAA,CAAK,CAAC,E,SAJtDC,QAAAR,eAAAA","file":"init.js","sourcesContent":["import { objectIdHexString } from '../managers/mongo.manager';\nimport { Flags } from '../collections/flag.collection';\n\nexport async function loadServerInit() {\n\tlet enableDebugFlag = await Flags.findOne({type: 'Enable Debug'});\n\n\tif (!enableDebugFlag) {\n\t\tFlags.insertOne({type: 'Enable Debug', value: false});\n\t}\n}"]}
package/http/auth.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var __awaiter=this&&this.__awaiter||function(e,i,a,l){return new(a=a||Promise)(function(n,r){function s(e){try{o(l.next(e))}catch(e){r(e)}}function t(e){try{o(l.throw(e))}catch(e){r(e)}}function o(e){var r;e.done?n(e.value):((r=e.value)instanceof a?r:new a(function(e){e(r)})).then(s,t)}o((l=l.apply(e,i||[])).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:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(d[Symbol.iterator]=function(){return this}),d;function e(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"),__1=require(".."),mongo_manager_1=require("../managers/mongo.manager"),simpl_schema_1=require("simpl-schema"),bodyParser=require("body-parser"),jwt_decode_1=require("jwt-decode");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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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,mongo_manager_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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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:__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 ("+__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:__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 ("+__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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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().callMethodInternal.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,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"),__1=require(".."),mongo_manager_1=require("../managers/mongo.manager"),simpl_schema_1=require("simpl-schema"),bodyParser=require("body-parser"),jwt_decode_1=require("jwt-decode");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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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,mongo_manager_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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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:__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 ("+__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:__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 ("+__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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__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().callMethodInternal.call(d.getMethodManager(),"resetUserPassword",s._id),o.send(JSON.stringify({error:!1,result:""})),e.label=5;case 5: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","__1","mongo_manager_1","simpl_schema_1","bodyParser","jwt_decode_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","callMethodInternal","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 ResolveIOMainServer from '../server-app';\nimport { ResolveIOServer } from '..';\nimport { objectIdHexString } from '../managers/mongo.manager';\nimport { UserModel } from '../models/user.model';\nimport SimpleSchema from 'simpl-schema';\nimport * as bodyParser from 'body-parser';\nimport jwt_decode from 'jwt-decode';\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\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().callMethodInternal.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":["user_collection_1","require","jwt","handlebars","__1","mongo_manager_1","simpl_schema_1","bodyParser","jwt_decode_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","callMethodInternal","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 ResolveIOMainServer from '../server-app';\nimport { ResolveIOServer } from '..';\nimport { objectIdHexString } from '../managers/mongo.manager';\nimport { UserModel } from '../models/user.model';\nimport SimpleSchema from 'simpl-schema';\nimport * as bodyParser from 'body-parser';\nimport jwt_decode from 'jwt-decode';\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\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().callMethodInternal.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/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,n,r,t){void 0===t&&(t=r);var o=Object.getOwnPropertyDescriptor(n,r);o&&("get"in o?n.__esModule:!o.writable&&!o.configurable)||(o={enumerable:!0,get:function(){return n[r]}}),Object.defineProperty(e,t,o)}:function(e,n,r,t){e[t=void 0===t?r:t]=n[r]}),__exportStar=this&&this.__exportStar||function(e,n){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(n,r)||__createBinding(n,e,r)},__awaiter=this&&this.__awaiter||function(e,a,u,c){return new(u=u||Promise)(function(r,n){function t(e){try{i(c.next(e))}catch(e){n(e)}}function o(e){try{i(c.throw(e))}catch(e){n(e)}}function i(e){var n;e.done?r(e.value):((n=e.value)instanceof u?n:new u(function(e){e(n)})).then(t,o)}i((c=c.apply(e,a||[])).next())})},__generator=this&&this.__generator||function(t,o){var i,a,u,c={label:0,sent:function(){if(1&u[0])throw u[1];return u[1]},trys:[],ops:[]},l={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function e(r){return function(e){var n=[r,e];if(i)throw new TypeError("Generator is already executing.");for(;c=l&&n[l=0]?0:c;)try{if(i=1,a&&(u=2&n[0]?a.return:n[0]?a.throw||((u=a.return)&&u.call(a),0):a.next)&&!(u=u.call(a,n[1])).done)return u;switch(a=0,(n=u?[2&n[0],u.value]:n)[0]){case 0:case 1:u=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(!(u=0<(u=c.trys).length&&u[u.length-1])&&(6===n[0]||2===n[0])){c=0;continue}if(3===n[0]&&(!u||n[1]>u[0]&&n[1]<u[3]))c.label=n[1];else if(6===n[0]&&c.label<u[1])c.label=u[1],u=n;else{if(!(u&&c.label<u[2])){u[2]&&c.ops.pop(),c.trys.pop();continue}c.label=u[2],c.ops.push(n)}}n=o.call(t,c)}catch(e){n=[6,e],a=0}finally{i=u=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}}},mongodb_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResolveIOServer=void 0,require("mongodb")),mongo_manager_1=require("./managers/mongo.manager"),ResolveIOServer=function(){function a(e,n,r,t,o,i){void 0===o&&(o=!0),void 0===i&&(i=!1),a._serverConfig=e,a._clientRoutes=n,a._client=r,a._clientDir=t,a._sesMail=o,a._standardProgram=i}return a.connectAndRun=function(){var t=this;return new Promise(function(r,n){mongodb_1.MongoClient.connect(a._serverConfig.MONGO_URL).then(function(e){a._mongoConnection=e,a._mainDB=e.db(a._serverConfig.DATABASE),a._mongoManager=new mongo_manager_1.MongoManager,setTimeout(function(){return __awaiter(t,void 0,void 0,function(){var n;return __generator(this,function(e){switch(e.label){case 0:return[4,Promise.resolve().then(function(){return require("./server-app")})];case 1:return n=e.sent().default,a._mainServer=new n(this,a._serverConfig,a._clientRoutes,this._clientDir,this._sesMail,this._standardProgram),r(!0),[2]}})})},1)},function(e){console.error(new Date,"MONGO CLIENT CONNECT FAILED",JSON.stringify(e,null,2)),n(),process.exit(1)})})},a.getClientName=function(){return this._client},a.getMainServer=function(){return a._mainServer},a.getMongoConnection=function(){return a._mongoConnection},a.getMainDB=function(){return a._mainDB},a.getMongoManager=function(){return a._mongoManager},a._serverConfig=null,a._clientRoutes=[],a._mongoConnection=null,a._mainDB=null,a._mainServer=null,a._mongoManager=null,a._client="",a._clientDir="",a._sesMail=!0,a._standardProgram=!1,a}();exports.ResolveIOServer=ResolveIOServer,__exportStar(require("./public_api"),exports);
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,n,o){void 0===o&&(o=n);var t=Object.getOwnPropertyDescriptor(r,n);t&&("get"in t?r.__esModule:!t.writable&&!t.configurable)||(t={enumerable:!0,get:function(){return r[n]}}),Object.defineProperty(e,o,t)}:function(e,r,n,o){e[o=void 0===o?n:o]=r[n]}),__exportStar=this&&this.__exportStar||function(e,r){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(r,n)||__createBinding(r,e,n)},__awaiter=this&&this.__awaiter||function(e,o,t,i){return new(t=t||Promise)(function(n,r){function fulfilled(e){try{step(i.next(e))}catch(e){r(e)}}function rejected(e){try{step(i.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((i=i.apply(e,o||[])).next())})},__generator=this&&this.__generator||function(o,t){var i,l,s,v={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},a={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function verb(n){return function(e){var r=[n,e];if(i)throw new TypeError("Generator is already executing.");for(;v=a&&r[a=0]?0:v;)try{if(i=1,l&&(s=2&r[0]?l.return:r[0]?l.throw||((s=l.return)&&s.call(l),0):l.next)&&!(s=s.call(l,r[1])).done)return s;switch(l=0,(r=s?[2&r[0],s.value]:r)[0]){case 0:case 1:s=r;break;case 4:return v.label++,{value:r[1],done:!1};case 5:v.label++,l=r[1],r=[0];continue;case 7:r=v.ops.pop(),v.trys.pop();continue;default:if(!(s=0<(s=v.trys).length&&s[s.length-1])&&(6===r[0]||2===r[0])){v=0;continue}if(3===r[0]&&(!s||r[1]>s[0]&&r[1]<s[3]))v.label=r[1];else if(6===r[0]&&v.label<s[1])v.label=s[1],s=r;else{if(!(s&&v.label<s[2])){s[2]&&v.ops.pop(),v.trys.pop();continue}v.label=s[2],v.ops.push(r)}}r=t.call(o,v)}catch(e){r=[6,e],l=0}finally{i=s=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}}},mongodb_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResolveIOServer=void 0,require("mongodb")),mongo_manager_1=require("./managers/mongo.manager"),ResolveIOServer=function(){function ResolveIOServer(e,r,n,o,t,i){void 0===t&&(t=!0),void 0===i&&(i=!1),ResolveIOServer._serverConfig=e,ResolveIOServer._clientRoutes=r,ResolveIOServer._client=n,ResolveIOServer._clientDir=o,ResolveIOServer._sesMail=t,ResolveIOServer._standardProgram=i}return ResolveIOServer.connectAndRun=function(){var o=this;return new Promise(function(n,r){mongodb_1.MongoClient.connect(ResolveIOServer._serverConfig.MONGO_URL).then(function(e){ResolveIOServer._mongoConnection=e,ResolveIOServer._mainDB=e.db(ResolveIOServer._serverConfig.DATABASE),ResolveIOServer._mongoManager=new mongo_manager_1.MongoManager,setTimeout(function(){return __awaiter(o,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return[4,Promise.resolve().then(function(){return require("./server-app")})];case 1:return r=e.sent().default,ResolveIOServer._mainServer=new r(this,ResolveIOServer._serverConfig,ResolveIOServer._clientRoutes,this._clientDir,this._sesMail,this._standardProgram),n(!0),[2]}})})},1)},function(e){console.error(new Date,"MONGO CLIENT CONNECT FAILED",JSON.stringify(e,null,2)),r(),process.exit(1)})})},ResolveIOServer.getClientName=function(){return this._client},ResolveIOServer.getMainServer=function(){return ResolveIOServer._mainServer},ResolveIOServer.getMongoConnection=function(){return ResolveIOServer._mongoConnection},ResolveIOServer.getMainDB=function(){return ResolveIOServer._mainDB},ResolveIOServer.getMongoManager=function(){return ResolveIOServer._mongoManager},ResolveIOServer._serverConfig=null,ResolveIOServer._clientRoutes=[],ResolveIOServer._mongoConnection=null,ResolveIOServer._mainDB=null,ResolveIOServer._mainServer=null,ResolveIOServer._mongoManager=null,ResolveIOServer._client="",ResolveIOServer._clientDir="",ResolveIOServer._sesMail=!0,ResolveIOServer._standardProgram=!1,ResolveIOServer}();exports.ResolveIOServer=ResolveIOServer,__exportStar(require("./public_api"),exports);
2
2
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":["mongodb_1","require","mongo_manager_1","ResolveIOServer","serverConfig","clientRoutes","client","clientDir","sesMail","standardProgram","_serverConfig","_clientRoutes","_client","_clientDir","_sesMail","_standardProgram","connectAndRun","_this","this","Promise","resolve","reject","MongoClient","connect","then","dbConnection","_mongoConnection","_mainDB","db","_mongoManager","MongoManager","setTimeout","__awaiter","serverApp","_a","sent","default","_mainServer","err","console","error","Date","JSON","stringify","process","exit","getClientName","getMainServer","getMongoConnection","getMainDB","getMongoManager","exports","__exportStar"],"mappings":"g2DAAAA,W,sFAAAC,QAAA,SAAA,GACAC,gBAAAD,QAAA,0BAAA,EAGAE,gBAAA,WAYC,SAAAA,EAAYC,EAAcC,EAAwBC,EAAgBC,EAAWC,EAAgBC,GAAhB,KAAA,IAAAD,IAAAA,EAAA,CAAA,GAAgB,KAAA,IAAAC,IAAAA,EAAA,CAAA,GAC5FN,EAAgBO,cAAgBN,EAChCD,EAAgBQ,cAAgBN,EAChCF,EAAgBS,QAAUN,EAC1BH,EAAgBU,WAAaN,EAC7BJ,EAAgBW,SAAWN,EAC3BL,EAAgBY,iBAAmBN,CACpC,CA6CD,OA3CeN,EAAAa,cAAd,WAAA,IAAAC,EAAAC,KACC,OAAO,IAAIC,QAAQ,SAACC,EAASC,GAC5BrB,UAAAsB,YAAYC,QAAQpB,EAAgBO,cAAyB,SAAC,EAAEc,KAAK,SAAAC,GAEnEtB,EAAgBuB,iBAAmBD,EACnCtB,EAAgBwB,QAAUF,EAAaG,GAAGzB,EAAgBO,cAAwB,QAAC,EAEnFP,EAAgB0B,cAAgB,IAAI3B,gBAAA4B,aAEpCC,WAAW,WAAA,OAAAC,UAAAf,EAAA,KAAA,EAAA,KAAA,EAAA,W,iEACO,MAAA,CAAA,EAAAE,QAAAC,QAAA,EAAAI,KAAA,WAAA,OAAAvB,QAAa,cAAc,CAAA,CAAA,G,cAAxCgC,EAAaC,EAAAC,KAA4B,EAAEC,QAC/CjC,EAAgBkC,YAAc,IAAIJ,EAAUf,KAAMf,EAAgBO,cAAeP,EAAgBQ,cAAeO,KAAKL,WAAYK,KAAKJ,SAAUI,KAAKH,gBAAgB,EAErKK,EAAQ,CAAA,CAAI,E,UACV,CAAC,CAEN,EAAG,SAAAkB,GACFC,QAAQC,MAAM,IAAIC,KAAQ,8BAA+BC,KAAKC,UAAUL,EAAK,KAAM,CAAC,CAAC,EACrFjB,EAAM,EACNuB,QAAQC,KAAK,CAAC,CACf,CAAC,CACF,CAAC,CACF,EAEc1C,EAAA2C,cAAd,WACC,OAAO5B,KAAKN,OACb,EAEcT,EAAA4C,cAAd,WACC,OAAO5C,EAAgBkC,WACxB,EAEclC,EAAA6C,mBAAd,WACC,OAAO7C,EAAgBuB,gBACxB,EAEcvB,EAAA8C,UAAd,WACC,OAAO9C,EAAgBwB,OACxB,EAEcxB,EAAA+C,gBAAd,WACC,OAAO/C,EAAgB0B,aACxB,EA9De1B,EAAAO,cAAgB,KAChBP,EAAAQ,cAAgB,GAChBR,EAAAuB,iBAAgC,KAChCvB,EAAAwB,QAAc,KACdxB,EAAAkC,YAAmC,KACnClC,EAAA0B,cAA8B,KAC9B1B,EAAAS,QAAU,GACVT,EAAAU,WAAa,GACbV,EAAAW,SAAW,CAAA,EACXX,EAAAY,iBAAmB,CAAA,EAsDnCZ,C,EAAC,EAhEYgD,QAAAhD,gBAAAA,gBAkEbiD,aAAAnD,QAAA,cAAA,EAAAkD,OAAA","file":"index.js","sourcesContent":["import { Db, MongoClient } from 'mongodb';\nimport { MongoManager } from './managers/mongo.manager';\nimport ResolveIOMainServer from './server-app';\n\nexport class ResolveIOServer {\n\tprivate static _serverConfig = null;\n\tprivate static _clientRoutes = [];\n\tprivate static _mongoConnection: MongoClient = null;\n\tprivate static _mainDB: Db = null;\n\tprivate static _mainServer: ResolveIOMainServer = null;\n\tprivate static _mongoManager: MongoManager = null;\n\tprivate static _client = '';\n\tprivate static _clientDir = '';\n\tprivate static _sesMail = true;\n\tprivate static _standardProgram = false;\n\n\tconstructor(serverConfig, clientRoutes: string[], client: string, clientDir, sesMail = true, standardProgram = false) {\n\t\tResolveIOServer._serverConfig = serverConfig;\n\t\tResolveIOServer._clientRoutes = clientRoutes;\n\t\tResolveIOServer._client = client;\n\t\tResolveIOServer._clientDir = clientDir;\n\t\tResolveIOServer._sesMail = sesMail;\n\t\tResolveIOServer._standardProgram = standardProgram;\n\t}\n\n\tpublic static connectAndRun() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tMongoClient.connect(ResolveIOServer._serverConfig['MONGO_URL']).then(dbConnection => {\n\t\t\t\t// dbConnection.db().listCollections().toArray().then(collections => {\n\t\t\t\t\tResolveIOServer._mongoConnection = dbConnection;\n\t\t\t\t\tResolveIOServer._mainDB = dbConnection.db(ResolveIOServer._serverConfig['DATABASE']);\n\t\t\t\t\t// ResolveIOServer._mongoManager = new MongoManager(collections);\n\t\t\t\t\tResolveIOServer._mongoManager = new MongoManager();\n\t\t\t\t\t\n\t\t\t\t\tsetTimeout(async () => {\n\t\t\t\t\t\tlet serverApp = (await import('./server-app')).default;\n\t\t\t\t\t\tResolveIOServer._mainServer = new serverApp(this, ResolveIOServer._serverConfig, ResolveIOServer._clientRoutes, this._clientDir, this._sesMail, this._standardProgram);\n\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t}, 1);\n\t\t\t\t// });\n\t\t\t}, err => {\n\t\t\t\tconsole.error(new Date(), 'MONGO CLIENT CONNECT FAILED', JSON.stringify(err, null, 2));\n\t\t\t\treject();\n\t\t\t\tprocess.exit(1);\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic static getClientName() {\n\t\treturn this._client;\n\t}\n\n\tpublic static getMainServer() {\n\t\treturn ResolveIOServer._mainServer;\n\t}\n\n\tpublic static getMongoConnection() {\n\t\treturn ResolveIOServer._mongoConnection;\n\t}\n\n\tpublic static getMainDB() {\n\t\treturn ResolveIOServer._mainDB;\n\t}\n\n\tpublic static getMongoManager() {\n\t\treturn ResolveIOServer._mongoManager;\n\t}\n}\n\nexport * from './public_api';"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":["mongodb_1","require","mongo_manager_1","ResolveIOServer","serverConfig","clientRoutes","client","clientDir","sesMail","standardProgram","_serverConfig","_clientRoutes","_client","_clientDir","_sesMail","_standardProgram","connectAndRun","_this","this","Promise","resolve","reject","MongoClient","connect","then","dbConnection","_mongoConnection","_mainDB","db","_mongoManager","MongoManager","setTimeout","__awaiter","serverApp","_a","sent","default","_mainServer","err","console","error","Date","JSON","stringify","process","exit","getClientName","getMainServer","getMongoConnection","getMainDB","getMongoManager","exports","__exportStar"],"mappings":"s5DAAAA,W,sFAAAC,QAAA,SAAA,GACAC,gBAAAD,QAAA,0BAAA,EAGAE,gBAAA,WAYC,SAAAA,gBAAYC,EAAcC,EAAwBC,EAAgBC,EAAWC,EAAgBC,GAAhB,KAAA,IAAAD,IAAAA,EAAA,CAAA,GAAgB,KAAA,IAAAC,IAAAA,EAAA,CAAA,GAC5FN,gBAAgBO,cAAgBN,EAChCD,gBAAgBQ,cAAgBN,EAChCF,gBAAgBS,QAAUN,EAC1BH,gBAAgBU,WAAaN,EAC7BJ,gBAAgBW,SAAWN,EAC3BL,gBAAgBY,iBAAmBN,CACpC,CA6CD,OA3CeN,gBAAAa,cAAd,WAAA,IAAAC,EAAAC,KACC,OAAO,IAAIC,QAAQ,SAACC,EAASC,GAC5BrB,UAAAsB,YAAYC,QAAQpB,gBAAgBO,cAAyB,SAAC,EAAEc,KAAK,SAAAC,GAEnEtB,gBAAgBuB,iBAAmBD,EACnCtB,gBAAgBwB,QAAUF,EAAaG,GAAGzB,gBAAgBO,cAAwB,QAAC,EAEnFP,gBAAgB0B,cAAgB,IAAI3B,gBAAA4B,aAEpCC,WAAW,WAAA,OAAAC,UAAAf,EAAA,KAAA,EAAA,KAAA,EAAA,W,iEACO,MAAA,CAAA,EAAAE,QAAAC,QAAA,EAAAI,KAAA,WAAA,OAAAvB,QAAa,cAAc,CAAA,CAAA,G,cAAxCgC,EAAaC,EAAAC,KAA4B,EAAEC,QAC/CjC,gBAAgBkC,YAAc,IAAIJ,EAAUf,KAAMf,gBAAgBO,cAAeP,gBAAgBQ,cAAeO,KAAKL,WAAYK,KAAKJ,SAAUI,KAAKH,gBAAgB,EAErKK,EAAQ,CAAA,CAAI,E,UACV,CAAC,CAEN,EAAG,SAAAkB,GACFC,QAAQC,MAAM,IAAIC,KAAQ,8BAA+BC,KAAKC,UAAUL,EAAK,KAAM,CAAC,CAAC,EACrFjB,EAAM,EACNuB,QAAQC,KAAK,CAAC,CACf,CAAC,CACF,CAAC,CACF,EAEc1C,gBAAA2C,cAAd,WACC,OAAO5B,KAAKN,OACb,EAEcT,gBAAA4C,cAAd,WACC,OAAO5C,gBAAgBkC,WACxB,EAEclC,gBAAA6C,mBAAd,WACC,OAAO7C,gBAAgBuB,gBACxB,EAEcvB,gBAAA8C,UAAd,WACC,OAAO9C,gBAAgBwB,OACxB,EAEcxB,gBAAA+C,gBAAd,WACC,OAAO/C,gBAAgB0B,aACxB,EA9De1B,gBAAAO,cAAgB,KAChBP,gBAAAQ,cAAgB,GAChBR,gBAAAuB,iBAAgC,KAChCvB,gBAAAwB,QAAc,KACdxB,gBAAAkC,YAAmC,KACnClC,gBAAA0B,cAA8B,KAC9B1B,gBAAAS,QAAU,GACVT,gBAAAU,WAAa,GACbV,gBAAAW,SAAW,CAAA,EACXX,gBAAAY,iBAAmB,CAAA,EAsDnCZ,e,EAAC,EAhEYgD,QAAAhD,gBAAAA,gBAkEbiD,aAAAnD,QAAA,cAAA,EAAAkD,OAAA","file":"index.js","sourcesContent":["import { Db, MongoClient } from 'mongodb';\nimport { MongoManager } from './managers/mongo.manager';\nimport ResolveIOMainServer from './server-app';\n\nexport class ResolveIOServer {\n\tprivate static _serverConfig = null;\n\tprivate static _clientRoutes = [];\n\tprivate static _mongoConnection: MongoClient = null;\n\tprivate static _mainDB: Db = null;\n\tprivate static _mainServer: ResolveIOMainServer = null;\n\tprivate static _mongoManager: MongoManager = null;\n\tprivate static _client = '';\n\tprivate static _clientDir = '';\n\tprivate static _sesMail = true;\n\tprivate static _standardProgram = false;\n\n\tconstructor(serverConfig, clientRoutes: string[], client: string, clientDir, sesMail = true, standardProgram = false) {\n\t\tResolveIOServer._serverConfig = serverConfig;\n\t\tResolveIOServer._clientRoutes = clientRoutes;\n\t\tResolveIOServer._client = client;\n\t\tResolveIOServer._clientDir = clientDir;\n\t\tResolveIOServer._sesMail = sesMail;\n\t\tResolveIOServer._standardProgram = standardProgram;\n\t}\n\n\tpublic static connectAndRun() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tMongoClient.connect(ResolveIOServer._serverConfig['MONGO_URL']).then(dbConnection => {\n\t\t\t\t// dbConnection.db().listCollections().toArray().then(collections => {\n\t\t\t\t\tResolveIOServer._mongoConnection = dbConnection;\n\t\t\t\t\tResolveIOServer._mainDB = dbConnection.db(ResolveIOServer._serverConfig['DATABASE']);\n\t\t\t\t\t// ResolveIOServer._mongoManager = new MongoManager(collections);\n\t\t\t\t\tResolveIOServer._mongoManager = new MongoManager();\n\t\t\t\t\t\n\t\t\t\t\tsetTimeout(async () => {\n\t\t\t\t\t\tlet serverApp = (await import('./server-app')).default;\n\t\t\t\t\t\tResolveIOServer._mainServer = new serverApp(this, ResolveIOServer._serverConfig, ResolveIOServer._clientRoutes, this._clientDir, this._sesMail, this._standardProgram);\n\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t}, 1);\n\t\t\t\t// });\n\t\t\t}, err => {\n\t\t\t\tconsole.error(new Date(), 'MONGO CLIENT CONNECT FAILED', JSON.stringify(err, null, 2));\n\t\t\t\treject();\n\t\t\t\tprocess.exit(1);\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic static getClientName() {\n\t\treturn this._client;\n\t}\n\n\tpublic static getMainServer() {\n\t\treturn ResolveIOServer._mainServer;\n\t}\n\n\tpublic static getMongoConnection() {\n\t\treturn ResolveIOServer._mongoConnection;\n\t}\n\n\tpublic static getMainDB() {\n\t\treturn ResolveIOServer._mainDB;\n\t}\n\n\tpublic static getMongoManager() {\n\t\treturn ResolveIOServer._mongoManager;\n\t}\n}\n\nexport * from './public_api';"]}
@@ -1,2 +1,2 @@
1
- "use strict";var __awaiter=this&&this.__awaiter||function(e,s,a,c){return new(a=a||Promise)(function(t,n){function o(e){try{i(c.next(e))}catch(e){n(e)}}function r(e){try{i(c.throw(e))}catch(e){n(e)}}function i(e){var n;e.done?t(e.value):((n=e.value)instanceof a?n:new a(function(e){e(n)})).then(o,r)}i((c=c.apply(e,s||[])).next())})},__generator=this&&this.__generator||function(o,r){var i,s,a,c={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},_={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(_[Symbol.iterator]=function(){return this}),_;function e(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,s&&(a=2&n[0]?s.return:n[0]?s.throw||((a=s.return)&&a.call(s),0):s.next)&&!(a=a.call(s,n[1])).done)return a;switch(s=0,(n=a?[2&n[0],a.value]:n)[0]){case 0:case 1:a=n;break;case 4:return c.label++,{value:n[1],done:!1};case 5:c.label++,s=n[1],n=[0];continue;case 7:n=c.ops.pop(),c.trys.pop();continue;default:if(!(a=0<(a=c.trys).length&&a[a.length-1])&&(6===n[0]||2===n[0])){c=0;continue}if(3===n[0]&&(!a||n[1]>a[0]&&n[1]<a[3]))c.label=n[1];else if(6===n[0]&&c.label<a[1])c.label=a[1],a=n;else{if(!(a&&c.label<a[2])){a[2]&&c.ops.pop(),c.trys.pop();continue}c.label=a[2],c.ops.push(n)}}n=r.call(o,c)}catch(e){n=[6,e],s=0}finally{i=a=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"),mongo_manager_1=require("../managers/mongo.manager"),CronManager=function(){function e(e){this._jobs=[],this._mainServer=e,this._cronManager=new cron_1.CronJobManager,this.watchCrons()}return e.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.filter(function(e){return e._id===o.documentKey._id})[0])?(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.filter(function(e){return e._id===o.documentKey._id})[0],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.filter(function(e){return e._id===o.documentKey._id})[0],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]}})})},e.prototype.doesCronJobExist=function(e){return this._cronManager.exists(e.name)},e.prototype.doesCronJobNameExist=function(e){return this._cronManager.exists(e)},e.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)}},e.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}}))},e.prototype.removeCronJob=function(e){this.doesCronJobNameExist(e)&&this._cronManager.delete(e)},e.prototype.startCronJob=function(e){this.doesCronJobExist(e)&&this._cronManager.start(e.name)},e.prototype.stopCronJob=function(e){this.doesCronJobExist(e)&&this._cronManager.stop(e.name)},e.prototype.stopAllCronJobs=function(){this._cronManager.stopAll()},e.prototype.runCronJob=function(a){var e=this,n=new Date;cron_job_collection_1.CronJobs.findOneAndUpdate({$and:[{_id:a._id},{running:!1},{$or:[{next_run:{$exists:!1}},{next_run:null},{next_run:{$lte:n}}]}]},{$set:{running:!0}}).then(function(s){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 s?(t={_id:(0,mongo_manager_1.objectIdHexString)(),name:s.name,reoccuring:s.repeat,time_to_run:s.time_to_run,method_name:s.method_run,id_cronjob:s._id,server_restart:!0,passed:!0,error:"",date_scheduled:s.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(a,null,2)),s.repeat?(n=new Date(this._cronManager.getJob(s.name).nextDate().ts),t.date_next=n,cron_job_collection_1.CronJobs.updateOne({_id:s._id},{$set:{running:!1,next_run:n}})):cron_job_collection_1.CronJobs.deleteOne({_id:s._id}),[2]})})},3e5),e.label=2;case 2:return(e.trys.push([2,11,12,13]),s.method_run_data)?[4,this._mainServer.getMethodManager().callMethodCron(s.method_run,s.method_run_data)]:[3,4];case 3:return e.sent(),[3,6];case 4:return[4,this._mainServer.getMethodManager().callMethodCron(s.method_run)];case 5:e.sent(),e.label=6;case 6:return s.method_complete?s.method_complete_data?[4,this._mainServer.getMethodManager().callMethodCron(s.method_complete,s.method_complete_data)]:[3,8]:[3,10];case 7:return e.sent(),[3,10];case 8:return[4,this._mainServer.getMethodManager().callMethodCron(s.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,s.repeat?(r=new Date(this._cronManager.getJob(s.name).nextDate().ts),t.date_next=r,cron_job_collection_1.CronJobs.updateOne({_id:s._id},{$set:{running:!1,next_run:r}})):cron_job_collection_1.CronJobs.deleteOne({_id:s._id}),[3,13];case 12:return clearTimeout(n),[7];case 13:s.repeat?(r=new Date(this._cronManager.getJob(s.name).nextDate().ts),t.date_next=r,cron_job_collection_1.CronJobs.updateOne({_id:s._id},{$set:{running:!1,next_run:r}})):cron_job_collection_1.CronJobs.deleteOne({_id:s._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(){})},e}();exports.CronManager=CronManager;
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"),mongo_manager_1=require("../managers/mongo.manager"),CronManager=function(){function CronManager(e){this._jobs=[],this._mainServer=e,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.filter(function(e){return e._id===o.documentKey._id})[0])?(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.filter(function(e){return e._id===o.documentKey._id})[0],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.filter(function(e){return e._id===o.documentKey._id})[0],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,mongo_manager_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,this._mainServer.getMethodManager().callMethodCron(a.method_run,a.method_run_data)]:[3,4];case 3:return e.sent(),[3,6];case 4:return[4,this._mainServer.getMethodManager().callMethodCron(a.method_run)];case 5:e.sent(),e.label=6;case 6:return a.method_complete?a.method_complete_data?[4,this._mainServer.getMethodManager().callMethodCron(a.method_complete,a.method_complete_data)]:[3,8]:[3,10];case 7:return e.sent(),[3,10];case 8:return[4,this._mainServer.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;
2
2
  //# sourceMappingURL=cron.manager.js.map