@resolveio/server-lib 20.0.26 → 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 -616
  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,617 +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;
76
- return __generator(this, function (_a) {
77
- if (fileName) {
78
- key_1 = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;
79
- s3 = this.getAWS().s3();
80
- s3.putObject({
81
- Bucket: process.env.AWS_S3_BUCKET,
82
- Key: key_1,
83
- Body: Buffer.from(fileData.replace('data:' + fileData.split(',')[0].split(':')[1].split(';')[0] + ';base64,', ''), 'base64'),
84
- ACL: 'private',
85
- ContentType: fileData.split(',')[0].split(':')[1].split(';')[0],
86
- ContentDisposition: 'inline'
87
- }).then(function (res) {
88
- if (res) {
89
- file_collection_1.Files.create({
90
- _id: (0, mongo_manager_1.objectIdHexString)(), __v: 0, name: fileName, size: fileSize, key: key_1, order: fileOrder, type: fileType
91
- }).then(function (resFile) {
92
- resolve(resFile);
93
- }, function (errFile) { return reject(errFile); });
94
- }
95
- else {
96
- resolve(null);
97
- }
98
- }, function (err) {
99
- reject(err);
100
- });
101
- }
102
- return [2 /*return*/];
103
- });
104
- }); });
105
- }
106
- },
107
- uploadNonPDFFileAndSave: {
108
- check: new simpl_schema_1.default({
109
- fileName: {
110
- type: String
111
- },
112
- fileData: {
113
- type: String
114
- },
115
- fileSize: {
116
- type: Number
117
- },
118
- fileOrder: {
119
- type: Number
120
- },
121
- fileType: {
122
- type: String
123
- }
124
- }),
125
- function: function (fileName, fileData, fileSize, fileOrder, fileType) {
126
- var _this = this;
127
- return new Promise(function (resolve, reject) {
128
- if (fileName) {
129
- var key_2 = 'uploads/' + Date.now() + '-' + fileName;
130
- var s3 = _this.getAWS().s3();
131
- s3.putObject({
132
- Bucket: process.env.AWS_S3_BUCKET,
133
- Key: key_2,
134
- Body: Buffer.from(fileData),
135
- ACL: 'private',
136
- ContentType: 'application/gzip',
137
- ContentDisposition: 'inline'
138
- }).then(function (res) {
139
- if (res) {
140
- file_collection_1.Files.create({
141
- _id: (0, mongo_manager_1.objectIdHexString)(), __v: 0, name: fileName, size: fileSize, key: key_2, order: fileOrder, type: fileType
142
- }).then(function (resFile) {
143
- resolve(resFile);
144
- }, function (errFile) { return reject(errFile); });
145
- }
146
- else {
147
- resolve(null);
148
- }
149
- }, function (err) {
150
- reject(err);
151
- });
152
- }
153
- });
154
- }
155
- },
156
- uploadNonPDFBufferAndSave: {
157
- check: new simpl_schema_1.default({
158
- fileName: {
159
- type: String
160
- },
161
- fileData: {
162
- type: Buffer
163
- },
164
- fileSize: {
165
- type: Number
166
- },
167
- fileOrder: {
168
- type: Number
169
- },
170
- fileType: {
171
- type: String
172
- }
173
- }),
174
- function: function (fileName, fileData, fileSize, fileOrder, fileType) {
175
- var _this = this;
176
- return new Promise(function (resolve, reject) {
177
- if (fileName) {
178
- var key_3 = 'uploads/' + Date.now() + '-' + fileName;
179
- var s3 = _this.getAWS().s3();
180
- s3.putObject({
181
- Bucket: process.env.AWS_S3_BUCKET,
182
- Key: key_3,
183
- Body: fileData,
184
- ACL: 'private',
185
- ContentType: 'application/gzip',
186
- ContentDisposition: 'inline'
187
- }).then(function (res) {
188
- if (res) {
189
- file_collection_1.Files.create({
190
- _id: (0, mongo_manager_1.objectIdHexString)(), __v: 0, name: fileName, size: fileSize, key: key_3, order: fileOrder, type: fileType
191
- }).then(function (resFile) {
192
- resolve(resFile);
193
- }, function (errFile) { return reject(errFile); });
194
- }
195
- else {
196
- resolve(null);
197
- }
198
- }, function (err) {
199
- reject(err);
200
- });
201
- }
202
- });
203
- }
204
- },
205
- uploadNonPDFStreamAndSave: {
206
- check: new simpl_schema_1.default({
207
- fileName: {
208
- type: String
209
- },
210
- fileData: {
211
- type: String
212
- },
213
- fileOrder: {
214
- type: Number
215
- },
216
- fileType: {
217
- type: String
218
- }
219
- }),
220
- function: function (fileName, fileData, fileOrder, fileType) {
221
- var _this = this;
222
- return new Promise(function (resolve, reject) {
223
- if (fileName) {
224
- var key_4 = 'uploads/' + Date.now() + '-' + fileName;
225
- var s3 = _this.getAWS().s3();
226
- s3.putObject({
227
- Bucket: process.env.AWS_S3_BUCKET,
228
- Key: key_4,
229
- Body: fs.createReadStream(fileData),
230
- ACL: 'private',
231
- ContentType: 'application/gzip',
232
- ContentDisposition: 'inline'
233
- }).then(function (res) {
234
- if (res) {
235
- file_collection_1.Files.create({
236
- _id: (0, mongo_manager_1.objectIdHexString)(), __v: 0, name: fileName, size: 1, key: key_4, order: fileOrder, type: fileType
237
- }).then(function (resFile) {
238
- resolve(resFile);
239
- }, function (errFile) { return reject(errFile); });
240
- }
241
- else {
242
- resolve(null);
243
- }
244
- }, function (err) {
245
- reject(err);
246
- });
247
- }
248
- });
249
- }
250
- },
251
- deleteFiles: {
252
- check: new simpl_schema_1.default({
253
- keys: {
254
- type: Array
255
- },
256
- 'keys.$': {
257
- type: String
258
- }
259
- }),
260
- function: function (keys) {
261
- var _this = this;
262
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
263
- var files, deleteCnt;
264
- var _this = this;
265
- return __generator(this, function (_a) {
266
- switch (_a.label) {
267
- case 0: return [4 /*yield*/, file_collection_1.Files.find({ key: { $in: keys } })];
268
- case 1:
269
- files = _a.sent();
270
- deleteCnt = files.length;
271
- files.forEach(function (file) {
272
- file_collection_1.Files.deleteOne({ _id: file._id });
273
- var s3 = _this.getAWS().s3();
274
- s3.deleteObject({
275
- Bucket: process.env.AWS_S3_BUCKET,
276
- Key: file.key
277
- }).then(function (res) {
278
- if (res) {
279
- deleteCnt--;
280
- if (!deleteCnt) {
281
- resolve(files.length);
282
- }
283
- }
284
- });
285
- });
286
- return [2 /*return*/];
287
- }
288
- });
289
- }); });
290
- }
291
- },
292
- deleteFile: {
293
- check: new simpl_schema_1.default({
294
- key: {
295
- type: String
296
- }
297
- }),
298
- function: function (key) {
299
- var _this = this;
300
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
301
- var file, s3;
302
- return __generator(this, function (_a) {
303
- switch (_a.label) {
304
- case 0: return [4 /*yield*/, file_collection_1.Files.findOne({ key: key })];
305
- case 1:
306
- file = _a.sent();
307
- if (file) {
308
- file_collection_1.Files.deleteOne({ _id: file._id });
309
- }
310
- s3 = this.getAWS().s3();
311
- s3.deleteObject({
312
- Bucket: process.env.AWS_S3_BUCKET,
313
- Key: key
314
- }).then(function (res) {
315
- resolve(res);
316
- }, function (err) {
317
- reject(err);
318
- });
319
- return [2 /*return*/];
320
- }
321
- });
322
- }); });
323
- }
324
- },
325
- deleteFileWithId: {
326
- check: new simpl_schema_1.default({
327
- id_file: {
328
- type: String
329
- }
330
- }),
331
- function: function (id_file) {
332
- var _this = this;
333
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
334
- var file, s3;
335
- return __generator(this, function (_a) {
336
- switch (_a.label) {
337
- case 0: return [4 /*yield*/, file_collection_1.Files.findOne({ _id: id_file })];
338
- case 1:
339
- file = _a.sent();
340
- if (!file) {
341
- reject('Could not find file');
342
- }
343
- s3 = this.getAWS().s3();
344
- s3.deleteObject({
345
- Bucket: process.env.AWS_S3_BUCKET,
346
- Key: file.key
347
- }).then(function (res) {
348
- resolve(res);
349
- }, function (err) {
350
- reject(err);
351
- });
352
- file_collection_1.Files.deleteOne({ _id: file._id });
353
- return [2 /*return*/];
354
- }
355
- });
356
- }); });
357
- }
358
- },
359
- getSignedUrlsAndFilesWithId: {
360
- check: new simpl_schema_1.default({
361
- ids: {
362
- type: Array
363
- },
364
- 'ids.$': {
365
- type: String
366
- },
367
- expires: {
368
- type: Number
369
- }
370
- }),
371
- function: function (ids, expires) {
372
- var _this = this;
373
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
374
- var res, fileArray, files, i, file, s3, getCommand, _a, _b;
375
- return __generator(this, function (_c) {
376
- switch (_c.label) {
377
- case 0:
378
- res = [];
379
- fileArray = [];
380
- return [4 /*yield*/, file_collection_1.Files.find({ _id: { $in: ids } })];
381
- case 1:
382
- files = _c.sent();
383
- i = 0;
384
- _c.label = 2;
385
- case 2:
386
- if (!(i < files.length)) return [3 /*break*/, 5];
387
- file = files[i];
388
- s3 = this.getAWS().s3();
389
- getCommand = new client_s3_1.GetObjectCommand({
390
- Bucket: process.env.AWS_S3_BUCKET,
391
- Key: file.key
392
- });
393
- _b = (_a = res).push;
394
- return [4 /*yield*/, (0, s3_request_presigner_1.getSignedUrl)(s3, getCommand, { expiresIn: expires })];
395
- case 3:
396
- _b.apply(_a, [_c.sent()]);
397
- _c.label = 4;
398
- case 4:
399
- i++;
400
- return [3 /*break*/, 2];
401
- case 5:
402
- resolve({ res: res, fileArray: files.map(function (a) { return a.name; }) });
403
- return [2 /*return*/];
404
- }
405
- });
406
- }); });
407
- }
408
- },
409
- getSignedUrlWithId: {
410
- check: new simpl_schema_1.default({
411
- id_file: {
412
- type: String
413
- },
414
- expires: {
415
- type: Number
416
- }
417
- }),
418
- function: function (id_file, expires) {
419
- var _this = this;
420
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
421
- var file, s3, getCommand;
422
- return __generator(this, function (_a) {
423
- switch (_a.label) {
424
- case 0: return [4 /*yield*/, file_collection_1.Files.findOne({ _id: id_file })];
425
- case 1:
426
- file = _a.sent();
427
- s3 = this.getAWS().s3();
428
- getCommand = new client_s3_1.GetObjectCommand({
429
- Bucket: process.env.AWS_S3_BUCKET,
430
- Key: file.key
431
- });
432
- (0, s3_request_presigner_1.getSignedUrl)(s3, getCommand, { expiresIn: expires }).then(function (res) {
433
- resolve(res);
434
- }, function (err) {
435
- reject(err);
436
- });
437
- return [2 /*return*/];
438
- }
439
- });
440
- }); });
441
- }
442
- },
443
- getSignedUrlUSEast1BucketAndKey: {
444
- check: new simpl_schema_1.default({
445
- bucket: {
446
- type: String
447
- },
448
- key: {
449
- type: String
450
- },
451
- expires: {
452
- type: Number
453
- }
454
- }),
455
- function: function (bucket, key, expires) {
456
- var _this = this;
457
- return new Promise(function (resolve, reject) {
458
- var s3 = _this.getAWS().s3USEast1();
459
- var getCommand = new client_s3_1.GetObjectCommand({
460
- Bucket: bucket,
461
- Key: key
462
- });
463
- (0, s3_request_presigner_1.getSignedUrl)(s3, getCommand, { expiresIn: expires }).then(function (res) {
464
- resolve(res);
465
- }, function (err) {
466
- reject(err);
467
- });
468
- });
469
- }
470
- },
471
- getSignedUrl: {
472
- check: new simpl_schema_1.default({
473
- key: {
474
- type: String
475
- },
476
- expires: {
477
- type: Number
478
- }
479
- }),
480
- function: function (key, expires) {
481
- var _this = this;
482
- return new Promise(function (resolve, reject) {
483
- var s3 = _this.getAWS().s3();
484
- var getCommand = new client_s3_1.GetObjectCommand({
485
- Bucket: process.env.AWS_S3_BUCKET,
486
- Key: key
487
- });
488
- (0, s3_request_presigner_1.getSignedUrl)(s3, getCommand, { expiresIn: expires }).then(function (res) {
489
- resolve(res);
490
- }, function (err) {
491
- reject(err);
492
- });
493
- });
494
- }
495
- },
496
- getSignedUrls: {
497
- check: new simpl_schema_1.default({
498
- keys: {
499
- type: Array
500
- },
501
- 'keys.$': {
502
- type: String
503
- },
504
- expires: {
505
- type: Number
506
- }
507
- }),
508
- function: function (keys, expires) {
509
- var _this = this;
510
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
511
- var res, i, key, s3, getCommand, _a, _b;
512
- return __generator(this, function (_c) {
513
- switch (_c.label) {
514
- case 0:
515
- res = [];
516
- i = 0;
517
- _c.label = 1;
518
- case 1:
519
- if (!(i < keys.length)) return [3 /*break*/, 4];
520
- key = keys[i];
521
- s3 = this.getAWS().s3();
522
- getCommand = new client_s3_1.GetObjectCommand({
523
- Bucket: process.env.AWS_S3_BUCKET,
524
- Key: key
525
- });
526
- _b = (_a = res).push;
527
- return [4 /*yield*/, (0, s3_request_presigner_1.getSignedUrl)(s3, getCommand, { expiresIn: expires })];
528
- case 2:
529
- _b.apply(_a, [_c.sent()]);
530
- _c.label = 3;
531
- case 3:
532
- i++;
533
- return [3 /*break*/, 1];
534
- case 4:
535
- resolve(res);
536
- return [2 /*return*/];
537
- }
538
- });
539
- }); });
540
- }
541
- },
542
- getDataURIfromURL: {
543
- check: new simpl_schema_1.default({
544
- url: {
545
- type: String
546
- }
547
- }),
548
- function: function (url) {
549
- return new Promise(function (resolve, reject) {
550
- request.get(url, function (error, response, body) {
551
- if (!error && response.statusCode === 200) {
552
- var data = 'data:' + response.headers['content-type'] + ';base64,' + new Buffer(body).toString('base64');
553
- resolve(data);
554
- }
555
- else {
556
- reject(error);
557
- }
558
- });
559
- });
560
- }
561
- },
562
- emailFile: {
563
- check: new simpl_schema_1.default({
564
- id_file: {
565
- type: String
566
- },
567
- email: {
568
- type: String
569
- },
570
- additional_message: {
571
- type: String
572
- }
573
- }),
574
- function: function (id_file, email, additional_message) {
575
- var _this = this;
576
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
577
- var file;
578
- var _this = this;
579
- return __generator(this, function (_a) {
580
- switch (_a.label) {
581
- case 0: return [4 /*yield*/, file_collection_1.Files.findById(id_file)];
582
- case 1:
583
- file = _a.sent();
584
- if (!file) {
585
- reject('Could not find file');
586
- return [2 /*return*/];
587
- }
588
- this.callMethodInternal('getSignedUrl', file.key, 259200, function (errPDF, resPDF) {
589
- if (resPDF) {
590
- if (file.size < 5000000) {
591
- var emailMessage = 'Attached is the file requested for email.\n' + (additional_message !== '' ? '\nAdditional Message:\n' + additional_message + '\n' : '');
592
- _this.sendEmail(email, index_1.ResolveIOServer.getClientName() + ' File - ' + file.name, emailMessage, '', [{
593
- filename: file.name,
594
- path: resPDF
595
- }], null, '');
596
- }
597
- else {
598
- var emailMessage = 'Please click the link to the requested file.\n' + (additional_message !== '' ? '\nAdditional Message:\n' + additional_message + '\n' : '');
599
- _this.sendEmail(email, index_1.ResolveIOServer.getClientName() + ' File - ' + file.name, emailMessage + resPDF, '', null, null, '');
600
- }
601
- resolve(true);
602
- }
603
- else {
604
- reject('Could not get file URL');
605
- }
606
- });
607
- return [2 /*return*/];
608
- }
609
- });
610
- }); });
611
- }
612
- }
613
- });
614
- }
615
- exports.loadAWSMethods = loadAWSMethods;
616
-
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;
617
2
  //# sourceMappingURL=aws.js.map