@resolveio/server-lib 20.0.27 → 20.0.28

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 (201) hide show
  1. package/client-server-app.js +1 -47
  2. package/client-server-app.js.map +1 -1
  3. package/collections/app-status.collection.js +1 -50
  4. package/collections/app-status.collection.js.map +1 -1
  5. package/collections/counter.collection.js +1 -53
  6. package/collections/counter.collection.js.map +1 -1
  7. package/collections/cron-job-history.collection.js +1 -88
  8. package/collections/cron-job-history.collection.js.map +1 -1
  9. package/collections/cron-job.collection.js +1 -84
  10. package/collections/cron-job.collection.js.map +1 -1
  11. package/collections/email-history.collection.js +1 -65
  12. package/collections/email-history.collection.js.map +1 -1
  13. package/collections/email-verified.collection.js +1 -60
  14. package/collections/email-verified.collection.js.map +1 -1
  15. package/collections/file.collection.js +1 -72
  16. package/collections/file.collection.js.map +1 -1
  17. package/collections/flag.collection.js +1 -55
  18. package/collections/flag.collection.js.map +1 -1
  19. package/collections/log-method-latency.collection.js +1 -63
  20. package/collections/log-method-latency.collection.js.map +1 -1
  21. package/collections/log-subscription.collection.js +1 -67
  22. package/collections/log-subscription.collection.js.map +1 -1
  23. package/collections/log-ts.collection.js +1 -77
  24. package/collections/log-ts.collection.js.map +1 -1
  25. package/collections/log.collection.js +1 -76
  26. package/collections/log.collection.js.map +1 -1
  27. package/collections/logged-in-users.collection.js +1 -64
  28. package/collections/logged-in-users.collection.js.map +1 -1
  29. package/collections/method-response.collection.js +1 -65
  30. package/collections/method-response.collection.js.map +1 -1
  31. package/collections/monitor-cpu.collection.js +1 -62
  32. package/collections/monitor-cpu.collection.js.map +1 -1
  33. package/collections/monitor-memory.collection.js +1 -74
  34. package/collections/monitor-memory.collection.js.map +1 -1
  35. package/collections/monitor-mongo.collection.js +1 -68
  36. package/collections/monitor-mongo.collection.js.map +1 -1
  37. package/collections/notification.collection.js +1 -55
  38. package/collections/notification.collection.js.map +1 -1
  39. package/collections/report-builder-dashboard-builder.collection.js +1 -108
  40. package/collections/report-builder-dashboard-builder.collection.js.map +1 -1
  41. package/collections/report-builder-library.collection.js +1 -86
  42. package/collections/report-builder-library.collection.js.map +1 -1
  43. package/collections/report-builder-report.collection.js +1 -148
  44. package/collections/report-builder-report.collection.js.map +1 -1
  45. package/collections/user-group.collection.js +1 -93
  46. package/collections/user-group.collection.js.map +1 -1
  47. package/collections/user-guide.collection.js +1 -56
  48. package/collections/user-guide.collection.js.map +1 -1
  49. package/collections/user.collection.js +1 -265
  50. package/collections/user.collection.js.map +1 -1
  51. package/cron/cron.js +1 -101
  52. package/cron/cron.js.map +1 -1
  53. package/fixtures/cron-jobs.js +1 -87
  54. package/fixtures/cron-jobs.js.map +1 -1
  55. package/fixtures/init.js +1 -58
  56. package/fixtures/init.js.map +1 -1
  57. package/http/auth.js +1 -763
  58. package/http/auth.js.map +1 -1
  59. package/http/health.js +1 -11
  60. package/http/health.js.map +1 -1
  61. package/http/home.js +1 -65
  62. package/http/home.js.map +1 -1
  63. package/index.js +1 -126
  64. package/index.js.map +1 -1
  65. package/managers/cron.manager.js +1 -322
  66. package/managers/cron.manager.js.map +1 -1
  67. package/managers/method.manager.js +1 -593
  68. package/managers/method.manager.js.map +1 -1
  69. package/managers/mongo.manager.js +1 -2259
  70. package/managers/mongo.manager.js.map +1 -1
  71. package/managers/monitor.manager.js +1 -350
  72. package/managers/monitor.manager.js.map +1 -1
  73. package/managers/subscription.manager.js +1 -1110
  74. package/managers/subscription.manager.js.map +1 -1
  75. package/managers/subscription.performance.js +1 -102
  76. package/managers/subscription.performance.js.map +1 -1
  77. package/methods/accounts.js +1 -291
  78. package/methods/accounts.js.map +1 -1
  79. package/methods/aws.js +1 -634
  80. package/methods/aws.js.map +1 -1
  81. package/methods/collections.js +1 -499
  82. package/methods/collections.js.map +1 -1
  83. package/methods/counters.js +1 -121
  84. package/methods/counters.js.map +1 -1
  85. package/methods/cron-jobs.js +1 -1337
  86. package/methods/cron-jobs.js.map +1 -1
  87. package/methods/flags.js +1 -8
  88. package/methods/flags.js.map +1 -1
  89. package/methods/logs.js +1 -370
  90. package/methods/logs.js.map +1 -1
  91. package/methods/monitor.js +1 -564
  92. package/methods/monitor.js.map +1 -1
  93. package/methods/pdf.js +1 -731
  94. package/methods/pdf.js.map +1 -1
  95. package/methods/report-builder.js +1 -859
  96. package/methods/report-builder.js.map +1 -1
  97. package/methods/support.js +1 -245
  98. package/methods/support.js.map +1 -1
  99. package/models/app-status.model.js +1 -3
  100. package/models/app-status.model.js.map +1 -1
  101. package/models/billing-logged-in-users.model.js +1 -3
  102. package/models/billing-logged-in-users.model.js.map +1 -1
  103. package/models/collection-document.model.js +1 -3
  104. package/models/collection-document.model.js.map +1 -1
  105. package/models/counter.model.js +1 -3
  106. package/models/counter.model.js.map +1 -1
  107. package/models/cron-job-history.model.js +1 -3
  108. package/models/cron-job-history.model.js.map +1 -1
  109. package/models/cron-job.model.js +1 -3
  110. package/models/cron-job.model.js.map +1 -1
  111. package/models/dialog.model.js +1 -3
  112. package/models/dialog.model.js.map +1 -1
  113. package/models/email-history.model.js +1 -3
  114. package/models/email-history.model.js.map +1 -1
  115. package/models/email-verified.model.js +1 -3
  116. package/models/email-verified.model.js.map +1 -1
  117. package/models/file.model.js +1 -3
  118. package/models/file.model.js.map +1 -1
  119. package/models/flag.model.js +1 -3
  120. package/models/flag.model.js.map +1 -1
  121. package/models/log-method-latency.model.js +1 -3
  122. package/models/log-method-latency.model.js.map +1 -1
  123. package/models/log-subscription.model.js +1 -3
  124. package/models/log-subscription.model.js.map +1 -1
  125. package/models/log.model.js +1 -3
  126. package/models/log.model.js.map +1 -1
  127. package/models/logged-in-users.model.js +1 -3
  128. package/models/logged-in-users.model.js.map +1 -1
  129. package/models/method-response.model.js +1 -3
  130. package/models/method-response.model.js.map +1 -1
  131. package/models/method.model.js +1 -3
  132. package/models/method.model.js.map +1 -1
  133. package/models/monitor-cpu.model.js +1 -3
  134. package/models/monitor-cpu.model.js.map +1 -1
  135. package/models/monitor-memory.model.js +1 -3
  136. package/models/monitor-memory.model.js.map +1 -1
  137. package/models/monitor-mongo.model.js +1 -3
  138. package/models/monitor-mongo.model.js.map +1 -1
  139. package/models/notification.model.js +1 -3
  140. package/models/notification.model.js.map +1 -1
  141. package/models/pagination.model.js +1 -23
  142. package/models/pagination.model.js.map +1 -1
  143. package/models/permission.model.js +1 -3
  144. package/models/permission.model.js.map +1 -1
  145. package/models/report-builder-dashboard-builder.model.js +1 -3
  146. package/models/report-builder-dashboard-builder.model.js.map +1 -1
  147. package/models/report-builder-library.model.js +1 -3
  148. package/models/report-builder-library.model.js.map +1 -1
  149. package/models/report-builder-report.model.js +1 -3
  150. package/models/report-builder-report.model.js.map +1 -1
  151. package/models/report-builder.model.js +1 -3
  152. package/models/report-builder.model.js.map +1 -1
  153. package/models/select-data-label.model.js +1 -3
  154. package/models/select-data-label.model.js.map +1 -1
  155. package/models/server-response.model.js +1 -3
  156. package/models/server-response.model.js.map +1 -1
  157. package/models/subscription.model.js +1 -3
  158. package/models/subscription.model.js.map +1 -1
  159. package/models/support-ticket.model.js +1 -3
  160. package/models/support-ticket.model.js.map +1 -1
  161. package/models/user-group.model.js +1 -3
  162. package/models/user-group.model.js.map +1 -1
  163. package/models/user-guide.model.js +1 -3
  164. package/models/user-guide.model.js.map +1 -1
  165. package/models/user.model.js +1 -3
  166. package/models/user.model.js.map +1 -1
  167. package/package.json +6 -4
  168. package/public_api.js +1 -74
  169. package/public_api.js.map +1 -1
  170. package/publications/app-status.js +1 -16
  171. package/publications/app-status.js.map +1 -1
  172. package/publications/cron-jobs.js +1 -32
  173. package/publications/cron-jobs.js.map +1 -1
  174. package/publications/files.js +1 -36
  175. package/publications/files.js.map +1 -1
  176. package/publications/flags.js +1 -22
  177. package/publications/flags.js.map +1 -1
  178. package/publications/logs.js +1 -164
  179. package/publications/logs.js.map +1 -1
  180. package/publications/method-responses.js +1 -16
  181. package/publications/method-responses.js.map +1 -1
  182. package/publications/notifications.js +1 -16
  183. package/publications/notifications.js.map +1 -1
  184. package/publications/report-builder-dashboard-builders.js +1 -42
  185. package/publications/report-builder-dashboard-builders.js.map +1 -1
  186. package/publications/report-builder-libraries.js +1 -89
  187. package/publications/report-builder-libraries.js.map +1 -1
  188. package/publications/report-builder-reports.js +1 -50
  189. package/publications/report-builder-reports.js.map +1 -1
  190. package/publications/super-admin.js +1 -16
  191. package/publications/super-admin.js.map +1 -1
  192. package/publications/user-groups.js +1 -16
  193. package/publications/user-groups.js.map +1 -1
  194. package/publications/user-guides.js +1 -16
  195. package/publications/user-guides.js.map +1 -1
  196. package/server-app.js +1 -770
  197. package/server-app.js.map +1 -1
  198. package/util/common.js +1 -546
  199. package/util/common.js.map +1 -1
  200. package/util/schema-report-builder.js +1 -452
  201. package/util/schema-report-builder.js.map +1 -1
package/methods/aws.js CHANGED
@@ -1,635 +1,2 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.loadAWSMethods = void 0;
40
- var file_collection_1 = require("../collections/file.collection");
41
- var simpl_schema_1 = require("simpl-schema");
42
- var index_1 = require("../index");
43
- var mongo_manager_1 = require("../managers/mongo.manager");
44
- var client_s3_1 = require("@aws-sdk/client-s3");
45
- var s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
46
- var request = require('request').defaults({ encoding: null });
47
- var fs = require('fs');
48
- var pdfCnt = 1000000;
49
- function loadAWSMethods(methodManager) {
50
- methodManager.methods({
51
- uploadFileAndSave: {
52
- check: new simpl_schema_1.default({
53
- fileName: {
54
- type: String
55
- },
56
- fileData: {
57
- type: String
58
- },
59
- fileSize: {
60
- type: Number
61
- },
62
- fileOrder: {
63
- type: Number
64
- },
65
- fileType: {
66
- type: String
67
- },
68
- compress: {
69
- type: Boolean
70
- }
71
- }),
72
- function: function (fileName, fileData, fileSize, fileOrder, fileType, compress) {
73
- var _this = this;
74
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
75
- var key_1, s3_1, maxRetries_1, attempt_1, uploadFile_1;
76
- return __generator(this, function (_a) {
77
- if (fileName) {
78
- key_1 = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;
79
- s3_1 = this.getAWS().s3();
80
- maxRetries_1 = 3;
81
- attempt_1 = 0;
82
- uploadFile_1 = function () {
83
- s3_1.putObject({
84
- Bucket: process.env.AWS_S3_BUCKET,
85
- Key: key_1,
86
- Body: Buffer.from(fileData.replace('data:' + fileData.split(',')[0].split(':')[1].split(';')[0] + ';base64,', ''), 'base64'),
87
- ACL: 'private',
88
- ContentType: fileData.split(',')[0].split(':')[1].split(';')[0],
89
- ContentDisposition: 'inline'
90
- }).then(function (res) {
91
- if (res) {
92
- file_collection_1.Files.create({
93
- _id: (0, mongo_manager_1.objectIdHexString)(), __v: 0, name: fileName, size: fileSize, key: key_1, order: fileOrder, type: fileType
94
- }).then(function (resFile) {
95
- resolve(resFile);
96
- }).catch(function (errFile) {
97
- reject(errFile);
98
- });
99
- }
100
- else {
101
- resolve(null);
102
- }
103
- }).catch(function (err) {
104
- attempt_1++;
105
- if (attempt_1 <= maxRetries_1) {
106
- var backoff = Math.pow(2, attempt_1) * 1000; // Exponential backoff
107
- console.warn("Attempt ".concat(attempt_1, " failed. Retrying in ").concat(backoff / 1000, " seconds..."));
108
- setTimeout(uploadFile_1, backoff);
109
- }
110
- else {
111
- reject(new Error("Failed to upload after ".concat(maxRetries_1, " attempts: ").concat(err.message)));
112
- }
113
- });
114
- };
115
- uploadFile_1(); // Start the upload process
116
- }
117
- else {
118
- reject(new Error("Invalid fileName provided"));
119
- }
120
- return [2 /*return*/];
121
- });
122
- }); });
123
- }
124
- },
125
- uploadNonPDFFileAndSave: {
126
- check: new simpl_schema_1.default({
127
- fileName: {
128
- type: String
129
- },
130
- fileData: {
131
- type: String
132
- },
133
- fileSize: {
134
- type: Number
135
- },
136
- fileOrder: {
137
- type: Number
138
- },
139
- fileType: {
140
- type: String
141
- }
142
- }),
143
- function: function (fileName, fileData, fileSize, fileOrder, fileType) {
144
- var _this = this;
145
- return new Promise(function (resolve, reject) {
146
- if (fileName) {
147
- var key_2 = 'uploads/' + Date.now() + '-' + fileName;
148
- var s3 = _this.getAWS().s3();
149
- s3.putObject({
150
- Bucket: process.env.AWS_S3_BUCKET,
151
- Key: key_2,
152
- Body: Buffer.from(fileData),
153
- ACL: 'private',
154
- ContentType: 'application/gzip',
155
- ContentDisposition: 'inline'
156
- }).then(function (res) {
157
- if (res) {
158
- file_collection_1.Files.create({
159
- _id: (0, mongo_manager_1.objectIdHexString)(), __v: 0, name: fileName, size: fileSize, key: key_2, order: fileOrder, type: fileType
160
- }).then(function (resFile) {
161
- resolve(resFile);
162
- }, function (errFile) { return reject(errFile); });
163
- }
164
- else {
165
- resolve(null);
166
- }
167
- }, function (err) {
168
- reject(err);
169
- });
170
- }
171
- });
172
- }
173
- },
174
- uploadNonPDFBufferAndSave: {
175
- check: new simpl_schema_1.default({
176
- fileName: {
177
- type: String
178
- },
179
- fileData: {
180
- type: Buffer
181
- },
182
- fileSize: {
183
- type: Number
184
- },
185
- fileOrder: {
186
- type: Number
187
- },
188
- fileType: {
189
- type: String
190
- }
191
- }),
192
- function: function (fileName, fileData, fileSize, fileOrder, fileType) {
193
- var _this = this;
194
- return new Promise(function (resolve, reject) {
195
- if (fileName) {
196
- var key_3 = 'uploads/' + Date.now() + '-' + fileName;
197
- var s3 = _this.getAWS().s3();
198
- s3.putObject({
199
- Bucket: process.env.AWS_S3_BUCKET,
200
- Key: key_3,
201
- Body: fileData,
202
- ACL: 'private',
203
- ContentType: 'application/gzip',
204
- ContentDisposition: 'inline'
205
- }).then(function (res) {
206
- if (res) {
207
- file_collection_1.Files.create({
208
- _id: (0, mongo_manager_1.objectIdHexString)(), __v: 0, name: fileName, size: fileSize, key: key_3, order: fileOrder, type: fileType
209
- }).then(function (resFile) {
210
- resolve(resFile);
211
- }, function (errFile) { return reject(errFile); });
212
- }
213
- else {
214
- resolve(null);
215
- }
216
- }, function (err) {
217
- reject(err);
218
- });
219
- }
220
- });
221
- }
222
- },
223
- uploadNonPDFStreamAndSave: {
224
- check: new simpl_schema_1.default({
225
- fileName: {
226
- type: String
227
- },
228
- fileData: {
229
- type: String
230
- },
231
- fileOrder: {
232
- type: Number
233
- },
234
- fileType: {
235
- type: String
236
- }
237
- }),
238
- function: function (fileName, fileData, fileOrder, fileType) {
239
- var _this = this;
240
- return new Promise(function (resolve, reject) {
241
- if (fileName) {
242
- var key_4 = 'uploads/' + Date.now() + '-' + fileName;
243
- var s3 = _this.getAWS().s3();
244
- s3.putObject({
245
- Bucket: process.env.AWS_S3_BUCKET,
246
- Key: key_4,
247
- Body: fs.createReadStream(fileData),
248
- ACL: 'private',
249
- ContentType: 'application/gzip',
250
- ContentDisposition: 'inline'
251
- }).then(function (res) {
252
- if (res) {
253
- file_collection_1.Files.create({
254
- _id: (0, mongo_manager_1.objectIdHexString)(), __v: 0, name: fileName, size: 1, key: key_4, order: fileOrder, type: fileType
255
- }).then(function (resFile) {
256
- resolve(resFile);
257
- }, function (errFile) { return reject(errFile); });
258
- }
259
- else {
260
- resolve(null);
261
- }
262
- }, function (err) {
263
- reject(err);
264
- });
265
- }
266
- });
267
- }
268
- },
269
- deleteFiles: {
270
- check: new simpl_schema_1.default({
271
- keys: {
272
- type: Array
273
- },
274
- 'keys.$': {
275
- type: String
276
- }
277
- }),
278
- function: function (keys) {
279
- var _this = this;
280
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
281
- var files, deleteCnt;
282
- var _this = this;
283
- return __generator(this, function (_a) {
284
- switch (_a.label) {
285
- case 0: return [4 /*yield*/, file_collection_1.Files.find({ key: { $in: keys } })];
286
- case 1:
287
- files = _a.sent();
288
- deleteCnt = files.length;
289
- files.forEach(function (file) {
290
- file_collection_1.Files.deleteOne({ _id: file._id });
291
- var s3 = _this.getAWS().s3();
292
- s3.deleteObject({
293
- Bucket: process.env.AWS_S3_BUCKET,
294
- Key: file.key
295
- }).then(function (res) {
296
- if (res) {
297
- deleteCnt--;
298
- if (!deleteCnt) {
299
- resolve(files.length);
300
- }
301
- }
302
- });
303
- });
304
- return [2 /*return*/];
305
- }
306
- });
307
- }); });
308
- }
309
- },
310
- deleteFile: {
311
- check: new simpl_schema_1.default({
312
- key: {
313
- type: String
314
- }
315
- }),
316
- function: function (key) {
317
- var _this = this;
318
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
319
- var file, s3;
320
- return __generator(this, function (_a) {
321
- switch (_a.label) {
322
- case 0: return [4 /*yield*/, file_collection_1.Files.findOne({ key: key })];
323
- case 1:
324
- file = _a.sent();
325
- if (file) {
326
- file_collection_1.Files.deleteOne({ _id: file._id });
327
- }
328
- s3 = this.getAWS().s3();
329
- s3.deleteObject({
330
- Bucket: process.env.AWS_S3_BUCKET,
331
- Key: key
332
- }).then(function (res) {
333
- resolve(res);
334
- }, function (err) {
335
- reject(err);
336
- });
337
- return [2 /*return*/];
338
- }
339
- });
340
- }); });
341
- }
342
- },
343
- deleteFileWithId: {
344
- check: new simpl_schema_1.default({
345
- id_file: {
346
- type: String
347
- }
348
- }),
349
- function: function (id_file) {
350
- var _this = this;
351
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
352
- var file, s3;
353
- return __generator(this, function (_a) {
354
- switch (_a.label) {
355
- case 0: return [4 /*yield*/, file_collection_1.Files.findOne({ _id: id_file })];
356
- case 1:
357
- file = _a.sent();
358
- if (!file) {
359
- reject('Could not find file');
360
- }
361
- s3 = this.getAWS().s3();
362
- s3.deleteObject({
363
- Bucket: process.env.AWS_S3_BUCKET,
364
- Key: file.key
365
- }).then(function (res) {
366
- resolve(res);
367
- }, function (err) {
368
- reject(err);
369
- });
370
- file_collection_1.Files.deleteOne({ _id: file._id });
371
- return [2 /*return*/];
372
- }
373
- });
374
- }); });
375
- }
376
- },
377
- getSignedUrlsAndFilesWithId: {
378
- check: new simpl_schema_1.default({
379
- ids: {
380
- type: Array
381
- },
382
- 'ids.$': {
383
- type: String
384
- },
385
- expires: {
386
- type: Number
387
- }
388
- }),
389
- function: function (ids, expires) {
390
- var _this = this;
391
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
392
- var res, fileArray, files, i, file, s3, getCommand, _a, _b;
393
- return __generator(this, function (_c) {
394
- switch (_c.label) {
395
- case 0:
396
- res = [];
397
- fileArray = [];
398
- return [4 /*yield*/, file_collection_1.Files.find({ _id: { $in: ids } })];
399
- case 1:
400
- files = _c.sent();
401
- i = 0;
402
- _c.label = 2;
403
- case 2:
404
- if (!(i < files.length)) return [3 /*break*/, 5];
405
- file = files[i];
406
- s3 = this.getAWS().s3();
407
- getCommand = new client_s3_1.GetObjectCommand({
408
- Bucket: process.env.AWS_S3_BUCKET,
409
- Key: file.key
410
- });
411
- _b = (_a = res).push;
412
- return [4 /*yield*/, (0, s3_request_presigner_1.getSignedUrl)(s3, getCommand, { expiresIn: expires })];
413
- case 3:
414
- _b.apply(_a, [_c.sent()]);
415
- _c.label = 4;
416
- case 4:
417
- i++;
418
- return [3 /*break*/, 2];
419
- case 5:
420
- resolve({ res: res, fileArray: files.map(function (a) { return a.name; }) });
421
- return [2 /*return*/];
422
- }
423
- });
424
- }); });
425
- }
426
- },
427
- getSignedUrlWithId: {
428
- check: new simpl_schema_1.default({
429
- id_file: {
430
- type: String
431
- },
432
- expires: {
433
- type: Number
434
- }
435
- }),
436
- function: function (id_file, expires) {
437
- var _this = this;
438
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
439
- var file, s3, getCommand;
440
- return __generator(this, function (_a) {
441
- switch (_a.label) {
442
- case 0: return [4 /*yield*/, file_collection_1.Files.findOne({ _id: id_file })];
443
- case 1:
444
- file = _a.sent();
445
- s3 = this.getAWS().s3();
446
- getCommand = new client_s3_1.GetObjectCommand({
447
- Bucket: process.env.AWS_S3_BUCKET,
448
- Key: file.key
449
- });
450
- (0, s3_request_presigner_1.getSignedUrl)(s3, getCommand, { expiresIn: expires }).then(function (res) {
451
- resolve(res);
452
- }, function (err) {
453
- reject(err);
454
- });
455
- return [2 /*return*/];
456
- }
457
- });
458
- }); });
459
- }
460
- },
461
- getSignedUrlUSEast1BucketAndKey: {
462
- check: new simpl_schema_1.default({
463
- bucket: {
464
- type: String
465
- },
466
- key: {
467
- type: String
468
- },
469
- expires: {
470
- type: Number
471
- }
472
- }),
473
- function: function (bucket, key, expires) {
474
- var _this = this;
475
- return new Promise(function (resolve, reject) {
476
- var s3 = _this.getAWS().s3USEast1();
477
- var getCommand = new client_s3_1.GetObjectCommand({
478
- Bucket: bucket,
479
- Key: key
480
- });
481
- (0, s3_request_presigner_1.getSignedUrl)(s3, getCommand, { expiresIn: expires }).then(function (res) {
482
- resolve(res);
483
- }, function (err) {
484
- reject(err);
485
- });
486
- });
487
- }
488
- },
489
- getSignedUrl: {
490
- check: new simpl_schema_1.default({
491
- key: {
492
- type: String
493
- },
494
- expires: {
495
- type: Number
496
- }
497
- }),
498
- function: function (key, expires) {
499
- var _this = this;
500
- return new Promise(function (resolve, reject) {
501
- var s3 = _this.getAWS().s3();
502
- var getCommand = new client_s3_1.GetObjectCommand({
503
- Bucket: process.env.AWS_S3_BUCKET,
504
- Key: key
505
- });
506
- (0, s3_request_presigner_1.getSignedUrl)(s3, getCommand, { expiresIn: expires }).then(function (res) {
507
- resolve(res);
508
- }, function (err) {
509
- reject(err);
510
- });
511
- });
512
- }
513
- },
514
- getSignedUrls: {
515
- check: new simpl_schema_1.default({
516
- keys: {
517
- type: Array
518
- },
519
- 'keys.$': {
520
- type: String
521
- },
522
- expires: {
523
- type: Number
524
- }
525
- }),
526
- function: function (keys, expires) {
527
- var _this = this;
528
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
529
- var res, i, key, s3, getCommand, _a, _b;
530
- return __generator(this, function (_c) {
531
- switch (_c.label) {
532
- case 0:
533
- res = [];
534
- i = 0;
535
- _c.label = 1;
536
- case 1:
537
- if (!(i < keys.length)) return [3 /*break*/, 4];
538
- key = keys[i];
539
- s3 = this.getAWS().s3();
540
- getCommand = new client_s3_1.GetObjectCommand({
541
- Bucket: process.env.AWS_S3_BUCKET,
542
- Key: key
543
- });
544
- _b = (_a = res).push;
545
- return [4 /*yield*/, (0, s3_request_presigner_1.getSignedUrl)(s3, getCommand, { expiresIn: expires })];
546
- case 2:
547
- _b.apply(_a, [_c.sent()]);
548
- _c.label = 3;
549
- case 3:
550
- i++;
551
- return [3 /*break*/, 1];
552
- case 4:
553
- resolve(res);
554
- return [2 /*return*/];
555
- }
556
- });
557
- }); });
558
- }
559
- },
560
- getDataURIfromURL: {
561
- check: new simpl_schema_1.default({
562
- url: {
563
- type: String
564
- }
565
- }),
566
- function: function (url) {
567
- return new Promise(function (resolve, reject) {
568
- request.get(url, function (error, response, body) {
569
- if (!error && response.statusCode === 200) {
570
- var data = 'data:' + response.headers['content-type'] + ';base64,' + new Buffer(body).toString('base64');
571
- resolve(data);
572
- }
573
- else {
574
- reject(error);
575
- }
576
- });
577
- });
578
- }
579
- },
580
- emailFile: {
581
- check: new simpl_schema_1.default({
582
- id_file: {
583
- type: String
584
- },
585
- email: {
586
- type: String
587
- },
588
- additional_message: {
589
- type: String
590
- }
591
- }),
592
- function: function (id_file, email, additional_message) {
593
- var _this = this;
594
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
595
- var file;
596
- var _this = this;
597
- return __generator(this, function (_a) {
598
- switch (_a.label) {
599
- case 0: return [4 /*yield*/, file_collection_1.Files.findById(id_file)];
600
- case 1:
601
- file = _a.sent();
602
- if (!file) {
603
- reject('Could not find file');
604
- return [2 /*return*/];
605
- }
606
- this.callMethodInternal('getSignedUrl', file.key, 259200, function (errPDF, resPDF) {
607
- if (resPDF) {
608
- if (file.size < 5000000) {
609
- var emailMessage = 'Attached is the file requested for email.\n' + (additional_message !== '' ? '\nAdditional Message:\n' + additional_message + '\n' : '');
610
- _this.sendEmail(email, index_1.ResolveIOServer.getClientName() + ' File - ' + file.name, emailMessage, '', [{
611
- filename: file.name,
612
- path: resPDF
613
- }], null, '');
614
- }
615
- else {
616
- var emailMessage = 'Please click the link to the requested file.\n' + (additional_message !== '' ? '\nAdditional Message:\n' + additional_message + '\n' : '');
617
- _this.sendEmail(email, index_1.ResolveIOServer.getClientName() + ' File - ' + file.name, emailMessage + resPDF, '', null, null, '');
618
- }
619
- resolve(true);
620
- }
621
- else {
622
- reject('Could not get file URL');
623
- }
624
- });
625
- return [2 /*return*/];
626
- }
627
- });
628
- }); });
629
- }
630
- }
631
- });
632
- }
633
- exports.loadAWSMethods = loadAWSMethods;
634
-
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(e,s,c,a){return new(c=c||Promise)(function(n,t){function i(e){try{o(a.next(e))}catch(e){t(e)}}function r(e){try{o(a.throw(e))}catch(e){t(e)}}function o(e){var t;e.done?n(e.value):((t=e.value)instanceof c?t:new c(function(e){e(t)})).then(i,r)}o((a=a.apply(e,s||[])).next())})},__generator=this&&this.__generator||function(i,r){var o,s,c,a={label:0,sent:function(){if(1&c[0])throw c[1];return c[1]},trys:[],ops:[]},l={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function e(n){return function(e){var t=[n,e];if(o)throw new TypeError("Generator is already executing.");for(;a=l&&t[l=0]?0:a;)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 a.label++,{value:t[1],done:!1};case 5:a.label++,s=t[1],t=[0];continue;case 7:t=a.ops.pop(),a.trys.pop();continue;default:if(!(c=0<(c=a.trys).length&&c[c.length-1])&&(6===t[0]||2===t[0])){a=0;continue}if(3===t[0]&&(!c||t[1]>c[0]&&t[1]<c[3]))a.label=t[1];else if(6===t[0]&&a.label<c[1])a.label=c[1],c=t;else{if(!(c&&a.label<c[2])){c[2]&&a.ops.pop(),a.trys.pop();continue}a.label=c[2],a.ops.push(t)}}t=r.call(i,a)}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"),index_1=require("../index"),mongo_manager_1=require("../managers/mongo.manager"),client_s3_1=require("@aws-sdk/client-s3"),s3_request_presigner_1=require("@aws-sdk/s3-request-presigner"),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(a,l,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 a?(t="uploads/"+Date.now()+"-"+pdfCnt+++"-"+a,n=this.getAWS().s3(),i=3,r=0,(o=function(){n.putObject({Bucket:process.env.AWS_S3_BUCKET,Key:t,Body:Buffer.from(l.replace("data:"+l.split(",")[0].split(":")[1].split(";")[0]+";base64,",""),"base64"),ACL:"private",ContentType:l.split(",")[0].split(":")[1].split(";")[0],ContentDisposition:"inline"}).then(function(e){e?file_collection_1.Files.create({_id:(0,mongo_manager_1.objectIdHexString)(),__v:0,name:a,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 a=this;return new Promise(function(t,n){var i;r&&(i="uploads/"+Date.now()+"-"+r,a.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,mongo_manager_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},fileData:{type:Buffer},fileSize:{type:Number},fileOrder:{type:Number},fileType:{type:String}}),function:function(r,e,o,s,c){var a=this;return new Promise(function(t,n){var i;r&&(i="uploads/"+Date.now()+"-"+r,a.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,mongo_manager_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,mongo_manager_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(o){var t=this;return new Promise(function(r,e){return __awaiter(t,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:o}})];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)})}),[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(l,u){var t=this;return new Promise(function(a,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:l}})];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 a({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(a,l){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<a.length?(r=a[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:l})]):[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,a){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.callMethodInternal("getSignedUrl",i.key,259200,function(e,t){var n;t?(i.size<5e6?(n="Attached is the file requested for email.\n"+(""!==a?"\nAdditional Message:\n"+a+"\n":""),r.sendEmail(c,index_1.ResolveIOServer.getClientName()+" File - "+i.name,n,"",[{filename:i.name,path:t}],null,"")):(n="Please click the link to the requested file.\n"+(""!==a?"\nAdditional Message:\n"+a+"\n":""),r.sendEmail(c,index_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;
635
2
  //# sourceMappingURL=aws.js.map