@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 CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from "./services/index.js";
2
2
  export * from "./lambda/index.js";
3
3
  export * from "./utils/index.js";
4
- export type * from "./services/types.js";
4
+ export type * from "./utils/types.js";
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
- assert(region, "Region must be provided if client is not passed");
107
+ assert2(region, "Region must be provided if client is not passed");
26
108
  this.client = new S3Client({
27
109
  region,
28
- logger: this.logger,
29
- ...assumeRoleCommandOutput ? {
30
- credentials: {
31
- accessKeyId: assumeRoleCommandOutput?.Credentials?.AccessKeyId,
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 assert2 from "node:assert/strict";
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
- assert2(region, "Region must be provided if client is not passed");
195
+ assert3(region, "Region must be provided if client is not passed");
118
196
  this.client = new DynamoDBClient({
119
197
  region,
120
- logger: this.logger,
121
- ...assumeRoleCommandOutput ? {
122
- credentials: {
123
- accessKeyId: assumeRoleCommandOutput?.Credentials?.AccessKeyId,
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 assert3 from "node:assert/strict";
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
- assert3(region, "Region must be provided if client is not passed");
246
+ assert4(region, "Region must be provided if client is not passed");
173
247
  this.client = new SSMClient({
174
248
  region,
175
- logger: this.logger,
176
- ...assumeRoleCommandOutput ? {
177
- credentials: {
178
- accessKeyId: assumeRoleCommandOutput?.Credentials?.AccessKeyId,
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 assert4 from "node:assert/strict";
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
- assert4(region, "Region must be provided if client is not passed");
286
+ assert5(region, "Region must be provided if client is not passed");
217
287
  this.client = new SQSClient({
218
288
  region,
219
- logger: this.logger,
220
- ...assumeRoleCommandOutput ? {
221
- credentials: {
222
- accessKeyId: assumeRoleCommandOutput?.Credentials?.AccessKeyId,
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 assert5 from "node:assert/strict";
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
- assert5(region, "Region must be provided if client is not passed");
329
+ assert6(region, "Region must be provided if client is not passed");
264
330
  this.client = new STSClient({
265
331
  region,
266
- logger: this.logger
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 assert6 from "node:assert/strict";
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
- assert6(region, "Region must be provided if client is not passed");
365
+ assert7(region, "Region must be provided if client is not passed");
300
366
  this.client = new LocationClient({
301
367
  region,
302
- logger: this.logger,
303
- ...assumeRoleCommandOutput ? {
304
- credentials: {
305
- accessKeyId: assumeRoleCommandOutput?.Credentials?.AccessKeyId,
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 assert7 from "node:assert";
388
+ import assert8 from "node:assert";
327
389
  var plumbingMiddleware = () => {
328
- assert7(
390
+ assert8(
329
391
  process.env.POWERTOOLS_METRICS_NAMESPACE,
330
392
  "POWERTOOLS_METRICS_NAMESPACE is not configured"
331
393
  );
332
- assert7(
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 logger = new Logger();
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.appendKeys({
344
- awsRequestId: context.awsRequestId
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
- localLogger.error("Failed to get segment");
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 localLogger = logger.createChild();
382
- localLogger.appendKeys({ function: "plumbingMiddleware.after" });
440
+ const logger = getLoggerWithScope("plumbingMiddleware.after", rootlogger);
383
441
  try {
384
- localLogger.debug("started closing in after");
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
- localLogger.debug("finished closing in after");
447
+ logger.debug("finished closing in after");
390
448
  } catch (error) {
391
- localLogger.error("error in after", { error });
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 Logger2 } from "@aws-lambda-powertools/logger";
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
- Logger2 as Logger,
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/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", "../src/utils/assertUtils.ts", "../src/utils/logger.ts", "../src/utils/normalizeErrorMessage.ts", "../src/utils/thumbsKey.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 \"./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": "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",
6
- "names": ["assert", "assert", "assert", "assert", "assert", "assert", "assert", "Metrics", "Logger", "Tracer", "Logger"]
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": ";AAAA;AAAA,EACE;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA;AAAA,EAGA;AAAA,OACK;AAEP,SAAS,cAAc;AACvB,SAAS,mBAAmB;AAE5B,OAAOA,aAAY;;;AChBnB,OAAO,YAAY;AAEZ,IAAM,eAAe,CAAC,WAA2B;AACtD,SAAO,QAAQ,IAAI,MAAM,GAAG,GAAG,MAAM,aAAa;AAClD,SAAO,QAAQ,IAAI,MAAM;AAC3B;AAEO,IAAM,eAAe,CAAC,UAAsC;AACjE,SAAO,OAAO,UAAU,UAAU,uBAAuB;AACzD,SAAO,MAAM,SAAS,GAAG,gBAAgB;AACzC,SAAO;AACT;;;ACXA,SAAS,cAAc;AAGhB,IAAM,aAAa,IAAI,OAAO;AAAA,EACnC,aACE,QAAQ,IAAI,2BACZ,QAAQ,IAAI,4BACZ;AACJ,CAAC;AAEM,IAAM,qBAAqB,CAChC,OACA,SAAiB,eACd;AACH,QAAM,cAAc,OAAO,YAAY;AACvC,cAAY,WAAW,EAAE,MAAM,CAAC;AAChC,SAAO;AACT;;;ACjBO,IAAM,wBAAwB,CAAC,UAA2B;AAC/D,MAAI,iBAAiB,OAAO;AAC1B,WAAO,MAAM;AAAA,EACf,WAAW,OAAO,UAAU,UAAU;AACpC,WAAO;AAAA,EACT,WAAW,OAAO,UAAU,YAAY,UAAU,MAAM;AACtD,WAAO,KAAK,UAAU,KAAK;AAAA,EAC7B,OAAO;AACL,WAAO,OAAO,KAAK;AAAA,EACrB;AACF;;;ACVA,SAAS,eAAe;AAEjB,IAAM,iBAAiB;AACvB,IAAM,gBAAgB;AACtB,IAAM,iBAAiB;AACvB,IAAM,2BAA2B;AACjC,IAAM,qBAAqB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,wBAAwB;AAAA,EACnC,CAAC,KAAK,GAAG;AAAA,EACT,CAAC,MAAM,GAAG;AACZ;AAEO,IAAM,eAAe,CAAC;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAKM;AACJ,QAAM,MAAM,gBAAgB,GAAG;AAE/B,QAAM,iBAAiB,CAAC,gBAAgB,aAAa,EAAE,SAAS,GAAG,IAC/D,MACA,GAAG,IAAI,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,IAAI,wBAAwB;AAExE,SAAO,GAAG,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,cAAc;AACvD;AAEO,IAAM,kBAAkB,CAAC,QAC9B,QAAQ,GAAG,EAAE,MAAM,CAAC,EAAE,YAAY;AAE7B,IAAM,qBAAqB,CAAC,QAAgB;AACjD,QAAM,MAAM,gBAAgB,GAAG;AAC/B,SAAO,mBAAmB,SAAS,GAAG;AACxC;;;ACxCO,IAAM,gDAAgD,CAC3D,4BAEA,0BACI;AAAA,EACE,aAAa;AAAA,IACX,aAAa,yBAAyB,aAAa;AAAA,IACnD,iBACE,yBAAyB,aAAa;AAAA,IACxC,cAAc,yBAAyB,aAAa;AAAA,EACtD;AACF,IACA,CAAC;AAEA,IAAM,8BAA8B,CAAC,UAC1C,SAAS,iBAAiB,QAAQ,EAAE,OAAO,MAAM,MAAM,IAAI,CAAC;AAEvD,IAAM,+BAA+B,CAAC,WAC3C,SACI;AAAA,EACE;AACF,IACA,CAAC;;;ALHA,IAAM,YAAN,MAAgB;AAAA,EACrB;AAAA,EACA;AAAA,EACA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAKG;AACD,SAAK,SAAS;AAEd,QAAI,QAAQ;AACV,WAAK,SAAS;AAAA,IAChB,OAAO;AACL,MAAAC,QAAO,QAAQ,iDAAiD;AAChE,WAAK,SAAS,IAAI,SAAS;AAAA,QACzB;AAAA,QACA,GAAG,6BAA6B,KAAK,MAAM;AAAA,QAC3C,GAAG;AAAA,UACD;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,qBAAqB,uBAA8C;AACjE,SAAK,OAAO,MAAM,uBAAuB;AAEzC,UAAM,OAAO,IAAI,YAAY;AAE7B,UAAM,kBAAkB,IAAI,OAAO;AAAA,MACjC,QAAQ,KAAK;AAAA,MACb,QAAQ;AAAA,QACN,GAAG;AAAA,QACH,MAAM;AAAA,MACR;AAAA,IACF,CAAC;AAED,UAAM,cAAc,gBACjB,KAAK,EACL,KAAK,MAAM,KAAK,OAAO,MAAM,wBAAwB,CAAC,EACtD,MAAM,CAAC,QAAQ;AACd,WAAK,OAAO,MAAM,uBAAuB,GAAG;AAC5C,WAAK,QAAQ,GAAG;AAAA,IAClB,CAAC;AAEH,WAAO,EAAE,QAAQ,MAAM,MAAM,YAAY;AAAA,EAC3C;AAAA,EAEA,MAAM,uBAAuB,uBAA8C;AACzE,SAAK,OAAO,MAAM,yBAAyB;AAE3C,UAAM,OAAO,MAAM,KAAK,OAAO;AAAA,MAC7B,IAAI,iBAAiB,qBAAqB;AAAA,IAC5C;AAEA,SAAK,OAAO,MAAM,0BAA0B;AAE5C,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,cAAc,2BAAsD;AACxE,WAAO,MAAM,KAAK,OAAO;AAAA,MACvB,IAAI,qBAAqB,yBAAyB;AAAA,IACpD;AAAA,EACF;AAAA,EAEA,MAAM,UACJ,uBACiB;AACjB,UAAM,SAAS,MAAM,KAAK,uBAAuB,qBAAqB;AAEtE,WAAO,OAAO,KAAK,MAAM,OAAO,qBAAqB,CAAC;AAAA,EACxD;AAAA,EAEA,MAAM,UACJ,uBACiC;AACjC,WAAO,MAAM,KAAK,OAAO,KAAK,IAAI,iBAAiB,qBAAqB,CAAC;AAAA,EAC3E;AAAA,EAEA,MAAM,WAAW,wBAAgD;AAC/D,WAAO,MAAM,KAAK,OAAO;AAAA,MACvB,IAAI,kBAAkB,sBAAsB;AAAA,IAC9C;AAAA,EACF;AAAA,EAEA,MAAM,oBACJ,wBACkB;AAClB,QAAI;AACF,YAAM,KAAK,OAAO,KAAK,IAAI,kBAAkB,sBAAsB,CAAC;AACpE,aAAO;AAAA,IACT,SAAS,OAAO;AACd,UAAI,MAAM,SAAS,YAAY;AAC7B,eAAO;AAAA,MACT;AACA,YAAM;AAAA,IACR;AAAA,EACF;AACF;;;AM/HA,SAAS,sBAAsB;AAE/B;AAAA,EACE;AAAA,EACA;AAAA,EAGA;AAAA,EAGA;AAAA,EAGA;AAAA,OAGK;AAEP,OAAOC,aAAY;AAMZ,IAAM,kBAAN,MAAsB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAKG;AACD,SAAK,SAAS;AAEd,QAAI,QAAQ;AACV,WAAK,SAAS;AAAA,IAChB,OAAO;AACL,MAAAC,QAAO,QAAQ,iDAAiD;AAChE,WAAK,SAAS,IAAI,eAAe;AAAA,QAC/B;AAAA,QACA,GAAG,6BAA6B,KAAK,MAAM;AAAA,QAC3C,GAAG;AAAA,UACD;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAEA,SAAK,iBAAiB,uBAAuB,KAAK,KAAK,MAAM;AAAA,EAC/D;AAAA,EAEA,MAAM,WACJ,iBAC2B;AAC3B,WAAO,MAAM,KAAK,eAAe,KAAK,IAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAAA,EAEA,MAAM,cACJ,oBAC8B;AAC9B,WAAO,MAAM,KAAK,eAAe;AAAA,MAC/B,IAAI,cAAc,kBAAkB;AAAA,IACtC;AAAA,EACF;AAAA,EAEA,MAAM,aACJ,mBAC6B;AAC7B,WAAO,MAAM,KAAK,eAAe,KAAK,IAAI,aAAa,iBAAiB,CAAC;AAAA,EAC3E;AAAA,EAEA,MAAM,WACJ,iBAC2B;AAC3B,WAAO,MAAM,KAAK,eAAe,KAAK,IAAI,WAAW,eAAe,CAAC;AAAA,EACvE;AAAA,EAEA,MAAM,kBACJ,YACkB;AAClB,UAAM,SAAS,MAAM,KAAK,WAAW,UAAU;AAE/C,WAAO,CAAC,CAAC,OAAO;AAAA,EAClB;AACF;;;AC3FA;AAAA,EACE;AAAA,EAGA;AAAA,EAGA;AAAA,OACK;AAEP,OAAOC,aAAY;AAOZ,IAAM,aAAN,MAAiB;AAAA,EACtB;AAAA,EACA;AAAA,EAEA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAKI,CAAC,GAAG;AACN,SAAK,SAAS;AAEd,QAAI,QAAQ;AACV,WAAK,SAAS;AAAA,IAChB,OAAO;AACL,MAAAC,QAAO,QAAQ,iDAAiD;AAChE,WAAK,SAAS,IAAI,UAAU;AAAA,QAC1B;AAAA,QACA,GAAG,6BAA6B,KAAK,MAAM;AAAA,QAC3C,GAAG;AAAA,UACD;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAM,aACJ,QACoC;AACpC,WAAO,MAAM,KAAK,OAAO,KAAK,IAAI,oBAAoB,MAAM,CAAC;AAAA,EAC/D;AAAA,EAEA,MAAM,aACJ,QACoC;AACpC,WAAO,MAAM,KAAK,OAAO,KAAK,IAAI,oBAAoB,MAAM,CAAC;AAAA,EAC/D;AACF;;;AC3DA;AAAA,EACE;AAAA,EAGA;AAAA,EAGA;AAAA,EACA;AAAA,EAGA;AAAA,OAGK;AAGP,OAAOC,aAAY;AAMZ,IAAM,aAAN,MAAiB;AAAA,EACtB;AAAA,EACA;AAAA,EAEA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAKG;AACD,SAAK,SAAS;AAEd,QAAI,QAAQ;AACV,WAAK,SAAS;AAAA,IAChB,OAAO;AACL,MAAAC,QAAO,QAAQ,iDAAiD;AAChE,WAAK,SAAS,IAAI,UAAU;AAAA,QAC1B;AAAA,QACA,GAAG,6BAA6B,KAAK,MAAM;AAAA,QAC3C,GAAG;AAAA,UACD;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAM,YACJ,QACmC;AACnC,WAAO,MAAM,KAAK,OAAO,KAAK,IAAI,mBAAmB,MAAM,CAAC;AAAA,EAC9D;AAAA,EAEA,MAAM,iBACJ,QACwC;AACxC,WAAO,MAAM,KAAK,OAAO,KAAK,IAAI,wBAAwB,MAAM,CAAC;AAAA,EACnE;AAAA,EAEA,MAAM,eACJ,QACsC;AACtC,WAAO,MAAM,KAAK,OAAO,KAAK,IAAI,sBAAsB,MAAM,CAAC;AAAA,EACjE;AAAA,EAEA,MAAM,cACJ,QACqC;AACrC,WAAO,MAAM,KAAK,OAAO,KAAK,IAAI,qBAAqB,MAAM,CAAC;AAAA,EAChE;AACF;;;AC7EA;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AACP,OAAOC,aAAY;AAIZ,IAAM,aAAN,MAAiB;AAAA,EACtB;AAAA,EACA;AAAA,EAEA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAIG;AACD,SAAK,SAAS;AAEd,QAAI,QAAQ;AACV,WAAK,SAAS;AAAA,IAChB,OAAO;AACL,MAAAC,QAAO,QAAQ,iDAAiD;AAChE,WAAK,SAAS,IAAI,UAAU;AAAA,QAC1B;AAAA,QACA,GAAG,6BAA6B,KAAK,MAAM;AAAA,MAC7C,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAM,oBAAoB;AACxB,WAAO,MAAM,KAAK,OAAO,KAAK,IAAI,yBAAyB,CAAC,CAAC,CAAC;AAAA,EAChE;AAAA,EAEA,MAAM,WAAW,wBAAgD;AAC/D,WAAO,MAAM,KAAK,OAAO;AAAA,MACvB,IAAI,kBAAkB,sBAAsB;AAAA,IAC9C;AAAA,EACF;AACF;;;AC7CA;AAAA,EACE;AAAA,EACA;AAAA,OAGK;AAEP,OAAOC,aAAY;AAOZ,IAAM,kBAAN,MAAsB;AAAA,EAC3B;AAAA,EACA;AAAA,EAEA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAKG;AACD,SAAK,SAAS;AAEd,QAAI,QAAQ;AACV,WAAK,SAAS;AAAA,IAChB,OAAO;AACL,MAAAC,QAAO,QAAQ,iDAAiD;AAChE,WAAK,SAAS,IAAI,eAAe;AAAA,QAC/B;AAAA,QACA,GAAG,6BAA6B,KAAK,MAAM;AAAA,QAC3C,GAAG;AAAA,UACD;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAM,mCACJ,yCACmD;AACnD,WAAO,MAAM,KAAK,OAAO;AAAA,MACvB,IAAI;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACtDA,SAAS,UAAAC,eAAc;AACvB,SAAS,eAAe;AACxB,SAAS,cAAc;AAEvB,OAAOC,aAAY;AAGZ,IAAM,qBAAqB,MAAqB;AACrD,EAAAC;AAAA,IACE,QAAQ,IAAI;AAAA,IACZ;AAAA,EACF;AAEA,EAAAA;AAAA,IACE,QAAQ,IAAI;AAAA,IACZ;AAAA,EACF;AAEA,QAAM,UAAU,IAAI,QAAQ;AAC5B,QAAM,aAAa,IAAIC,QAAO;AAC9B,QAAM,SAAS,IAAI,OAAO;AAE1B,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,QAAM,SAA6B,OAAO,EAAE,SAAS,MAAM,MAAM;AAC/D,UAAM,SAAS,mBAAmB,6BAA6B,UAAU;AACzE,WAAO,WAAW,OAAO;AACzB,WAAO,kBAAkB,KAAK;AAE9B,cAAU,OAAO,WAAW;AAE5B,QAAI,CAAC,SAAS;AACZ,aAAO,MAAM,uBAAuB;AACpC;AAAA,IACF;AAEA,YAAQ,uBAAuB;AAG/B,qBAAiB,QAAQ,iBAAiB,MAAM,QAAQ,IAAI,QAAQ,EAAE;AACtE,WAAO,WAAW,cAAc;AAChC,WAAO,kBAAkB;AACzB,WAAO,yBAAyB;AAGhC,WAAO,cAAc,gBAAgB,QAAQ,YAAY;AAGzD,iBAAa,eAAe,iBAAiB,kBAAkB;AAC/D,WAAO,WAAW,UAAU;AAE5B,YAAQ,gBAAgB;AAAA,MACtB,QAAQ,QAAQ,eAAe,UAAU;AAAA,QACvC,gBAAgB;AAAA,QAChB,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,MAClB;AAAA,MACA,KAAK,QAAQ,eAAe,OAAO;AAAA,QACjC,UAAU;AAAA,QACV,iBAAiB;AAAA,QACjB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,MACV;AAAA,MACA,QAAQ,EAAE,QAAQ,QAAQ,QAAQ;AAAA,IACpC;AAAA,EACF;AAEA,QAAM,QAA4B,YAA2B;AAC3D,UAAM,SAAS,mBAAmB,4BAA4B,UAAU;AAExE,QAAI;AACF,aAAO,MAAM,0BAA0B;AACvC,iBAAW,MAAM;AACjB,qBAAe,MAAM;AAGrB,aAAO,WAAW,OAAO;AAEzB,cAAQ,qBAAqB;AAC7B,aAAO,MAAM,2BAA2B;AAAA,IAC1C,SAAS,OAAO;AACd,aAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC;AACxC,YAAM;AAAA,IACR;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;;AC/FA,SAAS,gCAAgC;AAGzC,SAAS,WAAAC,gBAAe;AACxB,SAAS,UAAAC,eAAc;AACvB,SAAS,UAAAC,eAAc;AAEhB,IAAM,sBAAsB,MAAM;AACvC,SAAO,IAAI,yBAAyB;AAAA,IAClC,WAAW,aAAa,2BAA2B;AAAA,EACrD,CAAC;AACH;",
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 "./types.js";
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 "./types.js";
3
+ import { GenericLogger } from "../utils/types.js";
4
4
  export declare class LocationService {
5
5
  logger: GenericLogger;
6
6
  client: LocationClient;
@@ -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 "./types.js";
6
+ import { GenericLogger } from "../utils/types.js";
7
7
  export declare class S3Service {
8
8
  logger: GenericLogger;
9
9
  client: S3Client;
@@ -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 "./types.js";
3
+ import { GenericLogger } from "../utils/types.js";
4
4
  export declare class SQSService {
5
5
  logger: GenericLogger;
6
6
  client: SQSClient;
@@ -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 "./types.js";
3
+ import { GenericLogger } from "../utils/types.js";
4
4
  export declare class SSMService {
5
5
  logger: GenericLogger;
6
6
  client: SSMClient;
@@ -1,5 +1,5 @@
1
1
  import { AssumeRoleCommandInput, STSClient } from "@aws-sdk/client-sts";
2
- import { GenericLogger } from "./types.js";
2
+ import { GenericLogger } from "../utils/types.js";
3
3
  export declare class STSService {
4
4
  logger: GenericLogger;
5
5
  client: STSClient;
@@ -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
+ };
@@ -2,3 +2,4 @@ export * from "./assertUtils.js";
2
2
  export * from "./logger.js";
3
3
  export * from "./normalizeErrorMessage.js";
4
4
  export * from "./thumbsKey.js";
5
+ export * from "./helpers.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aspan-corporation/ac-shared",
3
- "version": "1.0.21",
3
+ "version": "1.0.23",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "lib/index.js",
File without changes