serverless-simple-middleware 0.0.60 → 0.0.62
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.
- package/.nvmrc +1 -0
- package/README.md +0 -1
- package/dist/aws/config.d.ts +2 -2
- package/dist/aws/config.js +6 -4
- package/dist/aws/define.d.ts +0 -12
- package/dist/aws/define.js +2 -1
- package/dist/aws/index.js +17 -6
- package/dist/aws/simple.d.ts +22 -17
- package/dist/aws/simple.js +334 -227
- package/dist/index.js +17 -6
- package/dist/internal/AwsError.d.ts +5 -0
- package/dist/internal/AwsError.js +33 -0
- package/dist/internal/s3.d.ts +38 -0
- package/dist/internal/s3.js +2 -0
- package/dist/middleware/aws.d.ts +2 -2
- package/dist/middleware/aws.js +12 -9
- package/dist/middleware/base.d.ts +8 -8
- package/dist/middleware/base.js +9 -8
- package/dist/middleware/build.d.ts +1 -1
- package/dist/middleware/build.js +68 -45
- package/dist/middleware/index.d.ts +2 -2
- package/dist/middleware/index.js +20 -8
- package/dist/middleware/logger.js +8 -4
- package/dist/middleware/mysql.d.ts +3 -3
- package/dist/middleware/mysql.js +17 -13
- package/dist/middleware/trace.d.ts +2 -2
- package/dist/middleware/trace.js +21 -21
- package/dist/utils/index.js +16 -5
- package/dist/utils/logger.d.ts +3 -3
- package/dist/utils/logger.js +9 -7
- package/dist/utils/misc.d.ts +1 -1
- package/dist/utils/misc.js +10 -3
- package/package.json +18 -10
- package/src/aws/config.ts +1 -1
- package/src/aws/define.ts +0 -19
- package/src/aws/simple.ts +326 -204
- package/src/internal/AwsError.ts +13 -0
- package/src/internal/s3.ts +75 -0
- package/src/middleware/aws.ts +1 -1
- package/src/middleware/base.ts +5 -4
- package/src/middleware/build.ts +31 -31
- package/src/middleware/mysql.ts +11 -7
- package/src/middleware/trace.ts +15 -19
- package/src/utils/misc.ts +11 -2
package/dist/aws/simple.js
CHANGED
|
@@ -11,10 +11,11 @@ var __assign = (this && this.__assign) || function () {
|
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
14
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15
16
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
16
17
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
17
|
-
function step(result) { result.done ? resolve(result.value) :
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
18
19
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
19
20
|
});
|
|
20
21
|
};
|
|
@@ -24,7 +25,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
24
25
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
26
|
function step(op) {
|
|
26
27
|
if (f) throw new TypeError("Generator is already executing.");
|
|
27
|
-
while (_) try {
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
28
29
|
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;
|
|
29
30
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
30
31
|
switch (op[0]) {
|
|
@@ -45,18 +46,36 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
45
46
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
47
|
}
|
|
47
48
|
};
|
|
49
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
50
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
51
|
+
if (ar || !(i in from)) {
|
|
52
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
53
|
+
ar[i] = from[i];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
57
|
+
};
|
|
48
58
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
-
|
|
59
|
+
exports.SimpleAWS = void 0;
|
|
60
|
+
var cloudfront_signer_1 = require("@aws-sdk/cloudfront-signer");
|
|
61
|
+
var simple_staging_1 = require("simple-staging");
|
|
50
62
|
var fs = require("fs");
|
|
51
63
|
var os = require("os");
|
|
52
64
|
var non_secure_1 = require("nanoid/non-secure");
|
|
53
65
|
var utils_1 = require("../utils");
|
|
54
66
|
var config_1 = require("./config");
|
|
55
67
|
var define_1 = require("./define");
|
|
56
|
-
var
|
|
68
|
+
var client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
|
|
69
|
+
var client_s3_1 = require("@aws-sdk/client-s3");
|
|
70
|
+
var client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
71
|
+
var lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
|
|
72
|
+
var s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
|
|
73
|
+
var lib_storage_1 = require("@aws-sdk/lib-storage");
|
|
74
|
+
var logger = (0, utils_1.getLogger)(__filename);
|
|
57
75
|
var SimpleAWS = /** @class */ (function () {
|
|
58
76
|
function SimpleAWS(config) {
|
|
59
77
|
var _this = this;
|
|
78
|
+
this.queueUrls = {};
|
|
60
79
|
this.getQueueUrl = function (queueName) { return __awaiter(_this, void 0, void 0, function () {
|
|
61
80
|
var urlResult;
|
|
62
81
|
return __generator(this, function (_a) {
|
|
@@ -65,16 +84,14 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
65
84
|
if (this.queueUrls[queueName] !== undefined) {
|
|
66
85
|
return [2 /*return*/, this.queueUrls[queueName]];
|
|
67
86
|
}
|
|
68
|
-
return [4 /*yield*/, this.sqs
|
|
69
|
-
.getQueueUrl({
|
|
87
|
+
return [4 /*yield*/, this.sqs.getQueueUrl({
|
|
70
88
|
QueueName: queueName,
|
|
71
|
-
})
|
|
72
|
-
.promise()];
|
|
89
|
+
})];
|
|
73
90
|
case 1:
|
|
74
91
|
urlResult = _a.sent();
|
|
75
92
|
logger.stupid("urlResult", urlResult);
|
|
76
93
|
if (!urlResult.QueueUrl) {
|
|
77
|
-
throw new Error("No queue url with name["
|
|
94
|
+
throw new Error("No queue url with name[".concat(queueName, "]"));
|
|
78
95
|
}
|
|
79
96
|
return [2 /*return*/, (this.queueUrls[queueName] = urlResult.QueueUrl)];
|
|
80
97
|
}
|
|
@@ -82,73 +99,72 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
82
99
|
}); };
|
|
83
100
|
this.enqueue = function (queueName, data) { return __awaiter(_this, void 0, void 0, function () {
|
|
84
101
|
var queueUrl, sendResult, attrResult;
|
|
85
|
-
|
|
86
|
-
|
|
102
|
+
var _a;
|
|
103
|
+
return __generator(this, function (_b) {
|
|
104
|
+
switch (_b.label) {
|
|
87
105
|
case 0:
|
|
88
|
-
logger.debug("Send message["
|
|
106
|
+
logger.debug("Send message[".concat(data.key, "] to queue."));
|
|
89
107
|
logger.stupid("data", data);
|
|
90
108
|
return [4 /*yield*/, this.getQueueUrl(queueName)];
|
|
91
109
|
case 1:
|
|
92
|
-
queueUrl =
|
|
93
|
-
return [4 /*yield*/, this.sqs
|
|
94
|
-
.sendMessage({
|
|
110
|
+
queueUrl = _b.sent();
|
|
111
|
+
return [4 /*yield*/, this.sqs.sendMessage({
|
|
95
112
|
QueueUrl: queueUrl,
|
|
96
113
|
MessageBody: JSON.stringify(data),
|
|
97
114
|
DelaySeconds: 0,
|
|
98
|
-
})
|
|
99
|
-
.promise()];
|
|
115
|
+
})];
|
|
100
116
|
case 2:
|
|
101
|
-
sendResult =
|
|
117
|
+
sendResult = _b.sent();
|
|
102
118
|
logger.stupid("sendResult", sendResult);
|
|
103
|
-
return [4 /*yield*/, this.sqs
|
|
104
|
-
.getQueueAttributes({
|
|
119
|
+
return [4 /*yield*/, this.sqs.getQueueAttributes({
|
|
105
120
|
QueueUrl: queueUrl,
|
|
106
121
|
AttributeNames: ['ApproximateNumberOfMessages'],
|
|
107
|
-
})
|
|
108
|
-
.promise()];
|
|
122
|
+
})];
|
|
109
123
|
case 3:
|
|
110
|
-
attrResult =
|
|
124
|
+
attrResult = _b.sent();
|
|
111
125
|
logger.stupid("attrResult", attrResult);
|
|
112
126
|
if (!attrResult.Attributes) {
|
|
113
127
|
return [2 /*return*/, 0];
|
|
114
128
|
}
|
|
115
|
-
return [2 /*return*/, +attrResult.Attributes.ApproximateNumberOfMessages];
|
|
129
|
+
return [2 /*return*/, +(((_a = attrResult.Attributes) === null || _a === void 0 ? void 0 : _a.ApproximateNumberOfMessages) || 0)];
|
|
116
130
|
}
|
|
117
131
|
});
|
|
118
132
|
}); };
|
|
119
|
-
this.dequeue = function (
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
133
|
+
this.dequeue = function (queueName_1) {
|
|
134
|
+
var args_1 = [];
|
|
135
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
136
|
+
args_1[_i - 1] = arguments[_i];
|
|
137
|
+
}
|
|
138
|
+
return __awaiter(_this, __spreadArray([queueName_1], args_1, true), void 0, function (queueName, fetchSize, waitSeconds, visibilityTimeout) {
|
|
139
|
+
var queueUrl, receiveResult, data, _a, _b, each, message;
|
|
140
|
+
if (fetchSize === void 0) { fetchSize = 1; }
|
|
141
|
+
if (waitSeconds === void 0) { waitSeconds = 1; }
|
|
142
|
+
if (visibilityTimeout === void 0) { visibilityTimeout = 15; }
|
|
143
|
+
return __generator(this, function (_c) {
|
|
144
|
+
switch (_c.label) {
|
|
127
145
|
case 0:
|
|
128
|
-
logger.debug("Receive message from queue["
|
|
146
|
+
logger.debug("Receive message from queue[".concat(queueName, "]."));
|
|
129
147
|
return [4 /*yield*/, this.getQueueUrl(queueName)];
|
|
130
148
|
case 1:
|
|
131
|
-
queueUrl =
|
|
132
|
-
return [4 /*yield*/, this.sqs
|
|
133
|
-
.receiveMessage({
|
|
149
|
+
queueUrl = _c.sent();
|
|
150
|
+
return [4 /*yield*/, this.sqs.receiveMessage({
|
|
134
151
|
QueueUrl: queueUrl,
|
|
135
152
|
MaxNumberOfMessages: fetchSize,
|
|
136
153
|
WaitTimeSeconds: waitSeconds,
|
|
137
154
|
VisibilityTimeout: visibilityTimeout,
|
|
138
|
-
})
|
|
139
|
-
.promise()];
|
|
155
|
+
})];
|
|
140
156
|
case 2:
|
|
141
|
-
receiveResult =
|
|
157
|
+
receiveResult = _c.sent();
|
|
142
158
|
logger.stupid("receiveResult", receiveResult);
|
|
143
159
|
if (receiveResult.Messages === undefined ||
|
|
144
160
|
receiveResult.Messages.length === 0) {
|
|
145
161
|
return [2 /*return*/, []];
|
|
146
162
|
}
|
|
147
163
|
data = [];
|
|
148
|
-
for (
|
|
149
|
-
each = _a
|
|
164
|
+
for (_a = 0, _b = receiveResult.Messages; _a < _b.length; _a++) {
|
|
165
|
+
each = _b[_a];
|
|
150
166
|
if (!each.ReceiptHandle) {
|
|
151
|
-
logger.warn("No receipt handler: "
|
|
167
|
+
logger.warn("No receipt handler: ".concat(JSON.stringify(each)));
|
|
152
168
|
continue;
|
|
153
169
|
}
|
|
154
170
|
message = {
|
|
@@ -157,33 +173,37 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
157
173
|
};
|
|
158
174
|
data.push(message);
|
|
159
175
|
}
|
|
160
|
-
logger.verbose("Receive a message["
|
|
176
|
+
logger.verbose("Receive a message[".concat(JSON.stringify(data), "] from queue"));
|
|
161
177
|
return [2 /*return*/, data];
|
|
162
178
|
}
|
|
163
179
|
});
|
|
164
180
|
});
|
|
165
181
|
};
|
|
166
|
-
this.dequeueAll = function (
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
182
|
+
this.dequeueAll = function (queueName_1) {
|
|
183
|
+
var args_1 = [];
|
|
184
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
185
|
+
args_1[_i - 1] = arguments[_i];
|
|
186
|
+
}
|
|
187
|
+
return __awaiter(_this, __spreadArray([queueName_1], args_1, true), void 0, function (queueName, limitSize, visibilityTimeout) {
|
|
188
|
+
var messages, maxFetchSize, eachOfMessages, _a, eachOfMessages_1, each;
|
|
189
|
+
if (limitSize === void 0) { limitSize = Number.MAX_VALUE; }
|
|
190
|
+
if (visibilityTimeout === void 0) { visibilityTimeout = 15; }
|
|
191
|
+
return __generator(this, function (_b) {
|
|
192
|
+
switch (_b.label) {
|
|
173
193
|
case 0:
|
|
174
194
|
messages = [];
|
|
175
195
|
maxFetchSize = 10;
|
|
176
|
-
|
|
196
|
+
_b.label = 1;
|
|
177
197
|
case 1:
|
|
178
198
|
if (!(messages.length < limitSize)) return [3 /*break*/, 3];
|
|
179
199
|
return [4 /*yield*/, this.dequeue(queueName, Math.min(limitSize - messages.length, maxFetchSize), 0, visibilityTimeout)];
|
|
180
200
|
case 2:
|
|
181
|
-
eachOfMessages =
|
|
201
|
+
eachOfMessages = _b.sent();
|
|
182
202
|
if (!eachOfMessages || eachOfMessages.length === 0) {
|
|
183
203
|
return [3 /*break*/, 3];
|
|
184
204
|
}
|
|
185
|
-
for (
|
|
186
|
-
each = eachOfMessages_1[
|
|
205
|
+
for (_a = 0, eachOfMessages_1 = eachOfMessages; _a < eachOfMessages_1.length; _a++) {
|
|
206
|
+
each = eachOfMessages_1[_a];
|
|
187
207
|
messages.push(each);
|
|
188
208
|
}
|
|
189
209
|
return [3 /*break*/, 1];
|
|
@@ -195,32 +215,23 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
195
215
|
});
|
|
196
216
|
};
|
|
197
217
|
this.retainMessage = function (queueName, handle, seconds) { return __awaiter(_this, void 0, void 0, function () {
|
|
198
|
-
var
|
|
218
|
+
var queueUrl;
|
|
199
219
|
return __generator(this, function (_a) {
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
logger.stupid("changeResult", changeResult);
|
|
216
|
-
resolve(handle);
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
})
|
|
220
|
-
.catch(reject);
|
|
221
|
-
return [2 /*return*/];
|
|
222
|
-
});
|
|
223
|
-
}); })];
|
|
220
|
+
switch (_a.label) {
|
|
221
|
+
case 0:
|
|
222
|
+
logger.debug("Change visibilityTimeout of ".concat(handle, " to ").concat(seconds, "secs."));
|
|
223
|
+
return [4 /*yield*/, this.getQueueUrl(queueName)];
|
|
224
|
+
case 1:
|
|
225
|
+
queueUrl = _a.sent();
|
|
226
|
+
return [4 /*yield*/, this.sqs.changeMessageVisibility({
|
|
227
|
+
QueueUrl: queueUrl,
|
|
228
|
+
ReceiptHandle: handle,
|
|
229
|
+
VisibilityTimeout: seconds,
|
|
230
|
+
})];
|
|
231
|
+
case 2:
|
|
232
|
+
_a.sent();
|
|
233
|
+
return [2 /*return*/, handle];
|
|
234
|
+
}
|
|
224
235
|
});
|
|
225
236
|
}); };
|
|
226
237
|
this.completeMessage = function (queueName, handle) { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -228,16 +239,14 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
228
239
|
return __generator(this, function (_a) {
|
|
229
240
|
switch (_a.label) {
|
|
230
241
|
case 0:
|
|
231
|
-
logger.debug("Complete a message with handle["
|
|
242
|
+
logger.debug("Complete a message with handle[".concat(handle, "]"));
|
|
232
243
|
return [4 /*yield*/, this.getQueueUrl(queueName)];
|
|
233
244
|
case 1:
|
|
234
245
|
queueUrl = _a.sent();
|
|
235
|
-
return [4 /*yield*/, this.sqs
|
|
236
|
-
.deleteMessage({
|
|
246
|
+
return [4 /*yield*/, this.sqs.deleteMessage({
|
|
237
247
|
QueueUrl: queueUrl,
|
|
238
248
|
ReceiptHandle: handle,
|
|
239
|
-
})
|
|
240
|
-
.promise()];
|
|
249
|
+
})];
|
|
241
250
|
case 2:
|
|
242
251
|
deleteResult = _a.sent();
|
|
243
252
|
logger.stupid("deleteResult", deleteResult);
|
|
@@ -250,7 +259,7 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
250
259
|
return __generator(this, function (_a) {
|
|
251
260
|
switch (_a.label) {
|
|
252
261
|
case 0:
|
|
253
|
-
logger.debug("Complete a message with handle["
|
|
262
|
+
logger.debug("Complete a message with handle[".concat(handles, "]"));
|
|
254
263
|
if (!handles) {
|
|
255
264
|
return [2 /*return*/, handles];
|
|
256
265
|
}
|
|
@@ -265,15 +274,13 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
265
274
|
return [4 /*yield*/, this.getQueueUrl(queueName)];
|
|
266
275
|
case 2:
|
|
267
276
|
queueUrl = _a.sent();
|
|
268
|
-
return [4 /*yield*/, this.sqs
|
|
269
|
-
.deleteMessageBatch({
|
|
277
|
+
return [4 /*yield*/, this.sqs.deleteMessageBatch({
|
|
270
278
|
QueueUrl: queueUrl,
|
|
271
279
|
Entries: sublist.map(function (handle) { return ({
|
|
272
280
|
Id: (++index).toString(),
|
|
273
281
|
ReceiptHandle: handle,
|
|
274
282
|
}); }),
|
|
275
|
-
})
|
|
276
|
-
.promise()];
|
|
283
|
+
})];
|
|
277
284
|
case 3:
|
|
278
285
|
deletesResult = _a.sent();
|
|
279
286
|
logger.stupid("deleteResult", deletesResult);
|
|
@@ -286,19 +293,22 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
286
293
|
});
|
|
287
294
|
}); };
|
|
288
295
|
this.download = function (bucket, key, localPath) { return __awaiter(_this, void 0, void 0, function () {
|
|
289
|
-
var
|
|
296
|
+
var Body;
|
|
290
297
|
return __generator(this, function (_a) {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
298
|
+
switch (_a.label) {
|
|
299
|
+
case 0:
|
|
300
|
+
logger.debug("Get a stream of item[".concat(key, "] from bucket[").concat(bucket, "]"));
|
|
301
|
+
return [4 /*yield*/, this.s3.getObject({ Bucket: bucket, Key: key })];
|
|
302
|
+
case 1:
|
|
303
|
+
Body = (_a.sent()).Body;
|
|
304
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
305
|
+
return Body
|
|
306
|
+
.on('error', function (error) { return reject(error); })
|
|
307
|
+
.pipe(fs.createWriteStream(localPath))
|
|
308
|
+
.on('finish', function () { return resolve(localPath); })
|
|
309
|
+
.on('error', function (error) { return reject(error); });
|
|
310
|
+
})];
|
|
311
|
+
}
|
|
302
312
|
});
|
|
303
313
|
}); };
|
|
304
314
|
this.readFile = function (bucket, key) { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -306,8 +316,8 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
306
316
|
return __generator(this, function (_a) {
|
|
307
317
|
switch (_a.label) {
|
|
308
318
|
case 0:
|
|
309
|
-
logger.debug("Read item["
|
|
310
|
-
tempFile = os.tmpdir()
|
|
319
|
+
logger.debug("Read item[".concat(key, "] from bucket[").concat(bucket, "]"));
|
|
320
|
+
tempFile = "".concat(os.tmpdir(), "/").concat((0, non_secure_1.nanoid)());
|
|
311
321
|
_a.label = 1;
|
|
312
322
|
case 1:
|
|
313
323
|
_a.trys.push([1, , 4, 9]);
|
|
@@ -331,7 +341,7 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
331
341
|
return [3 /*break*/, 8];
|
|
332
342
|
case 7:
|
|
333
343
|
error_1 = _a.sent();
|
|
334
|
-
logger.error("Failed to delete temp file "
|
|
344
|
+
logger.error("Failed to delete temp file ".concat(tempFile, ": ").concat((0, utils_1.stringifyError)(error_1)));
|
|
335
345
|
return [3 /*break*/, 8];
|
|
336
346
|
case 8: return [7 /*endfinally*/];
|
|
337
347
|
case 9: return [2 /*return*/];
|
|
@@ -339,111 +349,112 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
339
349
|
});
|
|
340
350
|
}); };
|
|
341
351
|
this.readFileBuffer = function (bucket, key) { return __awaiter(_this, void 0, void 0, function () {
|
|
342
|
-
var
|
|
352
|
+
var Body, buffer;
|
|
343
353
|
return __generator(this, function (_a) {
|
|
344
354
|
switch (_a.label) {
|
|
345
355
|
case 0:
|
|
346
|
-
logger.debug("Read item["
|
|
347
|
-
|
|
348
|
-
Bucket: bucket,
|
|
349
|
-
Key: key,
|
|
350
|
-
};
|
|
351
|
-
return [4 /*yield*/, this.s3.getObject(params).promise()];
|
|
356
|
+
logger.debug("Read item[".concat(key, "] from bucket[").concat(bucket, "]"));
|
|
357
|
+
return [4 /*yield*/, this.s3.getObject({ Bucket: bucket, Key: key })];
|
|
352
358
|
case 1:
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
throw new Error("Failed to read file "
|
|
359
|
+
Body = (_a.sent()).Body;
|
|
360
|
+
return [4 /*yield*/, (Body === null || Body === void 0 ? void 0 : Body.transformToByteArray())];
|
|
361
|
+
case 2:
|
|
362
|
+
buffer = _a.sent();
|
|
363
|
+
if (!buffer) {
|
|
364
|
+
throw new Error("Failed to read file ".concat(key, " from bucket ").concat(bucket));
|
|
359
365
|
}
|
|
360
|
-
return [2 /*return
|
|
366
|
+
return [2 /*return*/, Buffer.from(buffer)];
|
|
361
367
|
}
|
|
362
368
|
});
|
|
363
369
|
}); };
|
|
364
|
-
this.upload = function (bucket, localPath, key) { return __awaiter(_this, void 0, void 0, function () {
|
|
365
|
-
var
|
|
370
|
+
this.upload = function (bucket, localPath, key, tags) { return __awaiter(_this, void 0, void 0, function () {
|
|
371
|
+
var upload;
|
|
366
372
|
return __generator(this, function (_a) {
|
|
367
373
|
switch (_a.label) {
|
|
368
374
|
case 0:
|
|
369
|
-
logger.debug("Upload item["
|
|
370
|
-
|
|
371
|
-
|
|
375
|
+
logger.debug("Upload item[".concat(key, "] into bucket[").concat(bucket, "]"));
|
|
376
|
+
upload = new lib_storage_1.Upload({
|
|
377
|
+
client: this.s3,
|
|
378
|
+
params: {
|
|
372
379
|
Bucket: bucket,
|
|
373
380
|
Key: key,
|
|
374
381
|
Body: fs.createReadStream(localPath),
|
|
375
|
-
}
|
|
376
|
-
|
|
382
|
+
},
|
|
383
|
+
partSize: 5 * 1024 * 1024, // 5MB
|
|
384
|
+
queueSize: 4,
|
|
385
|
+
tags: __spreadArray([SimpleAWS.stageTag], (tags || []), true),
|
|
386
|
+
});
|
|
387
|
+
return [4 /*yield*/, upload.done()];
|
|
377
388
|
case 1:
|
|
378
|
-
|
|
379
|
-
logger.stupid("putResult", putResult);
|
|
389
|
+
_a.sent();
|
|
380
390
|
return [2 /*return*/, key];
|
|
381
391
|
}
|
|
382
392
|
});
|
|
383
393
|
}); };
|
|
384
|
-
this.uploadFromBuffer = function (bucket, key, buffer) { return __awaiter(_this, void 0, void 0, function () {
|
|
385
|
-
var
|
|
394
|
+
this.uploadFromBuffer = function (bucket, key, buffer, tags) { return __awaiter(_this, void 0, void 0, function () {
|
|
395
|
+
var upload;
|
|
386
396
|
return __generator(this, function (_a) {
|
|
387
397
|
switch (_a.label) {
|
|
388
398
|
case 0:
|
|
389
|
-
logger.debug("Upload item["
|
|
390
|
-
|
|
391
|
-
|
|
399
|
+
logger.debug("Upload item[".concat(key, "] into bucket[").concat(bucket, "]"));
|
|
400
|
+
upload = new lib_storage_1.Upload({
|
|
401
|
+
client: this.s3,
|
|
402
|
+
params: {
|
|
392
403
|
Bucket: bucket,
|
|
393
404
|
Key: key,
|
|
394
405
|
Body: buffer,
|
|
395
|
-
}
|
|
396
|
-
|
|
406
|
+
},
|
|
407
|
+
partSize: 5 * 1024 * 1024, // 5MB
|
|
408
|
+
queueSize: 4,
|
|
409
|
+
tags: __spreadArray([SimpleAWS.stageTag], (tags || []), true),
|
|
410
|
+
});
|
|
411
|
+
return [4 /*yield*/, upload.done()];
|
|
397
412
|
case 1:
|
|
398
|
-
|
|
399
|
-
logger.stupid("putResult", putResult);
|
|
413
|
+
_a.sent();
|
|
400
414
|
return [2 /*return*/, key];
|
|
401
415
|
}
|
|
402
416
|
});
|
|
403
417
|
}); };
|
|
404
418
|
this.writeFile = function (bucket, key, content) { return __awaiter(_this, void 0, void 0, function () {
|
|
405
|
-
var tempFile;
|
|
419
|
+
var tempFile, error_2, msg;
|
|
406
420
|
return __generator(this, function (_a) {
|
|
407
421
|
switch (_a.label) {
|
|
408
422
|
case 0:
|
|
409
|
-
logger.debug("Write item["
|
|
410
|
-
tempFile = os.tmpdir()
|
|
423
|
+
logger.debug("Write item[".concat(key, "] into bucket[").concat(bucket, "]"));
|
|
424
|
+
tempFile = "".concat(os.tmpdir(), "/").concat((0, non_secure_1.nanoid)());
|
|
411
425
|
_a.label = 1;
|
|
412
426
|
case 1:
|
|
413
|
-
_a.trys.push([1, , 4,
|
|
427
|
+
_a.trys.push([1, , 4, 9]);
|
|
414
428
|
return [4 /*yield*/, fs.promises.writeFile(tempFile, content, 'utf-8')];
|
|
415
429
|
case 2:
|
|
416
430
|
_a.sent();
|
|
417
431
|
return [4 /*yield*/, this.upload(bucket, tempFile, key)];
|
|
418
432
|
case 3:
|
|
419
433
|
_a.sent();
|
|
420
|
-
return [3 /*break*/,
|
|
434
|
+
return [3 /*break*/, 9];
|
|
421
435
|
case 4:
|
|
422
436
|
if (!fs.existsSync(tempFile)) {
|
|
423
437
|
return [2 /*return*/];
|
|
424
438
|
}
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
439
|
+
_a.label = 5;
|
|
440
|
+
case 5:
|
|
441
|
+
_a.trys.push([5, 7, , 8]);
|
|
442
|
+
return [4 /*yield*/, fs.promises.unlink(tempFile)];
|
|
443
|
+
case 6:
|
|
444
|
+
_a.sent();
|
|
445
|
+
return [3 /*break*/, 8];
|
|
446
|
+
case 7:
|
|
447
|
+
error_2 = _a.sent();
|
|
448
|
+
msg = "Error during writeFile: unlink file ".concat(tempFile, ": ").concat((0, utils_1.stringifyError)(error_2));
|
|
449
|
+
logger.error(msg);
|
|
450
|
+
return [3 /*break*/, 8];
|
|
451
|
+
case 8: return [7 /*endfinally*/];
|
|
452
|
+
case 9: return [2 /*return*/];
|
|
434
453
|
}
|
|
435
454
|
});
|
|
436
455
|
}); };
|
|
437
|
-
this.getSignedUrl = function (bucketName, key, operation, params) {
|
|
438
|
-
if (operation === void 0) { operation = 'getObject'; }
|
|
439
|
-
return {
|
|
440
|
-
key: key,
|
|
441
|
-
url: _this.s3.getSignedUrl(operation, __assign({ Bucket: bucketName, Key: key, Expires: 60 * 10 }, (params || {}))),
|
|
442
|
-
};
|
|
443
|
-
};
|
|
444
456
|
this.getSignedCookie = function (keyPairId, privateKey, url, expires) {
|
|
445
|
-
var
|
|
446
|
-
var policy = {
|
|
457
|
+
var policy = JSON.stringify({
|
|
447
458
|
Statement: [
|
|
448
459
|
{
|
|
449
460
|
Resource: url,
|
|
@@ -452,25 +463,23 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
452
463
|
},
|
|
453
464
|
},
|
|
454
465
|
],
|
|
455
|
-
};
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
466
|
+
});
|
|
467
|
+
return (0, cloudfront_signer_1.getSignedCookies)({
|
|
468
|
+
keyPairId: keyPairId,
|
|
469
|
+
privateKey: privateKey,
|
|
470
|
+
policy: policy,
|
|
471
|
+
});
|
|
461
472
|
};
|
|
462
473
|
this.getDynamoDbItem = function (tableName, key, defaultValue) { return __awaiter(_this, void 0, void 0, function () {
|
|
463
474
|
var getResult, item;
|
|
464
475
|
return __generator(this, function (_a) {
|
|
465
476
|
switch (_a.label) {
|
|
466
477
|
case 0:
|
|
467
|
-
logger.debug("Read an item with key["
|
|
468
|
-
return [4 /*yield*/, this.dynamodb
|
|
469
|
-
.get({
|
|
478
|
+
logger.debug("Read an item with key[".concat(JSON.stringify(key), "] from ").concat(tableName, "."));
|
|
479
|
+
return [4 /*yield*/, this.dynamodb.get({
|
|
470
480
|
TableName: tableName,
|
|
471
481
|
Key: key,
|
|
472
|
-
})
|
|
473
|
-
.promise()];
|
|
482
|
+
})];
|
|
474
483
|
case 1:
|
|
475
484
|
getResult = _a.sent();
|
|
476
485
|
logger.stupid("getResult", getResult);
|
|
@@ -487,27 +496,25 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
487
496
|
return __generator(this, function (_a) {
|
|
488
497
|
switch (_a.label) {
|
|
489
498
|
case 0:
|
|
490
|
-
logger.debug("Update an item with key["
|
|
499
|
+
logger.debug("Update an item with key[".concat(JSON.stringify(key), "] to ").concat(tableName));
|
|
491
500
|
logger.stupid("keyValues", columnValues);
|
|
492
501
|
expressions = Object.keys(columnValues)
|
|
493
|
-
.map(function (column) { return column
|
|
502
|
+
.map(function (column) { return "".concat(column, " = :").concat(column); })
|
|
494
503
|
.join(', ');
|
|
495
504
|
attributeValues = Object.keys(columnValues)
|
|
496
|
-
.map(function (column) { return [":"
|
|
505
|
+
.map(function (column) { return [":".concat(column), columnValues[column]]; })
|
|
497
506
|
.reduce(function (obj, pair) {
|
|
498
507
|
var _a;
|
|
499
|
-
return (__assign({}, obj, (_a = {}, _a[pair[0]] = pair[1], _a)));
|
|
508
|
+
return (__assign(__assign({}, obj), (_a = {}, _a[pair[0]] = pair[1], _a)));
|
|
500
509
|
}, {});
|
|
501
510
|
logger.stupid("expressions", expressions);
|
|
502
511
|
logger.stupid("attributeValues", attributeValues);
|
|
503
|
-
return [4 /*yield*/, this.dynamodb
|
|
504
|
-
.update({
|
|
512
|
+
return [4 /*yield*/, this.dynamodb.update({
|
|
505
513
|
TableName: tableName,
|
|
506
514
|
Key: key,
|
|
507
|
-
UpdateExpression: "set "
|
|
515
|
+
UpdateExpression: "set ".concat(expressions),
|
|
508
516
|
ExpressionAttributeValues: attributeValues,
|
|
509
|
-
})
|
|
510
|
-
.promise()];
|
|
517
|
+
})];
|
|
511
518
|
case 1:
|
|
512
519
|
updateResult = _a.sent();
|
|
513
520
|
logger.stupid("updateResult", updateResult);
|
|
@@ -517,39 +524,35 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
517
524
|
}); };
|
|
518
525
|
// Setup
|
|
519
526
|
this.setupQueue = function (queueName) { return __awaiter(_this, void 0, void 0, function () {
|
|
520
|
-
var listResult, _i, _a, queueUrl,
|
|
527
|
+
var listResult, _i, _a, queueUrl, error_3, createResult;
|
|
521
528
|
return __generator(this, function (_b) {
|
|
522
529
|
switch (_b.label) {
|
|
523
530
|
case 0:
|
|
524
531
|
_b.trys.push([0, 2, , 3]);
|
|
525
|
-
return [4 /*yield*/, this.sqs
|
|
526
|
-
.listQueues({
|
|
532
|
+
return [4 /*yield*/, this.sqs.listQueues({
|
|
527
533
|
QueueNamePrefix: queueName,
|
|
528
|
-
})
|
|
529
|
-
.promise()];
|
|
534
|
+
})];
|
|
530
535
|
case 1:
|
|
531
536
|
listResult = _b.sent();
|
|
532
537
|
if (listResult.QueueUrls) {
|
|
533
538
|
for (_i = 0, _a = listResult.QueueUrls; _i < _a.length; _i++) {
|
|
534
539
|
queueUrl = _a[_i];
|
|
535
540
|
if (queueUrl.endsWith(queueName)) {
|
|
536
|
-
logger.debug("Queue["
|
|
541
|
+
logger.debug("Queue[".concat(queueName, " => ").concat(queueUrl, "] already exists."));
|
|
537
542
|
return [2 /*return*/, true];
|
|
538
543
|
}
|
|
539
544
|
}
|
|
540
545
|
}
|
|
541
546
|
return [3 /*break*/, 3];
|
|
542
547
|
case 2:
|
|
543
|
-
|
|
544
|
-
logger.debug("No Queue["
|
|
548
|
+
error_3 = _b.sent();
|
|
549
|
+
logger.debug("No Queue[".concat(queueName, "] exists due to ").concat(error_3));
|
|
545
550
|
return [3 /*break*/, 3];
|
|
546
551
|
case 3:
|
|
547
|
-
logger.debug("Create a queue["
|
|
548
|
-
return [4 /*yield*/, this.sqs
|
|
549
|
-
.createQueue({
|
|
552
|
+
logger.debug("Create a queue[".concat(queueName, "] newly."));
|
|
553
|
+
return [4 /*yield*/, this.sqs.createQueue({
|
|
550
554
|
QueueName: queueName,
|
|
551
|
-
})
|
|
552
|
-
.promise()];
|
|
555
|
+
})];
|
|
553
556
|
case 4:
|
|
554
557
|
createResult = _b.sent();
|
|
555
558
|
logger.stupid("createResult", createResult);
|
|
@@ -558,37 +561,34 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
558
561
|
});
|
|
559
562
|
}); };
|
|
560
563
|
this.setupStorage = function (bucketName, cors) { return __awaiter(_this, void 0, void 0, function () {
|
|
561
|
-
var listResult,
|
|
564
|
+
var listResult, error_4, createResult, corsResult;
|
|
562
565
|
return __generator(this, function (_a) {
|
|
563
566
|
switch (_a.label) {
|
|
564
567
|
case 0:
|
|
565
568
|
_a.trys.push([0, 2, , 3]);
|
|
566
|
-
return [4 /*yield*/, this.s3.listBuckets()
|
|
569
|
+
return [4 /*yield*/, this.s3.listBuckets()];
|
|
567
570
|
case 1:
|
|
568
571
|
listResult = _a.sent();
|
|
569
572
|
if (listResult.Buckets &&
|
|
570
573
|
listResult.Buckets.map(function (each) { return each.Name; }).includes(bucketName)) {
|
|
571
|
-
logger.debug("Bucket["
|
|
574
|
+
logger.debug("Bucket[".concat(bucketName, "] already exists."));
|
|
572
575
|
return [2 /*return*/, true];
|
|
573
576
|
}
|
|
574
577
|
return [3 /*break*/, 3];
|
|
575
578
|
case 2:
|
|
576
|
-
|
|
577
|
-
logger.debug("No bucket["
|
|
579
|
+
error_4 = _a.sent();
|
|
580
|
+
logger.debug("No bucket[".concat(bucketName, "] exists due to ").concat(error_4));
|
|
578
581
|
return [3 /*break*/, 3];
|
|
579
582
|
case 3:
|
|
580
|
-
logger.debug("Create a bucket["
|
|
581
|
-
return [4 /*yield*/, this.s3
|
|
582
|
-
.createBucket({
|
|
583
|
+
logger.debug("Create a bucket[".concat(bucketName, "] newly."));
|
|
584
|
+
return [4 /*yield*/, this.s3.createBucket({
|
|
583
585
|
Bucket: bucketName,
|
|
584
|
-
})
|
|
585
|
-
.promise()];
|
|
586
|
+
})];
|
|
586
587
|
case 4:
|
|
587
588
|
createResult = _a.sent();
|
|
588
589
|
logger.stupid("createResult", createResult);
|
|
589
590
|
if (!cors) return [3 /*break*/, 6];
|
|
590
|
-
return [4 /*yield*/, this.s3
|
|
591
|
-
.putBucketCors({
|
|
591
|
+
return [4 /*yield*/, this.s3.putBucketCors({
|
|
592
592
|
Bucket: bucketName,
|
|
593
593
|
CORSConfiguration: {
|
|
594
594
|
CORSRules: [
|
|
@@ -599,8 +599,7 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
599
599
|
},
|
|
600
600
|
],
|
|
601
601
|
},
|
|
602
|
-
})
|
|
603
|
-
.promise()];
|
|
602
|
+
})];
|
|
604
603
|
case 5:
|
|
605
604
|
corsResult = _a.sent();
|
|
606
605
|
logger.stupid("corsResult", corsResult);
|
|
@@ -610,38 +609,34 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
610
609
|
});
|
|
611
610
|
}); };
|
|
612
611
|
this.setupDynamoDb = function (tableName, keyColumn) { return __awaiter(_this, void 0, void 0, function () {
|
|
613
|
-
var listResult,
|
|
612
|
+
var listResult, error_5, createResult;
|
|
614
613
|
return __generator(this, function (_a) {
|
|
615
614
|
switch (_a.label) {
|
|
616
615
|
case 0:
|
|
617
616
|
_a.trys.push([0, 2, , 3]);
|
|
618
|
-
return [4 /*yield*/, this.dynamodbAdmin.listTables()
|
|
617
|
+
return [4 /*yield*/, this.dynamodbAdmin.listTables()];
|
|
619
618
|
case 1:
|
|
620
619
|
listResult = _a.sent();
|
|
621
620
|
if (listResult.TableNames && listResult.TableNames.includes(tableName)) {
|
|
622
|
-
logger.debug("Table["
|
|
621
|
+
logger.debug("Table[".concat(tableName, "] already exists."));
|
|
623
622
|
return [2 /*return*/, true];
|
|
624
623
|
}
|
|
625
624
|
return [3 /*break*/, 3];
|
|
626
625
|
case 2:
|
|
627
|
-
|
|
628
|
-
logger.debug("No table["
|
|
626
|
+
error_5 = _a.sent();
|
|
627
|
+
logger.debug("No table[".concat(tableName, "] exists due to ").concat(error_5));
|
|
629
628
|
return [3 /*break*/, 3];
|
|
630
629
|
case 3:
|
|
631
|
-
logger.debug("Create a table["
|
|
632
|
-
return [4 /*yield*/, this.dynamodbAdmin
|
|
633
|
-
.createTable({
|
|
630
|
+
logger.debug("Create a table[".concat(tableName, "] newly."));
|
|
631
|
+
return [4 /*yield*/, this.dynamodbAdmin.createTable({
|
|
634
632
|
TableName: tableName,
|
|
635
633
|
KeySchema: [{ AttributeName: keyColumn, KeyType: 'HASH' }],
|
|
636
|
-
AttributeDefinitions: [
|
|
637
|
-
{ AttributeName: keyColumn, AttributeType: 'S' },
|
|
638
|
-
],
|
|
634
|
+
AttributeDefinitions: [{ AttributeName: keyColumn, AttributeType: 'S' }],
|
|
639
635
|
ProvisionedThroughput: {
|
|
640
636
|
ReadCapacityUnits: 30,
|
|
641
637
|
WriteCapacityUnits: 10,
|
|
642
638
|
},
|
|
643
|
-
})
|
|
644
|
-
.promise()];
|
|
639
|
+
})];
|
|
645
640
|
case 4:
|
|
646
641
|
createResult = _a.sent();
|
|
647
642
|
logger.stupid("createResult", createResult);
|
|
@@ -660,43 +655,155 @@ var SimpleAWS = /** @class */ (function () {
|
|
|
660
655
|
Object.defineProperty(SimpleAWS.prototype, "s3", {
|
|
661
656
|
get: function () {
|
|
662
657
|
if (this.lazyS3 === undefined) {
|
|
663
|
-
this.lazyS3 = new
|
|
658
|
+
this.lazyS3 = new client_s3_1.S3(this.config.get(define_1.AWSComponent.s3) || {});
|
|
664
659
|
}
|
|
665
660
|
return this.lazyS3;
|
|
666
661
|
},
|
|
667
|
-
enumerable:
|
|
662
|
+
enumerable: false,
|
|
668
663
|
configurable: true
|
|
669
664
|
});
|
|
670
665
|
Object.defineProperty(SimpleAWS.prototype, "sqs", {
|
|
671
666
|
get: function () {
|
|
672
667
|
if (this.lazySqs === undefined) {
|
|
673
|
-
this.lazySqs = new
|
|
668
|
+
this.lazySqs = new client_sqs_1.SQS(this.config.get(define_1.AWSComponent.sqs) || {});
|
|
674
669
|
}
|
|
675
670
|
return this.lazySqs;
|
|
676
671
|
},
|
|
677
|
-
enumerable:
|
|
672
|
+
enumerable: false,
|
|
678
673
|
configurable: true
|
|
679
674
|
});
|
|
680
675
|
Object.defineProperty(SimpleAWS.prototype, "dynamodb", {
|
|
681
676
|
get: function () {
|
|
682
677
|
if (this.lazyDynamodb === undefined) {
|
|
683
|
-
this.lazyDynamodb = new
|
|
678
|
+
this.lazyDynamodb = lib_dynamodb_1.DynamoDBDocument.from(new client_dynamodb_1.DynamoDBClient(this.config.get(define_1.AWSComponent.dynamodb) || {}), {
|
|
679
|
+
marshallOptions: {
|
|
680
|
+
convertEmptyValues: true,
|
|
681
|
+
removeUndefinedValues: true,
|
|
682
|
+
},
|
|
683
|
+
});
|
|
684
684
|
}
|
|
685
685
|
return this.lazyDynamodb;
|
|
686
686
|
},
|
|
687
|
-
enumerable:
|
|
687
|
+
enumerable: false,
|
|
688
688
|
configurable: true
|
|
689
689
|
});
|
|
690
690
|
Object.defineProperty(SimpleAWS.prototype, "dynamodbAdmin", {
|
|
691
691
|
get: function () {
|
|
692
692
|
if (this.lazyDynamodbAdmin === undefined) {
|
|
693
|
-
this.lazyDynamodbAdmin = new
|
|
693
|
+
this.lazyDynamodbAdmin = new client_dynamodb_1.DynamoDB(this.config.get(define_1.AWSComponent.dynamodb) || {});
|
|
694
694
|
}
|
|
695
695
|
return this.lazyDynamodbAdmin;
|
|
696
696
|
},
|
|
697
|
-
enumerable:
|
|
697
|
+
enumerable: false,
|
|
698
698
|
configurable: true
|
|
699
699
|
});
|
|
700
|
+
SimpleAWS.prototype.getSignedUrl = function (options) {
|
|
701
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
702
|
+
var _a, expiresIn, unhoistableHeaders, tagging, cmd, cmd, cmd, cmd, cmd, cmd, cmd, cmd, tagging, cmd, cmd, cmd, cmd;
|
|
703
|
+
var _b, _c;
|
|
704
|
+
return __generator(this, function (_d) {
|
|
705
|
+
_a = options.expiresIn, expiresIn = _a === void 0 ? 600 : _a, unhoistableHeaders = options.unhoistableHeaders;
|
|
706
|
+
switch (options.operation) {
|
|
707
|
+
case 'putObject': {
|
|
708
|
+
tagging = ((_b = options.params) === null || _b === void 0 ? void 0 : _b.Tagging)
|
|
709
|
+
? SimpleAWS.stringifiedStageTag + '&' + options.params.Tagging
|
|
710
|
+
: SimpleAWS.stringifiedStageTag;
|
|
711
|
+
cmd = new client_s3_1.PutObjectCommand(__assign(__assign({ Bucket: options.bucket, Key: options.key }, options.params), { Tagging: tagging }));
|
|
712
|
+
return [2 /*return*/, (0, s3_request_presigner_1.getSignedUrl)(this.s3, cmd, {
|
|
713
|
+
expiresIn: expiresIn,
|
|
714
|
+
unhoistableHeaders: unhoistableHeaders,
|
|
715
|
+
})];
|
|
716
|
+
}
|
|
717
|
+
case 'getObject': {
|
|
718
|
+
cmd = new client_s3_1.GetObjectCommand(__assign({ Bucket: options.bucket, Key: options.key }, options.params));
|
|
719
|
+
return [2 /*return*/, (0, s3_request_presigner_1.getSignedUrl)(this.s3, cmd, {
|
|
720
|
+
expiresIn: expiresIn,
|
|
721
|
+
unhoistableHeaders: unhoistableHeaders,
|
|
722
|
+
})];
|
|
723
|
+
}
|
|
724
|
+
case 'deleteObject': {
|
|
725
|
+
cmd = new client_s3_1.DeleteObjectCommand(__assign({ Bucket: options.bucket, Key: options.key }, options.params));
|
|
726
|
+
return [2 /*return*/, (0, s3_request_presigner_1.getSignedUrl)(this.s3, cmd, {
|
|
727
|
+
expiresIn: expiresIn,
|
|
728
|
+
unhoistableHeaders: unhoistableHeaders,
|
|
729
|
+
})];
|
|
730
|
+
}
|
|
731
|
+
case 'headObject': {
|
|
732
|
+
cmd = new client_s3_1.HeadObjectCommand(__assign({ Bucket: options.bucket, Key: options.key }, options.params));
|
|
733
|
+
return [2 /*return*/, (0, s3_request_presigner_1.getSignedUrl)(this.s3, cmd, {
|
|
734
|
+
expiresIn: expiresIn,
|
|
735
|
+
unhoistableHeaders: unhoistableHeaders,
|
|
736
|
+
})];
|
|
737
|
+
}
|
|
738
|
+
case 'copyObject': {
|
|
739
|
+
cmd = new client_s3_1.CopyObjectCommand(__assign({ Bucket: options.bucket, Key: options.key }, options.params));
|
|
740
|
+
return [2 /*return*/, (0, s3_request_presigner_1.getSignedUrl)(this.s3, cmd, {
|
|
741
|
+
expiresIn: expiresIn,
|
|
742
|
+
unhoistableHeaders: unhoistableHeaders,
|
|
743
|
+
})];
|
|
744
|
+
}
|
|
745
|
+
case 'uploadPart': {
|
|
746
|
+
cmd = new client_s3_1.UploadPartCommand(__assign({ Bucket: options.bucket, Key: options.key }, options.params));
|
|
747
|
+
return [2 /*return*/, (0, s3_request_presigner_1.getSignedUrl)(this.s3, cmd, {
|
|
748
|
+
expiresIn: expiresIn,
|
|
749
|
+
unhoistableHeaders: unhoistableHeaders,
|
|
750
|
+
})];
|
|
751
|
+
}
|
|
752
|
+
case 'uploadPartCopy': {
|
|
753
|
+
cmd = new client_s3_1.UploadPartCopyCommand(__assign({ Bucket: options.bucket, Key: options.key }, options.params));
|
|
754
|
+
return [2 /*return*/, (0, s3_request_presigner_1.getSignedUrl)(this.s3, cmd, {
|
|
755
|
+
expiresIn: expiresIn,
|
|
756
|
+
unhoistableHeaders: unhoistableHeaders,
|
|
757
|
+
})];
|
|
758
|
+
}
|
|
759
|
+
case 'listObjectsV2': {
|
|
760
|
+
cmd = new client_s3_1.ListObjectsV2Command(__assign({ Bucket: options.bucket }, options.params));
|
|
761
|
+
return [2 /*return*/, (0, s3_request_presigner_1.getSignedUrl)(this.s3, cmd, {
|
|
762
|
+
expiresIn: expiresIn,
|
|
763
|
+
unhoistableHeaders: unhoistableHeaders,
|
|
764
|
+
})];
|
|
765
|
+
}
|
|
766
|
+
case 'createMultipartUpload': {
|
|
767
|
+
tagging = ((_c = options.params) === null || _c === void 0 ? void 0 : _c.Tagging)
|
|
768
|
+
? SimpleAWS.stringifiedStageTag + '&' + options.params.Tagging
|
|
769
|
+
: SimpleAWS.stringifiedStageTag;
|
|
770
|
+
cmd = new client_s3_1.CreateMultipartUploadCommand(__assign(__assign({ Bucket: options.bucket, Key: options.key }, options.params), { Tagging: tagging }));
|
|
771
|
+
return [2 /*return*/, (0, s3_request_presigner_1.getSignedUrl)(this.s3, cmd, {
|
|
772
|
+
expiresIn: expiresIn,
|
|
773
|
+
unhoistableHeaders: unhoistableHeaders,
|
|
774
|
+
})];
|
|
775
|
+
}
|
|
776
|
+
case 'completeMultipartUpload': {
|
|
777
|
+
cmd = new client_s3_1.CompleteMultipartUploadCommand(__assign({ Bucket: options.bucket, Key: options.key }, options.params));
|
|
778
|
+
return [2 /*return*/, (0, s3_request_presigner_1.getSignedUrl)(this.s3, cmd, {
|
|
779
|
+
expiresIn: expiresIn,
|
|
780
|
+
unhoistableHeaders: unhoistableHeaders,
|
|
781
|
+
})];
|
|
782
|
+
}
|
|
783
|
+
case 'abortMultipartUpload': {
|
|
784
|
+
cmd = new client_s3_1.AbortMultipartUploadCommand(__assign({ Bucket: options.bucket, Key: options.key }, options.params));
|
|
785
|
+
return [2 /*return*/, (0, s3_request_presigner_1.getSignedUrl)(this.s3, cmd, {
|
|
786
|
+
expiresIn: expiresIn,
|
|
787
|
+
unhoistableHeaders: unhoistableHeaders,
|
|
788
|
+
})];
|
|
789
|
+
}
|
|
790
|
+
case 'listParts': {
|
|
791
|
+
cmd = new client_s3_1.ListPartsCommand(__assign({ Bucket: options.bucket, Key: options.key }, options.params));
|
|
792
|
+
return [2 /*return*/, (0, s3_request_presigner_1.getSignedUrl)(this.s3, cmd, {
|
|
793
|
+
expiresIn: expiresIn,
|
|
794
|
+
unhoistableHeaders: unhoistableHeaders,
|
|
795
|
+
})];
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
return [2 /*return*/];
|
|
799
|
+
});
|
|
800
|
+
});
|
|
801
|
+
};
|
|
802
|
+
SimpleAWS.stageTag = {
|
|
803
|
+
Key: 'STAGE',
|
|
804
|
+
Value: simple_staging_1.envDefault.level,
|
|
805
|
+
};
|
|
806
|
+
SimpleAWS.stringifiedStageTag = "STAGE=".concat(simple_staging_1.envDefault.level);
|
|
700
807
|
return SimpleAWS;
|
|
701
808
|
}());
|
|
702
809
|
exports.SimpleAWS = SimpleAWS;
|