@resolveio/server-lib 1.0.0-rc28 → 1.0.0-rc4

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 (159) hide show
  1. package/collections/active-subscription.collection.js +2 -68
  2. package/collections/app-status.collection.js +2 -43
  3. package/collections/app-version.collection.js +2 -56
  4. package/collections/counter.collection.js +2 -73
  5. package/collections/cron-job-history.collection.js +2 -86
  6. package/collections/cron-job.collection.js +2 -89
  7. package/collections/file.collection.js +2 -73
  8. package/collections/flag.collection.js +2 -47
  9. package/collections/log.collection.js +2 -64
  10. package/collections/logged-in-users.collection.js +2 -70
  11. package/collections/method-call.collection.js +2 -44
  12. package/collections/method-response.collection.js +2 -48
  13. package/collections/queue-flag.collection.js +2 -41
  14. package/collections/queue-method.collection.js +2 -116
  15. package/collections/queue-response.collection.js +2 -78
  16. package/collections/support-ticket.collection.js +2 -146
  17. package/collections/user.collection.js +2 -108
  18. package/cron/cron.js +2 -160
  19. package/fixtures/cron-jobs.js +2 -72
  20. package/fixtures/init.js +2 -73
  21. package/http/auth.js +2 -472
  22. package/http/health.js +2 -8
  23. package/index.js +2 -125
  24. package/managers/cron.manager.js +2 -193
  25. package/managers/method.manager.js +2 -544
  26. package/managers/queue-method.manager.js +2 -239
  27. package/managers/subscription.manager.js +2 -700
  28. package/managers/support.manager.js +2 -208
  29. package/methods/accounts.js +2 -253
  30. package/methods/aws.js +2 -345
  31. package/methods/cloudconvert.js +2 -37
  32. package/methods/collections.js +2 -738
  33. package/methods/counters.js +2 -404
  34. package/methods/cron-jobs.js +2 -63
  35. package/methods/flags.js +2 -6
  36. package/methods/logs.js +2 -29
  37. package/methods/pdf.js +2 -303
  38. package/models/active-subscription.model.js +2 -2
  39. package/models/app-status.model.js +2 -2
  40. package/models/app-version.model.js +2 -2
  41. package/models/collection-document.model.js +2 -2
  42. package/models/counter.model.js +2 -2
  43. package/models/cron-job-history.model.js +2 -2
  44. package/models/cron-job.model.js +2 -2
  45. package/models/dialog.model.js +2 -2
  46. package/models/file.model.js +2 -2
  47. package/models/flag.model.js +2 -2
  48. package/models/log.model.js +2 -2
  49. package/models/logged-in-users.model.js +2 -2
  50. package/models/method-call.model.js +2 -2
  51. package/models/method-response.model.js +2 -2
  52. package/models/method.model.js +2 -2
  53. package/models/pagination.model.js +2 -20
  54. package/models/permission.model.js +2 -2
  55. package/models/queue-method.model.js +2 -2
  56. package/models/queue-response.model.js +2 -2
  57. package/models/select-data-label.model.js +2 -2
  58. package/models/server-response.model.js +2 -2
  59. package/models/subscription.model.js +2 -2
  60. package/models/support-method.model.js +2 -2
  61. package/models/support-ticket.model.js +2 -2
  62. package/models/user.model.js +2 -2
  63. package/package.json +2 -4
  64. package/publications/app-status.js +2 -14
  65. package/publications/app-version.js +2 -14
  66. package/publications/cron-jobs.js +2 -14
  67. package/publications/files.js +2 -71
  68. package/publications/flags.js +2 -23
  69. package/publications/logs.js +2 -26
  70. package/publications/method-calls.js +2 -14
  71. package/publications/method-responses.js +2 -14
  72. package/publications/super-admin.js +2 -21
  73. package/publications/support-tickets.js +2 -118
  74. package/server-app.js +2 -641
  75. package/support-methods/aws.js +2 -276
  76. package/support-methods/collections.js +2 -471
  77. package/support-methods/counters.js +2 -189
  78. package/support-methods/support.js +2 -19
  79. package/util/common.js +2 -334
  80. package/collections/active-subscription.collection.d.ts +0 -8
  81. package/collections/app-status.collection.d.ts +0 -8
  82. package/collections/app-version.collection.d.ts +0 -8
  83. package/collections/counter.collection.d.ts +0 -10
  84. package/collections/cron-job-history.collection.d.ts +0 -8
  85. package/collections/cron-job.collection.d.ts +0 -8
  86. package/collections/file.collection.d.ts +0 -10
  87. package/collections/flag.collection.d.ts +0 -8
  88. package/collections/log.collection.d.ts +0 -8
  89. package/collections/logged-in-users.collection.d.ts +0 -8
  90. package/collections/method-call.collection.d.ts +0 -7
  91. package/collections/method-response.collection.d.ts +0 -7
  92. package/collections/queue-flag.collection.d.ts +0 -8
  93. package/collections/queue-method.collection.d.ts +0 -8
  94. package/collections/queue-response.collection.d.ts +0 -8
  95. package/collections/support-ticket.collection.d.ts +0 -8
  96. package/collections/user.collection.d.ts +0 -9
  97. package/cron/cron.d.ts +0 -6
  98. package/fixtures/cron-jobs.d.ts +0 -2
  99. package/fixtures/init.d.ts +0 -2
  100. package/http/auth.d.ts +0 -3
  101. package/http/health.d.ts +0 -2
  102. package/index.d.ts +0 -17
  103. package/managers/cron.manager.d.ts +0 -17
  104. package/managers/method.manager.d.ts +0 -28
  105. package/managers/queue-method.manager.d.ts +0 -14
  106. package/managers/subscription.manager.d.ts +0 -27
  107. package/managers/support.manager.d.ts +0 -18
  108. package/methods/accounts.d.ts +0 -3
  109. package/methods/aws.d.ts +0 -3
  110. package/methods/cloudconvert.d.ts +0 -3
  111. package/methods/collections.d.ts +0 -3
  112. package/methods/counters.d.ts +0 -3
  113. package/methods/cron-jobs.d.ts +0 -3
  114. package/methods/flags.d.ts +0 -3
  115. package/methods/logs.d.ts +0 -3
  116. package/methods/pdf.d.ts +0 -3
  117. package/models/active-subscription.model.d.ts +0 -14
  118. package/models/app-status.model.d.ts +0 -5
  119. package/models/app-version.model.d.ts +0 -5
  120. package/models/collection-document.model.d.ts +0 -7
  121. package/models/counter.model.d.ts +0 -6
  122. package/models/cron-job-history.model.d.ts +0 -13
  123. package/models/cron-job.model.d.ts +0 -14
  124. package/models/dialog.model.d.ts +0 -24
  125. package/models/file.model.d.ts +0 -10
  126. package/models/flag.model.d.ts +0 -6
  127. package/models/log.model.d.ts +0 -12
  128. package/models/logged-in-users.model.d.ts +0 -10
  129. package/models/method-call.model.d.ts +0 -8
  130. package/models/method-response.model.d.ts +0 -9
  131. package/models/method.model.d.ts +0 -11
  132. package/models/notification.model.d.ts +0 -5
  133. package/models/notification.model.js +0 -2
  134. package/models/pagination.model.d.ts +0 -12
  135. package/models/permission.model.d.ts +0 -13
  136. package/models/queue-method.model.d.ts +0 -10
  137. package/models/queue-response.model.d.ts +0 -11
  138. package/models/select-data-label.model.d.ts +0 -10
  139. package/models/server-response.model.d.ts +0 -6
  140. package/models/subscription.model.d.ts +0 -31
  141. package/models/support-method.model.d.ts +0 -10
  142. package/models/support-ticket.model.d.ts +0 -40
  143. package/models/user.model.d.ts +0 -15
  144. package/publications/app-status.d.ts +0 -3
  145. package/publications/app-version.d.ts +0 -3
  146. package/publications/cron-jobs.d.ts +0 -3
  147. package/publications/files.d.ts +0 -3
  148. package/publications/flags.d.ts +0 -3
  149. package/publications/logs.d.ts +0 -3
  150. package/publications/method-calls.d.ts +0 -3
  151. package/publications/method-responses.d.ts +0 -3
  152. package/publications/super-admin.d.ts +0 -3
  153. package/publications/support-tickets.d.ts +0 -2
  154. package/server-app.d.ts +0 -34
  155. package/support-methods/aws.d.ts +0 -3
  156. package/support-methods/collections.d.ts +0 -3
  157. package/support-methods/counters.d.ts +0 -3
  158. package/support-methods/support.d.ts +0 -3
  159. package/util/common.d.ts +0 -15
@@ -1,276 +1,2 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (_) try {
17
- 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;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- var file_collection_1 = require("../collections/file.collection");
39
- var mongoose_1 = require("mongoose");
40
- var simpl_schema_1 = require("simpl-schema");
41
- var pdfCnt = 1000000;
42
- function loadAWSMethods(supportManager) {
43
- supportManager.supportMethods({
44
- uploadFileAndSave: {
45
- check: new simpl_schema_1.default({
46
- fileName: {
47
- type: String
48
- },
49
- fileData: {
50
- type: String
51
- },
52
- fileSize: {
53
- type: Number
54
- },
55
- fileOrder: {
56
- type: Number
57
- },
58
- fileType: {
59
- type: String
60
- }
61
- }),
62
- function: function (fileName, fileData, fileSize, fileOrder, fileType) {
63
- var that = this;
64
- return new Promise(function (resolve, reject) {
65
- if (fileName) {
66
- var key_1 = 'uploads/' + Date.now() + '-' + (pdfCnt++) + '-' + fileName;
67
- var newParams = { Bucket: that.serverConfig.AWSBUCKET, Key: key_1, Body: Buffer.from(fileData.replace('data:' + fileData.split(',')[0].split(':')[1].split(';')[0] + ';base64,', ''), 'base64'), ACL: 'private', ContentType: fileData.split(',')[0].split(':')[1].split(';')[0], ContentDisposition: 'inline' };
68
- that.getAWS().upload(newParams, function (err, res) {
69
- if (err) {
70
- reject(err);
71
- }
72
- else if (res) {
73
- file_collection_1.SupportFiles.create({
74
- _id: mongoose_1.Types.ObjectId().toHexString(), name: fileName, size: fileSize, key: key_1, order: fileOrder, type: fileType
75
- }).then(function (resFile) {
76
- resolve(resFile);
77
- }, function (errFile) { return reject(errFile); });
78
- }
79
- });
80
- }
81
- });
82
- }
83
- },
84
- deleteFiles: {
85
- check: new simpl_schema_1.default({
86
- keys: {
87
- type: Array
88
- },
89
- 'keys.$': {
90
- type: String
91
- }
92
- }),
93
- function: function (keys) {
94
- var _this = this;
95
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
96
- var files, deleteCnt;
97
- var _this = this;
98
- return __generator(this, function (_a) {
99
- switch (_a.label) {
100
- case 0: return [4 /*yield*/, file_collection_1.SupportFiles.find({ key: { $in: keys } })];
101
- case 1:
102
- files = _a.sent();
103
- deleteCnt = files.length;
104
- files.forEach(function (file) {
105
- file_collection_1.SupportFiles.deleteOne({ _id: file._id }).exec();
106
- var delParams = { Bucket: _this.serverConfig.AWSBUCKET, Key: file.key };
107
- _this.getAWS().deleteObject(delParams, function (err, res) {
108
- if (err) {
109
- reject(err);
110
- }
111
- else {
112
- deleteCnt--;
113
- if (!deleteCnt) {
114
- resolve(res);
115
- }
116
- }
117
- });
118
- });
119
- return [2 /*return*/];
120
- }
121
- });
122
- }); });
123
- }
124
- },
125
- deleteFile: {
126
- check: new simpl_schema_1.default({
127
- key: {
128
- type: String
129
- }
130
- }),
131
- function: function (key) {
132
- var _this = this;
133
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
134
- var file, delParams;
135
- return __generator(this, function (_a) {
136
- switch (_a.label) {
137
- case 0: return [4 /*yield*/, file_collection_1.SupportFiles.findOne({ key: key })];
138
- case 1:
139
- file = _a.sent();
140
- if (!file) {
141
- reject('Could not find file');
142
- }
143
- file_collection_1.SupportFiles.deleteOne({ _id: file._id }).exec();
144
- delParams = { Bucket: this.serverConfig['AWSBUCKET'], Key: key };
145
- this.getAWS().deleteObject(delParams, function (err, res) {
146
- if (err) {
147
- reject(err);
148
- }
149
- else {
150
- resolve(res);
151
- }
152
- });
153
- return [2 /*return*/];
154
- }
155
- });
156
- }); });
157
- }
158
- },
159
- deleteFileWithId: {
160
- check: new simpl_schema_1.default({
161
- id_file: {
162
- type: String
163
- }
164
- }),
165
- function: function (id_file) {
166
- var _this = this;
167
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
168
- var file, delParams;
169
- return __generator(this, function (_a) {
170
- switch (_a.label) {
171
- case 0: return [4 /*yield*/, file_collection_1.SupportFiles.findOne({ _id: id_file })];
172
- case 1:
173
- file = _a.sent();
174
- if (!file) {
175
- reject('Could not find file');
176
- }
177
- delParams = { Bucket: this.serverConfig['AWSBUCKET'], Key: file.key };
178
- this.getAWS().deleteObject(delParams, function (err, res) {
179
- if (err) {
180
- reject(err);
181
- }
182
- else {
183
- resolve(res);
184
- }
185
- });
186
- file_collection_1.SupportFiles.deleteOne({ _id: file._id }).exec();
187
- return [2 /*return*/];
188
- }
189
- });
190
- }); });
191
- }
192
- },
193
- getSignedUrlWithId: {
194
- check: new simpl_schema_1.default({
195
- id_file: {
196
- type: String
197
- },
198
- expires: {
199
- type: Number
200
- }
201
- }),
202
- function: function (id_file, expires) {
203
- var _this = this;
204
- return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
205
- var file, params;
206
- return __generator(this, function (_a) {
207
- switch (_a.label) {
208
- case 0: return [4 /*yield*/, file_collection_1.SupportFiles.findOne({ _id: id_file })];
209
- case 1:
210
- file = _a.sent();
211
- params = { Bucket: this.serverConfig.AWSBUCKET, Key: file.key, Expires: expires };
212
- this.getAWS().getSignedUrl('getObject', params, function (err, res) {
213
- if (err) {
214
- reject(err);
215
- }
216
- else {
217
- resolve(res);
218
- }
219
- });
220
- return [2 /*return*/];
221
- }
222
- });
223
- }); });
224
- }
225
- },
226
- getSignedUrl: {
227
- check: new simpl_schema_1.default({
228
- key: {
229
- type: String
230
- },
231
- expires: {
232
- type: Number
233
- }
234
- }),
235
- function: function (key, expires) {
236
- var _this = this;
237
- return new Promise(function (resolve, reject) {
238
- var params = { Bucket: _this.serverConfig.AWSBUCKET, Key: key, Expires: expires };
239
- _this.getAWS().getSignedUrl('getObject', params, function (err, res) {
240
- if (err) {
241
- reject(err);
242
- }
243
- else {
244
- resolve(res);
245
- }
246
- });
247
- });
248
- }
249
- },
250
- getSignedUrls: {
251
- check: new simpl_schema_1.default({
252
- keys: {
253
- type: Array
254
- },
255
- 'keys.$': {
256
- type: String
257
- },
258
- expires: {
259
- type: Number
260
- }
261
- }),
262
- function: function (keys, expires) {
263
- var _this = this;
264
- return new Promise(function (resolve, reject) {
265
- var res = [];
266
- keys.forEach(function (key) {
267
- var params = { Bucket: _this.serverConfig.AWSBUCKET, Key: key, Expires: expires };
268
- res.push(_this.getAWS().getSignedUrl('getObject', params));
269
- });
270
- resolve(res);
271
- });
272
- }
273
- }
274
- });
275
- }
276
- exports.loadAWSMethods = loadAWSMethods;
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(o,c,l,u){return new(l||(l=Promise))(function(e,t){function n(e){try{r(u.next(e))}catch(e){t(e)}}function i(e){try{r(u.throw(e))}catch(e){t(e)}}function r(t){t.done?e(t.value):new l(function(e){e(t.value)}).then(n,i)}r((u=u.apply(o,c||[])).next())})},__generator=this&&this.__generator||function(n,i){var r,o,c,e,l={label:0,sent:function(){if(1&c[0])throw c[1];return c[1]},trys:[],ops:[]};return e={next:t(0),throw:t(1),return:t(2)},"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function(t){if(r)throw new TypeError("Generator is already executing.");for(;l;)try{if(r=1,o&&(c=2&t[0]?o.return:t[0]?o.throw||((c=o.return)&&c.call(o),0):o.next)&&!(c=c.call(o,t[1])).done)return c;switch(o=0,c&&(t=[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++,o=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];break}if(6===t[0]&&l.label<c[1]){l.label=c[1],c=t;break}if(c&&l.label<c[2]){l.label=c[2],l.ops.push(t);break}c[2]&&l.ops.pop(),l.trys.pop();continue}t=i.call(n,l)}catch(e){t=[6,e],o=0}finally{r=c=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([t,e])}}};Object.defineProperty(exports,"__esModule",{value:!0});var file_collection_1=require("../collections/file.collection"),mongoose_1=require("mongoose"),simpl_schema_1=require("simpl-schema"),pdfCnt=1e6;function loadAWSMethods(e){e.supportMethods({uploadFileAndSave:{check:new simpl_schema_1.default({fileName:{type:String},fileData:{type:String},fileSize:{type:Number},fileOrder:{type:Number},fileType:{type:String}}),function:function(o,t,c,l,u){var s=this;return new Promise(function(n,i){if(o){var r="uploads/"+Date.now()+"-"+pdfCnt+++"-"+o,e={Bucket:s.serverConfig.AWSBUCKET,Key:r,Body:Buffer.from(t.replace("data:"+t.split(",")[0].split(":")[1].split(";")[0]+";base64,",""),"base64"),ACL:"private",ContentType:t.split(",")[0].split(":")[1].split(";")[0],ContentDisposition:"inline"};s.getAWS().upload(e,function(e,t){e?i(e):t&&file_collection_1.SupportFiles.create({_id:mongoose_1.Types.ObjectId().toHexString(),name:o,size:c,key:r,order:l,type:u}).then(function(e){n(e)},function(e){return i(e)})})}})}},deleteFiles:{check:new simpl_schema_1.default({keys:{type:Array},"keys.$":{type:String}}),function:function(c){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.SupportFiles.find({key:{$in:c}})];case 1:return t=e.sent(),n=t.length,t.forEach(function(e){file_collection_1.SupportFiles.deleteOne({_id:e._id}).exec();var t={Bucket:i.serverConfig.AWSBUCKET,Key:e.key};i.getAWS().deleteObject(t,function(e,t){e?o(e):--n||r(t)})}),[2]}})})})}},deleteFile:{check:new simpl_schema_1.default({key:{type:String}}),function:function(o){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.SupportFiles.findOne({key:o})];case 1:return(t=e.sent())||r("Could not find file"),file_collection_1.SupportFiles.deleteOne({_id:t._id}).exec(),n={Bucket:this.serverConfig.AWSBUCKET,Key:o},this.getAWS().deleteObject(n,function(e,t){e?r(e):i(t)}),[2]}})})})}},deleteFileWithId:{check:new simpl_schema_1.default({id_file:{type:String}}),function:function(o){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.SupportFiles.findOne({_id:o})];case 1:return(t=e.sent())||r("Could not find file"),n={Bucket:this.serverConfig.AWSBUCKET,Key:t.key},this.getAWS().deleteObject(n,function(e,t){e?r(e):i(t)}),file_collection_1.SupportFiles.deleteOne({_id:t._id}).exec(),[2]}})})})}},getSignedUrlWithId:{check:new simpl_schema_1.default({id_file:{type:String},expires:{type:Number}}),function:function(o,c){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.SupportFiles.findOne({_id:o})];case 1:return t=e.sent(),n={Bucket:this.serverConfig.AWSBUCKET,Key:t.key,Expires:c},this.getAWS().getSignedUrl("getObject",n,function(e,t){e?r(e):i(t)}),[2]}})})})}},getSignedUrl:{check:new simpl_schema_1.default({key:{type:String},expires:{type:Number}}),function:function(t,r){var o=this;return new Promise(function(n,i){var e={Bucket:o.serverConfig.AWSBUCKET,Key:t,Expires:r};o.getAWS().getSignedUrl("getObject",e,function(e,t){e?i(e):n(t)})})}},getSignedUrls:{check:new simpl_schema_1.default({keys:{type:Array},"keys.$":{type:String},expires:{type:Number}}),function:function(i,r){var o=this;return new Promise(function(e,t){var n=[];i.forEach(function(e){var t={Bucket:o.serverConfig.AWSBUCKET,Key:e,Expires:r};n.push(o.getAWS().getSignedUrl("getObject",t))}),e(n)})}}})}exports.loadAWSMethods=loadAWSMethods;
2
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdXBwb3J0LW1ldGhvZHMvYXdzLnRzIl0sIm5hbWVzIjpbImZpbGVfY29sbGVjdGlvbl8xIiwicmVxdWlyZSIsIm1vbmdvb3NlXzEiLCJzaW1wbF9zY2hlbWFfMSIsInBkZkNudCIsImxvYWRBV1NNZXRob2RzIiwic3VwcG9ydE1hbmFnZXIiLCJzdXBwb3J0TWV0aG9kcyIsInVwbG9hZEZpbGVBbmRTYXZlIiwiY2hlY2siLCJkZWZhdWx0IiwiZmlsZU5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwiZmlsZURhdGEiLCJmaWxlU2l6ZSIsIk51bWJlciIsImZpbGVPcmRlciIsImZpbGVUeXBlIiwiZnVuY3Rpb24iLCJ0aGF0IiwidGhpcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwia2V5XzEiLCJEYXRlIiwibm93IiwibmV3UGFyYW1zIiwiQnVja2V0Iiwic2VydmVyQ29uZmlnIiwiQVdTQlVDS0VUIiwiS2V5IiwiQm9keSIsIkJ1ZmZlciIsImZyb20iLCJyZXBsYWNlIiwic3BsaXQiLCJBQ0wiLCJDb250ZW50VHlwZSIsIkNvbnRlbnREaXNwb3NpdGlvbiIsImdldEFXUyIsInVwbG9hZCIsImVyciIsInJlcyIsIlN1cHBvcnRGaWxlcyIsImNyZWF0ZSIsIl9pZCIsIlR5cGVzIiwiT2JqZWN0SWQiLCJ0b0hleFN0cmluZyIsIm5hbWUiLCJzaXplIiwia2V5Iiwib3JkZXIiLCJ0aGVuIiwicmVzRmlsZSIsImVyckZpbGUiLCJkZWxldGVGaWxlcyIsImtleXMiLCJBcnJheSIsImtleXMuJCIsIl90aGlzIiwiX19hd2FpdGVyIiwiZmluZCIsIiRpbiIsImZpbGVzIiwiX2EiLCJzZW50IiwiZGVsZXRlQ250IiwibGVuZ3RoIiwiZm9yRWFjaCIsImZpbGUiLCJkZWxldGVPbmUiLCJleGVjIiwiZGVsUGFyYW1zIiwiZGVsZXRlT2JqZWN0IiwiZGVsZXRlRmlsZSIsImZpbmRPbmUiLCJkZWxldGVGaWxlV2l0aElkIiwiaWRfZmlsZSIsImdldFNpZ25lZFVybFdpdGhJZCIsImV4cGlyZXMiLCJwYXJhbXMiLCJFeHBpcmVzIiwiZ2V0U2lnbmVkVXJsIiwiZ2V0U2lnbmVkVXJscyIsInB1c2giLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoibzdDQUFBLElBQUFBLGtCQUFBQyxRQUFBLGtDQUNBQyxXQUFBRCxRQUFBLFlBQ0FFLGVBQUFGLFFBQUEsZ0JBR0lHLE9BQVMsSUFFYixTQUFnQkMsZUFBZUMsR0FDOUJBLEVBQWVDLGVBQWUsQ0FDN0JDLGtCQUFtQixDQUNsQkMsTUFBTyxJQUFJTixlQUFBTyxRQUFhLENBQ3ZCQyxTQUFVLENBQ1RDLEtBQU1DLFFBRVBDLFNBQVUsQ0FDVEYsS0FBTUMsUUFFUEUsU0FBVSxDQUNUSCxLQUFNSSxRQUVQQyxVQUFXLENBQ1ZMLEtBQU1JLFFBRVBFLFNBQVUsQ0FDVE4sS0FBTUMsVUFHUk0sU0FBVSxTQUFTUixFQUFrQkcsRUFBa0JDLEVBQWtCRSxFQUFtQkMsR0FDM0YsSUFBSUUsRUFBT0MsS0FDWCxPQUFPLElBQUlDLFFBQVEsU0FBQ0MsRUFBU0MsR0FDNUIsR0FBSWIsRUFBVSxDQUNiLElBQUljLEVBQU0sV0FBYUMsS0FBS0MsTUFBUSxJQUFPdkIsU0FBWSxJQUFNTyxFQUV6RGlCLEVBQVksQ0FBQ0MsT0FBUVQsRUFBS1UsYUFBYUMsVUFBV0MsSUFBS1AsRUFBS1EsS0FBTUMsT0FBT0MsS0FBS3JCLEVBQVNzQixRQUFRLFFBQVV0QixFQUFTdUIsTUFBTSxLQUFLLEdBQUdBLE1BQU0sS0FBSyxHQUFHQSxNQUFNLEtBQUssR0FBSyxXQUFZLElBQUssVUFBV0MsSUFBSyxVQUFXQyxZQUFhekIsRUFBU3VCLE1BQU0sS0FBSyxHQUFHQSxNQUFNLEtBQUssR0FBR0EsTUFBTSxLQUFLLEdBQUlHLG1CQUFvQixVQUVuU3BCLEVBQUtxQixTQUFTQyxPQUFPZCxFQUFXLFNBQUNlLEVBQUtDLEdBQ2pDRCxFQUNIbkIsRUFBT21CLEdBRUNDLEdBQ1I1QyxrQkFBQTZDLGFBQWFDLE9BQU8sQ0FDbkJDLElBQUs3QyxXQUFBOEMsTUFB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RDVELEVBQVFxQixTQWxOYjRDLFFBQUFuRixlQUFBQSIsImZpbGUiOiJzdXBwb3J0LW1ldGhvZHMvYXdzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3VwcG9ydEZpbGVzIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvZmlsZS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFR5cGVzIH0gZnJvbSAnbW9uZ29vc2UnO1xuaW1wb3J0IFNpbXBsZVNjaGVtYSBmcm9tICdzaW1wbC1zY2hlbWEnO1xuaW1wb3J0IHsgU3VwcG9ydE1hbmFnZXIgfSBmcm9tICcuLi9tYW5hZ2Vycy9zdXBwb3J0Lm1hbmFnZXInO1xuXG5sZXQgcGRmQ250ID0gMTAwMDAwMDtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBV1NNZXRob2RzKHN1cHBvcnRNYW5hZ2VyOiBTdXBwb3J0TWFuYWdlcikge1xuXHRzdXBwb3J0TWFuYWdlci5zdXBwb3J0TWV0aG9kcyh7XG5cdFx0dXBsb2FkRmlsZUFuZFNhdmU6IHtcblx0XHRcdGNoZWNrOiBuZXcgU2ltcGxlU2NoZW1hKHtcblx0XHRcdFx0ZmlsZU5hbWU6IHtcblx0XHRcdFx0XHR0eXBlOiBTdHJpbmdcblx0XHRcdFx0fSxcblx0XHRcdFx0ZmlsZURhdGE6IHtcblx0XHRcdFx0XHR0eXBlOiBTdHJpbmdcblx0XHRcdFx0fSxcblx0XHRcdFx0ZmlsZVNpemU6IHtcblx0XHRcdFx0XHR0eXBlOiBOdW1iZXJcblx0XHRcdFx0fSxcblx0XHRcdFx0ZmlsZU9yZGVyOiB7XG5cdFx0XHRcdFx0dHlwZTogTnVtYmVyXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGZpbGVUeXBlOiB7XG5cdFx0XHRcdFx0dHlwZTogU3RyaW5nXG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFx0ZnVuY3Rpb246IGZ1bmN0aW9uKGZpbGVOYW1lOiBzdHJpbmcsIGZpbGVEYXRhOiBzdHJpbmcsIGZpbGVTaXplOiBudW1iZXIsIGZpbGVPcmRlcjogbnVtYmVyLCBmaWxlVHlwZTogc3RyaW5nKSB7XG5cdFx0XHRcdGxldCB0aGF0ID0gdGhpcztcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0XHRpZiAoZmlsZU5hbWUpIHtcblx0XHRcdFx0XHRcdGxldCBrZXkgPSAndXBsb2Fkcy8nICsgRGF0ZS5ub3coKSArICctJyArIChwZGZDbnQrKykgKyAnLScgKyBmaWxlTmFtZTtcblx0XHRcblx0XHRcdFx0XHRcdGxldCBuZXdQYXJhbXMgPSB7QnVja2V0OiB0aGF0LnNlcnZlckNvbmZpZy5BV1NCVUNLRVQsIEtleToga2V5LCBCb2R5OiBCdWZmZXIuZnJvbShmaWxlRGF0YS5yZXBsYWNlKCdkYXRhOicgKyBmaWxlRGF0YS5zcGxpdCgnLCcpWzBdLnNwbGl0KCc6JylbMV0uc3BsaXQoJzsnKVswXSArICc7YmFzZTY0LCcsICcnKSwgJ2Jhc2U2NCcpLCBBQ0w6ICdwcml2YXRlJywgQ29udGVudFR5cGU6IGZpbGVEYXRhLnNwbGl0KCcsJylbMF0uc3BsaXQoJzonKVsxXS5zcGxpdCgnOycpWzBdLCBDb250ZW50RGlzcG9zaXRpb246ICdpbmxpbmUnfTtcblxuXHRcdFx0XHRcdFx0dGhhdC5nZXRBV1MoKS51cGxvYWQobmV3UGFyYW1zLCAoZXJyLCByZXMpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKGVycikge1xuXHRcdFx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGVsc2UgaWYgKHJlcykge1xuXHRcdFx0XHRcdFx0XHRcdFN1cHBvcnRGaWxlcy5jcmVhdGUoe1xuXHRcdFx0XHRcdFx0XHRcdFx0X2lkOiBUeXBlcy5PYmplY3RJZCgpLnRvSGV4U3RyaW5nKCksIG5hbWU6IGZpbGVOYW1lLCBzaXplOiBmaWxlU2l6ZSwga2V5OiBrZXksIG9yZGVyOiBmaWxlT3JkZXIsIHR5cGU6IGZpbGVUeXBlXG5cdFx0XHRcdFx0XHRcdFx0fSkudGhlbihyZXNGaWxlID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzRmlsZSk7XG5cdFx0XHRcdFx0XHRcdFx0fSwgZXJyRmlsZSA9PiByZWplY3QoZXJyRmlsZSkpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0ZGVsZXRlRmlsZXM6IHtcblx0XHRcdGNoZWNrOiBuZXcgU2ltcGxlU2NoZW1hKHtcblx0XHRcdFx0a2V5czoge1xuXHRcdFx0XHRcdHR5cGU6IEFycmF5XG5cdFx0XHRcdH0sXG5cdFx0XHRcdCdrZXlzLiQnOiB7XG5cdFx0XHRcdFx0dHlwZTogU3RyaW5nXG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFx0ZnVuY3Rpb246IGZ1bmN0aW9uKGtleXM6IHN0cmluZ1tdKSB7XHRcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0XHRsZXQgZmlsZXMgPSBhd2FpdCBTdXBwb3J0RmlsZXMuZmluZCh7a2V5OiB7JGluOiBrZXlzfX0pO1xuXHRcdFxuXHRcdFx0XHRcdGxldCBkZWxldGVDbnQgPSBmaWxlcy5sZW5ndGg7XG5cdFx0XG5cdFx0XHRcdFx0ZmlsZXMuZm9yRWFjaChmaWxlID0+IHtcblx0XHRcdFx0XHRcdFN1cHBvcnRGaWxlcy5kZWxldGVPbmUoe19pZDogZmlsZS5faWR9KS5leGVjKCk7XG5cdFx0XG5cdFx0XHRcdFx0XHRsZXQgZGVsUGFyYW1zID0ge0J1Y2tldDogdGhpcy5zZXJ2ZXJDb25maWcuQVdTQlVDS0VULCBLZXk6IGZpbGUua2V5fTtcblx0XHRcdFxuXHRcdFx0XHRcdFx0dGhpcy5nZXRBV1MoKS5kZWxldGVPYmplY3QoZGVsUGFyYW1zLCBmdW5jdGlvbihlcnIsIHJlcykge1xuXHRcdFx0XHRcdFx0XHRpZiAoZXJyKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0ZGVsZXRlQ250LS07XG5cdFx0XHRcdFx0XHRcdFx0aWYgKCFkZWxldGVDbnQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGRlbGV0ZUZpbGU6IHtcblx0XHRcdGNoZWNrOiBuZXcgU2ltcGxlU2NoZW1hKHtcblx0XHRcdFx0a2V5OiB7XG5cdFx0XHRcdFx0dHlwZTogU3RyaW5nXG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFx0ZnVuY3Rpb246IGZ1bmN0aW9uKGtleTogc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XG5cdFx0XHRcdFx0bGV0IGZpbGUgPSBhd2FpdCBTdXBwb3J0RmlsZXMuZmluZE9uZSh7a2V5OiBrZXl9KTtcblx0XHRcblx0XHRcdFx0XHRpZiAoIWZpbGUpIHtcblx0XHRcdFx0XHRcdHJlamVjdCgnQ291bGQgbm90IGZpbmQgZmlsZScpO1xuXHRcdFx0XHRcdH1cblx0XHRcblx0XHRcdFx0XHRTdXBwb3J0RmlsZXMuZGVsZXRlT25lKHtfaWQ6IGZpbGUuX2lkfSkuZXhlYygpO1xuXHRcdFxuXHRcdFx0XHRcdGxldCBkZWxQYXJhbXMgPSB7QnVja2V0OiB0aGlzLnNlcnZlckNvbmZpZ1snQVdTQlVDS0VUJ10sIEtleToga2V5fTtcblx0XHRcblx0XHRcdFx0XHR0aGlzLmdldEFXUygpLmRlbGV0ZU9iamVjdChkZWxQYXJhbXMsIGZ1bmN0aW9uKGVyciwgcmVzKSB7XG5cdFx0XHRcdFx0XHRpZiAoZXJyKSB7XG5cdFx0XHRcdFx0XHRcdHJlamVjdChlcnIpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHJlc29sdmUocmVzKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRkZWxldGVGaWxlV2l0aElkOiB7XG5cdFx0XHRjaGVjazogbmV3IFNpbXBsZVNjaGVtYSh7XG5cdFx0XHRcdGlkX2ZpbGU6IHtcblx0XHRcdFx0XHR0eXBlOiBTdHJpbmdcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0XHRmdW5jdGlvbjogZnVuY3Rpb24oaWRfZmlsZTogc3RyaW5nKSB7XG5cdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XG5cdFx0XHRcdFx0bGV0IGZpbGUgPSBhd2FpdCBTdXBwb3J0RmlsZXMuZmluZE9uZSh7X2lkOiBpZF9maWxlfSk7XG5cdFx0XG5cdFx0XHRcdFx0aWYgKCFmaWxlKSB7XG5cdFx0XHRcdFx0XHRyZWplY3QoJ0NvdWxkIG5vdCBmaW5kIGZpbGUnKTtcblx0XHRcdFx0XHR9XG5cdFx0XG5cdFx0XHRcdFx0bGV0IGRlbFBhcmFtcyA9IHtCdWNrZXQ6IHRoaXMuc2VydmVyQ29uZmlnWydBV1NCVUNLRVQnXSwgS2V5OiBmaWxlLmtleX07XG5cdFx0XG5cdFx0XHRcdFx0dGhpcy5nZXRBV1MoKS5kZWxldGVPYmplY3QoZGVsUGFyYW1zLCBmdW5jdGlvbihlcnIsIHJlcykge1xuXHRcdFx0XHRcdFx0aWYgKGVycikge1xuXHRcdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlcyk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRTdXBwb3J0RmlsZXMuZGVsZXRlT25lKHtfaWQ6IGZpbGUuX2lkfSkuZXhlYygpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGdldFNpZ25lZFVybFdpdGhJZDoge1xuXHRcdFx0Y2hlY2s6IG5ldyBTaW1wbGVTY2hlbWEoe1xuXHRcdFx0XHRpZF9maWxlOiB7XG5cdFx0XHRcdFx0dHlwZTogU3RyaW5nXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGV4cGlyZXM6IHtcblx0XHRcdFx0XHR0eXBlOiBOdW1iZXJcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0XHRmdW5jdGlvbjogZnVuY3Rpb24oaWRfZmlsZTogc3RyaW5nLCBleHBpcmVzOiBudW1iZXIpIHtcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0XHRsZXQgZmlsZSA9IGF3YWl0IFN1cHBvcnRGaWxlcy5maW5kT25lKHtfaWQ6IGlkX2ZpbGV9KTtcblx0XHRcdFx0XHRsZXQgcGFyYW1zID0ge0J1Y2tldDogdGhpcy5zZXJ2ZXJDb25maWcuQVdTQlVDS0VULCBLZXk6IGZpbGUua2V5LCBFeHBpcmVzOiBleHBpcmVzfTtcblxuXHRcdFx0XHRcdHRoaXMuZ2V0QVdTKCkuZ2V0U2lnbmVkVXJsKCdnZXRPYmplY3QnLCBwYXJhbXMsIChlcnIsIHJlcykgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKGVycikge1xuXHRcdFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKHJlcyk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0Z2V0U2lnbmVkVXJsOiB7XG5cdFx0XHRjaGVjazogbmV3IFNpbXBsZVNjaGVtYSh7XG5cdFx0XHRcdGtleToge1xuXHRcdFx0XHRcdHR5cGU6IFN0cmluZ1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRleHBpcmVzOiB7XG5cdFx0XHRcdFx0dHlwZTogTnVtYmVyXG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFx0ZnVuY3Rpb246IGZ1bmN0aW9uKGtleTogc3RyaW5nLCBleHBpcmVzOiBudW1iZXIpIHtcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0XHRsZXQgcGFyYW1zID0ge0J1Y2tldDogdGhpcy5zZXJ2ZXJDb25maWcuQVdTQlVDS0VULCBLZXk6IGtleSwgRXhwaXJlczogZXhwaXJlc307XG5cblx0XHRcdFx0XHR0aGlzLmdldEFXUygpLmdldFNpZ25lZFVybCgnZ2V0T2JqZWN0JywgcGFyYW1zLCAoZXJyLCByZXMpID0+IHtcblx0XHRcdFx0XHRcdGlmIChlcnIpIHtcblx0XHRcdFx0XHRcdFx0cmVqZWN0KGVycik7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShyZXMpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGdldFNpZ25lZFVybHM6IHtcblx0XHRcdGNoZWNrOiBuZXcgU2ltcGxlU2NoZW1hKHtcblx0XHRcdFx0a2V5czoge1xuXHRcdFx0XHRcdHR5cGU6IEFycmF5XG5cdFx0XHRcdH0sXG5cdFx0XHRcdCdrZXlzLiQnOiB7XG5cdFx0XHRcdFx0dHlwZTogU3RyaW5nXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGV4cGlyZXM6IHtcblx0XHRcdFx0XHR0eXBlOiBOdW1iZXJcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0XHRmdW5jdGlvbjogZnVuY3Rpb24oa2V5czogc3RyaW5nW10sIGV4cGlyZXM6IG51bWJlcikge1xuXHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0XHRcdGxldCByZXMgPSBbXTtcblxuXHRcdFx0XHRcdGtleXMuZm9yRWFjaChrZXkgPT4ge1xuXHRcdFx0XHRcdFx0bGV0IHBhcmFtcyA9IHtCdWNrZXQ6IHRoaXMuc2VydmVyQ29uZmlnLkFXU0JVQ0tFVCwgS2V5OiBrZXksIEV4cGlyZXM6IGV4cGlyZXN9O1xuXG5cdFx0XHRcdFx0XHRyZXMucHVzaCh0aGlzLmdldEFXUygpLmdldFNpZ25lZFVybCgnZ2V0T2JqZWN0JywgcGFyYW1zKSk7XG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRyZXNvbHZlKHJlcyk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fSk7XG59Il19