diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 66c88c89f4..0000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,32 +0,0 @@ -version: 2 -updates: - - # Maintain dependencies for Python - - package-ecosystem: "pip" - directory: "/docs" - schedule: - interval: "weekly" - day: "friday" - time: "05:00" - timezone: "Europe/Amsterdam" - open-pull-requests-limit: 20 - - # Maintain dependencies for GitHub Actions - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "weekly" - day: "friday" - time: "05:00" - timezone: "Europe/Amsterdam" - open-pull-requests-limit: 20 - - # Maintain dependencies for npm - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "weekly" - day: "friday" - time: "05:00" - timezone: "Europe/Amsterdam" - open-pull-requests-limit: 20 \ No newline at end of file diff --git a/.github/workflows/on-merge-to-main.yml b/.github/workflows/on-merge-to-main.yml index 607265c08b..f3c527886d 100644 --- a/.github/workflows/on-merge-to-main.yml +++ b/.github/workflows/on-merge-to-main.yml @@ -61,7 +61,7 @@ jobs: # Generate documentation ######################### - name: Set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: '3.8' - name: Install doc generation dependencies diff --git a/.github/workflows/on-release-prod.yml b/.github/workflows/on-release-prod.yml index 5acdb0fa82..2b34329a32 100644 --- a/.github/workflows/on-release-prod.yml +++ b/.github/workflows/on-release-prod.yml @@ -66,7 +66,7 @@ jobs: # Generate documentation ######################### - name: Set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: '3.8' - name: Set RELEASE_VERSION env var diff --git a/.github/workflows/pr_lint_and_test.yml b/.github/workflows/pr_lint_and_test.yml index 7341f07d95..67458725a4 100644 --- a/.github/workflows/pr_lint_and_test.yml +++ b/.github/workflows/pr_lint_and_test.yml @@ -65,3 +65,10 @@ jobs: with: github-token: ${{ secrets.GITHUB_TOKEN }} lcov-file: ./coverage/lcov.info + - name: Packages size report + uses: flochaz/pkg-size-action@v1.2.12 + with: + build-command: mkdir dist && npm run lerna-package && npm run lerna-package-bundle && bash -c "mv ./packages/*/dist/* dist/" && ls dist + dist-directory: /dist + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index e927636c74..a7fff6cf0f 100644 --- a/CHANGELOG.md +++ b/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. +# [0.11.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.10.0...v0.11.0) (2022-06-23) + + +### Features + +* **logger:** add clear state functionality ([#902](https://github.com/awslabs/aws-lambda-powertools-typescript/issues/902)) ([fa1dacb](https://github.com/awslabs/aws-lambda-powertools-typescript/commit/fa1dacb001503a0a607e0951499119a1a9c61545)) + + + + + # [0.10.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.9.1...v0.10.0) (2022-06-02) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 90921e6df3..bcd69bf3e2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -238,7 +238,11 @@ You can build and start the API reference website by running these two commands #### Docs website -You can build and start a local docs website by running these two commands: +You can build and start a local docs website by running: + +`npm run docs-website-build-run` + +Alternatively you can run these two commands: * `npm run docs-buildDockerImage` OR `docker build -t squidfunk/mkdocs-material ./docs/` * `npm run docs-runLocalDocker` OR `docker run --rm -it -p 8000:8000 -v ${PWD}:/docs squidfunk/mkdocs-material` diff --git a/docs/core/logger.md b/docs/core/logger.md index f4ae99ca9c..621e4c58e1 100644 --- a/docs/core/logger.md +++ b/docs/core/logger.md @@ -14,9 +14,9 @@ Logger provides an opinionated logger with output structured as JSON. ## Key features -* Capture key fields from Lambda context, cold start and structures logging output as JSON -* Log Lambda context when instructed (disabled by default) -* Log sampling prints all logs for a percentage of invocations (disabled by default) +* Capture key fields from Lambda context, cold start and structure logging output as JSON +* Log Lambda event when instructed (disabled by default) +* Log sampling prints all the logs for a percentage of invocations (disabled by default) * Append additional keys to structured log at any point in time ## Getting started @@ -193,6 +193,50 @@ In each case, the printed log will look like this: } ``` +#### Log incoming event + +When debugging in non-production environments, you can instruct Logger to log the incoming event with the middleware/decorator parameter `logEvent` or via POWERTOOLS_LOGGER_LOG_EVENT env var set to `true`. + +???+ warning +This is disabled by default to prevent sensitive info being logged + +=== "Middy Middleware" + + ```typescript hl_lines="11" + import { Logger, injectLambdaContext } from '@aws-lambda-powertools/logger'; + import middy from '@middy/core'; + + const logger = new Logger(); + + const lambdaHandler = async (_event: any, _context: any): Promise => { + logger.info('This is an INFO log with some context'); + }; + + export const handler = middy(lambdaHandler) + .use(injectLambdaContext(logger, { logEvent: true })); + ``` + +=== "Decorator" + + ```typescript hl_lines="8" + import { Logger } from '@aws-lambda-powertools/logger'; + import { LambdaInterface } from '@aws-lambda-powertools/commons'; + + const logger = new Logger(); + + class Lambda implements LambdaInterface { + // Set the log event flag to true + @logger.injectLambdaContext({ logEvent: true }) + public async handler(_event: any, _context: any): Promise { + logger.info('This is an INFO log with some context'); + } + + } + + export const myFunction = new Lambda(); + export const handler = myFunction.handler; + ``` + ### Appending persistent additional log keys and values You can append additional persistent keys and values in the logs generated during a Lambda invocation using either mechanism: @@ -282,6 +326,125 @@ To remove the keys you added, you can use the `removeKeys` method. !!! tip "Logger will automatically ignore any key with an `undefined` value" +#### Clearing all state + +The Logger utility is commonly initialized in the global scope, outside the handler function. +When you attach persistent log attributes through the `persistentLogAttributes` constructor option or via the `appendKeys`, `addPersistentLogAttributes` methods, this data is attached to the Logger instance. + +Due to the [Lambda Execution Context reuse](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html), this means those persistent log attributes may be reused across invocations. +If you want to make sure that persistent attributes added **inside the handler function** code are not persisted across invocations, you can set the parameter `clearState` as `true` in the `injectLambdaContext` middleware or decorator. + +=== "Middy Middleware" + + ```typescript hl_lines="27" + import { Logger, injectLambdaContext } from '@aws-lambda-powertools/logger'; + import middy from '@middy/core'; + + // Persistent attributes added outside the handler will be + // cached across invocations + const logger = new Logger({ + logLevel: 'DEBUG', + persistentLogAttributes: { + foo: "bar", + biz: "baz" + } + }); + + const lambdaHandler = async (event: { special_key: string }, _context: any): Promise => { + // Persistent attributes added inside the handler will NOT be cached + // across invocations + if (event['special_key'] === '123456') { + logger.appendKeys({ + details: { special_key: event['special_key'] } + }); + } + logger.debug('This is a DEBUG log'); + }; + + // Enable the clear state flag + export const handler = middy(lambdaHandler) + .use(injectLambdaContext(logger, { clearState: true })); + ``` + +=== "Decorator" + + ```typescript hl_lines="16" + import { Logger } from '@aws-lambda-powertools/logger'; + import { LambdaInterface } from '@aws-lambda-powertools/commons'; + + // Persistent attributes added outside the handler will be + // cached across invocations + const logger = new Logger({ + logLevel: 'DEBUG', + persistentLogAttributes: { + foo: "bar", + biz: "baz" + } + }); + + class Lambda implements LambdaInterface { + // Enable the clear state flag + @logger.injectLambdaContext({ clearState: true }) + public async handler(_event: any, _context: any): Promise { + // Persistent attributes added inside the handler will NOT be cached + // across invocations + if (event['special_key'] === '123456'){ + logger.appendKeys({ + details: { special_key: '123456' } + }); + } + logger.debug('This is a DEBUG log'); + } + + } + + export const myFunction = new Lambda(); + export const handler = myFunction.handler; + ``` + +In each case, the printed log will look like this: + +=== "First invocation" + + ```json hl_lines="2 4-7" + { + "biz": "baz", + "cold_start": true, + "details": { + "special_key": "123456", + }, + "foo": "bar", + "function_arn": "arn:aws:lambda:eu-west-1:123456789012:function:foo-bar-function", + "function_memory_size": 128, + "function_name": "foo-bar-function", + "function_request_id": "abcdef123456abcdef123456", + "level": "DEBUG", + "message": "This is a DEBUG log with the user_id", + "service": "hello-world", + "timestamp": "2021-12-12T22:32:54.670Z", + "xray_trace_id": "1-5759e988-bd862e3fe1be46a994272793" + } + ``` +=== "Second invocation" + + ```json hl_lines="2 4" + { + "biz": "baz", + "cold_start": false, + "foo": "bar", + "function_arn": "arn:aws:lambda:eu-west-1:123456789012:function:foo-bar-function", + "function_memory_size": 128, + "function_name": "foo-bar-function", + "function_request_id": "abcdef123456abcdef123456", + "level": "DEBUG", + "message": "This is a DEBUG log with the user_id", + "service": "hello-world", + "timestamp": "2021-12-12T22:40:23.120Z", + "xray_trace_id": "1-5759e988-bd862e3fe1be46a994272793" + } + ``` + + ### Appending additional data to a single log item You can append additional data to a single log item by passing objects as additional parameters. @@ -440,6 +603,7 @@ The error will be logged with default key name `error`, but you can also pass yo !!! tip "Logging errors and log level" You can also log errors using the `warn`, `info`, and `debug` methods. Be aware of the log level though, you might miss those errors when analyzing the log later depending on the log level configuration. + ## Advanced ### Using multiple Logger instances across your code diff --git a/docs/index.md b/docs/index.md index aace91263e..60fb5d621a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -45,20 +45,20 @@ Each TypeScript utility is installed as standalone NPM package. ## Environment variables !!! info - **Explicit parameters take precedence over environment variables.** - -| Environment variable | Description | Utility | Default | -|-------------------------------------------| --------------------------------------------------------------------------------- |---------------------------|-----------------------| -| **POWERTOOLS_SERVICE_NAME** | Sets service name used for tracing namespace, metrics dimension and structured logging | All | `"service_undefined"` | -| **POWERTOOLS_METRICS_NAMESPACE** | Sets namespace used for metrics | [Metrics](./core/metrics) | `None` | -| **POWERTOOLS_TRACE_ENABLED** | Explicitly disables tracing | [Tracer](./core/tracer) | `true` | -| **POWERTOOLS_TRACER_CAPTURE_RESPONSE** | Captures Lambda or method return as metadata. | [Tracer](./core/tracer) | `true` | -| **POWERTOOLS_TRACER_CAPTURE_ERROR** | Captures Lambda or method exception as metadata. | [Tracer](./core/tracer) | `true` | -| **POWERTOOLS_TRACER_CAPTURE_HTTPS_REQUESTS** | Captures HTTP(s) requests as segments. | [Tracer](./core/tracer) | `true` | -| **POWERTOOLS_LOGGER_LOG_EVENT** | Logs incoming event | [Logger](./core/logger) | `false` | -| **POWERTOOLS_LOGGER_SAMPLE_RATE** | Debug log sampling | [Logger](./core/logger) | `0` | -| **POWERTOOLS_LOG_DEDUPLICATION_DISABLED** | Disables log deduplication filter protection to use Pytest Live Log feature | [Logger](./core/logger) | `false` | -| **LOG_LEVEL** | Sets logging level | [Logger](./core/logger) | `INFO` | + **Explicit parameters passed in constructors or in middleware/decorators take precedence over environment variables.** + +| Environment variable | Description | Utility | Default | +|----------------------------------------------|----------------------------------------------------------------------------------------|---------------------------|-----------------------| +| **POWERTOOLS_SERVICE_NAME** | Sets service name used for tracing namespace, metrics dimension and structured logging | All | `"service_undefined"` | +| **POWERTOOLS_METRICS_NAMESPACE** | Sets namespace used for metrics | [Metrics](./core/metrics) | `None` | +| **POWERTOOLS_TRACE_ENABLED** | Explicitly disables tracing | [Tracer](./core/tracer) | `true` | +| **POWERTOOLS_TRACER_CAPTURE_RESPONSE** | Captures Lambda or method return as metadata. | [Tracer](./core/tracer) | `true` | +| **POWERTOOLS_TRACER_CAPTURE_ERROR** | Captures Lambda or method exception as metadata. | [Tracer](./core/tracer) | `true` | +| **POWERTOOLS_TRACER_CAPTURE_HTTPS_REQUESTS** | Captures HTTP(s) requests as segments. | [Tracer](./core/tracer) | `true` | +| **POWERTOOLS_LOGGER_LOG_EVENT** | Logs incoming event | [Logger](./core/logger) | `false` | +| **POWERTOOLS_LOGGER_SAMPLE_RATE** | Debug log sampling | [Logger](./core/logger) | `0` | +| **POWERTOOLS_LOGGER_LOG_EVENT** | Logs incoming events | [Logger](./core/logger) | `false` | +| **LOG_LEVEL** | Sets logging level | [Logger](./core/logger) | `INFO` | ## Examples diff --git a/docs/requirements.txt b/docs/requirements.txt index 17f08cd3a5..af763ebab6 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,3 +1,3 @@ mike==1.1.2 -mkdocs-material==8.2.15 +mkdocs-material==8.3.6 mkdocs-git-revision-date-plugin==0.3.2 diff --git a/examples/cdk/CHANGELOG.md b/examples/cdk/CHANGELOG.md index 2d24d3e3d6..05ac85e152 100644 --- a/examples/cdk/CHANGELOG.md +++ b/examples/cdk/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. +# [0.11.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.10.0...v0.11.0) (2022-06-23) + +**Note:** Version bump only for package cdk-app + + + + + # [0.10.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.9.1...v0.10.0) (2022-06-02) diff --git a/examples/cdk/package-lock.json b/examples/cdk/package-lock.json index e1e7f0ab60..12e28d18ab 100644 --- a/examples/cdk/package-lock.json +++ b/examples/cdk/package-lock.json @@ -1,12 +1,12 @@ { "name": "cdk-app", - "version": "0.10.0", + "version": "0.11.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cdk-app", - "version": "0.10.0", + "version": "0.11.0", "license": "MIT-0", "dependencies": { "@aws-lambda-powertools/logger": "^0.7.0", @@ -15,7 +15,7 @@ "@aws-sdk/client-sts": "^3.53.0", "@middy/core": "^2.5.6", "@types/aws-lambda": "^8.10.86", - "aws-cdk-lib": "2.25.0", + "aws-cdk-lib": "2.27.0", "aws-sdk": "^2.1088.0", "constructs": "^10.0.82", "source-map-support": "^0.5.16" @@ -25,7 +25,7 @@ }, "devDependencies": { "@types/jest": "^27.4.0", - "@types/node": "17.0.35", + "@types/node": "18.0.0", "aws-cdk": "^2.0.0", "esbuild": "^0.14.23", "jest": "^27.5.1", @@ -123,9 +123,9 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@aws-lambda-powertools/commons": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@aws-lambda-powertools/commons/-/commons-0.7.0.tgz", - "integrity": "sha512-IrgZBlIyHn0qVtK4fxVP2js+mB2sapos3VgX0xECohQaHON7xYiLBphWB7qy8PrR7JNSpZGOKbZsHAqgpQzs2Q==" + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@aws-lambda-powertools/commons/-/commons-0.7.2.tgz", + "integrity": "sha512-GhOuenLRJTbmK7YuthRODOL/bEYhgXqwmz7uKEFyN4lkt+ZTb5+vDMTuj0eiry6jGKEw0u9ainfUxd0x/QjFxw==" }, "node_modules/@aws-lambda-powertools/logger": { "version": "0.7.0", @@ -168,9 +168,9 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.95.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.95.0.tgz", - "integrity": "sha512-yxiVyRG5ULTVzOTmlrsy1krjpBQo20+ZfQ9p++A7cA8dIsytzjlPLvtY+Pzz0pTa3h2B6tlVBmumgEQzh5Y8Ug==", + "version": "3.105.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.105.0.tgz", + "integrity": "sha512-Lp92m3ayckXpAElpgZ8E6JEGB7B5sBsjCkTmYeZq3uVXF8uCVMQFmFo4v2yndLQ3NFCEE8qN2PE8obLDOAsNIA==", "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -181,6 +181,7 @@ "@aws-sdk/middleware-content-length": "3.78.0", "@aws-sdk/middleware-host-header": "3.78.0", "@aws-sdk/middleware-logger": "3.78.0", + "@aws-sdk/middleware-recursion-detection": "3.105.0", "@aws-sdk/middleware-retry": "3.80.0", "@aws-sdk/middleware-serde": "3.78.0", "@aws-sdk/middleware-stack": "3.78.0", @@ -188,15 +189,15 @@ "@aws-sdk/node-config-provider": "3.80.0", "@aws-sdk/node-http-handler": "3.94.0", "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/smithy-client": "3.85.0", + "@aws-sdk/smithy-client": "3.99.0", "@aws-sdk/types": "3.78.0", "@aws-sdk/url-parser": "3.78.0", "@aws-sdk/util-base64-browser": "3.58.0", "@aws-sdk/util-base64-node": "3.55.0", "@aws-sdk/util-body-length-browser": "3.55.0", "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.85.0", - "@aws-sdk/util-defaults-mode-node": "3.85.0", + "@aws-sdk/util-defaults-mode-browser": "3.99.0", + "@aws-sdk/util-defaults-mode-node": "3.99.0", "@aws-sdk/util-user-agent-browser": "3.78.0", "@aws-sdk/util-user-agent-node": "3.80.0", "@aws-sdk/util-utf8-browser": "3.55.0", @@ -208,20 +209,21 @@ } }, "node_modules/@aws-sdk/client-sts": { - "version": "3.95.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.95.0.tgz", - "integrity": "sha512-qeoiEyBB5IQyjgjkCCBiQnISar7OJgjuTf2alM6ehjq8H4/T5VeMCeohEs5FR0/O60sJn40ZpL3YY/OmMh55UA==", + "version": "3.105.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.105.0.tgz", + "integrity": "sha512-ZZyw5hu0Ip/jHc9umpWTnWNUHV270fS25LB7fecUwQeC/cok+EvaG5QGBVI5t0GSUynEIC0sNlG9SDc1wLTZPA==", "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", "@aws-sdk/config-resolver": "3.80.0", - "@aws-sdk/credential-provider-node": "3.95.0", + "@aws-sdk/credential-provider-node": "3.105.0", "@aws-sdk/fetch-http-handler": "3.78.0", "@aws-sdk/hash-node": "3.78.0", "@aws-sdk/invalid-dependency": "3.78.0", "@aws-sdk/middleware-content-length": "3.78.0", "@aws-sdk/middleware-host-header": "3.78.0", "@aws-sdk/middleware-logger": "3.78.0", + "@aws-sdk/middleware-recursion-detection": "3.105.0", "@aws-sdk/middleware-retry": "3.80.0", "@aws-sdk/middleware-sdk-sts": "3.78.0", "@aws-sdk/middleware-serde": "3.78.0", @@ -231,15 +233,15 @@ "@aws-sdk/node-config-provider": "3.80.0", "@aws-sdk/node-http-handler": "3.94.0", "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/smithy-client": "3.85.0", + "@aws-sdk/smithy-client": "3.99.0", "@aws-sdk/types": "3.78.0", "@aws-sdk/url-parser": "3.78.0", "@aws-sdk/util-base64-browser": "3.58.0", "@aws-sdk/util-base64-node": "3.55.0", "@aws-sdk/util-body-length-browser": "3.55.0", "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.85.0", - "@aws-sdk/util-defaults-mode-node": "3.85.0", + "@aws-sdk/util-defaults-mode-browser": "3.99.0", + "@aws-sdk/util-defaults-mode-node": "3.99.0", "@aws-sdk/util-user-agent-browser": "3.78.0", "@aws-sdk/util-user-agent-node": "3.80.0", "@aws-sdk/util-utf8-browser": "3.55.0", @@ -296,13 +298,13 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.95.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.95.0.tgz", - "integrity": "sha512-Ditfnmo8/F79Zj8HmaRZZTDsthhvKcdgGFus+pF3kxZxyR3YU/k7/eGUISZeCQhA0/9nwxXMFDUmAIsa0AMfyg==", + "version": "3.105.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.105.0.tgz", + "integrity": "sha512-qYEUciSpeIBkIDt3ljWkVphG7OUIvQOMklYjtEYjYGFjHX7GuyNbV0NI0T6W/edV0aU/a/KpBi0uKd93Gi43Lg==", "dependencies": { "@aws-sdk/credential-provider-env": "3.78.0", "@aws-sdk/credential-provider-imds": "3.81.0", - "@aws-sdk/credential-provider-sso": "3.95.0", + "@aws-sdk/credential-provider-sso": "3.105.0", "@aws-sdk/credential-provider-web-identity": "3.78.0", "@aws-sdk/property-provider": "3.78.0", "@aws-sdk/shared-ini-file-loader": "3.80.0", @@ -314,15 +316,15 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.95.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.95.0.tgz", - "integrity": "sha512-NCXejOQg5p+oJPaUPa+jIrU7pStm8zZtOn6lXVnubZrQClv2+ZQrgxVt6otN464SWqMQbmLFYNyYf4bsLJaEhA==", + "version": "3.105.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.105.0.tgz", + "integrity": "sha512-A781wWAcghqw21Vddj2jZo1BeKDyqqMcBYIuXJxjwK4fq+IBxlnI6De1vzv3H7QxosDyDS4mKWGW2FqUQI8ofg==", "dependencies": { "@aws-sdk/credential-provider-env": "3.78.0", "@aws-sdk/credential-provider-imds": "3.81.0", - "@aws-sdk/credential-provider-ini": "3.95.0", + "@aws-sdk/credential-provider-ini": "3.105.0", "@aws-sdk/credential-provider-process": "3.80.0", - "@aws-sdk/credential-provider-sso": "3.95.0", + "@aws-sdk/credential-provider-sso": "3.105.0", "@aws-sdk/credential-provider-web-identity": "3.78.0", "@aws-sdk/property-provider": "3.78.0", "@aws-sdk/shared-ini-file-loader": "3.80.0", @@ -348,11 +350,11 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.95.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.95.0.tgz", - "integrity": "sha512-YIzBBWUKkazvoM8CsCbf4YIs5ENtOr5KXUd6e993c3oRMNsUykOtf/AUBN6G3HItuyxoA8vW/8M6tKX44cRCAg==", + "version": "3.105.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.105.0.tgz", + "integrity": "sha512-oHvMZ0uHfOzFkepX29GPXUrI7HTQklQl01laVxEdCNtgZGfos9gjz+xPUDBCaoiEzM+xF9uu4wtaQ15c1bCclQ==", "dependencies": { - "@aws-sdk/client-sso": "3.95.0", + "@aws-sdk/client-sso": "3.105.0", "@aws-sdk/property-provider": "3.78.0", "@aws-sdk/shared-ini-file-loader": "3.80.0", "@aws-sdk/types": "3.78.0", @@ -458,6 +460,19 @@ "node": ">= 12.0.0" } }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.105.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.105.0.tgz", + "integrity": "sha512-KksW6cBQ3BWTNlN+4eMW8//oqsuKLYJsSUsdSLQb7MFBHnw+6r8GS9WXMYN0IBswlhdYi9fv83zlKDTV21ZL+g==", + "dependencies": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, "node_modules/@aws-sdk/middleware-retry": { "version": "3.80.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.80.0.tgz", @@ -655,9 +670,9 @@ } }, "node_modules/@aws-sdk/smithy-client": { - "version": "3.85.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.85.0.tgz", - "integrity": "sha512-Ox/yQEAnANzhpJMyrpuxWtF/i3EviavENczT7fo4uwSyZTz/sfSBQNjs/YAG1UeA6uOI3pBP5EaFERV5hr2fRA==", + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.99.0.tgz", + "integrity": "sha512-N9xgCcwbOBZ4/WuROzlErExXV6+vFrFkNJzeBT31/avvrHXjxgxwQlMoXoQCfM8PyRuDuVSfZeoh1iIRfoxidA==", "dependencies": { "@aws-sdk/middleware-stack": "3.78.0", "@aws-sdk/types": "3.78.0", @@ -748,9 +763,9 @@ } }, "node_modules/@aws-sdk/util-defaults-mode-browser": { - "version": "3.85.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.85.0.tgz", - "integrity": "sha512-oqK/e2pHuMWrvTJWtDBzylbj232ezlTay5dCq4RQlyi3LPPVBQ08haYD1Mk2ikQ/qa0XvbSD6YVhjpTlvwRNjw==", + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.99.0.tgz", + "integrity": "sha512-qSYjUGuN8n7Q/zAi0tzU4BrU389jQosXtjp7eHpLATl0pKGpaHx6rJNwbiNhvBhBEfmSgqsJ09b4gZUpUezHEw==", "dependencies": { "@aws-sdk/property-provider": "3.78.0", "@aws-sdk/types": "3.78.0", @@ -762,9 +777,9 @@ } }, "node_modules/@aws-sdk/util-defaults-mode-node": { - "version": "3.85.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.85.0.tgz", - "integrity": "sha512-KDNl4H8jJJLh6y7I3MSwRKe4plKbFKK8MVkS0+Fce/GJh4EnqxF0HzMMaSeNUcPvO2wHRq2a60+XW+0d7eWo1A==", + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.99.0.tgz", + "integrity": "sha512-8TUO0kEnQcgT1gAW9y9oO6a5gKhfEGEUeKidEgbTczEUrjr3aCXIC+p0DI5FJfImwPrTKXra8A22utDM92phWw==", "dependencies": { "@aws-sdk/config-resolver": "3.80.0", "@aws-sdk/credential-provider-imds": "3.81.0", @@ -1979,9 +1994,9 @@ "dev": true }, "node_modules/@types/aws-lambda": { - "version": "8.10.97", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.97.tgz", - "integrity": "sha512-BZk3qO4R2KN8Ts3eR6CW1n8LI46UOgv1KoDZjo8J9vOQvDeX/rsrv1H0BpEAMcSqZ1mLwTEyAMtlua5tlSn0kw==" + "version": "8.10.100", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.100.tgz", + "integrity": "sha512-Qldp1LhbgQ4tEHewci0/q5qVRaDr8ylvsYfpitJ+FFixzAHpgitvM2NM449uYWt2tYo/iJy25aSRRUVvwIT+ng==" }, "node_modules/@types/babel__core": { "version": "7.1.19", @@ -2076,9 +2091,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", - "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==" + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" }, "node_modules/@types/prettier": { "version": "2.4.4", @@ -2264,9 +2279,9 @@ } }, "node_modules/aws-cdk-lib": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.25.0.tgz", - "integrity": "sha512-rcQeQu/lTmi1tg5DwV0gBqJtF73khApfHt9n7BIHkKbUWvCB50lIL1Q1/7cHvTicfQ62UnwFoPWwB0YqQceDVQ==", + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.27.0.tgz", + "integrity": "sha512-CsTy/+RIBMvP9LlZjkQakkKPpwU50+HAMCMaGOcyIHADDQdXobGcZXTO+Tq00sH2DoQjPV1ZhhBim5z3k/2KXw==", "bundleDependencies": [ "@balena/dockerignore", "case", @@ -2448,9 +2463,9 @@ } }, "node_modules/aws-sdk": { - "version": "2.1140.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1140.0.tgz", - "integrity": "sha512-cNdq56UQrUzXmCgwo0/J5GGLmfHn+Vp38qgcK/Xd86Sch8P9v2o8tNv7J82mYU98YY2vO007BMxRylA4Sd8PkQ==", + "version": "2.1157.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1157.0.tgz", + "integrity": "sha512-30t+zhCECib8uaggd0Du8ifab4vtJjgVvNKxHWTpiLa3deTnM+0K7x3pwM99zxw0gLDxAUet/oURaoPJHwk/5Q==", "dependencies": { "buffer": "4.9.2", "events": "1.1.1", @@ -2459,7 +2474,7 @@ "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", - "uuid": "3.3.2", + "uuid": "8.0.0", "xml2js": "0.4.19" }, "engines": { @@ -2467,12 +2482,11 @@ } }, "node_modules/aws-sdk/node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz", + "integrity": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==", "bin": { - "uuid": "bin/uuid" + "uuid": "dist/bin/uuid" } }, "node_modules/aws-xray-sdk-core": { @@ -2867,9 +2881,9 @@ "dev": true }, "node_modules/constructs": { - "version": "10.1.19", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.1.19.tgz", - "integrity": "sha512-fkwDjoJ1LW8sjfXDkSftTJnoQm3+EmsKyM8i+bgQh/n5zOAvW9znMU7o3qooKiGJZ8iJtvkEX54I6ZRGrmJhYw==", + "version": "10.1.25", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.1.25.tgz", + "integrity": "sha512-etUavUwFJ3oTxoP9ax8Dvzv47Nzk9QHRnubL3cEOxLATd8b0SOLFN4xB7FP6eEg/D+cI7rgXTOQH9Oj4rIhwqw==", "engines": { "node": ">= 14.17.0" } @@ -3092,9 +3106,9 @@ } }, "node_modules/esbuild": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.40.tgz", - "integrity": "sha512-toIoQk3ODEEIudsN74wXGdw1eiUN4aKRijOqiwEAqfUFlhORPYFJtACzRdRRlpUysRUUlvIUoGE1aw/MIVCWnA==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.46.tgz", + "integrity": "sha512-vdm5G1JdZBktva8dwQci/s44VbeBUg8g907xoZx77mqFZ4gU5GlMULNsdGeID+qXCXocsfYSGtE0LvqH3eiNQg==", "dev": true, "hasInstallScript": true, "bin": { @@ -3104,32 +3118,32 @@ "node": ">=12" }, "optionalDependencies": { - "esbuild-android-64": "0.14.40", - "esbuild-android-arm64": "0.14.40", - "esbuild-darwin-64": "0.14.40", - "esbuild-darwin-arm64": "0.14.40", - "esbuild-freebsd-64": "0.14.40", - "esbuild-freebsd-arm64": "0.14.40", - "esbuild-linux-32": "0.14.40", - "esbuild-linux-64": "0.14.40", - "esbuild-linux-arm": "0.14.40", - "esbuild-linux-arm64": "0.14.40", - "esbuild-linux-mips64le": "0.14.40", - "esbuild-linux-ppc64le": "0.14.40", - "esbuild-linux-riscv64": "0.14.40", - "esbuild-linux-s390x": "0.14.40", - "esbuild-netbsd-64": "0.14.40", - "esbuild-openbsd-64": "0.14.40", - "esbuild-sunos-64": "0.14.40", - "esbuild-windows-32": "0.14.40", - "esbuild-windows-64": "0.14.40", - "esbuild-windows-arm64": "0.14.40" + "esbuild-android-64": "0.14.46", + "esbuild-android-arm64": "0.14.46", + "esbuild-darwin-64": "0.14.46", + "esbuild-darwin-arm64": "0.14.46", + "esbuild-freebsd-64": "0.14.46", + "esbuild-freebsd-arm64": "0.14.46", + "esbuild-linux-32": "0.14.46", + "esbuild-linux-64": "0.14.46", + "esbuild-linux-arm": "0.14.46", + "esbuild-linux-arm64": "0.14.46", + "esbuild-linux-mips64le": "0.14.46", + "esbuild-linux-ppc64le": "0.14.46", + "esbuild-linux-riscv64": "0.14.46", + "esbuild-linux-s390x": "0.14.46", + "esbuild-netbsd-64": "0.14.46", + "esbuild-openbsd-64": "0.14.46", + "esbuild-sunos-64": "0.14.46", + "esbuild-windows-32": "0.14.46", + "esbuild-windows-64": "0.14.46", + "esbuild-windows-arm64": "0.14.46" } }, "node_modules/esbuild-android-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.40.tgz", - "integrity": "sha512-+69t+bmJWWhTyG8waJZcu4UGzM4NbDXAwssTEDYwonyz6L/Is11Y3csJhE16RM0a1GeDin0n810vNP+NVjttKA==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.46.tgz", + "integrity": "sha512-ZyJqwAcjNbZprs0ZAxnUAOhEhdE5kTKwz+CZuLmZYNLAPyRgBtaC8pT2PCuPifNvV8Cl3yLlrQPaOCjovoyb5g==", "cpu": [ "x64" ], @@ -3143,9 +3157,9 @@ } }, "node_modules/esbuild-android-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.40.tgz", - "integrity": "sha512-lVDn4d7/NL5Svrxuskmd/YcluI6uI4Ebp7A1/tWyLJJYbvfIy5l4Vy8GMhErGLePbRyJJiuBP9xusapK4u+6bg==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.46.tgz", + "integrity": "sha512-BKcnUksvCijO9ONv6b4SikZE/OZftwJvX91XROODZGQmuwGVg97jmLDVu3lxuHdFlMNNzxh8taJ2mbCWZzH/Iw==", "cpu": [ "arm64" ], @@ -3159,9 +3173,9 @@ } }, "node_modules/esbuild-darwin-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.40.tgz", - "integrity": "sha512-b5u3IXCHhOjkRHIQTSxCN7ObUR5NTyJCP9LrnJ69dEEi1w1usI40T/VNyTTCs7n0UgEH7/zi27vBxbZU+sU4Ew==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.46.tgz", + "integrity": "sha512-/ss2kO92sUJ9/1nHnMb3+oab8w6dyqKrMtPMvSYJ9KZIYGAZxz/WYxfFprY7Xk+ZxWnnlASSyZlG+If1nVmFYg==", "cpu": [ "x64" ], @@ -3175,9 +3189,9 @@ } }, "node_modules/esbuild-darwin-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.40.tgz", - "integrity": "sha512-Wn0C2nrZSANvzK9efcxjKpv9l8yUC4PtYMmnf775gUNwak7sqecuoelhbUTshhrwsfjCNfjsrUhsHY2OHUiEdw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.46.tgz", + "integrity": "sha512-WX0JOaEFf6t+rIjXO6THsf/0fhQAt2Zb0/PSYlvXnuQQAmOmFAfPsuRNocp5ME0NGaUqZd4FxqqmLEVK3RzPAg==", "cpu": [ "arm64" ], @@ -3191,9 +3205,9 @@ } }, "node_modules/esbuild-freebsd-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.40.tgz", - "integrity": "sha512-B9WZNUn7Y9f97xrQGBAQPKsebeFZzAd+JCdsLCexrVfTjB24b+/Iuq5O2z/q5Meg7Yz0S+j8AO6ncpvNkK2u0w==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.46.tgz", + "integrity": "sha512-o+ozPFuHRCAGCVWU2bLurOUgVkT0jcPEu082VBUY2Q/yLf+B+/3nXzh4Fjp5O21tOvJRTn7hUVydG9j5+vYE6A==", "cpu": [ "x64" ], @@ -3207,9 +3221,9 @@ } }, "node_modules/esbuild-freebsd-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.40.tgz", - "integrity": "sha512-3aB9uJv2/lmQNzwmieNyyOdxKi+3ERwrqf3snBu/oEng8b7nMBNrEN+p7jjkTYNYmo291KiH/5EIAXwpsZndFw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.46.tgz", + "integrity": "sha512-9zicZ0X43WDKz3sjNfcqYO38xbfJpSWYXB+FxvYYkmBwGA52K0SAu4oKuTTLi8od8X2IIo1x5C5TUNvKDSVJww==", "cpu": [ "arm64" ], @@ -3223,9 +3237,9 @@ } }, "node_modules/esbuild-linux-32": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.40.tgz", - "integrity": "sha512-LMI9BMeuGf6NRS23LbyVarN3nf+JyNcfiVEnR9M8691kL5Ffp3e7oTYRH65XdTUirM9D6e5cppfWLjvrRbGnRw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.46.tgz", + "integrity": "sha512-ZnTpZMVb0VGvL99R5eh4OrJwbUyvpM6M88VAMuHP4LvFjuvZrhgefjKqEGuWZZW7JRnAjKqjXLjWdhdSjwMFnQ==", "cpu": [ "ia32" ], @@ -3239,9 +3253,9 @@ } }, "node_modules/esbuild-linux-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.40.tgz", - "integrity": "sha512-D/NkZ9QR2KShJXNuRWANxJzPCrwJoAoWVetQiGIAepzXbNh+dBo5ZLmlh8Txs6tE600N67MF/ScHP1S4FxLaJg==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.46.tgz", + "integrity": "sha512-ECCRRZtX6l4ubeVhHhiVoK/uYAkvzNqfmR4gP4N/9H9RPu+b8YCcN4bQGp7xCuYIV6Xd41WpOMyO+xpcQvjtQQ==", "cpu": [ "x64" ], @@ -3255,9 +3269,9 @@ } }, "node_modules/esbuild-linux-arm": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.40.tgz", - "integrity": "sha512-2a0yZXbzr/s3iCgZ84jFTHf+NyyXQ/7/Sd28oQq5iyy7TbJNS973XUOwgdlHdRqBxvw0nIWTw2FuwyUJAFa6Qg==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.46.tgz", + "integrity": "sha512-RvTJEi4vj13c5FP9YPp+8Y6x6HK1E7uSqfy3y9UoeaNAzNZWA7fN1U3hQjTL/dy5zTJH5KE64mrt5k5+he+CQA==", "cpu": [ "arm" ], @@ -3271,9 +3285,9 @@ } }, "node_modules/esbuild-linux-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.40.tgz", - "integrity": "sha512-TIoZWKjrMJxZujh2nSsrrLkLDLzD/oBpSiobdUGe2bqKZpT4m7fkR0tEDNyM6Xvzj9uTQ4iTfJr2ekmpg3DyTQ==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.46.tgz", + "integrity": "sha512-HX0TXCHyI0NEWG4jg8LlW1PbZQbnz+PUH56yjx996cgM5pC90u32drKs/tyJiyyQmNk9OXOogjKw7LEdp/Qc1w==", "cpu": [ "arm64" ], @@ -3287,9 +3301,9 @@ } }, "node_modules/esbuild-linux-mips64le": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.40.tgz", - "integrity": "sha512-SP30CYYSDMwr6mPUbjvD4K2R03GQHIQGrkrbXt5NM6mFqzR+S+JKVv9juq/CjlM9V7iIPPPqe4mb4DWC3b8pBw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.46.tgz", + "integrity": "sha512-jnb2NDwGqJUVmxn1v0f7seNdDm0nRNWHP9Z3MrWAGnBCdnnDlsjqRFDnbKoaQvWONEa+rOOr/giK+VL0hgQExA==", "cpu": [ "mips64el" ], @@ -3303,9 +3317,9 @@ } }, "node_modules/esbuild-linux-ppc64le": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.40.tgz", - "integrity": "sha512-HlU3dfIdwzm/zhbXvMa5yWIafBeI7v6BDaEuApAww5Av8ht7lXgD1fZ11iJVPjRWNLcCZUgZaJKFrosSPQO/Bw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.46.tgz", + "integrity": "sha512-uu3JTQUrwwauKY9z8yq5MnDyOlT3f2DNOzBcYz4dB78HqwEqilCsifoBGd0WcbED5n57dc59X+LZMTZ8Ose44w==", "cpu": [ "ppc64" ], @@ -3319,9 +3333,9 @@ } }, "node_modules/esbuild-linux-riscv64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.40.tgz", - "integrity": "sha512-4ImTBEUykhIcIq3c97dIXnsmAHb//cjHh4nxttLhwpTZ+b/KdM1IpttqFhB0AFLUsrjP4WOCMxAm5FOL7FC2uw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.46.tgz", + "integrity": "sha512-OB29r1EG44ZY34JnXCRERxo7k4pRKoQdaoRg2HIeCavatsXZwW4LCakpLnMQ72vXT1HtpBUABEjHkKkn5JyrUg==", "cpu": [ "riscv64" ], @@ -3335,9 +3349,9 @@ } }, "node_modules/esbuild-linux-s390x": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.40.tgz", - "integrity": "sha512-kFCPKictYjpt5rt0bFdbSmb8AWut75sIh1fZUTCVkujWMcpdL8ADuYMfVrN7R0CSQvkF1nQtrIBfp+ZU7R7KNQ==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.46.tgz", + "integrity": "sha512-XQ/U9TueMSGYyPTKyZsJVraiuvxhwCDIMn/QwFXCRCJ6H/Cy/Rq33u9qhpeSziinHKfzJROGx5A8mQY6aYamdQ==", "cpu": [ "s390x" ], @@ -3351,9 +3365,9 @@ } }, "node_modules/esbuild-netbsd-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.40.tgz", - "integrity": "sha512-Hwzw2cSI6+p03TUjugzec54W6uW4tA1J/WovmlHl96Icjy73eWnAyCQwgG6ZLirXpt2aDfTEVShNaC2fE4KVhQ==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.46.tgz", + "integrity": "sha512-i15BwqHaAIFp1vBJkitAbHtwXcLk9TdHs/Ia1xGIAutQYXSJNPLM3Z4B4hyfHNEFl2yBqBIYpglMohv2ClNdOQ==", "cpu": [ "x64" ], @@ -3367,9 +3381,9 @@ } }, "node_modules/esbuild-openbsd-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.40.tgz", - "integrity": "sha512-L4Pix+N2Sb0HvLl8zyn1Aq2aYD5Jt8rk9zwW3NUx19yafJqAFsnUN7L/XbbWSv5/XMqnY4hpAvIP2pyeV9+Bjw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.46.tgz", + "integrity": "sha512-XwOIFCE140Y/PvjrwjFfa/QLWBuvhR1mPCOa35mKx02jt++wPNgf0qhn6HfdVC3vQe7R46RwTp4q2cp99fepEg==", "cpu": [ "x64" ], @@ -3383,9 +3397,9 @@ } }, "node_modules/esbuild-sunos-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.40.tgz", - "integrity": "sha512-iEITaelmmCO43ewk0bOYRGrewu2i2h2V0gKHQ/rz1MRqif8ohY/FNLn4WnThGUlrEgA1nTL1tc57PL12QbOo2Q==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.46.tgz", + "integrity": "sha512-+kV3JnmfdxBVpHyFvuGXWtu6tXxXApOLPkSrVkMJf6+ns/3PLtPndpzwCzHjD+qYUEk8ln4MA+ufQ2qmjW5mZg==", "cpu": [ "x64" ], @@ -3399,9 +3413,9 @@ } }, "node_modules/esbuild-windows-32": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.40.tgz", - "integrity": "sha512-uXHmKl4RtCkK1v6QQK4hsP8Xiku6CwUM/W7Yv2rGtfylSOrrWKcpqwlDWx6bIm1Hav1uBC8hbgJ1hY6pWFNhNA==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.46.tgz", + "integrity": "sha512-gzGC1Q11B/Bo5A2EX4N22oigWmhL7Z0eDyc8kbSoJjqSrGQuRE7B0uMpluO+q0O/gZ1S3zdw+M4PCWlqOIeXLA==", "cpu": [ "ia32" ], @@ -3415,9 +3429,9 @@ } }, "node_modules/esbuild-windows-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.40.tgz", - "integrity": "sha512-dvgQLVYnJzqce97AeHvxWtV9lHRDxIPatOikmrh1vt/SCE4tyVo5nAT/2SiZBJ6DzYmZT3BcJTV24bBLyu4ZUA==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.46.tgz", + "integrity": "sha512-Do2daaskfOjmCB7o3ygz6fD3K6SPjZLERiZLktzHz2oUCwsebKu/gmop0+j/XdrVIXC32wFzHzDS+9CTu9OShw==", "cpu": [ "x64" ], @@ -3431,9 +3445,9 @@ } }, "node_modules/esbuild-windows-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.40.tgz", - "integrity": "sha512-c8ohQSFtRq78pZ/LQcpMft2xuR2IEitQkW07f9K7iN4EBdJMrCpOoXrZCfmX9lAC8yYOU7xHoLFYVln3n6fK1Q==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.46.tgz", + "integrity": "sha512-VEzMy6bM60/HT/URTDElyhfi2Pk0quCCrEhRlI4MRno/AIqYUGw0rZwkPl6PeoqVI6BgoBHGY576GWTiPmshCA==", "cpu": [ "arm64" ], @@ -6220,9 +6234,9 @@ } }, "node_modules/ts-node": { - "version": "10.8.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.0.tgz", - "integrity": "sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA==", + "version": "10.8.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", + "integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", "dev": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -6319,9 +6333,9 @@ } }, "node_modules/typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -6717,9 +6731,9 @@ } }, "@aws-lambda-powertools/commons": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@aws-lambda-powertools/commons/-/commons-0.7.0.tgz", - "integrity": "sha512-IrgZBlIyHn0qVtK4fxVP2js+mB2sapos3VgX0xECohQaHON7xYiLBphWB7qy8PrR7JNSpZGOKbZsHAqgpQzs2Q==" + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@aws-lambda-powertools/commons/-/commons-0.7.2.tgz", + "integrity": "sha512-GhOuenLRJTbmK7YuthRODOL/bEYhgXqwmz7uKEFyN4lkt+ZTb5+vDMTuj0eiry6jGKEw0u9ainfUxd0x/QjFxw==" }, "@aws-lambda-powertools/logger": { "version": "0.7.0", @@ -6759,9 +6773,9 @@ } }, "@aws-sdk/client-sso": { - "version": "3.95.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.95.0.tgz", - "integrity": "sha512-yxiVyRG5ULTVzOTmlrsy1krjpBQo20+ZfQ9p++A7cA8dIsytzjlPLvtY+Pzz0pTa3h2B6tlVBmumgEQzh5Y8Ug==", + "version": "3.105.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.105.0.tgz", + "integrity": "sha512-Lp92m3ayckXpAElpgZ8E6JEGB7B5sBsjCkTmYeZq3uVXF8uCVMQFmFo4v2yndLQ3NFCEE8qN2PE8obLDOAsNIA==", "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", @@ -6772,6 +6786,7 @@ "@aws-sdk/middleware-content-length": "3.78.0", "@aws-sdk/middleware-host-header": "3.78.0", "@aws-sdk/middleware-logger": "3.78.0", + "@aws-sdk/middleware-recursion-detection": "3.105.0", "@aws-sdk/middleware-retry": "3.80.0", "@aws-sdk/middleware-serde": "3.78.0", "@aws-sdk/middleware-stack": "3.78.0", @@ -6779,15 +6794,15 @@ "@aws-sdk/node-config-provider": "3.80.0", "@aws-sdk/node-http-handler": "3.94.0", "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/smithy-client": "3.85.0", + "@aws-sdk/smithy-client": "3.99.0", "@aws-sdk/types": "3.78.0", "@aws-sdk/url-parser": "3.78.0", "@aws-sdk/util-base64-browser": "3.58.0", "@aws-sdk/util-base64-node": "3.55.0", "@aws-sdk/util-body-length-browser": "3.55.0", "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.85.0", - "@aws-sdk/util-defaults-mode-node": "3.85.0", + "@aws-sdk/util-defaults-mode-browser": "3.99.0", + "@aws-sdk/util-defaults-mode-node": "3.99.0", "@aws-sdk/util-user-agent-browser": "3.78.0", "@aws-sdk/util-user-agent-node": "3.80.0", "@aws-sdk/util-utf8-browser": "3.55.0", @@ -6796,20 +6811,21 @@ } }, "@aws-sdk/client-sts": { - "version": "3.95.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.95.0.tgz", - "integrity": "sha512-qeoiEyBB5IQyjgjkCCBiQnISar7OJgjuTf2alM6ehjq8H4/T5VeMCeohEs5FR0/O60sJn40ZpL3YY/OmMh55UA==", + "version": "3.105.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.105.0.tgz", + "integrity": "sha512-ZZyw5hu0Ip/jHc9umpWTnWNUHV270fS25LB7fecUwQeC/cok+EvaG5QGBVI5t0GSUynEIC0sNlG9SDc1wLTZPA==", "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", "@aws-sdk/config-resolver": "3.80.0", - "@aws-sdk/credential-provider-node": "3.95.0", + "@aws-sdk/credential-provider-node": "3.105.0", "@aws-sdk/fetch-http-handler": "3.78.0", "@aws-sdk/hash-node": "3.78.0", "@aws-sdk/invalid-dependency": "3.78.0", "@aws-sdk/middleware-content-length": "3.78.0", "@aws-sdk/middleware-host-header": "3.78.0", "@aws-sdk/middleware-logger": "3.78.0", + "@aws-sdk/middleware-recursion-detection": "3.105.0", "@aws-sdk/middleware-retry": "3.80.0", "@aws-sdk/middleware-sdk-sts": "3.78.0", "@aws-sdk/middleware-serde": "3.78.0", @@ -6819,15 +6835,15 @@ "@aws-sdk/node-config-provider": "3.80.0", "@aws-sdk/node-http-handler": "3.94.0", "@aws-sdk/protocol-http": "3.78.0", - "@aws-sdk/smithy-client": "3.85.0", + "@aws-sdk/smithy-client": "3.99.0", "@aws-sdk/types": "3.78.0", "@aws-sdk/url-parser": "3.78.0", "@aws-sdk/util-base64-browser": "3.58.0", "@aws-sdk/util-base64-node": "3.55.0", "@aws-sdk/util-body-length-browser": "3.55.0", "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.85.0", - "@aws-sdk/util-defaults-mode-node": "3.85.0", + "@aws-sdk/util-defaults-mode-browser": "3.99.0", + "@aws-sdk/util-defaults-mode-node": "3.99.0", "@aws-sdk/util-user-agent-browser": "3.78.0", "@aws-sdk/util-user-agent-node": "3.80.0", "@aws-sdk/util-utf8-browser": "3.55.0", @@ -6872,13 +6888,13 @@ } }, "@aws-sdk/credential-provider-ini": { - "version": "3.95.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.95.0.tgz", - "integrity": "sha512-Ditfnmo8/F79Zj8HmaRZZTDsthhvKcdgGFus+pF3kxZxyR3YU/k7/eGUISZeCQhA0/9nwxXMFDUmAIsa0AMfyg==", + "version": "3.105.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.105.0.tgz", + "integrity": "sha512-qYEUciSpeIBkIDt3ljWkVphG7OUIvQOMklYjtEYjYGFjHX7GuyNbV0NI0T6W/edV0aU/a/KpBi0uKd93Gi43Lg==", "requires": { "@aws-sdk/credential-provider-env": "3.78.0", "@aws-sdk/credential-provider-imds": "3.81.0", - "@aws-sdk/credential-provider-sso": "3.95.0", + "@aws-sdk/credential-provider-sso": "3.105.0", "@aws-sdk/credential-provider-web-identity": "3.78.0", "@aws-sdk/property-provider": "3.78.0", "@aws-sdk/shared-ini-file-loader": "3.80.0", @@ -6887,15 +6903,15 @@ } }, "@aws-sdk/credential-provider-node": { - "version": "3.95.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.95.0.tgz", - "integrity": "sha512-NCXejOQg5p+oJPaUPa+jIrU7pStm8zZtOn6lXVnubZrQClv2+ZQrgxVt6otN464SWqMQbmLFYNyYf4bsLJaEhA==", + "version": "3.105.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.105.0.tgz", + "integrity": "sha512-A781wWAcghqw21Vddj2jZo1BeKDyqqMcBYIuXJxjwK4fq+IBxlnI6De1vzv3H7QxosDyDS4mKWGW2FqUQI8ofg==", "requires": { "@aws-sdk/credential-provider-env": "3.78.0", "@aws-sdk/credential-provider-imds": "3.81.0", - "@aws-sdk/credential-provider-ini": "3.95.0", + "@aws-sdk/credential-provider-ini": "3.105.0", "@aws-sdk/credential-provider-process": "3.80.0", - "@aws-sdk/credential-provider-sso": "3.95.0", + "@aws-sdk/credential-provider-sso": "3.105.0", "@aws-sdk/credential-provider-web-identity": "3.78.0", "@aws-sdk/property-provider": "3.78.0", "@aws-sdk/shared-ini-file-loader": "3.80.0", @@ -6915,11 +6931,11 @@ } }, "@aws-sdk/credential-provider-sso": { - "version": "3.95.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.95.0.tgz", - "integrity": "sha512-YIzBBWUKkazvoM8CsCbf4YIs5ENtOr5KXUd6e993c3oRMNsUykOtf/AUBN6G3HItuyxoA8vW/8M6tKX44cRCAg==", + "version": "3.105.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.105.0.tgz", + "integrity": "sha512-oHvMZ0uHfOzFkepX29GPXUrI7HTQklQl01laVxEdCNtgZGfos9gjz+xPUDBCaoiEzM+xF9uu4wtaQ15c1bCclQ==", "requires": { - "@aws-sdk/client-sso": "3.95.0", + "@aws-sdk/client-sso": "3.105.0", "@aws-sdk/property-provider": "3.78.0", "@aws-sdk/shared-ini-file-loader": "3.80.0", "@aws-sdk/types": "3.78.0", @@ -7004,6 +7020,16 @@ "tslib": "^2.3.1" } }, + "@aws-sdk/middleware-recursion-detection": { + "version": "3.105.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.105.0.tgz", + "integrity": "sha512-KksW6cBQ3BWTNlN+4eMW8//oqsuKLYJsSUsdSLQb7MFBHnw+6r8GS9WXMYN0IBswlhdYi9fv83zlKDTV21ZL+g==", + "requires": { + "@aws-sdk/protocol-http": "3.78.0", + "@aws-sdk/types": "3.78.0", + "tslib": "^2.3.1" + } + }, "@aws-sdk/middleware-retry": { "version": "3.80.0", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.80.0.tgz", @@ -7156,9 +7182,9 @@ } }, "@aws-sdk/smithy-client": { - "version": "3.85.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.85.0.tgz", - "integrity": "sha512-Ox/yQEAnANzhpJMyrpuxWtF/i3EviavENczT7fo4uwSyZTz/sfSBQNjs/YAG1UeA6uOI3pBP5EaFERV5hr2fRA==", + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.99.0.tgz", + "integrity": "sha512-N9xgCcwbOBZ4/WuROzlErExXV6+vFrFkNJzeBT31/avvrHXjxgxwQlMoXoQCfM8PyRuDuVSfZeoh1iIRfoxidA==", "requires": { "@aws-sdk/middleware-stack": "3.78.0", "@aws-sdk/types": "3.78.0", @@ -7231,9 +7257,9 @@ } }, "@aws-sdk/util-defaults-mode-browser": { - "version": "3.85.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.85.0.tgz", - "integrity": "sha512-oqK/e2pHuMWrvTJWtDBzylbj232ezlTay5dCq4RQlyi3LPPVBQ08haYD1Mk2ikQ/qa0XvbSD6YVhjpTlvwRNjw==", + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.99.0.tgz", + "integrity": "sha512-qSYjUGuN8n7Q/zAi0tzU4BrU389jQosXtjp7eHpLATl0pKGpaHx6rJNwbiNhvBhBEfmSgqsJ09b4gZUpUezHEw==", "requires": { "@aws-sdk/property-provider": "3.78.0", "@aws-sdk/types": "3.78.0", @@ -7242,9 +7268,9 @@ } }, "@aws-sdk/util-defaults-mode-node": { - "version": "3.85.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.85.0.tgz", - "integrity": "sha512-KDNl4H8jJJLh6y7I3MSwRKe4plKbFKK8MVkS0+Fce/GJh4EnqxF0HzMMaSeNUcPvO2wHRq2a60+XW+0d7eWo1A==", + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.99.0.tgz", + "integrity": "sha512-8TUO0kEnQcgT1gAW9y9oO6a5gKhfEGEUeKidEgbTczEUrjr3aCXIC+p0DI5FJfImwPrTKXra8A22utDM92phWw==", "requires": { "@aws-sdk/config-resolver": "3.80.0", "@aws-sdk/credential-provider-imds": "3.81.0", @@ -8229,9 +8255,9 @@ "dev": true }, "@types/aws-lambda": { - "version": "8.10.97", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.97.tgz", - "integrity": "sha512-BZk3qO4R2KN8Ts3eR6CW1n8LI46UOgv1KoDZjo8J9vOQvDeX/rsrv1H0BpEAMcSqZ1mLwTEyAMtlua5tlSn0kw==" + "version": "8.10.100", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.100.tgz", + "integrity": "sha512-Qldp1LhbgQ4tEHewci0/q5qVRaDr8ylvsYfpitJ+FFixzAHpgitvM2NM449uYWt2tYo/iJy25aSRRUVvwIT+ng==" }, "@types/babel__core": { "version": "7.1.19", @@ -8326,9 +8352,9 @@ } }, "@types/node": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", - "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==" + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" }, "@types/prettier": { "version": "2.4.4", @@ -8471,9 +8497,9 @@ } }, "aws-cdk-lib": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.25.0.tgz", - "integrity": "sha512-rcQeQu/lTmi1tg5DwV0gBqJtF73khApfHt9n7BIHkKbUWvCB50lIL1Q1/7cHvTicfQ62UnwFoPWwB0YqQceDVQ==", + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.27.0.tgz", + "integrity": "sha512-CsTy/+RIBMvP9LlZjkQakkKPpwU50+HAMCMaGOcyIHADDQdXobGcZXTO+Tq00sH2DoQjPV1ZhhBim5z3k/2KXw==", "requires": { "@balena/dockerignore": "^1.0.2", "case": "1.6.3", @@ -8584,9 +8610,9 @@ } }, "aws-sdk": { - "version": "2.1140.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1140.0.tgz", - "integrity": "sha512-cNdq56UQrUzXmCgwo0/J5GGLmfHn+Vp38qgcK/Xd86Sch8P9v2o8tNv7J82mYU98YY2vO007BMxRylA4Sd8PkQ==", + "version": "2.1157.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1157.0.tgz", + "integrity": "sha512-30t+zhCECib8uaggd0Du8ifab4vtJjgVvNKxHWTpiLa3deTnM+0K7x3pwM99zxw0gLDxAUet/oURaoPJHwk/5Q==", "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -8595,14 +8621,14 @@ "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", - "uuid": "3.3.2", + "uuid": "8.0.0", "xml2js": "0.4.19" }, "dependencies": { "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz", + "integrity": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==" } } }, @@ -8911,9 +8937,9 @@ "dev": true }, "constructs": { - "version": "10.1.19", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.1.19.tgz", - "integrity": "sha512-fkwDjoJ1LW8sjfXDkSftTJnoQm3+EmsKyM8i+bgQh/n5zOAvW9znMU7o3qooKiGJZ8iJtvkEX54I6ZRGrmJhYw==" + "version": "10.1.25", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.1.25.tgz", + "integrity": "sha512-etUavUwFJ3oTxoP9ax8Dvzv47Nzk9QHRnubL3cEOxLATd8b0SOLFN4xB7FP6eEg/D+cI7rgXTOQH9Oj4rIhwqw==" }, "convert-source-map": { "version": "1.8.0", @@ -9090,170 +9116,170 @@ } }, "esbuild": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.40.tgz", - "integrity": "sha512-toIoQk3ODEEIudsN74wXGdw1eiUN4aKRijOqiwEAqfUFlhORPYFJtACzRdRRlpUysRUUlvIUoGE1aw/MIVCWnA==", - "dev": true, - "requires": { - "esbuild-android-64": "0.14.40", - "esbuild-android-arm64": "0.14.40", - "esbuild-darwin-64": "0.14.40", - "esbuild-darwin-arm64": "0.14.40", - "esbuild-freebsd-64": "0.14.40", - "esbuild-freebsd-arm64": "0.14.40", - "esbuild-linux-32": "0.14.40", - "esbuild-linux-64": "0.14.40", - "esbuild-linux-arm": "0.14.40", - "esbuild-linux-arm64": "0.14.40", - "esbuild-linux-mips64le": "0.14.40", - "esbuild-linux-ppc64le": "0.14.40", - "esbuild-linux-riscv64": "0.14.40", - "esbuild-linux-s390x": "0.14.40", - "esbuild-netbsd-64": "0.14.40", - "esbuild-openbsd-64": "0.14.40", - "esbuild-sunos-64": "0.14.40", - "esbuild-windows-32": "0.14.40", - "esbuild-windows-64": "0.14.40", - "esbuild-windows-arm64": "0.14.40" + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.46.tgz", + "integrity": "sha512-vdm5G1JdZBktva8dwQci/s44VbeBUg8g907xoZx77mqFZ4gU5GlMULNsdGeID+qXCXocsfYSGtE0LvqH3eiNQg==", + "dev": true, + "requires": { + "esbuild-android-64": "0.14.46", + "esbuild-android-arm64": "0.14.46", + "esbuild-darwin-64": "0.14.46", + "esbuild-darwin-arm64": "0.14.46", + "esbuild-freebsd-64": "0.14.46", + "esbuild-freebsd-arm64": "0.14.46", + "esbuild-linux-32": "0.14.46", + "esbuild-linux-64": "0.14.46", + "esbuild-linux-arm": "0.14.46", + "esbuild-linux-arm64": "0.14.46", + "esbuild-linux-mips64le": "0.14.46", + "esbuild-linux-ppc64le": "0.14.46", + "esbuild-linux-riscv64": "0.14.46", + "esbuild-linux-s390x": "0.14.46", + "esbuild-netbsd-64": "0.14.46", + "esbuild-openbsd-64": "0.14.46", + "esbuild-sunos-64": "0.14.46", + "esbuild-windows-32": "0.14.46", + "esbuild-windows-64": "0.14.46", + "esbuild-windows-arm64": "0.14.46" } }, "esbuild-android-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.40.tgz", - "integrity": "sha512-+69t+bmJWWhTyG8waJZcu4UGzM4NbDXAwssTEDYwonyz6L/Is11Y3csJhE16RM0a1GeDin0n810vNP+NVjttKA==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.46.tgz", + "integrity": "sha512-ZyJqwAcjNbZprs0ZAxnUAOhEhdE5kTKwz+CZuLmZYNLAPyRgBtaC8pT2PCuPifNvV8Cl3yLlrQPaOCjovoyb5g==", "dev": true, "optional": true }, "esbuild-android-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.40.tgz", - "integrity": "sha512-lVDn4d7/NL5Svrxuskmd/YcluI6uI4Ebp7A1/tWyLJJYbvfIy5l4Vy8GMhErGLePbRyJJiuBP9xusapK4u+6bg==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.46.tgz", + "integrity": "sha512-BKcnUksvCijO9ONv6b4SikZE/OZftwJvX91XROODZGQmuwGVg97jmLDVu3lxuHdFlMNNzxh8taJ2mbCWZzH/Iw==", "dev": true, "optional": true }, "esbuild-darwin-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.40.tgz", - "integrity": "sha512-b5u3IXCHhOjkRHIQTSxCN7ObUR5NTyJCP9LrnJ69dEEi1w1usI40T/VNyTTCs7n0UgEH7/zi27vBxbZU+sU4Ew==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.46.tgz", + "integrity": "sha512-/ss2kO92sUJ9/1nHnMb3+oab8w6dyqKrMtPMvSYJ9KZIYGAZxz/WYxfFprY7Xk+ZxWnnlASSyZlG+If1nVmFYg==", "dev": true, "optional": true }, "esbuild-darwin-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.40.tgz", - "integrity": "sha512-Wn0C2nrZSANvzK9efcxjKpv9l8yUC4PtYMmnf775gUNwak7sqecuoelhbUTshhrwsfjCNfjsrUhsHY2OHUiEdw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.46.tgz", + "integrity": "sha512-WX0JOaEFf6t+rIjXO6THsf/0fhQAt2Zb0/PSYlvXnuQQAmOmFAfPsuRNocp5ME0NGaUqZd4FxqqmLEVK3RzPAg==", "dev": true, "optional": true }, "esbuild-freebsd-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.40.tgz", - "integrity": "sha512-B9WZNUn7Y9f97xrQGBAQPKsebeFZzAd+JCdsLCexrVfTjB24b+/Iuq5O2z/q5Meg7Yz0S+j8AO6ncpvNkK2u0w==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.46.tgz", + "integrity": "sha512-o+ozPFuHRCAGCVWU2bLurOUgVkT0jcPEu082VBUY2Q/yLf+B+/3nXzh4Fjp5O21tOvJRTn7hUVydG9j5+vYE6A==", "dev": true, "optional": true }, "esbuild-freebsd-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.40.tgz", - "integrity": "sha512-3aB9uJv2/lmQNzwmieNyyOdxKi+3ERwrqf3snBu/oEng8b7nMBNrEN+p7jjkTYNYmo291KiH/5EIAXwpsZndFw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.46.tgz", + "integrity": "sha512-9zicZ0X43WDKz3sjNfcqYO38xbfJpSWYXB+FxvYYkmBwGA52K0SAu4oKuTTLi8od8X2IIo1x5C5TUNvKDSVJww==", "dev": true, "optional": true }, "esbuild-linux-32": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.40.tgz", - "integrity": "sha512-LMI9BMeuGf6NRS23LbyVarN3nf+JyNcfiVEnR9M8691kL5Ffp3e7oTYRH65XdTUirM9D6e5cppfWLjvrRbGnRw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.46.tgz", + "integrity": "sha512-ZnTpZMVb0VGvL99R5eh4OrJwbUyvpM6M88VAMuHP4LvFjuvZrhgefjKqEGuWZZW7JRnAjKqjXLjWdhdSjwMFnQ==", "dev": true, "optional": true }, "esbuild-linux-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.40.tgz", - "integrity": "sha512-D/NkZ9QR2KShJXNuRWANxJzPCrwJoAoWVetQiGIAepzXbNh+dBo5ZLmlh8Txs6tE600N67MF/ScHP1S4FxLaJg==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.46.tgz", + "integrity": "sha512-ECCRRZtX6l4ubeVhHhiVoK/uYAkvzNqfmR4gP4N/9H9RPu+b8YCcN4bQGp7xCuYIV6Xd41WpOMyO+xpcQvjtQQ==", "dev": true, "optional": true }, "esbuild-linux-arm": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.40.tgz", - "integrity": "sha512-2a0yZXbzr/s3iCgZ84jFTHf+NyyXQ/7/Sd28oQq5iyy7TbJNS973XUOwgdlHdRqBxvw0nIWTw2FuwyUJAFa6Qg==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.46.tgz", + "integrity": "sha512-RvTJEi4vj13c5FP9YPp+8Y6x6HK1E7uSqfy3y9UoeaNAzNZWA7fN1U3hQjTL/dy5zTJH5KE64mrt5k5+he+CQA==", "dev": true, "optional": true }, "esbuild-linux-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.40.tgz", - "integrity": "sha512-TIoZWKjrMJxZujh2nSsrrLkLDLzD/oBpSiobdUGe2bqKZpT4m7fkR0tEDNyM6Xvzj9uTQ4iTfJr2ekmpg3DyTQ==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.46.tgz", + "integrity": "sha512-HX0TXCHyI0NEWG4jg8LlW1PbZQbnz+PUH56yjx996cgM5pC90u32drKs/tyJiyyQmNk9OXOogjKw7LEdp/Qc1w==", "dev": true, "optional": true }, "esbuild-linux-mips64le": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.40.tgz", - "integrity": "sha512-SP30CYYSDMwr6mPUbjvD4K2R03GQHIQGrkrbXt5NM6mFqzR+S+JKVv9juq/CjlM9V7iIPPPqe4mb4DWC3b8pBw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.46.tgz", + "integrity": "sha512-jnb2NDwGqJUVmxn1v0f7seNdDm0nRNWHP9Z3MrWAGnBCdnnDlsjqRFDnbKoaQvWONEa+rOOr/giK+VL0hgQExA==", "dev": true, "optional": true }, "esbuild-linux-ppc64le": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.40.tgz", - "integrity": "sha512-HlU3dfIdwzm/zhbXvMa5yWIafBeI7v6BDaEuApAww5Av8ht7lXgD1fZ11iJVPjRWNLcCZUgZaJKFrosSPQO/Bw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.46.tgz", + "integrity": "sha512-uu3JTQUrwwauKY9z8yq5MnDyOlT3f2DNOzBcYz4dB78HqwEqilCsifoBGd0WcbED5n57dc59X+LZMTZ8Ose44w==", "dev": true, "optional": true }, "esbuild-linux-riscv64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.40.tgz", - "integrity": "sha512-4ImTBEUykhIcIq3c97dIXnsmAHb//cjHh4nxttLhwpTZ+b/KdM1IpttqFhB0AFLUsrjP4WOCMxAm5FOL7FC2uw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.46.tgz", + "integrity": "sha512-OB29r1EG44ZY34JnXCRERxo7k4pRKoQdaoRg2HIeCavatsXZwW4LCakpLnMQ72vXT1HtpBUABEjHkKkn5JyrUg==", "dev": true, "optional": true }, "esbuild-linux-s390x": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.40.tgz", - "integrity": "sha512-kFCPKictYjpt5rt0bFdbSmb8AWut75sIh1fZUTCVkujWMcpdL8ADuYMfVrN7R0CSQvkF1nQtrIBfp+ZU7R7KNQ==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.46.tgz", + "integrity": "sha512-XQ/U9TueMSGYyPTKyZsJVraiuvxhwCDIMn/QwFXCRCJ6H/Cy/Rq33u9qhpeSziinHKfzJROGx5A8mQY6aYamdQ==", "dev": true, "optional": true }, "esbuild-netbsd-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.40.tgz", - "integrity": "sha512-Hwzw2cSI6+p03TUjugzec54W6uW4tA1J/WovmlHl96Icjy73eWnAyCQwgG6ZLirXpt2aDfTEVShNaC2fE4KVhQ==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.46.tgz", + "integrity": "sha512-i15BwqHaAIFp1vBJkitAbHtwXcLk9TdHs/Ia1xGIAutQYXSJNPLM3Z4B4hyfHNEFl2yBqBIYpglMohv2ClNdOQ==", "dev": true, "optional": true }, "esbuild-openbsd-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.40.tgz", - "integrity": "sha512-L4Pix+N2Sb0HvLl8zyn1Aq2aYD5Jt8rk9zwW3NUx19yafJqAFsnUN7L/XbbWSv5/XMqnY4hpAvIP2pyeV9+Bjw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.46.tgz", + "integrity": "sha512-XwOIFCE140Y/PvjrwjFfa/QLWBuvhR1mPCOa35mKx02jt++wPNgf0qhn6HfdVC3vQe7R46RwTp4q2cp99fepEg==", "dev": true, "optional": true }, "esbuild-sunos-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.40.tgz", - "integrity": "sha512-iEITaelmmCO43ewk0bOYRGrewu2i2h2V0gKHQ/rz1MRqif8ohY/FNLn4WnThGUlrEgA1nTL1tc57PL12QbOo2Q==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.46.tgz", + "integrity": "sha512-+kV3JnmfdxBVpHyFvuGXWtu6tXxXApOLPkSrVkMJf6+ns/3PLtPndpzwCzHjD+qYUEk8ln4MA+ufQ2qmjW5mZg==", "dev": true, "optional": true }, "esbuild-windows-32": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.40.tgz", - "integrity": "sha512-uXHmKl4RtCkK1v6QQK4hsP8Xiku6CwUM/W7Yv2rGtfylSOrrWKcpqwlDWx6bIm1Hav1uBC8hbgJ1hY6pWFNhNA==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.46.tgz", + "integrity": "sha512-gzGC1Q11B/Bo5A2EX4N22oigWmhL7Z0eDyc8kbSoJjqSrGQuRE7B0uMpluO+q0O/gZ1S3zdw+M4PCWlqOIeXLA==", "dev": true, "optional": true }, "esbuild-windows-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.40.tgz", - "integrity": "sha512-dvgQLVYnJzqce97AeHvxWtV9lHRDxIPatOikmrh1vt/SCE4tyVo5nAT/2SiZBJ6DzYmZT3BcJTV24bBLyu4ZUA==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.46.tgz", + "integrity": "sha512-Do2daaskfOjmCB7o3ygz6fD3K6SPjZLERiZLktzHz2oUCwsebKu/gmop0+j/XdrVIXC32wFzHzDS+9CTu9OShw==", "dev": true, "optional": true }, "esbuild-windows-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.40.tgz", - "integrity": "sha512-c8ohQSFtRq78pZ/LQcpMft2xuR2IEitQkW07f9K7iN4EBdJMrCpOoXrZCfmX9lAC8yYOU7xHoLFYVln3n6fK1Q==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.46.tgz", + "integrity": "sha512-VEzMy6bM60/HT/URTDElyhfi2Pk0quCCrEhRlI4MRno/AIqYUGw0rZwkPl6PeoqVI6BgoBHGY576GWTiPmshCA==", "dev": true, "optional": true }, @@ -11442,9 +11468,9 @@ } }, "ts-node": { - "version": "10.8.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.0.tgz", - "integrity": "sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA==", + "version": "10.8.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", + "integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", "dev": true, "requires": { "@cspotcode/source-map-support": "^0.8.0", @@ -11506,9 +11532,9 @@ } }, "typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true }, "universalify": { diff --git a/examples/cdk/package.json b/examples/cdk/package.json index 839c1dc636..773c3b9bdf 100644 --- a/examples/cdk/package.json +++ b/examples/cdk/package.json @@ -1,6 +1,6 @@ { "name": "cdk-app", - "version": "0.10.0", + "version": "0.11.0", "author": { "name": "Amazon Web Services", "url": "https://aws.amazon.com" @@ -15,6 +15,7 @@ "watch": "tsc -w", "test": "npm run test:unit", "package": "echo 'Not applicable'", + "package-bundle": "echo 'Not applicable'", "test:unit": "npm run build && jest", "test:e2e": "echo 'To be implemented ...'", "version": "npm install @aws-lambda-powertools/logger@0.7.0 @aws-lambda-powertools/tracer@0.7.0 @aws-lambda-powertools/metrics@0.7.0 && git add package.json", @@ -22,7 +23,7 @@ }, "devDependencies": { "@types/jest": "^27.4.0", - "@types/node": "17.0.35", + "@types/node": "18.0.0", "aws-cdk": "^2.0.0", "esbuild": "^0.14.23", "jest": "^27.5.1", @@ -37,7 +38,7 @@ "@aws-sdk/client-sts": "^3.53.0", "@middy/core": "^2.5.6", "@types/aws-lambda": "^8.10.86", - "aws-cdk-lib": "2.25.0", + "aws-cdk-lib": "2.27.0", "aws-sdk": "^2.1088.0", "constructs": "^10.0.82", "source-map-support": "^0.5.16" diff --git a/examples/sam/CHANGELOG.md b/examples/sam/CHANGELOG.md index 45e0c52c9c..9ce87492da 100644 --- a/examples/sam/CHANGELOG.md +++ b/examples/sam/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. +# [0.11.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.10.0...v0.11.0) (2022-06-23) + +**Note:** Version bump only for package powertools-typescript-sam-example + + + + + # [0.10.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.9.1...v0.10.0) (2022-06-02) diff --git a/examples/sam/package-lock.json b/examples/sam/package-lock.json index 723712dcb9..5080358761 100644 --- a/examples/sam/package-lock.json +++ b/examples/sam/package-lock.json @@ -1,12 +1,12 @@ { "name": "powertools-typescript-sam-example", - "version": "0.10.0", + "version": "0.11.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "powertools-typescript-sam-example", - "version": "0.10.0", + "version": "0.11.0", "license": "MIT-0", "dependencies": { "@aws-lambda-powertools/logger": "^0.7.0", @@ -16,7 +16,7 @@ }, "devDependencies": { "@types/aws-lambda": "^8.10.86", - "@types/node": "17.0.35", + "@types/node": "18.0.0", "esbuild": "^0.14.23", "eslint": "^8.4.0", "jest": "^27.5.1", @@ -1100,9 +1100,9 @@ "dev": true }, "node_modules/@types/aws-lambda": { - "version": "8.10.97", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.97.tgz", - "integrity": "sha512-BZk3qO4R2KN8Ts3eR6CW1n8LI46UOgv1KoDZjo8J9vOQvDeX/rsrv1H0BpEAMcSqZ1mLwTEyAMtlua5tlSn0kw==", + "version": "8.10.100", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.100.tgz", + "integrity": "sha512-Qldp1LhbgQ4tEHewci0/q5qVRaDr8ylvsYfpitJ+FFixzAHpgitvM2NM449uYWt2tYo/iJy25aSRRUVvwIT+ng==", "dev": true }, "node_modules/@types/babel__core": { @@ -1188,9 +1188,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", - "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==" + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" }, "node_modules/@types/prettier": { "version": "2.6.0", @@ -1413,9 +1413,9 @@ "integrity": "sha1-0WkB0QzOxZUWwZe5zNiTBom4E7Q=" }, "node_modules/aws-sdk": { - "version": "2.1140.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1140.0.tgz", - "integrity": "sha512-cNdq56UQrUzXmCgwo0/J5GGLmfHn+Vp38qgcK/Xd86Sch8P9v2o8tNv7J82mYU98YY2vO007BMxRylA4Sd8PkQ==", + "version": "2.1157.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1157.0.tgz", + "integrity": "sha512-30t+zhCECib8uaggd0Du8ifab4vtJjgVvNKxHWTpiLa3deTnM+0K7x3pwM99zxw0gLDxAUet/oURaoPJHwk/5Q==", "dependencies": { "buffer": "4.9.2", "events": "1.1.1", @@ -1424,7 +1424,7 @@ "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", - "uuid": "3.3.2", + "uuid": "8.0.0", "xml2js": "0.4.19" }, "engines": { @@ -2027,9 +2027,9 @@ } }, "node_modules/esbuild": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.40.tgz", - "integrity": "sha512-toIoQk3ODEEIudsN74wXGdw1eiUN4aKRijOqiwEAqfUFlhORPYFJtACzRdRRlpUysRUUlvIUoGE1aw/MIVCWnA==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.46.tgz", + "integrity": "sha512-vdm5G1JdZBktva8dwQci/s44VbeBUg8g907xoZx77mqFZ4gU5GlMULNsdGeID+qXCXocsfYSGtE0LvqH3eiNQg==", "dev": true, "hasInstallScript": true, "bin": { @@ -2039,32 +2039,32 @@ "node": ">=12" }, "optionalDependencies": { - "esbuild-android-64": "0.14.40", - "esbuild-android-arm64": "0.14.40", - "esbuild-darwin-64": "0.14.40", - "esbuild-darwin-arm64": "0.14.40", - "esbuild-freebsd-64": "0.14.40", - "esbuild-freebsd-arm64": "0.14.40", - "esbuild-linux-32": "0.14.40", - "esbuild-linux-64": "0.14.40", - "esbuild-linux-arm": "0.14.40", - "esbuild-linux-arm64": "0.14.40", - "esbuild-linux-mips64le": "0.14.40", - "esbuild-linux-ppc64le": "0.14.40", - "esbuild-linux-riscv64": "0.14.40", - "esbuild-linux-s390x": "0.14.40", - "esbuild-netbsd-64": "0.14.40", - "esbuild-openbsd-64": "0.14.40", - "esbuild-sunos-64": "0.14.40", - "esbuild-windows-32": "0.14.40", - "esbuild-windows-64": "0.14.40", - "esbuild-windows-arm64": "0.14.40" + "esbuild-android-64": "0.14.46", + "esbuild-android-arm64": "0.14.46", + "esbuild-darwin-64": "0.14.46", + "esbuild-darwin-arm64": "0.14.46", + "esbuild-freebsd-64": "0.14.46", + "esbuild-freebsd-arm64": "0.14.46", + "esbuild-linux-32": "0.14.46", + "esbuild-linux-64": "0.14.46", + "esbuild-linux-arm": "0.14.46", + "esbuild-linux-arm64": "0.14.46", + "esbuild-linux-mips64le": "0.14.46", + "esbuild-linux-ppc64le": "0.14.46", + "esbuild-linux-riscv64": "0.14.46", + "esbuild-linux-s390x": "0.14.46", + "esbuild-netbsd-64": "0.14.46", + "esbuild-openbsd-64": "0.14.46", + "esbuild-sunos-64": "0.14.46", + "esbuild-windows-32": "0.14.46", + "esbuild-windows-64": "0.14.46", + "esbuild-windows-arm64": "0.14.46" } }, "node_modules/esbuild-android-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.40.tgz", - "integrity": "sha512-+69t+bmJWWhTyG8waJZcu4UGzM4NbDXAwssTEDYwonyz6L/Is11Y3csJhE16RM0a1GeDin0n810vNP+NVjttKA==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.46.tgz", + "integrity": "sha512-ZyJqwAcjNbZprs0ZAxnUAOhEhdE5kTKwz+CZuLmZYNLAPyRgBtaC8pT2PCuPifNvV8Cl3yLlrQPaOCjovoyb5g==", "cpu": [ "x64" ], @@ -2078,9 +2078,9 @@ } }, "node_modules/esbuild-android-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.40.tgz", - "integrity": "sha512-lVDn4d7/NL5Svrxuskmd/YcluI6uI4Ebp7A1/tWyLJJYbvfIy5l4Vy8GMhErGLePbRyJJiuBP9xusapK4u+6bg==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.46.tgz", + "integrity": "sha512-BKcnUksvCijO9ONv6b4SikZE/OZftwJvX91XROODZGQmuwGVg97jmLDVu3lxuHdFlMNNzxh8taJ2mbCWZzH/Iw==", "cpu": [ "arm64" ], @@ -2094,9 +2094,9 @@ } }, "node_modules/esbuild-darwin-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.40.tgz", - "integrity": "sha512-b5u3IXCHhOjkRHIQTSxCN7ObUR5NTyJCP9LrnJ69dEEi1w1usI40T/VNyTTCs7n0UgEH7/zi27vBxbZU+sU4Ew==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.46.tgz", + "integrity": "sha512-/ss2kO92sUJ9/1nHnMb3+oab8w6dyqKrMtPMvSYJ9KZIYGAZxz/WYxfFprY7Xk+ZxWnnlASSyZlG+If1nVmFYg==", "cpu": [ "x64" ], @@ -2110,9 +2110,9 @@ } }, "node_modules/esbuild-darwin-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.40.tgz", - "integrity": "sha512-Wn0C2nrZSANvzK9efcxjKpv9l8yUC4PtYMmnf775gUNwak7sqecuoelhbUTshhrwsfjCNfjsrUhsHY2OHUiEdw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.46.tgz", + "integrity": "sha512-WX0JOaEFf6t+rIjXO6THsf/0fhQAt2Zb0/PSYlvXnuQQAmOmFAfPsuRNocp5ME0NGaUqZd4FxqqmLEVK3RzPAg==", "cpu": [ "arm64" ], @@ -2126,9 +2126,9 @@ } }, "node_modules/esbuild-freebsd-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.40.tgz", - "integrity": "sha512-B9WZNUn7Y9f97xrQGBAQPKsebeFZzAd+JCdsLCexrVfTjB24b+/Iuq5O2z/q5Meg7Yz0S+j8AO6ncpvNkK2u0w==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.46.tgz", + "integrity": "sha512-o+ozPFuHRCAGCVWU2bLurOUgVkT0jcPEu082VBUY2Q/yLf+B+/3nXzh4Fjp5O21tOvJRTn7hUVydG9j5+vYE6A==", "cpu": [ "x64" ], @@ -2142,9 +2142,9 @@ } }, "node_modules/esbuild-freebsd-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.40.tgz", - "integrity": "sha512-3aB9uJv2/lmQNzwmieNyyOdxKi+3ERwrqf3snBu/oEng8b7nMBNrEN+p7jjkTYNYmo291KiH/5EIAXwpsZndFw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.46.tgz", + "integrity": "sha512-9zicZ0X43WDKz3sjNfcqYO38xbfJpSWYXB+FxvYYkmBwGA52K0SAu4oKuTTLi8od8X2IIo1x5C5TUNvKDSVJww==", "cpu": [ "arm64" ], @@ -2158,9 +2158,9 @@ } }, "node_modules/esbuild-linux-32": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.40.tgz", - "integrity": "sha512-LMI9BMeuGf6NRS23LbyVarN3nf+JyNcfiVEnR9M8691kL5Ffp3e7oTYRH65XdTUirM9D6e5cppfWLjvrRbGnRw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.46.tgz", + "integrity": "sha512-ZnTpZMVb0VGvL99R5eh4OrJwbUyvpM6M88VAMuHP4LvFjuvZrhgefjKqEGuWZZW7JRnAjKqjXLjWdhdSjwMFnQ==", "cpu": [ "ia32" ], @@ -2174,9 +2174,9 @@ } }, "node_modules/esbuild-linux-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.40.tgz", - "integrity": "sha512-D/NkZ9QR2KShJXNuRWANxJzPCrwJoAoWVetQiGIAepzXbNh+dBo5ZLmlh8Txs6tE600N67MF/ScHP1S4FxLaJg==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.46.tgz", + "integrity": "sha512-ECCRRZtX6l4ubeVhHhiVoK/uYAkvzNqfmR4gP4N/9H9RPu+b8YCcN4bQGp7xCuYIV6Xd41WpOMyO+xpcQvjtQQ==", "cpu": [ "x64" ], @@ -2190,9 +2190,9 @@ } }, "node_modules/esbuild-linux-arm": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.40.tgz", - "integrity": "sha512-2a0yZXbzr/s3iCgZ84jFTHf+NyyXQ/7/Sd28oQq5iyy7TbJNS973XUOwgdlHdRqBxvw0nIWTw2FuwyUJAFa6Qg==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.46.tgz", + "integrity": "sha512-RvTJEi4vj13c5FP9YPp+8Y6x6HK1E7uSqfy3y9UoeaNAzNZWA7fN1U3hQjTL/dy5zTJH5KE64mrt5k5+he+CQA==", "cpu": [ "arm" ], @@ -2206,9 +2206,9 @@ } }, "node_modules/esbuild-linux-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.40.tgz", - "integrity": "sha512-TIoZWKjrMJxZujh2nSsrrLkLDLzD/oBpSiobdUGe2bqKZpT4m7fkR0tEDNyM6Xvzj9uTQ4iTfJr2ekmpg3DyTQ==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.46.tgz", + "integrity": "sha512-HX0TXCHyI0NEWG4jg8LlW1PbZQbnz+PUH56yjx996cgM5pC90u32drKs/tyJiyyQmNk9OXOogjKw7LEdp/Qc1w==", "cpu": [ "arm64" ], @@ -2222,9 +2222,9 @@ } }, "node_modules/esbuild-linux-mips64le": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.40.tgz", - "integrity": "sha512-SP30CYYSDMwr6mPUbjvD4K2R03GQHIQGrkrbXt5NM6mFqzR+S+JKVv9juq/CjlM9V7iIPPPqe4mb4DWC3b8pBw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.46.tgz", + "integrity": "sha512-jnb2NDwGqJUVmxn1v0f7seNdDm0nRNWHP9Z3MrWAGnBCdnnDlsjqRFDnbKoaQvWONEa+rOOr/giK+VL0hgQExA==", "cpu": [ "mips64el" ], @@ -2238,9 +2238,9 @@ } }, "node_modules/esbuild-linux-ppc64le": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.40.tgz", - "integrity": "sha512-HlU3dfIdwzm/zhbXvMa5yWIafBeI7v6BDaEuApAww5Av8ht7lXgD1fZ11iJVPjRWNLcCZUgZaJKFrosSPQO/Bw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.46.tgz", + "integrity": "sha512-uu3JTQUrwwauKY9z8yq5MnDyOlT3f2DNOzBcYz4dB78HqwEqilCsifoBGd0WcbED5n57dc59X+LZMTZ8Ose44w==", "cpu": [ "ppc64" ], @@ -2254,9 +2254,9 @@ } }, "node_modules/esbuild-linux-riscv64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.40.tgz", - "integrity": "sha512-4ImTBEUykhIcIq3c97dIXnsmAHb//cjHh4nxttLhwpTZ+b/KdM1IpttqFhB0AFLUsrjP4WOCMxAm5FOL7FC2uw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.46.tgz", + "integrity": "sha512-OB29r1EG44ZY34JnXCRERxo7k4pRKoQdaoRg2HIeCavatsXZwW4LCakpLnMQ72vXT1HtpBUABEjHkKkn5JyrUg==", "cpu": [ "riscv64" ], @@ -2270,9 +2270,9 @@ } }, "node_modules/esbuild-linux-s390x": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.40.tgz", - "integrity": "sha512-kFCPKictYjpt5rt0bFdbSmb8AWut75sIh1fZUTCVkujWMcpdL8ADuYMfVrN7R0CSQvkF1nQtrIBfp+ZU7R7KNQ==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.46.tgz", + "integrity": "sha512-XQ/U9TueMSGYyPTKyZsJVraiuvxhwCDIMn/QwFXCRCJ6H/Cy/Rq33u9qhpeSziinHKfzJROGx5A8mQY6aYamdQ==", "cpu": [ "s390x" ], @@ -2286,9 +2286,9 @@ } }, "node_modules/esbuild-netbsd-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.40.tgz", - "integrity": "sha512-Hwzw2cSI6+p03TUjugzec54W6uW4tA1J/WovmlHl96Icjy73eWnAyCQwgG6ZLirXpt2aDfTEVShNaC2fE4KVhQ==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.46.tgz", + "integrity": "sha512-i15BwqHaAIFp1vBJkitAbHtwXcLk9TdHs/Ia1xGIAutQYXSJNPLM3Z4B4hyfHNEFl2yBqBIYpglMohv2ClNdOQ==", "cpu": [ "x64" ], @@ -2302,9 +2302,9 @@ } }, "node_modules/esbuild-openbsd-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.40.tgz", - "integrity": "sha512-L4Pix+N2Sb0HvLl8zyn1Aq2aYD5Jt8rk9zwW3NUx19yafJqAFsnUN7L/XbbWSv5/XMqnY4hpAvIP2pyeV9+Bjw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.46.tgz", + "integrity": "sha512-XwOIFCE140Y/PvjrwjFfa/QLWBuvhR1mPCOa35mKx02jt++wPNgf0qhn6HfdVC3vQe7R46RwTp4q2cp99fepEg==", "cpu": [ "x64" ], @@ -2318,9 +2318,9 @@ } }, "node_modules/esbuild-sunos-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.40.tgz", - "integrity": "sha512-iEITaelmmCO43ewk0bOYRGrewu2i2h2V0gKHQ/rz1MRqif8ohY/FNLn4WnThGUlrEgA1nTL1tc57PL12QbOo2Q==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.46.tgz", + "integrity": "sha512-+kV3JnmfdxBVpHyFvuGXWtu6tXxXApOLPkSrVkMJf6+ns/3PLtPndpzwCzHjD+qYUEk8ln4MA+ufQ2qmjW5mZg==", "cpu": [ "x64" ], @@ -2334,9 +2334,9 @@ } }, "node_modules/esbuild-windows-32": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.40.tgz", - "integrity": "sha512-uXHmKl4RtCkK1v6QQK4hsP8Xiku6CwUM/W7Yv2rGtfylSOrrWKcpqwlDWx6bIm1Hav1uBC8hbgJ1hY6pWFNhNA==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.46.tgz", + "integrity": "sha512-gzGC1Q11B/Bo5A2EX4N22oigWmhL7Z0eDyc8kbSoJjqSrGQuRE7B0uMpluO+q0O/gZ1S3zdw+M4PCWlqOIeXLA==", "cpu": [ "ia32" ], @@ -2350,9 +2350,9 @@ } }, "node_modules/esbuild-windows-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.40.tgz", - "integrity": "sha512-dvgQLVYnJzqce97AeHvxWtV9lHRDxIPatOikmrh1vt/SCE4tyVo5nAT/2SiZBJ6DzYmZT3BcJTV24bBLyu4ZUA==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.46.tgz", + "integrity": "sha512-Do2daaskfOjmCB7o3ygz6fD3K6SPjZLERiZLktzHz2oUCwsebKu/gmop0+j/XdrVIXC32wFzHzDS+9CTu9OShw==", "cpu": [ "x64" ], @@ -2366,9 +2366,9 @@ } }, "node_modules/esbuild-windows-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.40.tgz", - "integrity": "sha512-c8ohQSFtRq78pZ/LQcpMft2xuR2IEitQkW07f9K7iN4EBdJMrCpOoXrZCfmX9lAC8yYOU7xHoLFYVln3n6fK1Q==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.46.tgz", + "integrity": "sha512-VEzMy6bM60/HT/URTDElyhfi2Pk0quCCrEhRlI4MRno/AIqYUGw0rZwkPl6PeoqVI6BgoBHGY576GWTiPmshCA==", "cpu": [ "arm64" ], @@ -2476,9 +2476,9 @@ } }, "node_modules/eslint": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", - "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", + "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.0", @@ -4995,9 +4995,9 @@ } }, "node_modules/ts-node": { - "version": "10.8.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.0.tgz", - "integrity": "sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA==", + "version": "10.8.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", + "integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", "dev": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -5080,9 +5080,9 @@ } }, "node_modules/typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -5125,12 +5125,11 @@ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" }, "node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz", + "integrity": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==", "bin": { - "uuid": "bin/uuid" + "uuid": "dist/bin/uuid" } }, "node_modules/v8-compile-cache": { @@ -6252,9 +6251,9 @@ "dev": true }, "@types/aws-lambda": { - "version": "8.10.97", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.97.tgz", - "integrity": "sha512-BZk3qO4R2KN8Ts3eR6CW1n8LI46UOgv1KoDZjo8J9vOQvDeX/rsrv1H0BpEAMcSqZ1mLwTEyAMtlua5tlSn0kw==", + "version": "8.10.100", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.100.tgz", + "integrity": "sha512-Qldp1LhbgQ4tEHewci0/q5qVRaDr8ylvsYfpitJ+FFixzAHpgitvM2NM449uYWt2tYo/iJy25aSRRUVvwIT+ng==", "dev": true }, "@types/babel__core": { @@ -6340,9 +6339,9 @@ } }, "@types/node": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", - "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==" + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" }, "@types/prettier": { "version": "2.6.0", @@ -6515,9 +6514,9 @@ "integrity": "sha1-0WkB0QzOxZUWwZe5zNiTBom4E7Q=" }, "aws-sdk": { - "version": "2.1140.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1140.0.tgz", - "integrity": "sha512-cNdq56UQrUzXmCgwo0/J5GGLmfHn+Vp38qgcK/Xd86Sch8P9v2o8tNv7J82mYU98YY2vO007BMxRylA4Sd8PkQ==", + "version": "2.1157.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1157.0.tgz", + "integrity": "sha512-30t+zhCECib8uaggd0Du8ifab4vtJjgVvNKxHWTpiLa3deTnM+0K7x3pwM99zxw0gLDxAUet/oURaoPJHwk/5Q==", "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -6526,7 +6525,7 @@ "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", - "uuid": "3.3.2", + "uuid": "8.0.0", "xml2js": "0.4.19" } }, @@ -6985,170 +6984,170 @@ } }, "esbuild": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.40.tgz", - "integrity": "sha512-toIoQk3ODEEIudsN74wXGdw1eiUN4aKRijOqiwEAqfUFlhORPYFJtACzRdRRlpUysRUUlvIUoGE1aw/MIVCWnA==", - "dev": true, - "requires": { - "esbuild-android-64": "0.14.40", - "esbuild-android-arm64": "0.14.40", - "esbuild-darwin-64": "0.14.40", - "esbuild-darwin-arm64": "0.14.40", - "esbuild-freebsd-64": "0.14.40", - "esbuild-freebsd-arm64": "0.14.40", - "esbuild-linux-32": "0.14.40", - "esbuild-linux-64": "0.14.40", - "esbuild-linux-arm": "0.14.40", - "esbuild-linux-arm64": "0.14.40", - "esbuild-linux-mips64le": "0.14.40", - "esbuild-linux-ppc64le": "0.14.40", - "esbuild-linux-riscv64": "0.14.40", - "esbuild-linux-s390x": "0.14.40", - "esbuild-netbsd-64": "0.14.40", - "esbuild-openbsd-64": "0.14.40", - "esbuild-sunos-64": "0.14.40", - "esbuild-windows-32": "0.14.40", - "esbuild-windows-64": "0.14.40", - "esbuild-windows-arm64": "0.14.40" + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.46.tgz", + "integrity": "sha512-vdm5G1JdZBktva8dwQci/s44VbeBUg8g907xoZx77mqFZ4gU5GlMULNsdGeID+qXCXocsfYSGtE0LvqH3eiNQg==", + "dev": true, + "requires": { + "esbuild-android-64": "0.14.46", + "esbuild-android-arm64": "0.14.46", + "esbuild-darwin-64": "0.14.46", + "esbuild-darwin-arm64": "0.14.46", + "esbuild-freebsd-64": "0.14.46", + "esbuild-freebsd-arm64": "0.14.46", + "esbuild-linux-32": "0.14.46", + "esbuild-linux-64": "0.14.46", + "esbuild-linux-arm": "0.14.46", + "esbuild-linux-arm64": "0.14.46", + "esbuild-linux-mips64le": "0.14.46", + "esbuild-linux-ppc64le": "0.14.46", + "esbuild-linux-riscv64": "0.14.46", + "esbuild-linux-s390x": "0.14.46", + "esbuild-netbsd-64": "0.14.46", + "esbuild-openbsd-64": "0.14.46", + "esbuild-sunos-64": "0.14.46", + "esbuild-windows-32": "0.14.46", + "esbuild-windows-64": "0.14.46", + "esbuild-windows-arm64": "0.14.46" } }, "esbuild-android-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.40.tgz", - "integrity": "sha512-+69t+bmJWWhTyG8waJZcu4UGzM4NbDXAwssTEDYwonyz6L/Is11Y3csJhE16RM0a1GeDin0n810vNP+NVjttKA==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.46.tgz", + "integrity": "sha512-ZyJqwAcjNbZprs0ZAxnUAOhEhdE5kTKwz+CZuLmZYNLAPyRgBtaC8pT2PCuPifNvV8Cl3yLlrQPaOCjovoyb5g==", "dev": true, "optional": true }, "esbuild-android-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.40.tgz", - "integrity": "sha512-lVDn4d7/NL5Svrxuskmd/YcluI6uI4Ebp7A1/tWyLJJYbvfIy5l4Vy8GMhErGLePbRyJJiuBP9xusapK4u+6bg==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.46.tgz", + "integrity": "sha512-BKcnUksvCijO9ONv6b4SikZE/OZftwJvX91XROODZGQmuwGVg97jmLDVu3lxuHdFlMNNzxh8taJ2mbCWZzH/Iw==", "dev": true, "optional": true }, "esbuild-darwin-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.40.tgz", - "integrity": "sha512-b5u3IXCHhOjkRHIQTSxCN7ObUR5NTyJCP9LrnJ69dEEi1w1usI40T/VNyTTCs7n0UgEH7/zi27vBxbZU+sU4Ew==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.46.tgz", + "integrity": "sha512-/ss2kO92sUJ9/1nHnMb3+oab8w6dyqKrMtPMvSYJ9KZIYGAZxz/WYxfFprY7Xk+ZxWnnlASSyZlG+If1nVmFYg==", "dev": true, "optional": true }, "esbuild-darwin-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.40.tgz", - "integrity": "sha512-Wn0C2nrZSANvzK9efcxjKpv9l8yUC4PtYMmnf775gUNwak7sqecuoelhbUTshhrwsfjCNfjsrUhsHY2OHUiEdw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.46.tgz", + "integrity": "sha512-WX0JOaEFf6t+rIjXO6THsf/0fhQAt2Zb0/PSYlvXnuQQAmOmFAfPsuRNocp5ME0NGaUqZd4FxqqmLEVK3RzPAg==", "dev": true, "optional": true }, "esbuild-freebsd-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.40.tgz", - "integrity": "sha512-B9WZNUn7Y9f97xrQGBAQPKsebeFZzAd+JCdsLCexrVfTjB24b+/Iuq5O2z/q5Meg7Yz0S+j8AO6ncpvNkK2u0w==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.46.tgz", + "integrity": "sha512-o+ozPFuHRCAGCVWU2bLurOUgVkT0jcPEu082VBUY2Q/yLf+B+/3nXzh4Fjp5O21tOvJRTn7hUVydG9j5+vYE6A==", "dev": true, "optional": true }, "esbuild-freebsd-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.40.tgz", - "integrity": "sha512-3aB9uJv2/lmQNzwmieNyyOdxKi+3ERwrqf3snBu/oEng8b7nMBNrEN+p7jjkTYNYmo291KiH/5EIAXwpsZndFw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.46.tgz", + "integrity": "sha512-9zicZ0X43WDKz3sjNfcqYO38xbfJpSWYXB+FxvYYkmBwGA52K0SAu4oKuTTLi8od8X2IIo1x5C5TUNvKDSVJww==", "dev": true, "optional": true }, "esbuild-linux-32": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.40.tgz", - "integrity": "sha512-LMI9BMeuGf6NRS23LbyVarN3nf+JyNcfiVEnR9M8691kL5Ffp3e7oTYRH65XdTUirM9D6e5cppfWLjvrRbGnRw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.46.tgz", + "integrity": "sha512-ZnTpZMVb0VGvL99R5eh4OrJwbUyvpM6M88VAMuHP4LvFjuvZrhgefjKqEGuWZZW7JRnAjKqjXLjWdhdSjwMFnQ==", "dev": true, "optional": true }, "esbuild-linux-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.40.tgz", - "integrity": "sha512-D/NkZ9QR2KShJXNuRWANxJzPCrwJoAoWVetQiGIAepzXbNh+dBo5ZLmlh8Txs6tE600N67MF/ScHP1S4FxLaJg==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.46.tgz", + "integrity": "sha512-ECCRRZtX6l4ubeVhHhiVoK/uYAkvzNqfmR4gP4N/9H9RPu+b8YCcN4bQGp7xCuYIV6Xd41WpOMyO+xpcQvjtQQ==", "dev": true, "optional": true }, "esbuild-linux-arm": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.40.tgz", - "integrity": "sha512-2a0yZXbzr/s3iCgZ84jFTHf+NyyXQ/7/Sd28oQq5iyy7TbJNS973XUOwgdlHdRqBxvw0nIWTw2FuwyUJAFa6Qg==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.46.tgz", + "integrity": "sha512-RvTJEi4vj13c5FP9YPp+8Y6x6HK1E7uSqfy3y9UoeaNAzNZWA7fN1U3hQjTL/dy5zTJH5KE64mrt5k5+he+CQA==", "dev": true, "optional": true }, "esbuild-linux-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.40.tgz", - "integrity": "sha512-TIoZWKjrMJxZujh2nSsrrLkLDLzD/oBpSiobdUGe2bqKZpT4m7fkR0tEDNyM6Xvzj9uTQ4iTfJr2ekmpg3DyTQ==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.46.tgz", + "integrity": "sha512-HX0TXCHyI0NEWG4jg8LlW1PbZQbnz+PUH56yjx996cgM5pC90u32drKs/tyJiyyQmNk9OXOogjKw7LEdp/Qc1w==", "dev": true, "optional": true }, "esbuild-linux-mips64le": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.40.tgz", - "integrity": "sha512-SP30CYYSDMwr6mPUbjvD4K2R03GQHIQGrkrbXt5NM6mFqzR+S+JKVv9juq/CjlM9V7iIPPPqe4mb4DWC3b8pBw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.46.tgz", + "integrity": "sha512-jnb2NDwGqJUVmxn1v0f7seNdDm0nRNWHP9Z3MrWAGnBCdnnDlsjqRFDnbKoaQvWONEa+rOOr/giK+VL0hgQExA==", "dev": true, "optional": true }, "esbuild-linux-ppc64le": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.40.tgz", - "integrity": "sha512-HlU3dfIdwzm/zhbXvMa5yWIafBeI7v6BDaEuApAww5Av8ht7lXgD1fZ11iJVPjRWNLcCZUgZaJKFrosSPQO/Bw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.46.tgz", + "integrity": "sha512-uu3JTQUrwwauKY9z8yq5MnDyOlT3f2DNOzBcYz4dB78HqwEqilCsifoBGd0WcbED5n57dc59X+LZMTZ8Ose44w==", "dev": true, "optional": true }, "esbuild-linux-riscv64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.40.tgz", - "integrity": "sha512-4ImTBEUykhIcIq3c97dIXnsmAHb//cjHh4nxttLhwpTZ+b/KdM1IpttqFhB0AFLUsrjP4WOCMxAm5FOL7FC2uw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.46.tgz", + "integrity": "sha512-OB29r1EG44ZY34JnXCRERxo7k4pRKoQdaoRg2HIeCavatsXZwW4LCakpLnMQ72vXT1HtpBUABEjHkKkn5JyrUg==", "dev": true, "optional": true }, "esbuild-linux-s390x": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.40.tgz", - "integrity": "sha512-kFCPKictYjpt5rt0bFdbSmb8AWut75sIh1fZUTCVkujWMcpdL8ADuYMfVrN7R0CSQvkF1nQtrIBfp+ZU7R7KNQ==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.46.tgz", + "integrity": "sha512-XQ/U9TueMSGYyPTKyZsJVraiuvxhwCDIMn/QwFXCRCJ6H/Cy/Rq33u9qhpeSziinHKfzJROGx5A8mQY6aYamdQ==", "dev": true, "optional": true }, "esbuild-netbsd-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.40.tgz", - "integrity": "sha512-Hwzw2cSI6+p03TUjugzec54W6uW4tA1J/WovmlHl96Icjy73eWnAyCQwgG6ZLirXpt2aDfTEVShNaC2fE4KVhQ==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.46.tgz", + "integrity": "sha512-i15BwqHaAIFp1vBJkitAbHtwXcLk9TdHs/Ia1xGIAutQYXSJNPLM3Z4B4hyfHNEFl2yBqBIYpglMohv2ClNdOQ==", "dev": true, "optional": true }, "esbuild-openbsd-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.40.tgz", - "integrity": "sha512-L4Pix+N2Sb0HvLl8zyn1Aq2aYD5Jt8rk9zwW3NUx19yafJqAFsnUN7L/XbbWSv5/XMqnY4hpAvIP2pyeV9+Bjw==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.46.tgz", + "integrity": "sha512-XwOIFCE140Y/PvjrwjFfa/QLWBuvhR1mPCOa35mKx02jt++wPNgf0qhn6HfdVC3vQe7R46RwTp4q2cp99fepEg==", "dev": true, "optional": true }, "esbuild-sunos-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.40.tgz", - "integrity": "sha512-iEITaelmmCO43ewk0bOYRGrewu2i2h2V0gKHQ/rz1MRqif8ohY/FNLn4WnThGUlrEgA1nTL1tc57PL12QbOo2Q==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.46.tgz", + "integrity": "sha512-+kV3JnmfdxBVpHyFvuGXWtu6tXxXApOLPkSrVkMJf6+ns/3PLtPndpzwCzHjD+qYUEk8ln4MA+ufQ2qmjW5mZg==", "dev": true, "optional": true }, "esbuild-windows-32": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.40.tgz", - "integrity": "sha512-uXHmKl4RtCkK1v6QQK4hsP8Xiku6CwUM/W7Yv2rGtfylSOrrWKcpqwlDWx6bIm1Hav1uBC8hbgJ1hY6pWFNhNA==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.46.tgz", + "integrity": "sha512-gzGC1Q11B/Bo5A2EX4N22oigWmhL7Z0eDyc8kbSoJjqSrGQuRE7B0uMpluO+q0O/gZ1S3zdw+M4PCWlqOIeXLA==", "dev": true, "optional": true }, "esbuild-windows-64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.40.tgz", - "integrity": "sha512-dvgQLVYnJzqce97AeHvxWtV9lHRDxIPatOikmrh1vt/SCE4tyVo5nAT/2SiZBJ6DzYmZT3BcJTV24bBLyu4ZUA==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.46.tgz", + "integrity": "sha512-Do2daaskfOjmCB7o3ygz6fD3K6SPjZLERiZLktzHz2oUCwsebKu/gmop0+j/XdrVIXC32wFzHzDS+9CTu9OShw==", "dev": true, "optional": true }, "esbuild-windows-arm64": { - "version": "0.14.40", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.40.tgz", - "integrity": "sha512-c8ohQSFtRq78pZ/LQcpMft2xuR2IEitQkW07f9K7iN4EBdJMrCpOoXrZCfmX9lAC8yYOU7xHoLFYVln3n6fK1Q==", + "version": "0.14.46", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.46.tgz", + "integrity": "sha512-VEzMy6bM60/HT/URTDElyhfi2Pk0quCCrEhRlI4MRno/AIqYUGw0rZwkPl6PeoqVI6BgoBHGY576GWTiPmshCA==", "dev": true, "optional": true }, @@ -7219,9 +7218,9 @@ } }, "eslint": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", - "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", + "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.0", @@ -9123,9 +9122,9 @@ } }, "ts-node": { - "version": "10.8.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.0.tgz", - "integrity": "sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA==", + "version": "10.8.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", + "integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", "dev": true, "requires": { "@cspotcode/source-map-support": "^0.8.0", @@ -9174,9 +9173,9 @@ } }, "typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true }, "universalify": { @@ -9211,9 +9210,9 @@ } }, "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz", + "integrity": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==" }, "v8-compile-cache": { "version": "2.3.0", diff --git a/examples/sam/package.json b/examples/sam/package.json index e15097a019..668a79f56f 100644 --- a/examples/sam/package.json +++ b/examples/sam/package.json @@ -1,6 +1,6 @@ { "name": "powertools-typescript-sam-example", - "version": "0.10.0", + "version": "0.11.0", "author": { "name": "Amazon Web Services", "url": "https://aws.amazon.com" @@ -11,13 +11,14 @@ "build": "sam build --beta-features", "test": "npm run test:unit", "package": "echo 'Not applicable'", + "package-bundle": "echo 'Not applicable'", "test:unit": "npm run build && jest", "test:e2e": "echo 'To be implemented ...'", "version": "npm install @aws-lambda-powertools/logger@0.7.0 @aws-lambda-powertools/tracer@0.7.0 @aws-lambda-powertools/metrics@0.7.0 && git add package.json" }, "devDependencies": { "@types/aws-lambda": "^8.10.86", - "@types/node": "17.0.35", + "@types/node": "18.0.0", "esbuild": "^0.14.23", "eslint": "^8.4.0", "jest": "^27.5.1", diff --git a/lerna.json b/lerna.json index 9dd3c25aab..311b96199b 100644 --- a/lerna.json +++ b/lerna.json @@ -4,7 +4,7 @@ "examples/cdk", "examples/sam" ], - "version": "0.10.0", + "version": "0.11.0", "npmClient": "npm", "message": "chore(release): %s [skip ci]" } \ No newline at end of file diff --git a/package-bundler.sh b/package-bundler.sh new file mode 100755 index 0000000000..eea1fd37da --- /dev/null +++ b/package-bundler.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +set -e + + +usage() { + echo "Uber package Builder" + echo "------------------------" + echo "./package-bundler.sh NAME LOCAL_NPM_PACKAGE_LOCATION" + echo "" +} + + +if [[ "$#" -lt 2 ]]; then + usage + exit 1 +fi + +name=$(basename ${1}) +dist_folder="${2}" + +echo "Will bundle $(ls ${dist_folder}) into ${dist_folder}/${name}.tgz" + +output_folder="$(mktemp -d)" + +docker_image="public.ecr.aws/sam/build-nodejs14.x:latest" +volume_params="-v $output_folder:/bundle" + +package_folder="nodejs/" +mkdir -p "$output_folder/$package_folder" + +cp -r "${2}" "$output_folder/$package_folder/" + +install_command="pushd $package_folder; npm install --save ./*.tgz; popd" +volume_params="$volume_params -v $HOME/.npmrc:/root/.npmrc" + +zip_command="zip -r bundle.zip * && rm -rf $package_folder" + +docker run --rm $volume_params -w "/bundle" "$docker_image" /bin/bash -c "$install_command && $zip_command" + +mv "$output_folder/bundle.zip" "$dist_folder/$name.zip" + +rm -rf $output_folder + +echo "All done" diff --git a/package-lock.json b/package-lock.json index e36f0711fe..89d85ba2e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "@middy/core": "^2.5.6", "@types/aws-lambda": "^8.10.72", "@types/jest": "^27.4.0", - "@types/node": "^17.0.8", + "@types/node": "^18.0.0", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^5.12.1", "@typescript-eslint/parser": "^5.12.1", @@ -316,12 +316,12 @@ "link": true }, "node_modules/@aws-sdk/abort-controller": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.55.0.tgz", - "integrity": "sha512-rCcTxJDEFnmvo/PgbhCRv24/Uv03lEGfRslKZq7SjaMcOubflS/ZXYaMEgsjYHgAT0zlpSsyCIkJXmhFaM7H7w==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.110.0.tgz", + "integrity": "sha512-zok/WEVuK7Jh6V9YeA56pNZtxUASon9LTkS7vE65A4UFmNkPGNBCNgoiBcbhWfxwrZ8wtXcQk6rtUut39831mA==", "dev": true, "dependencies": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -329,45 +329,46 @@ } }, "node_modules/@aws-sdk/client-dynamodb": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.58.0.tgz", - "integrity": "sha512-54uclCvSVREutcty19NqfzC5V/0ebYSz51lz5jQpHYObP2uUAKOunTAWx1lnWACZ9U9Ka6SHWN/NhKFXeMKwgw==", + "version": "3.113.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.113.0.tgz", + "integrity": "sha512-tp0/smnSBqoPdSbZqRaH46S9cDkOMXsbG8Qph+gV3+SL+V3nJLeGFzA+3WPmF0l0Bnv0/9Tms4ySZB0MsBSy/A==", "dev": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.58.0", - "@aws-sdk/config-resolver": "3.58.0", - "@aws-sdk/credential-provider-node": "3.58.0", - "@aws-sdk/fetch-http-handler": "3.58.0", - "@aws-sdk/hash-node": "3.55.0", - "@aws-sdk/invalid-dependency": "3.55.0", - "@aws-sdk/middleware-content-length": "3.58.0", - "@aws-sdk/middleware-endpoint-discovery": "3.58.0", - "@aws-sdk/middleware-host-header": "3.58.0", - "@aws-sdk/middleware-logger": "3.55.0", - "@aws-sdk/middleware-retry": "3.58.0", - "@aws-sdk/middleware-serde": "3.55.0", - "@aws-sdk/middleware-signing": "3.58.0", - "@aws-sdk/middleware-stack": "3.55.0", - "@aws-sdk/middleware-user-agent": "3.58.0", - "@aws-sdk/node-config-provider": "3.58.0", - "@aws-sdk/node-http-handler": "3.58.0", - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/smithy-client": "3.55.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/url-parser": "3.55.0", - "@aws-sdk/util-base64-browser": "3.58.0", + "@aws-sdk/client-sts": "3.112.0", + "@aws-sdk/config-resolver": "3.110.0", + "@aws-sdk/credential-provider-node": "3.112.0", + "@aws-sdk/fetch-http-handler": "3.110.0", + "@aws-sdk/hash-node": "3.110.0", + "@aws-sdk/invalid-dependency": "3.110.0", + "@aws-sdk/middleware-content-length": "3.110.0", + "@aws-sdk/middleware-endpoint-discovery": "3.110.0", + "@aws-sdk/middleware-host-header": "3.110.0", + "@aws-sdk/middleware-logger": "3.110.0", + "@aws-sdk/middleware-recursion-detection": "3.110.0", + "@aws-sdk/middleware-retry": "3.110.0", + "@aws-sdk/middleware-serde": "3.110.0", + "@aws-sdk/middleware-signing": "3.110.0", + "@aws-sdk/middleware-stack": "3.110.0", + "@aws-sdk/middleware-user-agent": "3.110.0", + "@aws-sdk/node-config-provider": "3.110.0", + "@aws-sdk/node-http-handler": "3.110.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/smithy-client": "3.110.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/url-parser": "3.110.0", + "@aws-sdk/util-base64-browser": "3.109.0", "@aws-sdk/util-base64-node": "3.55.0", "@aws-sdk/util-body-length-browser": "3.55.0", "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.55.0", - "@aws-sdk/util-defaults-mode-node": "3.58.0", - "@aws-sdk/util-user-agent-browser": "3.58.0", - "@aws-sdk/util-user-agent-node": "3.58.0", - "@aws-sdk/util-utf8-browser": "3.55.0", - "@aws-sdk/util-utf8-node": "3.55.0", - "@aws-sdk/util-waiter": "3.55.0", + "@aws-sdk/util-defaults-mode-browser": "3.110.0", + "@aws-sdk/util-defaults-mode-node": "3.110.0", + "@aws-sdk/util-user-agent-browser": "3.110.0", + "@aws-sdk/util-user-agent-node": "3.110.0", + "@aws-sdk/util-utf8-browser": "3.109.0", + "@aws-sdk/util-utf8-node": "3.109.0", + "@aws-sdk/util-waiter": "3.110.0", "tslib": "^2.3.1", "uuid": "^8.3.2" }, @@ -376,40 +377,41 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.58.0.tgz", - "integrity": "sha512-nS5G/OX8Bg4ajBa6+jLcbbr4PpEO+l5eJfGUzoJQwS4Zqa0lF/wC0kyjKm61gLp4JuvhrQskxIC/3IXUqB1XVQ==", + "version": "3.112.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.112.0.tgz", + "integrity": "sha512-FwFmiapxuVQiyMdDaBvCpajnJkVWEUHBdO+7rIpzgKHkODEPou5/AwboaGRPEFYULOyYeI0HiDFzpK0G6de+7Q==", "dev": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.58.0", - "@aws-sdk/fetch-http-handler": "3.58.0", - "@aws-sdk/hash-node": "3.55.0", - "@aws-sdk/invalid-dependency": "3.55.0", - "@aws-sdk/middleware-content-length": "3.58.0", - "@aws-sdk/middleware-host-header": "3.58.0", - "@aws-sdk/middleware-logger": "3.55.0", - "@aws-sdk/middleware-retry": "3.58.0", - "@aws-sdk/middleware-serde": "3.55.0", - "@aws-sdk/middleware-stack": "3.55.0", - "@aws-sdk/middleware-user-agent": "3.58.0", - "@aws-sdk/node-config-provider": "3.58.0", - "@aws-sdk/node-http-handler": "3.58.0", - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/smithy-client": "3.55.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/url-parser": "3.55.0", - "@aws-sdk/util-base64-browser": "3.58.0", + "@aws-sdk/config-resolver": "3.110.0", + "@aws-sdk/fetch-http-handler": "3.110.0", + "@aws-sdk/hash-node": "3.110.0", + "@aws-sdk/invalid-dependency": "3.110.0", + "@aws-sdk/middleware-content-length": "3.110.0", + "@aws-sdk/middleware-host-header": "3.110.0", + "@aws-sdk/middleware-logger": "3.110.0", + "@aws-sdk/middleware-recursion-detection": "3.110.0", + "@aws-sdk/middleware-retry": "3.110.0", + "@aws-sdk/middleware-serde": "3.110.0", + "@aws-sdk/middleware-stack": "3.110.0", + "@aws-sdk/middleware-user-agent": "3.110.0", + "@aws-sdk/node-config-provider": "3.110.0", + "@aws-sdk/node-http-handler": "3.110.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/smithy-client": "3.110.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/url-parser": "3.110.0", + "@aws-sdk/util-base64-browser": "3.109.0", "@aws-sdk/util-base64-node": "3.55.0", "@aws-sdk/util-body-length-browser": "3.55.0", "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.55.0", - "@aws-sdk/util-defaults-mode-node": "3.58.0", - "@aws-sdk/util-user-agent-browser": "3.58.0", - "@aws-sdk/util-user-agent-node": "3.58.0", - "@aws-sdk/util-utf8-browser": "3.55.0", - "@aws-sdk/util-utf8-node": "3.55.0", + "@aws-sdk/util-defaults-mode-browser": "3.110.0", + "@aws-sdk/util-defaults-mode-node": "3.110.0", + "@aws-sdk/util-user-agent-browser": "3.110.0", + "@aws-sdk/util-user-agent-node": "3.110.0", + "@aws-sdk/util-utf8-browser": "3.109.0", + "@aws-sdk/util-utf8-node": "3.109.0", "tslib": "^2.3.1" }, "engines": { @@ -417,43 +419,44 @@ } }, "node_modules/@aws-sdk/client-sts": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.58.0.tgz", - "integrity": "sha512-2cHZsG2eXv/Zl0hvsG9+rdHEuAclMFfkma/3LC3RRwSuZXo1rXoIhFkzHfGfIbivdk738YAo7FT3ZYGlrsK4ow==", + "version": "3.112.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.112.0.tgz", + "integrity": "sha512-hSApRO2wg3jk9VRGM6SCZO3aFP7DKVSUqs6FrvlXlj+JU88ZKObjrGE61cCzXoD89Dh+b9t8A2T6W51Nzriaxw==", "dev": true, "dependencies": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.58.0", - "@aws-sdk/credential-provider-node": "3.58.0", - "@aws-sdk/fetch-http-handler": "3.58.0", - "@aws-sdk/hash-node": "3.55.0", - "@aws-sdk/invalid-dependency": "3.55.0", - "@aws-sdk/middleware-content-length": "3.58.0", - "@aws-sdk/middleware-host-header": "3.58.0", - "@aws-sdk/middleware-logger": "3.55.0", - "@aws-sdk/middleware-retry": "3.58.0", - "@aws-sdk/middleware-sdk-sts": "3.58.0", - "@aws-sdk/middleware-serde": "3.55.0", - "@aws-sdk/middleware-signing": "3.58.0", - "@aws-sdk/middleware-stack": "3.55.0", - "@aws-sdk/middleware-user-agent": "3.58.0", - "@aws-sdk/node-config-provider": "3.58.0", - "@aws-sdk/node-http-handler": "3.58.0", - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/smithy-client": "3.55.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/url-parser": "3.55.0", - "@aws-sdk/util-base64-browser": "3.58.0", + "@aws-sdk/config-resolver": "3.110.0", + "@aws-sdk/credential-provider-node": "3.112.0", + "@aws-sdk/fetch-http-handler": "3.110.0", + "@aws-sdk/hash-node": "3.110.0", + "@aws-sdk/invalid-dependency": "3.110.0", + "@aws-sdk/middleware-content-length": "3.110.0", + "@aws-sdk/middleware-host-header": "3.110.0", + "@aws-sdk/middleware-logger": "3.110.0", + "@aws-sdk/middleware-recursion-detection": "3.110.0", + "@aws-sdk/middleware-retry": "3.110.0", + "@aws-sdk/middleware-sdk-sts": "3.110.0", + "@aws-sdk/middleware-serde": "3.110.0", + "@aws-sdk/middleware-signing": "3.110.0", + "@aws-sdk/middleware-stack": "3.110.0", + "@aws-sdk/middleware-user-agent": "3.110.0", + "@aws-sdk/node-config-provider": "3.110.0", + "@aws-sdk/node-http-handler": "3.110.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/smithy-client": "3.110.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/url-parser": "3.110.0", + "@aws-sdk/util-base64-browser": "3.109.0", "@aws-sdk/util-base64-node": "3.55.0", "@aws-sdk/util-body-length-browser": "3.55.0", "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.55.0", - "@aws-sdk/util-defaults-mode-node": "3.58.0", - "@aws-sdk/util-user-agent-browser": "3.58.0", - "@aws-sdk/util-user-agent-node": "3.58.0", - "@aws-sdk/util-utf8-browser": "3.55.0", - "@aws-sdk/util-utf8-node": "3.55.0", + "@aws-sdk/util-defaults-mode-browser": "3.110.0", + "@aws-sdk/util-defaults-mode-node": "3.110.0", + "@aws-sdk/util-user-agent-browser": "3.110.0", + "@aws-sdk/util-user-agent-node": "3.110.0", + "@aws-sdk/util-utf8-browser": "3.109.0", + "@aws-sdk/util-utf8-node": "3.109.0", "entities": "2.2.0", "fast-xml-parser": "3.19.0", "tslib": "^2.3.1" @@ -463,15 +466,15 @@ } }, "node_modules/@aws-sdk/config-resolver": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.58.0.tgz", - "integrity": "sha512-NXEwYw0JrXcvenu42QpNMQXK+6pgZ+6bDGfCgOfCC0FmyI+w/CuF36lApwm7InHvHazOaDlwArXm2pfntErKoA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.110.0.tgz", + "integrity": "sha512-7VvtKy4CL63BAktQ2vgsjhWDSXpkXO5YdiI56LQnHztrvSuJBBaxJ7R1p/k0b2tEUhYKUziAIW8EKE/7EGPR4g==", "dev": true, "dependencies": { - "@aws-sdk/signature-v4": "3.58.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/util-config-provider": "3.55.0", - "@aws-sdk/util-middleware": "3.55.0", + "@aws-sdk/signature-v4": "3.110.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/util-config-provider": "3.109.0", + "@aws-sdk/util-middleware": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -479,13 +482,13 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.55.0.tgz", - "integrity": "sha512-4AIIXEdvinLlWNFtrUbUgoB7dkuV04RTcTruVWI4Ub4WSsuSCa72ZU1vqyvcEAOgGGLBmcSaGTWByjiD2sGcGA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.110.0.tgz", + "integrity": "sha512-oFU3IYk/Bl5tdsz1qigtm3I25a9cvXPqlE8VjYjxVDdLujF5zd/4HLbhP4GQWhpEwZmM1ijcSNfLcyywVevTZg==", "dev": true, "dependencies": { - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -493,15 +496,15 @@ } }, "node_modules/@aws-sdk/credential-provider-imds": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.58.0.tgz", - "integrity": "sha512-CdtnTQ9zqLx1FbXdbgjijLbMcIWOyQM03TFaLSCjI3FNbUwyt3T7StBU9tj/LtbypHhSdXyQBpzUtXTOMWCEhg==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.110.0.tgz", + "integrity": "sha512-atl+7/dAB+8fG9XI2fYyCgXKYDbOzot65VAwis+14bOEUCVp7PCJifBEZ/L8GEq564p+Fa2p1IpV0wuQXxqFUQ==", "dev": true, "dependencies": { - "@aws-sdk/node-config-provider": "3.58.0", - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/url-parser": "3.55.0", + "@aws-sdk/node-config-provider": "3.110.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/url-parser": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -509,18 +512,18 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.58.0.tgz", - "integrity": "sha512-uM62hcHUVaHP1YFnbrjf2RlrRj1m/BvMPE+T5jdNRWdE3lvnunhEMawB26HZs9nQqCV6d25I8G9/fGWVL7g3Og==", - "dev": true, - "dependencies": { - "@aws-sdk/credential-provider-env": "3.55.0", - "@aws-sdk/credential-provider-imds": "3.58.0", - "@aws-sdk/credential-provider-sso": "3.58.0", - "@aws-sdk/credential-provider-web-identity": "3.55.0", - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/shared-ini-file-loader": "3.58.0", - "@aws-sdk/types": "3.55.0", + "version": "3.112.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.112.0.tgz", + "integrity": "sha512-ebgZ6/jZdTGHQ3zfq/ccmS+7YmLk6yUWHDmh69VK+B1Dd+S1jFwbD9EQ+pYWCp/gEl9F620NSwb6KghRylPWEQ==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.110.0", + "@aws-sdk/credential-provider-imds": "3.110.0", + "@aws-sdk/credential-provider-sso": "3.112.0", + "@aws-sdk/credential-provider-web-identity": "3.110.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/shared-ini-file-loader": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -528,20 +531,20 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.58.0.tgz", - "integrity": "sha512-f0wzcgMYCQUrii6TLP2ggCxkQP4HH8PW8tbbWEgt4cdIXcjE9KEuxN5yOV6sFHzL3eJh0QM9Yaz8WzhWn6fT2A==", - "dev": true, - "dependencies": { - "@aws-sdk/credential-provider-env": "3.55.0", - "@aws-sdk/credential-provider-imds": "3.58.0", - "@aws-sdk/credential-provider-ini": "3.58.0", - "@aws-sdk/credential-provider-process": "3.58.0", - "@aws-sdk/credential-provider-sso": "3.58.0", - "@aws-sdk/credential-provider-web-identity": "3.55.0", - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/shared-ini-file-loader": "3.58.0", - "@aws-sdk/types": "3.55.0", + "version": "3.112.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.112.0.tgz", + "integrity": "sha512-7txS7P3BAaU4cksFw/PnoVskVvO8h/TPvOl/BxFtCiUdwA6FRltLvBeMlN08fwUoqgM6z06q8areBdeDqCHOSw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.110.0", + "@aws-sdk/credential-provider-imds": "3.110.0", + "@aws-sdk/credential-provider-ini": "3.112.0", + "@aws-sdk/credential-provider-process": "3.110.0", + "@aws-sdk/credential-provider-sso": "3.112.0", + "@aws-sdk/credential-provider-web-identity": "3.110.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/shared-ini-file-loader": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -549,14 +552,14 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.58.0.tgz", - "integrity": "sha512-npgFqPUjMhUamf1FvJjBYUdpbWx8XWkKCwJsX73I7IYQAvAi2atCOkdtKq+4rds0VWAYu6vzlaI1tXgFxjOPNQ==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.110.0.tgz", + "integrity": "sha512-JJcZePvRTfQHYj/+EEY13yItnZH/e8exlARFUjN0L13UrgHpOJtDQBa+YBHXo6MbTFQh+re25z2kzc+zOYSMNQ==", "dev": true, "dependencies": { - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/shared-ini-file-loader": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/shared-ini-file-loader": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -564,15 +567,15 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.58.0.tgz", - "integrity": "sha512-2qO34s9lJqvCC6zOF4UpopW6xURZpYfVC8xTUDpAUnvTOt4nS5hkx4vNyqPAXILoRHuFJsnlWsBH1UP5ZnBiZg==", + "version": "3.112.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.112.0.tgz", + "integrity": "sha512-b6rOrSXbNK3fGyPvNpyF5zdktmAoNOqHCTmFSUcxRxOipyRGb5JACsbjWthIQkpWkpNCT8GFNLEg9spXPFIdLA==", "dev": true, "dependencies": { - "@aws-sdk/client-sso": "3.58.0", - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/shared-ini-file-loader": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/client-sso": "3.112.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/shared-ini-file-loader": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -580,13 +583,13 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.55.0.tgz", - "integrity": "sha512-aKnXfZNGohTuF9rCGYLg4JEIOvWIZ/sb66XMq7bOUrx13KRPDwL/eUQL8quS5jGRLpjXVNvrS17AFf65GbdUBg==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.110.0.tgz", + "integrity": "sha512-e4e5u7v3fsUFZsMcFMhMy1NdJBQpunYcLwpYlszm3OEICwTTekQ+hVvnVRd134doHvzepE4yp9sAop0Cj+IRVQ==", "dev": true, "dependencies": { - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -607,25 +610,25 @@ } }, "node_modules/@aws-sdk/fetch-http-handler": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.58.0.tgz", - "integrity": "sha512-timF3FjPV5Bd+Kgph83LIKVlPCFObVYzious1a6doeLAT6YFwZpRrWbfP/HzS+DCoYiwUsH69oVJ91BoV66oyA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.110.0.tgz", + "integrity": "sha512-vk+K4GeCZL2J2rtvKO+T0Q7i3MDpEGZBMg5K2tj9sMcEQwty0BF0aFnP7Eu2l4/Zif2z1mWuUFM2WcZI6DVnbw==", "dev": true, "dependencies": { - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/querystring-builder": "3.55.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/util-base64-browser": "3.58.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/querystring-builder": "3.110.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/util-base64-browser": "3.109.0", "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/hash-node": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.55.0.tgz", - "integrity": "sha512-2UdYwY/++AlzWEAFaK9wOed2QSxbzV527vmqKjReLHpPKPrSIlooUxlTH3LU6Y6WVDAzDRtLK43KUVXTLgGK1A==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.110.0.tgz", + "integrity": "sha512-wakl+kP2O8wTGYiQ3InZy+CVfGrIpFfq9fo4zif9PZac0BbUbguUU1dkY34uZiaf+4o2/9MoDYrHU2HYeXKxWw==", "dev": true, "dependencies": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "@aws-sdk/util-buffer-from": "3.55.0", "tslib": "^2.3.1" }, @@ -634,12 +637,12 @@ } }, "node_modules/@aws-sdk/invalid-dependency": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.55.0.tgz", - "integrity": "sha512-delH0lV+78fdD/8MXIt9kTLS6IwHvdhqq9dw/ow5VjTUw+xBwUlfPfZplaai+3hKTKWh6a2WZCeDasNItBv9aA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.110.0.tgz", + "integrity": "sha512-O8J1InmtJkoiUMbQDtxBfOzgigBp9iSVsNXQrhs2qHh3826cJOfE7NGT3u+NMw73Pk5j2cfmOh1+7k/76IqxOg==", "dev": true, "dependencies": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, @@ -656,13 +659,13 @@ } }, "node_modules/@aws-sdk/middleware-content-length": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.58.0.tgz", - "integrity": "sha512-h/BypPkhjv2CpCUbXA8Fa2s7V2GPiz9l11XhYK+sKSuQvQ7Lbq6VhaKaLqfeD3gLVZHgJZSLGl2btdHV1qHNNA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.110.0.tgz", + "integrity": "sha512-hKU+zdqfAJQg22LXMVu/z35nNIHrVAKpVKPe9+WYVdL/Z7JKUPK7QymqKGOyDuDbzW6OxyulC1zKGEX12zGmdA==", "dev": true, "dependencies": { - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -670,15 +673,15 @@ } }, "node_modules/@aws-sdk/middleware-endpoint-discovery": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.58.0.tgz", - "integrity": "sha512-Ll42zMPP8dDTHesv5VdnM0vgT4mW+kR2SgXCWBMuwnZdBn0FDH1A3E0BqJkLuuq2TKIah0/l1sA1qVC68GkAeA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.110.0.tgz", + "integrity": "sha512-GUnNcuEBqD21E8EgevTcaBXJGnH5dp7eDSfWceYJP+iSscFXLzFFOf1I6H0cwvfARVMHVvlFz0tQcojCSHUZig==", "dev": true, "dependencies": { - "@aws-sdk/config-resolver": "3.58.0", + "@aws-sdk/config-resolver": "3.110.0", "@aws-sdk/endpoint-cache": "3.55.0", - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -686,13 +689,13 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.58.0.tgz", - "integrity": "sha512-q/UKGcanm9e6DBRNN6UKhVqLvpRRdZWbmmPCeDNr4HqhCmgT6i1OvWdhAMOnT++hvCX8DpTsIXzNSlY6zWAxBg==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.110.0.tgz", + "integrity": "sha512-/Cknn1vL2LTlclI0MX2RzmtdPlCJ5palCRXxm/mod1oHwg4oNTKRlUX3LUD+L8g7JuJ4h053Ch9KS/A0vanE5Q==", "dev": true, "dependencies": { - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -700,12 +703,26 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.55.0.tgz", - "integrity": "sha512-PtRbVrxEzDmeV9prBIP4/9or7R5Dj66mjbFSvNRGZ0n+UBfBFfVRfNrhQPNzQpfV9A3KVl9YyWCVXDSW+/rk9Q==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.110.0.tgz", + "integrity": "sha512-+pz+a+8dfTnzLj79nHrv3aONMp/N36/erMd+7JXeR84QEosVLrFBUwKA8x5x6O3s1iBbQzRKMYEIuja9xn1BPA==", "dev": true, "dependencies": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.110.0.tgz", + "integrity": "sha512-Wav782zd7bcd1e6txRob76CDOdVOaUQ8HXoywiIm/uFrEEUZvhs2mgnXjVUVCMBUehdNgnL99z420aS13JeL/Q==", + "dev": true, + "dependencies": { + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -713,15 +730,15 @@ } }, "node_modules/@aws-sdk/middleware-retry": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.58.0.tgz", - "integrity": "sha512-sfSq+t0Yy47DQwrWGpA8iOx9sd26l4l1JDVTwHNi7+OKD4ClRPVCEdw3bTbbyYz/PV4f9AEfAZ6jwtSff4wkGw==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.110.0.tgz", + "integrity": "sha512-lwLAQQveCiUqymQvVYjCee6QOXw3Zqbc9yq+pxYdXbs1Cv1XMA6PeJeUU5r5KEVuSceBLyyrnl6E0R1l1om1MQ==", "dev": true, "dependencies": { - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/service-error-classification": "3.55.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/util-middleware": "3.55.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/service-error-classification": "3.110.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/util-middleware": "3.110.0", "tslib": "^2.3.1", "uuid": "^8.3.2" }, @@ -730,16 +747,16 @@ } }, "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.58.0.tgz", - "integrity": "sha512-HUz7MhcsSDDTGygOwL61l4voc0pZco06J3z06JjTX19D5XxcQ7hSCtkHHHz0oMb9M1himVSiEon2tjhjsnB99g==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.110.0.tgz", + "integrity": "sha512-EjY/YFdlr5jECde6qIrTIyGBbn/34CKcQGKvmvRd31+3qaClIJLAwNuHfcVzWvCUGbAslsfvdbOpLju33pSQRA==", "dev": true, "dependencies": { - "@aws-sdk/middleware-signing": "3.58.0", - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/signature-v4": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/middleware-signing": "3.110.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/signature-v4": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -747,12 +764,12 @@ } }, "node_modules/@aws-sdk/middleware-serde": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.55.0.tgz", - "integrity": "sha512-NkEbTDrSZcC2NhuvfjXHKJEl0xgI2B5tMAwi/rMOq/TEnARwVUL9qAy+5lgeiPCqebiNllWatARrFgAaYf0VeA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.110.0.tgz", + "integrity": "sha512-brVupxgEAmcZ9cZvdHEH8zncjvGKIiud8pOe4fiimp5NpHmjBLew4jUbnOKNZNAjaidcKUtz//cxtutD6yXEww==", "dev": true, "dependencies": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -760,15 +777,15 @@ } }, "node_modules/@aws-sdk/middleware-signing": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.58.0.tgz", - "integrity": "sha512-4FXubHB66GbhyZUlo6YPQoWpYfED15GNbEmHbJLSONzrVzZR3IkViSPLasDngVm1a050JqKuqNkFYGJBP4No/Q==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.110.0.tgz", + "integrity": "sha512-y6ZKrGYfgDlFMzWhZmoq5J1UctBgZOUvMmnU9sSeZ020IlEPiOxFMvR0Zu6TcYThp8uy3P0wyjQtGYeTl9Z/kA==", "dev": true, "dependencies": { - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/signature-v4": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/signature-v4": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -776,9 +793,9 @@ } }, "node_modules/@aws-sdk/middleware-stack": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.55.0.tgz", - "integrity": "sha512-ouD+wFz8W2R0ZQ8HrbhgN8tg1jyINEg9lPEEXY79w1Q5sf94LJ90XKAMVk02rw3dJalUWjLHf0OQe1/qxZfHyA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.110.0.tgz", + "integrity": "sha512-iaLHw6ctOuGa9UxNueU01Xes+15dR+mqioRpUOUZ9Zx+vhXVpD7C8lnNqhRnYeFXs10/rNIzASgsIrAHTlnlIQ==", "dev": true, "dependencies": { "tslib": "^2.3.1" @@ -788,13 +805,13 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.58.0.tgz", - "integrity": "sha512-1c69bIWM63JwXijXvb9IWwcwQ/gViKMZ1lhxv52NvdG5VSxWXXsFJ2jETEXZoAypwT97Hmf3xo9SYuaHcKoq+g==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.110.0.tgz", + "integrity": "sha512-Y6FgiZr99DilYq6AjeaaWcNwVlSQpNGKrILzvV4Tmz03OaBIspe4KL+8EZ2YA/sAu5Lpw80vItdezqDOwGAlnQ==", "dev": true, "dependencies": { - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -802,14 +819,14 @@ } }, "node_modules/@aws-sdk/node-config-provider": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.58.0.tgz", - "integrity": "sha512-AMcPqPhKxo/3/yOMS9PsKlI0GWp2/8eD6gSlhzdBpznPCKplyqXOSnSX7wS814Cyh373hFSjCaOrCOA9/EYtDg==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.110.0.tgz", + "integrity": "sha512-46p4dCPGYctuybTQTwLpjenA1QFHeyJw/OyggGbtUJUy+833+ldnAwcPVML2aXJKUKv3APGI8vq1kaloyNku3Q==", "dev": true, "dependencies": { - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/shared-ini-file-loader": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/shared-ini-file-loader": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -817,15 +834,15 @@ } }, "node_modules/@aws-sdk/node-http-handler": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.58.0.tgz", - "integrity": "sha512-D9xVZG2nfo4GbPsby3JuBiAhpqXTFk1+CfuQU0AZv0gQvE3fFTCnB3za83jo7JV/pyRPU+s+/LHIpxCWUHzStg==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.110.0.tgz", + "integrity": "sha512-/rP+hY516DpP8fZhwFW5xM/ElH0w6lxw/15VvZCoY5EnOLAF5XIsJdzscWPSEW2FHCylBM4SNrKhGar14BDXhA==", "dev": true, "dependencies": { - "@aws-sdk/abort-controller": "3.55.0", - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/querystring-builder": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/abort-controller": "3.110.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/querystring-builder": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -833,12 +850,12 @@ } }, "node_modules/@aws-sdk/property-provider": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.55.0.tgz", - "integrity": "sha512-o7cKFJSHq5WOhwPsspYrzNto35oKKZvESZuWDtLxaZKSI6l7zpA366BI4kDG6Tc9i2+teV553MbxyZ9eya5A8g==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.110.0.tgz", + "integrity": "sha512-7NkpmYeOkK3mhWBNU+/zSDqwzeaSPH1qrq4L//WV7WS/weYyE/jusQeZoOxVsuZQnQEXHt5O2hKVeUwShl12xA==", "dev": true, "dependencies": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -846,12 +863,12 @@ } }, "node_modules/@aws-sdk/protocol-http": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.58.0.tgz", - "integrity": "sha512-0yFFRPbR+CCa9eOQBBQ2qtrIDLYqSMN0y7G4iqVM8wQdIw7n3QK1PsTI3RNPGJ3Oi2krFTw5uUKqQQZPZEBuVQ==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.110.0.tgz", + "integrity": "sha512-qdi2gCbJiyPyLn+afebPNp/5nVCRh1X7t7IRIFl3FHVEC+o54u/ojay/MLZ4M/+X9Fa4Zxsb0Wpp3T0xAHVDBg==", "dev": true, "dependencies": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -859,12 +876,12 @@ } }, "node_modules/@aws-sdk/querystring-builder": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.55.0.tgz", - "integrity": "sha512-/ZAXNipt9nRR8k+eowwukE/YjXnQ49p5w/MkaQxsBk3IuIf7MAcgVg8glHr0igH84GfUQ7ZVP8v+G2S3tKUG+Q==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.110.0.tgz", + "integrity": "sha512-7V3CDXj519izmbBn9ZE68ymASwGriA+Aq+cb/yHSVtffnvXjPtvONNw7G/5iVblisGLSCUe2hSvpYtcaXozbHw==", "dev": true, "dependencies": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "@aws-sdk/util-uri-escape": "3.55.0", "tslib": "^2.3.1" }, @@ -873,12 +890,12 @@ } }, "node_modules/@aws-sdk/querystring-parser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.55.0.tgz", - "integrity": "sha512-e+2FLgo+eDx7oh7ap5HngN9XSVMxredAVztLHxCcSN0lFHHHzMa8b2SpXbaowUxQHh7ziymSqvOrPYFQ71Filg==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.110.0.tgz", + "integrity": "sha512-//pJHH7hrhdDMZGBPKXKymmC/tJM7gFT0w/qbu/yd3Wm4W2fMB+8gkmj6EZctx7jrsWlfRQuvFejKqEfapur/g==", "dev": true, "dependencies": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -886,17 +903,17 @@ } }, "node_modules/@aws-sdk/service-error-classification": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.55.0.tgz", - "integrity": "sha512-HdjnDyarsa1Avq1MJurkLyEe9c3eRa76dPmK4TmRGgwJ+tInEzGHL0rBW7V8xBK+PDF+fJQ71hvm8jPYmzvBwQ==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.110.0.tgz", + "integrity": "sha512-ccgCE0pU/4RmXR6CP3fLAdhPAve7bK/yXBbGzpSHGAQOXqNxYzOsAvQ30Jg6X+qjLHsI/HR2pLIE65z4k6tynw==", "engines": { "node": ">= 12.0.0" } }, "node_modules/@aws-sdk/shared-ini-file-loader": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.58.0.tgz", - "integrity": "sha512-ARDKQerIzgNs/MFNdCEuK2lgRJ1lneAaJw0p9O1LkJUvcSibvkSATwny7vwJMueOf+ae1Pf+8+54OMNIt0nTkQ==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.110.0.tgz", + "integrity": "sha512-E1ERoqEoG206XNBYWCKLgHkzCbTxdpDEGbsLET2DnvjFsT0s9p2dPvVux3bYl7JVAhyGduE+qcqWk7MzhFCBNQ==", "dev": true, "dependencies": { "tslib": "^2.3.1" @@ -906,15 +923,15 @@ } }, "node_modules/@aws-sdk/signature-v4": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.58.0.tgz", - "integrity": "sha512-flEo8p3XkzWoBDqnIUQre4jLuT5aLnmfQNI8c2uSjyJ3OBxpJ0iS1cDu3E++d1/pN6Q8o0KOmr2ypHeiyBOujw==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.110.0.tgz", + "integrity": "sha512-utxxdllOnmQDhbpipnFAbuQ4c2pwefZ+2hi48jKvQRULQ2PO4nxLmdZm6B0FXaTijbKsyO7GrMik+EZ6mi3ARQ==", "dev": true, "dependencies": { "@aws-sdk/is-array-buffer": "3.55.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/util-hex-encoding": "3.58.0", - "@aws-sdk/util-middleware": "3.55.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/util-hex-encoding": "3.109.0", + "@aws-sdk/util-middleware": "3.110.0", "@aws-sdk/util-uri-escape": "3.55.0", "tslib": "^2.3.1" }, @@ -923,13 +940,13 @@ } }, "node_modules/@aws-sdk/smithy-client": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.55.0.tgz", - "integrity": "sha512-YgBpqg6R3Qg8CH9biOP1N1lYTvh8VLGD6AoDGgy/R1dQSqRQuxgKANLl3DOVcZnIZLsw4TdB0m7U+ZPtirPR1Q==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.110.0.tgz", + "integrity": "sha512-gNLYrmdAe/1hVF2Nv2LF4OkL1A0a1o708pEMZHzql9xP164omRDaLrGDhz9tH7tsJEgLz+Bf4E8nTuISeDwvGg==", "dev": true, "dependencies": { - "@aws-sdk/middleware-stack": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/middleware-stack": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -937,28 +954,28 @@ } }, "node_modules/@aws-sdk/types": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.55.0.tgz", - "integrity": "sha512-wrDZjuy1CVAYxDCbm3bWQIKMGfNs7XXmG0eG4858Ixgqmq2avsIn5TORy8ynBxcXn9aekV/+tGEQ7BBSYzIVNQ==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.110.0.tgz", + "integrity": "sha512-dLVoqODU3laaqNFPyN1QLtlQnwX4gNPMXptEBIt/iJpuZf66IYJe6WCzVZGt4Zfa1CnUmrlA428AzdcA/KCr2A==", "engines": { "node": ">= 12.0.0" } }, "node_modules/@aws-sdk/url-parser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.55.0.tgz", - "integrity": "sha512-qrTwN5xIgTLreqLnZ+x3cAudjNKfxi6srW1H/px2mk4lb2U9B4fpGjZ6VU+XV8U2kR+YlT8J6Jo5iwuVGfC91A==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.110.0.tgz", + "integrity": "sha512-tILFB8/Q73yzgO0dErJNnELmmBszd0E6FucwAnG3hfDefjqCBe09Q/1yhu2aARXyRmZa4AKp0sWcdwIWHc8dnA==", "dev": true, "dependencies": { - "@aws-sdk/querystring-parser": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/querystring-parser": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/util-base64-browser": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.58.0.tgz", - "integrity": "sha512-0ebsXIZNpu/fup9OgsFPnRKfCFbuuI9PPRzvP6twzLxUB0c/aix6Co7LGHFKcRKHZdaykoJMXArf8eHj2Nzv1Q==", + "version": "3.109.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.109.0.tgz", + "integrity": "sha512-lAZ6fyDGiRLaIsKT9qh7P9FGuNyZ4gAbr1YOSQk/5mHtaTuUvxlPptZuInNM/0MPQm6lpcot00D8IWTucn4PbA==", "dev": true, "dependencies": { "tslib": "^2.3.1" @@ -1012,9 +1029,9 @@ } }, "node_modules/@aws-sdk/util-config-provider": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.55.0.tgz", - "integrity": "sha512-30dzofQQfx6tp1jVZkZ0DGRsT0wwC15nEysKRiAcjncM64A0Cm6sra77d0os3vbKiKoPCI/lMsFr4o3533+qvQ==", + "version": "3.109.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.109.0.tgz", + "integrity": "sha512-GrAZl/aBv0A28LkyNyq8SPJ5fmViCwz80fWLMeWx/6q5AbivuILogjlWwEZSvZ9zrlHOcFC0+AnCa5pQrjaslw==", "dev": true, "dependencies": { "tslib": "^2.3.1" @@ -1024,13 +1041,13 @@ } }, "node_modules/@aws-sdk/util-defaults-mode-browser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.55.0.tgz", - "integrity": "sha512-OS3gAwR84bHz7ObhjsSJM+grfeaBq3leGrj7xiX4BH3C8J+c10GMo3fqx1pV8Fq5F+9lMmhHpfOocD63SN5Q8A==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.110.0.tgz", + "integrity": "sha512-Y2dcOOD20S3bv/IjUqpdKIiDt6995SXNG5Pu/LeSdXNyLCOIm9rX4gHTxl9fC1KK5M/gR9fGJ362f67WwqEEqw==", "dev": true, "dependencies": { - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/types": "3.110.0", "bowser": "^2.11.0", "tslib": "^2.3.1" }, @@ -1039,16 +1056,16 @@ } }, "node_modules/@aws-sdk/util-defaults-mode-node": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.58.0.tgz", - "integrity": "sha512-KNUCp0MXI+z3Z3pQCKDkx3Stdy1TXDjcUB+ZJFxRTJGIuBYwX4fV6G8s/zeFJi5Qv1ztR3CJ9fWJGsrx9mQ5EA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.110.0.tgz", + "integrity": "sha512-Cr3Z5nyrw1KowjbW76xp8hkT/zJtYjAVZ9PS4l84KxIicbVvDOBpxG3yNddkuQcavmlH6G4wH9uM5DcnpKDncg==", "dev": true, "dependencies": { - "@aws-sdk/config-resolver": "3.58.0", - "@aws-sdk/credential-provider-imds": "3.58.0", - "@aws-sdk/node-config-provider": "3.58.0", - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/config-resolver": "3.110.0", + "@aws-sdk/credential-provider-imds": "3.110.0", + "@aws-sdk/node-config-provider": "3.110.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -1056,9 +1073,9 @@ } }, "node_modules/@aws-sdk/util-hex-encoding": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.58.0.tgz", - "integrity": "sha512-Rl+jXUzk/FJkOLYfUVYPhKa2aUmTpeobRP31l8IatQltSzDgLyRHO35f6UEs7Ztn5s1jbu/POatLAZ2WjbgVyg==", + "version": "3.109.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.109.0.tgz", + "integrity": "sha512-s8CgTNrn3cLkrdiohfxLuOYPCanzvHn/aH5RW6DaMoeQiG5Hl9QUiP/WtdQ9QQx3xvpQFpmvxIaSBwSgFNLQxA==", "dev": true, "dependencies": { "tslib": "^2.3.1" @@ -1080,9 +1097,9 @@ } }, "node_modules/@aws-sdk/util-middleware": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.55.0.tgz", - "integrity": "sha512-82fW2XV+rUalv8lkd4VlhpPp6xnXO5n9sckMp1N+TrQ+p8eqxqT0+o8n1/6s9Qsnkw64Y3m6+EfCdc8/uFOY2g==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.110.0.tgz", + "integrity": "sha512-PTVWrI5fA9d5hHJs6RzX2dIS2jRQ3uW073Fm0BePpQeDdZrEk+S5KNwRhUtpN6sdSV45vm6S9rrjZUG51qwGmA==", "dev": true, "dependencies": { "tslib": "^2.3.1" @@ -1104,24 +1121,24 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.58.0.tgz", - "integrity": "sha512-aJpqCvT09giJRg5xFTBDBRAVF0k0yq3OEf6UTuiOVf5azlL2MGp6PJ/xkJp9Z06PuQQkwBJ/2nIQZemo02a5Sw==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.110.0.tgz", + "integrity": "sha512-rNdhmHDMV5dNJctqlBWimkZLJRB+x03DB+61pm+SKSFk6gPIVIvc1WNXqDFphkiswT4vA13ZUkGHzt+N4+noQQ==", "dev": true, "dependencies": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "bowser": "^2.11.0", "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.58.0.tgz", - "integrity": "sha512-VlbY/nzWdN2pfLUHqKvnlGBQ6tEeV4jyK9ggAD2Szjj0bkYvaaKwpBKswQmuJpi5/J2v7Bo4ayBLnqDL7PgzLA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.110.0.tgz", + "integrity": "sha512-OQ915TPCCBwZWz5Np8zkNWn7U6KvrTZfFoCOy/VIemK3dUqmnBZ7HqGpuZx8SwJ2R9JE1x+j0niYSJ5fWJZZKA==", "dev": true, "dependencies": { - "@aws-sdk/node-config-provider": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/node-config-provider": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -1129,18 +1146,18 @@ } }, "node_modules/@aws-sdk/util-utf8-browser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.55.0.tgz", - "integrity": "sha512-ljzqJcyjfJpEVSIAxwtIS8xMRUly84BdjlBXyp6cu4G8TUufgjNS31LWdhyGhgmW5vYBNr+LTz0Kwf6J+ou7Ug==", + "version": "3.109.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.109.0.tgz", + "integrity": "sha512-FmcGSz0v7Bqpl1SE8G1Gc0CtDpug+rvqNCG/szn86JApD/f5x8oByjbEiAyTU2ZH2VevUntx6EW68ulHyH+x+w==", "dev": true, "dependencies": { "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/util-utf8-node": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.55.0.tgz", - "integrity": "sha512-FsFm7GFaC7j0tlPEm/ri8bU2QCwFW5WKjxUg8lm1oWaxplCpKGUsmcfPJ4sw58GIoyoGu4QXBK60oCWosZYYdQ==", + "version": "3.109.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.109.0.tgz", + "integrity": "sha512-Ti/ZBdvz2eSTElsucjzNmzpyg2MwfD1rXmxD0hZuIF8bPON/0+sZYnWd5CbDw9kgmhy28dmKue086tbZ1G0iLQ==", "dev": true, "dependencies": { "@aws-sdk/util-buffer-from": "3.55.0", @@ -1151,13 +1168,13 @@ } }, "node_modules/@aws-sdk/util-waiter": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.55.0.tgz", - "integrity": "sha512-Do34MKPFSC/+zVN6vY+FZ+0WN61hzga4nPoAC590AOjs8rW6/H6sDN6Gz1KAZbPnuQUZfvsIJjMxN7lblXHJkQ==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.110.0.tgz", + "integrity": "sha512-8dE6W6XYfjk1gx/aeb8NeLfMMLkLFhlV1lmKpFSBJhY8msajU8aQahTuykq5JW8QT/wCGbqbu7dH35SdX7kO+A==", "dev": true, "dependencies": { - "@aws-sdk/abort-controller": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/abort-controller": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" }, "engines": { @@ -3899,27 +3916,27 @@ "dev": true }, "node_modules/@types/lodash.clonedeep": { - "version": "4.5.6", - "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.6.tgz", - "integrity": "sha512-cE1jYr2dEg1wBImvXlNtp0xDoS79rfEdGozQVgliDZj1uERH4k+rmEMTudP9b4VQ8O6nRb5gPqft0QzEQGMQgA==", + "version": "4.5.7", + "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.7.tgz", + "integrity": "sha512-ccNqkPptFIXrpVqUECi60/DFxjNKsfoQxSQsgcBJCX/fuX1wgyQieojkcWH/KpE3xzLoWN/2k+ZeGqIN3paSvw==", "dev": true, "dependencies": { "@types/lodash": "*" } }, "node_modules/@types/lodash.merge": { - "version": "4.6.6", - "resolved": "https://registry.npmjs.org/@types/lodash.merge/-/lodash.merge-4.6.6.tgz", - "integrity": "sha512-IB90krzMf7YpfgP3u/EvZEdXVvm4e3gJbUvh5ieuI+o+XqiNEt6fCzqNRaiLlPVScLI59RxIGZMQ3+Ko/DJ8vQ==", + "version": "4.6.7", + "resolved": "https://registry.npmjs.org/@types/lodash.merge/-/lodash.merge-4.6.7.tgz", + "integrity": "sha512-OwxUJ9E50gw3LnAefSHJPHaBLGEKmQBQ7CZe/xflHkyy/wH2zVyEIAKReHvVrrn7zKdF58p16We9kMfh7v0RRQ==", "dev": true, "dependencies": { "@types/lodash": "*" } }, "node_modules/@types/lodash.pickby": { - "version": "4.6.6", - "resolved": "https://registry.npmjs.org/@types/lodash.pickby/-/lodash.pickby-4.6.6.tgz", - "integrity": "sha512-NFa13XxlMd9eFi0UFZFWIztpMpXhozbijrx3Yb1viYZphT7jyopIFVoIRF4eYMjruWNEG1rnyrRmg/8ej9T8Iw==", + "version": "4.6.7", + "resolved": "https://registry.npmjs.org/@types/lodash.pickby/-/lodash.pickby-4.6.7.tgz", + "integrity": "sha512-4ebXRusuLflfscbD0PUX4eVknDHD9Yf+uMtBIvA/hrnTqeAzbuHuDjvnYriLjUrI9YrhCPVKUf4wkRSXJQ6gig==", "dev": true, "dependencies": { "@types/lodash": "*" @@ -3938,9 +3955,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", - "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==" + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -4973,9 +4990,9 @@ } }, "node_modules/aws-xray-sdk-core": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/aws-xray-sdk-core/-/aws-xray-sdk-core-3.3.4.tgz", - "integrity": "sha512-GGnYAQgtclLHIBReOtsUgbDDCar0LR2TaHCWlQhPrEVVayrSAZQ4y+SlXN5YIadxMec4/f5dbF69wMbug9D5Ww==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/aws-xray-sdk-core/-/aws-xray-sdk-core-3.3.6.tgz", + "integrity": "sha512-5pJnix2mNBshzBtVsJxus3YOX2gM8+AirjyAJ0U+4ZkLRAcofNzBJUabZyHZPoVKud/YjEmcRr36bh4T3vOL2A==", "dependencies": { "@aws-sdk/service-error-classification": "^3.4.1", "@aws-sdk/types": "^3.4.1", @@ -4985,7 +5002,7 @@ "semver": "^5.3.0" }, "engines": { - "node": ">= 10.x" + "node": ">= 12.x" } }, "node_modules/aws-xray-sdk-core/node_modules/semver": { @@ -5003,9 +5020,9 @@ "dev": true }, "node_modules/axios": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.1.tgz", - "integrity": "sha512-ePNMai55xo5GsXajb/k756AqZqpqeDaGwGcdvbZLSSELbbYwsIn2jNmGfUPEwd8j/yu4OoMstLLIVa4t0MneEA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dev": true, "dependencies": { "follow-redirects": "^1.14.9", @@ -15525,31 +15542,31 @@ }, "packages/commons": { "name": "@aws-lambda-powertools/commons", - "version": "0.9.1", + "version": "0.10.0", "license": "MIT-0" }, "packages/logger": { "name": "@aws-lambda-powertools/logger", - "version": "0.9.1", + "version": "0.10.0", "license": "MIT", "dependencies": { - "@aws-lambda-powertools/commons": "^0.9.1", + "@aws-lambda-powertools/commons": "^0.10.0", "lodash.clonedeep": "^4.5.0", "lodash.merge": "^4.6.2", "lodash.pickby": "^4.6.0" }, "devDependencies": { - "@types/lodash.clonedeep": "^4.5.6", - "@types/lodash.merge": "^4.6.6", - "@types/lodash.pickby": "^4.6.6" + "@types/lodash.clonedeep": "^4.5.7", + "@types/lodash.merge": "^4.6.7", + "@types/lodash.pickby": "^4.6.7" } }, "packages/metrics": { "name": "@aws-lambda-powertools/metrics", - "version": "0.9.1", + "version": "0.10.0", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "^0.9.1" + "@aws-lambda-powertools/commons": "^0.10.0" }, "devDependencies": { "@types/promise-retry": "^1.1.3", @@ -15558,16 +15575,16 @@ }, "packages/tracer": { "name": "@aws-lambda-powertools/tracer", - "version": "0.9.1", + "version": "0.10.0", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "^0.9.1", - "aws-xray-sdk-core": "^3.3.4" + "@aws-lambda-powertools/commons": "^0.10.0", + "aws-xray-sdk-core": "^3.3.6" }, "devDependencies": { - "@aws-sdk/client-dynamodb": "^3.58.0", + "@aws-sdk/client-dynamodb": "^3.100.0", "@types/promise-retry": "^1.1.3", - "axios": "^0.27.1", + "axios": "^0.27.2", "promise-retry": "^2.0.1" } } @@ -15788,10 +15805,10 @@ "@aws-lambda-powertools/logger": { "version": "file:packages/logger", "requires": { - "@aws-lambda-powertools/commons": "^0.9.1", - "@types/lodash.clonedeep": "^4.5.6", - "@types/lodash.merge": "^4.6.6", - "@types/lodash.pickby": "^4.6.6", + "@aws-lambda-powertools/commons": "^0.10.0", + "@types/lodash.clonedeep": "^4.5.7", + "@types/lodash.merge": "^4.6.7", + "@types/lodash.pickby": "^4.6.7", "lodash.clonedeep": "^4.5.0", "lodash.merge": "^4.6.2", "lodash.pickby": "^4.6.0" @@ -15800,7 +15817,7 @@ "@aws-lambda-powertools/metrics": { "version": "file:packages/metrics", "requires": { - "@aws-lambda-powertools/commons": "^0.9.1", + "@aws-lambda-powertools/commons": "^0.10.0", "@types/promise-retry": "^1.1.3", "promise-retry": "^2.0.1" } @@ -15808,253 +15825,256 @@ "@aws-lambda-powertools/tracer": { "version": "file:packages/tracer", "requires": { - "@aws-lambda-powertools/commons": "^0.9.1", - "@aws-sdk/client-dynamodb": "^3.58.0", + "@aws-lambda-powertools/commons": "^0.10.0", + "@aws-sdk/client-dynamodb": "^3.100.0", "@types/promise-retry": "^1.1.3", - "aws-xray-sdk-core": "^3.3.4", - "axios": "^0.27.1", + "aws-xray-sdk-core": "^3.3.6", + "axios": "^0.27.2", "promise-retry": "^2.0.1" } }, "@aws-sdk/abort-controller": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.55.0.tgz", - "integrity": "sha512-rCcTxJDEFnmvo/PgbhCRv24/Uv03lEGfRslKZq7SjaMcOubflS/ZXYaMEgsjYHgAT0zlpSsyCIkJXmhFaM7H7w==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.110.0.tgz", + "integrity": "sha512-zok/WEVuK7Jh6V9YeA56pNZtxUASon9LTkS7vE65A4UFmNkPGNBCNgoiBcbhWfxwrZ8wtXcQk6rtUut39831mA==", "dev": true, "requires": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/client-dynamodb": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.58.0.tgz", - "integrity": "sha512-54uclCvSVREutcty19NqfzC5V/0ebYSz51lz5jQpHYObP2uUAKOunTAWx1lnWACZ9U9Ka6SHWN/NhKFXeMKwgw==", + "version": "3.113.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.113.0.tgz", + "integrity": "sha512-tp0/smnSBqoPdSbZqRaH46S9cDkOMXsbG8Qph+gV3+SL+V3nJLeGFzA+3WPmF0l0Bnv0/9Tms4ySZB0MsBSy/A==", "dev": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.58.0", - "@aws-sdk/config-resolver": "3.58.0", - "@aws-sdk/credential-provider-node": "3.58.0", - "@aws-sdk/fetch-http-handler": "3.58.0", - "@aws-sdk/hash-node": "3.55.0", - "@aws-sdk/invalid-dependency": "3.55.0", - "@aws-sdk/middleware-content-length": "3.58.0", - "@aws-sdk/middleware-endpoint-discovery": "3.58.0", - "@aws-sdk/middleware-host-header": "3.58.0", - "@aws-sdk/middleware-logger": "3.55.0", - "@aws-sdk/middleware-retry": "3.58.0", - "@aws-sdk/middleware-serde": "3.55.0", - "@aws-sdk/middleware-signing": "3.58.0", - "@aws-sdk/middleware-stack": "3.55.0", - "@aws-sdk/middleware-user-agent": "3.58.0", - "@aws-sdk/node-config-provider": "3.58.0", - "@aws-sdk/node-http-handler": "3.58.0", - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/smithy-client": "3.55.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/url-parser": "3.55.0", - "@aws-sdk/util-base64-browser": "3.58.0", + "@aws-sdk/client-sts": "3.112.0", + "@aws-sdk/config-resolver": "3.110.0", + "@aws-sdk/credential-provider-node": "3.112.0", + "@aws-sdk/fetch-http-handler": "3.110.0", + "@aws-sdk/hash-node": "3.110.0", + "@aws-sdk/invalid-dependency": "3.110.0", + "@aws-sdk/middleware-content-length": "3.110.0", + "@aws-sdk/middleware-endpoint-discovery": "3.110.0", + "@aws-sdk/middleware-host-header": "3.110.0", + "@aws-sdk/middleware-logger": "3.110.0", + "@aws-sdk/middleware-recursion-detection": "3.110.0", + "@aws-sdk/middleware-retry": "3.110.0", + "@aws-sdk/middleware-serde": "3.110.0", + "@aws-sdk/middleware-signing": "3.110.0", + "@aws-sdk/middleware-stack": "3.110.0", + "@aws-sdk/middleware-user-agent": "3.110.0", + "@aws-sdk/node-config-provider": "3.110.0", + "@aws-sdk/node-http-handler": "3.110.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/smithy-client": "3.110.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/url-parser": "3.110.0", + "@aws-sdk/util-base64-browser": "3.109.0", "@aws-sdk/util-base64-node": "3.55.0", "@aws-sdk/util-body-length-browser": "3.55.0", "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.55.0", - "@aws-sdk/util-defaults-mode-node": "3.58.0", - "@aws-sdk/util-user-agent-browser": "3.58.0", - "@aws-sdk/util-user-agent-node": "3.58.0", - "@aws-sdk/util-utf8-browser": "3.55.0", - "@aws-sdk/util-utf8-node": "3.55.0", - "@aws-sdk/util-waiter": "3.55.0", + "@aws-sdk/util-defaults-mode-browser": "3.110.0", + "@aws-sdk/util-defaults-mode-node": "3.110.0", + "@aws-sdk/util-user-agent-browser": "3.110.0", + "@aws-sdk/util-user-agent-node": "3.110.0", + "@aws-sdk/util-utf8-browser": "3.109.0", + "@aws-sdk/util-utf8-node": "3.109.0", + "@aws-sdk/util-waiter": "3.110.0", "tslib": "^2.3.1", "uuid": "^8.3.2" } }, "@aws-sdk/client-sso": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.58.0.tgz", - "integrity": "sha512-nS5G/OX8Bg4ajBa6+jLcbbr4PpEO+l5eJfGUzoJQwS4Zqa0lF/wC0kyjKm61gLp4JuvhrQskxIC/3IXUqB1XVQ==", + "version": "3.112.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.112.0.tgz", + "integrity": "sha512-FwFmiapxuVQiyMdDaBvCpajnJkVWEUHBdO+7rIpzgKHkODEPou5/AwboaGRPEFYULOyYeI0HiDFzpK0G6de+7Q==", "dev": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.58.0", - "@aws-sdk/fetch-http-handler": "3.58.0", - "@aws-sdk/hash-node": "3.55.0", - "@aws-sdk/invalid-dependency": "3.55.0", - "@aws-sdk/middleware-content-length": "3.58.0", - "@aws-sdk/middleware-host-header": "3.58.0", - "@aws-sdk/middleware-logger": "3.55.0", - "@aws-sdk/middleware-retry": "3.58.0", - "@aws-sdk/middleware-serde": "3.55.0", - "@aws-sdk/middleware-stack": "3.55.0", - "@aws-sdk/middleware-user-agent": "3.58.0", - "@aws-sdk/node-config-provider": "3.58.0", - "@aws-sdk/node-http-handler": "3.58.0", - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/smithy-client": "3.55.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/url-parser": "3.55.0", - "@aws-sdk/util-base64-browser": "3.58.0", + "@aws-sdk/config-resolver": "3.110.0", + "@aws-sdk/fetch-http-handler": "3.110.0", + "@aws-sdk/hash-node": "3.110.0", + "@aws-sdk/invalid-dependency": "3.110.0", + "@aws-sdk/middleware-content-length": "3.110.0", + "@aws-sdk/middleware-host-header": "3.110.0", + "@aws-sdk/middleware-logger": "3.110.0", + "@aws-sdk/middleware-recursion-detection": "3.110.0", + "@aws-sdk/middleware-retry": "3.110.0", + "@aws-sdk/middleware-serde": "3.110.0", + "@aws-sdk/middleware-stack": "3.110.0", + "@aws-sdk/middleware-user-agent": "3.110.0", + "@aws-sdk/node-config-provider": "3.110.0", + "@aws-sdk/node-http-handler": "3.110.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/smithy-client": "3.110.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/url-parser": "3.110.0", + "@aws-sdk/util-base64-browser": "3.109.0", "@aws-sdk/util-base64-node": "3.55.0", "@aws-sdk/util-body-length-browser": "3.55.0", "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.55.0", - "@aws-sdk/util-defaults-mode-node": "3.58.0", - "@aws-sdk/util-user-agent-browser": "3.58.0", - "@aws-sdk/util-user-agent-node": "3.58.0", - "@aws-sdk/util-utf8-browser": "3.55.0", - "@aws-sdk/util-utf8-node": "3.55.0", + "@aws-sdk/util-defaults-mode-browser": "3.110.0", + "@aws-sdk/util-defaults-mode-node": "3.110.0", + "@aws-sdk/util-user-agent-browser": "3.110.0", + "@aws-sdk/util-user-agent-node": "3.110.0", + "@aws-sdk/util-utf8-browser": "3.109.0", + "@aws-sdk/util-utf8-node": "3.109.0", "tslib": "^2.3.1" } }, "@aws-sdk/client-sts": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.58.0.tgz", - "integrity": "sha512-2cHZsG2eXv/Zl0hvsG9+rdHEuAclMFfkma/3LC3RRwSuZXo1rXoIhFkzHfGfIbivdk738YAo7FT3ZYGlrsK4ow==", + "version": "3.112.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.112.0.tgz", + "integrity": "sha512-hSApRO2wg3jk9VRGM6SCZO3aFP7DKVSUqs6FrvlXlj+JU88ZKObjrGE61cCzXoD89Dh+b9t8A2T6W51Nzriaxw==", "dev": true, "requires": { "@aws-crypto/sha256-browser": "2.0.0", "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.58.0", - "@aws-sdk/credential-provider-node": "3.58.0", - "@aws-sdk/fetch-http-handler": "3.58.0", - "@aws-sdk/hash-node": "3.55.0", - "@aws-sdk/invalid-dependency": "3.55.0", - "@aws-sdk/middleware-content-length": "3.58.0", - "@aws-sdk/middleware-host-header": "3.58.0", - "@aws-sdk/middleware-logger": "3.55.0", - "@aws-sdk/middleware-retry": "3.58.0", - "@aws-sdk/middleware-sdk-sts": "3.58.0", - "@aws-sdk/middleware-serde": "3.55.0", - "@aws-sdk/middleware-signing": "3.58.0", - "@aws-sdk/middleware-stack": "3.55.0", - "@aws-sdk/middleware-user-agent": "3.58.0", - "@aws-sdk/node-config-provider": "3.58.0", - "@aws-sdk/node-http-handler": "3.58.0", - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/smithy-client": "3.55.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/url-parser": "3.55.0", - "@aws-sdk/util-base64-browser": "3.58.0", + "@aws-sdk/config-resolver": "3.110.0", + "@aws-sdk/credential-provider-node": "3.112.0", + "@aws-sdk/fetch-http-handler": "3.110.0", + "@aws-sdk/hash-node": "3.110.0", + "@aws-sdk/invalid-dependency": "3.110.0", + "@aws-sdk/middleware-content-length": "3.110.0", + "@aws-sdk/middleware-host-header": "3.110.0", + "@aws-sdk/middleware-logger": "3.110.0", + "@aws-sdk/middleware-recursion-detection": "3.110.0", + "@aws-sdk/middleware-retry": "3.110.0", + "@aws-sdk/middleware-sdk-sts": "3.110.0", + "@aws-sdk/middleware-serde": "3.110.0", + "@aws-sdk/middleware-signing": "3.110.0", + "@aws-sdk/middleware-stack": "3.110.0", + "@aws-sdk/middleware-user-agent": "3.110.0", + "@aws-sdk/node-config-provider": "3.110.0", + "@aws-sdk/node-http-handler": "3.110.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/smithy-client": "3.110.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/url-parser": "3.110.0", + "@aws-sdk/util-base64-browser": "3.109.0", "@aws-sdk/util-base64-node": "3.55.0", "@aws-sdk/util-body-length-browser": "3.55.0", "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.55.0", - "@aws-sdk/util-defaults-mode-node": "3.58.0", - "@aws-sdk/util-user-agent-browser": "3.58.0", - "@aws-sdk/util-user-agent-node": "3.58.0", - "@aws-sdk/util-utf8-browser": "3.55.0", - "@aws-sdk/util-utf8-node": "3.55.0", + "@aws-sdk/util-defaults-mode-browser": "3.110.0", + "@aws-sdk/util-defaults-mode-node": "3.110.0", + "@aws-sdk/util-user-agent-browser": "3.110.0", + "@aws-sdk/util-user-agent-node": "3.110.0", + "@aws-sdk/util-utf8-browser": "3.109.0", + "@aws-sdk/util-utf8-node": "3.109.0", "entities": "2.2.0", "fast-xml-parser": "3.19.0", "tslib": "^2.3.1" } }, "@aws-sdk/config-resolver": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.58.0.tgz", - "integrity": "sha512-NXEwYw0JrXcvenu42QpNMQXK+6pgZ+6bDGfCgOfCC0FmyI+w/CuF36lApwm7InHvHazOaDlwArXm2pfntErKoA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.110.0.tgz", + "integrity": "sha512-7VvtKy4CL63BAktQ2vgsjhWDSXpkXO5YdiI56LQnHztrvSuJBBaxJ7R1p/k0b2tEUhYKUziAIW8EKE/7EGPR4g==", "dev": true, "requires": { - "@aws-sdk/signature-v4": "3.58.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/util-config-provider": "3.55.0", - "@aws-sdk/util-middleware": "3.55.0", + "@aws-sdk/signature-v4": "3.110.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/util-config-provider": "3.109.0", + "@aws-sdk/util-middleware": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-env": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.55.0.tgz", - "integrity": "sha512-4AIIXEdvinLlWNFtrUbUgoB7dkuV04RTcTruVWI4Ub4WSsuSCa72ZU1vqyvcEAOgGGLBmcSaGTWByjiD2sGcGA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.110.0.tgz", + "integrity": "sha512-oFU3IYk/Bl5tdsz1qigtm3I25a9cvXPqlE8VjYjxVDdLujF5zd/4HLbhP4GQWhpEwZmM1ijcSNfLcyywVevTZg==", "dev": true, "requires": { - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-imds": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.58.0.tgz", - "integrity": "sha512-CdtnTQ9zqLx1FbXdbgjijLbMcIWOyQM03TFaLSCjI3FNbUwyt3T7StBU9tj/LtbypHhSdXyQBpzUtXTOMWCEhg==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.110.0.tgz", + "integrity": "sha512-atl+7/dAB+8fG9XI2fYyCgXKYDbOzot65VAwis+14bOEUCVp7PCJifBEZ/L8GEq564p+Fa2p1IpV0wuQXxqFUQ==", "dev": true, "requires": { - "@aws-sdk/node-config-provider": "3.58.0", - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/url-parser": "3.55.0", + "@aws-sdk/node-config-provider": "3.110.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/url-parser": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-ini": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.58.0.tgz", - "integrity": "sha512-uM62hcHUVaHP1YFnbrjf2RlrRj1m/BvMPE+T5jdNRWdE3lvnunhEMawB26HZs9nQqCV6d25I8G9/fGWVL7g3Og==", - "dev": true, - "requires": { - "@aws-sdk/credential-provider-env": "3.55.0", - "@aws-sdk/credential-provider-imds": "3.58.0", - "@aws-sdk/credential-provider-sso": "3.58.0", - "@aws-sdk/credential-provider-web-identity": "3.55.0", - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/shared-ini-file-loader": "3.58.0", - "@aws-sdk/types": "3.55.0", + "version": "3.112.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.112.0.tgz", + "integrity": "sha512-ebgZ6/jZdTGHQ3zfq/ccmS+7YmLk6yUWHDmh69VK+B1Dd+S1jFwbD9EQ+pYWCp/gEl9F620NSwb6KghRylPWEQ==", + "dev": true, + "requires": { + "@aws-sdk/credential-provider-env": "3.110.0", + "@aws-sdk/credential-provider-imds": "3.110.0", + "@aws-sdk/credential-provider-sso": "3.112.0", + "@aws-sdk/credential-provider-web-identity": "3.110.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/shared-ini-file-loader": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-node": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.58.0.tgz", - "integrity": "sha512-f0wzcgMYCQUrii6TLP2ggCxkQP4HH8PW8tbbWEgt4cdIXcjE9KEuxN5yOV6sFHzL3eJh0QM9Yaz8WzhWn6fT2A==", - "dev": true, - "requires": { - "@aws-sdk/credential-provider-env": "3.55.0", - "@aws-sdk/credential-provider-imds": "3.58.0", - "@aws-sdk/credential-provider-ini": "3.58.0", - "@aws-sdk/credential-provider-process": "3.58.0", - "@aws-sdk/credential-provider-sso": "3.58.0", - "@aws-sdk/credential-provider-web-identity": "3.55.0", - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/shared-ini-file-loader": "3.58.0", - "@aws-sdk/types": "3.55.0", + "version": "3.112.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.112.0.tgz", + "integrity": "sha512-7txS7P3BAaU4cksFw/PnoVskVvO8h/TPvOl/BxFtCiUdwA6FRltLvBeMlN08fwUoqgM6z06q8areBdeDqCHOSw==", + "dev": true, + "requires": { + "@aws-sdk/credential-provider-env": "3.110.0", + "@aws-sdk/credential-provider-imds": "3.110.0", + "@aws-sdk/credential-provider-ini": "3.112.0", + "@aws-sdk/credential-provider-process": "3.110.0", + "@aws-sdk/credential-provider-sso": "3.112.0", + "@aws-sdk/credential-provider-web-identity": "3.110.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/shared-ini-file-loader": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-process": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.58.0.tgz", - "integrity": "sha512-npgFqPUjMhUamf1FvJjBYUdpbWx8XWkKCwJsX73I7IYQAvAi2atCOkdtKq+4rds0VWAYu6vzlaI1tXgFxjOPNQ==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.110.0.tgz", + "integrity": "sha512-JJcZePvRTfQHYj/+EEY13yItnZH/e8exlARFUjN0L13UrgHpOJtDQBa+YBHXo6MbTFQh+re25z2kzc+zOYSMNQ==", "dev": true, "requires": { - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/shared-ini-file-loader": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/shared-ini-file-loader": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-sso": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.58.0.tgz", - "integrity": "sha512-2qO34s9lJqvCC6zOF4UpopW6xURZpYfVC8xTUDpAUnvTOt4nS5hkx4vNyqPAXILoRHuFJsnlWsBH1UP5ZnBiZg==", + "version": "3.112.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.112.0.tgz", + "integrity": "sha512-b6rOrSXbNK3fGyPvNpyF5zdktmAoNOqHCTmFSUcxRxOipyRGb5JACsbjWthIQkpWkpNCT8GFNLEg9spXPFIdLA==", "dev": true, "requires": { - "@aws-sdk/client-sso": "3.58.0", - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/shared-ini-file-loader": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/client-sso": "3.112.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/shared-ini-file-loader": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/credential-provider-web-identity": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.55.0.tgz", - "integrity": "sha512-aKnXfZNGohTuF9rCGYLg4JEIOvWIZ/sb66XMq7bOUrx13KRPDwL/eUQL8quS5jGRLpjXVNvrS17AFf65GbdUBg==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.110.0.tgz", + "integrity": "sha512-e4e5u7v3fsUFZsMcFMhMy1NdJBQpunYcLwpYlszm3OEICwTTekQ+hVvnVRd134doHvzepE4yp9sAop0Cj+IRVQ==", "dev": true, "requires": { - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, @@ -16069,36 +16089,36 @@ } }, "@aws-sdk/fetch-http-handler": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.58.0.tgz", - "integrity": "sha512-timF3FjPV5Bd+Kgph83LIKVlPCFObVYzious1a6doeLAT6YFwZpRrWbfP/HzS+DCoYiwUsH69oVJ91BoV66oyA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.110.0.tgz", + "integrity": "sha512-vk+K4GeCZL2J2rtvKO+T0Q7i3MDpEGZBMg5K2tj9sMcEQwty0BF0aFnP7Eu2l4/Zif2z1mWuUFM2WcZI6DVnbw==", "dev": true, "requires": { - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/querystring-builder": "3.55.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/util-base64-browser": "3.58.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/querystring-builder": "3.110.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/util-base64-browser": "3.109.0", "tslib": "^2.3.1" } }, "@aws-sdk/hash-node": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.55.0.tgz", - "integrity": "sha512-2UdYwY/++AlzWEAFaK9wOed2QSxbzV527vmqKjReLHpPKPrSIlooUxlTH3LU6Y6WVDAzDRtLK43KUVXTLgGK1A==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.110.0.tgz", + "integrity": "sha512-wakl+kP2O8wTGYiQ3InZy+CVfGrIpFfq9fo4zif9PZac0BbUbguUU1dkY34uZiaf+4o2/9MoDYrHU2HYeXKxWw==", "dev": true, "requires": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "@aws-sdk/util-buffer-from": "3.55.0", "tslib": "^2.3.1" } }, "@aws-sdk/invalid-dependency": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.55.0.tgz", - "integrity": "sha512-delH0lV+78fdD/8MXIt9kTLS6IwHvdhqq9dw/ow5VjTUw+xBwUlfPfZplaai+3hKTKWh6a2WZCeDasNItBv9aA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.110.0.tgz", + "integrity": "sha512-O8J1InmtJkoiUMbQDtxBfOzgigBp9iSVsNXQrhs2qHh3826cJOfE7NGT3u+NMw73Pk5j2cfmOh1+7k/76IqxOg==", "dev": true, "requires": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, @@ -16112,246 +16132,257 @@ } }, "@aws-sdk/middleware-content-length": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.58.0.tgz", - "integrity": "sha512-h/BypPkhjv2CpCUbXA8Fa2s7V2GPiz9l11XhYK+sKSuQvQ7Lbq6VhaKaLqfeD3gLVZHgJZSLGl2btdHV1qHNNA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.110.0.tgz", + "integrity": "sha512-hKU+zdqfAJQg22LXMVu/z35nNIHrVAKpVKPe9+WYVdL/Z7JKUPK7QymqKGOyDuDbzW6OxyulC1zKGEX12zGmdA==", "dev": true, "requires": { - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-endpoint-discovery": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.58.0.tgz", - "integrity": "sha512-Ll42zMPP8dDTHesv5VdnM0vgT4mW+kR2SgXCWBMuwnZdBn0FDH1A3E0BqJkLuuq2TKIah0/l1sA1qVC68GkAeA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.110.0.tgz", + "integrity": "sha512-GUnNcuEBqD21E8EgevTcaBXJGnH5dp7eDSfWceYJP+iSscFXLzFFOf1I6H0cwvfARVMHVvlFz0tQcojCSHUZig==", "dev": true, "requires": { - "@aws-sdk/config-resolver": "3.58.0", + "@aws-sdk/config-resolver": "3.110.0", "@aws-sdk/endpoint-cache": "3.55.0", - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-host-header": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.58.0.tgz", - "integrity": "sha512-q/UKGcanm9e6DBRNN6UKhVqLvpRRdZWbmmPCeDNr4HqhCmgT6i1OvWdhAMOnT++hvCX8DpTsIXzNSlY6zWAxBg==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.110.0.tgz", + "integrity": "sha512-/Cknn1vL2LTlclI0MX2RzmtdPlCJ5palCRXxm/mod1oHwg4oNTKRlUX3LUD+L8g7JuJ4h053Ch9KS/A0vanE5Q==", "dev": true, "requires": { - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-logger": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.55.0.tgz", - "integrity": "sha512-PtRbVrxEzDmeV9prBIP4/9or7R5Dj66mjbFSvNRGZ0n+UBfBFfVRfNrhQPNzQpfV9A3KVl9YyWCVXDSW+/rk9Q==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.110.0.tgz", + "integrity": "sha512-+pz+a+8dfTnzLj79nHrv3aONMp/N36/erMd+7JXeR84QEosVLrFBUwKA8x5x6O3s1iBbQzRKMYEIuja9xn1BPA==", "dev": true, "requires": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", + "tslib": "^2.3.1" + } + }, + "@aws-sdk/middleware-recursion-detection": { + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.110.0.tgz", + "integrity": "sha512-Wav782zd7bcd1e6txRob76CDOdVOaUQ8HXoywiIm/uFrEEUZvhs2mgnXjVUVCMBUehdNgnL99z420aS13JeL/Q==", + "dev": true, + "requires": { + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-retry": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.58.0.tgz", - "integrity": "sha512-sfSq+t0Yy47DQwrWGpA8iOx9sd26l4l1JDVTwHNi7+OKD4ClRPVCEdw3bTbbyYz/PV4f9AEfAZ6jwtSff4wkGw==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.110.0.tgz", + "integrity": "sha512-lwLAQQveCiUqymQvVYjCee6QOXw3Zqbc9yq+pxYdXbs1Cv1XMA6PeJeUU5r5KEVuSceBLyyrnl6E0R1l1om1MQ==", "dev": true, "requires": { - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/service-error-classification": "3.55.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/util-middleware": "3.55.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/service-error-classification": "3.110.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/util-middleware": "3.110.0", "tslib": "^2.3.1", "uuid": "^8.3.2" } }, "@aws-sdk/middleware-sdk-sts": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.58.0.tgz", - "integrity": "sha512-HUz7MhcsSDDTGygOwL61l4voc0pZco06J3z06JjTX19D5XxcQ7hSCtkHHHz0oMb9M1himVSiEon2tjhjsnB99g==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.110.0.tgz", + "integrity": "sha512-EjY/YFdlr5jECde6qIrTIyGBbn/34CKcQGKvmvRd31+3qaClIJLAwNuHfcVzWvCUGbAslsfvdbOpLju33pSQRA==", "dev": true, "requires": { - "@aws-sdk/middleware-signing": "3.58.0", - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/signature-v4": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/middleware-signing": "3.110.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/signature-v4": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-serde": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.55.0.tgz", - "integrity": "sha512-NkEbTDrSZcC2NhuvfjXHKJEl0xgI2B5tMAwi/rMOq/TEnARwVUL9qAy+5lgeiPCqebiNllWatARrFgAaYf0VeA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.110.0.tgz", + "integrity": "sha512-brVupxgEAmcZ9cZvdHEH8zncjvGKIiud8pOe4fiimp5NpHmjBLew4jUbnOKNZNAjaidcKUtz//cxtutD6yXEww==", "dev": true, "requires": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-signing": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.58.0.tgz", - "integrity": "sha512-4FXubHB66GbhyZUlo6YPQoWpYfED15GNbEmHbJLSONzrVzZR3IkViSPLasDngVm1a050JqKuqNkFYGJBP4No/Q==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.110.0.tgz", + "integrity": "sha512-y6ZKrGYfgDlFMzWhZmoq5J1UctBgZOUvMmnU9sSeZ020IlEPiOxFMvR0Zu6TcYThp8uy3P0wyjQtGYeTl9Z/kA==", "dev": true, "requires": { - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/signature-v4": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/signature-v4": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/middleware-stack": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.55.0.tgz", - "integrity": "sha512-ouD+wFz8W2R0ZQ8HrbhgN8tg1jyINEg9lPEEXY79w1Q5sf94LJ90XKAMVk02rw3dJalUWjLHf0OQe1/qxZfHyA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.110.0.tgz", + "integrity": "sha512-iaLHw6ctOuGa9UxNueU01Xes+15dR+mqioRpUOUZ9Zx+vhXVpD7C8lnNqhRnYeFXs10/rNIzASgsIrAHTlnlIQ==", "dev": true, "requires": { "tslib": "^2.3.1" } }, "@aws-sdk/middleware-user-agent": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.58.0.tgz", - "integrity": "sha512-1c69bIWM63JwXijXvb9IWwcwQ/gViKMZ1lhxv52NvdG5VSxWXXsFJ2jETEXZoAypwT97Hmf3xo9SYuaHcKoq+g==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.110.0.tgz", + "integrity": "sha512-Y6FgiZr99DilYq6AjeaaWcNwVlSQpNGKrILzvV4Tmz03OaBIspe4KL+8EZ2YA/sAu5Lpw80vItdezqDOwGAlnQ==", "dev": true, "requires": { - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/node-config-provider": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.58.0.tgz", - "integrity": "sha512-AMcPqPhKxo/3/yOMS9PsKlI0GWp2/8eD6gSlhzdBpznPCKplyqXOSnSX7wS814Cyh373hFSjCaOrCOA9/EYtDg==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.110.0.tgz", + "integrity": "sha512-46p4dCPGYctuybTQTwLpjenA1QFHeyJw/OyggGbtUJUy+833+ldnAwcPVML2aXJKUKv3APGI8vq1kaloyNku3Q==", "dev": true, "requires": { - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/shared-ini-file-loader": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/shared-ini-file-loader": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/node-http-handler": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.58.0.tgz", - "integrity": "sha512-D9xVZG2nfo4GbPsby3JuBiAhpqXTFk1+CfuQU0AZv0gQvE3fFTCnB3za83jo7JV/pyRPU+s+/LHIpxCWUHzStg==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.110.0.tgz", + "integrity": "sha512-/rP+hY516DpP8fZhwFW5xM/ElH0w6lxw/15VvZCoY5EnOLAF5XIsJdzscWPSEW2FHCylBM4SNrKhGar14BDXhA==", "dev": true, "requires": { - "@aws-sdk/abort-controller": "3.55.0", - "@aws-sdk/protocol-http": "3.58.0", - "@aws-sdk/querystring-builder": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/abort-controller": "3.110.0", + "@aws-sdk/protocol-http": "3.110.0", + "@aws-sdk/querystring-builder": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/property-provider": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.55.0.tgz", - "integrity": "sha512-o7cKFJSHq5WOhwPsspYrzNto35oKKZvESZuWDtLxaZKSI6l7zpA366BI4kDG6Tc9i2+teV553MbxyZ9eya5A8g==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.110.0.tgz", + "integrity": "sha512-7NkpmYeOkK3mhWBNU+/zSDqwzeaSPH1qrq4L//WV7WS/weYyE/jusQeZoOxVsuZQnQEXHt5O2hKVeUwShl12xA==", "dev": true, "requires": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/protocol-http": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.58.0.tgz", - "integrity": "sha512-0yFFRPbR+CCa9eOQBBQ2qtrIDLYqSMN0y7G4iqVM8wQdIw7n3QK1PsTI3RNPGJ3Oi2krFTw5uUKqQQZPZEBuVQ==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.110.0.tgz", + "integrity": "sha512-qdi2gCbJiyPyLn+afebPNp/5nVCRh1X7t7IRIFl3FHVEC+o54u/ojay/MLZ4M/+X9Fa4Zxsb0Wpp3T0xAHVDBg==", "dev": true, "requires": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/querystring-builder": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.55.0.tgz", - "integrity": "sha512-/ZAXNipt9nRR8k+eowwukE/YjXnQ49p5w/MkaQxsBk3IuIf7MAcgVg8glHr0igH84GfUQ7ZVP8v+G2S3tKUG+Q==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.110.0.tgz", + "integrity": "sha512-7V3CDXj519izmbBn9ZE68ymASwGriA+Aq+cb/yHSVtffnvXjPtvONNw7G/5iVblisGLSCUe2hSvpYtcaXozbHw==", "dev": true, "requires": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "@aws-sdk/util-uri-escape": "3.55.0", "tslib": "^2.3.1" } }, "@aws-sdk/querystring-parser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.55.0.tgz", - "integrity": "sha512-e+2FLgo+eDx7oh7ap5HngN9XSVMxredAVztLHxCcSN0lFHHHzMa8b2SpXbaowUxQHh7ziymSqvOrPYFQ71Filg==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.110.0.tgz", + "integrity": "sha512-//pJHH7hrhdDMZGBPKXKymmC/tJM7gFT0w/qbu/yd3Wm4W2fMB+8gkmj6EZctx7jrsWlfRQuvFejKqEfapur/g==", "dev": true, "requires": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/service-error-classification": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.55.0.tgz", - "integrity": "sha512-HdjnDyarsa1Avq1MJurkLyEe9c3eRa76dPmK4TmRGgwJ+tInEzGHL0rBW7V8xBK+PDF+fJQ71hvm8jPYmzvBwQ==" + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.110.0.tgz", + "integrity": "sha512-ccgCE0pU/4RmXR6CP3fLAdhPAve7bK/yXBbGzpSHGAQOXqNxYzOsAvQ30Jg6X+qjLHsI/HR2pLIE65z4k6tynw==" }, "@aws-sdk/shared-ini-file-loader": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.58.0.tgz", - "integrity": "sha512-ARDKQerIzgNs/MFNdCEuK2lgRJ1lneAaJw0p9O1LkJUvcSibvkSATwny7vwJMueOf+ae1Pf+8+54OMNIt0nTkQ==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.110.0.tgz", + "integrity": "sha512-E1ERoqEoG206XNBYWCKLgHkzCbTxdpDEGbsLET2DnvjFsT0s9p2dPvVux3bYl7JVAhyGduE+qcqWk7MzhFCBNQ==", "dev": true, "requires": { "tslib": "^2.3.1" } }, "@aws-sdk/signature-v4": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.58.0.tgz", - "integrity": "sha512-flEo8p3XkzWoBDqnIUQre4jLuT5aLnmfQNI8c2uSjyJ3OBxpJ0iS1cDu3E++d1/pN6Q8o0KOmr2ypHeiyBOujw==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.110.0.tgz", + "integrity": "sha512-utxxdllOnmQDhbpipnFAbuQ4c2pwefZ+2hi48jKvQRULQ2PO4nxLmdZm6B0FXaTijbKsyO7GrMik+EZ6mi3ARQ==", "dev": true, "requires": { "@aws-sdk/is-array-buffer": "3.55.0", - "@aws-sdk/types": "3.55.0", - "@aws-sdk/util-hex-encoding": "3.58.0", - "@aws-sdk/util-middleware": "3.55.0", + "@aws-sdk/types": "3.110.0", + "@aws-sdk/util-hex-encoding": "3.109.0", + "@aws-sdk/util-middleware": "3.110.0", "@aws-sdk/util-uri-escape": "3.55.0", "tslib": "^2.3.1" } }, "@aws-sdk/smithy-client": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.55.0.tgz", - "integrity": "sha512-YgBpqg6R3Qg8CH9biOP1N1lYTvh8VLGD6AoDGgy/R1dQSqRQuxgKANLl3DOVcZnIZLsw4TdB0m7U+ZPtirPR1Q==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.110.0.tgz", + "integrity": "sha512-gNLYrmdAe/1hVF2Nv2LF4OkL1A0a1o708pEMZHzql9xP164omRDaLrGDhz9tH7tsJEgLz+Bf4E8nTuISeDwvGg==", "dev": true, "requires": { - "@aws-sdk/middleware-stack": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/middleware-stack": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/types": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.55.0.tgz", - "integrity": "sha512-wrDZjuy1CVAYxDCbm3bWQIKMGfNs7XXmG0eG4858Ixgqmq2avsIn5TORy8ynBxcXn9aekV/+tGEQ7BBSYzIVNQ==" + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.110.0.tgz", + "integrity": "sha512-dLVoqODU3laaqNFPyN1QLtlQnwX4gNPMXptEBIt/iJpuZf66IYJe6WCzVZGt4Zfa1CnUmrlA428AzdcA/KCr2A==" }, "@aws-sdk/url-parser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.55.0.tgz", - "integrity": "sha512-qrTwN5xIgTLreqLnZ+x3cAudjNKfxi6srW1H/px2mk4lb2U9B4fpGjZ6VU+XV8U2kR+YlT8J6Jo5iwuVGfC91A==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.110.0.tgz", + "integrity": "sha512-tILFB8/Q73yzgO0dErJNnELmmBszd0E6FucwAnG3hfDefjqCBe09Q/1yhu2aARXyRmZa4AKp0sWcdwIWHc8dnA==", "dev": true, "requires": { - "@aws-sdk/querystring-parser": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/querystring-parser": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-base64-browser": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.58.0.tgz", - "integrity": "sha512-0ebsXIZNpu/fup9OgsFPnRKfCFbuuI9PPRzvP6twzLxUB0c/aix6Co7LGHFKcRKHZdaykoJMXArf8eHj2Nzv1Q==", + "version": "3.109.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.109.0.tgz", + "integrity": "sha512-lAZ6fyDGiRLaIsKT9qh7P9FGuNyZ4gAbr1YOSQk/5mHtaTuUvxlPptZuInNM/0MPQm6lpcot00D8IWTucn4PbA==", "dev": true, "requires": { "tslib": "^2.3.1" @@ -16396,44 +16427,44 @@ } }, "@aws-sdk/util-config-provider": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.55.0.tgz", - "integrity": "sha512-30dzofQQfx6tp1jVZkZ0DGRsT0wwC15nEysKRiAcjncM64A0Cm6sra77d0os3vbKiKoPCI/lMsFr4o3533+qvQ==", + "version": "3.109.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.109.0.tgz", + "integrity": "sha512-GrAZl/aBv0A28LkyNyq8SPJ5fmViCwz80fWLMeWx/6q5AbivuILogjlWwEZSvZ9zrlHOcFC0+AnCa5pQrjaslw==", "dev": true, "requires": { "tslib": "^2.3.1" } }, "@aws-sdk/util-defaults-mode-browser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.55.0.tgz", - "integrity": "sha512-OS3gAwR84bHz7ObhjsSJM+grfeaBq3leGrj7xiX4BH3C8J+c10GMo3fqx1pV8Fq5F+9lMmhHpfOocD63SN5Q8A==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.110.0.tgz", + "integrity": "sha512-Y2dcOOD20S3bv/IjUqpdKIiDt6995SXNG5Pu/LeSdXNyLCOIm9rX4gHTxl9fC1KK5M/gR9fGJ362f67WwqEEqw==", "dev": true, "requires": { - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/types": "3.110.0", "bowser": "^2.11.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-defaults-mode-node": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.58.0.tgz", - "integrity": "sha512-KNUCp0MXI+z3Z3pQCKDkx3Stdy1TXDjcUB+ZJFxRTJGIuBYwX4fV6G8s/zeFJi5Qv1ztR3CJ9fWJGsrx9mQ5EA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.110.0.tgz", + "integrity": "sha512-Cr3Z5nyrw1KowjbW76xp8hkT/zJtYjAVZ9PS4l84KxIicbVvDOBpxG3yNddkuQcavmlH6G4wH9uM5DcnpKDncg==", "dev": true, "requires": { - "@aws-sdk/config-resolver": "3.58.0", - "@aws-sdk/credential-provider-imds": "3.58.0", - "@aws-sdk/node-config-provider": "3.58.0", - "@aws-sdk/property-provider": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/config-resolver": "3.110.0", + "@aws-sdk/credential-provider-imds": "3.110.0", + "@aws-sdk/node-config-provider": "3.110.0", + "@aws-sdk/property-provider": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-hex-encoding": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.58.0.tgz", - "integrity": "sha512-Rl+jXUzk/FJkOLYfUVYPhKa2aUmTpeobRP31l8IatQltSzDgLyRHO35f6UEs7Ztn5s1jbu/POatLAZ2WjbgVyg==", + "version": "3.109.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.109.0.tgz", + "integrity": "sha512-s8CgTNrn3cLkrdiohfxLuOYPCanzvHn/aH5RW6DaMoeQiG5Hl9QUiP/WtdQ9QQx3xvpQFpmvxIaSBwSgFNLQxA==", "dev": true, "requires": { "tslib": "^2.3.1" @@ -16449,9 +16480,9 @@ } }, "@aws-sdk/util-middleware": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.55.0.tgz", - "integrity": "sha512-82fW2XV+rUalv8lkd4VlhpPp6xnXO5n9sckMp1N+TrQ+p8eqxqT0+o8n1/6s9Qsnkw64Y3m6+EfCdc8/uFOY2g==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.110.0.tgz", + "integrity": "sha512-PTVWrI5fA9d5hHJs6RzX2dIS2jRQ3uW073Fm0BePpQeDdZrEk+S5KNwRhUtpN6sdSV45vm6S9rrjZUG51qwGmA==", "dev": true, "requires": { "tslib": "^2.3.1" @@ -16467,40 +16498,40 @@ } }, "@aws-sdk/util-user-agent-browser": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.58.0.tgz", - "integrity": "sha512-aJpqCvT09giJRg5xFTBDBRAVF0k0yq3OEf6UTuiOVf5azlL2MGp6PJ/xkJp9Z06PuQQkwBJ/2nIQZemo02a5Sw==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.110.0.tgz", + "integrity": "sha512-rNdhmHDMV5dNJctqlBWimkZLJRB+x03DB+61pm+SKSFk6gPIVIvc1WNXqDFphkiswT4vA13ZUkGHzt+N4+noQQ==", "dev": true, "requires": { - "@aws-sdk/types": "3.55.0", + "@aws-sdk/types": "3.110.0", "bowser": "^2.11.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-user-agent-node": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.58.0.tgz", - "integrity": "sha512-VlbY/nzWdN2pfLUHqKvnlGBQ6tEeV4jyK9ggAD2Szjj0bkYvaaKwpBKswQmuJpi5/J2v7Bo4ayBLnqDL7PgzLA==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.110.0.tgz", + "integrity": "sha512-OQ915TPCCBwZWz5Np8zkNWn7U6KvrTZfFoCOy/VIemK3dUqmnBZ7HqGpuZx8SwJ2R9JE1x+j0niYSJ5fWJZZKA==", "dev": true, "requires": { - "@aws-sdk/node-config-provider": "3.58.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/node-config-provider": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, "@aws-sdk/util-utf8-browser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.55.0.tgz", - "integrity": "sha512-ljzqJcyjfJpEVSIAxwtIS8xMRUly84BdjlBXyp6cu4G8TUufgjNS31LWdhyGhgmW5vYBNr+LTz0Kwf6J+ou7Ug==", + "version": "3.109.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.109.0.tgz", + "integrity": "sha512-FmcGSz0v7Bqpl1SE8G1Gc0CtDpug+rvqNCG/szn86JApD/f5x8oByjbEiAyTU2ZH2VevUntx6EW68ulHyH+x+w==", "dev": true, "requires": { "tslib": "^2.3.1" } }, "@aws-sdk/util-utf8-node": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.55.0.tgz", - "integrity": "sha512-FsFm7GFaC7j0tlPEm/ri8bU2QCwFW5WKjxUg8lm1oWaxplCpKGUsmcfPJ4sw58GIoyoGu4QXBK60oCWosZYYdQ==", + "version": "3.109.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.109.0.tgz", + "integrity": "sha512-Ti/ZBdvz2eSTElsucjzNmzpyg2MwfD1rXmxD0hZuIF8bPON/0+sZYnWd5CbDw9kgmhy28dmKue086tbZ1G0iLQ==", "dev": true, "requires": { "@aws-sdk/util-buffer-from": "3.55.0", @@ -16508,13 +16539,13 @@ } }, "@aws-sdk/util-waiter": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.55.0.tgz", - "integrity": "sha512-Do34MKPFSC/+zVN6vY+FZ+0WN61hzga4nPoAC590AOjs8rW6/H6sDN6Gz1KAZbPnuQUZfvsIJjMxN7lblXHJkQ==", + "version": "3.110.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.110.0.tgz", + "integrity": "sha512-8dE6W6XYfjk1gx/aeb8NeLfMMLkLFhlV1lmKpFSBJhY8msajU8aQahTuykq5JW8QT/wCGbqbu7dH35SdX7kO+A==", "dev": true, "requires": { - "@aws-sdk/abort-controller": "3.55.0", - "@aws-sdk/types": "3.55.0", + "@aws-sdk/abort-controller": "3.110.0", + "@aws-sdk/types": "3.110.0", "tslib": "^2.3.1" } }, @@ -18750,27 +18781,27 @@ "dev": true }, "@types/lodash.clonedeep": { - "version": "4.5.6", - "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.6.tgz", - "integrity": "sha512-cE1jYr2dEg1wBImvXlNtp0xDoS79rfEdGozQVgliDZj1uERH4k+rmEMTudP9b4VQ8O6nRb5gPqft0QzEQGMQgA==", + "version": "4.5.7", + "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.7.tgz", + "integrity": "sha512-ccNqkPptFIXrpVqUECi60/DFxjNKsfoQxSQsgcBJCX/fuX1wgyQieojkcWH/KpE3xzLoWN/2k+ZeGqIN3paSvw==", "dev": true, "requires": { "@types/lodash": "*" } }, "@types/lodash.merge": { - "version": "4.6.6", - "resolved": "https://registry.npmjs.org/@types/lodash.merge/-/lodash.merge-4.6.6.tgz", - "integrity": "sha512-IB90krzMf7YpfgP3u/EvZEdXVvm4e3gJbUvh5ieuI+o+XqiNEt6fCzqNRaiLlPVScLI59RxIGZMQ3+Ko/DJ8vQ==", + "version": "4.6.7", + "resolved": "https://registry.npmjs.org/@types/lodash.merge/-/lodash.merge-4.6.7.tgz", + "integrity": "sha512-OwxUJ9E50gw3LnAefSHJPHaBLGEKmQBQ7CZe/xflHkyy/wH2zVyEIAKReHvVrrn7zKdF58p16We9kMfh7v0RRQ==", "dev": true, "requires": { "@types/lodash": "*" } }, "@types/lodash.pickby": { - "version": "4.6.6", - "resolved": "https://registry.npmjs.org/@types/lodash.pickby/-/lodash.pickby-4.6.6.tgz", - "integrity": "sha512-NFa13XxlMd9eFi0UFZFWIztpMpXhozbijrx3Yb1viYZphT7jyopIFVoIRF4eYMjruWNEG1rnyrRmg/8ej9T8Iw==", + "version": "4.6.7", + "resolved": "https://registry.npmjs.org/@types/lodash.pickby/-/lodash.pickby-4.6.7.tgz", + "integrity": "sha512-4ebXRusuLflfscbD0PUX4eVknDHD9Yf+uMtBIvA/hrnTqeAzbuHuDjvnYriLjUrI9YrhCPVKUf4wkRSXJQ6gig==", "dev": true, "requires": { "@types/lodash": "*" @@ -18789,9 +18820,9 @@ "dev": true }, "@types/node": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", - "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==" + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -19531,9 +19562,9 @@ "dev": true }, "aws-xray-sdk-core": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/aws-xray-sdk-core/-/aws-xray-sdk-core-3.3.4.tgz", - "integrity": "sha512-GGnYAQgtclLHIBReOtsUgbDDCar0LR2TaHCWlQhPrEVVayrSAZQ4y+SlXN5YIadxMec4/f5dbF69wMbug9D5Ww==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/aws-xray-sdk-core/-/aws-xray-sdk-core-3.3.6.tgz", + "integrity": "sha512-5pJnix2mNBshzBtVsJxus3YOX2gM8+AirjyAJ0U+4ZkLRAcofNzBJUabZyHZPoVKud/YjEmcRr36bh4T3vOL2A==", "requires": { "@aws-sdk/service-error-classification": "^3.4.1", "@aws-sdk/types": "^3.4.1", @@ -19557,9 +19588,9 @@ "dev": true }, "axios": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.1.tgz", - "integrity": "sha512-ePNMai55xo5GsXajb/k756AqZqpqeDaGwGcdvbZLSSELbbYwsIn2jNmGfUPEwd8j/yu4OoMstLLIVa4t0MneEA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dev": true, "requires": { "follow-redirects": "^1.14.9", diff --git a/package.json b/package.json index d7a987463b..19329e669a 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "lerna-test:unit": "lerna exec -- npm run test:unit", "lerna-test:e2e": "lerna exec -- npm run test:e2e", "lerna-package": "lerna exec -- npm run package", + "lerna-package-bundle": "lerna exec -- npm run package-bundle", "lerna-build": "lerna exec -- tsc", "lerna-lint": "lerna exec -- eslint \"./{src,tests}/**/*.ts ./src/*.ts\"", "lerna-format": "lerna exec -- eslint --fix \"./{src,tests}/**/*.ts ./src/*.ts\"", @@ -28,8 +29,10 @@ "lerna-preversion": "lerna exec -- npm run lint", "lerna-version": "lerna exec -- npm run format && git add -A src", "postversion": "git push && git push --tags", + "docs-website-build-run": "npm run docs-buildDockerImage && npm run docs-runLocalDocker", "docs-buildDockerImage": "docker build -t powertool-typescript/docs ./docs/", "docs-runLocalDocker": "docker run --rm -it -p 8000:8000 -v ${PWD}:/docs powertool-typescript/docs", + "docs-api-build-run": "npm run docs-generateApiDoc && npx live-server api", "docs-generateApiDoc": "typedoc .", "docs-runLocalApiDoc": "npx live-server api" }, @@ -56,7 +59,7 @@ "@middy/core": "^2.5.6", "@types/aws-lambda": "^8.10.72", "@types/jest": "^27.4.0", - "@types/node": "^17.0.8", + "@types/node": "^18.0.0", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^5.12.1", "@typescript-eslint/parser": "^5.12.1", diff --git a/packages/commons/CHANGELOG.md b/packages/commons/CHANGELOG.md index 9da1436df0..0f9d977a4e 100644 --- a/packages/commons/CHANGELOG.md +++ b/packages/commons/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. +# [0.11.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.10.0...v0.11.0) (2022-06-23) + + +### Features + +* **logger:** add clear state functionality ([#902](https://github.com/awslabs/aws-lambda-powertools-typescript/issues/902)) ([fa1dacb](https://github.com/awslabs/aws-lambda-powertools-typescript/commit/fa1dacb001503a0a607e0951499119a1a9c61545)) + + + + + # [0.10.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.9.1...v0.10.0) (2022-06-02) diff --git a/packages/commons/package.json b/packages/commons/package.json index 748952498c..b9cb7f6345 100644 --- a/packages/commons/package.json +++ b/packages/commons/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/commons", - "version": "0.10.0", + "version": "0.11.0", "description": "A shared utility package for AWS Lambda Powertools for TypeScript libraries", "author": { "name": "Amazon Web Services", @@ -19,6 +19,7 @@ "lint": "eslint --ext .ts --fix --no-error-on-unmatched-pattern src tests", "format": "eslint --fix --ext .ts --fix --no-error-on-unmatched-pattern src tests", "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/", + "package-bundle": "../../package-bundler.sh ${LERNA_PACKAGE_NAME}-bundle ./dist/", "prepare": "npm run build", "prepublishOnly": "npm test && npm run lint", "preversion": "npm run lint", diff --git a/packages/commons/tests/utils/InvocationLogs.ts b/packages/commons/tests/utils/InvocationLogs.ts index 22e1334007..52d8656e40 100644 --- a/packages/commons/tests/utils/InvocationLogs.ts +++ b/packages/commons/tests/utils/InvocationLogs.ts @@ -56,6 +56,14 @@ export class InvocationLogs { return filteredLogs.length > 0; } + /** + * Return all the log of the function + * @returns Array of function logs + */ + public getAllFunctionLogs(): string[] { + return this.logs; + } + /** * Return only logs from function, exclude START, END, and REPORT generated by Lambda service * @param levelToFilter level to filter diff --git a/packages/commons/tests/utils/e2eUtils.ts b/packages/commons/tests/utils/e2eUtils.ts index c4c38d1d21..44f0375a6e 100644 --- a/packages/commons/tests/utils/e2eUtils.ts +++ b/packages/commons/tests/utils/e2eUtils.ts @@ -63,12 +63,15 @@ export const generateUniqueName = (name_prefix: string, uuid: string, runtime: s export const invokeFunction = async (functionName: string, times: number = 1, invocationMode: 'PARALLEL' | 'SEQUENTIAL' = 'PARALLEL', payload: FunctionPayload = {}): Promise => { const invocationLogs: InvocationLogs[] = []; - const promiseFactory = (): Promise => { + const promiseFactory = (index?: number): Promise => { const invokePromise = lambdaClient .invoke({ FunctionName: functionName, LogType: 'Tail', // Wait until execution completes and return all logs - Payload: JSON.stringify(payload), + Payload: JSON.stringify({ + invocation: index, + ...payload + }), }) .promise() .then((response) => { @@ -84,16 +87,15 @@ export const invokeFunction = async (functionName: string, times: number = 1, in const promiseFactories = Array.from({ length: times }, () => promiseFactory ); const invocation = invocationMode == 'PARALLEL' - ? Promise.all(promiseFactories.map(factory => factory())) + ? Promise.all(promiseFactories.map((factory, index) => factory(index))) : chainPromises(promiseFactories); await invocation; return invocationLogs; }; -const chainPromises = async (promiseFactories: (() => Promise)[]) : Promise => { - let chain = Promise.resolve(); - promiseFactories.forEach(factory => chain = chain.then(factory)); - - return chain; +const chainPromises = async (promiseFactories: ((index?: number) => Promise)[]) : Promise => { + for (let index = 0; index < promiseFactories.length; index++) { + await promiseFactories[index](index); + } }; diff --git a/packages/logger/CHANGELOG.md b/packages/logger/CHANGELOG.md index 40cc4701b3..5b76ea7be9 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. +# [0.11.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.10.0...v0.11.0) (2022-06-23) + + +### Features + +* **logger:** add clear state functionality ([#902](https://github.com/awslabs/aws-lambda-powertools-typescript/issues/902)) ([fa1dacb](https://github.com/awslabs/aws-lambda-powertools-typescript/commit/fa1dacb001503a0a607e0951499119a1a9c61545)) + + + + + # [0.10.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.9.1...v0.10.0) (2022-06-02) diff --git a/packages/logger/package.json b/packages/logger/package.json index 8fc87f9fb2..ef9c9bc1d0 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/logger", - "version": "0.10.0", + "version": "0.11.0", "description": "The logging package for the AWS Lambda Powertools for TypeScript library", "author": { "name": "Amazon Web Services", @@ -22,6 +22,7 @@ "lint": "eslint --ext .ts --fix --no-error-on-unmatched-pattern src tests", "format": "eslint --fix --ext .ts --fix --no-error-on-unmatched-pattern src tests", "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/", + "package-bundle": "../../package-bundler.sh ${LERNA_PACKAGE_NAME}-bundle ./dist/", "prepare": "npm run build", "prepublishOnly": "npm test && npm run lint", "preversion": "npm run lint", @@ -34,9 +35,9 @@ "types": "./lib/index.d.ts", "typedocMain": "src/index.ts", "devDependencies": { - "@types/lodash.clonedeep": "^4.5.6", - "@types/lodash.merge": "^4.6.6", - "@types/lodash.pickby": "^4.6.6" + "@types/lodash.clonedeep": "^4.5.7", + "@types/lodash.merge": "^4.6.7", + "@types/lodash.pickby": "^4.6.7" }, "files": [ "lib" @@ -49,7 +50,7 @@ "url": "https://github.com/awslabs/aws-lambda-powertools-typescript/issues" }, "dependencies": { - "@aws-lambda-powertools/commons": "^0.10.0", + "@aws-lambda-powertools/commons": "^0.11.0", "lodash.clonedeep": "^4.5.0", "lodash.merge": "^4.6.2", "lodash.pickby": "^4.6.0" diff --git a/packages/logger/src/Logger.ts b/packages/logger/src/Logger.ts index f83e0d3b8f..2d84eebd81 100644 --- a/packages/logger/src/Logger.ts +++ b/packages/logger/src/Logger.ts @@ -12,12 +12,13 @@ import type { HandlerMethodDecorator, LambdaFunctionContext, LogAttributes, - LoggerOptions, + ConstructorOptions, LogItemExtraInput, LogItemMessage, LogLevel, LogLevelThresholds, PowertoolLogData, + HandlerOptions, } from './types'; /** @@ -118,6 +119,8 @@ class Logger extends Utility implements ClassThatLogs { private envVarsService?: EnvironmentVariablesService; + private logEvent: boolean = false; + private logFormatter?: LogFormatterInterface; private logLevel?: LogLevel; @@ -138,9 +141,9 @@ class Logger extends Utility implements ClassThatLogs { /** * It initializes the Logger class with an optional set of options (settings). * * - * @param {LoggerOptions} options + * @param {ConstructorOptions} options */ - public constructor(options: LoggerOptions = {}) { + public constructor(options: ConstructorOptions = {}) { super(); this.setOptions(options); @@ -192,10 +195,10 @@ class Logger extends Utility implements ClassThatLogs { * It creates a separate Logger instance, identical to the current one * It's possible to overwrite the new instance options by passing them. * - * @param {LoggerOptions} options + * @param {ConstructorOptions} options * @returns {Logger} */ - public createChild(options: LoggerOptions = {}): Logger { + public createChild(options: ConstructorOptions = {}): Logger { return cloneDeep(this).setOptions(options); } @@ -221,6 +224,16 @@ class Logger extends Utility implements ClassThatLogs { this.processLogItem('ERROR', input, extraInput); } + /** + * It returns a boolean value. True means that the Lambda invocation events + * are printed in the logs. + * + * @returns {boolean} + */ + public getLogEvent(): boolean { + return this.logEvent; + } + /** * It returns a boolean value, if true all the logs will be printed. * @@ -230,6 +243,17 @@ class Logger extends Utility implements ClassThatLogs { return this.logsSampled; } + /** + * It returns the persistent log attributes, which are the attributes + * that will be logged in all log items. + * + * @private + * @returns {LogAttributes} + */ + public getPersistentLogAttributes(): LogAttributes { + return this.persistentLogAttributes; + } + /** * It prints a log item with level INFO. * @@ -250,22 +274,54 @@ class Logger extends Utility implements ClassThatLogs { * @see https://www.typescriptlang.org/docs/handbook/decorators.html#method-decorators * @returns {HandlerMethodDecorator} */ - public injectLambdaContext(): HandlerMethodDecorator { + public injectLambdaContext(options?: HandlerOptions): HandlerMethodDecorator { + const isClearStateEnabled = options && options.clearState === true; + return (target, _propertyKey, descriptor) => { /** * The descriptor.value is the method this decorator decorates, it cannot be undefined. - */ + */ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const originalMethod = descriptor.value!; + const originalMethod = descriptor.value; descriptor.value = (event, context, callback) => { + + let initialPersistentAttributes: LogAttributes = {}; + if (isClearStateEnabled) { + initialPersistentAttributes = { ...this.getPersistentLogAttributes() }; + } + this.addContext(context); + if (options) { + this.logEventIfEnabled(event, options.logEvent); + } - return originalMethod.apply(target, [ event, context, callback ]); + /* eslint-disable @typescript-eslint/no-non-null-assertion */ + const result = originalMethod!.apply(target, [ event, context, callback ]); + + if (isClearStateEnabled) { + this.setPersistentLogAttributes(initialPersistentAttributes); + } + + return result; }; }; } + /** + * Logs a Lambda invocation event, if it *should*. + * + ** @param {unknown} event + * @param {boolean} [overwriteValue] + * @returns {void} + */ + public logEventIfEnabled(event: unknown, overwriteValue?: boolean): void { + if (!this.shouldLogEvent(overwriteValue)) { + return; + } + this.info('Lambda invocation event', { event }); + } + /** * If the sample rate feature is enabled, the calculation that determines whether the logs * will actually be printed or not for this invocation is done when the Logger class is @@ -302,6 +358,17 @@ class Logger extends Utility implements ClassThatLogs { }); } + /** + * It sets the given attributes (key-value pairs) to all log items generated by this Logger instance. + * Note: this replaces the pre-existing value. + * + * @param {LogAttributes} attributes + * @returns {void} + */ + public setPersistentLogAttributes(attributes: LogAttributes): void { + this.persistentLogAttributes = attributes; + } + /** * It sets the user-provided sample rate value. * @@ -315,6 +382,21 @@ class Logger extends Utility implements ClassThatLogs { this.getEnvVarsService().getSampleRateValue(); } + /** + * It checks whether the current Lambda invocation event should be printed in the logs or not. + * + * @private + * @param {boolean} [overwriteValue] + * @returns {boolean} + */ + public shouldLogEvent(overwriteValue?: boolean): boolean { + if (typeof overwriteValue === 'boolean') { + return overwriteValue; + } + + return this.getLogEvent(); + } + /** * It prints a log item with level WARN. * @@ -421,17 +503,6 @@ class Logger extends Utility implements ClassThatLogs { return this.logLevel; } - /** - * It returns the persistent log attributes, which are the attributes - * that will be logged in all log items. - * - * @private - * @returns {LogAttributes} - */ - private getPersistentLogAttributes(): LogAttributes { - return this.persistentLogAttributes; - } - /** * It returns information that will be added in all log item by * this Logger instance (different from user-provided persistent attributes). @@ -459,10 +530,10 @@ class Logger extends Utility implements ClassThatLogs { /** * It returns the current X-Ray Trace ID parsing the content of the `_X_AMZN_TRACE_ID` env variable. - * + * * The X-Ray Trace data available in the environment variable has this format: * `Root=1-5759e988-bd862e3fe1be46a994272793;Parent=557abcec3ee5a047;Sampled=1`, - * + * * The actual Trace ID is: `1-5759e988-bd862e3fe1be46a994272793`. * * @private @@ -624,10 +695,10 @@ class Logger extends Utility implements ClassThatLogs { * and the content of all logs. * * @private - * @param {LoggerOptions} options + * @param {ConstructorOptions} options * @returns {Logger} */ - private setOptions(options: LoggerOptions): Logger { + private setOptions(options: ConstructorOptions): Logger { const { logLevel, serviceName, diff --git a/packages/logger/src/config/ConfigService.ts b/packages/logger/src/config/ConfigService.ts index 4f38cf6ae6..6479ab32ee 100644 --- a/packages/logger/src/config/ConfigService.ts +++ b/packages/logger/src/config/ConfigService.ts @@ -19,6 +19,7 @@ abstract class ConfigService implements ConfigServiceInterface { * @protected */ protected currentEnvironmentVariable = 'ENVIRONMENT'; + protected logEventVariable = 'POWERTOOLS_LOGGER_LOG_EVENT'; protected logLevelVariable = 'LOG_LEVEL'; protected sampleRateValueVariable = 'POWERTOOLS_LOGGER_SAMPLE_RATE'; protected serviceNameVariable = 'POWERTOOLS_SERVICE_NAME'; @@ -38,6 +39,13 @@ abstract class ConfigService implements ConfigServiceInterface { */ public abstract getCurrentEnvironment(): string; + /** + * It returns the value of the POWERTOOLS_LOGGER_LOG_EVENT environment variable. + * + * @returns {boolean} + */ + public abstract getLogEvent(): boolean; + /** * It returns the value of the LOG_LEVEL environment variable. * @@ -59,6 +67,17 @@ abstract class ConfigService implements ConfigServiceInterface { */ public abstract getServiceName(): string; + /** + * It returns true if the string value represents a boolean true value. + * + * @param {string} value + * @returns boolean + * @protected + */ + protected isValueTrue(value: string): boolean { + return value.toLowerCase() === 'true' || value === '1'; + } + } export { diff --git a/packages/logger/src/config/ConfigServiceInterface.ts b/packages/logger/src/config/ConfigServiceInterface.ts index 0e9b62a409..1f1a6ecc32 100644 --- a/packages/logger/src/config/ConfigServiceInterface.ts +++ b/packages/logger/src/config/ConfigServiceInterface.ts @@ -22,6 +22,13 @@ interface ConfigServiceInterface { */ getCurrentEnvironment(): string + /** + * It returns the value of the POWERTOOLS_LOGGER_LOG_EVENT environment variable. + * + * @returns {boolean} + */ + getLogEvent(): boolean + /** * It returns the value of the LOG_LEVEL environment variable. * diff --git a/packages/logger/src/config/EnvironmentVariablesService.ts b/packages/logger/src/config/EnvironmentVariablesService.ts index 588af64a01..2484252a65 100644 --- a/packages/logger/src/config/EnvironmentVariablesService.ts +++ b/packages/logger/src/config/EnvironmentVariablesService.ts @@ -79,6 +79,15 @@ class EnvironmentVariablesService extends ConfigService { return this.get(this.functionVersionVariable); } + /** + * It returns the value of the POWERTOOLS_LOGGER_LOG_EVENT environment variable. + * + * @returns {boolean} + */ + public getLogEvent(): boolean { + return this.isValueTrue(this.get(this.logEventVariable)); + } + /** * It returns the value of the LOG_LEVEL environment variable. * diff --git a/packages/logger/src/helpers.ts b/packages/logger/src/helpers.ts index 7a18741316..9ddd10009e 100644 --- a/packages/logger/src/helpers.ts +++ b/packages/logger/src/helpers.ts @@ -1,7 +1,7 @@ import { Logger } from '.'; -import { LoggerOptions } from './types'; +import { ConstructorOptions } from './types'; -const createLogger = (options: LoggerOptions = {}): Logger => new Logger(options); +const createLogger = (options: ConstructorOptions = {}): Logger => new Logger(options); export { createLogger, diff --git a/packages/logger/src/middleware/middy.ts b/packages/logger/src/middleware/middy.ts index cdb53183e2..34af3ac349 100644 --- a/packages/logger/src/middleware/middy.ts +++ b/packages/logger/src/middleware/middy.ts @@ -1,5 +1,6 @@ import type { Logger } from '../Logger'; import type middy from '@middy/core'; +import { HandlerOptions, LogAttributes } from '../types'; /** * A middy middleware that adds the current Lambda invocation's context inside all log items. @@ -26,16 +27,34 @@ import type middy from '@middy/core'; * @param {Logger|Logger[]} target - The Tracer instance to use for tracing * @returns {middy.MiddlewareObj} - The middy middleware object */ -const injectLambdaContext = (target: Logger | Logger[]): middy.MiddlewareObj => { +const injectLambdaContext = (target: Logger | Logger[], options?: HandlerOptions): middy.MiddlewareObj => { + + const loggers = target instanceof Array ? target : [target]; + const persistentAttributes: LogAttributes[] = []; + const injectLambdaContextBefore = async (request: middy.Request): Promise => { - const loggers = target instanceof Array ? target : [target]; loggers.forEach((logger: Logger) => { logger.addContext(request.context); + if (options && options.clearState === true) { + persistentAttributes.push({ ...logger.getPersistentLogAttributes() }); + } + if (options) { + logger.logEventIfEnabled(request.event, options.logEvent); + } }); }; - + + const injectLambdaContextAfter = async (): Promise => { + if (options && options.clearState === true) { + loggers.forEach((logger: Logger, index: number) => { + logger.setPersistentLogAttributes(persistentAttributes[index]); + }); + } + }; + return { before: injectLambdaContextBefore, + after: injectLambdaContextAfter }; }; diff --git a/packages/logger/src/types/Logger.ts b/packages/logger/src/types/Logger.ts index 16bd1e454b..add56ee28a 100644 --- a/packages/logger/src/types/Logger.ts +++ b/packages/logger/src/types/Logger.ts @@ -8,7 +8,12 @@ type ClassThatLogs = { [key in 'debug' | 'error' | 'info' | 'warn']: (input: LogItemMessage, ...extraInput: LogItemExtraInput) => void; }; -type LoggerOptions = { +type HandlerOptions = { + logEvent?: boolean + clearState?: boolean +}; + +type ConstructorOptions = { logLevel?: LogLevel serviceName?: string sampleRateValue?: number @@ -66,5 +71,6 @@ export { LambdaFunctionContext, UnformattedAttributes, PowertoolLogData, - LoggerOptions, + ConstructorOptions, + HandlerOptions }; diff --git a/packages/logger/tests/e2e/basicFeatures.middy.test.FunctionCode.ts b/packages/logger/tests/e2e/basicFeatures.middy.test.FunctionCode.ts index 8a80ed8985..c434a7892a 100644 --- a/packages/logger/tests/e2e/basicFeatures.middy.test.FunctionCode.ts +++ b/packages/logger/tests/e2e/basicFeatures.middy.test.FunctionCode.ts @@ -1,8 +1,9 @@ import { injectLambdaContext, Logger } from '../../src'; -import { APIGatewayProxyEvent, Context, APIGatewayAuthorizerResult } from 'aws-lambda'; +import { Context, APIGatewayAuthorizerResult } from 'aws-lambda'; import middy from '@middy/core'; const PERSISTENT_KEY = process.env.PERSISTENT_KEY; +const PERSISTENT_KEY_FIRST_INVOCATION_ONLY = process.env.PERSISTENT_KEY_FIRST_INVOCATION_ONLY; const PERSISTENT_VALUE = process.env.PERSISTENT_VALUE; const REMOVABLE_KEY = process.env.REMOVABLE_KEY; const REMOVABLE_VALUE = process.env.REMOVABLE_VALUE; @@ -12,6 +13,10 @@ const SINGLE_LOG_ITEM_VALUE = process.env.SINGLE_LOG_ITEM_VALUE; const ARBITRARY_OBJECT_KEY = process.env.ARBITRARY_OBJECT_KEY; const ARBITRARY_OBJECT_DATA = process.env.ARBITRARY_OBJECT_DATA; +type LambdaEvent = { + invocation: number +}; + const logger = new Logger({ persistentLogAttributes: { [PERSISTENT_KEY]: PERSISTENT_VALUE, @@ -19,12 +24,20 @@ const logger = new Logger({ }, }); -const testFunction = async (event: APIGatewayProxyEvent, context: Context): Promise<{requestId: string}> => { +const testFunction = async (event: LambdaEvent, context: Context): Promise<{requestId: string}> => { // Test feature 1: Log level filtering // Test feature 2: Context data // Test feature 3: Add and remove persistent additional log keys and value // Test feature 4: X-Ray Trace ID injection logger.removeKeys([REMOVABLE_KEY]); + + const specialValue = event.invocation; + if (specialValue === 0) { + logger.appendKeys({ + [PERSISTENT_KEY_FIRST_INVOCATION_ONLY]: specialValue + }); + } + logger.debug('##### This should not appear'); logger.info('This is an INFO log with context and persistent key'); @@ -60,4 +73,5 @@ const testFunction = async (event: APIGatewayProxyEvent, context: Context): Prom }; }; -export const handler = middy(testFunction).use(injectLambdaContext(logger)); +export const handler = middy(testFunction) + .use(injectLambdaContext(logger, { clearState: true, logEvent: true })); diff --git a/packages/logger/tests/e2e/basicFeatures.middy.test.ts b/packages/logger/tests/e2e/basicFeatures.middy.test.ts index 2595b92ec6..4cd268486f 100644 --- a/packages/logger/tests/e2e/basicFeatures.middy.test.ts +++ b/packages/logger/tests/e2e/basicFeatures.middy.test.ts @@ -42,6 +42,7 @@ const lambdaFunctionCodeFile = 'basicFeatures.middy.test.FunctionCode.ts'; // Text to be used by Logger in the Lambda function const PERSISTENT_KEY = 'persistentKey'; +const PERSISTENT_KEY_FIRST_INVOCATION_ONLY = 'specialKey'; const PERSISTENT_VALUE = `a persistent value that will be put in every log ${uuid}`; const REMOVABLE_KEY = 'removableKey'; const REMOVABLE_VALUE = `a persistent value that will be removed and not displayed in any log ${uuid}`; @@ -73,6 +74,7 @@ describe(`logger E2E tests basic functionalities (middy) for runtime: ${runtime} // Text to be used by Logger in the Lambda function PERSISTENT_KEY, + PERSISTENT_KEY_FIRST_INVOCATION_ONLY, PERSISTENT_VALUE, REMOVABLE_KEY, REMOVABLE_VALUE, @@ -127,9 +129,7 @@ describe(`logger E2E tests basic functionalities (middy) for runtime: ${runtime} expect(message).not.toContain(`"cold_start":true`); } }, TEST_CASE_TIMEOUT); - }); - describe('Context data', () => { it('should log context information in every log', async () => { const logMessages = invocationLogs[0].getFunctionLogs(); @@ -143,6 +143,34 @@ describe(`logger E2E tests basic functionalities (middy) for runtime: ${runtime} }, TEST_CASE_TIMEOUT); }); + describe('Log event', () => { + + it('should log the event on the first invocation', async () => { + const firstInvocationMessages = invocationLogs[0].getAllFunctionLogs(); + let eventLoggedInFirstInvocation = false; + for (const message of firstInvocationMessages) { + if (message.includes(`event`)) { + eventLoggedInFirstInvocation = true; + expect(message).toContain(`"event":{"invocation":0}`); + } + } + + const secondInvocationMessages = invocationLogs[1].getAllFunctionLogs(); + let eventLoggedInSecondInvocation = false; + for (const message of secondInvocationMessages) { + if (message.includes(`event`)) { + eventLoggedInSecondInvocation = true; + expect(message).toContain(`"event":{"invocation":1}`); + } + } + + expect(eventLoggedInFirstInvocation).toBe(true); + expect(eventLoggedInSecondInvocation).toBe(true); + + }, TEST_CASE_TIMEOUT); + + }); + describe('Persistent additional log keys and values', () => { it('should contain persistent value in every log', async () => { const logMessages = invocationLogs[0].getFunctionLogs(); @@ -159,6 +187,18 @@ describe(`logger E2E tests basic functionalities (middy) for runtime: ${runtime} expect(message).not.toContain(`"${REMOVABLE_KEY}":"${REMOVABLE_VALUE}"`); } }, TEST_CASE_TIMEOUT); + + it('with clear state enabled, should not persist keys across invocations', async () => { + const firstInvocationMessages = invocationLogs[0].getFunctionLogs(); + for (const message of firstInvocationMessages) { + expect(message).toContain(`"${PERSISTENT_KEY_FIRST_INVOCATION_ONLY}":0`); + } + + const secondInvocationMessages = invocationLogs[1].getFunctionLogs(); + for (const message of secondInvocationMessages) { + expect(message).not.toContain(`"${PERSISTENT_KEY_FIRST_INVOCATION_ONLY}":0`); + } + }, TEST_CASE_TIMEOUT); }); describe('X-Ray Trace ID injection', () => { diff --git a/packages/logger/tests/unit/Logger.test.ts b/packages/logger/tests/unit/Logger.test.ts index 46f1f2615e..8fe30c7bc2 100644 --- a/packages/logger/tests/unit/Logger.test.ts +++ b/packages/logger/tests/unit/Logger.test.ts @@ -572,6 +572,7 @@ describe('Class: Logger', () => { coldStart: false, // This is now false because the `coldStart` attribute has been already accessed once by the `addContext` method customConfigService: undefined, envVarsService: expect.any(EnvironmentVariablesService), + logEvent: false, logFormatter: expect.any(PowertoolLogFormatter), logLevel: 'DEBUG', logLevelThresholds: { @@ -808,6 +809,7 @@ describe('Class: Logger', () => { test('when used as decorator, it returns a function with the correct scope of the decorated class', async () => { // Prepare + const logger = new Logger(); const consoleSpy = jest.spyOn(logger['console'], 'info').mockImplementation(); class LambdaFunction implements LambdaInterface { @@ -937,6 +939,49 @@ describe('Class: Logger', () => { }); + test('when used as decorator with the clear state flag enabled, the persistent log attributes added in the handler are removed after the handler\'s code is executed', async () => { + + // Prepare + const logger = new Logger({ + logLevel: 'DEBUG', + persistentLogAttributes: { + foo: 'bar', + biz: 'baz' + } + }); + + type CustomEvent = { user_id: string }; + + class LambdaFunction implements LambdaInterface { + + @logger.injectLambdaContext({ clearState: true }) + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + public handler(event: CustomEvent, _context: Context, _callback: Callback): void | Promise { + // Only add these persistent for the scope of this lambda handler + logger.appendKeys({ + details: { user_id: event['user_id'] } + }); + logger.debug('This is a DEBUG log with the user_id'); + logger.debug('This is another DEBUG log with the user_id'); + } + } + + const persistentAttribs = { ...logger.getPersistentLogAttributes() }; + + // Act + await new LambdaFunction().handler({ user_id: '123456' }, dummyContext, () => console.log('Lambda invoked!')); + const persistentAttribsAfterInvocation = { ...logger.getPersistentLogAttributes() }; + + // Assess + expect(persistentAttribs).toEqual({ + foo: 'bar', + biz: 'baz' + }); + expect(persistentAttribsAfterInvocation).toEqual(persistentAttribs); + + }); + }); describe('Method: refreshSampleRateCalculation', () => { @@ -999,6 +1044,7 @@ describe('Class: Logger', () => { coldStart: true, customConfigService: undefined, envVarsService: expect.any(EnvironmentVariablesService), + logEvent: false, logFormatter: expect.any(PowertoolLogFormatter), logLevel: 'DEBUG', logLevelThresholds: { @@ -1022,6 +1068,7 @@ describe('Class: Logger', () => { coldStart: true, customConfigService: undefined, envVarsService: expect.any(EnvironmentVariablesService), + logEvent: false, logFormatter: expect.any(PowertoolLogFormatter), logLevel: 'DEBUG', logLevelThresholds: { @@ -1047,6 +1094,7 @@ describe('Class: Logger', () => { coldStart: true, customConfigService: undefined, envVarsService: expect.any(EnvironmentVariablesService), + logEvent: false, logFormatter: expect.any(PowertoolLogFormatter), logLevel: 'DEBUG', logLevelThresholds: { @@ -1070,6 +1118,7 @@ describe('Class: Logger', () => { coldStart: true, customConfigService: undefined, envVarsService: expect.any(EnvironmentVariablesService), + logEvent: false, logFormatter: expect.any(PowertoolLogFormatter), logLevel: 'ERROR', logLevelThresholds: { @@ -1092,4 +1141,48 @@ describe('Class: Logger', () => { }); + describe('Method: logEventIfEnabled', () => { + + test('When the feature is disabled, it DOES NOT log the event', () => { + + // Prepare + const logger = new Logger(); + const consoleSpy = jest.spyOn(logger['console'], 'info').mockImplementation(); + + // Act + logger.logEventIfEnabled(dummyEvent); + + // Assess + + expect(consoleSpy).toBeCalledTimes(0); + }); + + test('When the feature is enabled via overwrite flag, it DOES log the event', () => { + + // Prepare + const event = { + something: 'happened!' + }; + const logger = new Logger(); + const consoleSpy = jest.spyOn(logger['console'], 'info').mockImplementation(); + + // Act + logger.logEventIfEnabled(event, true); + + // Assess + expect(consoleSpy).toBeCalledTimes(1); + expect(consoleSpy).toHaveBeenNthCalledWith(1, JSON.stringify({ + level: 'INFO', + message: 'Lambda invocation event', + service: 'hello-world', + timestamp: '2016-06-20T12:08:10.000Z', + xray_trace_id: '1-5759e988-bd862e3fe1be46a994272793', + event: { + something: 'happened!' + } + }, + )); + }); + }); + }); \ No newline at end of file diff --git a/packages/logger/tests/unit/config/EnvironmentVariablesService.test.ts b/packages/logger/tests/unit/config/EnvironmentVariablesService.test.ts index ab810089c8..18d1e29221 100644 --- a/packages/logger/tests/unit/config/EnvironmentVariablesService.test.ts +++ b/packages/logger/tests/unit/config/EnvironmentVariablesService.test.ts @@ -136,6 +136,88 @@ describe('Class: EnvironmentVariablesService', () => { }); + describe('Method: getLogEvent', () => { + + test('It returns true if the environment variable POWERTOOLS_LOGGER_LOG_EVENT is "true"', () => { + + // Prepare + process.env.POWERTOOLS_LOGGER_LOG_EVENT = 'true'; + const service = new EnvironmentVariablesService(); + + // Act + const value = service.getLogEvent(); + + // Assess + expect(value).toEqual(true); + }); + + test('It returns true if the environment variable POWERTOOLS_LOGGER_LOG_EVENT is "TRUE"', () => { + + // Prepare + process.env.POWERTOOLS_LOGGER_LOG_EVENT = 'TRUE'; + const service = new EnvironmentVariablesService(); + + // Act + const value = service.getLogEvent(); + + // Assess + expect(value).toEqual(true); + }); + + test('It returns true if the environment variable POWERTOOLS_LOGGER_LOG_EVENT is "1"', () => { + + // Prepare + process.env.POWERTOOLS_LOGGER_LOG_EVENT = '1'; + const service = new EnvironmentVariablesService(); + + // Act + const value = service.getLogEvent(); + + // Assess + expect(value).toEqual(true); + }); + + test('It returns false if the environment variable POWERTOOLS_LOGGER_LOG_EVENT is "false"', () => { + + // Prepare + process.env.POWERTOOLS_LOGGER_LOG_EVENT = 'false'; + const service = new EnvironmentVariablesService(); + + // Act + const value = service.getLogEvent(); + + // Assess + expect(value).toEqual(false); + }); + + test('It returns false if the environment variable POWERTOOLS_LOGGER_LOG_EVENT is "0"', () => { + + // Prepare + process.env.POWERTOOLS_LOGGER_LOG_EVENT = '0'; + const service = new EnvironmentVariablesService(); + + // Act + const value = service.getLogEvent(); + + // Assess + expect(value).toEqual(false); + }); + + test('It returns false if the environment variable POWERTOOLS_LOGGER_LOG_EVENT is "somethingsilly"', () => { + + // Prepare + process.env.POWERTOOLS_LOGGER_LOG_EVENT = 'somethingsilly'; + const service = new EnvironmentVariablesService(); + + // Act + const value = service.getLogEvent(); + + // Assess + expect(value).toEqual(false); + }); + + }); + describe('Method: getLogLevel', () => { test('It returns the value of the environment variable LOG_LEVEL', () => { diff --git a/packages/logger/tests/unit/helpers.test.ts b/packages/logger/tests/unit/helpers.test.ts index b90882df38..9309bea207 100644 --- a/packages/logger/tests/unit/helpers.test.ts +++ b/packages/logger/tests/unit/helpers.test.ts @@ -7,7 +7,7 @@ import { Console } from 'console'; import { ConfigServiceInterface, EnvironmentVariablesService } from '../../src/config'; import { LogFormatter, PowertoolLogFormatter } from '../../src/formatter'; -import { LoggerOptions } from '../../src/types'; +import { ConstructorOptions } from '../../src/types'; import { createLogger, Logger } from './../../src'; describe('Helper: createLogger function', () => { @@ -76,6 +76,7 @@ describe('Helper: createLogger function', () => { coldStart: true, customConfigService: expect.any(EnvironmentVariablesService), envVarsService: expect.any(EnvironmentVariablesService), + logEvent: false, logFormatter: expect.any(PowertoolLogFormatter), logLevel: 'WARN', console: expect.any(Console), @@ -115,6 +116,7 @@ describe('Helper: createLogger function', () => { coldStart: true, customConfigService: undefined, envVarsService: expect.any(EnvironmentVariablesService), + logEvent: false, logFormatter: expect.any(PowertoolLogFormatter), logLevel: 'INFO', console: expect.any(Console), @@ -139,7 +141,7 @@ describe('Helper: createLogger function', () => { test('when a custom logFormatter is passed, returns a Logger instance with the correct proprieties', () => { // Prepare - const loggerOptions:LoggerOptions = { + const loggerOptions:ConstructorOptions = { logFormatter: expect.any(LogFormatter), }; @@ -167,7 +169,7 @@ describe('Helper: createLogger function', () => { test('when a custom serviceName is passed, returns a Logger instance with the correct proprieties', () => { // Prepare - const loggerOptions:LoggerOptions = { + const loggerOptions:ConstructorOptions = { serviceName: 'my-backend-service', }; @@ -195,7 +197,7 @@ describe('Helper: createLogger function', () => { test('when a custom logLevel is passed, returns a Logger instance with the correct proprieties', () => { // Prepare - const loggerOptions:LoggerOptions = { + const loggerOptions:ConstructorOptions = { logLevel: 'ERROR', }; @@ -223,7 +225,7 @@ describe('Helper: createLogger function', () => { test('when no log level is set, returns a Logger instance with INFO level', () => { // Prepare - const loggerOptions:LoggerOptions = {}; + const loggerOptions:ConstructorOptions = {}; delete process.env.LOG_LEVEL; // Act @@ -235,6 +237,7 @@ describe('Helper: createLogger function', () => { coldStart: true, customConfigService: undefined, envVarsService: expect.any(EnvironmentVariablesService), + logEvent: false, logFormatter: expect.any(PowertoolLogFormatter), logLevel: 'INFO', console: expect.any(Console), @@ -258,7 +261,7 @@ describe('Helper: createLogger function', () => { test('when a custom sampleRateValue is passed, returns a Logger instance with the correct proprieties', () => { // Prepare - const loggerOptions:LoggerOptions = { + const loggerOptions:ConstructorOptions = { sampleRateValue: 1, }; @@ -292,6 +295,9 @@ describe('Helper: createLogger function', () => { getCurrentEnvironment(): string { return 'dev'; }, + getLogEvent(): boolean { + return true; + }, getLogLevel(): string { return 'INFO'; }, @@ -304,7 +310,7 @@ describe('Helper: createLogger function', () => { }; // Prepare - const loggerOptions:LoggerOptions = { + const loggerOptions:ConstructorOptions = { customConfigService: configService, }; @@ -332,7 +338,7 @@ describe('Helper: createLogger function', () => { test('when custom persistentLogAttributes is passed, returns a Logger instance with the correct proprieties', () => { // Prepare - const loggerOptions:LoggerOptions = { + const loggerOptions:ConstructorOptions = { persistentLogAttributes: { aws_account_id: '123456789012', aws_region: 'eu-west-1', @@ -374,7 +380,7 @@ describe('Helper: createLogger function', () => { test('when A custom environment is passed, returns a Logger instance with the correct proprieties', () => { // Prepare - const loggerOptions:LoggerOptions = { + const loggerOptions:ConstructorOptions = { environment: 'dev', }; diff --git a/packages/logger/tests/unit/middleware/middy.test.ts b/packages/logger/tests/unit/middleware/middy.test.ts index 6a25f8f713..7c596182a3 100644 --- a/packages/logger/tests/unit/middleware/middy.test.ts +++ b/packages/logger/tests/unit/middleware/middy.test.ts @@ -4,19 +4,23 @@ * @group unit/logger/all */ -import { EnvironmentVariablesService } from '../../../src/config'; +import { ConfigServiceInterface, EnvironmentVariablesService } from '../../../src/config'; import { injectLambdaContext } from '../../../src/middleware/middy'; import { Logger } from './../../../src'; import middy from '@middy/core'; import { PowertoolLogFormatter } from '../../../src/formatter'; import { Console } from 'console'; +const mockDate = new Date(1466424490000); +const dateSpy = jest.spyOn(global, 'Date').mockImplementation(() => mockDate as unknown as string); + describe('Middy middleware', () => { const ENVIRONMENT_VARIABLES = process.env; beforeEach(() => { jest.resetModules(); + dateSpy.mockClear(); jest.spyOn(process.stdout, 'write').mockImplementation(() => null as unknown as boolean); process.env = { ...ENVIRONMENT_VARIABLES }; }); @@ -27,17 +31,139 @@ describe('Middy middleware', () => { describe('injectLambdaContext', () => { - test('when a logger object is passed, it adds the context to the logger instance', async () => { + describe('Feature: add context data', () => { + + test('when a logger object is passed, it adds the context to the logger instance', async () => { + + // Prepare + const logger = new Logger(); + const lambdaHandler = (): void => { + logger.info('This is an INFO log with some context'); + }; + const handler = middy(lambdaHandler).use(injectLambdaContext(logger)); + const event = { foo: 'bar' }; + const getRandomInt = (): number => Math.floor(Math.random() * 1000000000); + + const awsRequestId = getRandomInt().toString(); + const context = { + callbackWaitsForEmptyEventLoop: true, + functionVersion: '$LATEST', + functionName: 'foo-bar-function', + memoryLimitInMB: '128', + logGroupName: '/aws/lambda/foo-bar-function', + logStreamName: '2021/03/09/[$LATEST]abcdef123456abcdef123456abcdef123456', + invokedFunctionArn: 'arn:aws:lambda:eu-west-1:123456789012:function:foo-bar-function', + awsRequestId: awsRequestId, + getRemainingTimeInMillis: () => 1234, + done: () => console.log('Done!'), + fail: () => console.log('Failed!'), + succeed: () => console.log('Succeeded!'), + }; + + // Act + await handler(event, context, () => console.log('Lambda invoked!')); + + // Assess + expect(logger).toEqual(expect.objectContaining({ + logsSampled: false, + persistentLogAttributes: {}, + powertoolLogData: { + sampleRateValue: undefined, + awsRegion: 'eu-west-1', + environment: '', + lambdaContext: { + awsRequestId: awsRequestId, + coldStart: true, + functionName: 'foo-bar-function', + functionVersion: '$LATEST', + invokedFunctionArn: 'arn:aws:lambda:eu-west-1:123456789012:function:foo-bar-function', + memoryLimitInMB: 128, + }, + serviceName: 'hello-world', + }, + envVarsService: expect.any(EnvironmentVariablesService), + customConfigService: undefined, + logLevel: 'DEBUG', + logFormatter: expect.any(PowertoolLogFormatter), + })); + + }); + + test('when a logger array is passed, it adds the context to all logger instances', async () => { + + // Prepare + const logger = new Logger(); + const anotherLogger = new Logger(); + const lambdaHandler = (): void => { + logger.info('This is an INFO log with some context'); + anotherLogger.info('This is an INFO log with some context'); + }; + const handler = middy(lambdaHandler).use(injectLambdaContext([ logger, anotherLogger ])); + const event = { foo: 'bar' }; + + const getRandomInt = (): number => Math.floor(Math.random() * 1000000000); + + const awsRequestId = getRandomInt().toString(); + + const context = { + callbackWaitsForEmptyEventLoop: true, + functionVersion: '$LATEST', + functionName: 'foo-bar-function', + memoryLimitInMB: '128', + logGroupName: '/aws/lambda/foo-bar-function', + logStreamName: '2021/03/09/[$LATEST]abcdef123456abcdef123456abcdef123456', + invokedFunctionArn: 'arn:aws:lambda:eu-west-1:123456789012:function:foo-bar-function', + awsRequestId: awsRequestId, + getRemainingTimeInMillis: () => 1234, + done: () => console.log('Done!'), + fail: () => console.log('Failed!'), + succeed: () => console.log('Succeeded!'), + }; + + // Act + await handler(event, context, () => console.log('Lambda invoked!')); + + // Assess + const expectation = expect.objectContaining({ + logsSampled: false, + persistentLogAttributes: {}, + powertoolLogData: { + sampleRateValue: undefined, + awsRegion: 'eu-west-1', + environment: '', + lambdaContext: { + awsRequestId: awsRequestId, + coldStart: true, + functionName: 'foo-bar-function', + functionVersion: '$LATEST', + invokedFunctionArn: 'arn:aws:lambda:eu-west-1:123456789012:function:foo-bar-function', + memoryLimitInMB: 128, + }, + serviceName: 'hello-world', + }, + envVarsService: expect.any(EnvironmentVariablesService), + customConfigService: undefined, + logLevel: 'DEBUG', + logFormatter: expect.any(PowertoolLogFormatter), + console: expect.any(Console), + }); + expect(logger).toEqual(expectation); + expect(anotherLogger).toEqual(expectation); + + }); + + }); + test('when a logger is passed with option logEvent set to true, it logs the event', async () => { // Prepare const logger = new Logger(); + const consoleSpy = jest.spyOn(logger['console'], 'info').mockImplementation(); const lambdaHandler = (): void => { logger.info('This is an INFO log with some context'); }; - const handler = middy(lambdaHandler).use(injectLambdaContext(logger)); + const handler = middy(lambdaHandler).use(injectLambdaContext(logger , { logEvent: true })); const event = { foo: 'bar' }; const getRandomInt = (): number => Math.floor(Math.random() * 1000000000); - const awsRequestId = getRandomInt().toString(); const context = { callbackWaitsForEmptyEventLoop: true, @@ -58,47 +184,62 @@ describe('Middy middleware', () => { await handler(event, context, () => console.log('Lambda invoked!')); // Assess - expect(logger).toEqual(expect.objectContaining({ - logsSampled: false, - persistentLogAttributes: {}, - powertoolLogData: { - sampleRateValue: undefined, - awsRegion: 'eu-west-1', - environment: '', - lambdaContext: { - awsRequestId: awsRequestId, - coldStart: true, - functionName: 'foo-bar-function', - functionVersion: '$LATEST', - invokedFunctionArn: 'arn:aws:lambda:eu-west-1:123456789012:function:foo-bar-function', - memoryLimitInMB: 128, - }, - serviceName: 'hello-world', - }, - envVarsService: expect.any(EnvironmentVariablesService), - customConfigService: undefined, - logLevel: 'DEBUG', - logFormatter: expect.any(PowertoolLogFormatter), + expect(consoleSpy).toBeCalledTimes(2); + expect(consoleSpy).toHaveBeenNthCalledWith(1, JSON.stringify({ + cold_start: true, + function_arn: 'arn:aws:lambda:eu-west-1:123456789012:function:foo-bar-function', + function_memory_size: 128, + function_name: 'foo-bar-function', + function_request_id: awsRequestId, + level: 'INFO', + message: 'Lambda invocation event', + service: 'hello-world', + timestamp: '2016-06-20T12:08:10.000Z', + xray_trace_id: '1-5759e988-bd862e3fe1be46a994272793', + event: { + foo: 'bar' + } })); }); - test('when a logger array is passed, it adds the context to all logger instances', async () => { + test('when a logger is passed with option logEvent set to true, it logs the event', async () => { // Prepare - const logger = new Logger(); - const anotherLogger = new Logger(); + const configService: ConfigServiceInterface = { + get(name: string): string { + return `a-string-from-${name}`; + }, + getCurrentEnvironment(): string { + return 'dev'; + }, + getLogEvent(): boolean { + return true; + }, + getLogLevel(): string { + return 'INFO'; + }, + getSampleRateValue(): number | undefined { + return undefined; + }, + getServiceName(): string { + return 'my-backend-service'; + }, + + }; + // Prepare + + const logger = new Logger({ + customConfigService: configService, + }); + const consoleSpy = jest.spyOn(logger['console'], 'info').mockImplementation(); const lambdaHandler = (): void => { logger.info('This is an INFO log with some context'); - anotherLogger.info('This is an INFO log with some context'); }; - const handler = middy(lambdaHandler).use(injectLambdaContext([ logger, anotherLogger ])); + const handler = middy(lambdaHandler).use(injectLambdaContext(logger , { logEvent: true })); const event = { foo: 'bar' }; - const getRandomInt = (): number => Math.floor(Math.random() * 1000000000); - const awsRequestId = getRandomInt().toString(); - const context = { callbackWaitsForEmptyEventLoop: true, functionVersion: '$LATEST', @@ -118,34 +259,79 @@ describe('Middy middleware', () => { await handler(event, context, () => console.log('Lambda invoked!')); // Assess - const expectation = expect.objectContaining({ - logsSampled: false, - persistentLogAttributes: {}, - powertoolLogData: { - sampleRateValue: undefined, - awsRegion: 'eu-west-1', - environment: '', - lambdaContext: { - awsRequestId: awsRequestId, - coldStart: true, - functionName: 'foo-bar-function', - functionVersion: '$LATEST', - invokedFunctionArn: 'arn:aws:lambda:eu-west-1:123456789012:function:foo-bar-function', - memoryLimitInMB: 128, - }, - serviceName: 'hello-world', - }, - envVarsService: expect.any(EnvironmentVariablesService), - customConfigService: undefined, + expect(consoleSpy).toBeCalledTimes(2); + expect(consoleSpy).toHaveBeenNthCalledWith(1, JSON.stringify({ + cold_start: true, + function_arn: 'arn:aws:lambda:eu-west-1:123456789012:function:foo-bar-function', + function_memory_size: 128, + function_name: 'foo-bar-function', + function_request_id: awsRequestId, + level: 'INFO', + message: 'Lambda invocation event', + service: 'my-backend-service', + timestamp: '2016-06-20T12:08:10.000Z', + xray_trace_id: '1-5759e988-bd862e3fe1be46a994272793', + event: { + foo: 'bar' + } + })); + + }); + + }); + + describe('Feature: clear state', () => { + + test('when enabled, the persistent log attributes added in the handler are removed after the handler\'s code is executed', async () => { + + // Prepare + const logger = new Logger({ logLevel: 'DEBUG', - logFormatter: expect.any(PowertoolLogFormatter), - console: expect.any(Console), + persistentLogAttributes: { + foo: 'bar', + biz: 'baz' + } + }); + const context = { + callbackWaitsForEmptyEventLoop: true, + functionVersion: '$LATEST', + functionName: 'foo-bar-function', + memoryLimitInMB: '128', + logGroupName: '/aws/lambda/foo-bar-function', + logStreamName: '2021/03/09/[$LATEST]abcdef123456abcdef123456abcdef123456', + invokedFunctionArn: 'arn:aws:lambda:eu-west-1:123456789012:function:foo-bar-function', + awsRequestId: 'abcdef123456abcdef123456', + getRemainingTimeInMillis: () => 1234, + done: () => console.log('Done!'), + fail: () => console.log('Failed!'), + succeed: () => console.log('Succeeded!'), + }; + + const lambdaHandler = (event: { user_id: string }): void => { + // Only add these persistent for the scope of this lambda handler + logger.appendKeys({ + details: { user_id: event['user_id'] } + }); + logger.debug('This is a DEBUG log with the user_id'); + logger.debug('This is another DEBUG log with the user_id'); + }; + const handler = middy(lambdaHandler).use(injectLambdaContext(logger, { clearState: true })); + const persistentAttribs = { ...logger.getPersistentLogAttributes() }; + + // Act + await handler({ user_id: '123456' }, context, () => console.log('Lambda invoked!')); + const persistentAttribsAfterInvocation = { ...logger.getPersistentLogAttributes() }; + + // Assess + expect(persistentAttribs).toEqual({ + foo: 'bar', + biz: 'baz' }); - expect(logger).toEqual(expectation); - expect(anotherLogger).toEqual(expectation); + expect(persistentAttribsAfterInvocation).toEqual(persistentAttribs); }); }); -}); \ No newline at end of file +}); + diff --git a/packages/metrics/CHANGELOG.md b/packages/metrics/CHANGELOG.md index 36b90f18d3..486402e61b 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. +# [0.11.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.10.0...v0.11.0) (2022-06-23) + +**Note:** Version bump only for package @aws-lambda-powertools/metrics + + + + + # [0.10.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.9.1...v0.10.0) (2022-06-02) diff --git a/packages/metrics/package.json b/packages/metrics/package.json index 872088f89b..a8d940277d 100644 --- a/packages/metrics/package.json +++ b/packages/metrics/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/metrics", - "version": "0.10.0", + "version": "0.11.0", "description": "The metrics package for the AWS Lambda Powertools for TypeScript library", "author": { "name": "Amazon Web Services", @@ -22,6 +22,7 @@ "lint": "eslint --ext .ts --fix --no-error-on-unmatched-pattern src tests", "format": "eslint --fix --ext .ts --fix --no-error-on-unmatched-pattern src tests", "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/", + "package-bundle": "../../package-bundler.sh ${LERNA_PACKAGE_NAME}-bundle ./dist/", "prepare": "npm run build", "prepublishOnly": "npm test && npm run lint", "preversion": "npm run lint", @@ -48,6 +49,6 @@ "url": "https://github.com/awslabs/aws-lambda-powertools-typescript/issues" }, "dependencies": { - "@aws-lambda-powertools/commons": "^0.10.0" + "@aws-lambda-powertools/commons": "^0.11.0" } } diff --git a/packages/tracer/CHANGELOG.md b/packages/tracer/CHANGELOG.md index eef8b023fd..0ac555c46a 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. +# [0.11.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.10.0...v0.11.0) (2022-06-23) + +**Note:** Version bump only for package @aws-lambda-powertools/tracer + + + + + # [0.10.0](https://github.com/awslabs/aws-lambda-powertools-typescript/compare/v0.9.1...v0.10.0) (2022-06-02) diff --git a/packages/tracer/package.json b/packages/tracer/package.json index 70e186831b..7780f28b46 100644 --- a/packages/tracer/package.json +++ b/packages/tracer/package.json @@ -1,6 +1,6 @@ { "name": "@aws-lambda-powertools/tracer", - "version": "0.10.0", + "version": "0.11.0", "description": "The tracer package for the AWS Lambda Powertools for TypeScript library", "author": { "name": "Amazon Web Services", @@ -26,16 +26,17 @@ "preversion": "npm run lint", "version": "npm run format && git add -A src", "postversion": "git push && git push --tags", - "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/" + "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/", + "package-bundle": "../../package-bundler.sh ${LERNA_PACKAGE_NAME}-bundle ./dist/" }, "homepage": "https://github.com/awslabs/aws-lambda-powertools-typescript/tree/master/packages/tracer#readme", "license": "MIT-0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "devDependencies": { - "@aws-sdk/client-dynamodb": "^3.58.0", + "@aws-sdk/client-dynamodb": "^3.100.0", "@types/promise-retry": "^1.1.3", - "axios": "^0.27.1", + "axios": "^0.27.2", "promise-retry": "^2.0.1" }, "files": [ @@ -49,7 +50,7 @@ "url": "https://github.com/awslabs/aws-lambda-powertools-typescript/issues" }, "dependencies": { - "@aws-lambda-powertools/commons": "^0.10.0", - "aws-xray-sdk-core": "^3.3.4" + "@aws-lambda-powertools/commons": "^0.11.0", + "aws-xray-sdk-core": "^3.3.6" } }