From 92d2201960d6c78d0f64728f342090a1432d7d56 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 11 Jul 2024 09:50:49 +0200 Subject: [PATCH 01/12] chore(ci): update layer ARN on documentation (#2764) Co-authored-by: aws-powertools-bot <151832416+aws-powertools-bot@users.noreply.github.com> --- docs/index.md | 72 +++++++++++++++++++++++++-------------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/docs/index.md b/docs/index.md index 6f29a6cb19..fd96ce3ea1 100644 --- a/docs/index.md +++ b/docs/index.md @@ -69,7 +69,7 @@ You can use Powertools for AWS Lambda (TypeScript) by installing it with your fa For the latter, make sure to replace `{region}` with your AWS region, e.g., `eu-west-1`. - __arn:aws:lambda:{region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8__{: .copyMe}:clipboard: + __arn:aws:lambda:{region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9__{: .copyMe}:clipboard: ???+ note "Code snippets for popular infrastructure as code frameworks" @@ -89,7 +89,7 @@ You can use Powertools for AWS Lambda (TypeScript) by installing it with your fa const powertoolsLayer = LayerVersion.fromLayerVersionArn( this, 'PowertoolsLayer', - `arn:aws:lambda:${Stack.of(this).region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8` + `arn:aws:lambda:${Stack.of(this).region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9` ); new Function(this, 'Function', { @@ -126,7 +126,7 @@ You can use Powertools for AWS Lambda (TypeScript) by installing it with your fa Type: AWS::Serverless::Function Properties: Layers: - - !Sub arn:aws:lambda:${AWS::Region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8 + - !Sub arn:aws:lambda:${AWS::Region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9 ``` If you use `esbuild` to bundle your code, make sure to exclude `@aws-lambda-powertools/*` and `@aws-sdk/*` from being bundled since the packages are already present the layer: @@ -155,7 +155,7 @@ You can use Powertools for AWS Lambda (TypeScript) by installing it with your fa hello: handler: lambda_function.lambda_handler layers: - - arn:aws:lambda:${aws:region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8 + - arn:aws:lambda:${aws:region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9 ``` If you use `esbuild` to bundle your code, make sure to exclude `@aws-lambda-powertools/*` and `@aws-sdk/*` from being bundled since the packages are already present the layer: @@ -190,7 +190,7 @@ You can use Powertools for AWS Lambda (TypeScript) by installing it with your fa role = ... handler = "index.handler" runtime = "nodejs20.x" - layers = ["arn:aws:lambda:{aws::region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8"] + layers = ["arn:aws:lambda:{aws::region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9"] source_code_hash = filebase64sha256("lambda_function_payload.zip") } ``` @@ -208,7 +208,7 @@ You can use Powertools for AWS Lambda (TypeScript) by installing it with your fa const lambdaFunction = new aws.lambda.Function('function', { layers: [ - pulumi.interpolate`arn:aws:lambda:${aws.getRegionOutput().name}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8` + pulumi.interpolate`arn:aws:lambda:${aws.getRegionOutput().name}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9` ], code: new pulumi.asset.FileArchive('lambda_function_payload.zip'), tracingConfig: { @@ -232,7 +232,7 @@ You can use Powertools for AWS Lambda (TypeScript) by installing it with your fa ? Do you want to configure advanced settings? Yes ... ? Do you want to enable Lambda layers for this function? Yes - ? Enter up to 5 existing Lambda layer ARNs (comma-separated): arn:aws:lambda:{aws::region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8 + ? Enter up to 5 existing Lambda layer ARNs (comma-separated): arn:aws:lambda:{aws::region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9 ❯ amplify push -y # Updating an existing function and add the layer @@ -242,7 +242,7 @@ You can use Powertools for AWS Lambda (TypeScript) by installing it with your fa - Name: ? Which setting do you want to update? Lambda layers configuration ? Do you want to enable Lambda layers for this function? Yes - ? Enter up to 5 existing Lambda layer ARNs (comma-separated): arn:aws:lambda:{aws::region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8 + ? Enter up to 5 existing Lambda layer ARNs (comma-separated): arn:aws:lambda:{aws::region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9 ? Do you want to edit the local lambda function now? No ``` @@ -255,33 +255,33 @@ You can use the Lambda Layer both with CommonJS and ESM (ECMAScript modules) for ??? note "Click to expand and copy any regional Lambda Layer ARN" | Region | Layer ARN | | ---------------- | ------------------------------------------------------------------------------------------------------------- | - | `us-east-1` | [arn:aws:lambda:us-east-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `us-east-2` | [arn:aws:lambda:us-east-2:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `us-west-1` | [arn:aws:lambda:us-west-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `us-west-2` | [arn:aws:lambda:us-west-2:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `ap-south-1` | [arn:aws:lambda:ap-south-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `ap-east-1` | [arn:aws:lambda:ap-east-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `ap-northeast-1` | [arn:aws:lambda:ap-northeast-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `ap-northeast-2` | [arn:aws:lambda:ap-northeast-2:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `ap-northeast-3` | [arn:aws:lambda:ap-northeast-3:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `ap-southeast-1` | [arn:aws:lambda:ap-southeast-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `ap-southeast-2` | [arn:aws:lambda:ap-southeast-2:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `ap-southeast-3` | [arn:aws:lambda:ap-southeast-3:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `ap-southeast-4` | [arn:aws:lambda:ap-southeast-4:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `eu-central-1` | [arn:aws:lambda:eu-central-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `eu-central-2` | [arn:aws:lambda:eu-central-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `eu-west-1` | [arn:aws:lambda:eu-west-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `eu-west-2` | [arn:aws:lambda:eu-west-2:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `eu-west-3` | [arn:aws:lambda:eu-west-3:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `eu-north-1` | [arn:aws:lambda:eu-north-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `eu-south-1` | [arn:aws:lambda:eu-south-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `eu-south-2` | [arn:aws:lambda:eu-south-2:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `ca-central-1` | [arn:aws:lambda:ca-central-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `ca-west-1` | [arn:aws:lambda:ca-west-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `sa-east-1` | [arn:aws:lambda:sa-east-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `af-south-1` | [arn:aws:lambda:af-south-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `me-south-1` | [arn:aws:lambda:me-south-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | - | `il-central-1` | [arn:aws:lambda:il-central-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8](#){: .copyMe}:clipboard: | + | `us-east-1` | [arn:aws:lambda:us-east-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `us-east-2` | [arn:aws:lambda:us-east-2:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `us-west-1` | [arn:aws:lambda:us-west-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `us-west-2` | [arn:aws:lambda:us-west-2:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `ap-south-1` | [arn:aws:lambda:ap-south-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `ap-east-1` | [arn:aws:lambda:ap-east-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `ap-northeast-1` | [arn:aws:lambda:ap-northeast-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `ap-northeast-2` | [arn:aws:lambda:ap-northeast-2:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `ap-northeast-3` | [arn:aws:lambda:ap-northeast-3:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `ap-southeast-1` | [arn:aws:lambda:ap-southeast-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `ap-southeast-2` | [arn:aws:lambda:ap-southeast-2:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `ap-southeast-3` | [arn:aws:lambda:ap-southeast-3:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `ap-southeast-4` | [arn:aws:lambda:ap-southeast-4:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `eu-central-1` | [arn:aws:lambda:eu-central-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `eu-central-2` | [arn:aws:lambda:eu-central-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `eu-west-1` | [arn:aws:lambda:eu-west-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `eu-west-2` | [arn:aws:lambda:eu-west-2:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `eu-west-3` | [arn:aws:lambda:eu-west-3:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `eu-north-1` | [arn:aws:lambda:eu-north-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `eu-south-1` | [arn:aws:lambda:eu-south-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `eu-south-2` | [arn:aws:lambda:eu-south-2:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `ca-central-1` | [arn:aws:lambda:ca-central-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `ca-west-1` | [arn:aws:lambda:ca-west-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `sa-east-1` | [arn:aws:lambda:sa-east-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `af-south-1` | [arn:aws:lambda:af-south-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `me-south-1` | [arn:aws:lambda:me-south-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | + | `il-central-1` | [arn:aws:lambda:il-central-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9](#){: .copyMe}:clipboard: | **Want to inspect the contents of the Layer?** @@ -290,7 +290,7 @@ The pre-signed URL to download this Lambda Layer will be within `Location` key i Change `{aws::region}` to your AWS region, e.g. `eu-west-1`, and run the following command: ```bash title="AWS CLI command to download Lambda Layer content" -aws lambda get-layer-version-by-arn --arn arn:aws:lambda:{aws::region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:8 --region {aws::region} +aws lambda get-layer-version-by-arn --arn arn:aws:lambda:{aws::region}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:9 --region {aws::region} ``` ## Instrumentation From d6e92cc8ec2493856256556cd3051c7d76130f5f Mon Sep 17 00:00:00 2001 From: Alexander Schueren Date: Thu, 11 Jul 2024 12:33:09 +0200 Subject: [PATCH 02/12] docs(parser): add section on how to test parser using decorator (#2755) Co-authored-by: Andrea Amorosi --- docs/utilities/parser.md | 48 ++++++++++++++++++ examples/snippets/parser/handlerDecorator.ts | 20 ++++++++ .../parser/handlerSafeParseDecorator.ts | 36 +++++++++++++ .../snippets/parser/safeParseDecorator.ts | 7 ++- examples/snippets/parser/schema.ts | 4 +- examples/snippets/parser/unitTestDecorator.ts | 31 ++++++++++++ examples/snippets/parser/unitTestSafeParse.ts | 50 +++++++++++++++++++ 7 files changed, 194 insertions(+), 2 deletions(-) create mode 100644 examples/snippets/parser/handlerDecorator.ts create mode 100644 examples/snippets/parser/handlerSafeParseDecorator.ts create mode 100644 examples/snippets/parser/unitTestDecorator.ts create mode 100644 examples/snippets/parser/unitTestSafeParse.ts diff --git a/docs/utilities/parser.md b/docs/utilities/parser.md index 3784c37376..d8e836184d 100644 --- a/docs/utilities/parser.md +++ b/docs/utilities/parser.md @@ -249,3 +249,51 @@ The package `@types/aws-lambda` is a popular project that contains type definiti Powertools parser utility also bring AWS Lambda event types based on the built-in schema definitions. We recommend to use the types provided by the parser utility. If you encounter any issues or have any feedback, please [submit an issue](https://github.com/aws-powertools/powertools-lambda-typescript/issues/new/choose). + +## Testing your code + +When testing your handler with [**parser decorator**](#parse-events) you need to use double assetion to bypass TypeScript type checking in your tests. +This is useful when you want to test the handler for invalid payloads or when you want to test the error handling. +If you are you use middy middleware, you don't need to do this. + +=== "handlerDecorator.test.ts" + + ```typescript hl_lines="26" + --8<-- "examples/snippets/parser/unitTestDecorator.ts" + ``` + + 1. Use double assertion `as unknown as X` to bypass TypeScript type checking in your tests + +=== "handlerDecorator.ts" + + ```typescript + --8<-- "examples/snippets/parser/handlerDecorator.ts" + ``` + +=== "schema.ts" + + ```typescript + --8<-- "examples/snippets/parser/schema.ts" + ``` + +This also works when using `safeParse` option. + +=== "handlerSafeParse.test.ts" + + ```typescript hl_lines="21-29 35 45" + --8<-- "examples/snippets/parser/unitTestSafeParse.ts" + ``` + + 1. Use double assertion to pass expected types to the handler + +=== "handlerSafeParse.ts" + + ```typescript + --8<-- "examples/snippets/parser/handlerSafeParseDecorator.ts" + ``` + +=== "schema.ts" + + ```typescript + --8<-- "examples/snippets/parser/schema.ts" + ``` diff --git a/examples/snippets/parser/handlerDecorator.ts b/examples/snippets/parser/handlerDecorator.ts new file mode 100644 index 0000000000..c8b3cbd40a --- /dev/null +++ b/examples/snippets/parser/handlerDecorator.ts @@ -0,0 +1,20 @@ +import type { Context } from 'aws-lambda'; +import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { parser } from '@aws-lambda-powertools/parser'; +import { Logger } from '@aws-lambda-powertools/logger'; +import { orderSchema, type Order } from './schema.js'; + +const logger = new Logger(); + +class Lambda implements LambdaInterface { + @parser({ schema: orderSchema }) + public async handler(event: Order, _context: Context): Promise { + logger.info('Processing event', { event }); + + // ... business logic + return event.id; + } +} + +const myFunction = new Lambda(); +export const handler = myFunction.handler.bind(myFunction); diff --git a/examples/snippets/parser/handlerSafeParseDecorator.ts b/examples/snippets/parser/handlerSafeParseDecorator.ts new file mode 100644 index 0000000000..55a13e4519 --- /dev/null +++ b/examples/snippets/parser/handlerSafeParseDecorator.ts @@ -0,0 +1,36 @@ +import type { Context } from 'aws-lambda'; +import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { parser } from '@aws-lambda-powertools/parser'; +import { Logger } from '@aws-lambda-powertools/logger'; +import { orderSchema, type Order } from './schema.js'; +import { EventBridgeEnvelope } from '@aws-lambda-powertools/parser/envelopes'; +import type { + ParsedResult, + EventBridgeEvent, +} from '@aws-lambda-powertools/parser/types'; + +const logger = new Logger(); + +class Lambda implements LambdaInterface { + @parser({ + schema: orderSchema, + envelope: EventBridgeEnvelope, + safeParse: true, + }) + public async handler( + event: ParsedResult, + _context: Context + ): Promise { + logger.info('Processing event', { event }); + if (event.success) { + // ... business logic + return event.data.id; + } else { + logger.error('Failed to parse event', { event }); + throw new Error('Failed to parse event'); + } + } +} + +const myFunction = new Lambda(); +export const handler = myFunction.handler.bind(myFunction); diff --git a/examples/snippets/parser/safeParseDecorator.ts b/examples/snippets/parser/safeParseDecorator.ts index aaf4d19ca9..7e709c97a4 100644 --- a/examples/snippets/parser/safeParseDecorator.ts +++ b/examples/snippets/parser/safeParseDecorator.ts @@ -7,6 +7,7 @@ import type { EventBridgeEvent, } from '@aws-lambda-powertools/parser/types'; import { Logger } from '@aws-lambda-powertools/logger'; +import { EventBridgeEnvelope } from '@aws-lambda-powertools/parser/envelopes'; const logger = new Logger(); @@ -26,7 +27,11 @@ const orderSchema = z.object({ type Order = z.infer; class Lambda implements LambdaInterface { - @parser({ schema: orderSchema, safeParse: true }) // (1)! + @parser({ + schema: orderSchema, + envelope: EventBridgeEnvelope, + safeParse: true, + }) // (1)! public async handler( event: ParsedResult, _context: Context diff --git a/examples/snippets/parser/schema.ts b/examples/snippets/parser/schema.ts index f14db32fff..1340b40f26 100644 --- a/examples/snippets/parser/schema.ts +++ b/examples/snippets/parser/schema.ts @@ -13,4 +13,6 @@ const orderSchema = z.object({ optionalField: z.string().optional(), }); -export { orderSchema }; +type Order = z.infer; + +export { orderSchema, type Order }; diff --git a/examples/snippets/parser/unitTestDecorator.ts b/examples/snippets/parser/unitTestDecorator.ts new file mode 100644 index 0000000000..eabc1c0f59 --- /dev/null +++ b/examples/snippets/parser/unitTestDecorator.ts @@ -0,0 +1,31 @@ +import type { Context } from 'aws-lambda'; +import type { Order } from './schema.js'; +import { handler } from './decorator.js'; + +describe('Test handler', () => { + it('should parse event successfully', async () => { + const testEvent = { + id: 123, + description: 'test', + items: [ + { + id: 1, + quantity: 1, + description: 'item1', + }, + ], + }; + + await expect(handler(testEvent, {} as Context)).resolves.toEqual(123); + }); + + it('should throw error if event is invalid', async () => { + const testEvent = { foo: 'bar' }; + await expect( + handler( + testEvent as unknown as Order, // (1)! + {} as Context + ) + ).rejects.toThrow(); + }); +}); diff --git a/examples/snippets/parser/unitTestSafeParse.ts b/examples/snippets/parser/unitTestSafeParse.ts new file mode 100644 index 0000000000..9f83f3a0af --- /dev/null +++ b/examples/snippets/parser/unitTestSafeParse.ts @@ -0,0 +1,50 @@ +import type { Order } from './schema.js'; +import type { Context } from 'aws-lambda'; +import { handler } from './safeParseDecorator.js'; +import { + ParsedResult, + EventBridgeEvent, +} from '@aws-lambda-powertools/parser/types'; + +describe('Test handler', () => { + it('should parse event successfully', async () => { + const testEvent = { + version: '0', + id: '6a7e8feb-b491-4cf7-a9f1-bf3703467718', + 'detail-type': 'OrderPurchased', + source: 'OrderService', + account: '111122223333', + time: '2020-10-22T18:43:48Z', + region: 'us-west-1', + resources: ['some_additional'], + detail: { + id: 10876546789, + description: 'My order', + items: [ + { + id: 1015938732, + quantity: 1, + description: 'item xpto', + }, + ], + }, + }; + + await expect( + handler( + testEvent as unknown as ParsedResult, // (1)! + {} as Context + ) + ).resolves.toEqual(10876546789); + }); + + it('should throw error if event is invalid', async () => { + const testEvent = { foo: 'bar' }; + await expect( + handler( + testEvent as unknown as ParsedResult, + {} as Context + ) + ).rejects.toThrow(); + }); +}); From 8eb2c5f5bee85c8a1370e4674686f744e16e9169 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jul 2024 12:36:28 +0200 Subject: [PATCH 03/12] chore(deps): bump @types/aws-lambda from 8.10.140 to 8.10.141 (#2761) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrea Amorosi --- examples/app/package.json | 4 ++-- package-lock.json | 12 ++++++------ package.json | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/app/package.json b/examples/app/package.json index 320b147a65..4cae7c39c2 100644 --- a/examples/app/package.json +++ b/examples/app/package.json @@ -32,7 +32,7 @@ "#errors": "./functions/commons/errors.js" }, "devDependencies": { - "@types/aws-lambda": "^8.10.140", + "@types/aws-lambda": "^8.10.141", "@types/jest": "^29.5.12", "@types/node": "20.14.9", "aws-cdk": "^2.145.0", @@ -54,7 +54,7 @@ "@aws-sdk/client-ssm": "^3.613.0", "@aws-sdk/lib-dynamodb": "^3.613.0", "@middy/core": "^4.7.0", - "@types/aws-lambda": "^8.10.140", + "@types/aws-lambda": "^8.10.141", "@types/jest": "^29.5.12", "@types/node": "20.14.9", "constructs": "^10.3.0", diff --git a/package-lock.json b/package-lock.json index 5db05cfd41..f9529d09af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "examples/app" ], "devDependencies": { - "@types/aws-lambda": "^8.10.140", + "@types/aws-lambda": "^8.10.141", "@types/jest": "^29.5.12", "@types/node": "^20.14.9", "@typescript-eslint/eslint-plugin": "^6.21.0", @@ -69,7 +69,7 @@ "@aws-sdk/client-ssm": "^3.613.0", "@aws-sdk/lib-dynamodb": "^3.613.0", "@middy/core": "^4.7.0", - "@types/aws-lambda": "^8.10.140", + "@types/aws-lambda": "^8.10.141", "@types/jest": "^29.5.12", "@types/node": "20.14.9", "constructs": "^10.3.0", @@ -80,7 +80,7 @@ "typescript": "^5.4.5" }, "devDependencies": { - "@types/aws-lambda": "^8.10.140", + "@types/aws-lambda": "^8.10.141", "@types/jest": "^29.5.12", "@types/node": "20.14.9", "aws-cdk": "^2.145.0", @@ -4903,9 +4903,9 @@ } }, "node_modules/@types/aws-lambda": { - "version": "8.10.140", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.140.tgz", - "integrity": "sha512-4Dh3dk2TUcbdfHrX0Al90mNGJDvA9NBiTQPzbrjGi/dLxzKCGOYgT8YQ47jUKNFALkAJAadifq0pzyjIUlhVhg==", + "version": "8.10.141", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.141.tgz", + "integrity": "sha512-SMWlRBukG9KV8ZNjwemp2AzDibp/czIAeKKTw09nCPbWxVskIxactCJCGOp4y6I1hCMY7T7UGfySvBLXNeUbEw==", "dev": true }, "node_modules/@types/babel__core": { diff --git a/package.json b/package.json index 08211ed8bc..cf50a685ee 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ }, "homepage": "https://github.com/aws-powertools/powertools-lambda-typescript#readme", "devDependencies": { - "@types/aws-lambda": "^8.10.140", + "@types/aws-lambda": "^8.10.141", "@types/jest": "^29.5.12", "@types/node": "^20.14.9", "@typescript-eslint/eslint-plugin": "^6.21.0", From b96b778fe981c7cb1552896b803cffe3c777a42c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jul 2024 12:40:16 +0200 Subject: [PATCH 04/12] chore(deps): bump actions/setup-node from 4.0.2 to 4.0.3 (#2757) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrea Amorosi --- .github/workflows/make-release.yml | 2 +- .github/workflows/make-version.yml | 2 +- .github/workflows/publish_layer.yml | 2 +- .../reusable-run-linting-check-and-unit-tests.yml | 10 +++++----- .github/workflows/reusable_deploy_layer_stack.yml | 2 +- .github/workflows/reusable_publish_docs.yml | 2 +- .github/workflows/run-e2e-tests.yml | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/make-release.yml b/.github/workflows/make-release.yml index b4abf71760..9a08893c55 100644 --- a/.github/workflows/make-release.yml +++ b/.github/workflows/make-release.yml @@ -49,7 +49,7 @@ jobs: with: ref: ${{ github.sha }} - name: Setup NodeJS - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 with: node-version: "20" cache: "npm" diff --git a/.github/workflows/make-version.yml b/.github/workflows/make-version.yml index 63fa25c911..47aac1640d 100644 --- a/.github/workflows/make-version.yml +++ b/.github/workflows/make-version.yml @@ -23,7 +23,7 @@ jobs: ref: ${{ github.ref }} fetch-depth: 0 # fetch all history, commits and tags, lerna scans it to the last tag and looks at commits, we need all of it to determine the next version - name: Setup NodeJS - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 with: node-version: "20" cache: "npm" diff --git a/.github/workflows/publish_layer.yml b/.github/workflows/publish_layer.yml index 32a5315be8..b71b0295aa 100644 --- a/.github/workflows/publish_layer.yml +++ b/.github/workflows/publish_layer.yml @@ -35,7 +35,7 @@ jobs: with: ref: ${{ github.sha }} - name: Setup Node.js - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 with: node-version: "20" - name: Setup dependencies diff --git a/.github/workflows/reusable-run-linting-check-and-unit-tests.yml b/.github/workflows/reusable-run-linting-check-and-unit-tests.yml index f3926b9bc9..f9226f9514 100644 --- a/.github/workflows/reusable-run-linting-check-and-unit-tests.yml +++ b/.github/workflows/reusable-run-linting-check-and-unit-tests.yml @@ -19,7 +19,7 @@ jobs: - name: Checkout code uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Setup NodeJS - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 with: node-version: ${{ matrix.version }} cache: "npm" @@ -46,7 +46,7 @@ jobs: - name: Checkout code uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Setup NodeJS - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 with: node-version: 20 cache: "npm" @@ -64,7 +64,7 @@ jobs: - name: Checkout code uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Setup NodeJS - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 with: node-version: 20 cache: "npm" @@ -82,7 +82,7 @@ jobs: - name: Checkout code uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Setup NodeJS - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 with: node-version: 20 cache: "npm" @@ -98,7 +98,7 @@ jobs: - name: Checkout code uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Setup NodeJS - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 with: node-version: 20 cache: "npm" diff --git a/.github/workflows/reusable_deploy_layer_stack.yml b/.github/workflows/reusable_deploy_layer_stack.yml index 45e8d6904a..907475d8cd 100644 --- a/.github/workflows/reusable_deploy_layer_stack.yml +++ b/.github/workflows/reusable_deploy_layer_stack.yml @@ -70,7 +70,7 @@ jobs: role-to-assume: ${{ secrets.target-account-role }} mask-aws-account-id: true - name: Setup Node.js - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 with: node-version: "20" - name: Setup dependencies diff --git a/.github/workflows/reusable_publish_docs.yml b/.github/workflows/reusable_publish_docs.yml index ff8fc9d139..321965806c 100644 --- a/.github/workflows/reusable_publish_docs.yml +++ b/.github/workflows/reusable_publish_docs.yml @@ -52,7 +52,7 @@ jobs: - name: Checkout code uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Setup NodeJS - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 with: node-version: "20" cache: "npm" diff --git a/.github/workflows/run-e2e-tests.yml b/.github/workflows/run-e2e-tests.yml index d67c48f869..76bee15be5 100644 --- a/.github/workflows/run-e2e-tests.yml +++ b/.github/workflows/run-e2e-tests.yml @@ -55,7 +55,7 @@ jobs: with: ref: ${{ steps.extract_PR_details.outputs.headSHA }} - name: Setup NodeJS - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 with: node-version: '20' - name: Setup dependencies From a5687b19fb372c723e4fa4b913680bf9c2fff7e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jul 2024 12:45:46 +0200 Subject: [PATCH 05/12] chore(deps): bump vscode/devcontainers/javascript-node from `cad3951` to `cf26683` in /.devcontainer (#2756) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrea Amorosi --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 0b851394bf..ea36c929e2 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,5 +1,5 @@ # See here for image contents: https://github.com/microsoft/vscode-dev-containers/blob/v0.212.0/containers/javascript-node/.devcontainer/base.Dockerfile -FROM mcr.microsoft.com/vscode/devcontainers/javascript-node@sha256:cad3951c5a6ff844e5b080541b5a0fee63fc18b21adc9f4854a7b50b9775f4fd +FROM mcr.microsoft.com/vscode/devcontainers/javascript-node@sha256:cf266839b0b4ae3b1462d6aceff78defa1fcd6aa62beb32274055cc57b21795b # Install fnm to manage Node.js versions RUN curl -fsSL https://fnm.vercel.app/install -o /tmp/install \ From 612305c052c7b8d0897cc13fa5513462daf2e8d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jul 2024 12:49:21 +0200 Subject: [PATCH 06/12] chore(deps): bump @types/node from 20.14.9 to 20.14.10 (#2760) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrea Amorosi --- examples/app/package.json | 4 ++-- package-lock.json | 12 ++++++------ package.json | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/app/package.json b/examples/app/package.json index 4cae7c39c2..7b8c040cb6 100644 --- a/examples/app/package.json +++ b/examples/app/package.json @@ -34,7 +34,7 @@ "devDependencies": { "@types/aws-lambda": "^8.10.141", "@types/jest": "^29.5.12", - "@types/node": "20.14.9", + "@types/node": "20.14.10", "aws-cdk": "^2.145.0", "aws-cdk-lib": "^2.145.0", "constructs": "^10.3.0", @@ -56,7 +56,7 @@ "@middy/core": "^4.7.0", "@types/aws-lambda": "^8.10.141", "@types/jest": "^29.5.12", - "@types/node": "20.14.9", + "@types/node": "20.14.10", "constructs": "^10.3.0", "esbuild": "^0.23.0", "jest": "^29.7.0", diff --git a/package-lock.json b/package-lock.json index f9529d09af..8b3d243f5c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "devDependencies": { "@types/aws-lambda": "^8.10.141", "@types/jest": "^29.5.12", - "@types/node": "^20.14.9", + "@types/node": "^20.14.10", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "eslint": "^8.57.0", @@ -71,7 +71,7 @@ "@middy/core": "^4.7.0", "@types/aws-lambda": "^8.10.141", "@types/jest": "^29.5.12", - "@types/node": "20.14.9", + "@types/node": "20.14.10", "constructs": "^10.3.0", "esbuild": "^0.23.0", "jest": "^29.7.0", @@ -82,7 +82,7 @@ "devDependencies": { "@types/aws-lambda": "^8.10.141", "@types/jest": "^29.5.12", - "@types/node": "20.14.9", + "@types/node": "20.14.10", "aws-cdk": "^2.145.0", "aws-cdk-lib": "^2.145.0", "constructs": "^10.3.0", @@ -5040,9 +5040,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", - "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", + "version": "20.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", + "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", "dependencies": { "undici-types": "~5.26.4" } diff --git a/package.json b/package.json index cf50a685ee..3e9e4c048c 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "devDependencies": { "@types/aws-lambda": "^8.10.141", "@types/jest": "^29.5.12", - "@types/node": "^20.14.9", + "@types/node": "^20.14.10", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "eslint": "^8.57.0", From 08ee6572c2368ca4ed1204634bc541bbf8c518e3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jul 2024 12:53:34 +0200 Subject: [PATCH 07/12] chore(deps-dev): bump typedoc from 0.26.3 to 0.26.4 in the typedoc group across 1 directory (#2759) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrea Amorosi --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8b3d243f5c..7a3aadff82 100644 --- a/package-lock.json +++ b/package-lock.json @@ -46,7 +46,7 @@ "prettier": "^3.3.2", "ts-jest": "^29.1.5", "ts-node": "^10.9.2", - "typedoc": "^0.26.3", + "typedoc": "^0.26.4", "typedoc-plugin-missing-exports": "^3.0.0", "typedoc-plugin-zod": "^1.2.0", "typescript": "^5.4.5" @@ -17546,9 +17546,9 @@ "dev": true }, "node_modules/typedoc": { - "version": "0.26.3", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.3.tgz", - "integrity": "sha512-6d2Sw9disvvpdk4K7VNjKr5/3hzijtfQVHRthhDqJgnhMHy1wQz4yPMJVKXElvnZhFr0nkzo+GzjXDTRV5yLpg==", + "version": "0.26.4", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.4.tgz", + "integrity": "sha512-FlW6HpvULDKgc3rK04V+nbFyXogPV88hurarDPOjuuB5HAwuAlrCMQ5NeH7Zt68a/ikOKu6Z/0hFXAeC9xPccQ==", "dev": true, "dependencies": { "lunr": "^2.3.9", diff --git a/package.json b/package.json index 3e9e4c048c..66fcd8ef7d 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "prettier": "^3.3.2", "ts-jest": "^29.1.5", "ts-node": "^10.9.2", - "typedoc": "^0.26.3", + "typedoc": "^0.26.4", "typedoc-plugin-missing-exports": "^3.0.0", "typedoc-plugin-zod": "^1.2.0", "typescript": "^5.4.5" From fbc86889f88203945a4201c6a6c403b3a257d54f Mon Sep 17 00:00:00 2001 From: Asifur Rahman Arnab Date: Thu, 11 Jul 2024 20:31:08 +0600 Subject: [PATCH 08/12] feat(logger): custom function for unserializable values (JSON replacer) (#2739) Co-authored-by: Andrea Amorosi --- docs/core/logger.md | 20 ++++ .../snippets/logger/unserializableValues.json | 9 ++ .../snippets/logger/unserializableValues.ts | 13 +++ packages/logger/src/Logger.ts | 80 ++++++++------ packages/logger/src/types/Logger.ts | 23 ++++ packages/logger/src/types/index.ts | 1 + packages/logger/tests/unit/Logger.test.ts | 103 +++++++++++++++++- 7 files changed, 210 insertions(+), 39 deletions(-) create mode 100644 examples/snippets/logger/unserializableValues.json create mode 100644 examples/snippets/logger/unserializableValues.ts diff --git a/docs/core/logger.md b/docs/core/logger.md index 6dbdf7370a..ffce457122 100644 --- a/docs/core/logger.md +++ b/docs/core/logger.md @@ -760,6 +760,26 @@ This is how the printed log would look: !!! tip "Custom Log formatter and Child loggers" It is not necessary to pass the `LogFormatter` each time a [child logger](#using-multiple-logger-instances-across-your-code) is created. The parent's LogFormatter will be inherited by the child logger. +### Bring your own JSON serializer + +You can extend the default JSON serializer by passing a custom serializer function to the `Logger` constructor, using the `jsonReplacerFn` option. This is useful when you want to customize the serialization of specific values. + +=== "unserializableValues.ts" + + ```typescript hl_lines="4-5 7" + --8<-- "examples/snippets/logger/unserializableValues.ts" + ``` + +=== "unserializableValues.json" + + ```json hl_lines="8" + --8<-- "examples/snippets/logger/unserializableValues.json" + ``` + +By default, Logger uses `JSON.stringify()` to serialize log items and a [custom replacer function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#the_replacer_parameter) to serialize common unserializable values such as `BigInt`, circular references, and `Error` objects. + +When you extend the default JSON serializer, we will call your custom serializer function before the default one. This allows you to customize the serialization while still benefiting from the default behavior. + ## Testing your code ### Inject Lambda Context diff --git a/examples/snippets/logger/unserializableValues.json b/examples/snippets/logger/unserializableValues.json new file mode 100644 index 0000000000..9134cdcbe3 --- /dev/null +++ b/examples/snippets/logger/unserializableValues.json @@ -0,0 +1,9 @@ +{ + "level": "INFO", + "message": "Serialize with custom serializer", + "sampling_rate": 0, + "service": "serverlessAirline", + "timestamp": "2024-07-07T09:52:14.212Z", + "xray_trace_id": "1-668a654d-396c646b760ee7d067f32f18", + "serializedValue": [1, 2, 3] +} diff --git a/examples/snippets/logger/unserializableValues.ts b/examples/snippets/logger/unserializableValues.ts new file mode 100644 index 0000000000..0a5ff0e2c7 --- /dev/null +++ b/examples/snippets/logger/unserializableValues.ts @@ -0,0 +1,13 @@ +import { Logger } from '@aws-lambda-powertools/logger'; +import type { CustomReplacerFn } from '@aws-lambda-powertools/logger/types'; + +const jsonReplacerFn: CustomReplacerFn = (_: string, value: unknown) => + value instanceof Set ? [...value] : value; + +const logger = new Logger({ serviceName: 'serverlessAirline', jsonReplacerFn }); + +export const handler = async (): Promise => { + logger.info('Serialize with custom serializer', { + serializedValue: new Set([1, 2, 3]), + }); +}; diff --git a/packages/logger/src/Logger.ts b/packages/logger/src/Logger.ts index 6c0c37e740..d97e6c2177 100644 --- a/packages/logger/src/Logger.ts +++ b/packages/logger/src/Logger.ts @@ -24,6 +24,7 @@ import type { LogItemMessage, LoggerInterface, PowertoolsLogData, + CustomJsonReplacerFn, } from './types/Logger.js'; /** @@ -200,6 +201,10 @@ class Logger extends Utility implements LoggerInterface { * We keep this value to be able to reset the log level to the initial value when the sample rate is refreshed. */ #initialLogLevel = 12; + /** + * Replacer function used to serialize the log items. + */ + #jsonReplacerFn?: CustomJsonReplacerFn; /** * Log level used by the current instance of Logger. @@ -309,6 +314,7 @@ class Logger extends Utility implements LoggerInterface { environment: this.powertoolsLogData.environment, persistentLogAttributes: this.persistentLogAttributes, temporaryLogAttributes: this.temporaryLogAttributes, + jsonReplacerFn: this.#jsonReplacerFn, }, options ) @@ -674,6 +680,42 @@ class Logger extends Utility implements LoggerInterface { return new Logger(options); } + /** + * A custom JSON replacer function that is used to serialize the log items. + * + * By default, we already extend the default serialization behavior to handle `BigInt` and `Error` objects, as well as remove circular references. + * When a custom JSON replacer function is passed to the Logger constructor, it will be called **before** our custom rules for each key-value pair in the object being stringified. + * + * This allows you to customize the serialization while still benefiting from the default behavior. + * + * @see {@link ConstructorOptions.jsonReplacerFn} + * + * @param key - The key of the value being stringified. + * @param value - The value being stringified. + */ + protected getJsonReplacer(): (key: string, value: unknown) => void { + const references = new WeakSet(); + + return (key, value) => { + if (this.#jsonReplacerFn) value = this.#jsonReplacerFn?.(key, value); + + if (value instanceof Error) { + value = this.getLogFormatter().formatError(value); + } + if (typeof value === 'bigint') { + return value.toString(); + } + if (typeof value === 'object' && value !== null) { + if (references.has(value)) { + return; + } + references.add(value); + } + + return value; + }; + } + /** * It stores information that is printed in all log items. * @@ -835,40 +877,6 @@ class Logger extends Utility implements LoggerInterface { return this.powertoolsLogData; } - /** - * When the data added in the log item contains object references or BigInt values, - * `JSON.stringify()` can't handle them and instead throws errors: - * `TypeError: cyclic object value` or `TypeError: Do not know how to serialize a BigInt`. - * To mitigate these issues, this method will find and remove all cyclic references and convert BigInt values to strings. - * - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#exceptions - * @private - */ - private getReplacer(): ( - key: string, - value: LogAttributes | Error | bigint - ) => void { - const references = new WeakSet(); - - return (key, value) => { - let item = value; - if (item instanceof Error) { - item = this.getLogFormatter().formatError(item); - } - if (typeof item === 'bigint') { - return item.toString(); - } - if (typeof item === 'object' && value !== null) { - if (references.has(item)) { - return; - } - references.add(item); - } - - return item; - }; - } - /** * It returns true and type guards the log level if a given log level is valid. * @@ -920,7 +928,7 @@ class Logger extends Utility implements LoggerInterface { this.console[consoleMethod]( JSON.stringify( log.getAttributes(), - this.getReplacer(), + this.getJsonReplacer(), this.logIndentation ) ); @@ -1119,6 +1127,7 @@ class Logger extends Utility implements LoggerInterface { persistentKeys, persistentLogAttributes, // deprecated in favor of persistentKeys environment, + jsonReplacerFn, } = options; if (persistentLogAttributes && persistentKeys) { @@ -1143,6 +1152,7 @@ class Logger extends Utility implements LoggerInterface { this.setLogFormatter(logFormatter); this.setConsole(); this.setLogIndentation(); + this.#jsonReplacerFn = jsonReplacerFn; return this; } diff --git a/packages/logger/src/types/Logger.ts b/packages/logger/src/types/Logger.ts index e662669fe3..51585188d0 100644 --- a/packages/logger/src/types/Logger.ts +++ b/packages/logger/src/types/Logger.ts @@ -28,6 +28,19 @@ type InjectLambdaContextOptions = { resetKeys?: boolean; }; +/** + * A custom JSON replacer function that can be passed to the Logger constructor to extend the default serialization behavior. + * + * By default, we already extend the default serialization behavior to handle `BigInt` and `Error` objects, as well as remove circular references. + * When a custom JSON replacer function is passed to the Logger constructor, it will be called **before** our custom rules for each key-value pair in the object being stringified. + * + * This allows you to customize the serialization while still benefiting from the default behavior. + * + * @param key - The key of the value being stringified. + * @param value - The value being stringified. + */ +type CustomJsonReplacerFn = (key: string, value: unknown) => unknown; + type BaseConstructorOptions = { logLevel?: LogLevel; serviceName?: string; @@ -35,6 +48,15 @@ type BaseConstructorOptions = { logFormatter?: LogFormatterInterface; customConfigService?: ConfigServiceInterface; environment?: Environment; + /** + * A custom JSON replacer function that can be passed to the Logger constructor to extend the default serialization behavior. + * + * By default, we already extend the default serialization behavior to handle `BigInt` and `Error` objects, as well as remove circular references. + * When a custom JSON replacer function is passed to the Logger constructor, it will be called **before** our custom rules for each key-value pair in the object being stringified. + * + * This allows you to customize the serialization while still benefiting from the default behavior. + */ + jsonReplacerFn?: CustomJsonReplacerFn; }; type PersistentKeysOption = { @@ -139,4 +161,5 @@ export type { PowertoolsLogData, ConstructorOptions, InjectLambdaContextOptions, + CustomJsonReplacerFn, }; diff --git a/packages/logger/src/types/index.ts b/packages/logger/src/types/index.ts index e18a8806e0..6d472920b8 100644 --- a/packages/logger/src/types/index.ts +++ b/packages/logger/src/types/index.ts @@ -14,4 +14,5 @@ export type { PowertoolsLogData, ConstructorOptions, InjectLambdaContextOptions, + CustomJsonReplacerFn, } from './Logger.js'; diff --git a/packages/logger/tests/unit/Logger.test.ts b/packages/logger/tests/unit/Logger.test.ts index dd275a9be3..1cb720e9db 100644 --- a/packages/logger/tests/unit/Logger.test.ts +++ b/packages/logger/tests/unit/Logger.test.ts @@ -10,9 +10,10 @@ import { ConfigServiceInterface } from '../../src/types/ConfigServiceInterface.j import { EnvironmentVariablesService } from '../../src/config/EnvironmentVariablesService.js'; import { PowertoolsLogFormatter } from '../../src/formatter/PowertoolsLogFormatter.js'; import { LogLevelThresholds, LogLevel } from '../../src/types/Log.js'; -import type { - LogFunction, - ConstructorOptions, +import { + type LogFunction, + type ConstructorOptions, + type CustomJsonReplacerFn, } from '../../src/types/Logger.js'; import { LogJsonIndent } from '../../src/constants.js'; import type { Context } from 'aws-lambda'; @@ -1190,7 +1191,7 @@ describe('Class: Logger', () => { }); }); - describe('Feature: handle safely unexpected errors', () => { + describe('Feature: custom JSON replacer function', () => { test('when a logged item references itself, the logger ignores the keys that cause a circular reference', () => { // Prepare const logger = new Logger({ @@ -1312,6 +1313,100 @@ describe('Class: Logger', () => { }) ); }); + + it('should correctly serialize custom values using the provided jsonReplacerFn', () => { + // Prepare + const jsonReplacerFn: CustomJsonReplacerFn = ( + _: string, + value: unknown + ) => (value instanceof Set ? [...value] : value); + + const logger = new Logger({ jsonReplacerFn }); + const consoleSpy = jest.spyOn( + logger['console'], + getConsoleMethod(methodOfLogger) + ); + const message = `This is an ${methodOfLogger} log with Set value`; + + const logItem = { value: new Set([1, 2]) }; + + // Act + logger[methodOfLogger](message, logItem); + + // Assess + expect(consoleSpy).toHaveBeenCalledTimes(1); + expect(consoleSpy).toHaveBeenNthCalledWith( + 1, + JSON.stringify({ + level: methodOfLogger.toUpperCase(), + message: message, + sampling_rate: 0, + service: 'hello-world', + timestamp: '2016-06-20T12:08:10.000Z', + xray_trace_id: '1-5759e988-bd862e3fe1be46a994272793', + value: [1, 2], + }) + ); + }); + + it('should serialize using both the existing replacer and the customer-provided one', () => { + // Prepare + const jsonReplacerFn: CustomJsonReplacerFn = ( + _: string, + value: unknown + ) => { + if (value instanceof Set || value instanceof Map) { + return [...value]; + } + + return value; + }; + + const logger = new Logger({ jsonReplacerFn }); + const consoleSpy = jest.spyOn( + logger['console'], + getConsoleMethod(methodOfLogger) + ); + + const message = `This is an ${methodOfLogger} log with Set value`; + const logItem = { value: new Set([1, 2]), number: BigInt(42) }; + + // Act + logger[methodOfLogger](message, logItem); + + // Assess + expect(consoleSpy).toHaveBeenCalledTimes(1); + expect(consoleSpy).toHaveBeenNthCalledWith( + 1, + JSON.stringify({ + level: methodOfLogger.toUpperCase(), + message: message, + sampling_rate: 0, + service: 'hello-world', + timestamp: '2016-06-20T12:08:10.000Z', + xray_trace_id: '1-5759e988-bd862e3fe1be46a994272793', + value: [1, 2], + number: '42', + }) + ); + }); + + it('should pass the JSON customer-provided replacer function to child loggers', () => { + // Prepare + const jsonReplacerFn: CustomJsonReplacerFn = ( + _: string, + value: unknown + ) => (value instanceof Set ? [...value] : value); + const logger = new Logger({ jsonReplacerFn }); + + // Act + const childLogger = logger.createChild(); + + // Assess + expect(() => + childLogger.info('foo', { foo: new Set([1, 2]) }) + ).not.toThrow(); + }); }); } ); From 157a39c5d4b0e814981392cb79d2c893175caa22 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Jul 2024 09:22:19 +0200 Subject: [PATCH 09/12] chore(deps): bump the aws-sdk-v3 group across 1 directory with 9 updates (#2766) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrea Amorosi --- examples/app/package.json | 4 +- examples/snippets/package.json | 10 +- package-lock.json | 756 +++++++++++++++--------------- packages/idempotency/package.json | 4 +- packages/metrics/package.json | 2 +- packages/parameters/package.json | 10 +- packages/testing/package.json | 2 +- packages/tracer/package.json | 4 +- 8 files changed, 396 insertions(+), 396 deletions(-) diff --git a/examples/app/package.json b/examples/app/package.json index 7b8c040cb6..f12fb3026b 100644 --- a/examples/app/package.json +++ b/examples/app/package.json @@ -51,8 +51,8 @@ "@aws-lambda-powertools/metrics": "^2.4.0", "@aws-lambda-powertools/parameters": "^2.4.0", "@aws-lambda-powertools/tracer": "^2.4.0", - "@aws-sdk/client-ssm": "^3.613.0", - "@aws-sdk/lib-dynamodb": "^3.613.0", + "@aws-sdk/client-ssm": "^3.614.0", + "@aws-sdk/lib-dynamodb": "^3.614.0", "@middy/core": "^4.7.0", "@types/aws-lambda": "^8.10.141", "@types/jest": "^29.5.12", diff --git a/examples/snippets/package.json b/examples/snippets/package.json index 82a0834ed2..170c4ebf9f 100644 --- a/examples/snippets/package.json +++ b/examples/snippets/package.json @@ -37,11 +37,11 @@ "@aws-lambda-powertools/parameters": "^2.4.0", "@aws-lambda-powertools/parser": "^2.4.0", "@aws-lambda-powertools/tracer": "^2.4.0", - "@aws-sdk/client-appconfigdata": "^3.613.0", - "@aws-sdk/client-dynamodb": "^3.613.0", - "@aws-sdk/client-secrets-manager": "^3.613.0", - "@aws-sdk/client-ssm": "^3.613.0", - "@aws-sdk/util-dynamodb": "^3.613.0", + "@aws-sdk/client-appconfigdata": "^3.614.0", + "@aws-sdk/client-dynamodb": "^3.614.0", + "@aws-sdk/client-secrets-manager": "^3.614.0", + "@aws-sdk/client-ssm": "^3.614.0", + "@aws-sdk/util-dynamodb": "^3.614.0", "@middy/core": "^4.7.0", "aws-sdk": "^2.1657.0", "aws-sdk-client-mock": "^4.0.1", diff --git a/package-lock.json b/package-lock.json index 7a3aadff82..01f84b9f41 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,8 +66,8 @@ "@aws-lambda-powertools/metrics": "^2.4.0", "@aws-lambda-powertools/parameters": "^2.4.0", "@aws-lambda-powertools/tracer": "^2.4.0", - "@aws-sdk/client-ssm": "^3.613.0", - "@aws-sdk/lib-dynamodb": "^3.613.0", + "@aws-sdk/client-ssm": "^3.614.0", + "@aws-sdk/lib-dynamodb": "^3.614.0", "@middy/core": "^4.7.0", "@types/aws-lambda": "^8.10.141", "@types/jest": "^29.5.12", @@ -121,11 +121,11 @@ "@aws-lambda-powertools/parameters": "^2.4.0", "@aws-lambda-powertools/parser": "^2.4.0", "@aws-lambda-powertools/tracer": "^2.4.0", - "@aws-sdk/client-appconfigdata": "^3.613.0", - "@aws-sdk/client-dynamodb": "^3.613.0", - "@aws-sdk/client-secrets-manager": "^3.613.0", - "@aws-sdk/client-ssm": "^3.613.0", - "@aws-sdk/util-dynamodb": "^3.613.0", + "@aws-sdk/client-appconfigdata": "^3.614.0", + "@aws-sdk/client-dynamodb": "^3.614.0", + "@aws-sdk/client-secrets-manager": "^3.614.0", + "@aws-sdk/client-ssm": "^3.614.0", + "@aws-sdk/util-dynamodb": "^3.614.0", "@middy/core": "^4.7.0", "aws-sdk": "^2.1657.0", "aws-sdk-client-mock": "^4.0.1", @@ -382,51 +382,51 @@ "link": true }, "node_modules/@aws-sdk/client-appconfigdata": { - "version": "3.613.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-appconfigdata/-/client-appconfigdata-3.613.0.tgz", - "integrity": "sha512-g7Bi4cACgPLVFv/ooFuz2nBcdzsjDvfcVja7b9sTVkGb94ToN5moyWfTDVGyk9Qm72KwvycFWNKslfu0uwdYcg==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-appconfigdata/-/client-appconfigdata-3.614.0.tgz", + "integrity": "sha512-g50ssdFGR9HY1LFL53qffhGKDAc5PC01tFWuho8xVeRHyzZC6IYCTnIo0p+p9D5tOQJhiejIAH2yQMjPUPYomw==", "dev": true, "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.613.0", - "@aws-sdk/client-sts": "3.613.0", - "@aws-sdk/core": "3.609.0", - "@aws-sdk/credential-provider-node": "3.613.0", + "@aws-sdk/client-sso-oidc": "3.614.0", + "@aws-sdk/client-sts": "3.614.0", + "@aws-sdk/core": "3.614.0", + "@aws-sdk/credential-provider-node": "3.614.0", "@aws-sdk/middleware-host-header": "3.609.0", "@aws-sdk/middleware-logger": "3.609.0", "@aws-sdk/middleware-recursion-detection": "3.609.0", - "@aws-sdk/middleware-user-agent": "3.609.0", - "@aws-sdk/region-config-resolver": "3.609.0", + "@aws-sdk/middleware-user-agent": "3.614.0", + "@aws-sdk/region-config-resolver": "3.614.0", "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.609.0", + "@aws-sdk/util-endpoints": "3.614.0", "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.609.0", - "@smithy/config-resolver": "^3.0.4", - "@smithy/core": "^2.2.4", - "@smithy/fetch-http-handler": "^3.2.0", + "@aws-sdk/util-user-agent-node": "3.614.0", + "@smithy/config-resolver": "^3.0.5", + "@smithy/core": "^2.2.6", + "@smithy/fetch-http-handler": "^3.2.1", "@smithy/hash-node": "^3.0.3", "@smithy/invalid-dependency": "^3.0.3", "@smithy/middleware-content-length": "^3.0.3", - "@smithy/middleware-endpoint": "^3.0.4", - "@smithy/middleware-retry": "^3.0.7", + "@smithy/middleware-endpoint": "^3.0.5", + "@smithy/middleware-retry": "^3.0.9", "@smithy/middleware-serde": "^3.0.3", "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.3", - "@smithy/node-http-handler": "^3.1.1", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/node-http-handler": "^3.1.2", "@smithy/protocol-http": "^4.0.3", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "@smithy/url-parser": "^3.0.3", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.7", - "@smithy/util-defaults-mode-node": "^3.0.7", - "@smithy/util-endpoints": "^2.0.4", + "@smithy/util-defaults-mode-browser": "^3.0.9", + "@smithy/util-defaults-mode-node": "^3.0.9", + "@smithy/util-endpoints": "^2.0.5", "@smithy/util-middleware": "^3.0.3", "@smithy/util-retry": "^3.0.3", - "@smithy/util-stream": "^3.0.5", + "@smithy/util-stream": "^3.0.6", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -435,49 +435,49 @@ } }, "node_modules/@aws-sdk/client-cloudwatch": { - "version": "3.613.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch/-/client-cloudwatch-3.613.0.tgz", - "integrity": "sha512-ceM12+L+0G1UCezgqsNWMKkwZeGIaGNS3MQ1ovtfKKCPxHrxpglQHO+/gQqecbfE2VgL7LnW088frwHIYyOs4w==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch/-/client-cloudwatch-3.614.0.tgz", + "integrity": "sha512-76rLu29Jr2x1Fy5+aCqYbKQfDokOBB1R/Z2NKFQwln5Q3DCCbAm2HE+MM+FameYJqpL9WGEkWFuxAOWjvfYTTA==", "dev": true, "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.613.0", - "@aws-sdk/client-sts": "3.613.0", - "@aws-sdk/core": "3.609.0", - "@aws-sdk/credential-provider-node": "3.613.0", + "@aws-sdk/client-sso-oidc": "3.614.0", + "@aws-sdk/client-sts": "3.614.0", + "@aws-sdk/core": "3.614.0", + "@aws-sdk/credential-provider-node": "3.614.0", "@aws-sdk/middleware-host-header": "3.609.0", "@aws-sdk/middleware-logger": "3.609.0", "@aws-sdk/middleware-recursion-detection": "3.609.0", - "@aws-sdk/middleware-user-agent": "3.609.0", - "@aws-sdk/region-config-resolver": "3.609.0", + "@aws-sdk/middleware-user-agent": "3.614.0", + "@aws-sdk/region-config-resolver": "3.614.0", "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.609.0", + "@aws-sdk/util-endpoints": "3.614.0", "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.609.0", - "@smithy/config-resolver": "^3.0.4", - "@smithy/core": "^2.2.4", - "@smithy/fetch-http-handler": "^3.2.0", + "@aws-sdk/util-user-agent-node": "3.614.0", + "@smithy/config-resolver": "^3.0.5", + "@smithy/core": "^2.2.6", + "@smithy/fetch-http-handler": "^3.2.1", "@smithy/hash-node": "^3.0.3", "@smithy/invalid-dependency": "^3.0.3", - "@smithy/middleware-compression": "^3.0.4", + "@smithy/middleware-compression": "^3.0.5", "@smithy/middleware-content-length": "^3.0.3", - "@smithy/middleware-endpoint": "^3.0.4", - "@smithy/middleware-retry": "^3.0.7", + "@smithy/middleware-endpoint": "^3.0.5", + "@smithy/middleware-retry": "^3.0.9", "@smithy/middleware-serde": "^3.0.3", "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.3", - "@smithy/node-http-handler": "^3.1.1", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/node-http-handler": "^3.1.2", "@smithy/protocol-http": "^4.0.3", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "@smithy/url-parser": "^3.0.3", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.7", - "@smithy/util-defaults-mode-node": "^3.0.7", - "@smithy/util-endpoints": "^2.0.4", + "@smithy/util-defaults-mode-browser": "^3.0.9", + "@smithy/util-defaults-mode-node": "^3.0.9", + "@smithy/util-endpoints": "^2.0.5", "@smithy/util-middleware": "^3.0.3", "@smithy/util-retry": "^3.0.3", "@smithy/util-utf8": "^3.0.0", @@ -489,48 +489,48 @@ } }, "node_modules/@aws-sdk/client-dynamodb": { - "version": "3.613.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.613.0.tgz", - "integrity": "sha512-ewWv52AZKvAp0kJgnoAa3uRbXnqDRGVT30VQhbkE2uInEZWZODBCuXKBc6xTuc/Rh+WnQbhPf4RzFCfjMK5UyQ==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.614.0.tgz", + "integrity": "sha512-/Qhpim9Y6GfsZ4tcHgXo+YrBR44WGU6ON1PuT8X8D31aIb1mmtcHCF1c86QQ97sGkgmnCcaTWhQYjLNiJOZkbA==", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.613.0", - "@aws-sdk/client-sts": "3.613.0", - "@aws-sdk/core": "3.609.0", - "@aws-sdk/credential-provider-node": "3.613.0", - "@aws-sdk/middleware-endpoint-discovery": "3.609.0", + "@aws-sdk/client-sso-oidc": "3.614.0", + "@aws-sdk/client-sts": "3.614.0", + "@aws-sdk/core": "3.614.0", + "@aws-sdk/credential-provider-node": "3.614.0", + "@aws-sdk/middleware-endpoint-discovery": "3.614.0", "@aws-sdk/middleware-host-header": "3.609.0", "@aws-sdk/middleware-logger": "3.609.0", "@aws-sdk/middleware-recursion-detection": "3.609.0", - "@aws-sdk/middleware-user-agent": "3.609.0", - "@aws-sdk/region-config-resolver": "3.609.0", + "@aws-sdk/middleware-user-agent": "3.614.0", + "@aws-sdk/region-config-resolver": "3.614.0", "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.609.0", + "@aws-sdk/util-endpoints": "3.614.0", "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.609.0", - "@smithy/config-resolver": "^3.0.4", - "@smithy/core": "^2.2.4", - "@smithy/fetch-http-handler": "^3.2.0", + "@aws-sdk/util-user-agent-node": "3.614.0", + "@smithy/config-resolver": "^3.0.5", + "@smithy/core": "^2.2.6", + "@smithy/fetch-http-handler": "^3.2.1", "@smithy/hash-node": "^3.0.3", "@smithy/invalid-dependency": "^3.0.3", "@smithy/middleware-content-length": "^3.0.3", - "@smithy/middleware-endpoint": "^3.0.4", - "@smithy/middleware-retry": "^3.0.7", + "@smithy/middleware-endpoint": "^3.0.5", + "@smithy/middleware-retry": "^3.0.9", "@smithy/middleware-serde": "^3.0.3", "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.3", - "@smithy/node-http-handler": "^3.1.1", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/node-http-handler": "^3.1.2", "@smithy/protocol-http": "^4.0.3", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "@smithy/url-parser": "^3.0.3", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.7", - "@smithy/util-defaults-mode-node": "^3.0.7", - "@smithy/util-endpoints": "^2.0.4", + "@smithy/util-defaults-mode-browser": "^3.0.9", + "@smithy/util-defaults-mode-node": "^3.0.9", + "@smithy/util-endpoints": "^2.0.5", "@smithy/util-middleware": "^3.0.3", "@smithy/util-retry": "^3.0.3", "@smithy/util-utf8": "^3.0.0", @@ -543,53 +543,53 @@ } }, "node_modules/@aws-sdk/client-lambda": { - "version": "3.613.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-lambda/-/client-lambda-3.613.0.tgz", - "integrity": "sha512-pZbgXRL66oi5UUE73Ms1Ewk67qipgc9L1VhHLkf80CC1R119bCs2lFfQoaDt6VJsKlt1qyOdCYva7VrMgisdIQ==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-lambda/-/client-lambda-3.614.0.tgz", + "integrity": "sha512-p+4jU1zQEQghvZlQOBN+P3P2no4/xloqjd+D2qETKmb+dl2bhdKpLc42Mfv8H+vJ9QffhRwq+UCNOEzTiN89vg==", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.613.0", - "@aws-sdk/client-sts": "3.613.0", - "@aws-sdk/core": "3.609.0", - "@aws-sdk/credential-provider-node": "3.613.0", + "@aws-sdk/client-sso-oidc": "3.614.0", + "@aws-sdk/client-sts": "3.614.0", + "@aws-sdk/core": "3.614.0", + "@aws-sdk/credential-provider-node": "3.614.0", "@aws-sdk/middleware-host-header": "3.609.0", "@aws-sdk/middleware-logger": "3.609.0", "@aws-sdk/middleware-recursion-detection": "3.609.0", - "@aws-sdk/middleware-user-agent": "3.609.0", - "@aws-sdk/region-config-resolver": "3.609.0", + "@aws-sdk/middleware-user-agent": "3.614.0", + "@aws-sdk/region-config-resolver": "3.614.0", "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.609.0", + "@aws-sdk/util-endpoints": "3.614.0", "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.609.0", - "@smithy/config-resolver": "^3.0.4", - "@smithy/core": "^2.2.4", + "@aws-sdk/util-user-agent-node": "3.614.0", + "@smithy/config-resolver": "^3.0.5", + "@smithy/core": "^2.2.6", "@smithy/eventstream-serde-browser": "^3.0.4", "@smithy/eventstream-serde-config-resolver": "^3.0.3", "@smithy/eventstream-serde-node": "^3.0.4", - "@smithy/fetch-http-handler": "^3.2.0", + "@smithy/fetch-http-handler": "^3.2.1", "@smithy/hash-node": "^3.0.3", "@smithy/invalid-dependency": "^3.0.3", "@smithy/middleware-content-length": "^3.0.3", - "@smithy/middleware-endpoint": "^3.0.4", - "@smithy/middleware-retry": "^3.0.7", + "@smithy/middleware-endpoint": "^3.0.5", + "@smithy/middleware-retry": "^3.0.9", "@smithy/middleware-serde": "^3.0.3", "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.3", - "@smithy/node-http-handler": "^3.1.1", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/node-http-handler": "^3.1.2", "@smithy/protocol-http": "^4.0.3", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "@smithy/url-parser": "^3.0.3", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.7", - "@smithy/util-defaults-mode-node": "^3.0.7", - "@smithy/util-endpoints": "^2.0.4", + "@smithy/util-defaults-mode-browser": "^3.0.9", + "@smithy/util-defaults-mode-node": "^3.0.9", + "@smithy/util-endpoints": "^2.0.5", "@smithy/util-middleware": "^3.0.3", "@smithy/util-retry": "^3.0.3", - "@smithy/util-stream": "^3.0.5", + "@smithy/util-stream": "^3.0.6", "@smithy/util-utf8": "^3.0.0", "@smithy/util-waiter": "^3.1.2", "tslib": "^2.6.2" @@ -599,48 +599,48 @@ } }, "node_modules/@aws-sdk/client-secrets-manager": { - "version": "3.613.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.613.0.tgz", - "integrity": "sha512-fv1ZXze94MNxqr5nev1Sy7R71Qj1navnW4d7bREM4hGIuWlAdELgx6kOdYPLuvvPsuYtw2v7UwufyRzeEPdcYA==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.614.0.tgz", + "integrity": "sha512-gxCYaRYF78R5xBxXoKdF+xiWiElIJqOTSNxjt28ch+GEn9TNAYwpQcTxejBZ5VxeDwbmBjRaB9Vpx9FPeImTMw==", "dev": true, "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.613.0", - "@aws-sdk/client-sts": "3.613.0", - "@aws-sdk/core": "3.609.0", - "@aws-sdk/credential-provider-node": "3.613.0", + "@aws-sdk/client-sso-oidc": "3.614.0", + "@aws-sdk/client-sts": "3.614.0", + "@aws-sdk/core": "3.614.0", + "@aws-sdk/credential-provider-node": "3.614.0", "@aws-sdk/middleware-host-header": "3.609.0", "@aws-sdk/middleware-logger": "3.609.0", "@aws-sdk/middleware-recursion-detection": "3.609.0", - "@aws-sdk/middleware-user-agent": "3.609.0", - "@aws-sdk/region-config-resolver": "3.609.0", + "@aws-sdk/middleware-user-agent": "3.614.0", + "@aws-sdk/region-config-resolver": "3.614.0", "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.609.0", + "@aws-sdk/util-endpoints": "3.614.0", "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.609.0", - "@smithy/config-resolver": "^3.0.4", - "@smithy/core": "^2.2.4", - "@smithy/fetch-http-handler": "^3.2.0", + "@aws-sdk/util-user-agent-node": "3.614.0", + "@smithy/config-resolver": "^3.0.5", + "@smithy/core": "^2.2.6", + "@smithy/fetch-http-handler": "^3.2.1", "@smithy/hash-node": "^3.0.3", "@smithy/invalid-dependency": "^3.0.3", "@smithy/middleware-content-length": "^3.0.3", - "@smithy/middleware-endpoint": "^3.0.4", - "@smithy/middleware-retry": "^3.0.7", + "@smithy/middleware-endpoint": "^3.0.5", + "@smithy/middleware-retry": "^3.0.9", "@smithy/middleware-serde": "^3.0.3", "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.3", - "@smithy/node-http-handler": "^3.1.1", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/node-http-handler": "^3.1.2", "@smithy/protocol-http": "^4.0.3", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "@smithy/url-parser": "^3.0.3", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.7", - "@smithy/util-defaults-mode-node": "^3.0.7", - "@smithy/util-endpoints": "^2.0.4", + "@smithy/util-defaults-mode-browser": "^3.0.9", + "@smithy/util-defaults-mode-node": "^3.0.9", + "@smithy/util-endpoints": "^2.0.5", "@smithy/util-middleware": "^3.0.3", "@smithy/util-retry": "^3.0.3", "@smithy/util-utf8": "^3.0.0", @@ -652,47 +652,47 @@ } }, "node_modules/@aws-sdk/client-ssm": { - "version": "3.613.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-ssm/-/client-ssm-3.613.0.tgz", - "integrity": "sha512-hUf1IgYZQxxCC1AS2HiHn4MZjfAepBn9Mj/oOt/yIEakrGiRYNuDcNpYN4RFPR0A8qC6BhFGtxHP99i1rgSDOA==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ssm/-/client-ssm-3.614.0.tgz", + "integrity": "sha512-1gYlzKEkPjRFM7SZRQo2ApsHz0GEPftHcnXaqKHshtJlfwLEihZrRsUbRqwN4/ipFL39XiHBoMqWvsU1tawwCg==", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.613.0", - "@aws-sdk/client-sts": "3.613.0", - "@aws-sdk/core": "3.609.0", - "@aws-sdk/credential-provider-node": "3.613.0", + "@aws-sdk/client-sso-oidc": "3.614.0", + "@aws-sdk/client-sts": "3.614.0", + "@aws-sdk/core": "3.614.0", + "@aws-sdk/credential-provider-node": "3.614.0", "@aws-sdk/middleware-host-header": "3.609.0", "@aws-sdk/middleware-logger": "3.609.0", "@aws-sdk/middleware-recursion-detection": "3.609.0", - "@aws-sdk/middleware-user-agent": "3.609.0", - "@aws-sdk/region-config-resolver": "3.609.0", + "@aws-sdk/middleware-user-agent": "3.614.0", + "@aws-sdk/region-config-resolver": "3.614.0", "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.609.0", + "@aws-sdk/util-endpoints": "3.614.0", "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.609.0", - "@smithy/config-resolver": "^3.0.4", - "@smithy/core": "^2.2.4", - "@smithy/fetch-http-handler": "^3.2.0", + "@aws-sdk/util-user-agent-node": "3.614.0", + "@smithy/config-resolver": "^3.0.5", + "@smithy/core": "^2.2.6", + "@smithy/fetch-http-handler": "^3.2.1", "@smithy/hash-node": "^3.0.3", "@smithy/invalid-dependency": "^3.0.3", "@smithy/middleware-content-length": "^3.0.3", - "@smithy/middleware-endpoint": "^3.0.4", - "@smithy/middleware-retry": "^3.0.7", + "@smithy/middleware-endpoint": "^3.0.5", + "@smithy/middleware-retry": "^3.0.9", "@smithy/middleware-serde": "^3.0.3", "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.3", - "@smithy/node-http-handler": "^3.1.1", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/node-http-handler": "^3.1.2", "@smithy/protocol-http": "^4.0.3", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "@smithy/url-parser": "^3.0.3", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.7", - "@smithy/util-defaults-mode-node": "^3.0.7", - "@smithy/util-endpoints": "^2.0.4", + "@smithy/util-defaults-mode-browser": "^3.0.9", + "@smithy/util-defaults-mode-node": "^3.0.9", + "@smithy/util-endpoints": "^2.0.5", "@smithy/util-middleware": "^3.0.3", "@smithy/util-retry": "^3.0.3", "@smithy/util-utf8": "^3.0.0", @@ -705,44 +705,44 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.609.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.609.0.tgz", - "integrity": "sha512-gqXGFDkIpKHCKAbeJK4aIDt3tiwJ26Rf5Tqw9JS6BYXsdMeOB8FTzqD9R+Yc1epHd8s5L94sdqXT5PapgxFZrg==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.614.0.tgz", + "integrity": "sha512-p5pyYaxRzBttjBkqfc8i3K7DzBdTg3ECdVgBo6INIUxfvDy0J8QUE8vNtCgvFIkq+uPw/8M+Eo4zzln7anuO0Q==", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.609.0", + "@aws-sdk/core": "3.614.0", "@aws-sdk/middleware-host-header": "3.609.0", "@aws-sdk/middleware-logger": "3.609.0", "@aws-sdk/middleware-recursion-detection": "3.609.0", - "@aws-sdk/middleware-user-agent": "3.609.0", - "@aws-sdk/region-config-resolver": "3.609.0", + "@aws-sdk/middleware-user-agent": "3.614.0", + "@aws-sdk/region-config-resolver": "3.614.0", "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.609.0", + "@aws-sdk/util-endpoints": "3.614.0", "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.609.0", - "@smithy/config-resolver": "^3.0.4", - "@smithy/core": "^2.2.4", - "@smithy/fetch-http-handler": "^3.2.0", + "@aws-sdk/util-user-agent-node": "3.614.0", + "@smithy/config-resolver": "^3.0.5", + "@smithy/core": "^2.2.6", + "@smithy/fetch-http-handler": "^3.2.1", "@smithy/hash-node": "^3.0.3", "@smithy/invalid-dependency": "^3.0.3", "@smithy/middleware-content-length": "^3.0.3", - "@smithy/middleware-endpoint": "^3.0.4", - "@smithy/middleware-retry": "^3.0.7", + "@smithy/middleware-endpoint": "^3.0.5", + "@smithy/middleware-retry": "^3.0.9", "@smithy/middleware-serde": "^3.0.3", "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.3", - "@smithy/node-http-handler": "^3.1.1", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/node-http-handler": "^3.1.2", "@smithy/protocol-http": "^4.0.3", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "@smithy/url-parser": "^3.0.3", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.7", - "@smithy/util-defaults-mode-node": "^3.0.7", - "@smithy/util-endpoints": "^2.0.4", + "@smithy/util-defaults-mode-browser": "^3.0.9", + "@smithy/util-defaults-mode-node": "^3.0.9", + "@smithy/util-endpoints": "^2.0.5", "@smithy/util-middleware": "^3.0.3", "@smithy/util-retry": "^3.0.3", "@smithy/util-utf8": "^3.0.0", @@ -753,45 +753,45 @@ } }, "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.613.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.613.0.tgz", - "integrity": "sha512-VINgHA30f6Itjtj6ZAxkx86XhyFYa7UBfv2Ju+9QGcAr2Y3HU+Mh9g6QaTwDqIM5QG6Pgss24NaAItWGJHFf5A==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.614.0.tgz", + "integrity": "sha512-BI1NWcpppbHg/28zbUg54dZeckork8BItZIcjls12vxasy+p3iEzrJVG60jcbUTTsk3Qc1tyxNfrdcVqx0y7Ww==", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.609.0", - "@aws-sdk/credential-provider-node": "3.613.0", + "@aws-sdk/core": "3.614.0", + "@aws-sdk/credential-provider-node": "3.614.0", "@aws-sdk/middleware-host-header": "3.609.0", "@aws-sdk/middleware-logger": "3.609.0", "@aws-sdk/middleware-recursion-detection": "3.609.0", - "@aws-sdk/middleware-user-agent": "3.609.0", - "@aws-sdk/region-config-resolver": "3.609.0", + "@aws-sdk/middleware-user-agent": "3.614.0", + "@aws-sdk/region-config-resolver": "3.614.0", "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.609.0", + "@aws-sdk/util-endpoints": "3.614.0", "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.609.0", - "@smithy/config-resolver": "^3.0.4", - "@smithy/core": "^2.2.4", - "@smithy/fetch-http-handler": "^3.2.0", + "@aws-sdk/util-user-agent-node": "3.614.0", + "@smithy/config-resolver": "^3.0.5", + "@smithy/core": "^2.2.6", + "@smithy/fetch-http-handler": "^3.2.1", "@smithy/hash-node": "^3.0.3", "@smithy/invalid-dependency": "^3.0.3", "@smithy/middleware-content-length": "^3.0.3", - "@smithy/middleware-endpoint": "^3.0.4", - "@smithy/middleware-retry": "^3.0.7", + "@smithy/middleware-endpoint": "^3.0.5", + "@smithy/middleware-retry": "^3.0.9", "@smithy/middleware-serde": "^3.0.3", "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.3", - "@smithy/node-http-handler": "^3.1.1", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/node-http-handler": "^3.1.2", "@smithy/protocol-http": "^4.0.3", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "@smithy/url-parser": "^3.0.3", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.7", - "@smithy/util-defaults-mode-node": "^3.0.7", - "@smithy/util-endpoints": "^2.0.4", + "@smithy/util-defaults-mode-browser": "^3.0.9", + "@smithy/util-defaults-mode-node": "^3.0.9", + "@smithy/util-endpoints": "^2.0.5", "@smithy/util-middleware": "^3.0.3", "@smithy/util-retry": "^3.0.3", "@smithy/util-utf8": "^3.0.0", @@ -801,50 +801,50 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.613.0" + "@aws-sdk/client-sts": "^3.614.0" } }, "node_modules/@aws-sdk/client-sts": { - "version": "3.613.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.613.0.tgz", - "integrity": "sha512-S+KvQI4XEivY3vyIY+IPY7Fw8vFvX/q3pkNC9qEhnAs+/w7vT6vhVBHsaugYVlsMuNtNvmyc8P+Q/gzOEtLCTw==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.614.0.tgz", + "integrity": "sha512-i6QmaVA1KHHYNnI2VYQy/sc31rLm4+jSp8b/YbQpFnD0w3aXsrEEHHlxek45uSkHb4Nrj1omFBVy/xp1WVYx2Q==", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.613.0", - "@aws-sdk/core": "3.609.0", - "@aws-sdk/credential-provider-node": "3.613.0", + "@aws-sdk/client-sso-oidc": "3.614.0", + "@aws-sdk/core": "3.614.0", + "@aws-sdk/credential-provider-node": "3.614.0", "@aws-sdk/middleware-host-header": "3.609.0", "@aws-sdk/middleware-logger": "3.609.0", "@aws-sdk/middleware-recursion-detection": "3.609.0", - "@aws-sdk/middleware-user-agent": "3.609.0", - "@aws-sdk/region-config-resolver": "3.609.0", + "@aws-sdk/middleware-user-agent": "3.614.0", + "@aws-sdk/region-config-resolver": "3.614.0", "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.609.0", + "@aws-sdk/util-endpoints": "3.614.0", "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.609.0", - "@smithy/config-resolver": "^3.0.4", - "@smithy/core": "^2.2.4", - "@smithy/fetch-http-handler": "^3.2.0", + "@aws-sdk/util-user-agent-node": "3.614.0", + "@smithy/config-resolver": "^3.0.5", + "@smithy/core": "^2.2.6", + "@smithy/fetch-http-handler": "^3.2.1", "@smithy/hash-node": "^3.0.3", "@smithy/invalid-dependency": "^3.0.3", "@smithy/middleware-content-length": "^3.0.3", - "@smithy/middleware-endpoint": "^3.0.4", - "@smithy/middleware-retry": "^3.0.7", + "@smithy/middleware-endpoint": "^3.0.5", + "@smithy/middleware-retry": "^3.0.9", "@smithy/middleware-serde": "^3.0.3", "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.3", - "@smithy/node-http-handler": "^3.1.1", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/node-http-handler": "^3.1.2", "@smithy/protocol-http": "^4.0.3", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "@smithy/url-parser": "^3.0.3", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.7", - "@smithy/util-defaults-mode-node": "^3.0.7", - "@smithy/util-endpoints": "^2.0.4", + "@smithy/util-defaults-mode-browser": "^3.0.9", + "@smithy/util-defaults-mode-node": "^3.0.9", + "@smithy/util-endpoints": "^2.0.5", "@smithy/util-middleware": "^3.0.3", "@smithy/util-retry": "^3.0.3", "@smithy/util-utf8": "^3.0.0", @@ -855,48 +855,48 @@ } }, "node_modules/@aws-sdk/client-xray": { - "version": "3.613.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-xray/-/client-xray-3.613.0.tgz", - "integrity": "sha512-PxY5g+6u2Cs0TLlFpH1d63D2fcdowBI0CB0WKMbvEQEDNP4hfq+TSADOHnxJmT9z/o1JIknWei8WmBWvOTbnYQ==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-xray/-/client-xray-3.614.0.tgz", + "integrity": "sha512-J50AbaPjXfaA1Evk2gYMgrVWJaRXwjLwjTytJyn+thWPRxXMD3LSPrL4aIBvAb9TUddvMJqqU8VppaQuougD9Q==", "dev": true, "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.613.0", - "@aws-sdk/client-sts": "3.613.0", - "@aws-sdk/core": "3.609.0", - "@aws-sdk/credential-provider-node": "3.613.0", + "@aws-sdk/client-sso-oidc": "3.614.0", + "@aws-sdk/client-sts": "3.614.0", + "@aws-sdk/core": "3.614.0", + "@aws-sdk/credential-provider-node": "3.614.0", "@aws-sdk/middleware-host-header": "3.609.0", "@aws-sdk/middleware-logger": "3.609.0", "@aws-sdk/middleware-recursion-detection": "3.609.0", - "@aws-sdk/middleware-user-agent": "3.609.0", - "@aws-sdk/region-config-resolver": "3.609.0", + "@aws-sdk/middleware-user-agent": "3.614.0", + "@aws-sdk/region-config-resolver": "3.614.0", "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.609.0", + "@aws-sdk/util-endpoints": "3.614.0", "@aws-sdk/util-user-agent-browser": "3.609.0", - "@aws-sdk/util-user-agent-node": "3.609.0", - "@smithy/config-resolver": "^3.0.4", - "@smithy/core": "^2.2.4", - "@smithy/fetch-http-handler": "^3.2.0", + "@aws-sdk/util-user-agent-node": "3.614.0", + "@smithy/config-resolver": "^3.0.5", + "@smithy/core": "^2.2.6", + "@smithy/fetch-http-handler": "^3.2.1", "@smithy/hash-node": "^3.0.3", "@smithy/invalid-dependency": "^3.0.3", "@smithy/middleware-content-length": "^3.0.3", - "@smithy/middleware-endpoint": "^3.0.4", - "@smithy/middleware-retry": "^3.0.7", + "@smithy/middleware-endpoint": "^3.0.5", + "@smithy/middleware-retry": "^3.0.9", "@smithy/middleware-serde": "^3.0.3", "@smithy/middleware-stack": "^3.0.3", - "@smithy/node-config-provider": "^3.1.3", - "@smithy/node-http-handler": "^3.1.1", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/node-http-handler": "^3.1.2", "@smithy/protocol-http": "^4.0.3", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "@smithy/url-parser": "^3.0.3", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.7", - "@smithy/util-defaults-mode-node": "^3.0.7", - "@smithy/util-endpoints": "^2.0.4", + "@smithy/util-defaults-mode-browser": "^3.0.9", + "@smithy/util-defaults-mode-node": "^3.0.9", + "@smithy/util-endpoints": "^2.0.5", "@smithy/util-middleware": "^3.0.3", "@smithy/util-retry": "^3.0.3", "@smithy/util-utf8": "^3.0.0", @@ -907,14 +907,14 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.609.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.609.0.tgz", - "integrity": "sha512-ptqw+DTxLr01+pKjDUuo53SEDzI+7nFM3WfQaEo0yhDg8vWw8PER4sWj1Ysx67ksctnZesPUjqxd5SHbtdBxiA==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.614.0.tgz", + "integrity": "sha512-BUuS5/1YkgmKc4J0bg83XEtMyDHVyqG2QDzfmhYe8gbOIZabUl1FlrFVwhCAthtrrI6MPGTQcERB4BtJKUSplw==", "dependencies": { - "@smithy/core": "^2.2.4", + "@smithy/core": "^2.2.6", "@smithy/protocol-http": "^4.0.3", "@smithy/signature-v4": "^3.1.2", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "fast-xml-parser": "4.2.5", "tslib": "^2.6.2" @@ -938,18 +938,18 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.613.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.613.0.tgz", - "integrity": "sha512-MCiUFxowFzprzIXFXsqbp/3DViJ7nFmBW+XJkoRQWqNmThbkz/E8sb40WmL9UFdZHJph2KDjzABKYH5f0lHZaA==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.614.0.tgz", + "integrity": "sha512-YIEjlNUKb3Vo/iTnGAPdsiDC3FUUnNoex2OwU8LmR7AkYZiWdB8nx99DfgkkY+OFMUpw7nKD2PCOtuFONelfGA==", "dependencies": { "@aws-sdk/types": "3.609.0", - "@smithy/fetch-http-handler": "^3.2.0", - "@smithy/node-http-handler": "^3.1.1", + "@smithy/fetch-http-handler": "^3.2.1", + "@smithy/node-http-handler": "^3.1.2", "@smithy/property-provider": "^3.1.3", "@smithy/protocol-http": "^4.0.3", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", - "@smithy/util-stream": "^3.0.5", + "@smithy/util-stream": "^3.0.6", "tslib": "^2.6.2" }, "engines": { @@ -957,19 +957,19 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.613.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.613.0.tgz", - "integrity": "sha512-scHV7K0YpllYMWxPnqxssWU+7S3WNXH1m5Rw8Ax96pfcfnaoatiWXps2XSSdGlChdF9gNVnewjRKFOTLyyzdAw==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.614.0.tgz", + "integrity": "sha512-KfLuLFGwlvFSZ2MuzYwWGPb1y5TeiwX5okIDe0aQ1h10oD3924FXbN+mabOnUHQ8EFcGAtCaWbrC86mI7ktC6A==", "dependencies": { "@aws-sdk/credential-provider-env": "3.609.0", - "@aws-sdk/credential-provider-http": "3.613.0", - "@aws-sdk/credential-provider-process": "3.609.0", - "@aws-sdk/credential-provider-sso": "3.609.0", + "@aws-sdk/credential-provider-http": "3.614.0", + "@aws-sdk/credential-provider-process": "3.614.0", + "@aws-sdk/credential-provider-sso": "3.614.0", "@aws-sdk/credential-provider-web-identity": "3.609.0", "@aws-sdk/types": "3.609.0", - "@smithy/credential-provider-imds": "^3.1.3", + "@smithy/credential-provider-imds": "^3.1.4", "@smithy/property-provider": "^3.1.3", - "@smithy/shared-ini-file-loader": "^3.1.3", + "@smithy/shared-ini-file-loader": "^3.1.4", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, @@ -977,24 +977,24 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.613.0" + "@aws-sdk/client-sts": "^3.614.0" } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.613.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.613.0.tgz", - "integrity": "sha512-n3yd0CDuUKcQFhjRLAQfQpZyZ2ddrHC7QOKQqE+Fkx+Fs5zoG+NRLK1EBkBW/G9zk8Ck4+rG3OOI3CuNpJ2PCw==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.614.0.tgz", + "integrity": "sha512-4J6gPEuFZP0mkWq5E//oMS1vrmMM88iNNcv7TEljYnsc6JTAlKejCyFwx6CN+nkIhmIZsl06SXIhBemzBdBPfg==", "dependencies": { "@aws-sdk/credential-provider-env": "3.609.0", - "@aws-sdk/credential-provider-http": "3.613.0", - "@aws-sdk/credential-provider-ini": "3.613.0", - "@aws-sdk/credential-provider-process": "3.609.0", - "@aws-sdk/credential-provider-sso": "3.609.0", + "@aws-sdk/credential-provider-http": "3.614.0", + "@aws-sdk/credential-provider-ini": "3.614.0", + "@aws-sdk/credential-provider-process": "3.614.0", + "@aws-sdk/credential-provider-sso": "3.614.0", "@aws-sdk/credential-provider-web-identity": "3.609.0", "@aws-sdk/types": "3.609.0", - "@smithy/credential-provider-imds": "^3.1.3", + "@smithy/credential-provider-imds": "^3.1.4", "@smithy/property-provider": "^3.1.3", - "@smithy/shared-ini-file-loader": "^3.1.3", + "@smithy/shared-ini-file-loader": "^3.1.4", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, @@ -1003,13 +1003,13 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.609.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.609.0.tgz", - "integrity": "sha512-Ux35nGOSJKZWUIM3Ny0ROZ8cqPRUEkh+tR3X2o9ydEbFiLq3eMMyEnHJqx4EeUjLRchidlm4CCid9GxMe5/gdw==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.614.0.tgz", + "integrity": "sha512-Q0SI0sTRwi8iNODLs5+bbv8vgz8Qy2QdxbCHnPk/6Cx6LMf7i3dqmWquFbspqFRd8QiqxStrblwxrUYZi09tkA==", "dependencies": { "@aws-sdk/types": "3.609.0", "@smithy/property-provider": "^3.1.3", - "@smithy/shared-ini-file-loader": "^3.1.3", + "@smithy/shared-ini-file-loader": "^3.1.4", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, @@ -1018,15 +1018,15 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.609.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.609.0.tgz", - "integrity": "sha512-oQPGDKMMIxjvTcm86g07RPYeC7mCNk+29dPpY15ZAPRpAF7F0tircsC3wT9fHzNaKShEyK5LuI5Kg/uxsdy+Iw==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.614.0.tgz", + "integrity": "sha512-55+gp0JY4451cWI1qXmVMFM0GQaBKiQpXv2P0xmd9P3qLDyeFUSEW8XPh0d2lb1ICr6x4s47ynXVdGCIv2mXMg==", "dependencies": { - "@aws-sdk/client-sso": "3.609.0", - "@aws-sdk/token-providers": "3.609.0", + "@aws-sdk/client-sso": "3.614.0", + "@aws-sdk/token-providers": "3.614.0", "@aws-sdk/types": "3.609.0", "@smithy/property-provider": "^3.1.3", - "@smithy/shared-ini-file-loader": "^3.1.3", + "@smithy/shared-ini-file-loader": "^3.1.4", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, @@ -1064,12 +1064,12 @@ } }, "node_modules/@aws-sdk/lib-dynamodb": { - "version": "3.613.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/lib-dynamodb/-/lib-dynamodb-3.613.0.tgz", - "integrity": "sha512-/mf0eyzExCJfsS38b5nNcK8gkq12CZ8zeOGsgRqmx0YUxet7WIk3q6xaj97zBmTSdEwtKwmt+VS5pSF4PgUpSA==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/lib-dynamodb/-/lib-dynamodb-3.614.0.tgz", + "integrity": "sha512-hHbw4f4ZBmsoyRGmyVsjXe/I3F4ewzw5zZSgKZcmGTgPt1fm8WKAA18YPh8K3CScGWerHFY3w2ilPNHDr+xpsg==", "dependencies": { - "@aws-sdk/util-dynamodb": "3.613.0", - "@smithy/smithy-client": "^3.1.5", + "@aws-sdk/util-dynamodb": "3.614.0", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, @@ -1077,17 +1077,17 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-dynamodb": "^3.613.0" + "@aws-sdk/client-dynamodb": "^3.614.0" } }, "node_modules/@aws-sdk/middleware-endpoint-discovery": { - "version": "3.609.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.609.0.tgz", - "integrity": "sha512-HnjoduqkbsU+x7V+SF/h0/fxBKzG9ABlYteR2yiZEVyY70o2Wtt7fh4mZoVvpyuDEFCsYnLk9Ve0+7mNo7+pWA==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.614.0.tgz", + "integrity": "sha512-xEe9a3aaAzzo5RlRz4SSsGYpYiju29SdYDQYsm1v3syWGOqNzFlJE7aFuSP0/WYgdwB6svILLdAeZs8w2fj3GQ==", "dependencies": { "@aws-sdk/endpoint-cache": "3.572.0", "@aws-sdk/types": "3.609.0", - "@smithy/node-config-provider": "^3.1.3", + "@smithy/node-config-provider": "^3.1.4", "@smithy/protocol-http": "^4.0.3", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" @@ -1138,12 +1138,12 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.609.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.609.0.tgz", - "integrity": "sha512-nbq7MXRmeXm4IDqh+sJRAxGPAq0OfGmGIwKvJcw66hLoG8CmhhVMZmIAEBDFr57S+YajGwnLLRt+eMI05MMeVA==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.614.0.tgz", + "integrity": "sha512-xUxh0UPQiMTG6E31Yvu6zVYlikrIcFDKljM11CaatInzvZubGTGiX0DjpqRlfGzUNsuPc/zNrKwRP2+wypgqIw==", "dependencies": { "@aws-sdk/types": "3.609.0", - "@aws-sdk/util-endpoints": "3.609.0", + "@aws-sdk/util-endpoints": "3.614.0", "@smithy/protocol-http": "^4.0.3", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" @@ -1153,12 +1153,12 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.609.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.609.0.tgz", - "integrity": "sha512-lMHBG8zg9GWYBc9/XVPKyuAUd7iKqfPP7z04zGta2kGNOKbUTeqmAdc1gJGku75p4kglIPlGBorOxti8DhRmKw==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.614.0.tgz", + "integrity": "sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g==", "dependencies": { "@aws-sdk/types": "3.609.0", - "@smithy/node-config-provider": "^3.1.3", + "@smithy/node-config-provider": "^3.1.4", "@smithy/types": "^3.3.0", "@smithy/util-config-provider": "^3.0.0", "@smithy/util-middleware": "^3.0.3", @@ -1169,13 +1169,13 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.609.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.609.0.tgz", - "integrity": "sha512-WvhW/7XSf+H7YmtiIigQxfDVZVZI7mbKikQ09YpzN7FeN3TmYib1+0tB+EE9TbICkwssjiFc71FEBEh4K9grKQ==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.614.0.tgz", + "integrity": "sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw==", "dependencies": { "@aws-sdk/types": "3.609.0", "@smithy/property-provider": "^3.1.3", - "@smithy/shared-ini-file-loader": "^3.1.3", + "@smithy/shared-ini-file-loader": "^3.1.4", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, @@ -1183,7 +1183,7 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sso-oidc": "^3.609.0" + "@aws-sdk/client-sso-oidc": "^3.614.0" } }, "node_modules/@aws-sdk/types": { @@ -1199,9 +1199,9 @@ } }, "node_modules/@aws-sdk/util-dynamodb": { - "version": "3.613.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-dynamodb/-/util-dynamodb-3.613.0.tgz", - "integrity": "sha512-E73IxiovW3svCavyFBRuuQpifWg2IH48U4KWElKRKLGyKjD7wifO6OfcDkqLGHt3HSutrxDnky9a895NE+aGwg==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-dynamodb/-/util-dynamodb-3.614.0.tgz", + "integrity": "sha512-ce0HZGiM2KxG5Wa07ykxZt4iQCUAj/n/ZhnXKo7ZUU1T2qPZVl65zAnCgF7VXH/l3CO638ENWHG25aXEYfM5Bg==", "dependencies": { "tslib": "^2.6.2" }, @@ -1209,17 +1209,17 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-dynamodb": "^3.613.0" + "@aws-sdk/client-dynamodb": "^3.614.0" } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.609.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.609.0.tgz", - "integrity": "sha512-Rh+3V8dOvEeE1aQmUy904DYWtLUEJ7Vf5XBPlQ6At3pBhp+zpXbsnpZzVL33c8lW1xfj6YPwtO6gOeEsl1juCQ==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.614.0.tgz", + "integrity": "sha512-wK2cdrXHH4oz4IomV/yrGkftU9A+ITB6nFL+rxxyO78is2ifHJpFdV4aqk4LSkXYPi6CXWNru/Dqc7yiKXgJPw==", "dependencies": { "@aws-sdk/types": "3.609.0", "@smithy/types": "^3.3.0", - "@smithy/util-endpoints": "^2.0.4", + "@smithy/util-endpoints": "^2.0.5", "tslib": "^2.6.2" }, "engines": { @@ -1249,12 +1249,12 @@ } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.609.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.609.0.tgz", - "integrity": "sha512-DlZBwQ/HkZyf3pOWc7+wjJRk5R7x9YxHhs2szHwtv1IW30KMabjjjX0GMlGJ9LLkBHkbaaEY/w9Tkj12XRLhRg==", + "version": "3.614.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.614.0.tgz", + "integrity": "sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA==", "dependencies": { "@aws-sdk/types": "3.609.0", - "@smithy/node-config-provider": "^3.1.3", + "@smithy/node-config-provider": "^3.1.4", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, @@ -4258,11 +4258,11 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.4.tgz", - "integrity": "sha512-VwiOk7TwXoE7NlNguV/aPq1hFH72tqkHCw8eWXbr2xHspRyyv9DLpLXhq+Ieje+NwoqXrY0xyQjPXdOE6cGcHA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.5.tgz", + "integrity": "sha512-SkW5LxfkSI1bUC74OtfBbdz+grQXYiPYolyu8VfpLIjEoN/sHVBlLeGXMQ1vX4ejkgfv6sxVbQJ32yF2cl1veA==", "dependencies": { - "@smithy/node-config-provider": "^3.1.3", + "@smithy/node-config-provider": "^3.1.4", "@smithy/types": "^3.3.0", "@smithy/util-config-provider": "^3.0.0", "@smithy/util-middleware": "^3.0.3", @@ -4273,15 +4273,15 @@ } }, "node_modules/@smithy/core": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.2.4.tgz", - "integrity": "sha512-qdY3LpMOUyLM/gfjjMQZui+UTNS7kBRDWlvyIhVOql5dn2J3isk9qUTBtQ1CbDH8MTugHis1zu3h4rH+Qmmh4g==", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.2.6.tgz", + "integrity": "sha512-tBbVIv/ui7/lLTKayYJJvi8JLVL2SwOQTbNFEOrvzSE3ktByvsa1erwBOnAMo8N5Vu30g7lN4lLStrU75oDGuw==", "dependencies": { - "@smithy/middleware-endpoint": "^3.0.4", - "@smithy/middleware-retry": "^3.0.7", + "@smithy/middleware-endpoint": "^3.0.5", + "@smithy/middleware-retry": "^3.0.9", "@smithy/middleware-serde": "^3.0.3", "@smithy/protocol-http": "^4.0.3", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "@smithy/util-middleware": "^3.0.3", "tslib": "^2.6.2" @@ -4291,11 +4291,11 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.1.3.tgz", - "integrity": "sha512-U1Yrv6hx/mRK6k8AncuI6jLUx9rn0VVSd9NPEX6pyYFBfkSkChOc/n4zUb8alHUVg83TbI4OdZVo1X0Zfj3ijA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.1.4.tgz", + "integrity": "sha512-NKyH01m97Xa5xf3pB2QOF3lnuE8RIK0hTVNU5zvZAwZU8uspYO4DHQVlK+Y5gwSrujTfHvbfd1D9UFJAc0iYKQ==", "dependencies": { - "@smithy/node-config-provider": "^3.1.3", + "@smithy/node-config-provider": "^3.1.4", "@smithy/property-provider": "^3.1.3", "@smithy/types": "^3.3.0", "@smithy/url-parser": "^3.0.3", @@ -4368,9 +4368,9 @@ } }, "node_modules/@smithy/fetch-http-handler": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.0.tgz", - "integrity": "sha512-vFvDxMrc6sO5Atec8PaISckMcAwsCrRhYxwUylg97bRT2KZoumOF7qk5+6EVUtuM1IG9AJV5aqXnHln9ZdXHpg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.2.1.tgz", + "integrity": "sha512-0w0bgUvZmfa0vHN8a+moByhCJT07WN6AHKEhFSOLsDpnszm+5dLVv5utGaqbhOrZ/aF5x3xuPMs/oMCd+4O5xg==", "dependencies": { "@smithy/protocol-http": "^4.0.3", "@smithy/querystring-builder": "^3.0.3", @@ -4414,13 +4414,13 @@ } }, "node_modules/@smithy/middleware-compression": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@smithy/middleware-compression/-/middleware-compression-3.0.4.tgz", - "integrity": "sha512-wxqn17tgnepjqmt0OyQA/cJnQYY2SpTx2kSKxMo71vVhomIUFPOVkwYSJY27OQWomPWy5E8va2kLfwi8Ap9wKQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@smithy/middleware-compression/-/middleware-compression-3.0.5.tgz", + "integrity": "sha512-vad+m+GGm73Y3x9DUVEZRLlfswH5CxcyTEbgYu6hVyLCRU/qw1+xChAwtiT3sHTlG/21Rybb1FwZgGGnhm3cnw==", "dev": true, "dependencies": { "@smithy/is-array-buffer": "^3.0.0", - "@smithy/node-config-provider": "^3.1.3", + "@smithy/node-config-provider": "^3.1.4", "@smithy/protocol-http": "^4.0.3", "@smithy/types": "^3.3.0", "@smithy/util-config-provider": "^3.0.0", @@ -4447,13 +4447,13 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.4.tgz", - "integrity": "sha512-whUJMEPwl3ANIbXjBXZVdJNgfV2ZU8ayln7xUM47rXL2txuenI7jQ/VFFwCzy5lCmXScjp6zYtptW5Evud8e9g==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.5.tgz", + "integrity": "sha512-V4acqqrh5tDxUEGVTOgf2lYMZqPQsoGntCrjrJZEeBzEzDry2d2vcI1QCXhGltXPPY+BMc6eksZMguA9fIY8vA==", "dependencies": { "@smithy/middleware-serde": "^3.0.3", - "@smithy/node-config-provider": "^3.1.3", - "@smithy/shared-ini-file-loader": "^3.1.3", + "@smithy/node-config-provider": "^3.1.4", + "@smithy/shared-ini-file-loader": "^3.1.4", "@smithy/types": "^3.3.0", "@smithy/url-parser": "^3.0.3", "@smithy/util-middleware": "^3.0.3", @@ -4464,14 +4464,14 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.7.tgz", - "integrity": "sha512-f5q7Y09G+2h5ivkSx5CHvlAT4qRR3jBFEsfXyQ9nFNiWQlr8c48blnu5cmbTQ+p1xmIO14UXzKoF8d7Tm0Gsjw==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.9.tgz", + "integrity": "sha512-Mrv9omExU1gA7Y0VEJG2LieGfPYtwwcEiOnVGZ54a37NEMr66TJ0glFslOJFuKWG6izg5DpKIUmDV9rRxjm47Q==", "dependencies": { - "@smithy/node-config-provider": "^3.1.3", + "@smithy/node-config-provider": "^3.1.4", "@smithy/protocol-http": "^4.0.3", "@smithy/service-error-classification": "^3.0.3", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "@smithy/util-middleware": "^3.0.3", "@smithy/util-retry": "^3.0.3", @@ -4507,12 +4507,12 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.3.tgz", - "integrity": "sha512-rxdpAZczzholz6CYZxtqDu/aKTxATD5DAUDVj7HoEulq+pDSQVWzbg0btZDlxeFfa6bb2b5tUvgdX5+k8jUqcg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.4.tgz", + "integrity": "sha512-YvnElQy8HR4vDcAjoy7Xkx9YT8xZP4cBXcbJSgm/kxmiQu08DwUwj8rkGnyoJTpfl/3xYHH+d8zE+eHqoDCSdQ==", "dependencies": { "@smithy/property-provider": "^3.1.3", - "@smithy/shared-ini-file-loader": "^3.1.3", + "@smithy/shared-ini-file-loader": "^3.1.4", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, @@ -4521,9 +4521,9 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.1.1.tgz", - "integrity": "sha512-L71NLyPeP450r2J/mfu1jMc//Z1YnqJt2eSNw7uhiItaONnBLDA68J5jgxq8+MBDsYnFwNAIc7dBG1ImiWBiwg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.1.2.tgz", + "integrity": "sha512-Td3rUNI7qqtoSLTsJBtsyfoG4cF/XMFmJr6Z2dX8QNzIi6tIW6YmuyFml8mJ2cNpyWNqITKbROMOFrvQjmsOvw==", "dependencies": { "@smithy/abort-controller": "^3.1.1", "@smithy/protocol-http": "^4.0.3", @@ -4596,9 +4596,9 @@ } }, "node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.3.tgz", - "integrity": "sha512-Z8Y3+08vgoDgl4HENqNnnzSISAaGrF2RoKupoC47u2wiMp+Z8P/8mDh1CL8+8ujfi2U5naNvopSBmP/BUj8b5w==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.4.tgz", + "integrity": "sha512-qMxS4hBGB8FY2GQqshcRUy1K6k8aBWP5vwm8qKkCT3A9K2dawUwOIJfqh9Yste/Bl0J2lzosVyrXDj68kLcHXQ==", "dependencies": { "@smithy/types": "^3.3.0", "tslib": "^2.6.2" @@ -4625,15 +4625,15 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.5.tgz", - "integrity": "sha512-x9bL9Mx2CT2P1OiUlHM+ZNpbVU6TgT32f9CmTRzqIHA7M4vYrROCWEoC3o4xHNJASoGd4Opos3cXYPgh+/m4Ww==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.7.tgz", + "integrity": "sha512-nZbJZB0XI3YnaFBWGDBr7kjaew6O0oNYNmopyIz6gKZEbxzrtH7rwvU1GcVxcSFoOwWecLJEe79fxEMljHopFQ==", "dependencies": { - "@smithy/middleware-endpoint": "^3.0.4", + "@smithy/middleware-endpoint": "^3.0.5", "@smithy/middleware-stack": "^3.0.3", "@smithy/protocol-http": "^4.0.3", "@smithy/types": "^3.3.0", - "@smithy/util-stream": "^3.0.5", + "@smithy/util-stream": "^3.0.6", "tslib": "^2.6.2" }, "engines": { @@ -4717,12 +4717,12 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.7.tgz", - "integrity": "sha512-Q2txLyvQyGfmjsaDbVV7Sg8psefpFcrnlGapDzXGFRPFKRBeEg6OvFK8FljqjeHSaCZ6/UuzQExUPqBR/2qlDA==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.9.tgz", + "integrity": "sha512-WKPcElz92MAQG09miBdb0GxEH/MwD5GfE8g07WokITq5g6J1ROQfYCKC1wNnkqAGfrSywT7L0rdvvqlBplqiyA==", "dependencies": { "@smithy/property-provider": "^3.1.3", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "bowser": "^2.11.0", "tslib": "^2.6.2" @@ -4732,15 +4732,15 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.7.tgz", - "integrity": "sha512-F4Qcj1fG6MGi2BSWCslfsMSwllws/WzYONBGtLybyY+halAcXdWhcew+mej8M5SKd5hqPYp4f7b+ABQEaeytgg==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.9.tgz", + "integrity": "sha512-dQLrUqFxqpf0GvEKEuFdgXcdZwz6oFm752h4d6C7lQz+RLddf761L2r7dSwGWzESMMB3wKj0jL+skRhEGlecjw==", "dependencies": { - "@smithy/config-resolver": "^3.0.4", - "@smithy/credential-provider-imds": "^3.1.3", - "@smithy/node-config-provider": "^3.1.3", + "@smithy/config-resolver": "^3.0.5", + "@smithy/credential-provider-imds": "^3.1.4", + "@smithy/node-config-provider": "^3.1.4", "@smithy/property-provider": "^3.1.3", - "@smithy/smithy-client": "^3.1.5", + "@smithy/smithy-client": "^3.1.7", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, @@ -4749,11 +4749,11 @@ } }, "node_modules/@smithy/util-endpoints": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.0.4.tgz", - "integrity": "sha512-ZAtNf+vXAsgzgRutDDiklU09ZzZiiV/nATyqde4Um4priTmasDH+eLpp3tspL0hS2dEootyFMhu1Y6Y+tzpWBQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.0.5.tgz", + "integrity": "sha512-ReQP0BWihIE68OAblC/WQmDD40Gx+QY1Ez8mTdFMXpmjfxSyz2fVQu3A4zXRfQU9sZXtewk3GmhfOHswvX+eNg==", "dependencies": { - "@smithy/node-config-provider": "^3.1.3", + "@smithy/node-config-provider": "^3.1.4", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, @@ -4798,12 +4798,12 @@ } }, "node_modules/@smithy/util-stream": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.0.5.tgz", - "integrity": "sha512-xC3L5PKMAT/Bh8fmHNXP9sdQ4+4aKVUU3EEJ2CF/lLk7R+wtMJM+v/1B4en7jO++Wa5spGzFDBCl0QxgbUc5Ug==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.0.6.tgz", + "integrity": "sha512-w9i//7egejAIvplX821rPWWgaiY1dxsQUw0hXX7qwa/uZ9U3zplqTQ871jWadkcVB9gFDhkPWYVZf4yfFbZ0xA==", "dependencies": { - "@smithy/fetch-http-handler": "^3.2.0", - "@smithy/node-http-handler": "^3.1.1", + "@smithy/fetch-http-handler": "^3.2.1", + "@smithy/node-http-handler": "^3.1.2", "@smithy/types": "^3.3.0", "@smithy/util-base64": "^3.0.0", "@smithy/util-buffer-from": "^3.0.0", @@ -18220,8 +18220,8 @@ }, "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", - "@aws-sdk/client-dynamodb": "^3.613.0", - "@aws-sdk/lib-dynamodb": "^3.613.0", + "@aws-sdk/client-dynamodb": "^3.614.0", + "@aws-sdk/lib-dynamodb": "^3.614.0", "aws-sdk-client-mock": "^4.0.1", "aws-sdk-client-mock-jest": "^4.0.1" }, @@ -18280,7 +18280,7 @@ }, "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", - "@aws-sdk/client-cloudwatch": "^3.613.0", + "@aws-sdk/client-cloudwatch": "^3.614.0", "@types/promise-retry": "^1.1.3", "promise-retry": "^2.0.1" }, @@ -18302,11 +18302,11 @@ }, "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", - "@aws-sdk/client-appconfigdata": "^3.613.0", - "@aws-sdk/client-dynamodb": "^3.613.0", - "@aws-sdk/client-secrets-manager": "^3.613.0", - "@aws-sdk/client-ssm": "^3.613.0", - "@aws-sdk/util-dynamodb": "^3.613.0", + "@aws-sdk/client-appconfigdata": "^3.614.0", + "@aws-sdk/client-dynamodb": "^3.614.0", + "@aws-sdk/client-secrets-manager": "^3.614.0", + "@aws-sdk/client-ssm": "^3.614.0", + "@aws-sdk/util-dynamodb": "^3.614.0", "@smithy/util-base64": "^3.0.0", "aws-sdk-client-mock": "^4.0.1", "aws-sdk-client-mock-jest": "^4.0.1" @@ -18367,7 +18367,7 @@ "license": "MIT-0", "dependencies": { "@aws-cdk/cli-lib-alpha": "^2.121.1-alpha.0", - "@aws-sdk/client-lambda": "^3.613.0", + "@aws-sdk/client-lambda": "^3.614.0", "@smithy/util-utf8": "^3.0.0", "aws-cdk-lib": "^2.145.0", "esbuild": "^0.23.0" @@ -18383,8 +18383,8 @@ }, "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", - "@aws-sdk/client-dynamodb": "^3.613.0", - "@aws-sdk/client-xray": "^3.613.0", + "@aws-sdk/client-dynamodb": "^3.614.0", + "@aws-sdk/client-xray": "^3.614.0", "@types/promise-retry": "^1.1.6", "aws-sdk": "^2.1657.0", "promise-retry": "^2.0.1" diff --git a/packages/idempotency/package.json b/packages/idempotency/package.json index 1c083d7cfa..025f811942 100644 --- a/packages/idempotency/package.json +++ b/packages/idempotency/package.json @@ -125,8 +125,8 @@ ], "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", - "@aws-sdk/client-dynamodb": "^3.613.0", - "@aws-sdk/lib-dynamodb": "^3.613.0", + "@aws-sdk/client-dynamodb": "^3.614.0", + "@aws-sdk/lib-dynamodb": "^3.614.0", "aws-sdk-client-mock": "^4.0.1", "aws-sdk-client-mock-jest": "^4.0.1" } diff --git a/packages/metrics/package.json b/packages/metrics/package.json index 07b57ca4a3..8681bf12bb 100644 --- a/packages/metrics/package.json +++ b/packages/metrics/package.json @@ -62,7 +62,7 @@ "main": "./lib/cjs/index.js", "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", - "@aws-sdk/client-cloudwatch": "^3.613.0", + "@aws-sdk/client-cloudwatch": "^3.614.0", "@types/promise-retry": "^1.1.3", "promise-retry": "^2.0.1" }, diff --git a/packages/parameters/package.json b/packages/parameters/package.json index f95b47b784..f560ce2c5c 100644 --- a/packages/parameters/package.json +++ b/packages/parameters/package.json @@ -154,11 +154,11 @@ ], "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", - "@aws-sdk/client-appconfigdata": "^3.613.0", - "@aws-sdk/client-dynamodb": "^3.613.0", - "@aws-sdk/client-secrets-manager": "^3.613.0", - "@aws-sdk/client-ssm": "^3.613.0", - "@aws-sdk/util-dynamodb": "^3.613.0", + "@aws-sdk/client-appconfigdata": "^3.614.0", + "@aws-sdk/client-dynamodb": "^3.614.0", + "@aws-sdk/client-secrets-manager": "^3.614.0", + "@aws-sdk/client-ssm": "^3.614.0", + "@aws-sdk/util-dynamodb": "^3.614.0", "@smithy/util-base64": "^3.0.0", "aws-sdk-client-mock": "^4.0.1", "aws-sdk-client-mock-jest": "^4.0.1" diff --git a/packages/testing/package.json b/packages/testing/package.json index 488a8ec235..6729e0fb8b 100644 --- a/packages/testing/package.json +++ b/packages/testing/package.json @@ -92,7 +92,7 @@ "homepage": "https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/packages/testing#readme", "dependencies": { "@aws-cdk/cli-lib-alpha": "^2.121.1-alpha.0", - "@aws-sdk/client-lambda": "^3.613.0", + "@aws-sdk/client-lambda": "^3.614.0", "@smithy/util-utf8": "^3.0.0", "aws-cdk-lib": "^2.145.0", "esbuild": "^0.23.0" diff --git a/packages/tracer/package.json b/packages/tracer/package.json index 41bd64de8b..b1b59c6c21 100644 --- a/packages/tracer/package.json +++ b/packages/tracer/package.json @@ -28,8 +28,8 @@ "license": "MIT-0", "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", - "@aws-sdk/client-dynamodb": "^3.613.0", - "@aws-sdk/client-xray": "^3.613.0", + "@aws-sdk/client-dynamodb": "^3.614.0", + "@aws-sdk/client-xray": "^3.614.0", "@types/promise-retry": "^1.1.6", "aws-sdk": "^2.1657.0", "promise-retry": "^2.0.1" From e648f9b0a43182449bcd0847d6d078d81a6233e3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Jul 2024 17:18:40 +0200 Subject: [PATCH 10/12] chore(deps): bump actions/dependency-review-action from 4.3.3 to 4.3.4 (#2772) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/dependency-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 6c8f8c8224..24a0dd11f5 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -19,4 +19,4 @@ jobs: - name: 'Checkout Repository' uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: 'Dependency Review' - uses: actions/dependency-review-action@72eb03d02c7872a771aacd928f3123ac62ad6d3a # v4.3.3 + uses: actions/dependency-review-action@5a2ce3f5b92ee19cbb1541a4984c76d921601d7c # v4.3.4 From 34d0b5500ca67a6df0703be66031d1aee61a09fa Mon Sep 17 00:00:00 2001 From: Tushar Sharma Date: Mon, 15 Jul 2024 14:09:55 +0530 Subject: [PATCH 11/12] fix(parser): include error cause in ParseError (#2774) --- packages/parser/src/errors.ts | 2 +- packages/parser/tests/unit/envelope.test.ts | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/parser/src/errors.ts b/packages/parser/src/errors.ts index c5dc0ebd0b..c3068a731d 100644 --- a/packages/parser/src/errors.ts +++ b/packages/parser/src/errors.ts @@ -7,7 +7,7 @@ class ParseError extends Error { const errorMessage = options?.cause ? `${message}. This error was caused by: ${options?.cause.message}.` : message; - super(errorMessage); + super(errorMessage, options); this.name = 'ParseError'; } } diff --git a/packages/parser/tests/unit/envelope.test.ts b/packages/parser/tests/unit/envelope.test.ts index 8d7778bc25..96450ddddc 100644 --- a/packages/parser/tests/unit/envelope.test.ts +++ b/packages/parser/tests/unit/envelope.test.ts @@ -1,4 +1,10 @@ -import { z } from 'zod'; +/** + * Test decorator parser + * + * @group unit/parser + */ + +import { z, ZodError } from 'zod'; import { Envelope } from '../../src/envelopes/envelope.js'; import { ParseError } from '../../src/errors.js'; @@ -74,5 +80,12 @@ describe('envelope: ', () => { Envelope.parse({ name: 123 }, z.object({ name: z.string() })) ).toThrow(); }); + it('includes the ZodError as the cause of the ParseError', () => { + try { + Envelope.parse('{"name": "John"}', z.object({ name: z.number() })); + } catch (error) { + expect((error as Error).cause).toBeInstanceOf(ZodError); + } + }); }); }); From 3f5a4fa2a9133534ec648684def08090b137a5ea Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 09:58:03 +0100 Subject: [PATCH 12/12] chore(ci): bump version to 2.5.0 (#2775) Co-authored-by: aws-powertools-bot <151832416+aws-powertools-bot@users.noreply.github.com> --- CHANGELOG.md | 16 ++++++++ examples/app/CHANGELOG.md | 8 ++++ examples/app/package.json | 14 +++---- examples/snippets/CHANGELOG.md | 11 +++++ examples/snippets/package.json | 18 ++++---- layers/CHANGELOG.md | 8 ++++ layers/package.json | 2 +- lerna.json | 2 +- package-lock.json | 68 +++++++++++++++---------------- packages/batch/CHANGELOG.md | 8 ++++ packages/batch/package.json | 2 +- packages/commons/CHANGELOG.md | 8 ++++ packages/commons/package.json | 2 +- packages/commons/src/version.ts | 2 +- packages/idempotency/CHANGELOG.md | 8 ++++ packages/idempotency/package.json | 6 +-- packages/jmespath/CHANGELOG.md | 8 ++++ packages/jmespath/package.json | 4 +- packages/logger/CHANGELOG.md | 11 +++++ packages/logger/package.json | 4 +- packages/metrics/CHANGELOG.md | 8 ++++ packages/metrics/package.json | 4 +- packages/parameters/CHANGELOG.md | 8 ++++ packages/parameters/package.json | 4 +- packages/parser/CHANGELOG.md | 11 +++++ packages/parser/package.json | 2 +- packages/testing/CHANGELOG.md | 8 ++++ packages/testing/package.json | 2 +- packages/tracer/CHANGELOG.md | 8 ++++ packages/tracer/package.json | 4 +- 30 files changed, 199 insertions(+), 70 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b89cf28dfb..6b804dbdef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.4.0...v2.5.0) (2024-07-15) + + +### Bug Fixes + +* **parser:** include error cause in ParseError ([#2774](https://github.com/aws-powertools/powertools-lambda-typescript/issues/2774)) ([34d0b55](https://github.com/aws-powertools/powertools-lambda-typescript/commit/34d0b5500ca67a6df0703be66031d1aee61a09fa)) + + +### Features + +* **logger:** custom function for unserializable values (JSON replacer) ([#2739](https://github.com/aws-powertools/powertools-lambda-typescript/issues/2739)) ([fbc8688](https://github.com/aws-powertools/powertools-lambda-typescript/commit/fbc86889f88203945a4201c6a6c403b3a257d54f)) + + + + + # [2.4.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.3.0...v2.4.0) (2024-07-10) diff --git a/examples/app/CHANGELOG.md b/examples/app/CHANGELOG.md index 78ba996ad4..3e73d97886 100644 --- a/examples/app/CHANGELOG.md +++ b/examples/app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.4.0...v2.5.0) (2024-07-15) + +**Note:** Version bump only for package powertools-sample-app + + + + + # [2.4.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.3.0...v2.4.0) (2024-07-10) **Note:** Version bump only for package powertools-sample-app diff --git a/examples/app/package.json b/examples/app/package.json index f12fb3026b..30b84d438e 100644 --- a/examples/app/package.json +++ b/examples/app/package.json @@ -1,6 +1,6 @@ { "name": "powertools-sample-app", - "version": "2.4.0", + "version": "2.5.0", "author": { "name": "Amazon Web Services", "url": "https://aws.amazon.com" @@ -45,12 +45,12 @@ "typescript": "^5.4.5" }, "dependencies": { - "@aws-lambda-powertools/batch": "^2.4.0", - "@aws-lambda-powertools/idempotency": "^2.4.0", - "@aws-lambda-powertools/logger": "^2.4.0", - "@aws-lambda-powertools/metrics": "^2.4.0", - "@aws-lambda-powertools/parameters": "^2.4.0", - "@aws-lambda-powertools/tracer": "^2.4.0", + "@aws-lambda-powertools/batch": "^2.5.0", + "@aws-lambda-powertools/idempotency": "^2.5.0", + "@aws-lambda-powertools/logger": "^2.5.0", + "@aws-lambda-powertools/metrics": "^2.5.0", + "@aws-lambda-powertools/parameters": "^2.5.0", + "@aws-lambda-powertools/tracer": "^2.5.0", "@aws-sdk/client-ssm": "^3.614.0", "@aws-sdk/lib-dynamodb": "^3.614.0", "@middy/core": "^4.7.0", diff --git a/examples/snippets/CHANGELOG.md b/examples/snippets/CHANGELOG.md index 46f7f8e908..0a4c897ab2 100644 --- a/examples/snippets/CHANGELOG.md +++ b/examples/snippets/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.4.0...v2.5.0) (2024-07-15) + + +### Features + +* **logger:** custom function for unserializable values (JSON replacer) ([#2739](https://github.com/aws-powertools/powertools-lambda-typescript/issues/2739)) ([fbc8688](https://github.com/aws-powertools/powertools-lambda-typescript/commit/fbc86889f88203945a4201c6a6c403b3a257d54f)) + + + + + # [2.4.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.3.0...v2.4.0) (2024-07-10) diff --git a/examples/snippets/package.json b/examples/snippets/package.json index 170c4ebf9f..d8480b8795 100644 --- a/examples/snippets/package.json +++ b/examples/snippets/package.json @@ -1,6 +1,6 @@ { "name": "code-snippets", - "version": "2.4.0", + "version": "2.5.0", "description": "A collection code snippets for the Powertools for AWS Lambda (TypeScript) docs", "author": { "name": "Amazon Web Services", @@ -29,14 +29,14 @@ }, "homepage": "https://github.com/aws-powertools/powertools-lambda-typescript#readme", "devDependencies": { - "@aws-lambda-powertools/batch": "^2.4.0", - "@aws-lambda-powertools/idempotency": "^2.4.0", - "@aws-lambda-powertools/jmespath": "^2.4.0", - "@aws-lambda-powertools/logger": "^2.4.0", - "@aws-lambda-powertools/metrics": "^2.4.0", - "@aws-lambda-powertools/parameters": "^2.4.0", - "@aws-lambda-powertools/parser": "^2.4.0", - "@aws-lambda-powertools/tracer": "^2.4.0", + "@aws-lambda-powertools/batch": "^2.5.0", + "@aws-lambda-powertools/idempotency": "^2.5.0", + "@aws-lambda-powertools/jmespath": "^2.5.0", + "@aws-lambda-powertools/logger": "^2.5.0", + "@aws-lambda-powertools/metrics": "^2.5.0", + "@aws-lambda-powertools/parameters": "^2.5.0", + "@aws-lambda-powertools/parser": "^2.5.0", + "@aws-lambda-powertools/tracer": "^2.5.0", "@aws-sdk/client-appconfigdata": "^3.614.0", "@aws-sdk/client-dynamodb": "^3.614.0", "@aws-sdk/client-secrets-manager": "^3.614.0", diff --git a/layers/CHANGELOG.md b/layers/CHANGELOG.md index eb194e5640..334e75d79e 100644 --- a/layers/CHANGELOG.md +++ b/layers/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.4.0...v2.5.0) (2024-07-15) + +**Note:** Version bump only for package layers + + + + + # [2.4.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.3.0...v2.4.0) (2024-07-10) diff --git a/layers/package.json b/layers/package.json index 2b9d54fd55..748686d6da 100644 --- a/layers/package.json +++ b/layers/package.json @@ -1,6 +1,6 @@ { "name": "layers", - "version": "2.4.0", + "version": "2.5.0", "bin": { "layer": "bin/layers.js" }, diff --git a/lerna.json b/lerna.json index 1598250944..0c88c39ce1 100644 --- a/lerna.json +++ b/lerna.json @@ -14,7 +14,7 @@ "layers", "examples/snippets" ], - "version": "2.4.0", + "version": "2.5.0", "npmClient": "npm", "message": "chore(release): %s [skip ci]" } diff --git a/package-lock.json b/package-lock.json index 01f84b9f41..4a1893f160 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,15 +57,15 @@ }, "examples/app": { "name": "powertools-sample-app", - "version": "2.4.0", + "version": "2.5.0", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/batch": "^2.4.0", - "@aws-lambda-powertools/idempotency": "^2.4.0", - "@aws-lambda-powertools/logger": "^2.4.0", - "@aws-lambda-powertools/metrics": "^2.4.0", - "@aws-lambda-powertools/parameters": "^2.4.0", - "@aws-lambda-powertools/tracer": "^2.4.0", + "@aws-lambda-powertools/batch": "^2.5.0", + "@aws-lambda-powertools/idempotency": "^2.5.0", + "@aws-lambda-powertools/logger": "^2.5.0", + "@aws-lambda-powertools/metrics": "^2.5.0", + "@aws-lambda-powertools/parameters": "^2.5.0", + "@aws-lambda-powertools/tracer": "^2.5.0", "@aws-sdk/client-ssm": "^3.614.0", "@aws-sdk/lib-dynamodb": "^3.614.0", "@middy/core": "^4.7.0", @@ -110,17 +110,17 @@ }, "examples/snippets": { "name": "code-snippets", - "version": "2.4.0", + "version": "2.5.0", "license": "MIT-0", "devDependencies": { - "@aws-lambda-powertools/batch": "^2.4.0", - "@aws-lambda-powertools/idempotency": "^2.4.0", - "@aws-lambda-powertools/jmespath": "^2.4.0", - "@aws-lambda-powertools/logger": "^2.4.0", - "@aws-lambda-powertools/metrics": "^2.4.0", - "@aws-lambda-powertools/parameters": "^2.4.0", - "@aws-lambda-powertools/parser": "^2.4.0", - "@aws-lambda-powertools/tracer": "^2.4.0", + "@aws-lambda-powertools/batch": "^2.5.0", + "@aws-lambda-powertools/idempotency": "^2.5.0", + "@aws-lambda-powertools/jmespath": "^2.5.0", + "@aws-lambda-powertools/logger": "^2.5.0", + "@aws-lambda-powertools/metrics": "^2.5.0", + "@aws-lambda-powertools/parameters": "^2.5.0", + "@aws-lambda-powertools/parser": "^2.5.0", + "@aws-lambda-powertools/tracer": "^2.5.0", "@aws-sdk/client-appconfigdata": "^3.614.0", "@aws-sdk/client-dynamodb": "^3.614.0", "@aws-sdk/client-secrets-manager": "^3.614.0", @@ -135,7 +135,7 @@ } }, "layers": { - "version": "2.4.0", + "version": "2.5.0", "license": "MIT-0", "dependencies": { "aws-cdk": "^2.145.0", @@ -18196,7 +18196,7 @@ }, "packages/batch": { "name": "@aws-lambda-powertools/batch", - "version": "2.4.0", + "version": "2.5.0", "license": "MIT-0", "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing" @@ -18204,7 +18204,7 @@ }, "packages/commons": { "name": "@aws-lambda-powertools/commons", - "version": "2.4.0", + "version": "2.5.0", "license": "MIT-0", "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing" @@ -18212,11 +18212,11 @@ }, "packages/idempotency": { "name": "@aws-lambda-powertools/idempotency", - "version": "2.4.0", + "version": "2.5.0", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "^2.4.0", - "@aws-lambda-powertools/jmespath": "^2.4.0" + "@aws-lambda-powertools/commons": "^2.5.0", + "@aws-lambda-powertools/jmespath": "^2.5.0" }, "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", @@ -18244,18 +18244,18 @@ }, "packages/jmespath": { "name": "@aws-lambda-powertools/jmespath", - "version": "2.4.0", + "version": "2.5.0", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "^2.4.0" + "@aws-lambda-powertools/commons": "^2.5.0" } }, "packages/logger": { "name": "@aws-lambda-powertools/logger", - "version": "2.4.0", + "version": "2.5.0", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "^2.4.0", + "@aws-lambda-powertools/commons": "^2.5.0", "lodash.merge": "^4.6.2" }, "devDependencies": { @@ -18273,10 +18273,10 @@ }, "packages/metrics": { "name": "@aws-lambda-powertools/metrics", - "version": "2.4.0", + "version": "2.5.0", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "^2.4.0" + "@aws-lambda-powertools/commons": "^2.5.0" }, "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", @@ -18295,10 +18295,10 @@ }, "packages/parameters": { "name": "@aws-lambda-powertools/parameters", - "version": "2.4.0", + "version": "2.5.0", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "^2.4.0" + "@aws-lambda-powertools/commons": "^2.5.0" }, "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", @@ -18342,7 +18342,7 @@ }, "packages/parser": { "name": "@aws-lambda-powertools/parser", - "version": "2.4.0", + "version": "2.5.0", "license": "MIT-0", "devDependencies": { "@anatine/zod-mock": "^3.13.3", @@ -18363,7 +18363,7 @@ }, "packages/testing": { "name": "@aws-lambda-powertools/testing-utils", - "version": "2.4.0", + "version": "2.5.0", "license": "MIT-0", "dependencies": { "@aws-cdk/cli-lib-alpha": "^2.121.1-alpha.0", @@ -18375,10 +18375,10 @@ }, "packages/tracer": { "name": "@aws-lambda-powertools/tracer", - "version": "2.4.0", + "version": "2.5.0", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "^2.4.0", + "@aws-lambda-powertools/commons": "^2.5.0", "aws-xray-sdk-core": "^3.9.0" }, "devDependencies": { diff --git a/packages/batch/CHANGELOG.md b/packages/batch/CHANGELOG.md index e2935a0312..76e9c01fa2 100644 --- a/packages/batch/CHANGELOG.md +++ b/packages/batch/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.4.0...v2.5.0) (2024-07-15) + +**Note:** Version bump only for package @aws-lambda-powertools/batch + + + + + # [2.4.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.3.0...v2.4.0) (2024-07-10) diff --git a/packages/batch/package.json b/packages/batch/package.json index 40bcb16db0..9ec5a21271 100644 --- a/packages/batch/package.json +++ b/packages/batch/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/batch", - "version": "2.4.0", + "version": "2.5.0", "description": "The batch processing package for the Powertools for AWS Lambda (TypeScript) library.", "author": { "name": "Amazon Web Services", diff --git a/packages/commons/CHANGELOG.md b/packages/commons/CHANGELOG.md index 177c247011..e3afdb29f9 100644 --- a/packages/commons/CHANGELOG.md +++ b/packages/commons/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.4.0...v2.5.0) (2024-07-15) + +**Note:** Version bump only for package @aws-lambda-powertools/commons + + + + + # [2.4.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.3.0...v2.4.0) (2024-07-10) diff --git a/packages/commons/package.json b/packages/commons/package.json index 71b477e4d8..e94dc64d63 100644 --- a/packages/commons/package.json +++ b/packages/commons/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/commons", - "version": "2.4.0", + "version": "2.5.0", "description": "A shared utility package for Powertools for AWS Lambda (TypeScript) libraries", "author": { "name": "Amazon Web Services", diff --git a/packages/commons/src/version.ts b/packages/commons/src/version.ts index 75666959bd..c61f501e4c 100644 --- a/packages/commons/src/version.ts +++ b/packages/commons/src/version.ts @@ -1,2 +1,2 @@ // this file is auto generated, do not modify -export const PT_VERSION = '2.4.0'; +export const PT_VERSION = '2.5.0'; diff --git a/packages/idempotency/CHANGELOG.md b/packages/idempotency/CHANGELOG.md index 47ec68c2aa..b2a9bbe1ee 100644 --- a/packages/idempotency/CHANGELOG.md +++ b/packages/idempotency/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.4.0...v2.5.0) (2024-07-15) + +**Note:** Version bump only for package @aws-lambda-powertools/idempotency + + + + + # [2.4.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.3.0...v2.4.0) (2024-07-10) diff --git a/packages/idempotency/package.json b/packages/idempotency/package.json index 025f811942..cdf519798a 100644 --- a/packages/idempotency/package.json +++ b/packages/idempotency/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/idempotency", - "version": "2.4.0", + "version": "2.5.0", "description": "The idempotency package for the Powertools for AWS Lambda (TypeScript) library. It provides options to make your Lambda functions idempotent and safe to retry.", "author": { "name": "Amazon Web Services", @@ -96,8 +96,8 @@ "url": "https://github.com/aws-powertools/powertools-lambda-typescript/issues" }, "dependencies": { - "@aws-lambda-powertools/commons": "^2.4.0", - "@aws-lambda-powertools/jmespath": "^2.4.0" + "@aws-lambda-powertools/commons": "^2.5.0", + "@aws-lambda-powertools/jmespath": "^2.5.0" }, "peerDependencies": { "@aws-sdk/client-dynamodb": ">=3.x", diff --git a/packages/jmespath/CHANGELOG.md b/packages/jmespath/CHANGELOG.md index 09bc0f181b..db06615064 100644 --- a/packages/jmespath/CHANGELOG.md +++ b/packages/jmespath/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.4.0...v2.5.0) (2024-07-15) + +**Note:** Version bump only for package @aws-lambda-powertools/jmespath + + + + + # [2.4.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.3.0...v2.4.0) (2024-07-10) diff --git a/packages/jmespath/package.json b/packages/jmespath/package.json index d37b71620b..a4a9651f4e 100644 --- a/packages/jmespath/package.json +++ b/packages/jmespath/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/jmespath", - "version": "2.4.0", + "version": "2.5.0", "description": "A type safe and modern jmespath module to parse and extract data from JSON documents using JMESPath", "author": { "name": "Amazon Web Services", @@ -71,7 +71,7 @@ "lib" ], "dependencies": { - "@aws-lambda-powertools/commons": "^2.4.0" + "@aws-lambda-powertools/commons": "^2.5.0" }, "repository": { "type": "git", diff --git a/packages/logger/CHANGELOG.md b/packages/logger/CHANGELOG.md index ff8d24fc3a..a7c81c0aef 100644 --- a/packages/logger/CHANGELOG.md +++ b/packages/logger/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.4.0...v2.5.0) (2024-07-15) + + +### Features + +* **logger:** custom function for unserializable values (JSON replacer) ([#2739](https://github.com/aws-powertools/powertools-lambda-typescript/issues/2739)) ([fbc8688](https://github.com/aws-powertools/powertools-lambda-typescript/commit/fbc86889f88203945a4201c6a6c403b3a257d54f)) + + + + + # [2.4.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.3.0...v2.4.0) (2024-07-10) diff --git a/packages/logger/package.json b/packages/logger/package.json index 4f07819942..e110072cab 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/logger", - "version": "2.4.0", + "version": "2.5.0", "description": "The logging package for the Powertools for AWS Lambda (TypeScript) library", "author": { "name": "Amazon Web Services", @@ -84,7 +84,7 @@ "url": "https://github.com/aws-powertools/powertools-lambda-typescript/issues" }, "dependencies": { - "@aws-lambda-powertools/commons": "^2.4.0", + "@aws-lambda-powertools/commons": "^2.5.0", "lodash.merge": "^4.6.2" }, "keywords": [ diff --git a/packages/metrics/CHANGELOG.md b/packages/metrics/CHANGELOG.md index b9f35b07db..cfe701e79b 100644 --- a/packages/metrics/CHANGELOG.md +++ b/packages/metrics/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.4.0...v2.5.0) (2024-07-15) + +**Note:** Version bump only for package @aws-lambda-powertools/metrics + + + + + # [2.4.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.3.0...v2.4.0) (2024-07-10) diff --git a/packages/metrics/package.json b/packages/metrics/package.json index 8681bf12bb..f71576a7dc 100644 --- a/packages/metrics/package.json +++ b/packages/metrics/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/metrics", - "version": "2.4.0", + "version": "2.5.0", "description": "The metrics package for the Powertools for AWS Lambda (TypeScript) library", "author": { "name": "Amazon Web Services", @@ -85,7 +85,7 @@ "url": "https://github.com/aws-powertools/powertools-lambda-typescript/issues" }, "dependencies": { - "@aws-lambda-powertools/commons": "^2.4.0" + "@aws-lambda-powertools/commons": "^2.5.0" }, "keywords": [ "aws", diff --git a/packages/parameters/CHANGELOG.md b/packages/parameters/CHANGELOG.md index a62d8fdb0b..913b6af67f 100644 --- a/packages/parameters/CHANGELOG.md +++ b/packages/parameters/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.4.0...v2.5.0) (2024-07-15) + +**Note:** Version bump only for package @aws-lambda-powertools/parameters + + + + + # [2.4.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.3.0...v2.4.0) (2024-07-10) diff --git a/packages/parameters/package.json b/packages/parameters/package.json index f560ce2c5c..d42f9b7823 100644 --- a/packages/parameters/package.json +++ b/packages/parameters/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/parameters", - "version": "2.4.0", + "version": "2.5.0", "description": "The parameters package for the Powertools for AWS Lambda (TypeScript) library", "author": { "name": "Amazon Web Services", @@ -164,7 +164,7 @@ "aws-sdk-client-mock-jest": "^4.0.1" }, "dependencies": { - "@aws-lambda-powertools/commons": "^2.4.0" + "@aws-lambda-powertools/commons": "^2.5.0" }, "peerDependencies": { "@aws-sdk/client-appconfigdata": ">=3.x", diff --git a/packages/parser/CHANGELOG.md b/packages/parser/CHANGELOG.md index 8b404a2292..beeee6da0b 100644 --- a/packages/parser/CHANGELOG.md +++ b/packages/parser/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.4.0...v2.5.0) (2024-07-15) + + +### Bug Fixes + +* **parser:** include error cause in ParseError ([#2774](https://github.com/aws-powertools/powertools-lambda-typescript/issues/2774)) ([34d0b55](https://github.com/aws-powertools/powertools-lambda-typescript/commit/34d0b5500ca67a6df0703be66031d1aee61a09fa)) + + + + + # [2.4.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.3.0...v2.4.0) (2024-07-10) diff --git a/packages/parser/package.json b/packages/parser/package.json index be67447756..cd0d856527 100644 --- a/packages/parser/package.json +++ b/packages/parser/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/parser", - "version": "2.4.0", + "version": "2.5.0", "description": "The parser package for the Powertools for AWS Lambda (TypeScript) library.", "author": { "name": "Amazon Web Services", diff --git a/packages/testing/CHANGELOG.md b/packages/testing/CHANGELOG.md index 96f5e9d499..42b0fc85dc 100644 --- a/packages/testing/CHANGELOG.md +++ b/packages/testing/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.4.0...v2.5.0) (2024-07-15) + +**Note:** Version bump only for package @aws-lambda-powertools/testing-utils + + + + + # [2.4.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.3.0...v2.4.0) (2024-07-10) diff --git a/packages/testing/package.json b/packages/testing/package.json index 6729e0fb8b..6a3d7bff4c 100644 --- a/packages/testing/package.json +++ b/packages/testing/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/testing-utils", - "version": "2.4.0", + "version": "2.5.0", "description": "A package containing utilities to test your serverless workloads", "author": { "name": "Amazon Web Services", diff --git a/packages/tracer/CHANGELOG.md b/packages/tracer/CHANGELOG.md index fc80bfb9b6..461e23506c 100644 --- a/packages/tracer/CHANGELOG.md +++ b/packages/tracer/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.5.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.4.0...v2.5.0) (2024-07-15) + +**Note:** Version bump only for package @aws-lambda-powertools/tracer + + + + + # [2.4.0](https://github.com/aws-powertools/powertools-lambda-typescript/compare/v2.3.0...v2.4.0) (2024-07-10) diff --git a/packages/tracer/package.json b/packages/tracer/package.json index b1b59c6c21..ee80d3740f 100644 --- a/packages/tracer/package.json +++ b/packages/tracer/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/tracer", - "version": "2.4.0", + "version": "2.5.0", "description": "The tracer package for the Powertools for AWS Lambda (TypeScript) library", "author": { "name": "Amazon Web Services", @@ -88,7 +88,7 @@ "url": "https://github.com/aws-powertools/powertools-lambda-typescript/issues" }, "dependencies": { - "@aws-lambda-powertools/commons": "^2.4.0", + "@aws-lambda-powertools/commons": "^2.5.0", "aws-xray-sdk-core": "^3.9.0" }, "keywords": [