@aspan-corporation/ac-shared 1.0.21 → 1.0.23
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/lib/index.d.ts +1 -1
- package/lib/index.js +132 -140
- package/lib/index.js.map +4 -4
- package/lib/services/dynamoDB.d.ts +1 -1
- package/lib/services/location.d.ts +1 -1
- package/lib/services/s3.d.ts +1 -1
- package/lib/services/sqs.d.ts +1 -1
- package/lib/services/ssm.d.ts +1 -1
- package/lib/services/sts.d.ts +1 -1
- package/lib/utils/helpers.d.ts +21 -0
- package/lib/utils/index.d.ts +1 -0
- package/package.json +1 -1
- /package/lib/{services → utils}/types.d.ts +0 -0
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -8,7 +8,89 @@ import {
|
|
|
8
8
|
} from "@aws-sdk/client-s3";
|
|
9
9
|
import { Upload } from "@aws-sdk/lib-storage";
|
|
10
10
|
import { PassThrough } from "node:stream";
|
|
11
|
+
import assert2 from "node:assert/strict";
|
|
12
|
+
|
|
13
|
+
// src/utils/assertUtils.ts
|
|
11
14
|
import assert from "node:assert/strict";
|
|
15
|
+
var assertEnvVar = (envVar) => {
|
|
16
|
+
assert(process.env[envVar], `${envVar} is not set`);
|
|
17
|
+
return process.env[envVar];
|
|
18
|
+
};
|
|
19
|
+
var assertString = (value) => {
|
|
20
|
+
assert(typeof value === "string", "Value is not a string");
|
|
21
|
+
assert(value.length > 0, "Value is empty");
|
|
22
|
+
return value;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// src/utils/logger.ts
|
|
26
|
+
import { Logger } from "@aws-lambda-powertools/logger";
|
|
27
|
+
var rootLogger = new Logger({
|
|
28
|
+
serviceName: process.env.POWERTOOLS_SERVICE_NAME ?? process.env.AWS_LAMBDA_FUNCTION_NAME ?? "ac-shared"
|
|
29
|
+
});
|
|
30
|
+
var getLoggerWithScope = (scope, logger = rootLogger) => {
|
|
31
|
+
const childLogger = logger.createChild();
|
|
32
|
+
childLogger.appendKeys({ scope });
|
|
33
|
+
return childLogger;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// src/utils/normalizeErrorMessage.ts
|
|
37
|
+
var normalizeErrorMessage = (error) => {
|
|
38
|
+
if (error instanceof Error) {
|
|
39
|
+
return error.message;
|
|
40
|
+
} else if (typeof error === "string") {
|
|
41
|
+
return error;
|
|
42
|
+
} else if (typeof error === "object" && error !== null) {
|
|
43
|
+
return JSON.stringify(error);
|
|
44
|
+
} else {
|
|
45
|
+
return String(error);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// src/utils/thumbsKey.ts
|
|
50
|
+
import { extname } from "node:path";
|
|
51
|
+
var JPEG_EXTENSION = "jpeg";
|
|
52
|
+
var JPG_EXTENSION = "jpg";
|
|
53
|
+
var HEIC_EXTENSION = "heic";
|
|
54
|
+
var DEFAULT_THUMBS_EXTENSION = JPG_EXTENSION;
|
|
55
|
+
var ALLOWED_EXTENSIONS = [
|
|
56
|
+
JPEG_EXTENSION,
|
|
57
|
+
JPG_EXTENSION,
|
|
58
|
+
HEIC_EXTENSION
|
|
59
|
+
];
|
|
60
|
+
var THUMBNAIL_RESOLUTIONS = [
|
|
61
|
+
[200, 200],
|
|
62
|
+
[1180, 820]
|
|
63
|
+
];
|
|
64
|
+
var getThumbsKey = ({
|
|
65
|
+
key,
|
|
66
|
+
prefix,
|
|
67
|
+
width,
|
|
68
|
+
height
|
|
69
|
+
}) => {
|
|
70
|
+
const ext = getKeyExtension(key);
|
|
71
|
+
const destinationKey = [JPEG_EXTENSION, JPG_EXTENSION].includes(ext) ? key : `${key.split(".").slice(0, -1).join(".")}.${DEFAULT_THUMBS_EXTENSION}`;
|
|
72
|
+
return `${prefix}/${width}x${height}/${destinationKey}`;
|
|
73
|
+
};
|
|
74
|
+
var getKeyExtension = (key) => extname(key).slice(1).toLowerCase();
|
|
75
|
+
var isAllowedExtension = (key) => {
|
|
76
|
+
const ext = getKeyExtension(key);
|
|
77
|
+
return ALLOWED_EXTENSIONS.includes(ext);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
// src/utils/helpers.ts
|
|
81
|
+
var getObjectWithAssumeRoleCommandOutputAttribute = (assumeRoleCommandOutput) => assumeRoleCommandOutput ? {
|
|
82
|
+
credentials: {
|
|
83
|
+
accessKeyId: assumeRoleCommandOutput?.Credentials?.AccessKeyId,
|
|
84
|
+
secretAccessKey: assumeRoleCommandOutput?.Credentials?.SecretAccessKey,
|
|
85
|
+
sessionToken: assumeRoleCommandOutput?.Credentials?.SessionToken
|
|
86
|
+
}
|
|
87
|
+
} : {};
|
|
88
|
+
var getObjectWithStackAttribute = (error) => error && error instanceof Error ? { stack: error.stack } : {};
|
|
89
|
+
var getObjectWithLoggerAttribute = (logger) => logger ? {
|
|
90
|
+
logger
|
|
91
|
+
} : {};
|
|
92
|
+
|
|
93
|
+
// src/services/s3.ts
|
|
12
94
|
var S3Service = class {
|
|
13
95
|
logger;
|
|
14
96
|
client;
|
|
@@ -22,17 +104,13 @@ var S3Service = class {
|
|
|
22
104
|
if (client) {
|
|
23
105
|
this.client = client;
|
|
24
106
|
} else {
|
|
25
|
-
|
|
107
|
+
assert2(region, "Region must be provided if client is not passed");
|
|
26
108
|
this.client = new S3Client({
|
|
27
109
|
region,
|
|
28
|
-
|
|
29
|
-
...
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
secretAccessKey: assumeRoleCommandOutput?.Credentials?.SecretAccessKey,
|
|
33
|
-
sessionToken: assumeRoleCommandOutput?.Credentials?.SessionToken
|
|
34
|
-
}
|
|
35
|
-
} : {}
|
|
110
|
+
...getObjectWithLoggerAttribute(this.logger),
|
|
111
|
+
...getObjectWithAssumeRoleCommandOutputAttribute(
|
|
112
|
+
assumeRoleCommandOutput
|
|
113
|
+
)
|
|
36
114
|
});
|
|
37
115
|
}
|
|
38
116
|
}
|
|
@@ -99,7 +177,7 @@ import {
|
|
|
99
177
|
QueryCommand,
|
|
100
178
|
UpdateCommand
|
|
101
179
|
} from "@aws-sdk/lib-dynamodb";
|
|
102
|
-
import
|
|
180
|
+
import assert3 from "node:assert/strict";
|
|
103
181
|
var DynamoDBService = class {
|
|
104
182
|
logger;
|
|
105
183
|
client;
|
|
@@ -114,17 +192,13 @@ var DynamoDBService = class {
|
|
|
114
192
|
if (client) {
|
|
115
193
|
this.client = client;
|
|
116
194
|
} else {
|
|
117
|
-
|
|
195
|
+
assert3(region, "Region must be provided if client is not passed");
|
|
118
196
|
this.client = new DynamoDBClient({
|
|
119
197
|
region,
|
|
120
|
-
|
|
121
|
-
...
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
secretAccessKey: assumeRoleCommandOutput?.Credentials?.SecretAccessKey,
|
|
125
|
-
sessionToken: assumeRoleCommandOutput?.Credentials?.SessionToken
|
|
126
|
-
}
|
|
127
|
-
} : {}
|
|
198
|
+
...getObjectWithLoggerAttribute(this.logger),
|
|
199
|
+
...getObjectWithAssumeRoleCommandOutputAttribute(
|
|
200
|
+
assumeRoleCommandOutput
|
|
201
|
+
)
|
|
128
202
|
});
|
|
129
203
|
}
|
|
130
204
|
this.documentClient = DynamoDBDocumentClient.from(this.client);
|
|
@@ -155,7 +229,7 @@ import {
|
|
|
155
229
|
PutParameterCommand,
|
|
156
230
|
SSMClient
|
|
157
231
|
} from "@aws-sdk/client-ssm";
|
|
158
|
-
import
|
|
232
|
+
import assert4 from "node:assert/strict";
|
|
159
233
|
var SSMService = class {
|
|
160
234
|
logger;
|
|
161
235
|
client;
|
|
@@ -169,17 +243,13 @@ var SSMService = class {
|
|
|
169
243
|
if (client) {
|
|
170
244
|
this.client = client;
|
|
171
245
|
} else {
|
|
172
|
-
|
|
246
|
+
assert4(region, "Region must be provided if client is not passed");
|
|
173
247
|
this.client = new SSMClient({
|
|
174
248
|
region,
|
|
175
|
-
|
|
176
|
-
...
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
secretAccessKey: assumeRoleCommandOutput?.Credentials?.SecretAccessKey,
|
|
180
|
-
sessionToken: assumeRoleCommandOutput?.Credentials?.SessionToken
|
|
181
|
-
}
|
|
182
|
-
} : {}
|
|
249
|
+
...getObjectWithLoggerAttribute(this.logger),
|
|
250
|
+
...getObjectWithAssumeRoleCommandOutputAttribute(
|
|
251
|
+
assumeRoleCommandOutput
|
|
252
|
+
)
|
|
183
253
|
});
|
|
184
254
|
}
|
|
185
255
|
}
|
|
@@ -199,7 +269,7 @@ import {
|
|
|
199
269
|
SendMessageBatchCommand,
|
|
200
270
|
SendMessageCommand
|
|
201
271
|
} from "@aws-sdk/client-sqs";
|
|
202
|
-
import
|
|
272
|
+
import assert5 from "node:assert/strict";
|
|
203
273
|
var SQSService = class {
|
|
204
274
|
logger;
|
|
205
275
|
client;
|
|
@@ -213,17 +283,13 @@ var SQSService = class {
|
|
|
213
283
|
if (client) {
|
|
214
284
|
this.client = client;
|
|
215
285
|
} else {
|
|
216
|
-
|
|
286
|
+
assert5(region, "Region must be provided if client is not passed");
|
|
217
287
|
this.client = new SQSClient({
|
|
218
288
|
region,
|
|
219
|
-
|
|
220
|
-
...
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
secretAccessKey: assumeRoleCommandOutput?.Credentials?.SecretAccessKey,
|
|
224
|
-
sessionToken: assumeRoleCommandOutput?.Credentials?.SessionToken
|
|
225
|
-
}
|
|
226
|
-
} : {}
|
|
289
|
+
...getObjectWithLoggerAttribute(this.logger),
|
|
290
|
+
...getObjectWithAssumeRoleCommandOutputAttribute(
|
|
291
|
+
assumeRoleCommandOutput
|
|
292
|
+
)
|
|
227
293
|
});
|
|
228
294
|
}
|
|
229
295
|
}
|
|
@@ -247,7 +313,7 @@ import {
|
|
|
247
313
|
GetCallerIdentityCommand,
|
|
248
314
|
STSClient
|
|
249
315
|
} from "@aws-sdk/client-sts";
|
|
250
|
-
import
|
|
316
|
+
import assert6 from "node:assert/strict";
|
|
251
317
|
var STSService = class {
|
|
252
318
|
logger;
|
|
253
319
|
client;
|
|
@@ -260,10 +326,10 @@ var STSService = class {
|
|
|
260
326
|
if (client) {
|
|
261
327
|
this.client = client;
|
|
262
328
|
} else {
|
|
263
|
-
|
|
329
|
+
assert6(region, "Region must be provided if client is not passed");
|
|
264
330
|
this.client = new STSClient({
|
|
265
331
|
region,
|
|
266
|
-
|
|
332
|
+
...getObjectWithLoggerAttribute(this.logger)
|
|
267
333
|
});
|
|
268
334
|
}
|
|
269
335
|
}
|
|
@@ -282,7 +348,7 @@ import {
|
|
|
282
348
|
LocationClient,
|
|
283
349
|
SearchPlaceIndexForPositionCommand
|
|
284
350
|
} from "@aws-sdk/client-location";
|
|
285
|
-
import
|
|
351
|
+
import assert7 from "node:assert/strict";
|
|
286
352
|
var LocationService = class {
|
|
287
353
|
logger;
|
|
288
354
|
client;
|
|
@@ -296,17 +362,13 @@ var LocationService = class {
|
|
|
296
362
|
if (client) {
|
|
297
363
|
this.client = client;
|
|
298
364
|
} else {
|
|
299
|
-
|
|
365
|
+
assert7(region, "Region must be provided if client is not passed");
|
|
300
366
|
this.client = new LocationClient({
|
|
301
367
|
region,
|
|
302
|
-
|
|
303
|
-
...
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
secretAccessKey: assumeRoleCommandOutput?.Credentials?.SecretAccessKey,
|
|
307
|
-
sessionToken: assumeRoleCommandOutput?.Credentials?.SessionToken
|
|
308
|
-
}
|
|
309
|
-
} : {}
|
|
368
|
+
...getObjectWithLoggerAttribute(this.logger),
|
|
369
|
+
...getObjectWithAssumeRoleCommandOutputAttribute(
|
|
370
|
+
assumeRoleCommandOutput
|
|
371
|
+
)
|
|
310
372
|
});
|
|
311
373
|
}
|
|
312
374
|
}
|
|
@@ -320,35 +382,32 @@ var LocationService = class {
|
|
|
320
382
|
};
|
|
321
383
|
|
|
322
384
|
// src/lambda/plumbingMiddleware.ts
|
|
323
|
-
import { Logger } from "@aws-lambda-powertools/logger";
|
|
385
|
+
import { Logger as Logger2 } from "@aws-lambda-powertools/logger";
|
|
324
386
|
import { Metrics } from "@aws-lambda-powertools/metrics";
|
|
325
387
|
import { Tracer } from "@aws-lambda-powertools/tracer";
|
|
326
|
-
import
|
|
388
|
+
import assert8 from "node:assert";
|
|
327
389
|
var plumbingMiddleware = () => {
|
|
328
|
-
|
|
390
|
+
assert8(
|
|
329
391
|
process.env.POWERTOOLS_METRICS_NAMESPACE,
|
|
330
392
|
"POWERTOOLS_METRICS_NAMESPACE is not configured"
|
|
331
393
|
);
|
|
332
|
-
|
|
394
|
+
assert8(
|
|
333
395
|
process.env.POWERTOOLS_SERVICE_NAME,
|
|
334
396
|
"POWERTOOLS_SERVICE_NAME is not configured"
|
|
335
397
|
);
|
|
336
398
|
const metrics = new Metrics();
|
|
337
|
-
const
|
|
399
|
+
const rootlogger = new Logger2();
|
|
338
400
|
const tracer = new Tracer();
|
|
339
401
|
let segment;
|
|
340
402
|
let subsegment;
|
|
341
403
|
let handlerSegment;
|
|
342
404
|
const before = async ({ context, event }) => {
|
|
343
|
-
logger.
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
const localLogger = logger.createChild();
|
|
347
|
-
localLogger.appendKeys({ function: "plumbingMiddleware.before" });
|
|
348
|
-
localLogger.info("incoming", { event });
|
|
405
|
+
const logger = getLoggerWithScope("plumbingMiddleware.before", rootlogger);
|
|
406
|
+
logger.addContext(context);
|
|
407
|
+
logger.logEventIfEnabled(event);
|
|
349
408
|
segment = tracer.getSegment();
|
|
350
409
|
if (!segment) {
|
|
351
|
-
|
|
410
|
+
logger.error("Failed to get segment");
|
|
352
411
|
return;
|
|
353
412
|
}
|
|
354
413
|
metrics.captureColdStartMetric();
|
|
@@ -378,17 +437,16 @@ var plumbingMiddleware = () => {
|
|
|
378
437
|
};
|
|
379
438
|
};
|
|
380
439
|
const after = async () => {
|
|
381
|
-
const
|
|
382
|
-
localLogger.appendKeys({ function: "plumbingMiddleware.after" });
|
|
440
|
+
const logger = getLoggerWithScope("plumbingMiddleware.after", rootlogger);
|
|
383
441
|
try {
|
|
384
|
-
|
|
442
|
+
logger.debug("started closing in after");
|
|
385
443
|
subsegment.close();
|
|
386
444
|
handlerSegment.close();
|
|
387
445
|
tracer.setSegment(segment);
|
|
388
446
|
metrics.publishStoredMetrics();
|
|
389
|
-
|
|
447
|
+
logger.debug("finished closing in after");
|
|
390
448
|
} catch (error) {
|
|
391
|
-
|
|
449
|
+
logger.error("error in after", { error });
|
|
392
450
|
throw error;
|
|
393
451
|
}
|
|
394
452
|
};
|
|
@@ -400,83 +458,14 @@ var plumbingMiddleware = () => {
|
|
|
400
458
|
|
|
401
459
|
// src/lambda/sharedUtils.ts
|
|
402
460
|
import { DynamoDBPersistenceLayer } from "@aws-lambda-powertools/idempotency/dynamodb";
|
|
403
|
-
|
|
404
|
-
// src/utils/assertUtils.ts
|
|
405
|
-
import assert8 from "node:assert/strict";
|
|
406
|
-
var assertEnvVar = (envVar) => {
|
|
407
|
-
assert8(process.env[envVar], `${envVar} is not set`);
|
|
408
|
-
return process.env[envVar];
|
|
409
|
-
};
|
|
410
|
-
var assertString = (value) => {
|
|
411
|
-
assert8(typeof value === "string", "Value is not a string");
|
|
412
|
-
assert8(value.length > 0, "Value is empty");
|
|
413
|
-
return value;
|
|
414
|
-
};
|
|
415
|
-
|
|
416
|
-
// src/lambda/sharedUtils.ts
|
|
417
461
|
import { Metrics as Metrics2 } from "@aws-lambda-powertools/metrics";
|
|
418
|
-
import { Logger as
|
|
462
|
+
import { Logger as Logger3 } from "@aws-lambda-powertools/logger";
|
|
419
463
|
import { Tracer as Tracer2 } from "@aws-lambda-powertools/tracer";
|
|
420
464
|
var getPersistenceStore = () => {
|
|
421
465
|
return new DynamoDBPersistenceLayer({
|
|
422
466
|
tableName: assertEnvVar("AC_IDEMPOTENCY_TABLE_NAME")
|
|
423
467
|
});
|
|
424
468
|
};
|
|
425
|
-
|
|
426
|
-
// src/utils/logger.ts
|
|
427
|
-
import { Logger as Logger3 } from "@aws-lambda-powertools/logger";
|
|
428
|
-
var rootLogger = new Logger3({
|
|
429
|
-
serviceName: process.env.POWERTOOLS_SERVICE_NAME ?? process.env.AWS_LAMBDA_FUNCTION_NAME ?? "ac-shared"
|
|
430
|
-
});
|
|
431
|
-
var getLoggerWithScope = (scope, logger = rootLogger) => {
|
|
432
|
-
const childLogger = logger.createChild();
|
|
433
|
-
childLogger.appendKeys({ scope });
|
|
434
|
-
return childLogger;
|
|
435
|
-
};
|
|
436
|
-
|
|
437
|
-
// src/utils/normalizeErrorMessage.ts
|
|
438
|
-
var normalizeErrorMessage = (error) => {
|
|
439
|
-
if (error instanceof Error) {
|
|
440
|
-
return error.message;
|
|
441
|
-
} else if (typeof error === "string") {
|
|
442
|
-
return error;
|
|
443
|
-
} else if (typeof error === "object" && error !== null) {
|
|
444
|
-
return JSON.stringify(error);
|
|
445
|
-
} else {
|
|
446
|
-
return String(error);
|
|
447
|
-
}
|
|
448
|
-
};
|
|
449
|
-
|
|
450
|
-
// src/utils/thumbsKey.ts
|
|
451
|
-
import { extname } from "node:path";
|
|
452
|
-
var JPEG_EXTENSION = "jpeg";
|
|
453
|
-
var JPG_EXTENSION = "jpg";
|
|
454
|
-
var HEIC_EXTENSION = "heic";
|
|
455
|
-
var DEFAULT_THUMBS_EXTENSION = JPG_EXTENSION;
|
|
456
|
-
var ALLOWED_EXTENSIONS = [
|
|
457
|
-
JPEG_EXTENSION,
|
|
458
|
-
JPG_EXTENSION,
|
|
459
|
-
HEIC_EXTENSION
|
|
460
|
-
];
|
|
461
|
-
var THUMBNAIL_RESOLUTIONS = [
|
|
462
|
-
[200, 200],
|
|
463
|
-
[1180, 820]
|
|
464
|
-
];
|
|
465
|
-
var getThumbsKey = ({
|
|
466
|
-
key,
|
|
467
|
-
prefix,
|
|
468
|
-
width,
|
|
469
|
-
height
|
|
470
|
-
}) => {
|
|
471
|
-
const ext = getKeyExtension(key);
|
|
472
|
-
const destinationKey = [JPEG_EXTENSION, JPG_EXTENSION].includes(ext) ? key : `${key.split(".").slice(0, -1).join(".")}.${DEFAULT_THUMBS_EXTENSION}`;
|
|
473
|
-
return `${prefix}/${width}x${height}/${destinationKey}`;
|
|
474
|
-
};
|
|
475
|
-
var getKeyExtension = (key) => extname(key).slice(1).toLowerCase();
|
|
476
|
-
var isAllowedExtension = (key) => {
|
|
477
|
-
const ext = getKeyExtension(key);
|
|
478
|
-
return ALLOWED_EXTENSIONS.includes(ext);
|
|
479
|
-
};
|
|
480
469
|
export {
|
|
481
470
|
ALLOWED_EXTENSIONS,
|
|
482
471
|
DEFAULT_THUMBS_EXTENSION,
|
|
@@ -485,7 +474,7 @@ export {
|
|
|
485
474
|
JPEG_EXTENSION,
|
|
486
475
|
JPG_EXTENSION,
|
|
487
476
|
LocationService,
|
|
488
|
-
|
|
477
|
+
Logger3 as Logger,
|
|
489
478
|
Metrics2 as Metrics,
|
|
490
479
|
S3Service,
|
|
491
480
|
SQSService,
|
|
@@ -497,6 +486,9 @@ export {
|
|
|
497
486
|
assertString,
|
|
498
487
|
getKeyExtension,
|
|
499
488
|
getLoggerWithScope,
|
|
489
|
+
getObjectWithAssumeRoleCommandOutputAttribute,
|
|
490
|
+
getObjectWithLoggerAttribute,
|
|
491
|
+
getObjectWithStackAttribute,
|
|
500
492
|
getPersistenceStore,
|
|
501
493
|
getThumbsKey,
|
|
502
494
|
isAllowedExtension,
|
package/lib/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/services/s3.ts", "../src/
|
|
4
|
-
"sourcesContent": ["import {\n GetObjectCommand,\n GetObjectCommandInput,\n HeadObjectCommand,\n HeadObjectCommandInput,\n ListObjectsV2Command,\n ListObjectsV2CommandInput,\n PutObjectCommand,\n PutObjectCommandInput,\n PutObjectCommandOutput,\n S3Client\n} from \"@aws-sdk/client-s3\";\nimport { AssumeRoleCommandOutput } from \"@aws-sdk/client-sts\";\nimport { Upload } from \"@aws-sdk/lib-storage\";\nimport { PassThrough } from \"node:stream\";\nimport { GenericLogger } from \"./types.js\";\nimport assert from \"node:assert/strict\";\n\nexport class S3Service {\n logger: GenericLogger;\n client: S3Client;\n constructor({\n logger,\n client,\n assumeRoleCommandOutput,\n region\n }: {\n logger?: GenericLogger;\n client?: S3Client;\n assumeRoleCommandOutput?: AssumeRoleCommandOutput;\n region?: string;\n }) {\n this.logger = logger;\n\n if (client) {\n this.client = client;\n } else {\n assert(region, \"Region must be provided if client is not passed\");\n this.client = new S3Client({\n region,\n logger: this.logger,\n ...(assumeRoleCommandOutput\n ? {\n credentials: {\n accessKeyId: assumeRoleCommandOutput?.Credentials?.AccessKeyId,\n secretAccessKey:\n assumeRoleCommandOutput?.Credentials?.SecretAccessKey,\n sessionToken: assumeRoleCommandOutput?.Credentials?.SessionToken\n }\n }\n : {})\n });\n }\n }\n\n createS3UploadStream(putObjectCommandInput: PutObjectCommandInput) {\n this.logger.debug(\"upload stream started\");\n\n const pass = new PassThrough();\n\n const parallelUploads = new Upload({\n client: this.client,\n params: {\n ...putObjectCommandInput,\n Body: pass\n }\n });\n\n const donePromise = parallelUploads\n .done()\n .then(() => this.logger.debug(\"upload stream finished\"))\n .catch((err) => {\n this.logger.error(\"upload stream error\", err);\n pass.destroy(err);\n });\n\n return { stream: pass, done: donePromise };\n }\n\n async createS3DownloadStream(getObjectCommandInput: GetObjectCommandInput) {\n this.logger.debug(\"download stream started\");\n\n const item = await this.client.send(\n new GetObjectCommand(getObjectCommandInput)\n );\n\n this.logger.debug(\"download stream finished\");\n\n return item.Body;\n }\n\n async listObjectsV2(listObjectsV2CommandInput: ListObjectsV2CommandInput) {\n return await this.client.send(\n new ListObjectsV2Command(listObjectsV2CommandInput)\n );\n }\n\n async getObject(\n getObjectCommandInput: GetObjectCommandInput\n ): Promise<Buffer> {\n const stream = await this.createS3DownloadStream(getObjectCommandInput);\n\n return Buffer.from(await stream.transformToByteArray());\n }\n\n async putObject(\n putObjectCommandInput: PutObjectCommandInput\n ): Promise<PutObjectCommandOutput> {\n return await this.client.send(new PutObjectCommand(putObjectCommandInput));\n }\n\n async headObject(headObjectCommandInput: HeadObjectCommandInput) {\n return await this.client.send(\n new HeadObjectCommand(headObjectCommandInput)\n );\n }\n\n async checkIfObjectExists(\n headObjectCommandInput: HeadObjectCommandInput\n ): Promise<boolean> {\n try {\n await this.client.send(new HeadObjectCommand(headObjectCommandInput));\n return true;\n } catch (error) {\n if (error.name === \"NotFound\") {\n return false;\n }\n throw error;\n }\n }\n}\n", "import { DynamoDBClient } from \"@aws-sdk/client-dynamodb\";\nimport { AssumeRoleCommandOutput } from \"@aws-sdk/client-sts\";\nimport {\n DynamoDBDocumentClient,\n GetCommand,\n GetCommandInput,\n GetCommandOutput,\n PutCommand,\n PutCommandInput,\n PutCommandOutput,\n QueryCommand,\n QueryCommandInput,\n QueryCommandOutput,\n UpdateCommand,\n UpdateCommandInput,\n UpdateCommandOutput\n} from \"@aws-sdk/lib-dynamodb\";\nimport { GenericLogger } from \"./types.js\";\nimport assert from \"node:assert/strict\";\n\nexport class DynamoDBService {\n logger: GenericLogger;\n client: DynamoDBClient;\n documentClient: DynamoDBDocumentClient;\n\n constructor({\n logger,\n client,\n assumeRoleCommandOutput,\n region\n }: {\n logger?: GenericLogger;\n client?: DynamoDBClient;\n assumeRoleCommandOutput?: AssumeRoleCommandOutput;\n region?: string;\n }) {\n this.logger = logger;\n\n if (client) {\n this.client = client;\n } else {\n assert(region, \"Region must be provided if client is not passed\");\n this.client = new DynamoDBClient({\n region,\n logger: this.logger,\n ...(assumeRoleCommandOutput\n ? {\n credentials: {\n accessKeyId: assumeRoleCommandOutput?.Credentials?.AccessKeyId,\n secretAccessKey:\n assumeRoleCommandOutput?.Credentials?.SecretAccessKey,\n sessionToken: assumeRoleCommandOutput?.Credentials?.SessionToken\n }\n }\n : {})\n });\n }\n\n this.documentClient = DynamoDBDocumentClient.from(this.client);\n }\n\n async getCommand(\n getCommandInput: GetCommandInput\n ): Promise<GetCommandOutput> {\n return await this.documentClient.send(new GetCommand(getCommandInput));\n }\n\n async updateCommand(\n updateCommandInput: UpdateCommandInput\n ): Promise<UpdateCommandOutput> {\n return await this.documentClient.send(\n new UpdateCommand(updateCommandInput)\n );\n }\n\n async queryCommand(\n queryCommandInput: QueryCommandInput\n ): Promise<QueryCommandOutput> {\n return await this.documentClient.send(new QueryCommand(queryCommandInput));\n }\n\n async putCommand(\n putCommandInput: PutCommandInput\n ): Promise<PutCommandOutput> {\n return await this.documentClient.send(new PutCommand(putCommandInput));\n }\n\n async checkIfItemExists(\n checkInput: Pick<GetCommandInput, \"TableName\" | \"Key\">\n ): Promise<boolean> {\n const result = await this.getCommand(checkInput);\n\n return !!result.Item;\n }\n}\n", "import {\n GetParameterCommand,\n GetParameterCommandInput,\n GetParameterCommandOutput,\n PutParameterCommand,\n PutParameterCommandInput,\n PutParameterCommandOutput,\n SSMClient\n} from \"@aws-sdk/client-ssm\";\nimport { AssumeRoleCommandOutput } from \"@aws-sdk/client-sts\";\nimport assert from \"node:assert/strict\";\nimport { GenericLogger } from \"./types.js\";\n\nexport class SSMService {\n logger: GenericLogger;\n client: SSMClient;\n\n constructor({\n logger,\n client,\n assumeRoleCommandOutput,\n region\n }: {\n logger?: GenericLogger;\n client?: SSMClient;\n assumeRoleCommandOutput?: AssumeRoleCommandOutput;\n region?: string;\n } = {}) {\n this.logger = logger;\n\n if (client) {\n this.client = client;\n } else {\n assert(region, \"Region must be provided if client is not passed\");\n this.client = new SSMClient({\n region,\n logger: this.logger,\n ...(assumeRoleCommandOutput\n ? {\n credentials: {\n accessKeyId: assumeRoleCommandOutput?.Credentials?.AccessKeyId,\n secretAccessKey:\n assumeRoleCommandOutput?.Credentials?.SecretAccessKey,\n sessionToken: assumeRoleCommandOutput?.Credentials?.SessionToken\n }\n }\n : {})\n });\n }\n }\n\n async getParameter(\n params: GetParameterCommandInput\n ): Promise<GetParameterCommandOutput> {\n return await this.client.send(new GetParameterCommand(params));\n }\n\n async putParameter(\n params: PutParameterCommandInput\n ): Promise<PutParameterCommandOutput> {\n return await this.client.send(new PutParameterCommand(params));\n }\n}\n", "import {\n DeleteMessageCommand,\n DeleteMessageCommandInput,\n DeleteMessageCommandOutput,\n ReceiveMessageCommand,\n ReceiveMessageCommandInput,\n ReceiveMessageCommandOutput,\n SQSClient,\n SendMessageBatchCommand,\n SendMessageBatchCommandInput,\n SendMessageBatchCommandOutput,\n SendMessageCommand,\n SendMessageCommandInput,\n SendMessageCommandOutput\n} from \"@aws-sdk/client-sqs\";\nimport { AssumeRoleCommandOutput } from \"@aws-sdk/client-sts\";\nimport { GenericLogger } from \"./types.js\";\nimport assert from \"node:assert/strict\";\n\nexport class SQSService {\n logger: GenericLogger;\n client: SQSClient;\n\n constructor({\n logger,\n client,\n assumeRoleCommandOutput,\n region\n }: {\n logger?: GenericLogger;\n client?: SQSClient;\n assumeRoleCommandOutput?: AssumeRoleCommandOutput;\n region?: string;\n }) {\n this.logger = logger;\n\n if (client) {\n this.client = client;\n } else {\n assert(region, \"Region must be provided if client is not passed\");\n this.client = new SQSClient({\n region,\n logger: this.logger,\n ...(assumeRoleCommandOutput\n ? {\n credentials: {\n accessKeyId: assumeRoleCommandOutput?.Credentials?.AccessKeyId,\n secretAccessKey:\n assumeRoleCommandOutput?.Credentials?.SecretAccessKey,\n sessionToken: assumeRoleCommandOutput?.Credentials?.SessionToken\n }\n }\n : {})\n });\n }\n }\n\n async sendMessage(\n params: SendMessageCommandInput\n ): Promise<SendMessageCommandOutput> {\n return await this.client.send(new SendMessageCommand(params));\n }\n\n async sendMessageBatch(\n params: SendMessageBatchCommandInput\n ): Promise<SendMessageBatchCommandOutput> {\n return await this.client.send(new SendMessageBatchCommand(params));\n }\n\n async receiveMessage(\n params: ReceiveMessageCommandInput\n ): Promise<ReceiveMessageCommandOutput> {\n return await this.client.send(new ReceiveMessageCommand(params));\n }\n\n async deleteMessage(\n params: DeleteMessageCommandInput\n ): Promise<DeleteMessageCommandOutput> {\n return await this.client.send(new DeleteMessageCommand(params));\n }\n}\n", "import {\n AssumeRoleCommand,\n AssumeRoleCommandInput,\n GetCallerIdentityCommand,\n STSClient\n} from \"@aws-sdk/client-sts\";\nimport assert from \"node:assert/strict\";\nimport { GenericLogger } from \"./types.js\";\n\nexport class STSService {\n logger: GenericLogger;\n client: STSClient;\n\n constructor({\n logger,\n region,\n client\n }: {\n logger?: GenericLogger;\n region?: string;\n client?: STSClient;\n }) {\n this.logger = logger;\n\n if (client) {\n this.client = client;\n } else {\n assert(region, \"Region must be provided if client is not passed\");\n this.client = new STSClient({\n region,\n logger: this.logger\n });\n }\n }\n\n async getCallerIdentity() {\n return await this.client.send(new GetCallerIdentityCommand({}));\n }\n\n async assumeRole(assumeRoleCommandInput: AssumeRoleCommandInput) {\n return await this.client.send(\n new AssumeRoleCommand(assumeRoleCommandInput)\n );\n }\n}\n", "import {\n LocationClient,\n SearchPlaceIndexForPositionCommand,\n SearchPlaceIndexForPositionCommandInput,\n SearchPlaceIndexForPositionCommandOutput\n} from \"@aws-sdk/client-location\";\nimport { AssumeRoleCommandOutput } from \"@aws-sdk/client-sts\";\nimport assert from \"node:assert/strict\";\nimport { GenericLogger } from \"./types.js\";\n\nexport class LocationService {\n logger: GenericLogger;\n client: LocationClient;\n\n constructor({\n logger,\n client,\n assumeRoleCommandOutput,\n region\n }: {\n logger?: GenericLogger;\n client?: LocationClient;\n assumeRoleCommandOutput?: AssumeRoleCommandOutput;\n region?: string;\n }) {\n this.logger = logger;\n\n if (client) {\n this.client = client;\n } else {\n assert(region, \"Region must be provided if client is not passed\");\n this.client = new LocationClient({\n region,\n logger: this.logger,\n ...(assumeRoleCommandOutput\n ? {\n credentials: {\n accessKeyId: assumeRoleCommandOutput?.Credentials?.AccessKeyId,\n secretAccessKey:\n assumeRoleCommandOutput?.Credentials?.SecretAccessKey,\n sessionToken: assumeRoleCommandOutput?.Credentials?.SessionToken\n }\n }\n : {})\n });\n }\n }\n\n async searchPlaceIndexForPositionCommand(\n searchPlaceIndexForPositionCommandInput: SearchPlaceIndexForPositionCommandInput\n ): Promise<SearchPlaceIndexForPositionCommandOutput> {\n return await this.client.send(\n new SearchPlaceIndexForPositionCommand(\n searchPlaceIndexForPositionCommandInput\n )\n );\n }\n}\n", "import { Logger } from \"@aws-lambda-powertools/logger\";\nimport { Metrics } from \"@aws-lambda-powertools/metrics\";\nimport { Tracer } from \"@aws-lambda-powertools/tracer\";\nimport middy, { MiddlewareObj } from \"@middy/core\";\nimport assert from \"node:assert\";\n\nexport const plumbingMiddleware = (): MiddlewareObj => {\n assert(\n process.env.POWERTOOLS_METRICS_NAMESPACE,\n \"POWERTOOLS_METRICS_NAMESPACE is not configured\"\n );\n\n assert(\n process.env.POWERTOOLS_SERVICE_NAME,\n \"POWERTOOLS_SERVICE_NAME is not configured\"\n );\n\n const metrics = new Metrics();\n const logger = new Logger();\n const tracer = new Tracer();\n\n let segment: any;\n let subsegment: any;\n let handlerSegment: any;\n\n const before: middy.MiddlewareFn = async ({ context, event }) => {\n logger.appendKeys({\n awsRequestId: context.awsRequestId,\n });\n\n const localLogger = logger.createChild();\n localLogger.appendKeys({ function: \"plumbingMiddleware.before\" });\n\n localLogger.info(\"incoming\", { event });\n\n segment = tracer.getSegment();\n\n if (!segment) {\n localLogger.error(\"Failed to get segment\");\n return;\n }\n\n metrics.captureColdStartMetric();\n\n // Create subsegment for the function & set it as active\n handlerSegment = segment.addNewSubsegment(`## ${process.env._HANDLER}`);\n tracer.setSegment(handlerSegment);\n tracer.annotateColdStart();\n tracer.addServiceNameAnnotation();\n\n // Add annotation for the awsRequestId\n tracer.putAnnotation(\"awsRequestId\", context.awsRequestId);\n\n // Create another subsegment & set it as active\n subsegment = handlerSegment.addNewSubsegment(\"### MySubSegment\");\n tracer.setSegment(subsegment);\n\n context.clientContext = {\n client: context.clientContext?.client || {\n appPackageName: \"\",\n appTitle: \"\",\n appVersionCode: \"\",\n appVersionName: \"\",\n installationId: \"\",\n },\n env: context.clientContext?.env || {\n platform: \"\",\n platformVersion: \"\",\n make: \"\",\n model: \"\",\n locale: \"\",\n },\n Custom: { tracer, logger, metrics },\n };\n };\n\n const after: middy.MiddlewareFn = async (): Promise<void> => {\n const localLogger = logger.createChild();\n localLogger.appendKeys({ function: \"plumbingMiddleware.after\" });\n\n try {\n localLogger.debug(\"started closing in after\");\n subsegment.close(); // (### MySubSegment)\n handlerSegment.close(); // (## index.handler)\n\n // Set the facade segment as active again (the one created by AWS Lambda)\n tracer.setSegment(segment);\n // Publish all stored metrics\n metrics.publishStoredMetrics();\n localLogger.debug(\"finished closing in after\");\n } catch (error) {\n localLogger.error(\"error in after\", { error });\n throw error;\n }\n };\n\n return {\n before,\n after,\n };\n};\n", "import { DynamoDBPersistenceLayer } from \"@aws-lambda-powertools/idempotency/dynamodb\";\nimport { Context } from \"aws-lambda\";\nimport { assertEnvVar } from \"../utils/assertUtils.js\";\nimport { Metrics } from \"@aws-lambda-powertools/metrics\";\nimport { Logger } from \"@aws-lambda-powertools/logger\";\nimport { Tracer } from \"@aws-lambda-powertools/tracer\";\n\nexport const getPersistenceStore = () => {\n return new DynamoDBPersistenceLayer({\n tableName: assertEnvVar(\"AC_IDEMPOTENCY_TABLE_NAME\")\n });\n};\n\nexport interface ACLambdaContext extends Context {\n clientContext?: {\n Custom?: {\n metrics: Metrics;\n logger: Logger;\n tracer: Tracer;\n };\n client: {\n appPackageName: string;\n appTitle: string;\n appVersionCode: string;\n appVersionName: string;\n installationId: string;\n };\n env: {\n platform: string;\n platformVersion: string;\n make: string;\n model: string;\n locale: string;\n };\n };\n}\n\nexport { Logger, Metrics, Tracer };\n", "import assert from \"node:assert/strict\";\n\nexport const assertEnvVar = (envVar: string): string => {\n assert(process.env[envVar], `${envVar} is not set`);\n return process.env[envVar];\n};\n\nexport const assertString = (value: string | undefined): string => {\n assert(typeof value === \"string\", \"Value is not a string\");\n assert(value.length > 0, \"Value is empty\");\n return value;\n};\n", "import { Logger } from \"@aws-lambda-powertools/logger\";\n\nexport const rootLogger = new Logger({\n serviceName:\n process.env.POWERTOOLS_SERVICE_NAME ??\n process.env.AWS_LAMBDA_FUNCTION_NAME ??\n \"ac-shared\"\n});\n\nexport const getLoggerWithScope = (\n scope: string,\n logger: Logger = rootLogger\n) => {\n const childLogger = logger.createChild();\n childLogger.appendKeys({ scope });\n return childLogger;\n};\n", "export const normalizeErrorMessage = (error: unknown): string => {\n if (error instanceof Error) {\n return error.message;\n } else if (typeof error === \"string\") {\n return error;\n } else if (typeof error === \"object\" && error !== null) {\n return JSON.stringify(error);\n } else {\n return String(error);\n }\n};\n", "import { extname } from \"node:path\";\n\nexport const JPEG_EXTENSION = \"jpeg\";\nexport const JPG_EXTENSION = \"jpg\";\nexport const HEIC_EXTENSION = \"heic\";\nexport const DEFAULT_THUMBS_EXTENSION = JPG_EXTENSION;\nexport const ALLOWED_EXTENSIONS = [\n JPEG_EXTENSION,\n JPG_EXTENSION,\n HEIC_EXTENSION\n];\n\nexport const THUMBNAIL_RESOLUTIONS = [\n [200, 200],\n [1180, 820]\n];\n\nexport const getThumbsKey = ({\n key,\n prefix,\n width,\n height\n}: {\n key: string;\n prefix: string;\n width: number;\n height: number;\n}) => {\n const ext = getKeyExtension(key);\n\n const destinationKey = [JPEG_EXTENSION, JPG_EXTENSION].includes(ext)\n ? key\n : `${key.split(\".\").slice(0, -1).join(\".\")}.${DEFAULT_THUMBS_EXTENSION}`;\n\n return `${prefix}/${width}x${height}/${destinationKey}`;\n};\n\nexport const getKeyExtension = (key: string) =>\n extname(key).slice(1).toLowerCase();\n\nexport const isAllowedExtension = (key: string) => {\n const ext = getKeyExtension(key);\n return ALLOWED_EXTENSIONS.includes(ext);\n};\n"],
|
|
5
|
-
"mappings": ";AAAA;AAAA,EACE;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA;AAAA,EAGA;AAAA,OACK;AAEP,SAAS,cAAc;AACvB,SAAS,mBAAmB;AAE5B,OAAO,YAAY;AAEZ,IAAM,
|
|
6
|
-
"names": ["assert", "assert", "assert", "assert", "assert", "assert", "assert", "
|
|
3
|
+
"sources": ["../src/services/s3.ts", "../src/utils/assertUtils.ts", "../src/utils/logger.ts", "../src/utils/normalizeErrorMessage.ts", "../src/utils/thumbsKey.ts", "../src/utils/helpers.ts", "../src/services/dynamoDB.ts", "../src/services/ssm.ts", "../src/services/sqs.ts", "../src/services/sts.ts", "../src/services/location.ts", "../src/lambda/plumbingMiddleware.ts", "../src/lambda/sharedUtils.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n GetObjectCommand,\n GetObjectCommandInput,\n HeadObjectCommand,\n HeadObjectCommandInput,\n ListObjectsV2Command,\n ListObjectsV2CommandInput,\n PutObjectCommand,\n PutObjectCommandInput,\n PutObjectCommandOutput,\n S3Client\n} from \"@aws-sdk/client-s3\";\nimport { AssumeRoleCommandOutput } from \"@aws-sdk/client-sts\";\nimport { Upload } from \"@aws-sdk/lib-storage\";\nimport { PassThrough } from \"node:stream\";\nimport { GenericLogger } from \"../utils/types.js\";\nimport assert from \"node:assert/strict\";\nimport {\n getObjectWithAssumeRoleCommandOutputAttribute,\n getObjectWithLoggerAttribute\n} from \"../utils/index.js\";\n\nexport class S3Service {\n logger: GenericLogger;\n client: S3Client;\n constructor({\n logger,\n client,\n assumeRoleCommandOutput,\n region\n }: {\n logger?: GenericLogger;\n client?: S3Client;\n assumeRoleCommandOutput?: AssumeRoleCommandOutput;\n region?: string;\n }) {\n this.logger = logger;\n\n if (client) {\n this.client = client;\n } else {\n assert(region, \"Region must be provided if client is not passed\");\n this.client = new S3Client({\n region,\n ...getObjectWithLoggerAttribute(this.logger),\n ...getObjectWithAssumeRoleCommandOutputAttribute(\n assumeRoleCommandOutput\n )\n });\n }\n }\n\n createS3UploadStream(putObjectCommandInput: PutObjectCommandInput) {\n this.logger.debug(\"upload stream started\");\n\n const pass = new PassThrough();\n\n const parallelUploads = new Upload({\n client: this.client,\n params: {\n ...putObjectCommandInput,\n Body: pass\n }\n });\n\n const donePromise = parallelUploads\n .done()\n .then(() => this.logger.debug(\"upload stream finished\"))\n .catch((err) => {\n this.logger.error(\"upload stream error\", err);\n pass.destroy(err);\n });\n\n return { stream: pass, done: donePromise };\n }\n\n async createS3DownloadStream(getObjectCommandInput: GetObjectCommandInput) {\n this.logger.debug(\"download stream started\");\n\n const item = await this.client.send(\n new GetObjectCommand(getObjectCommandInput)\n );\n\n this.logger.debug(\"download stream finished\");\n\n return item.Body;\n }\n\n async listObjectsV2(listObjectsV2CommandInput: ListObjectsV2CommandInput) {\n return await this.client.send(\n new ListObjectsV2Command(listObjectsV2CommandInput)\n );\n }\n\n async getObject(\n getObjectCommandInput: GetObjectCommandInput\n ): Promise<Buffer> {\n const stream = await this.createS3DownloadStream(getObjectCommandInput);\n\n return Buffer.from(await stream.transformToByteArray());\n }\n\n async putObject(\n putObjectCommandInput: PutObjectCommandInput\n ): Promise<PutObjectCommandOutput> {\n return await this.client.send(new PutObjectCommand(putObjectCommandInput));\n }\n\n async headObject(headObjectCommandInput: HeadObjectCommandInput) {\n return await this.client.send(\n new HeadObjectCommand(headObjectCommandInput)\n );\n }\n\n async checkIfObjectExists(\n headObjectCommandInput: HeadObjectCommandInput\n ): Promise<boolean> {\n try {\n await this.client.send(new HeadObjectCommand(headObjectCommandInput));\n return true;\n } catch (error) {\n if (error.name === \"NotFound\") {\n return false;\n }\n throw error;\n }\n }\n}\n", "import assert from \"node:assert/strict\";\n\nexport const assertEnvVar = (envVar: string): string => {\n assert(process.env[envVar], `${envVar} is not set`);\n return process.env[envVar];\n};\n\nexport const assertString = (value: string | undefined): string => {\n assert(typeof value === \"string\", \"Value is not a string\");\n assert(value.length > 0, \"Value is empty\");\n return value;\n};\n", "import { Logger } from \"@aws-lambda-powertools/logger\";\nimport { GenericLogger } from \"./types.js\";\n\nexport const rootLogger = new Logger({\n serviceName:\n process.env.POWERTOOLS_SERVICE_NAME ??\n process.env.AWS_LAMBDA_FUNCTION_NAME ??\n \"ac-shared\"\n});\n\nexport const getLoggerWithScope = (\n scope: string,\n logger: Logger = rootLogger\n) => {\n const childLogger = logger.createChild();\n childLogger.appendKeys({ scope });\n return childLogger;\n};\n", "export const normalizeErrorMessage = (error: unknown): string => {\n if (error instanceof Error) {\n return error.message;\n } else if (typeof error === \"string\") {\n return error;\n } else if (typeof error === \"object\" && error !== null) {\n return JSON.stringify(error);\n } else {\n return String(error);\n }\n};\n", "import { extname } from \"node:path\";\n\nexport const JPEG_EXTENSION = \"jpeg\";\nexport const JPG_EXTENSION = \"jpg\";\nexport const HEIC_EXTENSION = \"heic\";\nexport const DEFAULT_THUMBS_EXTENSION = JPG_EXTENSION;\nexport const ALLOWED_EXTENSIONS = [\n JPEG_EXTENSION,\n JPG_EXTENSION,\n HEIC_EXTENSION\n];\n\nexport const THUMBNAIL_RESOLUTIONS = [\n [200, 200],\n [1180, 820]\n];\n\nexport const getThumbsKey = ({\n key,\n prefix,\n width,\n height\n}: {\n key: string;\n prefix: string;\n width: number;\n height: number;\n}) => {\n const ext = getKeyExtension(key);\n\n const destinationKey = [JPEG_EXTENSION, JPG_EXTENSION].includes(ext)\n ? key\n : `${key.split(\".\").slice(0, -1).join(\".\")}.${DEFAULT_THUMBS_EXTENSION}`;\n\n return `${prefix}/${width}x${height}/${destinationKey}`;\n};\n\nexport const getKeyExtension = (key: string) =>\n extname(key).slice(1).toLowerCase();\n\nexport const isAllowedExtension = (key: string) => {\n const ext = getKeyExtension(key);\n return ALLOWED_EXTENSIONS.includes(ext);\n};\n", "import { AssumeRoleCommandOutput } from \"@aws-sdk/client-sts\";\nimport { GenericLogger } from \"./types.js\";\n\nexport const getObjectWithAssumeRoleCommandOutputAttribute = (\n assumeRoleCommandOutput?: AssumeRoleCommandOutput\n) =>\n assumeRoleCommandOutput\n ? {\n credentials: {\n accessKeyId: assumeRoleCommandOutput?.Credentials?.AccessKeyId,\n secretAccessKey:\n assumeRoleCommandOutput?.Credentials?.SecretAccessKey,\n sessionToken: assumeRoleCommandOutput?.Credentials?.SessionToken\n }\n }\n : {};\n\nexport const getObjectWithStackAttribute = (error: any) =>\n error && error instanceof Error ? { stack: error.stack } : {};\n\nexport const getObjectWithLoggerAttribute = (logger?: GenericLogger) =>\n logger\n ? {\n logger\n }\n : {};\n", "import { DynamoDBClient } from \"@aws-sdk/client-dynamodb\";\nimport { AssumeRoleCommandOutput } from \"@aws-sdk/client-sts\";\nimport {\n DynamoDBDocumentClient,\n GetCommand,\n GetCommandInput,\n GetCommandOutput,\n PutCommand,\n PutCommandInput,\n PutCommandOutput,\n QueryCommand,\n QueryCommandInput,\n QueryCommandOutput,\n UpdateCommand,\n UpdateCommandInput,\n UpdateCommandOutput\n} from \"@aws-sdk/lib-dynamodb\";\nimport { GenericLogger } from \"../utils/types.js\";\nimport assert from \"node:assert/strict\";\nimport {\n getObjectWithAssumeRoleCommandOutputAttribute,\n getObjectWithLoggerAttribute\n} from \"../utils/index.js\";\n\nexport class DynamoDBService {\n logger: GenericLogger;\n client: DynamoDBClient;\n documentClient: DynamoDBDocumentClient;\n\n constructor({\n logger,\n client,\n assumeRoleCommandOutput,\n region\n }: {\n logger?: GenericLogger;\n client?: DynamoDBClient;\n assumeRoleCommandOutput?: AssumeRoleCommandOutput;\n region?: string;\n }) {\n this.logger = logger;\n\n if (client) {\n this.client = client;\n } else {\n assert(region, \"Region must be provided if client is not passed\");\n this.client = new DynamoDBClient({\n region,\n ...getObjectWithLoggerAttribute(this.logger),\n ...getObjectWithAssumeRoleCommandOutputAttribute(\n assumeRoleCommandOutput\n )\n });\n }\n\n this.documentClient = DynamoDBDocumentClient.from(this.client);\n }\n\n async getCommand(\n getCommandInput: GetCommandInput\n ): Promise<GetCommandOutput> {\n return await this.documentClient.send(new GetCommand(getCommandInput));\n }\n\n async updateCommand(\n updateCommandInput: UpdateCommandInput\n ): Promise<UpdateCommandOutput> {\n return await this.documentClient.send(\n new UpdateCommand(updateCommandInput)\n );\n }\n\n async queryCommand(\n queryCommandInput: QueryCommandInput\n ): Promise<QueryCommandOutput> {\n return await this.documentClient.send(new QueryCommand(queryCommandInput));\n }\n\n async putCommand(\n putCommandInput: PutCommandInput\n ): Promise<PutCommandOutput> {\n return await this.documentClient.send(new PutCommand(putCommandInput));\n }\n\n async checkIfItemExists(\n checkInput: Pick<GetCommandInput, \"TableName\" | \"Key\">\n ): Promise<boolean> {\n const result = await this.getCommand(checkInput);\n\n return !!result.Item;\n }\n}\n", "import {\n GetParameterCommand,\n GetParameterCommandInput,\n GetParameterCommandOutput,\n PutParameterCommand,\n PutParameterCommandInput,\n PutParameterCommandOutput,\n SSMClient\n} from \"@aws-sdk/client-ssm\";\nimport { AssumeRoleCommandOutput } from \"@aws-sdk/client-sts\";\nimport assert from \"node:assert/strict\";\nimport { GenericLogger } from \"../utils/types.js\";\nimport {\n getObjectWithAssumeRoleCommandOutputAttribute,\n getObjectWithLoggerAttribute\n} from \"../utils/index.js\";\n\nexport class SSMService {\n logger: GenericLogger;\n client: SSMClient;\n\n constructor({\n logger,\n client,\n assumeRoleCommandOutput,\n region\n }: {\n logger?: GenericLogger;\n client?: SSMClient;\n assumeRoleCommandOutput?: AssumeRoleCommandOutput;\n region?: string;\n } = {}) {\n this.logger = logger;\n\n if (client) {\n this.client = client;\n } else {\n assert(region, \"Region must be provided if client is not passed\");\n this.client = new SSMClient({\n region,\n ...getObjectWithLoggerAttribute(this.logger),\n ...getObjectWithAssumeRoleCommandOutputAttribute(\n assumeRoleCommandOutput\n )\n });\n }\n }\n\n async getParameter(\n params: GetParameterCommandInput\n ): Promise<GetParameterCommandOutput> {\n return await this.client.send(new GetParameterCommand(params));\n }\n\n async putParameter(\n params: PutParameterCommandInput\n ): Promise<PutParameterCommandOutput> {\n return await this.client.send(new PutParameterCommand(params));\n }\n}\n", "import {\n DeleteMessageCommand,\n DeleteMessageCommandInput,\n DeleteMessageCommandOutput,\n ReceiveMessageCommand,\n ReceiveMessageCommandInput,\n ReceiveMessageCommandOutput,\n SQSClient,\n SendMessageBatchCommand,\n SendMessageBatchCommandInput,\n SendMessageBatchCommandOutput,\n SendMessageCommand,\n SendMessageCommandInput,\n SendMessageCommandOutput\n} from \"@aws-sdk/client-sqs\";\nimport { AssumeRoleCommandOutput } from \"@aws-sdk/client-sts\";\nimport { GenericLogger } from \"../utils/types.js\";\nimport assert from \"node:assert/strict\";\nimport {\n getObjectWithAssumeRoleCommandOutputAttribute,\n getObjectWithLoggerAttribute\n} from \"../utils/index.js\";\n\nexport class SQSService {\n logger: GenericLogger;\n client: SQSClient;\n\n constructor({\n logger,\n client,\n assumeRoleCommandOutput,\n region\n }: {\n logger?: GenericLogger;\n client?: SQSClient;\n assumeRoleCommandOutput?: AssumeRoleCommandOutput;\n region?: string;\n }) {\n this.logger = logger;\n\n if (client) {\n this.client = client;\n } else {\n assert(region, \"Region must be provided if client is not passed\");\n this.client = new SQSClient({\n region,\n ...getObjectWithLoggerAttribute(this.logger),\n ...getObjectWithAssumeRoleCommandOutputAttribute(\n assumeRoleCommandOutput\n )\n });\n }\n }\n\n async sendMessage(\n params: SendMessageCommandInput\n ): Promise<SendMessageCommandOutput> {\n return await this.client.send(new SendMessageCommand(params));\n }\n\n async sendMessageBatch(\n params: SendMessageBatchCommandInput\n ): Promise<SendMessageBatchCommandOutput> {\n return await this.client.send(new SendMessageBatchCommand(params));\n }\n\n async receiveMessage(\n params: ReceiveMessageCommandInput\n ): Promise<ReceiveMessageCommandOutput> {\n return await this.client.send(new ReceiveMessageCommand(params));\n }\n\n async deleteMessage(\n params: DeleteMessageCommandInput\n ): Promise<DeleteMessageCommandOutput> {\n return await this.client.send(new DeleteMessageCommand(params));\n }\n}\n", "import {\n AssumeRoleCommand,\n AssumeRoleCommandInput,\n GetCallerIdentityCommand,\n STSClient\n} from \"@aws-sdk/client-sts\";\nimport assert from \"node:assert/strict\";\nimport { GenericLogger } from \"../utils/types.js\";\nimport { getObjectWithLoggerAttribute } from \"../utils/index.js\";\n\nexport class STSService {\n logger: GenericLogger;\n client: STSClient;\n\n constructor({\n logger,\n region,\n client\n }: {\n logger?: GenericLogger;\n region?: string;\n client?: STSClient;\n }) {\n this.logger = logger;\n\n if (client) {\n this.client = client;\n } else {\n assert(region, \"Region must be provided if client is not passed\");\n this.client = new STSClient({\n region,\n ...getObjectWithLoggerAttribute(this.logger)\n });\n }\n }\n\n async getCallerIdentity() {\n return await this.client.send(new GetCallerIdentityCommand({}));\n }\n\n async assumeRole(assumeRoleCommandInput: AssumeRoleCommandInput) {\n return await this.client.send(\n new AssumeRoleCommand(assumeRoleCommandInput)\n );\n }\n}\n", "import {\n LocationClient,\n SearchPlaceIndexForPositionCommand,\n SearchPlaceIndexForPositionCommandInput,\n SearchPlaceIndexForPositionCommandOutput\n} from \"@aws-sdk/client-location\";\nimport { AssumeRoleCommandOutput } from \"@aws-sdk/client-sts\";\nimport assert from \"node:assert/strict\";\nimport { GenericLogger } from \"../utils/types.js\";\nimport {\n getObjectWithAssumeRoleCommandOutputAttribute,\n getObjectWithLoggerAttribute\n} from \"../utils/index.js\";\n\nexport class LocationService {\n logger: GenericLogger;\n client: LocationClient;\n\n constructor({\n logger,\n client,\n assumeRoleCommandOutput,\n region\n }: {\n logger?: GenericLogger;\n client?: LocationClient;\n assumeRoleCommandOutput?: AssumeRoleCommandOutput;\n region?: string;\n }) {\n this.logger = logger;\n\n if (client) {\n this.client = client;\n } else {\n assert(region, \"Region must be provided if client is not passed\");\n this.client = new LocationClient({\n region,\n ...getObjectWithLoggerAttribute(this.logger),\n ...getObjectWithAssumeRoleCommandOutputAttribute(\n assumeRoleCommandOutput\n )\n });\n }\n }\n\n async searchPlaceIndexForPositionCommand(\n searchPlaceIndexForPositionCommandInput: SearchPlaceIndexForPositionCommandInput\n ): Promise<SearchPlaceIndexForPositionCommandOutput> {\n return await this.client.send(\n new SearchPlaceIndexForPositionCommand(\n searchPlaceIndexForPositionCommandInput\n )\n );\n }\n}\n", "import { Logger } from \"@aws-lambda-powertools/logger\";\nimport { Metrics } from \"@aws-lambda-powertools/metrics\";\nimport { Tracer } from \"@aws-lambda-powertools/tracer\";\nimport middy, { MiddlewareObj } from \"@middy/core\";\nimport assert from \"node:assert\";\nimport { getLoggerWithScope } from \"../utils/logger.js\";\n\nexport const plumbingMiddleware = (): MiddlewareObj => {\n assert(\n process.env.POWERTOOLS_METRICS_NAMESPACE,\n \"POWERTOOLS_METRICS_NAMESPACE is not configured\"\n );\n\n assert(\n process.env.POWERTOOLS_SERVICE_NAME,\n \"POWERTOOLS_SERVICE_NAME is not configured\"\n );\n\n const metrics = new Metrics();\n const rootlogger = new Logger();\n const tracer = new Tracer();\n\n let segment: any;\n let subsegment: any;\n let handlerSegment: any;\n\n const before: middy.MiddlewareFn = async ({ context, event }) => {\n const logger = getLoggerWithScope(\"plumbingMiddleware.before\", rootlogger);\n logger.addContext(context);\n logger.logEventIfEnabled(event);\n\n segment = tracer.getSegment();\n\n if (!segment) {\n logger.error(\"Failed to get segment\");\n return;\n }\n\n metrics.captureColdStartMetric();\n\n // Create subsegment for the function & set it as active\n handlerSegment = segment.addNewSubsegment(`## ${process.env._HANDLER}`);\n tracer.setSegment(handlerSegment);\n tracer.annotateColdStart();\n tracer.addServiceNameAnnotation();\n\n // Add annotation for the awsRequestId\n tracer.putAnnotation(\"awsRequestId\", context.awsRequestId);\n\n // Create another subsegment & set it as active\n subsegment = handlerSegment.addNewSubsegment(\"### MySubSegment\");\n tracer.setSegment(subsegment);\n\n context.clientContext = {\n client: context.clientContext?.client || {\n appPackageName: \"\",\n appTitle: \"\",\n appVersionCode: \"\",\n appVersionName: \"\",\n installationId: \"\"\n },\n env: context.clientContext?.env || {\n platform: \"\",\n platformVersion: \"\",\n make: \"\",\n model: \"\",\n locale: \"\"\n },\n Custom: { tracer, logger, metrics }\n };\n };\n\n const after: middy.MiddlewareFn = async (): Promise<void> => {\n const logger = getLoggerWithScope(\"plumbingMiddleware.after\", rootlogger);\n\n try {\n logger.debug(\"started closing in after\");\n subsegment.close(); // (### MySubSegment)\n handlerSegment.close(); // (## index.handler)\n\n // Set the facade segment as active again (the one created by AWS Lambda)\n tracer.setSegment(segment);\n // Publish all stored metrics\n metrics.publishStoredMetrics();\n logger.debug(\"finished closing in after\");\n } catch (error) {\n logger.error(\"error in after\", { error });\n throw error;\n }\n };\n\n return {\n before,\n after\n };\n};\n", "import { DynamoDBPersistenceLayer } from \"@aws-lambda-powertools/idempotency/dynamodb\";\nimport { Context } from \"aws-lambda\";\nimport { assertEnvVar } from \"../utils/assertUtils.js\";\nimport { Metrics } from \"@aws-lambda-powertools/metrics\";\nimport { Logger } from \"@aws-lambda-powertools/logger\";\nimport { Tracer } from \"@aws-lambda-powertools/tracer\";\n\nexport const getPersistenceStore = () => {\n return new DynamoDBPersistenceLayer({\n tableName: assertEnvVar(\"AC_IDEMPOTENCY_TABLE_NAME\")\n });\n};\n\nexport interface ACLambdaContext extends Context {\n clientContext?: {\n Custom?: {\n metrics: Metrics;\n logger: Logger;\n tracer: Tracer;\n };\n client: {\n appPackageName: string;\n appTitle: string;\n appVersionCode: string;\n appVersionName: string;\n installationId: string;\n };\n env: {\n platform: string;\n platformVersion: string;\n make: string;\n model: string;\n locale: string;\n };\n };\n}\n\nexport { Logger, Metrics, Tracer };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["assert", "assert", "assert", "assert", "assert", "assert", "assert", "assert", "assert", "assert", "assert", "assert", "Logger", "assert", "assert", "Logger", "Metrics", "Logger", "Tracer"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
|
|
2
2
|
import { AssumeRoleCommandOutput } from "@aws-sdk/client-sts";
|
|
3
3
|
import { DynamoDBDocumentClient, GetCommandInput, GetCommandOutput, PutCommandInput, PutCommandOutput, QueryCommandInput, QueryCommandOutput, UpdateCommandInput, UpdateCommandOutput } from "@aws-sdk/lib-dynamodb";
|
|
4
|
-
import { GenericLogger } from "
|
|
4
|
+
import { GenericLogger } from "../utils/types.js";
|
|
5
5
|
export declare class DynamoDBService {
|
|
6
6
|
logger: GenericLogger;
|
|
7
7
|
client: DynamoDBClient;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LocationClient, SearchPlaceIndexForPositionCommandInput, SearchPlaceIndexForPositionCommandOutput } from "@aws-sdk/client-location";
|
|
2
2
|
import { AssumeRoleCommandOutput } from "@aws-sdk/client-sts";
|
|
3
|
-
import { GenericLogger } from "
|
|
3
|
+
import { GenericLogger } from "../utils/types.js";
|
|
4
4
|
export declare class LocationService {
|
|
5
5
|
logger: GenericLogger;
|
|
6
6
|
client: LocationClient;
|
package/lib/services/s3.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { GetObjectCommandInput, HeadObjectCommandInput, ListObjectsV2CommandInput, PutObjectCommandInput, PutObjectCommandOutput, S3Client } from "@aws-sdk/client-s3";
|
|
4
4
|
import { AssumeRoleCommandOutput } from "@aws-sdk/client-sts";
|
|
5
5
|
import { PassThrough } from "node:stream";
|
|
6
|
-
import { GenericLogger } from "
|
|
6
|
+
import { GenericLogger } from "../utils/types.js";
|
|
7
7
|
export declare class S3Service {
|
|
8
8
|
logger: GenericLogger;
|
|
9
9
|
client: S3Client;
|
package/lib/services/sqs.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DeleteMessageCommandInput, DeleteMessageCommandOutput, ReceiveMessageCommandInput, ReceiveMessageCommandOutput, SQSClient, SendMessageBatchCommandInput, SendMessageBatchCommandOutput, SendMessageCommandInput, SendMessageCommandOutput } from "@aws-sdk/client-sqs";
|
|
2
2
|
import { AssumeRoleCommandOutput } from "@aws-sdk/client-sts";
|
|
3
|
-
import { GenericLogger } from "
|
|
3
|
+
import { GenericLogger } from "../utils/types.js";
|
|
4
4
|
export declare class SQSService {
|
|
5
5
|
logger: GenericLogger;
|
|
6
6
|
client: SQSClient;
|
package/lib/services/ssm.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GetParameterCommandInput, GetParameterCommandOutput, PutParameterCommandInput, PutParameterCommandOutput, SSMClient } from "@aws-sdk/client-ssm";
|
|
2
2
|
import { AssumeRoleCommandOutput } from "@aws-sdk/client-sts";
|
|
3
|
-
import { GenericLogger } from "
|
|
3
|
+
import { GenericLogger } from "../utils/types.js";
|
|
4
4
|
export declare class SSMService {
|
|
5
5
|
logger: GenericLogger;
|
|
6
6
|
client: SSMClient;
|
package/lib/services/sts.d.ts
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AssumeRoleCommandOutput } from "@aws-sdk/client-sts";
|
|
2
|
+
import { GenericLogger } from "./types.js";
|
|
3
|
+
export declare const getObjectWithAssumeRoleCommandOutputAttribute: (assumeRoleCommandOutput?: AssumeRoleCommandOutput) => {
|
|
4
|
+
credentials: {
|
|
5
|
+
accessKeyId: string;
|
|
6
|
+
secretAccessKey: string;
|
|
7
|
+
sessionToken: string;
|
|
8
|
+
};
|
|
9
|
+
} | {
|
|
10
|
+
credentials?: undefined;
|
|
11
|
+
};
|
|
12
|
+
export declare const getObjectWithStackAttribute: (error: any) => {
|
|
13
|
+
stack: string;
|
|
14
|
+
} | {
|
|
15
|
+
stack?: undefined;
|
|
16
|
+
};
|
|
17
|
+
export declare const getObjectWithLoggerAttribute: (logger?: GenericLogger) => {
|
|
18
|
+
logger: GenericLogger;
|
|
19
|
+
} | {
|
|
20
|
+
logger?: undefined;
|
|
21
|
+
};
|
package/lib/utils/index.d.ts
CHANGED
package/package.json
CHANGED
|
File without changes
|