@resolveio/server-lib 20.7.5 → 20.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/client-server-app.js +1 -1
  2. package/client-server-app.js.map +1 -1
  3. package/collections/app-status.collection.js +1 -1
  4. package/collections/app-status.collection.js.map +1 -1
  5. package/collections/counter.collection.js +1 -1
  6. package/collections/counter.collection.js.map +1 -1
  7. package/collections/cron-job-history.collection.js +1 -1
  8. package/collections/cron-job-history.collection.js.map +1 -1
  9. package/collections/cron-job.collection.js +1 -1
  10. package/collections/cron-job.collection.js.map +1 -1
  11. package/collections/email-history.collection.js +1 -1
  12. package/collections/email-history.collection.js.map +1 -1
  13. package/collections/email-verified.collection.js +1 -1
  14. package/collections/email-verified.collection.js.map +1 -1
  15. package/collections/file.collection.js +1 -1
  16. package/collections/file.collection.js.map +1 -1
  17. package/collections/flag-update.collection.js +1 -1
  18. package/collections/flag-update.collection.js.map +1 -1
  19. package/collections/flag.collection.js +1 -1
  20. package/collections/flag.collection.js.map +1 -1
  21. package/collections/log-method-latency.collection.js +1 -1
  22. package/collections/log-method-latency.collection.js.map +1 -1
  23. package/collections/log-subscription.collection.js +1 -1
  24. package/collections/log-subscription.collection.js.map +1 -1
  25. package/collections/log.collection.js +1 -1
  26. package/collections/log.collection.js.map +1 -1
  27. package/collections/logged-in-users.collection.js +1 -1
  28. package/collections/logged-in-users.collection.js.map +1 -1
  29. package/collections/method-response.collection.js +1 -1
  30. package/collections/method-response.collection.js.map +1 -1
  31. package/collections/monitor-cpu.collection.js +1 -1
  32. package/collections/monitor-cpu.collection.js.map +1 -1
  33. package/collections/monitor-function.collection.js +1 -1
  34. package/collections/monitor-function.collection.js.map +1 -1
  35. package/collections/monitor-memory.collection.js +1 -1
  36. package/collections/monitor-memory.collection.js.map +1 -1
  37. package/collections/monitor-mongo.collection.js +1 -1
  38. package/collections/monitor-mongo.collection.js.map +1 -1
  39. package/collections/notification.collection.js +1 -1
  40. package/collections/notification.collection.js.map +1 -1
  41. package/collections/report-builder-dashboard-builder.collection.js +1 -1
  42. package/collections/report-builder-dashboard-builder.collection.js.map +1 -1
  43. package/collections/report-builder-library.collection.js +1 -1
  44. package/collections/report-builder-library.collection.js.map +1 -1
  45. package/collections/report-builder-report.collection.js +1 -1
  46. package/collections/report-builder-report.collection.js.map +1 -1
  47. package/collections/user-group.collection.js +1 -1
  48. package/collections/user-group.collection.js.map +1 -1
  49. package/collections/user-guide.collection.js +1 -1
  50. package/collections/user-guide.collection.js.map +1 -1
  51. package/collections/user.collection.js +1 -1
  52. package/collections/user.collection.js.map +1 -1
  53. package/fixtures/cron-jobs.js +1 -1
  54. package/fixtures/cron-jobs.js.map +1 -1
  55. package/fixtures/init.js +1 -1
  56. package/fixtures/init.js.map +1 -1
  57. package/http/auth.d.ts +2 -1
  58. package/http/auth.js +1 -1
  59. package/http/auth.js.map +1 -1
  60. package/http/home.js +1 -1
  61. package/http/home.js.map +1 -1
  62. package/managers/cron.manager.d.ts +3 -1
  63. package/managers/cron.manager.js +1 -1
  64. package/managers/cron.manager.js.map +1 -1
  65. package/managers/local-log.manager.d.ts +3 -1
  66. package/managers/local-log.manager.js +1 -1
  67. package/managers/local-log.manager.js.map +1 -1
  68. package/managers/method.manager.d.ts +12 -7
  69. package/managers/method.manager.js +1 -1
  70. package/managers/method.manager.js.map +1 -1
  71. package/managers/mongo.manager.d.ts +17 -12
  72. package/managers/mongo.manager.js +1 -1
  73. package/managers/mongo.manager.js.map +1 -1
  74. package/managers/monitor.manager.d.ts +15 -7
  75. package/managers/monitor.manager.js +1 -1
  76. package/managers/monitor.manager.js.map +1 -1
  77. package/managers/subscription.manager.d.ts +5 -3
  78. package/managers/subscription.manager.js +1 -1
  79. package/managers/subscription.manager.js.map +1 -1
  80. package/managers/websocket.manager.d.ts +3 -1
  81. package/managers/websocket.manager.js +1 -1
  82. package/managers/websocket.manager.js.map +1 -1
  83. package/methods/accounts.js +1 -1
  84. package/methods/accounts.js.map +1 -1
  85. package/methods/aws.js +1 -1
  86. package/methods/aws.js.map +1 -1
  87. package/methods/collections.js +1 -1
  88. package/methods/collections.js.map +1 -1
  89. package/methods/counters.js +1 -1
  90. package/methods/counters.js.map +1 -1
  91. package/methods/cron-jobs.js +1 -1
  92. package/methods/cron-jobs.js.map +1 -1
  93. package/methods/logs.js +1 -1
  94. package/methods/logs.js.map +1 -1
  95. package/methods/monitor.js +1 -1
  96. package/methods/monitor.js.map +1 -1
  97. package/methods/pdf.js +1 -1
  98. package/methods/pdf.js.map +1 -1
  99. package/methods/report-builder.js +1 -1
  100. package/methods/report-builder.js.map +1 -1
  101. package/methods/support.js +1 -1
  102. package/methods/support.js.map +1 -1
  103. package/models/method.model.d.ts +6 -1
  104. package/package.json +3 -2
  105. package/publications/logs.js +1 -1
  106. package/publications/logs.js.map +1 -1
  107. package/resolveio-server-app.d.ts +14 -10
  108. package/resolveio-server-app.js +1 -1
  109. package/resolveio-server-app.js.map +1 -1
  110. package/server-app.d.ts +5 -4
  111. package/server-app.js +1 -1
  112. package/server-app.js.map +1 -1
package/methods/aws.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var __awaiter=this&&this.__awaiter||function(e,i,r,o){return new(r=r||Promise)(function(n,t){function fulfilled(e){try{step(o.next(e))}catch(e){t(e)}}function rejected(e){try{step(o.throw(e))}catch(e){t(e)}}function step(e){var t;e.done?n(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t)})).then(fulfilled,rejected)}step((o=o.apply(e,i||[])).next())})},__generator=this&&this.__generator||function(i,r){var o,s,c,l={label:0,sent:function(){if(1&c[0])throw c[1];return c[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 t=[n,e];if(o)throw new TypeError("Generator is already executing.");for(;l=a&&t[a=0]?0:l;)try{if(o=1,s&&(c=2&t[0]?s.return:t[0]?s.throw||((c=s.return)&&c.call(s),0):s.next)&&!(c=c.call(s,t[1])).done)return c;switch(s=0,(t=c?[2&t[0],c.value]:t)[0]){case 0:case 1:c=t;break;case 4:return l.label++,{value:t[1],done:!1};case 5:l.label++,s=t[1],t=[0];continue;case 7:t=l.ops.pop(),l.trys.pop();continue;default:if(!(c=0<(c=l.trys).length&&c[c.length-1])&&(6===t[0]||2===t[0])){l=0;continue}if(3===t[0]&&(!c||t[1]>c[0]&&t[1]<c[3]))l.label=t[1];else if(6===t[0]&&l.label<c[1])l.label=c[1],c=t;else{if(!(c&&l.label<c[2])){c[2]&&l.ops.pop(),l.trys.pop();continue}l.label=c[2],l.ops.push(t)}}t=r.call(i,l)}catch(e){t=[6,e],s=0}finally{o=c=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}},file_collection_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadAWSMethods=void 0,require("../collections/file.collection")),simpl_schema_1=require("simpl-schema"),resolveio_server_app_1=require("../resolveio-server-app"),client_s3_1=require("@aws-sdk/client-s3"),s3_request_presigner_1=require("@aws-sdk/s3-request-presigner"),common_1=require("../util/common"),request=require("request").defaults({encoding:null}),fs=require("fs"),pdfCnt=1e6;function loadAWSMethods(e){e.methods({uploadFileAndSave:{check:new simpl_schema_1.default({fileName:{type:String},fileData:{type:String},fileSize:{type:Number},fileOrder:{type:Number},fileType:{type:String},compress:{type:Boolean}}),function:function(l,a,u,f,_,e){var t=this;return new Promise(function(s,c){return __awaiter(t,void 0,void 0,function(){var t,n,i,r,o;return __generator(this,function(e){return l?(t="uploads/"+Date.now()+"-"+pdfCnt+++"-"+l,n=this.getAWS().s3(),i=3,r=0,(o=function(){n.putObject({Bucket:process.env.AWS_S3_BUCKET,Key:t,Body:Buffer.from(a.replace("data:"+a.split(",")[0].split(":")[1].split(";")[0]+";base64,",""),"base64"),ACL:"private",ContentType:a.split(",")[0].split(":")[1].split(";")[0],ContentDisposition:"inline"}).then(function(e){e?file_collection_1.Files.create({_id:(0,common_1.objectIdHexString)(),__v:0,name:l,size:u,key:t,order:f,type:_}).then(function(e){s(e)}).catch(function(e){c(e)}):s(null)}).catch(function(e){var t;++r<=i?(t=1e3*Math.pow(2,r),console.warn("Attempt ".concat(r," failed. Retrying in ").concat(t/1e3," seconds...")),setTimeout(o,t)):c(new Error("Failed to upload after ".concat(i," attempts: ").concat(e.message)))})})()):c(new Error("Invalid fileName provided")),[2]})})})}},uploadNonPDFFileAndSave:{check:new simpl_schema_1.default({fileName:{type:String},fileData:{type:String},fileSize:{type:Number},fileOrder:{type:Number},fileType:{type:String}}),function:function(r,e,o,s,c){var l=this;return new Promise(function(t,n){var i;r&&(i="uploads/"+Date.now()+"-"+r,l.getAWS().s3().putObject({Bucket:process.env.AWS_S3_BUCKET,Key:i,Body:Buffer.from(e),ACL:"private",ContentType:"application/gzip",ContentDisposition:"inline"}).then(function(e){e?file_collection_1.Files.create({_id:(0,common_1.objectIdHexString)(),__v:0,name:r,size:o,key:i,order:s,type:c}).then(function(e){t(e)},function(e){return n(e)}):t(null)},function(e){n(e)}))})}},uploadNonPDFBufferAndSave:{check:new simpl_schema_1.default({fileName:{type:String},fileDataBuffer:{type:Buffer},fileSize:{type:Number},fileOrder:{type:Number},fileType:{type:String}}),function:function(r,e,o,s,c){var l=this;return new Promise(function(t,n){var i;r&&(i="uploads/"+Date.now()+"-"+r,l.getAWS().s3().putObject({Bucket:process.env.AWS_S3_BUCKET,Key:i,Body:e,ACL:"private",ContentType:"application/gzip",ContentDisposition:"inline"}).then(function(e){e?file_collection_1.Files.create({_id:(0,common_1.objectIdHexString)(),__v:0,name:r,size:o,key:i,order:s,type:c}).then(function(e){t(e)},function(e){return n(e)}):t(null)},function(e){n(e)}))})}},uploadNonPDFStreamAndSave:{check:new simpl_schema_1.default({fileName:{type:String},fileData:{type:String},fileOrder:{type:Number},fileType:{type:String}}),function:function(r,e,o,s){var c=this;return new Promise(function(t,n){var i;r&&(i="uploads/"+Date.now()+"-"+r,c.getAWS().s3().putObject({Bucket:process.env.AWS_S3_BUCKET,Key:i,Body:fs.createReadStream(e),ACL:"private",ContentType:"application/gzip",ContentDisposition:"inline"}).then(function(e){e?file_collection_1.Files.create({_id:(0,common_1.objectIdHexString)(),__v:0,name:r,size:1,key:i,order:o,type:s}).then(function(e){t(e)},function(e){return n(e)}):t(null)},function(e){n(e)}))})}},deleteFiles:{check:new simpl_schema_1.default({keys:{type:Array},"keys.$":{type:String}}),function:function(s){var e=this;return new Promise(function(r,o){return __awaiter(e,void 0,void 0,function(){var t,n,i=this;return __generator(this,function(e){switch(e.label){case 0:return[4,file_collection_1.Files.find({key:{$in:s}})];case 1:return t=e.sent(),n=t.length,t.forEach(function(e){file_collection_1.Files.deleteOne({_id:e._id}),i.getAWS().s3().deleteObject({Bucket:process.env.AWS_S3_BUCKET,Key:e.key}).then(function(e){e&&!--n&&r(t.length),r(!0)},function(e){return o(e)})}),[2]}})})})}},deleteFile:{check:new simpl_schema_1.default({key:{type:String}}),function:function(r){var e=this;return new Promise(function(n,i){return __awaiter(e,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,file_collection_1.Files.findOne({key:r})];case 1:return(t=e.sent())&&file_collection_1.Files.deleteOne({_id:t._id}),this.getAWS().s3().deleteObject({Bucket:process.env.AWS_S3_BUCKET,Key:r}).then(function(e){n(e)},function(e){i(e)}),[2]}})})})}},deleteFileWithId:{check:new simpl_schema_1.default({id_file:{type:String}}),function:function(r){var e=this;return new Promise(function(n,i){return __awaiter(e,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,file_collection_1.Files.findOne({_id:r})];case 1:return(t=e.sent())||i("Could not find file"),this.getAWS().s3().deleteObject({Bucket:process.env.AWS_S3_BUCKET,Key:t.key}).then(function(e){n(e)},function(e){i(e)}),file_collection_1.Files.deleteOne({_id:t._id}),[2]}})})})}},getSignedUrlsAndFilesWithId:{check:new simpl_schema_1.default({ids:{type:Array},"ids.$":{type:String},expires:{type:Number}}),function:function(a,u){var t=this;return new Promise(function(l,e){return __awaiter(t,void 0,void 0,function(){var t,n,i,r,o,s,c;return __generator(this,function(e){switch(e.label){case 0:return t=[],[4,file_collection_1.Files.find({_id:{$in:a}})];case 1:n=e.sent(),i=0,e.label=2;case 2:return i<n.length?(o=n[i],r=this.getAWS().s3(),o=new client_s3_1.GetObjectCommand({Bucket:process.env.AWS_S3_BUCKET,Key:o.key}),c=(s=t).push,[4,(0,s3_request_presigner_1.getSignedUrl)(r,o,{expiresIn:u})]):[3,5];case 3:c.apply(s,[e.sent()]),e.label=4;case 4:return i++,[3,2];case 5:return l({res:t,fileArray:n.map(function(e){return e.name})}),[2]}})})})}},getSignedUrlWithId:{check:new simpl_schema_1.default({id_file:{type:String},expires:{type:Number}}),function:function(o,s){var e=this;return new Promise(function(i,r){return __awaiter(e,void 0,void 0,function(){var t,n;return __generator(this,function(e){switch(e.label){case 0:return[4,file_collection_1.Files.findOne({_id:o})];case 1:return n=e.sent(),t=this.getAWS().s3(),n=new client_s3_1.GetObjectCommand({Bucket:process.env.AWS_S3_BUCKET,Key:n.key}),(0,s3_request_presigner_1.getSignedUrl)(t,n,{expiresIn:s}).then(function(e){i(e)},function(e){r(e)}),[2]}})})})}},getSignedUrlUSEast1BucketAndKey:{check:new simpl_schema_1.default({bucket:{type:String},key:{type:String},expires:{type:Number}}),function:function(r,o,s){var c=this;return new Promise(function(t,n){var e=c.getAWS().s3USEast1(),i=new client_s3_1.GetObjectCommand({Bucket:r,Key:o});(0,s3_request_presigner_1.getSignedUrl)(e,i,{expiresIn:s}).then(function(e){t(e)},function(e){n(e)})})}},getSignedUrl:{check:new simpl_schema_1.default({key:{type:String},expires:{type:Number}}),function:function(r,o){var s=this;return new Promise(function(t,n){var e=s.getAWS().s3(),i=new client_s3_1.GetObjectCommand({Bucket:process.env.AWS_S3_BUCKET,Key:r});(0,s3_request_presigner_1.getSignedUrl)(e,i,{expiresIn:o}).then(function(e){t(e)},function(e){n(e)})})}},getSignedUrls:{check:new simpl_schema_1.default({keys:{type:Array},"keys.$":{type:String},expires:{type:Number}}),function:function(l,a){var t=this;return new Promise(function(c,e){return __awaiter(t,void 0,void 0,function(){var t,n,i,r,o,s;return __generator(this,function(e){switch(e.label){case 0:t=[],n=0,e.label=1;case 1:return n<l.length?(r=l[n],i=this.getAWS().s3(),r=new client_s3_1.GetObjectCommand({Bucket:process.env.AWS_S3_BUCKET,Key:r}),s=(o=t).push,[4,(0,s3_request_presigner_1.getSignedUrl)(i,r,{expiresIn:a})]):[3,4];case 2:s.apply(o,[e.sent()]),e.label=3;case 3:return n++,[3,1];case 4:return c(t),[2]}})})})}},getDataURIfromURL:{check:new simpl_schema_1.default({url:{type:String}}),function:function(e){return new Promise(function(i,r){request.get(e,function(e,t,n){e||200!==t.statusCode?r(e):(e="data:"+t.headers["content-type"]+";base64,"+new Buffer(n).toString("base64"),i(e))})})}},emailFile:{check:new simpl_schema_1.default({id_file:{type:String},email:{type:String},additional_message:{type:String}}),function:function(t,c,l){var e=this;return new Promise(function(o,s){return __awaiter(e,void 0,void 0,function(){var i,r=this;return __generator(this,function(e){switch(e.label){case 0:return[4,file_collection_1.Files.findById(t)];case 1:return(i=e.sent())?this.callMethod("getSignedUrl",i.key,259200,function(e,t){var n;t?(i.size<5e6?(n="Attached is the file requested for email.\n"+(""!==l?"\nAdditional Message:\n"+l+"\n":""),r.sendEmail(c,resolveio_server_app_1.ResolveIOServer.getClientName()+" File - "+i.name,n,"",[{filename:i.name,path:t}],null,"")):(n="Please click the link to the requested file.\n"+(""!==l?"\nAdditional Message:\n"+l+"\n":""),r.sendEmail(c,resolveio_server_app_1.ResolveIOServer.getClientName()+" File - "+i.name,n+t,"",null,null,"")),o(!0)):s("Could not get file URL")}):s("Could not find file"),[2]}})})})}}})}exports.loadAWSMethods=loadAWSMethods;
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(e,n,i,s){return new(i=i||Promise)(function(r,t){function fulfilled(e){try{step(s.next(e))}catch(e){t(e)}}function rejected(e){try{step(s.throw(e))}catch(e){t(e)}}function step(e){var t;e.done?r(e.value):((t=e.value)instanceof i?t:new i(function(e){e(t)})).then(fulfilled,rejected)}step((s=s.apply(e,n||[])).next())})},__generator=this&&this.__generator||function(n,i){var s,a,l,o={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},c={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function verb(r){return function(e){var t=[r,e];if(s)throw new TypeError("Generator is already executing.");for(;o=c&&t[c=0]?0:o;)try{if(s=1,a&&(l=2&t[0]?a.return:t[0]?a.throw||((l=a.return)&&l.call(a),0):a.next)&&!(l=l.call(a,t[1])).done)return l;switch(a=0,(t=l?[2&t[0],l.value]:t)[0]){case 0:case 1:l=t;break;case 4:return o.label++,{value:t[1],done:!1};case 5:o.label++,a=t[1],t=[0];continue;case 7:t=o.ops.pop(),o.trys.pop();continue;default:if(!(l=0<(l=o.trys).length&&l[l.length-1])&&(6===t[0]||2===t[0])){o=0;continue}if(3===t[0]&&(!l||t[1]>l[0]&&t[1]<l[3]))o.label=t[1];else if(6===t[0]&&o.label<l[1])o.label=l[1],l=t;else{if(!(l&&o.label<l[2])){l[2]&&o.ops.pop(),o.trys.pop();continue}o.label=l[2],o.ops.push(t)}}t=i.call(n,o)}catch(e){t=[6,e],a=0}finally{s=l=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}},__values=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&n>=e.length?void 0:e)&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},client_s3_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadAWSMethods=void 0,require("@aws-sdk/client-s3")),s3_request_presigner_1=require("@aws-sdk/s3-request-presigner"),axios_1=require("axios"),simpl_schema_1=require("simpl-schema"),file_collection_1=require("../collections/file.collection"),resolveio_server_app_1=require("../resolveio-server-app"),common_1=require("../util/common"),fs=require("fs"),pdfCnt=1e6;function loadAWSMethods(e){e.methods({uploadFileAndSave:{check:new simpl_schema_1.default({fileName:{type:String},fileData:{type:String},fileSize:{type:Number},fileOrder:{type:Number},fileType:{type:String},compress:{type:Boolean}}),function:function(l,o,c,u,_,e){return __awaiter(this,void 0,void 0,function(){var n,i,s,a,t,r;return __generator(this,function(e){switch(e.label){case 0:if(!l)throw new Error("Invalid File Name provided");n="uploads/"+Date.now()+"-"+pdfCnt+++"-"+l,i=this.getAWS().s3(),s=3,a=0,t=function(){var t,r;return __generator(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,6]),[4,i.putObject({Bucket:process.env.AWS_S3_BUCKET,Key:n,Body:Buffer.from(o.replace("data:"+o.split(",")[0].split(":")[1].split(";")[0]+";base64,",""),"base64"),ACL:"private",ContentType:o.split(",")[0].split(":")[1].split(";")[0],ContentDisposition:"inline"})];case 1:return e.sent()?[2,{value:file_collection_1.Files.create({_id:(0,common_1.objectIdHexString)(),__v:0,name:l,size:c,key:n,order:u,type:_})}]:[2,{value:null}];case 2:return(t=e.sent(),++a<=s)?(r=1e3*Math.pow(2,a),console.warn("Attempt ".concat(a," failed. Retrying in ").concat(r/1e3," seconds...")),[4,new Promise(function(e){return setTimeout(e,r)})]):[3,4];case 3:return e.sent(),[3,5];case 4:throw new Error("Error in AWS Upload File And Save: Failed to upload after ".concat(s," attempts: ").concat(t.message));case 5:return[3,6];case 6:return[2]}})},e.label=1;case 1:return a<=s?[5,t()]:[3,3];case 2:return"object"==typeof(r=e.sent())?[2,r.value]:[3,1];case 3:return[2,null]}})})}},uploadNonPDFFileAndSave:{check:new simpl_schema_1.default({fileName:{type:String},fileData:{type:String},fileSize:{type:Number},fileOrder:{type:Number},fileType:{type:String}}),function:function(i,s,a,l,o){return __awaiter(this,void 0,void 0,function(){var t,r,n;return __generator(this,function(e){switch(e.label){case 0:if(!i)throw new Error("Invalid File Name provided");t="uploads/"+Date.now()+"-"+i,r=this.getAWS().s3(),e.label=1;case 1:return e.trys.push([1,3,,4]),[4,r.putObject({Bucket:process.env.AWS_S3_BUCKET,Key:t,Body:Buffer.from(s),ACL:"private",ContentType:"application/gzip",ContentDisposition:"inline"})];case 2:return e.sent()?[2,file_collection_1.Files.create({_id:(0,common_1.objectIdHexString)(),__v:0,name:i,size:a,key:t,order:l,type:o})]:[2,null];case 3:throw(n=e.sent()).mesage="Error In AWS Upload Non PDF File And Save: "+n.mesage,n;case 4:return[2]}})})}},uploadNonPDFBufferAndSave:{check:new simpl_schema_1.default({fileName:{type:String},fileDataBuffer:{type:Buffer},fileSize:{type:Number},fileOrder:{type:Number},fileType:{type:String}}),function:function(i,s,a,l,o){return __awaiter(this,void 0,void 0,function(){var t,r,n;return __generator(this,function(e){switch(e.label){case 0:if(!i)throw new Error("Invalid File Name provided");t="uploads/"+Date.now()+"-"+i,r=this.getAWS().s3(),e.label=1;case 1:return e.trys.push([1,3,,4]),[4,r.putObject({Bucket:process.env.AWS_S3_BUCKET,Key:t,Body:s,ACL:"private",ContentType:"application/gzip",ContentDisposition:"inline"})];case 2:return e.sent()?[2,file_collection_1.Files.create({_id:(0,common_1.objectIdHexString)(),__v:0,name:i,size:a,key:t,order:l,type:o})]:[2,null];case 3:throw(n=e.sent()).mesage="Error In AWS Upload Non PDF Buffer And Save: "+n.mesage,n;case 4:return[2]}})})}},uploadNonPDFStreamAndSave:{check:new simpl_schema_1.default({fileName:{type:String},fileData:{type:String},fileOrder:{type:Number},fileType:{type:String}}),function:function(i,s,a,l){return __awaiter(this,void 0,void 0,function(){var t,r,n;return __generator(this,function(e){switch(e.label){case 0:if(!i)throw new Error("Invalid File Name provided");t="uploads/"+Date.now()+"-"+i,r=this.getAWS().s3(),e.label=1;case 1:return e.trys.push([1,3,,4]),[4,r.putObject({Bucket:process.env.AWS_S3_BUCKET,Key:t,Body:fs.createReadStream(s),ACL:"private",ContentType:"application/gzip",ContentDisposition:"inline"})];case 2:return e.sent()?[2,file_collection_1.Files.create({_id:(0,common_1.objectIdHexString)(),__v:0,name:i,size:1,key:t,order:a,type:l})]:[2,null];case 3:throw(n=e.sent()).mesage="Error In AWS Upload Non PDF Stream And Save: "+n.mesage,n;case 4:return[2]}})})}},deleteFiles:{check:new simpl_schema_1.default({keys:{type:Array},"keys.$":{type:String}}),function:function(u){return __awaiter(this,void 0,void 0,function(){var t,r,n,i,s,a,l,o,c;return __generator(this,function(e){switch(e.label){case 0:return[4,file_collection_1.Files.find({key:{$in:u}})];case 1:t=e.sent(),r=t.length,e.label=2;case 2:e.trys.push([2,10,11,12]),n=__values(t),i=n.next(),e.label=3;case 3:return i.done?[3,9]:(s=i.value,[4,file_collection_1.Files.deleteOne({_id:s._id})]);case 4:e.sent(),a=this.getAWS().s3(),e.label=5;case 5:return e.trys.push([5,7,,8]),[4,a.deleteObject({Bucket:process.env.AWS_S3_BUCKET,Key:s.key})];case 6:return e.sent()&&!--r?[2,t.length]:[3,8];case 7:throw(l=e.sent()).mesage="Error In AWS Delete Files: "+l.mesage,l;case 8:return i=n.next(),[3,3];case 9:return[3,12];case 10:return l=e.sent(),o={error:l},[3,12];case 11:try{i&&!i.done&&(c=n.return)&&c.call(n)}finally{if(o)throw o.error}return[7];case 12:return[2,0]}})})}},deleteFile:{check:new simpl_schema_1.default({key:{type:String}}),function:function(i){return __awaiter(this,void 0,void 0,function(){var t,r,n;return __generator(this,function(e){switch(e.label){case 0:return[4,file_collection_1.Files.findOne({key:i})];case 1:if(!(t=e.sent()))return[3,5];e.label=2;case 2:return e.trys.push([2,4,,5]),[4,file_collection_1.Files.deleteOne({_id:t._id})];case 3:return e.sent(),[3,5];case 4:throw(n=e.sent()).mesage="Error In AWS Delete File (Resolve Side): "+n.mesage,n;case 5:r=this.getAWS().s3(),e.label=6;case 6:return e.trys.push([6,8,,9]),[4,r.deleteObject({Bucket:process.env.AWS_S3_BUCKET,Key:i})];case 7:return[2,e.sent()];case 8:throw(n=e.sent()).mesage="Error In AWS Delete File (AWS Side): "+n.mesage,n;case 9:return[2]}})})}},deleteFileWithId:{check:new simpl_schema_1.default({id_file:{type:String}}),function:function(i){return __awaiter(this,void 0,void 0,function(){var t,r,n;return __generator(this,function(e){switch(e.label){case 0:return[4,file_collection_1.Files.findOne({_id:i})];case 1:if(!(t=e.sent()))throw new Error("Error in AWS Delete File With ID: Could not find file");e.label=2;case 2:return e.trys.push([2,4,,5]),[4,file_collection_1.Files.deleteOne({_id:t._id})];case 3:return e.sent(),[3,5];case 4:throw(n=e.sent()).mesage="Error In AWS Delete File With ID (Resolve Side): "+n.mesage,n;case 5:r=this.getAWS().s3(),e.label=6;case 6:return e.trys.push([6,8,,9]),[4,r.deleteObject({Bucket:process.env.AWS_S3_BUCKET,Key:t.key})];case 7:return[2,e.sent()];case 8:throw(n=e.sent()).mesage="Error In AWS Delete File With ID (AWS Side): "+n.mesage,n;case 9:return[2]}})})}},getSignedUrlsAndFilesWithId:{check:new simpl_schema_1.default({ids:{type:Array},"ids.$":{type:String},expires:{type:Number}}),function:function(o,c){return __awaiter(this,void 0,void 0,function(){var t,r,n,i,s,a,l;return __generator(this,function(e){switch(e.label){case 0:return t=[],[4,file_collection_1.Files.find({_id:{$in:o}})];case 1:r=e.sent(),n=0,e.label=2;case 2:return n<r.length?(s=r[n],i=this.getAWS().s3(),s=new client_s3_1.GetObjectCommand({Bucket:process.env.AWS_S3_BUCKET,Key:s.key}),l=(a=t).push,[4,(0,s3_request_presigner_1.getSignedUrl)(i,s,{expiresIn:c})]):[3,5];case 3:l.apply(a,[e.sent()]),e.label=4;case 4:return n++,[3,2];case 5:return[2,{res:t,fileArray:r.map(function(e){return e.name})}]}})})}},getSignedUrlWithId:{check:new simpl_schema_1.default({id_file:{type:String},expires:{type:Number}}),function:function(n,i){return __awaiter(this,void 0,void 0,function(){var t,r;return __generator(this,function(e){switch(e.label){case 0:return[4,file_collection_1.Files.findOne({_id:n})];case 1:return r=e.sent(),t=this.getAWS().s3(),r=new client_s3_1.GetObjectCommand({Bucket:process.env.AWS_S3_BUCKET,Key:r.key}),[2,(0,s3_request_presigner_1.getSignedUrl)(t,r,{expiresIn:i})]}})})}},getSignedUrlUSEast1BucketAndKey:{check:new simpl_schema_1.default({bucket:{type:String},key:{type:String},expires:{type:Number}}),function:function(e,t,r){var n=this.getAWS().s3USEast1(),e=new client_s3_1.GetObjectCommand({Bucket:e,Key:t});return(0,s3_request_presigner_1.getSignedUrl)(n,e,{expiresIn:r})}},getSignedUrl:{check:new simpl_schema_1.default({key:{type:String},expires:{type:Number}}),function:function(e,t){var r=this.getAWS().s3(),e=new client_s3_1.GetObjectCommand({Bucket:process.env.AWS_S3_BUCKET,Key:e});return(0,s3_request_presigner_1.getSignedUrl)(r,e,{expiresIn:t})}},getSignedUrls:{check:new simpl_schema_1.default({keys:{type:Array},"keys.$":{type:String},expires:{type:Number}}),function:function(l,o){return __awaiter(this,void 0,void 0,function(){var t,r,n,i,s,a;return __generator(this,function(e){switch(e.label){case 0:t=[],r=0,e.label=1;case 1:return r<l.length?(i=l[r],n=this.getAWS().s3(),i=new client_s3_1.GetObjectCommand({Bucket:process.env.AWS_S3_BUCKET,Key:i}),a=(s=t).push,[4,(0,s3_request_presigner_1.getSignedUrl)(n,i,{expiresIn:o})]):[3,4];case 2:a.apply(s,[e.sent()]),e.label=3;case 3:return r++,[3,1];case 4:return[2,t]}})})}},getDataURIfromURL:{check:new simpl_schema_1.default({url:{type:String}}),function:function(n){return __awaiter(this,void 0,void 0,function(){var t,r;return __generator(this,function(e){switch(e.label){case 0:return[4,axios_1.default.get(n,{responseType:"arraybuffer"})];case 1:if(200!==(r=e.sent()).status)throw new Error("Error in Get Data URI From URL: Failed to fetch URL, status: ".concat(r.status));return t=r.headers["content-type"],r=Buffer.from(r.data).toString("base64"),[2,"data:".concat(t,";base64,").concat(r)]}})})}},emailFile:{check:new simpl_schema_1.default({id_file:{type:String},email:{type:String},additional_message:{type:String}}),function:function(s,a,l){return __awaiter(this,void 0,void 0,function(){var t,r,n,i;return __generator(this,function(e){switch(e.label){case 0:return[4,file_collection_1.Files.findById(s)];case 1:if(!(t=e.sent()))throw new Error("Error in AWS Email File: Could not find file");e.label=2;case 2:return e.trys.push([2,10,,11]),[4,this.callMethod("getSignedUrl",t.key,259200)];case 3:return(r=e.sent())?t.size<5e6?(n="Attached is the file requested for email.\n"+(""!==l?"\nAdditional Message:\n"+l+"\n":""),[4,this.sendEmail(a,resolveio_server_app_1.ResolveIOServer.getClientName()+" File - "+t.name,n,"",[{filename:t.name,path:r}],null,"")]):[3,5]:[3,8];case 4:return e.sent(),[3,7];case 5:return n="Please click the link to the requested file.\n"+(""!==l?"\nAdditional Message:\n"+l+"\n":""),[4,this.sendEmail(a,resolveio_server_app_1.ResolveIOServer.getClientName()+" File - "+t.name,n+r,"",null,null,"")];case 6:e.sent(),e.label=7;case 7:return[2,!0];case 8:throw new Error("Error in AWS Email File: Could not get file URL");case 9:return[3,11];case 10:throw(i=e.sent()).mesage="Error In AWS Email File: "+i.mesage,i;case 11:return[2]}})})}}})}exports.loadAWSMethods=loadAWSMethods;
2
2
  //# sourceMappingURL=aws.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/methods/aws.ts"],"names":["file_collection_1","require","simpl_schema_1","resolveio_server_app_1","client_s3_1","s3_request_presigner_1","common_1","request","defaults","encoding","fs","pdfCnt","loadAWSMethods","methodManager","methods","uploadFileAndSave","check","default","fileName","type","String","fileData","fileSize","Number","fileOrder","fileType","compress","Boolean","function","_this","this","Promise","resolve","reject","__awaiter","key_1","Date","now","s3_1","getAWS","s3","maxRetries_1","attempt_1","uploadFile_1","putObject","Bucket","process","env","AWS_S3_BUCKET","Key","Body","Buffer","from","replace","split","ACL","ContentType","ContentDisposition","then","res","Files","create","_id","objectIdHexString","__v","name","size","key","order","resFile","catch","errFile","err","backoff","Math","pow","console","warn","concat","setTimeout","Error","message","uploadNonPDFFileAndSave","key_2","uploadNonPDFBufferAndSave","fileDataBuffer","key_3","uploadNonPDFStreamAndSave","key_4","createReadStream","deleteFiles","keys","Array","keys.$","find","$in","files","_a","sent","deleteCnt","length","forEach","file","deleteOne","deleteObject","e","deleteFile","findOne","deleteFileWithId","id_file","getSignedUrlsAndFilesWithId","ids","ids.$","expires","_c","i","getCommand","GetObjectCommand","_b","push","getSignedUrl","expiresIn","apply","fileArray","map","a","getSignedUrlWithId","getSignedUrlUSEast1BucketAndKey","bucket","s3USEast1","getSignedUrls","getDataURIfromURL","url","get","error","response","body","statusCode","data","headers","toString","emailFile","email","additional_message","findById","callMethod","errPDF","resPDF","emailMessage","sendEmail","ResolveIOServer","getClientName","filename","path","exports"],"mappings":"k8CACAA,mB,qFAAAC,QAAA,gCAAA,GACAC,eAAAD,QAAA,cAAA,EACAE,uBAAAF,QAAA,yBAAA,EACAG,YAAAH,QAAA,oBAAA,EACAI,uBAAAJ,QAAA,+BAAA,EACAK,SAAAL,QAAA,gBAAA,EAEIM,QAAUN,QAAQ,SAAS,EAAEO,SAAS,CAAEC,SAAU,IAAI,CAAE,EACxDC,GAAKT,QAAQ,IAAI,EACjBU,OAAS,IAEb,SAAgBC,eAAeC,GAC9BA,EAAcC,QAAQ,CACrBC,kBAAmB,CAClBC,MAAO,IAAId,eAAAe,QAAa,CACvBC,SAAU,CACTC,KAAMC,M,EAEPC,SAAU,CACTF,KAAMC,M,EAEPE,SAAU,CACTH,KAAMI,M,EAEPC,UAAW,CACVL,KAAMI,M,EAEPE,SAAU,CACTN,KAAMC,M,EAEPM,SAAU,CACTP,KAAMQ,O,EAEP,EACDC,SAAU,SAASV,EAAkBG,EAAkBC,EAAkBE,EAAmBC,EAAkBC,GAApG,IAAAG,EAAAC,KACT,OAAO,IAAIC,QAAQ,SAAOC,EAASC,GAAM,OAAAC,UAAAL,EAAA,KAAA,EAAA,KAAA,EAAA,W,yDACpCX,GACCiB,EAAM,WAAaC,KAAKC,IAAG,EAAK,IAAO1B,MAAQ,GAAI,IAAMO,EACzDoB,EAAWR,KAAKS,OAAM,EAAIC,GAAE,EAC1BC,EAAa,EACfC,EAAU,GAERC,EAAa,WAClBL,EAAGM,UAAU,CACZC,OAAQC,QAAQC,IAAIC,cACpBC,IAAKd,EACLe,KAAMC,OAAOC,KAAK/B,EAASgC,QAAQ,QAAUhC,EAASiC,MAAM,GAAG,EAAE,GAAGA,MAAM,GAAG,EAAE,GAAGA,MAAM,GAAG,EAAE,GAAK,WAAY,EAAE,EAAG,QAAQ,EAC3HC,IAAK,UACLC,YAAanC,EAASiC,MAAM,GAAG,EAAE,GAAGA,MAAM,GAAG,EAAE,GAAGA,MAAM,GAAG,EAAE,GAC7DG,mBAAoB,Q,CACpB,EAAEC,KAAK,SAAAC,GACHA,EACH3D,kBAAA4D,MAAMC,OAAO,CACZC,KAAK,EAAAxD,SAAAyD,mBAAiB,EAAIC,IAAK,EAAGC,KAAM/C,EAAUgD,KAAM5C,EAAU6C,IAAKhC,EAAKiC,MAAO5C,EAAWL,KAAMM,C,CACpG,EAAEiC,KAAK,SAAAW,GACPrC,EAAQqC,CAAO,CAChB,CAAC,EAAEC,MAAM,SAAAC,GACRtC,EAAOsC,CAAO,CACf,CAAC,EAEDvC,EAAQ,IAAI,CAEd,CAAC,EAAEsC,MAAM,SAAAE,GAER,IACOC,EAFP/B,EAAAA,GACeD,GACRgC,EAAiC,IAAvBC,KAAKC,IAAI,EAAGjC,CAAO,EACnCkC,QAAQC,KAAK,WAAAC,OAAWpC,EAAO,uBAAA,EAAAoC,OAAwBL,EAAU,IAAI,aAAA,CAAa,EAClFM,WAAWpC,EAAY8B,CAAO,GAE9BxC,EAAO,IAAI+C,MAAM,0BAAAF,OAA0BrC,EAAU,aAAA,EAAAqC,OAAcN,EAAIS,OAAO,CAAE,CAAC,CAEnF,CAAC,CACF,GAEU,GAEVhD,EAAO,IAAI+C,MAAM,2BAA2B,CAAC,E,QAE9C,CACF,C,EAEDE,wBAAyB,CACxBlE,MAAO,IAAId,eAAAe,QAAa,CACvBC,SAAU,CACTC,KAAMC,M,EAEPC,SAAU,CACTF,KAAMC,M,EAEPE,SAAU,CACTH,KAAMI,M,EAEPC,UAAW,CACVL,KAAMI,M,EAEPE,SAAU,CACTN,KAAMC,M,EAEP,EACDQ,SAAU,SAASV,EAAkBG,EAAkBC,EAAkBE,EAAmBC,GAAlF,IAAAI,EAAAC,KACT,OAAO,IAAIC,QAAQ,SAACC,EAASC,GAC5B,IACKkD,EADDjE,IACCiE,EAAM,WAAa/C,KAAKC,IAAG,EAAK,IAAMnB,EAE3BW,EAAKU,OAAM,EAAIC,GAAE,EAC7BI,UAAU,CACZC,OAAQC,QAAQC,IAAIC,cACpBC,IAAKkC,EACLjC,KAAMC,OAAOC,KAAK/B,CAAQ,EAC1BkC,IAAK,UACLC,YAAa,mBACbC,mBAAoB,Q,CACpB,EAAEC,KAAK,SAAAC,GACHA,EACH3D,kBAAA4D,MAAMC,OAAO,CACZC,KAAK,EAAAxD,SAAAyD,mBAAiB,EAAIC,IAAK,EAAGC,KAAM/C,EAAUgD,KAAM5C,EAAU6C,IAAKgB,EAAKf,MAAO5C,EAAWL,KAAMM,C,CACpG,EAAEiC,KAAK,SAAAW,GACPrC,EAAQqC,CAAO,CAChB,EAAG,SAAAE,GAAW,OAAAtC,EAAOsC,CAAO,CAAd,CAAe,EAG7BvC,EAAQ,IAAI,CAEd,EAAG,SAAAwC,GACFvC,EAAOuC,CAAG,CACX,CAAC,EAEH,CAAC,CACF,C,EAEDY,0BAA2B,CAC1BpE,MAAO,IAAId,eAAAe,QAAa,CACvBC,SAAU,CACTC,KAAMC,M,EAEPiE,eAAgB,CACflE,KAAMgC,M,EAEP7B,SAAU,CACTH,KAAMI,M,EAEPC,UAAW,CACVL,KAAMI,M,EAEPE,SAAU,CACTN,KAAMC,M,EAEP,EACDQ,SAAU,SAASV,EAAkBmE,EAAgB/D,EAAkBE,EAAmBC,GAAhF,IAAAI,EAAAC,KACT,OAAO,IAAIC,QAAQ,SAACC,EAASC,GAC5B,IACKqD,EADDpE,IACCoE,EAAM,WAAalD,KAAKC,IAAG,EAAK,IAAMnB,EAE3BW,EAAKU,OAAM,EAAIC,GAAE,EAC7BI,UAAU,CACZC,OAAQC,QAAQC,IAAIC,cACpBC,IAAKqC,EACLpC,KAAMmC,EACN9B,IAAK,UACLC,YAAa,mBACbC,mBAAoB,Q,CACpB,EAAEC,KAAK,SAAAC,GACHA,EACH3D,kBAAA4D,MAAMC,OAAO,CACZC,KAAK,EAAAxD,SAAAyD,mBAAiB,EAAIC,IAAK,EAAGC,KAAM/C,EAAUgD,KAAM5C,EAAU6C,IAAKmB,EAAKlB,MAAO5C,EAAWL,KAAMM,C,CACpG,EAAEiC,KAAK,SAAAW,GACPrC,EAAQqC,CAAO,CAChB,EAAG,SAAAE,GAAW,OAAAtC,EAAOsC,CAAO,CAAd,CAAe,EAG7BvC,EAAQ,IAAI,CAEd,EAAG,SAAAwC,GACFvC,EAAOuC,CAAG,CACX,CAAC,EAEH,CAAC,CACF,C,EAEDe,0BAA2B,CAC1BvE,MAAO,IAAId,eAAAe,QAAa,CACvBC,SAAU,CACTC,KAAMC,M,EAEPC,SAAU,CACTF,KAAMC,M,EAEPI,UAAW,CACVL,KAAMI,M,EAEPE,SAAU,CACTN,KAAMC,M,EAEP,EACDQ,SAAU,SAASV,EAAkBG,EAAkBG,EAAmBC,GAAhE,IAAAI,EAAAC,KACT,OAAO,IAAIC,QAAQ,SAACC,EAASC,GAC5B,IACKuD,EADDtE,IACCsE,EAAM,WAAapD,KAAKC,IAAG,EAAK,IAAMnB,EAE3BW,EAAKU,OAAM,EAAIC,GAAE,EAC7BI,UAAU,CACZC,OAAQC,QAAQC,IAAIC,cACpBC,IAAKuC,EACLtC,KAAMxC,GAAG+E,iBAAiBpE,CAAQ,EAClCkC,IAAK,UACLC,YAAa,mBACbC,mBAAoB,Q,CACpB,EAAEC,KAAK,SAAAC,GACHA,EACH3D,kBAAA4D,MAAMC,OAAO,CACZC,KAAK,EAAAxD,SAAAyD,mBAAiB,EAAIC,IAAK,EAAGC,KAAM/C,EAAUgD,KAAM,EAAGC,IAAKqB,EAAKpB,MAAO5C,EAAWL,KAAMM,C,CAC7F,EAAEiC,KAAK,SAAAW,GACPrC,EAAQqC,CAAO,CAChB,EAAG,SAAAE,GAAW,OAAAtC,EAAOsC,CAAO,CAAd,CAAe,EAG7BvC,EAAQ,IAAI,CAEd,EAAG,SAAAwC,GACFvC,EAAOuC,CAAG,CACX,CAAC,EAEH,CAAC,CACF,C,EAEDkB,YAAa,CACZ1E,MAAO,IAAId,eAAAe,QAAa,CACvB0E,KAAM,CACLxE,KAAMyE,K,EAEPC,SAAU,CACT1E,KAAMC,M,EAEP,EACDQ,SAAU,SAAS+D,GAAT,IAAA9D,EAAAC,KACT,OAAO,IAAIC,QAAQ,SAAOC,EAASC,GAAM,OAAAC,UAAAL,EAAA,KAAA,EAAA,KAAA,EAAA,W,0EAC5B,MAAA,CAAA,EAAM7B,kBAAA4D,MAAMkC,KAAK,CAAC3B,IAAK,CAAC4B,IAAKJ,CAAI,CAAC,CAAC,G,cAA3CK,EAAQC,EAAAC,KAAA,EAERC,EAAYH,EAAMI,OAEtBJ,EAAMK,QAAQ,SAAAC,GACbtG,kBAAA4D,MAAM2C,UAAU,CAACzC,IAAKwC,EAAKxC,GAAG,CAAC,EAEhBjC,EAAKU,OAAM,EAAIC,GAAE,EAC7BgE,aAAa,CACf3D,OAAQC,QAAQC,IAAIC,cACpBC,IAAKqD,EAAKnC,G,CACV,EAAET,KAAK,SAAAC,GACHA,GACHwC,CAAAA,EAAAA,GAECnE,EAAQgE,EAAMI,MAAM,EAItBpE,EAAQ,CAAA,CAAI,CACb,EAAG,SAACyE,GAAM,OAAAxE,EAAOwE,CAAC,CAAR,CAAS,CACpB,CAAC,E,SACD,CACF,C,EAEDC,WAAY,CACX1F,MAAO,IAAId,eAAAe,QAAa,CACvBkD,IAAK,CACJhD,KAAMC,M,EAEP,EACDQ,SAAU,SAASuC,GAAT,IAAAtC,EAAAC,KACT,OAAO,IAAIC,QAAQ,SAAOC,EAASC,GAAM,OAAAC,UAAAL,EAAA,KAAA,EAAA,KAAA,EAAA,W,iEAE7B,MAAA,CAAA,EAAM7B,kBAAA4D,MAAM+C,QAAQ,CAACxC,IAAKA,CAAG,CAAC,G,cAArCmC,EAAOL,EAAAC,KAAA,IAGVlG,kBAAA4D,MAAM2C,UAAU,CAACzC,IAAKwC,EAAKxC,GAAG,CAAC,EAGjBhC,KAAKS,OAAM,EAAIC,GAAE,EAC7BgE,aAAa,CACf3D,OAAQC,QAAQC,IAAIC,cACpBC,IAAKkB,C,CACL,EAAET,KAAK,SAAAC,GACP3B,EAAQ2B,CAAG,CACZ,EAAG,SAAAa,GACFvC,EAAOuC,CAAG,CACX,CAAC,E,SACD,CACF,C,EAEDoC,iBAAkB,CACjB5F,MAAO,IAAId,eAAAe,QAAa,CACvB4F,QAAS,CACR1F,KAAMC,M,EAEP,EACDQ,SAAU,SAASiF,GAAT,IAAAhF,EAAAC,KACT,OAAO,IAAIC,QAAQ,SAAOC,EAASC,GAAM,OAAAC,UAAAL,EAAA,KAAA,EAAA,KAAA,EAAA,W,iEAE7B,MAAA,CAAA,EAAM7B,kBAAA4D,MAAM+C,QAAQ,CAAC7C,IAAK+C,CAAO,CAAC,G,cAAzCP,EAAOL,EAAAC,KAAA,IAGVjE,EAAO,qBAAqB,EAGdH,KAAKS,OAAM,EAAIC,GAAE,EAC7BgE,aAAa,CACf3D,OAAQC,QAAQC,IAAIC,cACpBC,IAAKqD,EAAKnC,G,CACV,EAAET,KAAK,SAAAC,GACP3B,EAAQ2B,CAAG,CACZ,EAAG,SAAAa,GACFvC,EAAOuC,CAAG,CACX,CAAC,EAEDxE,kBAAA4D,MAAM2C,UAAU,CAACzC,IAAKwC,EAAKxC,GAAG,CAAC,E,SAC/B,CACF,C,EAEDgD,4BAA6B,CAC5B9F,MAAO,IAAId,eAAAe,QAAa,CACvB8F,IAAK,CACJ5F,KAAMyE,K,EAEPoB,QAAS,CACR7F,KAAMC,M,EAEP6F,QAAS,CACR9F,KAAMI,M,EAEP,EACDK,SAAU,SAASmF,EAAeE,GAAxB,IAAApF,EAAAC,KACT,OAAO,IAAIC,QAAQ,SAAOC,EAASC,GAAM,OAAAC,UAAAL,EAAA,KAAA,EAAA,KAAA,EAAA,W,6EAI5B,OAHR8B,EAAM,GAGE,CAAA,EAAM3D,kBAAA4D,MAAMkC,KAAK,CAAChC,IAAK,CAACiC,IAAKgB,CAAG,CAAC,CAAC,G,OAA1Cf,EAAQkB,EAAAhB,KAAA,EAEHiB,EAAI,E,wBAAGA,EAAInB,EAAMI,QACrBE,EAAON,EAAMmB,GACb3E,EAAWV,KAAKS,OAAM,EAAIC,GAAE,EAC5B4E,EAAa,IAAIhH,YAAAiH,iBAAiB,CACrCxE,OAAQC,QAAQC,IAAIC,cACpBC,IAAKqD,EAAKnC,G,CACV,EACDmD,GAAArB,EAAAtC,GAAI4D,KAAK,CAAA,GAAM,EAAAlH,uBAAAmH,cAAahF,EAAI4E,EAAY,CAACK,UAAWR,CAAO,CAAC,IAPjC,CAAA,EAAA,G,OAO/BK,EAAAI,MAAAzB,EAAA,CAASiB,EAAAhB,KAAA,EAAwD,E,wBAPhCiB,CAAC,G,oBAUnCnF,EAAQ,CAAC2B,IAAKA,EAAKgE,UAAW3B,EAAM4B,IAAI,SAAAC,GAAK,OAAAA,EAAE5D,IAAF,CAAM,CAAC,CAAC,E,SACrD,CACF,C,EAED6D,mBAAoB,CACnB9G,MAAO,IAAId,eAAAe,QAAa,CACvB4F,QAAS,CACR1F,KAAMC,M,EAEP6F,QAAS,CACR9F,KAAMI,M,EAEP,EACDK,SAAU,SAASiF,EAAiBI,GAA1B,IAAApF,EAAAC,KACT,OAAO,IAAIC,QAAQ,SAAOC,EAASC,GAAM,OAAAC,UAAAL,EAAA,KAAA,EAAA,KAAA,EAAA,W,mEAC7B,MAAA,CAAA,EAAM7B,kBAAA4D,MAAM+C,QAAQ,CAAC7C,IAAK+C,CAAO,CAAC,G,cAAzCP,EAAOL,EAAAC,KAAA,EAEP1D,EAAWV,KAAKS,OAAM,EAAIC,GAAE,EAC5B4E,EAAa,IAAIhH,YAAAiH,iBAAiB,CACrCxE,OAAQC,QAAQC,IAAIC,cACpBC,IAAKqD,EAAKnC,G,CACV,GACD,EAAA9D,uBAAAmH,cAAahF,EAAI4E,EAAY,CAACK,UAAWR,CAAO,CAAC,EAAEvD,KAAK,SAAAC,GACvD3B,EAAQ2B,CAAG,CACZ,EAAG,SAAAa,GACFvC,EAAOuC,CAAG,CACX,CAAC,E,SACD,CACF,C,EAEDuD,gCAAiC,CAChC/G,MAAO,IAAId,eAAAe,QAAa,CACvB+G,OAAQ,CACP7G,KAAMC,M,EAEP+C,IAAK,CACJhD,KAAMC,M,EAEP6F,QAAS,CACR9F,KAAMI,M,EAEP,EACDK,SAAU,SAASoG,EAAgB7D,EAAa8C,GAAtC,IAAApF,EAAAC,KACT,OAAO,IAAIC,QAAQ,SAACC,EAASC,GAC5B,IAAIO,EAAWX,EAAKU,OAAM,EAAI0F,UAAS,EACnCb,EAAa,IAAIhH,YAAAiH,iBAAiB,CACrCxE,OAAQmF,EACR/E,IAAKkB,C,CACL,GACD,EAAA9D,uBAAAmH,cAAahF,EAAI4E,EAAY,CAACK,UAAWR,CAAO,CAAC,EAAEvD,KAAK,SAAAC,GACvD3B,EAAQ2B,CAAG,CACZ,EAAG,SAAAa,GACFvC,EAAOuC,CAAG,CACX,CAAC,CACF,CAAC,CACF,C,EAEDgD,aAAc,CACbxG,MAAO,IAAId,eAAAe,QAAa,CACvBkD,IAAK,CACJhD,KAAMC,M,EAEP6F,QAAS,CACR9F,KAAMI,M,EAEP,EACDK,SAAU,SAASuC,EAAa8C,GAAtB,IAAApF,EAAAC,KACT,OAAO,IAAIC,QAAQ,SAACC,EAASC,GAC5B,IAAIO,EAAWX,EAAKU,OAAM,EAAIC,GAAE,EAC5B4E,EAAa,IAAIhH,YAAAiH,iBAAiB,CACrCxE,OAAQC,QAAQC,IAAIC,cACpBC,IAAKkB,C,CACL,GACD,EAAA9D,uBAAAmH,cAAahF,EAAI4E,EAAY,CAACK,UAAWR,CAAO,CAAC,EAAEvD,KAAK,SAAAC,GACvD3B,EAAQ2B,CAAG,CACZ,EAAG,SAAAa,GACFvC,EAAOuC,CAAG,CACX,CAAC,CACF,CAAC,CACF,C,EAED0D,cAAe,CACdlH,MAAO,IAAId,eAAAe,QAAa,CACvB0E,KAAM,CACLxE,KAAMyE,K,EAEPC,SAAU,CACT1E,KAAMC,M,EAEP6F,QAAS,CACR9F,KAAMI,M,EAEP,EACDK,SAAU,SAAS+D,EAAgBsB,GAAzB,IAAApF,EAAAC,KACT,OAAO,IAAIC,QAAQ,SAAOC,EAASC,GAAM,OAAAC,UAAAL,EAAA,KAAA,EAAA,KAAA,EAAA,W,2EACpC8B,EAAM,GAEDwD,EAAI,E,wBAAGA,EAAIxB,EAAKS,QACpBjC,EAAMwB,EAAKwB,GACX3E,EAAWV,KAAKS,OAAM,EAAIC,GAAE,EAC5B4E,EAAa,IAAIhH,YAAAiH,iBAAiB,CACrCxE,OAAQC,QAAQC,IAAIC,cACpBC,IAAKkB,C,CACL,EACDmD,GAAArB,EAAAtC,GAAI4D,KAAK,CAAA,GAAM,EAAAlH,uBAAAmH,cAAahF,EAAI4E,EAAY,CAACK,UAAWR,CAAO,CAAC,IAPlC,CAAA,EAAA,G,OAO9BK,EAAAI,MAAAzB,EAAA,CAASiB,EAAAhB,KAAA,EAAwD,E,wBAPjCiB,CAAC,G,oBAUlCnF,EAAQ2B,CAAG,E,SACX,CACF,C,EAEDwE,kBAAmB,CAClBnH,MAAO,IAAId,eAAAe,QAAa,CACvBmH,IAAK,CACJjH,KAAMC,M,EAEP,EACDQ,SAAU,SAASwG,GAClB,OAAO,IAAIrG,QAAQ,SAACC,EAASC,GAC5B1B,QAAQ8H,IAAID,EAAK,SAAUE,EAAOC,EAAUC,GACtCF,GAAiC,MAAxBC,EAASE,WAKtBxG,EAAOqG,CAAK,GAJRI,EAAO,QAAUH,EAASI,QAAQ,gBAAkB,WAAa,IAAIxF,OAAOqF,CAAI,EAAEI,SAAS,QAAQ,EACvG5G,EAAQ0G,CAAI,EAKd,CAAC,CACF,CAAC,CACF,C,EAEDG,UAAW,CACV7H,MAAO,IAAId,eAAAe,QAAa,CACvB4F,QAAS,CACR1F,KAAMC,M,EAEP0H,MAAO,CACN3H,KAAMC,M,EAEK2H,mBAAoB,CAChB5H,KAAMC,M,EAEtB,EACDQ,SAAU,SAASiF,EAAiBiC,EAAeC,GAAzC,IAAAlH,EAAAC,KACT,OAAO,IAAIC,QAAQ,SAAOC,EAASC,GAAM,OAAAC,UAAAL,EAAA,KAAA,EAAA,KAAA,EAAA,W,wEAC7B,MAAA,CAAA,EAAM7B,kBAAA4D,MAAMoF,SAASnC,CAAO,G,cAAnCP,EAAOL,EAAAC,KAAA,GAOXpE,KAAKmH,WAAW,eAAgB3C,EAAKnC,IAAK,OAAQ,SAAC+E,EAAQC,GAC1D,IAUMC,EAVFD,GACC7C,EAAKpC,KAAO,KACXkF,EAAe,+CAAwE,KAAvBL,EAA4B,0BAA4BA,EAAqB,KAAO,IAExJlH,EAAKwH,UAAUP,EAAO3I,uBAAAmJ,gBAAgBC,cAAa,EAAK,WAAajD,EAAKrC,KAAMmF,EAAc,GAAI,CAAC,CAClGI,SAAUlD,EAAKrC,KACfwF,KAAMN,C,GACH,KAAM,EAAE,IAGRC,EAAe,kDAA2E,KAAvBL,EAA4B,0BAA4BA,EAAqB,KAAO,IAE3JlH,EAAKwH,UAAUP,EAAO3I,uBAAAmJ,gBAAgBC,cAAa,EAAK,WAAajD,EAAKrC,KAAMmF,EAAeD,EAAQ,GAAI,KAAM,KAAM,EAAE,GAG1HnH,EAAQ,CAAA,CAAI,GAGZC,EAAO,wBAAwB,CAEjC,CAAC,EAzBAA,EAAO,qBAAqB,E,SA0B7B,CACF,C,EAED,CACF,CAjgBAyH,QAAA9I,eAAAA","file":"aws.js","sourcesContent":["import { AWS, MethodManager } from '../managers/method.manager';\nimport { Files } from '../collections/file.collection';\nimport SimpleSchema from 'simpl-schema';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { GetObjectCommand } from '@aws-sdk/client-s3';\nimport { getSignedUrl } from '@aws-sdk/s3-request-presigner';\nimport { objectIdHexString } from '../util/common';\n\nlet request = require('request').defaults({ encoding: null });\nlet fs = require('fs');\nlet pdfCnt = 1000000;\n\nexport function loadAWSMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tuploadFileAndSave: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileData: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileSize: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tfileOrder: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tcompress: {\n\t\t\t\t\ttype: Boolean\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(fileName: string, fileData: string, fileSize: number, fileOrder: number, fileType: string, compress: Boolean) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tif (fileName) {\n\t\t\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\t\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\t\tconst maxRetries = 3;\n\t\t\t\t\t\tlet attempt = 0;\n\n\t\t\t\t\t\tconst uploadFile = () => {\n\t\t\t\t\t\t\ts3.putObject({\n\t\t\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\t\t\tKey: key,\n\t\t\t\t\t\t\t\tBody: Buffer.from(fileData.replace('data:' + fileData.split(',')[0].split(':')[1].split(';')[0] + ';base64,', ''), 'base64'), \n\t\t\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\t\t\tContentType: fileData.split(',')[0].split(':')[1].split(';')[0], \n\t\t\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t\t\t}).then(res => {\n\t\t\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\t\t\tFiles.create({\n\t\t\t\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\n\t\t\t\t\t\t\t\t\t}).then(resFile => {\n\t\t\t\t\t\t\t\t\t\tresolve(resFile);\n\t\t\t\t\t\t\t\t\t}).catch(errFile => {\n\t\t\t\t\t\t\t\t\t\treject(errFile);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tresolve(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}).catch(err => {\n\t\t\t\t\t\t\t\tattempt++;\n\t\t\t\t\t\t\t\tif (attempt <= maxRetries) {\n\t\t\t\t\t\t\t\t\tconst backoff = Math.pow(2, attempt) * 1000; // Exponential backoff\n\t\t\t\t\t\t\t\t\tconsole.warn(`Attempt ${attempt} failed. Retrying in ${backoff / 1000} seconds...`);\n\t\t\t\t\t\t\t\t\tsetTimeout(uploadFile, backoff);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treject(new Error(`Failed to upload after ${maxRetries} attempts: ${err.message}`));\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\n\t\t\t\t\t\tuploadFile(); // Start the upload process\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject(new Error(\"Invalid fileName provided\"));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tuploadNonPDFFileAndSave: {\n\t\t\tcheck: new SimpleSchema({\t\n\t\t\t\tfileName: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileData: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileSize: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileOrder: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileType: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t}\t\n\t\t\t}),\t\n\t\t\tfunction: function(fileName: string, fileData: string, fileSize: number, fileOrder: number, fileType: string) {\t\n\t\t\t\treturn new Promise((resolve, reject) => {\t\n\t\t\t\t\tif (fileName) {\t\n\t\t\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + fileName;\t\n\n\t\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\t\ts3.putObject({\n\t\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\t\tKey: key, \n\t\t\t\t\t\t\tBody: Buffer.from(fileData), \n\t\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\t\tContentType: 'application/gzip', \n\t\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t\t}).then(res => {\n\t\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\t\tFiles.create({\t\n\t\t\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\n\t\t\t\t\t\t\t\t}).then(resFile => {\t\n\t\t\t\t\t\t\t\t\tresolve(resFile);\t\n\t\t\t\t\t\t\t\t}, errFile => reject(errFile));\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\tresolve(null);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\treject(err);\n\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},\n\t\tuploadNonPDFBufferAndSave: {\n\t\t\tcheck: new SimpleSchema({\t\n\t\t\t\tfileName: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileDataBuffer: {\t\n\t\t\t\t\ttype: Buffer\n\t\t\t\t},\t\n\t\t\t\tfileSize: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileOrder: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileType: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t}\t\n\t\t\t}),\t\n\t\t\tfunction: function(fileName: string, fileDataBuffer, fileSize: number, fileOrder: number, fileType: string) {\t\n\t\t\t\treturn new Promise((resolve, reject) => {\t\n\t\t\t\t\tif (fileName) {\t\n\t\t\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + fileName;\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\t\ts3.putObject({\n\t\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\t\tKey: key, \n\t\t\t\t\t\t\tBody: fileDataBuffer, \n\t\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\t\tContentType: 'application/gzip', \n\t\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t\t}).then(res => {\t\n\t\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\t\tFiles.create({\t\n\t\t\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\n\t\t\t\t\t\t\t\t}).then(resFile => {\t\n\t\t\t\t\t\t\t\t\tresolve(resFile);\t\n\t\t\t\t\t\t\t\t}, errFile => reject(errFile));\t\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresolve(null);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\treject(err);\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},\n\t\tuploadNonPDFStreamAndSave: {\n\t\t\tcheck: new SimpleSchema({\t\n\t\t\t\tfileName: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileData: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileOrder: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileType: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t}\t\n\t\t\t}),\t\n\t\t\tfunction: function(fileName: string, fileData: string, fileOrder: number, fileType: string) {\t\n\t\t\t\treturn new Promise((resolve, reject) => {\t\n\t\t\t\t\tif (fileName) {\t\n\t\t\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + fileName;\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\t\ts3.putObject({\n\t\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\t\tKey: key, \n\t\t\t\t\t\t\tBody: fs.createReadStream(fileData), \n\t\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\t\tContentType: 'application/gzip', \n\t\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t\t}).then(res => {\n\t\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\t\tFiles.create({\t\n\t\t\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: 1, key: key, order: fileOrder, type: fileType\n\t\t\t\t\t\t\t\t}).then(resFile => {\t\n\t\t\t\t\t\t\t\t\tresolve(resFile);\t\n\t\t\t\t\t\t\t\t}, errFile => reject(errFile));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresolve(null);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\treject(err);\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},\n\t\tdeleteFiles: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'keys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(keys: string[]) {\t\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet files = await Files.find({key: {$in: keys}});\n\t\t\n\t\t\t\t\tlet deleteCnt = files.length;\n\t\t\n\t\t\t\t\tfiles.forEach(file => {\n\t\t\t\t\t\tFiles.deleteOne({_id: file._id});\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\t\ts3.deleteObject({\n\t\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\t\tKey: file.key\n\t\t\t\t\t\t}).then(res => {\n\t\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\t\tdeleteCnt--;\n\t\t\t\t\t\t\t\tif (!deleteCnt) {\n\t\t\t\t\t\t\t\t\tresolve(files.length);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t}, (e) => reject(e));\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tdeleteFile: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkey: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(key: string) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\n\t\t\t\t\tlet file = await Files.findOne({key: key});\n\t\t\n\t\t\t\t\tif (file) {\n\t\t\t\t\t\tFiles.deleteOne({_id: file._id});\n\t\t\t\t\t}\n\n\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\ts3.deleteObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\tKey: key\n\t\t\t\t\t}).then(res => {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}, err => {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tdeleteFileWithId: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(id_file: string) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\n\t\t\t\t\tlet file = await Files.findOne({_id: id_file});\n\t\t\n\t\t\t\t\tif (!file) {\n\t\t\t\t\t\treject('Could not find file');\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\ts3.deleteObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\tKey: file.key\n\t\t\t\t\t}).then(res => {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}, err => {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t});\n\n\t\t\t\t\tFiles.deleteOne({_id: file._id});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrlsAndFilesWithId: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tids: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'ids.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(ids: string[], expires: number) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet res = [];\n\t\t\t\t\tlet fileArray = [];\n\n\t\t\t\t\tlet files = await Files.find({_id: {$in: ids}});\n\t\t\t\t\t\n\t\t\t\t\tfor (let i = 0; i < files.length; i++) {\n\t\t\t\t\t\tlet file = files[i];\n\t\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\t\tKey: file.key\n\t\t\t\t\t\t});\n\t\t\t\t\t\tres.push(await getSignedUrl(s3, getCommand, {expiresIn: expires}));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tresolve({res: res, fileArray: files.map(a => a.name)});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrlWithId: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(id_file: string, expires: number) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet file = await Files.findOne({_id: id_file});\n\n\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: file.key\n\t\t\t\t\t});\n\t\t\t\t\tgetSignedUrl(s3, getCommand, {expiresIn: expires}).then(res => {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}, err => {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrlUSEast1BucketAndKey: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tbucket: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tkey: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(bucket: string, key: string, expires: number) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3USEast1();\n\t\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\t\tBucket: bucket, \n\t\t\t\t\t\tKey: key\n\t\t\t\t\t});\n\t\t\t\t\tgetSignedUrl(s3, getCommand, {expiresIn: expires}).then(res => {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}, err => {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrl: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkey: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(key: string, expires: number) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: key\n\t\t\t\t\t});\n\t\t\t\t\tgetSignedUrl(s3, getCommand, {expiresIn: expires}).then(res => {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}, err => {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrls: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'keys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(keys: string[], expires: number) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet res = [];\n\n\t\t\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\t\t\tlet key = keys[i];\n\t\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\t\tKey: key\n\t\t\t\t\t\t});\n\t\t\t\t\t\tres.push(await getSignedUrl(s3, getCommand, {expiresIn: expires}));\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve(res);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgetDataURIfromURL: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\turl: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(url: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\trequest.get(url, function (error, response, body) {\n\t\t\t\t\t\tif (!error && response.statusCode === 200) {\n\t\t\t\t\t\t\tlet data = 'data:' + response.headers['content-type'] + ';base64,' + new Buffer(body).toString('base64');\n\t\t\t\t\t\t\tresolve(data);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject(error);\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\temailFile: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\temail: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n additional_message: {\n type: String\n }\n\t\t\t}),\n\t\t\tfunction: function(id_file: string, email: string, additional_message) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet file = await Files.findById(id_file);\n\n\t\t\t\t\tif (!file) {\n\t\t\t\t\t\treject('Could not find file');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.callMethod('getSignedUrl', file.key, 259200, (errPDF, resPDF) => {\n\t\t\t\t\t\tif (resPDF) {\n\t\t\t\t\t\t\tif (file.size < 5000000) {\n\t\t\t\t\t\t\t\tlet emailMessage = 'Attached is the file requested for email.\\n' + (additional_message !== '' ? '\\nAdditional Message:\\n' + additional_message + '\\n' : '') ;\n\n\t\t\t\t\t\t\t\tthis.sendEmail(email, ResolveIOServer.getClientName() + ' File - ' + file.name, emailMessage, '', [{\n\t\t\t\t\t\t\t\t\tfilename: file.name,\n\t\t\t\t\t\t\t\t\tpath: resPDF\n\t\t\t\t\t\t\t\t}], null, '');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tlet emailMessage = 'Please click the link to the requested file.\\n' + (additional_message !== '' ? '\\nAdditional Message:\\n' + additional_message + '\\n' : '') ;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tthis.sendEmail(email, ResolveIOServer.getClientName() + ' File - ' + file.name, emailMessage + resPDF, '', null, null, '');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject('Could not get file URL');\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}"]}
1
+ {"version":3,"sources":["../../src/methods/aws.ts"],"names":["client_s3_1","require","s3_request_presigner_1","axios_1","simpl_schema_1","file_collection_1","resolveio_server_app_1","common_1","fs","pdfCnt","loadAWSMethods","methodManager","methods","uploadFileAndSave","check","default","fileName","type","String","fileData","fileSize","Number","fileOrder","fileType","compress","Boolean","function","Error","key","Date","now","s3","this","getAWS","maxRetries","attempt","putObject","Bucket","process","env","AWS_S3_BUCKET","Key","Body","Buffer","from","replace","split","ACL","ContentType","ContentDisposition","_b","sent","Files","create","_id","objectIdHexString","__v","name","size","order","backoff_1","Math","pow","console","warn","concat","Promise","resolve","setTimeout","err_1","message","uploadNonPDFFileAndSave","_a","mesage","err_2","uploadNonPDFBufferAndSave","fileDataBuffer","err_3","uploadNonPDFStreamAndSave","createReadStream","err_4","deleteFiles","keys","Array","keys.$","find","$in","files","deleteCnt","length","files_1","__values","files_1_1","next","file","value","deleteOne","deleteObject","err_5","deleteFile","findOne","err_6","err_7","deleteFileWithId","id_file","err_8","err_9","getSignedUrlsAndFilesWithId","ids","ids.$","expires","res","_c","i","getCommand","GetObjectCommand","push","getSignedUrl","expiresIn","apply","fileArray","map","a","getSignedUrlWithId","getSignedUrlUSEast1BucketAndKey","bucket","s3USEast1","getSignedUrls","getDataURIfromURL","url","get","responseType","response","status","contentType","headers","dataBase64","data","toString","emailFile","email","additional_message","findById","callMethod","resPDF","emailMessage","sendEmail","ResolveIOServer","getClientName","filename","path","err_10","exports"],"mappings":"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","file":"aws.js","sourcesContent":["import { GetObjectCommand } from '@aws-sdk/client-s3';\nimport { getSignedUrl } from '@aws-sdk/s3-request-presigner';\nimport axios from 'axios';\nimport SimpleSchema from 'simpl-schema';\nimport { Files } from '../collections/file.collection';\nimport { AWS, MethodManager } from '../managers/method.manager';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { objectIdHexString } from '../util/common';\nlet fs = require('fs');\nlet pdfCnt = 1000000;\n\nexport function loadAWSMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tuploadFileAndSave: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tfileName: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileData: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfileSize: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tfileOrder: {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\tfileType: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tcompress: {\n\t\t\t\t\ttype: Boolean\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(fileName: string, fileData: string, fileSize: number, fileOrder: number, fileType: string, compress: Boolean) {\n\t\t\t\tif (!fileName) {\n\t\t\t\t\tthrow new Error(\"Invalid File Name provided\");\n\t\t\t\t}\n\n\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\tconst maxRetries = 3;\n\t\t\t\tlet attempt = 0;\n\n\t\t\t\twhile (attempt <= maxRetries) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet res = await s3.putObject({\n\t\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\t\tKey: key,\n\t\t\t\t\t\t\tBody: Buffer.from(fileData.replace('data:' + fileData.split(',')[0].split(':')[1].split(';')[0] + ';base64,', ''), 'base64'), \n\t\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\t\tContentType: fileData.split(',')[0].split(':')[1].split(';')[0], \n\t\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\treturn Files.create({\n\t\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\tattempt++;\n\t\t\t\t\t\tif (attempt <= maxRetries) {\n\t\t\t\t\t\t\tconst backoff = Math.pow(2, attempt) * 1000;\n\t\t\t\t\t\t\tconsole.warn(`Attempt ${attempt} failed. Retrying in ${backoff / 1000} seconds...`);\n\t\t\t\t\t\t\t// eslint-disable-next-line no-restricted-syntax\n\t\t\t\t\t\t\tawait new Promise(resolve => setTimeout(resolve, backoff));\n\t\t\t\t\t\t} \n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthrow new Error(`Error in AWS Upload File And Save: Failed to upload after ${maxRetries} attempts: ${err.message}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\t\tuploadNonPDFFileAndSave: {\n\t\t\tcheck: new SimpleSchema({\t\n\t\t\t\tfileName: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileData: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileSize: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileOrder: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileType: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t}\t\n\t\t\t}),\t\n\t\t\tfunction: async function(fileName: string, fileData: string, fileSize: number, fileOrder: number, fileType: string) {\t\n\t\t\t\tif (!fileName) {\n\t\t\t\t\tthrow new Error(\"Invalid File Name provided\");\n\t\t\t\t}\n\n\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + fileName;\t\n\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tlet res = await s3.putObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: key, \n\t\t\t\t\t\tBody: Buffer.from(fileData), \n\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\tContentType: 'application/gzip', \n\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t});\n\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\treturn Files.create({\t\n\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Upload Non PDF File And Save: ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\t\n\t\t},\n\t\tuploadNonPDFBufferAndSave: {\n\t\t\tcheck: new SimpleSchema({\t\n\t\t\t\tfileName: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileDataBuffer: {\t\n\t\t\t\t\ttype: Buffer\n\t\t\t\t},\t\n\t\t\t\tfileSize: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileOrder: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileType: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t}\t\n\t\t\t}),\t\n\t\t\tfunction: async function(fileName: string, fileDataBuffer, fileSize: number, fileOrder: number, fileType: string) {\t\n\t\t\t\tif (!fileName) {\n\t\t\t\t\tthrow new Error(\"Invalid File Name provided\");\n\t\t\t\t}\n\n\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + fileName;\t\n\t\t\t\t\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\n\t\t\t\ttry {\n\t\t\t\t\tlet res = await s3.putObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: key, \n\t\t\t\t\t\tBody: fileDataBuffer, \n\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\tContentType: 'application/gzip', \n\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t});\n\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\treturn Files.create({\t\n\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: fileSize, key: key, order: fileOrder, type: fileType\n\t\t\t\t\t\t});\n\t\t\t\t\t}\t\n\t\t\t\t\telse {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Upload Non PDF Buffer And Save: ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\t\n\t\t},\n\t\tuploadNonPDFStreamAndSave: {\n\t\t\tcheck: new SimpleSchema({\t\n\t\t\t\tfileName: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileData: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t},\t\n\t\t\t\tfileOrder: {\t\n\t\t\t\t\ttype: Number\t\n\t\t\t\t},\t\n\t\t\t\tfileType: {\t\n\t\t\t\t\ttype: String\t\n\t\t\t\t}\t\n\t\t\t}),\t\n\t\t\tfunction: async function(fileName: string, fileData: string, fileOrder: number, fileType: string) {\t\n\t\t\t\tif (!fileName) {\n\t\t\t\t\tthrow new Error(\"Invalid File Name provided\");\n\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\tlet key = 'uploads/' + Date.now() + '-' + fileName;\t\n\t\t\t\t\t\t\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tlet res = await s3.putObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: key, \n\t\t\t\t\t\tBody: fs.createReadStream(fileData), \n\t\t\t\t\t\tACL: 'private', \n\t\t\t\t\t\tContentType: 'application/gzip', \n\t\t\t\t\t\tContentDisposition: 'inline'\n\t\t\t\t\t});\n\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\treturn Files.create({\t\n\t\t\t\t\t\t\t_id: objectIdHexString(), __v: 0, name: fileName, size: 1, key: key, order: fileOrder, type: fileType\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Upload Non PDF Stream And Save: ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\t\n\t\t},\n\t\tdeleteFiles: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'keys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(keys: string[]) {\t\n\t\t\t\tlet files = await Files.find({key: {$in: keys}});\n\t\n\t\t\t\tlet deleteCnt = files.length;\n\t\n\t\t\t\tfor (let file of files) {\n\t\t\t\t\tawait Files.deleteOne({_id: file._id});\n\t\t\t\t\t\n\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet res = await s3.deleteObject({\n\t\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\t\tKey: file.key\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\tdeleteCnt--;\n\t\t\t\t\t\t\tif (!deleteCnt) {\n\t\t\t\t\t\t\t\treturn files.length;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\terr.mesage = 'Error In AWS Delete Files: ' + err.mesage;\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t},\n\t\tdeleteFile: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkey: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(key: string) {\t\t\n\t\t\t\tlet file = await Files.findOne({key: key});\n\t\n\t\t\t\tif (file) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait Files.deleteOne({_id: file._id});\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\terr.mesage = 'Error In AWS Delete File (Resolve Side): ' + err.mesage;\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tlet res = await s3.deleteObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\tKey: key\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\treturn res;\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Delete File (AWS Side): ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tdeleteFileWithId: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(id_file: string) {\n\t\t\t\tlet file = await Files.findOne({_id: id_file});\n\t\n\t\t\t\tif (!file) {\n\t\t\t\t\tthrow new Error('Error in AWS Delete File With ID: Could not find file');\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tawait Files.deleteOne({_id: file._id});\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Delete File With ID (Resolve Side): ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tlet res = await s3.deleteObject({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET,\n\t\t\t\t\t\tKey: file.key\n\t\t\t\t\t});\n\n\t\t\t\t\treturn res;\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Delete File With ID (AWS Side): ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tgetSignedUrlsAndFilesWithId: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tids: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'ids.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(ids: string[], expires: number) {\n\t\t\t\tlet res = [];\n\n\t\t\t\tlet files = await Files.find({_id: {$in: ids}});\n\t\t\t\t\n\t\t\t\tfor (let i = 0; i < files.length; i++) {\n\t\t\t\t\tlet file = files[i];\n\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: file.key\n\t\t\t\t\t});\n\t\t\t\t\tres.push(await getSignedUrl(s3, getCommand, {expiresIn: expires}));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn {res: res, fileArray: files.map(a => a.name)};\n\t\t\t}\n\t\t},\n\t\tgetSignedUrlWithId: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(id_file: string, expires: number) {\n\t\t\t\tlet file = await Files.findOne({_id: id_file});\n\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\tKey: file.key\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\treturn getSignedUrl(s3, getCommand, {expiresIn: expires});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrlUSEast1BucketAndKey: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tbucket: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tkey: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(bucket: string, key: string, expires: number) {\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3USEast1();\n\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\tBucket: bucket, \n\t\t\t\t\tKey: key\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\treturn getSignedUrl(s3, getCommand, {expiresIn: expires});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrl: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkey: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(key: string, expires: number) {\n\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\tKey: key\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\treturn getSignedUrl(s3, getCommand, {expiresIn: expires});\n\t\t\t}\n\t\t},\n\t\tgetSignedUrls: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tkeys: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'keys.$': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\texpires: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(keys: string[], expires: number) {\n\t\t\t\tlet res = [];\n\n\t\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\t\tlet key = keys[i];\n\t\t\t\t\tlet s3 = (<AWS>this.getAWS()).s3();\n\t\t\t\t\tlet getCommand = new GetObjectCommand({\n\t\t\t\t\t\tBucket: process.env.AWS_S3_BUCKET, \n\t\t\t\t\t\tKey: key\n\t\t\t\t\t});\n\n\t\t\t\t\tres.push(await getSignedUrl(s3, getCommand, {expiresIn: expires}));\n\t\t\t\t}\n\n\t\t\t\treturn res;\n\t\t\t}\n\t\t},\n\t\tgetDataURIfromURL: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\turl: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(url: string) {\n\t\t\t\tconst response = await axios.get(url, {\n\t\t\t\t\tresponseType: 'arraybuffer'\n\t\t\t\t});\n\t\t\t\n\t\t\t\tif (response.status !== 200) {\n\t\t\t\t\tthrow new Error(`Error in Get Data URI From URL: Failed to fetch URL, status: ${response.status}`);\n\t\t\t\t}\n\t\t\t\n\t\t\t\tconst contentType = response.headers['content-type'];\n\t\t\t\tconst dataBase64 = Buffer.from(response.data).toString('base64');\n\t\t\t\treturn `data:${contentType};base64,${dataBase64}`;\n\t\t\t}\n\t\t},\n\t\temailFile: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_file: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\temail: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n additional_message: {\n type: String\n }\n\t\t\t}),\n\t\t\tfunction: async function(id_file: string, email: string, additional_message) {\n\t\t\t\tlet file = await Files.findById(id_file);\n\n\t\t\t\tif (!file) {\n\t\t\t\t\tthrow new Error('Error in AWS Email File: Could not find file');\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tlet resPDF = await this.callMethod('getSignedUrl', file.key, 259200);\n\t\t\t\t\t\n\t\t\t\t\tif (resPDF) {\n\t\t\t\t\t\tif (file.size < 5000000) {\n\t\t\t\t\t\t\tlet emailMessage = 'Attached is the file requested for email.\\n' + (additional_message !== '' ? '\\nAdditional Message:\\n' + additional_message + '\\n' : '') ;\n\n\t\t\t\t\t\t\tawait this.sendEmail(email, ResolveIOServer.getClientName() + ' File - ' + file.name, emailMessage, '', [{\n\t\t\t\t\t\t\t\tfilename: file.name,\n\t\t\t\t\t\t\t\tpath: resPDF\n\t\t\t\t\t\t\t}], null, '');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tlet emailMessage = 'Please click the link to the requested file.\\n' + (additional_message !== '' ? '\\nAdditional Message:\\n' + additional_message + '\\n' : '') ;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tawait this.sendEmail(email, ResolveIOServer.getClientName() + ' File - ' + file.name, emailMessage + resPDF, '', null, null, '');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in AWS Email File: Could not get file URL');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t\terr.mesage = 'Error In AWS Email File: ' + err.mesage;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadCollectionMethods=void 0;var common_1=require("../util/common"),simpl_schema_1=require("simpl-schema"),pagination_model_1=require("../models/pagination.model"),resolveio_server_app_1=require("../resolveio-server-app");function loadCollectionMethods(e){e.methods({collectionListAll:{function:function(){return new Promise(function(e,o){e(resolveio_server_app_1.ResolveIOServer.getMongoManager().collections().map(function(e){return e.collectionName}).sort(function(e,o){return e.localeCompare(o)}))})}},collectionListRB:{function:function(){return new Promise(function(e,o){e(resolveio_server_app_1.ResolveIOServer.getMongoManager().collections().filter(function(e){return e.useRB}).map(function(e){return e.collectionName}).sort(function(e,o){return e.localeCompare(o)}))})}},findOne:{check:new simpl_schema_1.default({collection:{type:String},query:{type:Object,blackbox:!0}}),function:function(e,r){return void 0===r&&(r={}),new Promise(function(o,n){resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e)?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).findOne(r).then(function(e){return o(e)},function(e){return n(e)}):n("Invalid collection")})}},find:{check:new simpl_schema_1.default({collection:{type:String},query:{type:Object,blackbox:!0},sort:{type:Object,blackbox:!0,optional:!0}}),function:function(e,r,t){return void 0===r&&(r={}),void 0===t&&(t={}),new Promise(function(o,n){resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e)?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).find(r,{sort:t}).then(function(e){return o(e)},function(e){return n(e)}):n("Invalid collection")})}},findWithOptions:{check:new simpl_schema_1.default({collection:{type:String},query:{type:Object,blackbox:!0},options:{type:pagination_model_1.PaginationOptionsSchema}}),function:function(r,t,i){return new Promise(function(o,n){var e;resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(r)?(e={},i.fields&&Object.keys(i.fields).length&&(e.projection=i.fields),i.sort&&Object.keys(i.sort).length&&(e.sort=i.sort),i.limit&&(e.limit=i.limit),i.skip&&(e.skip=i.skip),resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(r).find(t,e).then(function(e){return o(e)},function(e){return n(e)})):n("Invalid collection")})}},insertDocument:{check:new simpl_schema_1.default({collection:{type:String},document:{type:Object,blackbox:!0}}),function:function(r,t){return new Promise(function(e,o){var n;resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(r)?(n=(0,common_1.objectIdHexString)(),t._id=n,t.__v=0,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(r).insertOne(t).then(function(){return e(n)},function(e){return o(e)})):o("Invalid collection")})}},insertManyDocuments:{check:new simpl_schema_1.default({collection:{type:String},documents:{type:Array},"documents.$":{type:Object,blackbox:!0}}),function:function(n,r){return new Promise(function(e,o){resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(n)?(r.forEach(function(e){e._id=(0,common_1.objectIdHexString)(),e.__v=0}),resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(n).insertMany(r).then(function(){return e(r.map(function(e){return e._id}))},function(e){return o(e)})):o("Invalid collection")})}},updateDocument:{check:new simpl_schema_1.default({collection:{type:String},f_document:{type:Object,blackbox:!0}}),function:function(e,r){return new Promise(function(o,n){resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e)?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).replaceOne({_id:r._id},r).then(function(e){return o(e)},function(e){return n(e)}):n("Invalid collection")})}},updateDocumentProps:{check:new simpl_schema_1.default({collection:{type:String},doc_id:{type:String},updateParams:{type:Array},"updateParams.$":{type:Object,blackbox:!0},doc__v:{type:Number,optional:!0}}),function:function(l,e,o,s){return new Promise(function(i,c){resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l)?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).findOne({_id:e}).then(function(r){var t;r?(t=(0,common_1.deepCopy)(r),o.forEach(function(e){t[e.prop]=e.data}),s&&t.__v!==s?(console.log(new Date,"invalid version - "+l,r.__v,s),resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l+".versions")?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l+".versions").findOne({_id:{_id:r._id,__v:s}}).then(function(e){var o=r._id,n=r.__v;e?((e=(0,common_1.getMongoMergeUpdatedDoc)(t,r,e))._id=o,e.__v=n,r._id=o,r.__v=n,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).replaceOne({_id:o},e,{},!1,!1,r).then(function(e){i(e)},function(e){return c(e)})):c("Invalid Version And Could Not Find History Props - DB: "+n+", Trying to update with :"+s)},function(){}):c("Invalid Version And We Are NOT Using Versions On This Collection!")):resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).replaceOne({_id:t._id},t,{},!1,!1,r).then(function(e){i(e)},function(e){return c(e)})):c("No Document")},function(){}):c("Invalid collection")})}},updateDocumentOffline:{check:new simpl_schema_1.default({collection:{type:String},f_document:{type:Object,blackbox:!0}}),function:function(l,s){return new Promise(function(i,c){resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l)?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).findOne({_id:s._id}).then(function(o){var n,r,t;o?o.__v===s.__v?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).replaceOne({_id:s._id},s,{},!1,!1,o).then(function(e){i(e)},function(e){return c(e)}):(console.log("OFFLINE - invalid version - "+l,o.__v,s.__v),n=o._id,r=o.__v,t=s.__v,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l+".versions")?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l+".versions").findOne({_id:{_id:n,__v:t}}).then(function(e){e?((e=(0,common_1.getMongoMergeUpdatedDoc)(s,o,e))._id=n,e.__v=r,o._id=n,o.__v=r,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).replaceOne({_id:n},e,{},!1,!1,o).then(function(e){i(e)},function(e){return c(e)})):c("OFFLINE - Invalid Version And Could Not Find History Props - DB: "+r+", Trying to update with :"+t)},function(){}):c("Invalid Version And We Are NOT Using Versions On This Collection!")):c("No Document")},function(){}):c("Invalid collection")})}},updateDocumentPropsOffline:{check:new simpl_schema_1.default({collection:{type:String},doc_id:{type:String},updateParams:{type:Array},"updateParams.$":{type:Object,blackbox:!0},doc__v:{type:Number}}),function:function(l,e,s,a){return new Promise(function(i,c){resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l)?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).findOne({_id:e},null,!0).then(function(o){var n,r,t;o?(n=(0,common_1.deepCopy)(o),s.forEach(function(e){n[e.prop]=e.data}),n.__v===a?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).replaceOne({_id:n._id},n,{},!1,!1,o).then(function(e){i(e)},function(e){return c(e)}):(console.log("OFFLINE - invalid version - "+l,o.__v,a),r=o._id,t=o.__v,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l+".versions")?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l+".versions").findOne({_id:{_id:o._id,__v:a}}).then(function(e){e?((e=(0,common_1.getMongoMergeUpdatedDoc)(n,o,e))._id=r,e.__v=t,o._id=r,o.__v=t,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).replaceOne({_id:r},e,{},!1,!1,o).then(function(e){i(e)},function(e){return c(e)})):c("OFFLINE - Invalid Version And Could Not Find History Props - DB: "+t+", Trying to update with :"+a)},function(){}):c("Invalid Version And We Are NOT Using Versions On This Collection!"))):c("No Document")},function(){}):c("Invalid collection")})}},removeDocument:{check:new simpl_schema_1.default({collection:{type:String},doc_id:{type:String}}),function:function(e,r){return new Promise(function(o,n){resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e)?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).deleteOne({_id:r}).then(function(e){o(e)},function(e){n(e)}):n("Invalid collection")})}},removeDocumentWithQuery:{check:new simpl_schema_1.default({collection:{type:String},query:{type:Object,blackbox:!0}}),function:function(e,r){return new Promise(function(o,n){resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e)?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).deleteOne(r).then(function(e){o(e)},function(e){n(e)}):n("Invalid collection")})}},removeDocumentsWithQuery:{check:new simpl_schema_1.default({collection:{type:String},query:{type:Object,blackbox:!0}}),function:function(e,r){return new Promise(function(o,n){resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e)?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).deleteMany(r).then(function(e){o(e)},function(e){n(e)}):n("Invalid collection")})}}})}exports.loadCollectionMethods=loadCollectionMethods;
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(e,n,t,i){return new(t=t||Promise)(function(r,o){function fulfilled(e){try{step(i.next(e))}catch(e){o(e)}}function rejected(e){try{step(i.throw(e))}catch(e){o(e)}}function step(e){var o;e.done?r(e.value):((o=e.value)instanceof t?o:new t(function(e){e(o)})).then(fulfilled,rejected)}step((i=i.apply(e,n||[])).next())})},__generator=this&&this.__generator||function(n,t){var i,l,c,a={label:0,sent:function(){if(1&c[0])throw c[1];return c[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(r){return function(e){var o=[r,e];if(i)throw new TypeError("Generator is already executing.");for(;a=s&&o[s=0]?0:a;)try{if(i=1,l&&(c=2&o[0]?l.return:o[0]?l.throw||((c=l.return)&&c.call(l),0):l.next)&&!(c=c.call(l,o[1])).done)return c;switch(l=0,(o=c?[2&o[0],c.value]:o)[0]){case 0:case 1:c=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,l=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(c=0<(c=a.trys).length&&c[c.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!c||o[1]>c[0]&&o[1]<c[3]))a.label=o[1];else if(6===o[0]&&a.label<c[1])a.label=c[1],c=o;else{if(!(c&&a.label<c[2])){c[2]&&a.ops.pop(),a.trys.pop();continue}a.label=c[2],a.ops.push(o)}}o=t.call(n,a)}catch(e){o=[6,e],l=0}finally{i=c=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}}},simpl_schema_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadCollectionMethods=void 0,require("simpl-schema")),pagination_model_1=require("../models/pagination.model"),resolveio_server_app_1=require("../resolveio-server-app"),common_1=require("../util/common");function loadCollectionMethods(e){e.methods({collectionListAll:{function:function(){return Promise.resolve(resolveio_server_app_1.ResolveIOServer.getMongoManager().collections().map(function(e){return e.collectionName}).sort(function(e,o){return e.localeCompare(o)}))}},collectionListRB:{function:function(){return Promise.resolve(resolveio_server_app_1.ResolveIOServer.getMongoManager().collections().filter(function(e){return e.useRB}).map(function(e){return e.collectionName}).sort(function(e,o){return e.localeCompare(o)}))}},findOne:{check:new simpl_schema_1.default({collection:{type:String},query:{type:Object,blackbox:!0}}),function:function(e,o){if(void 0===o&&(o={}),resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e))return resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).findOne(o);throw new Error("Error in Find One Collection: Invalid collection")}},find:{check:new simpl_schema_1.default({collection:{type:String},query:{type:Object,blackbox:!0},sort:{type:Object,blackbox:!0,optional:!0}}),function:function(e,o,r){if(void 0===o&&(o={}),void 0===r&&(r={}),resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e))return resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).find(o,{sort:r});throw new Error("Error in Find Collection: Invalid collection")}},findWithOptions:{check:new simpl_schema_1.default({collection:{type:String},query:{type:Object,blackbox:!0},options:{type:pagination_model_1.PaginationOptionsSchema}}),function:function(e,o,r){var n;if(resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e))return n={},r.fields&&Object.keys(r.fields).length&&(n.projection=r.fields),r.sort&&Object.keys(r.sort).length&&(n.sort=r.sort),r.limit&&(n.limit=r.limit),r.skip&&(n.skip=r.skip),resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).find(o,n);throw new Error("Error in Find With Options Collection: Invalid collection")}},insertDocument:{check:new simpl_schema_1.default({collection:{type:String},document:{type:Object,blackbox:!0}}),function:function(e,o){var r;if(resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e))return r=(0,common_1.objectIdHexString)(),o._id=r,o.__v=0,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).insertOne(o);throw new Error("Error in Insert Document Collection: Invalid collection")}},insertManyDocuments:{check:new simpl_schema_1.default({collection:{type:String},documents:{type:Array},"documents.$":{type:Object,blackbox:!0}}),function:function(e,o){if(resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e))return o.forEach(function(e){e._id=(0,common_1.objectIdHexString)(),e.__v=0}),resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).insertMany(o);throw new Error("Error in Insert Many Documents Collection: Invalid collection")}},updateDocument:{check:new simpl_schema_1.default({collection:{type:String},f_document:{type:Object,blackbox:!0}}),function:function(e,o){if(resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e))return resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).replaceOne({_id:o._id},o);throw new Error("Error in Update Document Collection: Invalid collection")}},updateDocumentProps:{check:new simpl_schema_1.default({collection:{type:String},doc_id:{type:String},updateParams:{type:Array},"updateParams.$":{type:Object,blackbox:!0},doc__v:{type:Number,optional:!0}}),function:function(l,c,a,s){return __awaiter(this,void 0,void 0,function(){var o,r,n,t,i;return __generator(this,function(e){switch(e.label){case 0:if(resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l))return[3,1];throw new Error("Error in Update Document Props Collection: Invalid collection");case 1:return[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).findOne({_id:c})];case 2:if(o=e.sent()){if(r=(0,common_1.deepCopy)(o),a.forEach(function(e){r[e.prop]=e.data}),s&&r.__v!==s){if(console.log(new Date,"invalid version - "+l,o.__v,s),resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l+".versions")){if(i=resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l+".versions"),n=o._id,t=o.__v,i)return(i=(0,common_1.getMongoMergeUpdatedDoc)(r,o,i))._id=n,i.__v=t,o._id=n,o.__v=t,[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).replaceOne({_id:n},i,{},!1,!1,o)];throw new Error("Error In Update Document Props Collections: Invalid Version And Could Not Find History Props - DB: "+t+", Trying to update with :"+s)}throw new Error("Error In Update Document Props Collections: Invalid Version And We Are NOT Using Versions On This Collection!")}return[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).replaceOne({_id:r._id},r,{},!1,!1,o)]}throw new Error("Error in Update Document Props Collections: No Document");case 3:return[2]}})})}},updateDocumentOffline:{check:new simpl_schema_1.default({collection:{type:String},f_document:{type:Object,blackbox:!0}}),function:function(l,c){return __awaiter(this,void 0,void 0,function(){var o,r,n,t,i;return __generator(this,function(e){switch(e.label){case 0:if(resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l))return[3,1];throw new Error("Error in Update Document Offline Collection: Invalid collection");case 1:return[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).findOne({_id:c._id})];case 2:if(o=e.sent()){if(o.__v===c.__v)return[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).replaceOne({_id:c._id},c,{},!1,!1,o)];if(console.log("OFFLINE - invalid version - "+l,o.__v,c.__v),r=o._id,n=o.__v,t=c.__v,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l+".versions")){if(i=resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l+".versions"))return(i=(0,common_1.getMongoMergeUpdatedDoc)(c,o,i))._id=r,i.__v=n,o._id=r,o.__v=n,[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).replaceOne({_id:r},i,{},!1,!1,o)];throw new Error("Error in Update Document Offline Collections: OFFLINE - Invalid Version And Could Not Find History Props - DB: "+n+", Trying to update with :"+t)}throw new Error("Error in Update Document Offline Collections: Invalid Version And We Are NOT Using Versions On This Collection!")}throw new Error("Error in Update Document Offline Collections: No Document");case 3:return[2]}})})}},updateDocumentPropsOffline:{check:new simpl_schema_1.default({collection:{type:String},doc_id:{type:String},updateParams:{type:Array},"updateParams.$":{type:Object,blackbox:!0},doc__v:{type:Number}}),function:function(l,c,a,s){return __awaiter(this,void 0,void 0,function(){var o,r,n,t,i;return __generator(this,function(e){switch(e.label){case 0:if(resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l))return[3,1];throw new Error("Error in Update Document Props Offline Collection: Invalid collection");case 1:return[4,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).findOne({_id:c},null,!0)];case 2:if(o=e.sent()){if(r=(0,common_1.deepCopy)(o),a.forEach(function(e){r[e.prop]=e.data}),r.__v===s)return[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).replaceOne({_id:r._id},r,{},!1,!1,o)];if(console.log("OFFLINE - invalid version - "+l,o.__v,s),n=o._id,t=o.__v,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l+".versions")){if(i=resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l+".versions"))return(i=(0,common_1.getMongoMergeUpdatedDoc)(r,o,i))._id=n,i.__v=t,o._id=n,o.__v=t,[2,resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(l).replaceOne({_id:n},i,{},!1,!1,o)];throw new Error("Error in Update Document Props Offline Collections: OFFLINE - Invalid Version And Could Not Find History Props - DB: "+t+", Trying to update with :"+s)}throw new Error("Error in Update Document Props Offline Collections: Invalid Version And We Are NOT Using Versions On This Collection!")}throw new Error("Error in Update Document Props Offline Collections: No Document");case 3:return[2]}})})}},removeDocument:{check:new simpl_schema_1.default({collection:{type:String},doc_id:{type:String}}),function:function(e,o){if(resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e))return resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).deleteOne({_id:o});throw new Error("Error in Remove Document Collection: Invalid collection")}},removeDocumentWithQuery:{check:new simpl_schema_1.default({collection:{type:String},query:{type:Object,blackbox:!0}}),function:function(e,o){if(resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e))return resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).deleteOne(o);throw new Error("Error in Remove Document With Query Collection: Invalid collection")}},removeDocumentsWithQuery:{check:new simpl_schema_1.default({collection:{type:String},query:{type:Object,blackbox:!0}}),function:function(e,o){if(resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e))return resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).deleteMany(o);throw new Error("Error in Remove Documents With Query Collections: Invalid Collection")}}})}exports.loadCollectionMethods=loadCollectionMethods;
2
2
  //# sourceMappingURL=collections.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/methods/collections.ts"],"names":["common_1","require","simpl_schema_1","pagination_model_1","resolveio_server_app_1","loadCollectionMethods","methodManager","methods","collectionListAll","function","Promise","resolve","reject","ResolveIOServer","getMongoManager","collections","map","a","collectionName","sort","b","localeCompare","collectionListRB","filter","useRB","findOne","check","default","collection","type","String","query","Object","blackbox","then","res","err","find","optional","sortQuery","findWithOptions","options","PaginationOptionsSchema","optionsQuery","fields","keys","length","limit","skip","insertDocument","document","id_1","objectIdHexString","insertOne","insertManyDocuments","documents","Array","documents.$","forEach","insertMany","updateDocument","f_document","replaceOne","_id","updateDocumentProps","doc_id","updateParams","updateParams.$","doc__v","Number","currDoc","modifiedDoc_1","deepCopy","data","prop","__v","console","log","Date","oldDoc","newCurrDocId","newCurrDocV","updatedDoc","getMongoMergeUpdatedDoc","updateDocumentOffline","newCurrDocId_1","newCurrDocV_1","oldDocV_1","updateDocumentPropsOffline","modifiedDoc_2","newCurrDocId_2","newCurrDocV_2","removeDocument","deleteOne","removeDocumentWithQuery","removeDocumentsWithQuery","deleteMany","exports"],"mappings":"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","file":"collections.js","sourcesContent":["import { MethodManager } from '../managers/method.manager';\nimport { deepCopy, getMongoMergeUpdatedDoc, objectIdHexString } from '../util/common';\nimport SimpleSchema from 'simpl-schema';\nimport { PaginationOptionsSchema, PaginationOptions } from '../models/pagination.model';\nimport { ResolveIOServer } from '../resolveio-server-app';\n\nexport function loadCollectionMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tcollectionListAll: {\n\t\t\tfunction: function() {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tresolve(ResolveIOServer.getMongoManager().collections().map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tcollectionListRB: {\n\t\t\tfunction: function() {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tresolve(ResolveIOServer.getMongoManager().collections().filter(a => a.useRB).map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Query database for any collection and query\n\t\tfindOne: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).findOne(query).then(res => resolve(res), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tfind: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tsort: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}, sortQuery = {}) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).find(query, {sort: sortQuery}).then(res => resolve(res), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tfindWithOptions: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\ttype: PaginationOptionsSchema\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object, options: PaginationOptions) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet optionsQuery = {};\n\n\t\t\t\t\t\tif (options.fields && Object.keys(options.fields).length) {\n\t\t\t\t\t\t\toptionsQuery['projection'] = options.fields;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (options.sort && Object.keys(options.sort).length) {\n\t\t\t\t\t\t\toptionsQuery['sort'] = options.sort;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (options.limit) {\n\t\t\t\t\t\t\toptionsQuery['limit'] = options.limit;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (options.skip) {\n\t\t\t\t\t\t\toptionsQuery['skip'] = options.skip;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).find(query, optionsQuery).then(res => resolve(res), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, document: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet id = objectIdHexString();\n\t\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\t\tdocument['__v'] = 0;\n\n\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).insertOne(document).then(() => resolve(id), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertManyDocuments: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocuments: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'documents.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, documents: Object[]) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tdocuments.forEach(document => {\n\t\t\t\t\t\t\tdocument['_id'] = objectIdHexString();\n\t\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).insertMany(documents).then(() => resolve(documents.map(a => a['_id'])), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Replaces 1 document with new document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (updated 1), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update\n\t\tupdateDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, f_document: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: f_document['_id']}, f_document).then(res => resolve(res), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentProps: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string, updateParams: any[], doc__v?: number) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).findOne({_id: doc_id}).then(currDoc => {\n\t\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (!doc__v || modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: modifiedDoc._id}, modifiedDoc, {}, false, false, currDoc).then(res => {\n\t\t\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tconsole.log(new Date(), 'invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t\t\t_id: {\n\t\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t\t__v: doc__v\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}).then(oldDoc => {\n\t\t\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\n\t\t\t\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\treject('Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + doc__v);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, () => {});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('Invalid Version And We Are NOT Using Versions On This Collection!');\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\treject('No Document');\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\tupdateDocumentOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, f_document: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).findOne({_id: f_document['_id']}).then(currDoc => {\n\t\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: f_document['_id']}, f_document, {}, false, false, currDoc).then(res => {\n\t\t\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\t\t\t\t\t\t\t\t\tlet oldDocV = f_document['__v'];\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t\t\t_id: {\n\t\t\t\t\t\t\t\t\t\t\t\t_id: newCurrDocId,\n\t\t\t\t\t\t\t\t\t\t\t\t__v: oldDocV\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}).then(oldDoc => {\n\t\t\t\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\treject('OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + oldDocV);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, () => {});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('Invalid Version And We Are NOT Using Versions On This Collection!');\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\treject('No Document');\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\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentPropsOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string, updateParams: any[], doc__v: number) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).findOne({_id: doc_id}, null, true).then(currDoc => {\n\t\t\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: modifiedDoc._id}, modifiedDoc, {}, false, false, currDoc).then(res => {\n\t\t\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t\t\t_id: {\n\t\t\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t\t\t__v: doc__v\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}).then(oldDoc => {\n\t\t\t\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc).then(res => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t\t\t\t\t\t\t}, err => reject(err));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\treject('OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + doc__v);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}, () => {});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\treject('Invalid Version And We Are NOT Using Versions On This Collection!');\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\treject('No Document');\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\t// Removes 1 document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (deleted), res = 0 (not deleted), err = not deleted\n\t\t// Search for doc, if found then try and remove\n\t\tremoveDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).deleteOne({_id: doc_id}).then(res => {\n\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\treject(err);\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\tremoveDocumentWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).deleteOne(query).then(res => {\n\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\treject(err);\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\tremoveDocumentsWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collection).deleteMany(query).then(res => {\n\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\treject(err);\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}"]}
1
+ {"version":3,"sources":["../../src/methods/collections.ts"],"names":["simpl_schema_1","require","pagination_model_1","resolveio_server_app_1","common_1","loadCollectionMethods","methodManager","methods","collectionListAll","function","Promise","resolve","ResolveIOServer","getMongoManager","collections","map","a","collectionName","sort","b","localeCompare","collectionListRB","filter","useRB","findOne","check","default","collection","type","String","query","Object","blackbox","Error","find","optional","sortQuery","findWithOptions","options","PaginationOptionsSchema","optionsQuery","fields","keys","length","limit","skip","insertDocument","document","id","objectIdHexString","insertOne","insertManyDocuments","documents","Array","documents.$","forEach","insertMany","updateDocument","f_document","replaceOne","_id","updateDocumentProps","doc_id","updateParams","updateParams.$","doc__v","Number","currDoc","_a","sent","modifiedDoc_1","deepCopy","data","prop","__v","console","log","Date","oldDoc","newCurrDocId","newCurrDocV","updatedDoc","getMongoMergeUpdatedDoc","updateDocumentOffline","oldDocV","updateDocumentPropsOffline","modifiedDoc_2","removeDocument","deleteOne","removeDocumentWithQuery","removeDocumentsWithQuery","deleteMany","exports"],"mappings":"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","file":"collections.js","sourcesContent":["import SimpleSchema from 'simpl-schema';\nimport { MethodManager } from '../managers/method.manager';\nimport { PaginationOptions, PaginationOptionsSchema } from '../models/pagination.model';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { deepCopy, getMongoMergeUpdatedDoc, objectIdHexString } from '../util/common';\n\nexport function loadCollectionMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tcollectionListAll: {\n\t\t\tfunction: function() {\n\t\t\t\treturn Promise.resolve(ResolveIOServer.getMongoManager().collections().map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t}\n\t\t},\n\t\tcollectionListRB: {\n\t\t\tfunction: function() {\n\t\t\t\treturn Promise.resolve(ResolveIOServer.getMongoManager().collections().filter(a => a.useRB).map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t}\n\t\t},\n\t\t// Query database for any collection and query\n\t\tfindOne: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Find One Collection: Invalid collection');\n\t\t\t\t}\n\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).findOne(query);\n\t\t\t}\n\t\t},\n\t\tfind: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tsort: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}, sortQuery = {}) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Find Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).find(query, {sort: sortQuery});\n\t\t\t}\n\t\t},\n\t\tfindWithOptions: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\ttype: PaginationOptionsSchema\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object, options: PaginationOptions) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Find With Options Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet optionsQuery = {};\n\n\t\t\t\t\tif (options.fields && Object.keys(options.fields).length) {\n\t\t\t\t\t\toptionsQuery['projection'] = options.fields;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.sort && Object.keys(options.sort).length) {\n\t\t\t\t\t\toptionsQuery['sort'] = options.sort;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.limit) {\n\t\t\t\t\t\toptionsQuery['limit'] = options.limit;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.skip) {\n\t\t\t\t\t\toptionsQuery['skip'] = options.skip;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).find(query, optionsQuery);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, document: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Insert Document Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet id = objectIdHexString();\n\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\tdocument['__v'] = 0;\n\n\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).insertOne(document);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertManyDocuments: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocuments: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'documents.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, documents: Object[]) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Insert Many Documents Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdocuments.forEach(document => {\n\t\t\t\t\t\tdocument['_id'] = objectIdHexString();\n\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t});\n\n\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).insertMany(documents);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Replaces 1 document with new document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (updated 1), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update\n\t\tupdateDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, f_document: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Update Document Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: f_document['_id']}, f_document);\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentProps: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, doc_id: string, updateParams: any[], doc__v?: number) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Update Document Props Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currDoc = await ResolveIOServer.getMongoManager().collection(collection).findOne({_id: doc_id});\n\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (!doc__v || modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: modifiedDoc._id}, modifiedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log(new Date(), 'invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\tlet oldDoc = ResolveIOServer.getMongoManager().collection(collection + '.versions');\n\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\n\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\n\t\t\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tthrow new Error('Error In Update Document Props Collections: Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + doc__v);\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\tthrow new Error('Error In Update Document Props Collections: Invalid Version And We Are NOT Using Versions On This Collection!');\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\telse {\n\t\t\t\t\t\tthrow new Error('Error in Update Document Props Collections: No Document');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tupdateDocumentOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, f_document: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Update Document Offline Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currDoc = await ResolveIOServer.getMongoManager().collection(collection).findOne({_id: f_document['_id']});\n\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: f_document['_id']}, f_document, {}, false, false, currDoc);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\t\t\t\t\t\t\tlet oldDocV = f_document['__v'];\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\tlet oldDoc = ResolveIOServer.getMongoManager().collection(collection + '.versions');\n\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\n\t\t\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Offline Collections: OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + oldDocV);\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\tthrow new Error('Error in Update Document Offline Collections: Invalid Version And We Are NOT Using Versions On This Collection!');\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\telse {\n\t\t\t\t\t\tthrow new Error('Error in Update Document Offline Collections: No Document');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentPropsOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, doc_id: string, updateParams: any[], doc__v: number) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currDoc = await ResolveIOServer.getMongoManager().collection(collection).findOne({_id: doc_id}, null, true);\n\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: modifiedDoc._id}, modifiedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\tlet oldDoc = ResolveIOServer.getMongoManager().collection(collection + '.versions');\n\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\n\t\t\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collections: OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + doc__v);\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\tthrow new Error('Error in Update Document Props Offline Collections: Invalid Version And We Are NOT Using Versions On This Collection!');\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\telse {\n\t\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collections: No Document');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Removes 1 document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (deleted), res = 0 (not deleted), err = not deleted\n\t\t// Search for doc, if found then try and remove\n\t\tremoveDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Remove Document Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).deleteOne({_id: doc_id});\n\t\t\t}\n\t\t},\n\t\tremoveDocumentWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Remove Document With Query Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).deleteOne(query);\n\t\t\t}\n\t\t},\n\t\tremoveDocumentsWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Remove Documents With Query Collections: Invalid Collection');\n\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).deleteMany(query);\n\t\t\t}\n\t\t}\n\t});\n}"]}
@@ -1,2 +1,2 @@
1
- "use strict";var __awaiter=this&&this.__awaiter||function(e,o,r,c){return new(r=r||Promise)(function(n,t){function fulfilled(e){try{step(c.next(e))}catch(e){t(e)}}function rejected(e){try{step(c.throw(e))}catch(e){t(e)}}function step(e){var t;e.done?n(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t)})).then(fulfilled,rejected)}step((c=c.apply(e,o||[])).next())})},__generator=this&&this.__generator||function(o,r){var c,i,l,u={label:0,sent:function(){if(1&l[0])throw l[1];return l[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 t=[n,e];if(c)throw new TypeError("Generator is already executing.");for(;u=a&&t[a=0]?0:u;)try{if(c=1,i&&(l=2&t[0]?i.return:t[0]?i.throw||((l=i.return)&&l.call(i),0):i.next)&&!(l=l.call(i,t[1])).done)return l;switch(i=0,(t=l?[2&t[0],l.value]:t)[0]){case 0:case 1:l=t;break;case 4:return u.label++,{value:t[1],done:!1};case 5:u.label++,i=t[1],t=[0];continue;case 7:t=u.ops.pop(),u.trys.pop();continue;default:if(!(l=0<(l=u.trys).length&&l[l.length-1])&&(6===t[0]||2===t[0])){u=0;continue}if(3===t[0]&&(!l||t[1]>l[0]&&t[1]<l[3]))u.label=t[1];else if(6===t[0]&&u.label<l[1])u.label=l[1],l=t;else{if(!(l&&u.label<l[2])){l[2]&&u.ops.pop(),u.trys.pop();continue}u.label=l[2],u.ops.push(t)}}t=r.call(o,u)}catch(e){t=[6,e],i=0}finally{c=l=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}},counter_collection_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadCounterMethods=void 0,require("../collections/counter.collection")),simpl_schema_1=require("simpl-schema"),resolveio_server_app_1=require("../resolveio-server-app"),common_1=require("../util/common");function loadCounterMethods(e){e.methods({incCounter:{check:new simpl_schema_1.default({counterType:{type:String}}),function:function(o){var t=this;return new Promise(function(n,e){return __awaiter(t,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,counter_collection_1.Counters.findOne({type:o})];case 1:return e.sent()?[3,2]:(counter_collection_1.Counters.create({_id:(0,common_1.objectIdHexString)(),count:2,type:o}),n(1),[3,4]);case 2:return[4,counter_collection_1.Counters.findOneAndUpdate({type:o},{$inc:{count:1}})];case 3:t=e.sent(),n(t.count),e.label=4;case 4:return[2]}})})})}},countCollectionWithQuery:{check:new simpl_schema_1.default({collectionType:{type:String},query:{type:Object,blackbox:!0}}),function:function(e,o){return new Promise(function(t,n){resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e)?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).countDocuments(o).then(function(e){return t(e)},function(e){return n(e)}):n("Invalid collection")})}},countCollection:{check:new simpl_schema_1.default({collectionType:{type:String}}),function:function(e){return new Promise(function(t,n){resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e)?resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).countDocuments().then(function(e){return t(e)},function(e){return n(e)}):n("Invalid collection")})}}})}exports.loadCounterMethods=loadCounterMethods;
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(e,n,r,c){return new(r=r||Promise)(function(o,t){function fulfilled(e){try{step(c.next(e))}catch(e){t(e)}}function rejected(e){try{step(c.throw(e))}catch(e){t(e)}}function step(e){var t;e.done?o(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t)})).then(fulfilled,rejected)}step((c=c.apply(e,n||[])).next())})},__generator=this&&this.__generator||function(n,r){var c,i,l,u={label:0,sent:function(){if(1&l[0])throw l[1];return l[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(o){return function(e){var t=[o,e];if(c)throw new TypeError("Generator is already executing.");for(;u=a&&t[a=0]?0:u;)try{if(c=1,i&&(l=2&t[0]?i.return:t[0]?i.throw||((l=i.return)&&l.call(i),0):i.next)&&!(l=l.call(i,t[1])).done)return l;switch(i=0,(t=l?[2&t[0],l.value]:t)[0]){case 0:case 1:l=t;break;case 4:return u.label++,{value:t[1],done:!1};case 5:u.label++,i=t[1],t=[0];continue;case 7:t=u.ops.pop(),u.trys.pop();continue;default:if(!(l=0<(l=u.trys).length&&l[l.length-1])&&(6===t[0]||2===t[0])){u=0;continue}if(3===t[0]&&(!l||t[1]>l[0]&&t[1]<l[3]))u.label=t[1];else if(6===t[0]&&u.label<l[1])u.label=l[1],l=t;else{if(!(l&&u.label<l[2])){l[2]&&u.ops.pop(),u.trys.pop();continue}u.label=l[2],u.ops.push(t)}}t=r.call(n,u)}catch(e){t=[6,e],i=0}finally{c=l=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}}},simpl_schema_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadCounterMethods=void 0,require("simpl-schema")),counter_collection_1=require("../collections/counter.collection"),resolveio_server_app_1=require("../resolveio-server-app"),common_1=require("../util/common");function loadCounterMethods(e){e.methods({incCounter:{check:new simpl_schema_1.default({counterType:{type:String}}),function:function(t){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,counter_collection_1.Counters.findOne({type:t})];case 1:return e.sent()?[3,3]:[4,counter_collection_1.Counters.create({_id:(0,common_1.objectIdHexString)(),count:2,type:t})];case 2:return e.sent(),[2,1];case 3:return[2,counter_collection_1.Counters.findOneAndUpdate({type:t},{$inc:{count:1}})]}})})}},countCollectionWithQuery:{check:new simpl_schema_1.default({collectionType:{type:String},query:{type:Object,blackbox:!0}}),function:function(e,t){if(resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e))return resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).countDocuments(t);throw new Error("Error in Count Collection With Query: Invalid collection")}},countCollection:{check:new simpl_schema_1.default({collectionType:{type:String}}),function:function(e){if(resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e))return resolveio_server_app_1.ResolveIOServer.getMongoManager().collection(e).countDocuments();throw new Error("Error in Count Collection: Invalid collection")}}})}exports.loadCounterMethods=loadCounterMethods;
2
2
  //# sourceMappingURL=counters.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/methods/counters.ts"],"names":["counter_collection_1","require","simpl_schema_1","resolveio_server_app_1","common_1","loadCounterMethods","methodManager","methods","incCounter","check","default","counterType","type","String","function","_this","this","Promise","resolve","reject","__awaiter","Counters","findOne","_a","sent","create","_id","objectIdHexString","count","findOneAndUpdate","$inc","newCount","countCollectionWithQuery","collectionType","query","Object","blackbox","ResolveIOServer","getMongoManager","collection","countDocuments","then","res","err","countCollection","exports"],"mappings":"k8CACAA,sB,yFAAAC,QAAA,mCAAA,GACAC,eAAAD,QAAA,cAAA,EACAE,uBAAAF,QAAA,yBAAA,EACAG,SAAAH,QAAA,gBAAA,EAEA,SAAgBI,mBAAmBC,GAClCA,EAAcC,QAAQ,CACrBC,WAAY,CACXC,MAAO,IAAIP,eAAAQ,QAAa,CACvBC,YAAa,CACZC,KAAMC,M,EAEP,EACDC,SAAU,SAASH,GAAT,IAAAI,EAAAC,KACT,OAAO,IAAIC,QAAQ,SAAOC,EAASC,GAAM,OAAAC,UAAAL,EAAA,KAAA,EAAA,KAAA,EAAA,W,iEAC1B,MAAA,CAAA,EAAMf,qBAAAqB,SAASC,QAAQ,CAACV,KAAMD,CAAW,CAAC,G,cAA1CY,EAAAC,KAAA,EAEV,CAAA,EAAA,IACHxB,qBAAAqB,SAASI,OAAO,CACfC,KAAK,EAAAtB,SAAAuB,mBAAiB,EACtBC,MAAO,EACPhB,KAAMD,C,CACN,EAEDO,EAAQ,CAAC,E,cAGM,MAAA,CAAA,EAAMlB,qBAAAqB,SAASQ,iBAAiB,CAACjB,KAAMD,CAAW,EAAG,CAACmB,KAAM,CAACF,MAAO,CAAC,CAAC,CAAC,G,OAAlFG,EAAWR,EAAAC,KAAA,EAEfN,EAAQa,EAASH,KAAK,E,gCAEvB,CACF,C,EAEDI,yBAA0B,CACzBvB,MAAO,IAAIP,eAAAQ,QAAa,CACvBuB,eAAgB,CACfrB,KAAMC,M,EAEPqB,MAAO,CACNtB,KAAMuB,OACNC,SAAU,CAAA,C,EAEX,EACDtB,SAAU,SAASmB,EAAwBC,GAC1C,OAAO,IAAIjB,QAAQ,SAACC,EAASC,GACvBhB,uBAAAkC,gBAAgBC,gBAAe,EAAGC,WAAWN,CAAc,EAI/D9B,uBAAAkC,gBAAgBC,gBAAe,EAAGC,WAAWN,CAAc,EAAEO,eAAeN,CAAK,EAAEO,KAAK,SAAAC,GAAO,OAAAxB,EAAQwB,CAAG,CAAX,EAAc,SAAAC,GAAO,OAAAxB,EAAOwB,CAAG,CAAV,CAAW,EAH/HxB,EAAO,oBAAoB,CAK7B,CAAC,CACF,C,EAEDyB,gBAAiB,CAChBnC,MAAO,IAAIP,eAAAQ,QAAa,CACvBuB,eAAgB,CACfrB,KAAMC,M,EAEP,EACDC,SAAU,SAASmB,GAClB,OAAO,IAAIhB,QAAQ,SAACC,EAASC,GACvBhB,uBAAAkC,gBAAgBC,gBAAe,EAAGC,WAAWN,CAAc,EAI/D9B,uBAAAkC,gBAAgBC,gBAAe,EAAGC,WAAWN,CAAc,EAAEO,eAAc,EAAGC,KAAK,SAAAC,GAAO,OAAAxB,EAAQwB,CAAG,CAAX,EAAc,SAAAC,GAAO,OAAAxB,EAAOwB,CAAG,CAAV,CAAW,EAH1HxB,EAAO,oBAAoB,CAK7B,CAAC,CACF,C,EAED,CACF,CApEA0B,QAAAxC,mBAAAA","file":"counters.js","sourcesContent":["import { MethodManager } from '../managers/method.manager';\nimport { Counters } from '../collections/counter.collection';\nimport SimpleSchema from 'simpl-schema';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { objectIdHexString } from '../util/common';\n\nexport function loadCounterMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tincCounter: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcounterType: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(counterType: string) {\n\t\t\t\treturn new Promise(async (resolve, reject) => {\n\t\t\t\t\tlet counter = await Counters.findOne({type: counterType});\n\n\t\t\t\t\tif (!counter) {\n\t\t\t\t\t\tCounters.create({\n\t\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t\tcount: 2,\n\t\t\t\t\t\t\ttype: counterType\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tresolve(1);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet newCount = await Counters.findOneAndUpdate({type: counterType}, {$inc: {count: 1}});\n\n\t\t\t\t\t\tresolve(newCount.count);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tcountCollectionWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollectionType: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collectionType: string, query: Object) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collectionType)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collectionType).countDocuments(query).then(res => resolve(res), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tcountCollection: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollectionType: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collectionType: string) {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collectionType)) {\n\t\t\t\t\t\treject('Invalid collection');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tResolveIOServer.getMongoManager().collection(collectionType).countDocuments().then(res => resolve(res), err => reject(err));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n}"]}
1
+ {"version":3,"sources":["../../src/methods/counters.ts"],"names":["simpl_schema_1","require","counter_collection_1","resolveio_server_app_1","common_1","loadCounterMethods","methodManager","methods","incCounter","check","default","counterType","type","String","function","Counters","findOne","_a","sent","create","_id","objectIdHexString","count","findOneAndUpdate","$inc","countCollectionWithQuery","collectionType","query","Object","blackbox","ResolveIOServer","getMongoManager","collection","countDocuments","Error","countCollection","exports"],"mappings":"k8CAAAA,gB,yFAAAC,QAAA,cAAA,GACAC,qBAAAD,QAAA,mCAAA,EAEAE,uBAAAF,QAAA,yBAAA,EACAG,SAAAH,QAAA,gBAAA,EAEA,SAAgBI,mBAAmBC,GAClCA,EAAcC,QAAQ,CACrBC,WAAY,CACXC,MAAO,IAAIT,eAAAU,QAAa,CACvBC,YAAa,CACZC,KAAMC,M,EAEP,EACDC,SAAU,SAAeH,G,0GACV,MAAA,CAAA,EAAMT,qBAAAa,SAASC,QAAQ,CAACJ,KAAMD,CAAW,CAAC,G,cAA1CM,EAAAC,KAAA,EAEV,CAAA,EAAA,GACH,CAAA,EAAMhB,qBAAAa,SAASI,OAAO,CACrBC,KAAK,EAAAhB,SAAAiB,mBAAiB,EACtBC,MAAO,EACPV,KAAMD,C,CACN,G,OAED,OANAM,EAAAC,KAAA,EAMA,CAAA,EAAO,G,OAGR,MAAA,CAAA,EAAOhB,qBAAAa,SAASQ,iBAAiB,CAACX,KAAMD,CAAW,EAAG,CAACa,KAAM,CAACF,MAAO,CAAC,CAAC,CAAC,E,QAG1EG,yBAA0B,CACzBhB,MAAO,IAAIT,eAAAU,QAAa,CACvBgB,eAAgB,CACfd,KAAMC,M,EAEPc,MAAO,CACNf,KAAMgB,OACNC,SAAU,CAAA,C,EAEX,EACDf,SAAU,SAASY,EAAwBC,GAC1C,GAAKxB,uBAAA2B,gBAAgBC,gBAAe,EAAGC,WAAWN,CAAc,EAIhE,OAAOvB,uBAAA2B,gBAAgBC,gBAAe,EAAGC,WAAWN,CAAc,EAAEO,eAAeN,CAAK,EAHvF,MAAM,IAAIO,MAAM,0DAA0D,CAI5E,C,EAEDC,gBAAiB,CAChB1B,MAAO,IAAIT,eAAAU,QAAa,CACvBgB,eAAgB,CACfd,KAAMC,M,EAEP,EACDC,SAAU,SAASY,GAClB,GAAKvB,uBAAA2B,gBAAgBC,gBAAe,EAAGC,WAAWN,CAAc,EAIhE,OAAOvB,uBAAA2B,gBAAgBC,gBAAe,EAAGC,WAAWN,CAAc,EAAEO,eAAc,EAHjF,MAAM,IAAIC,MAAM,+CAA+C,CAIjE,C,EAED,CACF,CAzDAE,QAAA/B,mBAAAA","file":"counters.js","sourcesContent":["import SimpleSchema from 'simpl-schema';\nimport { Counters } from '../collections/counter.collection';\nimport { MethodManager } from '../managers/method.manager';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { objectIdHexString } from '../util/common';\n\nexport function loadCounterMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tincCounter: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcounterType: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(counterType: string) {\n\t\t\t\tlet counter = await Counters.findOne({type: counterType});\n\n\t\t\t\tif (!counter) {\n\t\t\t\t\tawait Counters.create({\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\tcount: 2,\n\t\t\t\t\t\ttype: counterType\n\t\t\t\t\t});\n\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\n\t\t\t\treturn Counters.findOneAndUpdate({type: counterType}, {$inc: {count: 1}});\n\t\t\t}\n\t\t},\n\t\tcountCollectionWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollectionType: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collectionType: string, query: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collectionType)) {\n\t\t\t\t\tthrow new Error('Error in Count Collection With Query: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collectionType).countDocuments(query);\n\t\t\t}\n\t\t},\n\t\tcountCollection: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollectionType: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collectionType: string) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collectionType)) {\n\t\t\t\t\tthrow new Error('Error in Count Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collectionType).countDocuments();\n\t\t\t}\n\t\t}\n\t});\n}"]}