diff --git a/.gitattributes b/.gitattributes
index 829e37b..97aeb11 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -4,6 +4,7 @@
/.eslintrc.json linguist-generated
/.gitattributes linguist-generated
/.github/pull_request_template.md linguist-generated
+/.github/workflows/auto-approve.yml linguist-generated
/.github/workflows/build.yml linguist-generated
/.github/workflows/pull-request-lint.yml linguist-generated
/.github/workflows/release.yml linguist-generated
diff --git a/.github/workflows/auto-approve.yml b/.github/workflows/auto-approve.yml
new file mode 100644
index 0000000..1163285
--- /dev/null
+++ b/.github/workflows/auto-approve.yml
@@ -0,0 +1,21 @@
+# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
+
+name: auto-approve
+on:
+ pull_request_target:
+ types:
+ - labeled
+ - opened
+ - synchronize
+ - reopened
+ - ready_for_review
+jobs:
+ approve:
+ runs-on: ubuntu-latest
+ permissions:
+ pull-requests: write
+ if: contains(github.event.pull_request.labels.*.name, 'auto-approve') && (github.event.pull_request.user.login == 'flyingImer')
+ steps:
+ - uses: hmarr/auto-approve-action@v2.1.0
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 62545d3..6810829 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -23,6 +23,10 @@ jobs:
run: yarn install --check-files
- name: build
run: npx projen build
+ - name: Upload coverage to Codecov
+ uses: codecov/codecov-action@v1
+ with:
+ directory: coverage
- id: self_mutation
name: Find mutations
run: |-
diff --git a/.github/workflows/upgrade-main.yml b/.github/workflows/upgrade-main.yml
index 379cd19..d0b7ded 100644
--- a/.github/workflows/upgrade-main.yml
+++ b/.github/workflows/upgrade-main.yml
@@ -77,6 +77,7 @@ jobs:
*Automatically created by projen via the "upgrade-main" workflow*
branch: github-actions/upgrade-main
title: "chore(deps): upgrade dependencies"
+ labels: auto-approve
body: |-
Upgrades project dependencies. See details in [workflow run].
diff --git a/.gitignore b/.gitignore
index e31dd32..e86bd7d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,7 @@
!/.projen/deps.json
!/.projen/files.json
!/.github/workflows/pull-request-lint.yml
+!/.github/workflows/auto-approve.yml
!/package.json
!/LICENSE
!/.npmignore
@@ -50,3 +51,7 @@ junit.xml
.jsii
tsconfig.json
!/API.md
+**/*.bak
+example/**/*.js
+example/**/*.d.ts
+example/cdk.out
diff --git a/.projen/deps.json b/.projen/deps.json
index a42e018..acff76b 100644
--- a/.projen/deps.json
+++ b/.projen/deps.json
@@ -1,9 +1,17 @@
{
"dependencies": [
+ {
+ "name": "@types/aws-lambda",
+ "type": "build"
+ },
{
"name": "@types/jest",
"type": "build"
},
+ {
+ "name": "@types/lodash.isstring",
+ "type": "build"
+ },
{
"name": "@types/node",
"version": "^14",
@@ -21,7 +29,7 @@
},
{
"name": "aws-cdk-lib",
- "version": "2.1.0",
+ "version": "2.21.0",
"type": "build"
},
{
@@ -29,6 +37,11 @@
"version": "10.0.5",
"type": "build"
},
+ {
+ "name": "esbuild",
+ "version": "0",
+ "type": "build"
+ },
{
"name": "eslint-import-resolver-node",
"type": "build"
@@ -99,9 +112,25 @@
"name": "typescript",
"type": "build"
},
+ {
+ "name": "aws4-axios",
+ "type": "bundled"
+ },
+ {
+ "name": "axios",
+ "type": "bundled"
+ },
+ {
+ "name": "lodash.isstring",
+ "type": "bundled"
+ },
+ {
+ "name": "pino",
+ "type": "bundled"
+ },
{
"name": "aws-cdk-lib",
- "version": "^2.1.0",
+ "version": "^2.21.0",
"type": "peer"
},
{
diff --git a/.projen/files.json b/.projen/files.json
index ffcd5fd..4aa4a94 100644
--- a/.projen/files.json
+++ b/.projen/files.json
@@ -3,6 +3,7 @@
".eslintrc.json",
".gitattributes",
".github/pull_request_template.md",
+ ".github/workflows/auto-approve.yml",
".github/workflows/build.yml",
".github/workflows/pull-request-lint.yml",
".github/workflows/release.yml",
diff --git a/.projen/tasks.json b/.projen/tasks.json
index 36750df..cedc989 100644
--- a/.projen/tasks.json
+++ b/.projen/tasks.json
@@ -255,19 +255,19 @@
"exec": "yarn upgrade npm-check-updates"
},
{
- "exec": "npm-check-updates --dep dev --upgrade --target=minor --reject='aws-cdk-lib,constructs'"
+ "exec": "npm-check-updates --dep dev --upgrade --target=minor --reject='aws-cdk-lib,constructs,esbuild'"
},
{
- "exec": "npm-check-updates --dep optional --upgrade --target=minor --reject='aws-cdk-lib,constructs'"
+ "exec": "npm-check-updates --dep optional --upgrade --target=minor --reject='aws-cdk-lib,constructs,esbuild'"
},
{
- "exec": "npm-check-updates --dep peer --upgrade --target=minor --reject='aws-cdk-lib,constructs'"
+ "exec": "npm-check-updates --dep peer --upgrade --target=minor --reject='aws-cdk-lib,constructs,esbuild'"
},
{
- "exec": "npm-check-updates --dep prod --upgrade --target=minor --reject='aws-cdk-lib,constructs'"
+ "exec": "npm-check-updates --dep prod --upgrade --target=minor --reject='aws-cdk-lib,constructs,esbuild'"
},
{
- "exec": "npm-check-updates --dep bundle --upgrade --target=minor --reject='aws-cdk-lib,constructs'"
+ "exec": "npm-check-updates --dep bundle --upgrade --target=minor --reject='aws-cdk-lib,constructs,esbuild'"
},
{
"exec": "yarn install --check-files"
diff --git a/.projenrc.js b/.projenrc.js
index 26ad868..bd47387 100644
--- a/.projenrc.js
+++ b/.projenrc.js
@@ -2,14 +2,39 @@ const { awscdk } = require('projen');
const project = new awscdk.AwsCdkConstructLibrary({
author: 'flyingImer',
authorAddress: 'ej.wang.devs@gmail.com',
- cdkVersion: '2.1.0',
+ cdkVersion: '2.21.0',
+
+ autoApproveOptions: {
+ allowedUsernames: ['flyingImer'],
+ },
+
+ autoApproveUpgrades: true,
+
+ codeCov: true,
+
defaultReleaseBranch: 'main',
name: 'cdk-cors-proxy',
repositoryUrl: 'https://github.com/flyingImer/cdk-cors-proxy.git',
+ stability: 'experimental',
// deps: [], /* Runtime dependencies of this module. */
- // description: undefined, /* The description is just a string that helps people understand the purpose of the package. */
- // devDeps: [], /* Build dependencies for this module. */
+ description: 'A proxy to make an endpoint CORS-compatible', /* The description is just a string that helps people understand the purpose of the package. */
+ devDeps: [
+ '@types/aws-lambda',
+ '@types/lodash.isstring',
+ 'esbuild@0',
+ ], /* Build dependencies for this module. */
+ bundledDeps: [
+ 'axios',
+ 'aws4-axios',
+ 'lodash.isstring',
+ 'pino',
+ ],
// packageName: undefined, /* The "name" in package.json. */
});
+
+project.tsconfigDev.addInclude('example/**/*.ts');
+project.gitignore.exclude('**/*.bak');
+project.gitignore.exclude('example/**/*.js', 'example/**/*.d.ts', 'example/cdk.out');
+
project.synth();
\ No newline at end of file
diff --git a/API.md b/API.md
new file mode 100644
index 0000000..9b07ba6
--- /dev/null
+++ b/API.md
@@ -0,0 +1,353 @@
+# API Reference
+
+## Constructs
+
+### LambdaCorsProxy
+
+A Lambda proxy that can be used to proxy requests to hit a sigV4-required target endpoint.
+
+#### Initializers
+
+```typescript
+import { LambdaCorsProxy } from 'cdk-cors-proxy'
+
+new LambdaCorsProxy(scope: Construct, id: string, props: LambdaCorsProxyProps)
+```
+
+| **Name** | **Type** | **Description** |
+| --- | --- | --- |
+| scope
| constructs.Construct
| *No description.* |
+| id
| string
| *No description.* |
+| props
| LambdaCorsProxyProps
| *No description.* |
+
+---
+
+##### `scope`Required
+
+- *Type:* constructs.Construct
+
+---
+
+##### `id`Required
+
+- *Type:* string
+
+---
+
+##### `props`Required
+
+- *Type:* LambdaCorsProxyProps
+
+---
+
+#### Methods
+
+| **Name** | **Description** |
+| --- | --- |
+| toString
| Returns a string representation of this construct. |
+
+---
+
+##### `toString`
+
+```typescript
+public toString(): string
+```
+
+Returns a string representation of this construct.
+
+#### Static Functions
+
+| **Name** | **Description** |
+| --- | --- |
+| isConstruct
| Checks if `x` is a construct. |
+
+---
+
+##### ~~`isConstruct`~~
+
+```typescript
+import { LambdaCorsProxy } from 'cdk-cors-proxy'
+
+LambdaCorsProxy.isConstruct(x: any)
+```
+
+Checks if `x` is a construct.
+
+###### `x`Required
+
+- *Type:* any
+
+Any object.
+
+---
+
+#### Properties
+
+| **Name** | **Type** | **Description** |
+| --- | --- | --- |
+| node
| constructs.Node
| The tree node. |
+| functionUrl
| aws-cdk-lib.aws_lambda.IFunctionUrl
| *No description.* |
+| lambdaFunction
| aws-cdk-lib.aws_lambda.IFunction
| *No description.* |
+
+---
+
+##### `node`Required
+
+```typescript
+public readonly node: Node;
+```
+
+- *Type:* constructs.Node
+
+The tree node.
+
+---
+
+##### `functionUrl`Required
+
+```typescript
+public readonly functionUrl: IFunctionUrl;
+```
+
+- *Type:* aws-cdk-lib.aws_lambda.IFunctionUrl
+
+---
+
+##### `lambdaFunction`Required
+
+```typescript
+public readonly lambdaFunction: IFunction;
+```
+
+- *Type:* aws-cdk-lib.aws_lambda.IFunction
+
+---
+
+
+## Structs
+
+### LambdaCorsProxyProps
+
+#### Initializer
+
+```typescript
+import { LambdaCorsProxyProps } from 'cdk-cors-proxy'
+
+const lambdaCorsProxyProps: LambdaCorsProxyProps = { ... }
+```
+
+#### Properties
+
+| **Name** | **Type** | **Description** |
+| --- | --- | --- |
+| targetEndpoint
| ProxyOptions
| *No description.* |
+| lambdaFunctionUrlOptions
| aws-cdk-lib.aws_lambda.FunctionUrlOptions
| *No description.* |
+| lambdaLogLevel
| string
| *No description.* |
+| lambdaOptions
| aws-cdk-lib.aws_lambda.FunctionOptions
| *No description.* |
+| sigV4Options
| SigV4Options
| *No description.* |
+
+---
+
+##### `targetEndpoint`Required
+
+```typescript
+public readonly targetEndpoint: ProxyOptions;
+```
+
+- *Type:* ProxyOptions
+
+---
+
+##### `lambdaFunctionUrlOptions`Optional
+
+```typescript
+public readonly lambdaFunctionUrlOptions: FunctionUrlOptions;
+```
+
+- *Type:* aws-cdk-lib.aws_lambda.FunctionUrlOptions
+
+---
+
+##### `lambdaLogLevel`Optional
+
+```typescript
+public readonly lambdaLogLevel: string;
+```
+
+- *Type:* string
+- *Default:* 'info'
+
+---
+
+##### `lambdaOptions`Optional
+
+```typescript
+public readonly lambdaOptions: FunctionOptions;
+```
+
+- *Type:* aws-cdk-lib.aws_lambda.FunctionOptions
+
+---
+
+##### `sigV4Options`Optional
+
+```typescript
+public readonly sigV4Options: SigV4Options;
+```
+
+- *Type:* SigV4Options
+
+---
+
+### ProxyOptions
+
+#### Initializer
+
+```typescript
+import { ProxyOptions } from 'cdk-cors-proxy'
+
+const proxyOptions: ProxyOptions = { ... }
+```
+
+#### Properties
+
+| **Name** | **Type** | **Description** |
+| --- | --- | --- |
+| url
| string
| *No description.* |
+| allowSelfSignedCerts
| boolean
| *No description.* |
+| forceDecodeBody
| boolean
| For 'content-type' of 'application/json' or 'text/*', body will not be base64 encoded. |
+| needToStripHeaderKeys
| string[]
| *No description.* |
+
+---
+
+##### `url`Required
+
+```typescript
+public readonly url: string;
+```
+
+- *Type:* string
+
+---
+
+##### `allowSelfSignedCerts`Optional
+
+```typescript
+public readonly allowSelfSignedCerts: boolean;
+```
+
+- *Type:* boolean
+- *Default:* false
+
+---
+
+##### `forceDecodeBody`Optional
+
+```typescript
+public readonly forceDecodeBody: boolean;
+```
+
+- *Type:* boolean
+- *Default:* false
+
+For 'content-type' of 'application/json' or 'text/*', body will not be base64 encoded.
+
+For other content types, please enable this option as needed.
+
+"Don’t forget to set the request’s Content-type to application/json or text/* in your tests, otherwise, the body will be base64-encoded by default, and you’ll need to decode it in the Lambda handler."
+ref: https://aws.amazon.com/blogs/aws/announcing-aws-lambda-function-urls-built-in-https-endpoints-for-single-function-microservices/
+
+---
+
+##### `needToStripHeaderKeys`Optional
+
+```typescript
+public readonly needToStripHeaderKeys: string[];
+```
+
+- *Type:* string[]
+- *Default:* LambdaCorsProxy.DEFAULT_HEADERS_TO_STRIP
+
+---
+
+### SigV4Options
+
+#### Initializer
+
+```typescript
+import { SigV4Options } from 'cdk-cors-proxy'
+
+const sigV4Options: SigV4Options = { ... }
+```
+
+#### Properties
+
+| **Name** | **Type** | **Description** |
+| --- | --- | --- |
+| region
| string
| The targeting region. |
+| service
| string
| The requesting service name. |
+
+---
+
+##### `region`Optional
+
+```typescript
+public readonly region: string;
+```
+
+- *Type:* string
+- *Default:* 'AWS_REGION' from Lambda runtime environment https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime
+
+The targeting region.
+
+---
+
+##### `service`Optional
+
+```typescript
+public readonly service: string;
+```
+
+- *Type:* string
+- *Default:* 'execute-api' for API Gateway
+
+The requesting service name.
+
+---
+
+## Classes
+
+### Hello
+
+#### Initializers
+
+```typescript
+import { Hello } from 'cdk-cors-proxy'
+
+new Hello()
+```
+
+| **Name** | **Type** | **Description** |
+| --- | --- | --- |
+
+---
+
+#### Methods
+
+| **Name** | **Description** |
+| --- | --- |
+| sayHello
| *No description.* |
+
+---
+
+##### `sayHello`
+
+```typescript
+public sayHello(): string
+```
+
+
+
+
+
diff --git a/README.md b/README.md
index b3fa7dd..52a2dcf 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,38 @@
-# replace this
\ No newline at end of file
+# cdk-cors-proxy
+![License]( https://img.shields.io/github/license/flyingImer/cdk-cors-proxy)
+![Build](https://github.com/flyingImer/cdk-cors-proxy/actions/workflows/build.yml/badge.svg)
+![Belease](https://github.com/flyingImer/cdk-cors-proxy/actions/workflows/release.yml/badge.svg)
+![Commit activity](https://img.shields.io/github/commit-activity/w/flyingImer/cdk-cors-proxy)
+
+
+[![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors-)
+
+
+> A proxy to make an endpoint CORS-compatible
+
+## Install
+
+TypeScript/JavaScript:
+
+```console
+$ npm install cdk-cors-proxy
+```
+## Contributors ✨
+
+Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
+
+
+
+
+
+
+
+
+
+
+
+This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
\ No newline at end of file
diff --git a/example/cdk.json b/example/cdk.json
new file mode 100644
index 0000000..a8480a7
--- /dev/null
+++ b/example/cdk.json
@@ -0,0 +1,3 @@
+{
+ "app": "npx ts-node index.ts"
+}
\ No newline at end of file
diff --git a/example/index.ts b/example/index.ts
new file mode 100644
index 0000000..dc3c5e9
--- /dev/null
+++ b/example/index.ts
@@ -0,0 +1,69 @@
+import { Stack, StackProps, App, CfnOutput, Duration } from 'aws-cdk-lib';
+import { Cors } from 'aws-cdk-lib/aws-apigateway';
+import { AccountPrincipal, PolicyStatement } from 'aws-cdk-lib/aws-iam';
+import { FunctionUrlAuthType, HttpMethod } from 'aws-cdk-lib/aws-lambda';
+import { Construct } from 'constructs';
+import { LambdaCorsProxy } from '../src/lambda-proxy';
+
+class TestStack extends Stack {
+ constructor(scope: Construct, id: string, props: StackProps = {}) {
+ super(scope, id, props);
+
+ const lambdaProxy = new LambdaCorsProxy(this, 'LambdaProxy', {
+ targetEndpoint: {
+ url: 'https://xxxxxxxx.execute-api.us-east-1.amazonaws.com/devo',
+ },
+ sigV4Options: {
+ service: 'execute-api',
+ },
+ lambdaFunctionUrlOptions: {
+ authType: FunctionUrlAuthType.AWS_IAM,
+ cors: {
+ allowedOrigins: ['https://example.com'],
+ allowedHeaders: [
+ ...Cors.DEFAULT_HEADERS,
+ 'Amz-Sdk-Invocation-Id',
+ 'Amz-Sdk-Request',
+ 'Authorization',
+ 'Content-Length',
+ 'content-encoding',
+ 'Content-Type',
+ 'Date',
+ 'Host',
+ 'X-Amz-Content-Sha256',
+ 'X-Amz-Date',
+ 'X-Amz-Security-Token',
+ 'X-Amz-Target',
+ 'X-Amz-User-Agent',
+ 'X-Amzn-Trace-Id',
+ ],
+ allowedMethods: [
+ HttpMethod.ALL,
+ ],
+ allowCredentials: true,
+ maxAge: Duration.seconds(600),
+ },
+ },
+ });
+
+ lambdaProxy.lambdaFunction.addToRolePolicy(new PolicyStatement({
+ actions: ['execute-api:Invoke'],
+ resources: ['arn:aws:execute-api:us-east-1:012345678901:xxxxxxxx/devo/*'],
+ }));
+
+ lambdaProxy.functionUrl.grantInvokeUrl(new AccountPrincipal('123456789012'));
+
+ new CfnOutput(this, 'LambdaProxyEndpointUrl', {
+ value: lambdaProxy.functionUrl.url,
+ });
+ }
+}
+
+class TestApp extends App {
+ constructor() {
+ super();
+ new TestStack(this, 'CorsExamples');
+ }
+}
+
+new TestApp().synth();
\ No newline at end of file
diff --git a/package.json b/package.json
index 4b4c2de..33dde26 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,6 @@
{
"name": "cdk-cors-proxy",
+ "description": "A proxy to make an endpoint CORS-compatible",
"repository": {
"type": "git",
"url": "https://github.com/flyingImer/cdk-cors-proxy.git"
@@ -35,12 +36,15 @@
"organization": false
},
"devDependencies": {
+ "@types/aws-lambda": "^8.10.97",
"@types/jest": "^27.5.1",
+ "@types/lodash.isstring": "^4.0.7",
"@types/node": "^14",
"@typescript-eslint/eslint-plugin": "^5",
"@typescript-eslint/parser": "^5",
- "aws-cdk-lib": "2.1.0",
+ "aws-cdk-lib": "2.21.0",
"constructs": "10.0.5",
+ "esbuild": "0",
"eslint": "^8",
"eslint-import-resolver-node": "^0.3.6",
"eslint-import-resolver-typescript": "^2.7.1",
@@ -59,9 +63,21 @@
"typescript": "^4.7.2"
},
"peerDependencies": {
- "aws-cdk-lib": "^2.1.0",
+ "aws-cdk-lib": "^2.21.0",
"constructs": "^10.0.5"
},
+ "dependencies": {
+ "aws4-axios": "^2.4.9",
+ "axios": "^0.27.2",
+ "lodash.isstring": "^4.0.1",
+ "pino": "^8.0.0"
+ },
+ "bundledDependencies": [
+ "aws4-axios",
+ "axios",
+ "lodash.isstring",
+ "pino"
+ ],
"keywords": [
"cdk"
],
@@ -109,7 +125,7 @@
}
},
"types": "lib/index.d.ts",
- "stability": "stable",
+ "stability": "experimental",
"jsii": {
"outdir": "dist",
"targets": {},
diff --git a/src/index.ts b/src/index.ts
index 92c94b8..fa03872 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -2,4 +2,6 @@ export class Hello {
public sayHello() {
return 'hello, world!';
}
-}
\ No newline at end of file
+}
+
+export * from './lambda-proxy';
\ No newline at end of file
diff --git a/src/lambda-proxy.ts b/src/lambda-proxy.ts
new file mode 100644
index 0000000..e6f7299
--- /dev/null
+++ b/src/lambda-proxy.ts
@@ -0,0 +1,102 @@
+import * as path from 'path';
+import { Duration, Stack } from 'aws-cdk-lib';
+import { FunctionOptions, FunctionUrlOptions, IFunction, IFunctionUrl } from 'aws-cdk-lib/aws-lambda';
+import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs';
+import { Construct } from 'constructs';
+import { LevelWithSilent } from 'pino';
+
+export interface ProxyOptions {
+ // TODO: should we remove trailing slash(es)?
+ readonly url: string;
+ /**
+ * @default false
+ */
+ readonly allowSelfSignedCerts?: boolean;
+ /**
+ * For 'content-type' of 'application/json' or 'text/*', body will not be base64 encoded.
+ * For other content types, please enable this option as needed.
+ *
+ * "Don’t forget to set the request’s Content-type to application/json or text/* in your tests, otherwise, the body will be base64-encoded by default, and you’ll need to decode it in the Lambda handler."
+ * ref: https://aws.amazon.com/blogs/aws/announcing-aws-lambda-function-urls-built-in-https-endpoints-for-single-function-microservices/
+ * @default false
+ */
+ readonly forceDecodeBody?: boolean;
+ /**
+ * @default LambdaCorsProxy.DEFAULT_HEADERS_TO_STRIP
+ */
+ readonly needToStripHeaderKeys?: string[];
+}
+
+export interface SigV4Options {
+ /**
+ * The targeting region.
+ *
+ * @default 'AWS_REGION' from Lambda runtime environment
+ * https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime
+ */
+ readonly region?: string;
+ /**
+ * The requesting service name.
+ *
+ * @default 'execute-api' for API Gateway
+ */
+ readonly service?: string;
+}
+
+export interface LambdaCorsProxyProps {
+ readonly targetEndpoint: ProxyOptions;
+ readonly sigV4Options?: SigV4Options;
+ readonly lambdaOptions?: FunctionOptions;
+
+ readonly lambdaFunctionUrlOptions?: FunctionUrlOptions;
+
+ /**
+ * @default 'info'
+ */
+ readonly lambdaLogLevel?: LevelWithSilent;
+}
+
+/**
+ * A Lambda proxy that can be used to proxy requests to hit a sigV4-required target endpoint.
+ */
+export class LambdaCorsProxy extends Construct {
+ private static readonly DEFAULT_HEADERS_TO_STRIP = [
+ 'accept-encoding',
+ 'host',
+ 'x-amz-date',
+ 'x-amz-security-token',
+ 'x-amzn-trace-id',
+ 'x-forwarded-for',
+ 'x-forwarded-port',
+ 'x-forwarded-proto',
+ 'forwarded',
+ 'content-length',
+ ];
+ public readonly functionUrl: IFunctionUrl;
+ private readonly _lambdaFunction: NodejsFunction;
+
+ constructor(scope: Construct, id: string, props: LambdaCorsProxyProps) {
+ super(scope, id);
+
+ this._lambdaFunction = new NodejsFunction(this, 'Handler', {
+ entry: path.join(__dirname, 'lambda/proxy.ts'),
+ handler: 'handler',
+ timeout: Duration.seconds(30),
+ environment: {
+ ENDPOINT_URL: props.targetEndpoint.url,
+ ENDPOINT_REGION: props.sigV4Options?.region || Stack.of(this).region,
+ ENDPOINT_SERVICE: props.sigV4Options?.service || 'execute-api',
+ ALLOW_SELF_SIGNED_CERTS: props.targetEndpoint.allowSelfSignedCerts ? 'true' : 'false',
+ FORCE_DECODE_BODY: props.targetEndpoint.forceDecodeBody ? 'true' : 'false',
+ NEED_TO_STRIP_HEADER_KEYS: (props.targetEndpoint.needToStripHeaderKeys || LambdaCorsProxy.DEFAULT_HEADERS_TO_STRIP).join(','),
+ LOG_LEVEL: props.lambdaLogLevel || 'info',
+ },
+ ...props.lambdaOptions,
+ });
+ this.functionUrl = this._lambdaFunction.addFunctionUrl(props.lambdaFunctionUrlOptions);
+ }
+
+ get lambdaFunction(): IFunction {
+ return this._lambdaFunction;
+ }
+}
\ No newline at end of file
diff --git a/src/lambda/proxy.ts b/src/lambda/proxy.ts
new file mode 100644
index 0000000..235116a
--- /dev/null
+++ b/src/lambda/proxy.ts
@@ -0,0 +1,147 @@
+import * as https from 'https';
+import { aws4Interceptor } from 'aws4-axios';
+import axios, { AxiosResponse } from 'axios';
+// @ts-ignore
+import isString from 'lodash.isstring';
+import pino from 'pino';
+
+// @ts-ignore
+const url: string = process.env.ENDPOINT_URL;
+const region: string = (process.env.ENDPOINT_REGION ?? process.env.AWS_REGION)!;
+const service: string = process.env.ENDPOINT_SERVICE ?? 'execute-api';
+const forceDecodeBody: boolean = process.env.FORCE_DECODE_BODY === 'true';
+const allowSelfSignedCerts: boolean = process.env.ALLOW_SELF_SIGNED_CERTS === 'true';
+const needToStripHeaderKeys: string[] = process.env.NEED_TO_STRIP_HEADER_KEYS?.split(',') ?? [];
+const logLevel: string = process.env.LOG_LEVEL ?? 'info';
+
+const logger = pino({ level: logLevel, nestedKey: 'details' });
+
+if (!url) {
+ throw new Error('Environment variable `ENDPOINT_URL` is not set!');
+}
+
+logger.info({
+ logLevel,
+ url,
+ region,
+ service,
+ forceDecodeBody,
+ allowSelfSignedCerts,
+ needToStripHeaderKeys,
+}, 'proxy configurations');
+
+const sanitizeHeaders = (headers: { [key: string]: string | undefined }): { [key: string]: string } => {
+ const lowerCasedKeyHeaders = Object.entries(headers).reduce((res, cur) => ({ [cur[0].toLowerCase()]: cur[1], ...res }), {});
+ // @ts-ignore
+ needToStripHeaderKeys.forEach(k => delete lowerCasedKeyHeaders[k]);
+ logger.debug(lowerCasedKeyHeaders, 'sanitized headers');
+ return lowerCasedKeyHeaders;
+};
+
+const decodeBodyIfApplies = (event: LambdaFunctionUrlEvent, shouldTryDecode: boolean): any => {
+ if (!event.body) return event.body;
+ if (!event.isBase64Encoded) return event.body;
+ if (!shouldTryDecode) return event.body;
+
+ return JSON.parse(Buffer.from(event.body, 'base64').toString('ascii'));
+};
+
+const logHandler = (payload: any, type: 'request' | 'response', isError: boolean) => {
+ if (isError) {
+ logger.error(payload, `axios ${type} payload`);
+ } else {
+ logger.debug(payload, `axios ${type} payload`);
+ }
+ return payload;
+};
+const errorHandler = (error: any, type: 'request' | 'response') => Promise.reject(logHandler(error, type, true));
+
+export const handler: AWSLambda.Handler = async (event) => {
+ try {
+ logger.debug(event, 'input event');
+
+ // NOTES: unfortunately, the client creation has to happen inside the handler due to the way how we fed the credentials for sigV4
+ // potential way out: use assume role from the aws4-axios library, be aware of the downside of this is overhead (latency & sts service quota) for sts:assumeRole
+ const client = axios.create({
+ baseURL: url,
+ validateStatus: () => true, // always bubble up whatever status returned
+ ...allowSelfSignedCerts && {
+ httpsAgent: new https.Agent({
+ rejectUnauthorized: false,
+ }),
+ },
+ });
+ const requestInterceptor = aws4Interceptor(
+ {
+ region,
+ service,
+ },
+ {
+ accessKeyId: process.env.AWS_ACCESS_KEY_ID!,
+ secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY!,
+ sessionToken: process.env.AWS_SESSION_TOKEN,
+ },
+ );
+ client.interceptors.request.use(requestInterceptor, (error) => errorHandler(error, 'response'));
+ client.interceptors.response.use((payload) => logHandler(payload, 'response', false), (error) => errorHandler(error, 'response'));
+
+ const originalResponse: AxiosResponse = await client.request({
+ url: event.requestContext.http.path,
+ method: event.requestContext.http.method,
+ headers: sanitizeHeaders(event.headers),
+ params: event.queryStringParameters,
+ data: decodeBodyIfApplies(event, forceDecodeBody),
+ });
+
+ logger.debug(originalResponse.data, 'axios response data');
+
+ return {
+ statusCode: originalResponse.status,
+ headers: {
+ ...originalResponse.headers as any,
+ },
+ body: isString(originalResponse.data) ? originalResponse.data : JSON.stringify(originalResponse.data),
+ };
+ } catch (error) {
+ logger.error(error, 'error inside the handler');
+ return {
+ statusCode: 400,
+ body: JSON.stringify({
+ message: error,
+ }),
+ };
+ }
+};
+
+interface IAMAuthorizerContext {
+ readonly accessKey: string;
+ readonly accountId: string;
+ readonly callerId: string;
+ readonly cognitoIdentity: any | null;
+ readonly principalOrgId: string | null;
+ readonly userArn: string;
+ readonly userId: string;
+}
+
+/**
+ * IAM Authorizer Payload
+ */
+interface RequestContextIAMAuthorizer {
+ readonly iam: TAuthorizerContext;
+}
+
+interface RequestContextWithOptionalAuthorizer extends AWSLambda.APIGatewayEventRequestContextV2 {
+ readonly authorizer?: TAuthorizer;
+}
+
+/**
+ * https://docs.aws.amazon.com/lambda/latest/dg/urls-invocation.html#urls-request-payload
+ */
+type LambdaFunctionUrlEvent = AWSLambda.APIGatewayProxyEventV2WithRequestContext<
+RequestContextWithOptionalAuthorizer>
+>;
+
+/**
+ * https://docs.aws.amazon.com/lambda/latest/dg/urls-invocation.html#urls-response-payload
+ */
+type LambdaFunctionUrlResult = AWSLambda.APIGatewayProxyResultV2;
diff --git a/tsconfig.dev.json b/tsconfig.dev.json
index 2e29dba..e611cef 100644
--- a/tsconfig.dev.json
+++ b/tsconfig.dev.json
@@ -27,7 +27,8 @@
"include": [
".projenrc.js",
"src/**/*.ts",
- "test/**/*.ts"
+ "test/**/*.ts",
+ "example/**/*.ts"
],
"exclude": [
"node_modules"
diff --git a/yarn.lock b/yarn.lock
index a6934e6..e85ba04 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10,6 +10,585 @@
"@jridgewell/gen-mapping" "^0.1.0"
"@jridgewell/trace-mapping" "^0.3.9"
+"@aws-crypto/ie11-detection@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz#bb6c2facf8f03457e949dcf0921477397ffa4c6e"
+ integrity sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA==
+ dependencies:
+ tslib "^1.11.1"
+
+"@aws-crypto/sha256-browser@2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz#741c9024df55ec59b51e5b1f5d806a4852699fb5"
+ integrity sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==
+ dependencies:
+ "@aws-crypto/ie11-detection" "^2.0.0"
+ "@aws-crypto/sha256-js" "^2.0.0"
+ "@aws-crypto/supports-web-crypto" "^2.0.0"
+ "@aws-crypto/util" "^2.0.0"
+ "@aws-sdk/types" "^3.1.0"
+ "@aws-sdk/util-locate-window" "^3.0.0"
+ "@aws-sdk/util-utf8-browser" "^3.0.0"
+ tslib "^1.11.1"
+
+"@aws-crypto/sha256-js@2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz#f1f936039bdebd0b9e2dd834d65afdc2aac4efcb"
+ integrity sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==
+ dependencies:
+ "@aws-crypto/util" "^2.0.0"
+ "@aws-sdk/types" "^3.1.0"
+ tslib "^1.11.1"
+
+"@aws-crypto/sha256-js@^2.0.0":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.1.tgz#79e1e6cf61f652ef2089c08d471c722ecf1626a9"
+ integrity sha512-mbHTBSPBvg6o/mN/c18Z/zifM05eJrapj5ggoOIeHIWckvkv5VgGi7r/wYpt+QAO2ySKXLNvH2d8L7bne4xrMQ==
+ dependencies:
+ "@aws-crypto/util" "^2.0.1"
+ "@aws-sdk/types" "^3.1.0"
+ tslib "^1.11.1"
+
+"@aws-crypto/supports-web-crypto@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz#fd6cde30b88f77d5a4f57b2c37c560d918014f9e"
+ integrity sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA==
+ dependencies:
+ tslib "^1.11.1"
+
+"@aws-crypto/util@^2.0.0", "@aws-crypto/util@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-2.0.1.tgz#976cf619cf85084ca85ec5eb947a6ac6b8b5c98c"
+ integrity sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ==
+ dependencies:
+ "@aws-sdk/types" "^3.1.0"
+ "@aws-sdk/util-utf8-browser" "^3.0.0"
+ tslib "^1.11.1"
+
+"@aws-sdk/abort-controller@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.78.0.tgz#f2b0f8d63954afe51136254f389a18dd24a8f6f3"
+ integrity sha512-iz1YLwM2feJUj/y97yO4XmDeTxs+yZ1XJwQgoawKuc8IDBKUutnJNCHL5jL04WUKU7Nrlq+Hr2fCTScFh2z9zg==
+ dependencies:
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/client-sso@3.100.0":
+ version "3.100.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.100.0.tgz#50fd953ff77f5f9cc1b67f2b6144016ef7e74112"
+ integrity sha512-nmBRUO5QfQ2IO8fHb37p8HT3n1ZooPb3sfTQejrpFH9Eq82VEOatIGt6yH3yTQ8+mhbabEhV5aY2wt/0D7wGVA==
+ dependencies:
+ "@aws-crypto/sha256-browser" "2.0.0"
+ "@aws-crypto/sha256-js" "2.0.0"
+ "@aws-sdk/config-resolver" "3.80.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-retry" "3.80.0"
+ "@aws-sdk/middleware-serde" "3.78.0"
+ "@aws-sdk/middleware-stack" "3.78.0"
+ "@aws-sdk/middleware-user-agent" "3.78.0"
+ "@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.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.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"
+ "@aws-sdk/util-utf8-node" "3.55.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/client-sts@^3.4.1":
+ version "3.100.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.100.0.tgz#147b65a91ebfa564ac58aef51e14b0ece8adb26c"
+ integrity sha512-WHy0e6COf6/LfMsYqG9H4SGaQRDjuckMtwOLtu6cYr4cro3bOU5pNuyEjAdUHCpuhZgiE6gkZozhTlxMJqIuRQ==
+ 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.100.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-retry" "3.80.0"
+ "@aws-sdk/middleware-sdk-sts" "3.78.0"
+ "@aws-sdk/middleware-serde" "3.78.0"
+ "@aws-sdk/middleware-signing" "3.78.0"
+ "@aws-sdk/middleware-stack" "3.78.0"
+ "@aws-sdk/middleware-user-agent" "3.78.0"
+ "@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.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.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"
+ "@aws-sdk/util-utf8-node" "3.55.0"
+ entities "2.2.0"
+ fast-xml-parser "3.19.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/config-resolver@3.80.0":
+ version "3.80.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.80.0.tgz#a804aba4d4767402ab15640757c8c8bb2254eec1"
+ integrity sha512-vFruNKlmhsaC8yjnHmasi1WW/7EELlEuFTj4mqcqNqR4dfraf0maVvpqF1VSR8EstpFMsGYI5dmoWAnnG4PcLQ==
+ dependencies:
+ "@aws-sdk/signature-v4" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ "@aws-sdk/util-config-provider" "3.55.0"
+ "@aws-sdk/util-middleware" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/credential-provider-env@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.78.0.tgz#e3013073bab0db313b0505d790aa79a35bd582d9"
+ integrity sha512-K41VTIzVHm2RyIwtBER8Hte3huUBXdV1WKO+i7olYVgLFmaqcZUNrlyoGDRqZcQ/u4AbxTzBU9jeMIbIfzMOWg==
+ dependencies:
+ "@aws-sdk/property-provider" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/credential-provider-imds@3.81.0":
+ version "3.81.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.81.0.tgz#1ffd1219b7fd19eec4d4d4b5b06bda66e3bc210e"
+ integrity sha512-BHopP+gaovTYj+4tSrwCk8NNCR48gE9CWmpIOLkP9ell0gOL81Qh7aCEiIK0BZBZkccv1s16cYq1MSZZGS7PEQ==
+ dependencies:
+ "@aws-sdk/node-config-provider" "3.80.0"
+ "@aws-sdk/property-provider" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ "@aws-sdk/url-parser" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/credential-provider-ini@3.100.0":
+ version "3.100.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.100.0.tgz#5da9d935f1632cc0a32a1b5222a692e3dc78c1cb"
+ integrity sha512-2pCtth/Iv4mATRwb2g1nJdd9TolMyhTnhcskopukFvzp13VS5cgtz0hgYmJNnztTF8lpKJhJaidtKS5JJTWnHg==
+ dependencies:
+ "@aws-sdk/credential-provider-env" "3.78.0"
+ "@aws-sdk/credential-provider-imds" "3.81.0"
+ "@aws-sdk/credential-provider-sso" "3.100.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"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/credential-provider-node@3.100.0":
+ version "3.100.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.100.0.tgz#8a5cab82c2943cf376986865f4d3a734f023eb44"
+ integrity sha512-PMIPnn/dhv9tlWR0qXnANJpTumujWfhKnLAsV3BUqB1K9IzWqz/zXjCT0jcSUTY8X/VkSuehtBdCKvOOM5mMqg==
+ dependencies:
+ "@aws-sdk/credential-provider-env" "3.78.0"
+ "@aws-sdk/credential-provider-imds" "3.81.0"
+ "@aws-sdk/credential-provider-ini" "3.100.0"
+ "@aws-sdk/credential-provider-process" "3.80.0"
+ "@aws-sdk/credential-provider-sso" "3.100.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"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/credential-provider-process@3.80.0":
+ version "3.80.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.80.0.tgz#625577774278f845fe5bd0f311ed53973ec92ede"
+ integrity sha512-3Ro+kMMyLUJHefOhGc5pOO/ibGcJi8bkj0z/Jtqd5I2Sm1qi7avoztST67/k48KMW1OqPnD/FUqxz5T8B2d+FQ==
+ dependencies:
+ "@aws-sdk/property-provider" "3.78.0"
+ "@aws-sdk/shared-ini-file-loader" "3.80.0"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/credential-provider-sso@3.100.0":
+ version "3.100.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.100.0.tgz#c930bb55565a9f0e580ddb0b9721e6fd9d8eafe7"
+ integrity sha512-DwJvrh77vBJ1/fS9z0i2QuIvSk4pATA4DH8AEWoQ8LQX97tp3es7gZV5Wu93wFsEyIYC8penz6pNVq5QajMk2A==
+ dependencies:
+ "@aws-sdk/client-sso" "3.100.0"
+ "@aws-sdk/property-provider" "3.78.0"
+ "@aws-sdk/shared-ini-file-loader" "3.80.0"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/credential-provider-web-identity@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.78.0.tgz#61cc6c5c065de3d8d34b7633899e3bbfa9a24c9d"
+ integrity sha512-9/IvqHdJaVqMEABA8xZE3t5YF1S2PepfckVu0Ws9YUglj6oO+2QyVX6aRgMF1xph6781+Yc31TDh8/3eaDja7w==
+ dependencies:
+ "@aws-sdk/property-provider" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/fetch-http-handler@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.78.0.tgz#9cd4a02eaf015b4a5a18552e8c9e8fbfce7219a3"
+ integrity sha512-cR6r2h2kJ1DNEZSXC6GknQB7OKmy+s9ZNV+g3AsNqkrUmNNOaHpFoSn+m6SC3qaclcGd0eQBpqzSu/TDn23Ihw==
+ dependencies:
+ "@aws-sdk/protocol-http" "3.78.0"
+ "@aws-sdk/querystring-builder" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ "@aws-sdk/util-base64-browser" "3.58.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/hash-node@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.78.0.tgz#d03f804a685bc1cea9df3eabf499b2a7659d01fd"
+ integrity sha512-ev48yXaqZVtMeuKy52LUZPHCyKvkKQ9uiUebqkA+zFxIk+eN8SMPFHmsififIHWuS6ZkXBUSctjH9wmLebH60A==
+ dependencies:
+ "@aws-sdk/types" "3.78.0"
+ "@aws-sdk/util-buffer-from" "3.55.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/invalid-dependency@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.78.0.tgz#c4e30871d69894dbf3450023319385110ce95c81"
+ integrity sha512-zUo+PbeRMN/Mzj6y+6p9qqk/znuFetT1gmpOcZGL9Rp2T+b9WJWd+daq5ktsL10sVCzIt2UvneJRz6b+aU+bfw==
+ dependencies:
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/is-array-buffer@3.55.0":
+ version "3.55.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.55.0.tgz#c46122c5636f01d5895e5256a587768c3425ea7a"
+ integrity sha512-NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA==
+ dependencies:
+ tslib "^2.3.1"
+
+"@aws-sdk/middleware-content-length@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.78.0.tgz#57d46be61d1176d4c5fce7ba4b0682798c170208"
+ integrity sha512-5MpKt6lB9TdFy25/AGrpOjPY0iDHZAKpEHc+jSOJBXLl6xunXA7qHdiYaVqkWodLxy70nIckGNHqQ3drabidkA==
+ dependencies:
+ "@aws-sdk/protocol-http" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/middleware-host-header@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.78.0.tgz#9130d176c2839bc658aff01bf2a36fee705f0e86"
+ integrity sha512-1zL8uaDWGmH50c8B8jjz75e0ePj6/3QeZEhjJgTgL6DTdiqvRt32p3t+XWHW+yDI14fZZUYeTklAaLVxqFrHqQ==
+ dependencies:
+ "@aws-sdk/protocol-http" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/middleware-logger@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.78.0.tgz#758b84711213b2e78afe0df20bc2d4d70a856da1"
+ integrity sha512-GBhwxNjhCJUIeQQDaGasX/C23Jay77al2vRyGwmxf8no0DdFsa4J1Ik6/2hhIqkqko+WM4SpCnpZrY4MtnxNvA==
+ dependencies:
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/middleware-retry@3.80.0":
+ version "3.80.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.80.0.tgz#d62ebd68ded78bdaf0a8b07bb4cc1c394c99cc8f"
+ integrity sha512-CTk+tA4+WMUNOcUfR6UQrkhwvPYFpnMsQ1vuHlpLFOGG3nCqywA2hueLMRQmVcDXzP0sGeygce6dzRI9dJB/GA==
+ dependencies:
+ "@aws-sdk/protocol-http" "3.78.0"
+ "@aws-sdk/service-error-classification" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ "@aws-sdk/util-middleware" "3.78.0"
+ tslib "^2.3.1"
+ uuid "^8.3.2"
+
+"@aws-sdk/middleware-sdk-sts@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.78.0.tgz#15d91c421380f748b58bb006e1c398cfdf59b290"
+ integrity sha512-Lu/kN0J0/Kt0ON1hvwNel+y8yvf35licfIgtedHbBCa/ju8qQ9j+uL9Lla6Y5Tqu29yVaye1JxhiIDhscSwrLA==
+ dependencies:
+ "@aws-sdk/middleware-signing" "3.78.0"
+ "@aws-sdk/property-provider" "3.78.0"
+ "@aws-sdk/protocol-http" "3.78.0"
+ "@aws-sdk/signature-v4" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/middleware-serde@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.78.0.tgz#d1e1a7b9ac58638b973e533ac4c2ca52f413883c"
+ integrity sha512-4DPsNOxsl1bxRzfo1WXEZjmD7OEi7qGNpxrDWucVe96Fqj2dH08jR8wxvBIVV1e6bAad07IwdPuCGmivNvwRuQ==
+ dependencies:
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/middleware-signing@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.78.0.tgz#2fb41819a9ae0953cf8f428851a57696442469ca"
+ integrity sha512-OEjJJCNhHHSOprLZ9CzjHIXEKFtPHWP/bG9pMhkV3/6Bmscsgcf8gWHcOnmIrjqX+hT1VALDNpl/RIh0J6/eQw==
+ dependencies:
+ "@aws-sdk/property-provider" "3.78.0"
+ "@aws-sdk/protocol-http" "3.78.0"
+ "@aws-sdk/signature-v4" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/middleware-stack@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.78.0.tgz#e9f42039e500bed23ec74359924ae16e7bf9c77a"
+ integrity sha512-UoNfRh6eAJN3BJHlG1eb+KeuSe+zARTC2cglroJRyHc2j7GxH2i9FD3IJbj5wvzopJEnQzuY/VCs6STFkqWL1g==
+ dependencies:
+ tslib "^2.3.1"
+
+"@aws-sdk/middleware-user-agent@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.78.0.tgz#e4c7345d26d718de0e84b60ba02b2b08b566fa15"
+ integrity sha512-wdN5uoq8RxxhLhj0EPeuDSRFuXfUwKeEqRzCKMsYAOC0cAm+PryaP2leo0oTGJ9LUK8REK7zyfFcmtC4oOzlkA==
+ dependencies:
+ "@aws-sdk/protocol-http" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/node-config-provider@3.80.0":
+ version "3.80.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.80.0.tgz#dbb02aa48fb1a0acc3201ca73db5bbf1738895b5"
+ integrity sha512-vyTOMK04huB7n10ZUv0thd2TE6KlY8livOuLqFTMtj99AJ6vyeB5XBNwKnQtJIt/P7CijYgp8KcFvI9fndOmKg==
+ dependencies:
+ "@aws-sdk/property-provider" "3.78.0"
+ "@aws-sdk/shared-ini-file-loader" "3.80.0"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/node-http-handler@3.94.0":
+ version "3.94.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.94.0.tgz#0bfbfec24f9465afddb876c50fd09ce00dfa4226"
+ integrity sha512-g9q6k+PS+BrtOzt8jrBWr9D543uB3ZoYZ2JCriwuCwnP4uIHlMf9wAOGcOgqgykfUAPBOLvz2rTwVs3Xl8GUmQ==
+ dependencies:
+ "@aws-sdk/abort-controller" "3.78.0"
+ "@aws-sdk/protocol-http" "3.78.0"
+ "@aws-sdk/querystring-builder" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/property-provider@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.78.0.tgz#f12341fa87da2b54daac95f623bf7ede1754f8ae"
+ integrity sha512-PZpLvV0hF6lqg3CSN9YmphrB/t5LVJVWGJLB9d9qm7sJs5ksjTYBb5bY91OQ3zit0F4cqBMU8xt2GQ9J6d4DvQ==
+ dependencies:
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/protocol-http@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.78.0.tgz#8a30db90e3373fe94e2b0007c3cba47b5c9e08bd"
+ integrity sha512-SQB26MhEK96yDxyXd3UAaxLz1Y/ZvgE4pzv7V3wZiokdEedM0kawHKEn1UQJlqJLEZcQI9QYyysh3rTvHZ3fyg==
+ dependencies:
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/querystring-builder@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.78.0.tgz#29068c4d1fad056e26f848779a31335469cb0038"
+ integrity sha512-aib6RW1WAaTQDqVgRU1Ku9idkhm90gJKbCxVaGId+as6QHNUqMChEfK2v+0afuKiPNOs5uWmqvOXI9+Gt+UGDg==
+ dependencies:
+ "@aws-sdk/types" "3.78.0"
+ "@aws-sdk/util-uri-escape" "3.55.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/querystring-parser@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.78.0.tgz#4c76fe15ef2e9bbf4c387c83889d1c25d2c3a614"
+ integrity sha512-csaH8YTyN+KMNczeK6fBS8l7iJaqcQcKOIbpQFg5upX4Ly5A56HJn4sVQhY1LSgfSk4xRsNfMy5mu6BlsIiaXA==
+ dependencies:
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/service-error-classification@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.78.0.tgz#8d3ac1064e39c180d9b764bb838c7f9de5615281"
+ integrity sha512-x7Lx8KWctJa01q4Q72Zb4ol9L/era3vy2daASu8l2paHHxsAPBE0PThkvLdUSLZSzlHSVdh3YHESIsT++VsK4w==
+
+"@aws-sdk/shared-ini-file-loader@3.80.0":
+ version "3.80.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.80.0.tgz#e3d1b0532e9a884e52f967717ba2666ca32bbd74"
+ integrity sha512-3d5EBJjnWWkjLK9skqLLHYbagtFaZZy+3jUTlbTuOKhlOwe8jF7CUM3j6I4JA6yXNcB3w0exDKKHa8w+l+05aA==
+ dependencies:
+ tslib "^2.3.1"
+
+"@aws-sdk/signature-v4@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.78.0.tgz#adb735b9604d4bb8e44d16f1baa87618d576013b"
+ integrity sha512-eePjRYuzKoi3VMr/lgrUEF1ytLeH4fA/NMCykr/uR6NMo4bSJA59KrFLYSM7SlWLRIyB0UvJqygVEvSxFluyDw==
+ dependencies:
+ "@aws-sdk/is-array-buffer" "3.55.0"
+ "@aws-sdk/types" "3.78.0"
+ "@aws-sdk/util-hex-encoding" "3.58.0"
+ "@aws-sdk/util-middleware" "3.78.0"
+ "@aws-sdk/util-uri-escape" "3.55.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/smithy-client@3.99.0":
+ version "3.99.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.99.0.tgz#e9cd92e95983734b88204432a44ee52388af0e1c"
+ integrity sha512-N9xgCcwbOBZ4/WuROzlErExXV6+vFrFkNJzeBT31/avvrHXjxgxwQlMoXoQCfM8PyRuDuVSfZeoh1iIRfoxidA==
+ dependencies:
+ "@aws-sdk/middleware-stack" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/types@3.78.0", "@aws-sdk/types@^3.1.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.78.0.tgz#51dc80b2142ee20821fb9f476bdca6e541021443"
+ integrity sha512-I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==
+
+"@aws-sdk/url-parser@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.78.0.tgz#8903011fda4b04c1207df099a21eda1304573099"
+ integrity sha512-iQn2AjECUoJE0Ae9XtgHtGGKvUkvE8hhbktGopdj+zsPBe4WrBN2DgVxlKPPrBonG/YlcL1D7a5EXaujWSlUUw==
+ dependencies:
+ "@aws-sdk/querystring-parser" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/util-base64-browser@3.58.0":
+ version "3.58.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64-browser/-/util-base64-browser-3.58.0.tgz#e213f91a5d40dd2d048d340f1ab192ca86c1f40c"
+ integrity sha512-0ebsXIZNpu/fup9OgsFPnRKfCFbuuI9PPRzvP6twzLxUB0c/aix6Co7LGHFKcRKHZdaykoJMXArf8eHj2Nzv1Q==
+ dependencies:
+ tslib "^2.3.1"
+
+"@aws-sdk/util-base64-node@3.55.0":
+ version "3.55.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64-node/-/util-base64-node-3.55.0.tgz#da9a3fd6752be49163572144793e6b23d0186ff4"
+ integrity sha512-UQ/ZuNoAc8CFMpSiRYmevaTsuRKzLwulZTnM8LNlIt9Wx1tpNvqp80cfvVj7yySKROtEi20wq29h31dZf1eYNQ==
+ dependencies:
+ "@aws-sdk/util-buffer-from" "3.55.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/util-body-length-browser@3.55.0":
+ version "3.55.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.55.0.tgz#9c2637097501032f6a1afddb76687415fe9b44b6"
+ integrity sha512-Ei2OCzXQw5N6ZkTMZbamUzc1z+z1R1Ja5tMEagz5BxuX4vWdBObT+uGlSzL8yvTbjoPjnxWA2aXyEqaUP3JS8Q==
+ dependencies:
+ tslib "^2.3.1"
+
+"@aws-sdk/util-body-length-node@3.55.0":
+ version "3.55.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.55.0.tgz#67049bbb6c62d794a1bb5a13b9a678988c925489"
+ integrity sha512-lU1d4I+9wJwydduXs0SxSfd+mHKjxeyd39VwOv6i2KSwWkPbji9UQqpflKLKw+r45jL7+xU/zfeTUg5Tt/3Gew==
+ dependencies:
+ tslib "^2.3.1"
+
+"@aws-sdk/util-buffer-from@3.55.0":
+ version "3.55.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.55.0.tgz#e7c927974b07a29502aa1ad58509b91d0d7cf0f7"
+ integrity sha512-uVzKG1UgvnV7XX2FPTylBujYMKBPBaq/qFBxfl0LVNfrty7YjpfieQxAe6yRLD+T0Kir/WDQwGvYC+tOYG3IGA==
+ dependencies:
+ "@aws-sdk/is-array-buffer" "3.55.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/util-config-provider@3.55.0":
+ version "3.55.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.55.0.tgz#720c6c0ac1aa8d14be29d1dee25e01eb4925c0ce"
+ integrity sha512-30dzofQQfx6tp1jVZkZ0DGRsT0wwC15nEysKRiAcjncM64A0Cm6sra77d0os3vbKiKoPCI/lMsFr4o3533+qvQ==
+ dependencies:
+ tslib "^2.3.1"
+
+"@aws-sdk/util-defaults-mode-browser@3.99.0":
+ version "3.99.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.99.0.tgz#4d5b71279e89a25b9dd1d44ab7631fecbe48c447"
+ integrity sha512-qSYjUGuN8n7Q/zAi0tzU4BrU389jQosXtjp7eHpLATl0pKGpaHx6rJNwbiNhvBhBEfmSgqsJ09b4gZUpUezHEw==
+ dependencies:
+ "@aws-sdk/property-provider" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ bowser "^2.11.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/util-defaults-mode-node@3.99.0":
+ version "3.99.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.99.0.tgz#72f75b02b337bc5bd221ab3504caa4709cf88c8f"
+ integrity sha512-8TUO0kEnQcgT1gAW9y9oO6a5gKhfEGEUeKidEgbTczEUrjr3aCXIC+p0DI5FJfImwPrTKXra8A22utDM92phWw==
+ dependencies:
+ "@aws-sdk/config-resolver" "3.80.0"
+ "@aws-sdk/credential-provider-imds" "3.81.0"
+ "@aws-sdk/node-config-provider" "3.80.0"
+ "@aws-sdk/property-provider" "3.78.0"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/util-hex-encoding@3.58.0":
+ version "3.58.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.58.0.tgz#d999eb19329933a94563881540a06d7ac7f515f5"
+ integrity sha512-Rl+jXUzk/FJkOLYfUVYPhKa2aUmTpeobRP31l8IatQltSzDgLyRHO35f6UEs7Ztn5s1jbu/POatLAZ2WjbgVyg==
+ dependencies:
+ tslib "^2.3.1"
+
+"@aws-sdk/util-locate-window@^3.0.0":
+ version "3.55.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.55.0.tgz#a4136a20ee1bfcb73967a6614caf769ef79db070"
+ integrity sha512-0sPmK2JaJE2BbTcnvybzob/VrFKCXKfN4CUKcvn0yGg/me7Bz+vtzQRB3Xp+YSx+7OtWxzv63wsvHoAnXvgxgg==
+ dependencies:
+ tslib "^2.3.1"
+
+"@aws-sdk/util-middleware@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.78.0.tgz#d907a9b8b7878265cd3e3ee15996bc17de41db11"
+ integrity sha512-Hi3wv2b0VogO4mzyeEaeU5KgIt4qeo0LXU5gS6oRrG0T7s2FyKbMBkJW3YDh/Y8fNwqArZ+/QQFujpP0PIKwkA==
+ dependencies:
+ tslib "^2.3.1"
+
+"@aws-sdk/util-uri-escape@3.55.0":
+ version "3.55.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.55.0.tgz#ee57743c628a1c9f942dfe73205ce890ec011916"
+ integrity sha512-mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w==
+ dependencies:
+ tslib "^2.3.1"
+
+"@aws-sdk/util-user-agent-browser@3.78.0":
+ version "3.78.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.78.0.tgz#12509ed9cc77624da0e0c017099565e37a5038d0"
+ integrity sha512-diGO/Bf4ggBOEnfD7lrrXaaXOwOXGz0bAJ0HhpizwEMlBld5zfDlWXjNpslh+8+u3EHRjPJQ16KGT6mp/Dm+aw==
+ dependencies:
+ "@aws-sdk/types" "3.78.0"
+ bowser "^2.11.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/util-user-agent-node@3.80.0":
+ version "3.80.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.80.0.tgz#269ea0f9bfab4f378af759afa9137936081f010a"
+ integrity sha512-QV26qIXws1m6sZXg65NS+XrQ5NhAzbDVQLtEVE4nC39UN8fuieP6Uet/gZm9mlLI9hllwvcV7EfgBM3GSC7pZg==
+ dependencies:
+ "@aws-sdk/node-config-provider" "3.80.0"
+ "@aws-sdk/types" "3.78.0"
+ tslib "^2.3.1"
+
+"@aws-sdk/util-utf8-browser@3.55.0", "@aws-sdk/util-utf8-browser@^3.0.0":
+ version "3.55.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.55.0.tgz#a045bf1a93f6e0ff9c846631b168ea55bbb37668"
+ integrity sha512-ljzqJcyjfJpEVSIAxwtIS8xMRUly84BdjlBXyp6cu4G8TUufgjNS31LWdhyGhgmW5vYBNr+LTz0Kwf6J+ou7Ug==
+ dependencies:
+ tslib "^2.3.1"
+
+"@aws-sdk/util-utf8-node@3.55.0":
+ version "3.55.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-node/-/util-utf8-node-3.55.0.tgz#44cf9f9c8624d144afd65ab8a1786e33134add15"
+ integrity sha512-FsFm7GFaC7j0tlPEm/ri8bU2QCwFW5WKjxUg8lm1oWaxplCpKGUsmcfPJ4sw58GIoyoGu4QXBK60oCWosZYYdQ==
+ dependencies:
+ "@aws-sdk/util-buffer-from" "3.55.0"
+ tslib "^2.3.1"
+
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789"
@@ -736,6 +1315,18 @@
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
+"@types/aws-lambda@^8.10.97":
+ version "8.10.97"
+ resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.97.tgz#9b2f2adfa63a215173a9da37604e4f65dd56cb98"
+ integrity sha512-BZk3qO4R2KN8Ts3eR6CW1n8LI46UOgv1KoDZjo8J9vOQvDeX/rsrv1H0BpEAMcSqZ1mLwTEyAMtlua5tlSn0kw==
+
+"@types/aws4@^1.5.1":
+ version "1.11.2"
+ resolved "https://registry.yarnpkg.com/@types/aws4/-/aws4-1.11.2.tgz#7700aabe4646f8868b5d2b20820d9583225e7b78"
+ integrity sha512-x0f96eBPrCCJzJxdPbUvDFRva4yPpINJzTuXXpmS2j9qLUpF2nyGzvXPlRziuGbCsPukwY4JfuO+8xwsoZLzGw==
+ dependencies:
+ "@types/node" "*"
+
"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14":
version "7.1.19"
resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460"
@@ -821,6 +1412,18 @@
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
+"@types/lodash.isstring@^4.0.7":
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/@types/lodash.isstring/-/lodash.isstring-4.0.7.tgz#91e64dc4fa48e2b2ad0b5fa62b529b850a4fe4b3"
+ integrity sha512-gt4q4n1Who4JxLeFR/kduS2Tia+biQk/zdbIkOfMvAldXHJdcC5SsvZREchkwa4CwKK+DqhIm3wfigFYzNKS8Q==
+ dependencies:
+ "@types/lodash" "*"
+
+"@types/lodash@*":
+ version "4.14.182"
+ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2"
+ integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==
+
"@types/minimatch@*":
version "3.0.5"
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40"
@@ -1155,26 +1758,53 @@ at-least-node@^1.0.0:
resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+atomic-sleep@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b"
+ integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==
+
available-typed-arrays@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
-aws-cdk-lib@2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.1.0.tgz#2497484cfd4e2eeaba99b070bbfa54486d52ae34"
- integrity sha512-W607G3aSrWpawpcqzIuUYKlU+grfvkbszyqikyVYqJgMHFCCQXq0S1ynPMzfQ49CwjlwZsu4LIsPM+dNR+Yj6g==
+aws-cdk-lib@2.21.0:
+ version "2.21.0"
+ resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.21.0.tgz#3b326288c27179dae56e57448295c0c796fa9d90"
+ integrity sha512-ctwEOjkpp2DFfMiPQjRUC/OHnZBTprKcJ1sxHNEsOnMmN4w2Vqe22tiAXXmxThfdv0WdBKUdRuiYQybbsTb37g==
dependencies:
"@balena/dockerignore" "^1.0.2"
case "1.6.3"
fs-extra "^9.1.0"
- ignore "^5.1.9"
+ ignore "^5.2.0"
jsonschema "^1.4.0"
- minimatch "^3.0.4"
+ minimatch "^3.1.2"
punycode "^2.1.1"
- semver "^7.3.5"
+ semver "^7.3.6"
yaml "1.10.2"
+aws4-axios@^2.4.9:
+ version "2.4.9"
+ resolved "https://registry.yarnpkg.com/aws4-axios/-/aws4-axios-2.4.9.tgz#8008a9ba201918db04babb7944ffb76572da0598"
+ integrity sha512-egAUTk8oLdsb5OGa+BI30PBa4lZh3tOO0q2YL99Gq8lyY8s08bt81jF8ekOuY+ZP98bfB5wHJhKStVhvRRjT7Q==
+ dependencies:
+ "@aws-sdk/client-sts" "^3.4.1"
+ "@types/aws4" "^1.5.1"
+ aws4 "^1.9.1"
+
+aws4@^1.9.1:
+ version "1.11.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
+ integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
+
+axios@^0.27.2:
+ version "0.27.2"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972"
+ integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==
+ dependencies:
+ follow-redirects "^1.14.9"
+ form-data "^4.0.0"
+
babel-jest@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444"
@@ -1241,6 +1871,11 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+bowser@^2.11.0:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f"
+ integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==
+
boxen@^5.0.0:
version "5.1.2"
resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50"
@@ -2050,6 +2685,16 @@ duplexer3@^0.1.4:
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
integrity sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==
+duplexify@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0"
+ integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==
+ dependencies:
+ end-of-stream "^1.4.1"
+ inherits "^2.0.3"
+ readable-stream "^3.1.1"
+ stream-shift "^1.0.0"
+
electron-to-chromium@^1.4.118:
version "1.4.142"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.142.tgz#70cc8871f7c0122b29256089989e67cee637b40d"
@@ -2072,13 +2717,18 @@ encoding@^0.1.12, encoding@^0.1.13:
dependencies:
iconv-lite "^0.6.2"
-end-of-stream@^1.1.0:
+end-of-stream@^1.1.0, end-of-stream@^1.4.1:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
dependencies:
once "^1.4.0"
+entities@2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
+ integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
+
entities@~2.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f"
@@ -2160,6 +2810,132 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1"
is-symbol "^1.0.2"
+esbuild-android-64@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.42.tgz#d7ab3d44d3671218d22bce52f65642b12908d954"
+ integrity sha512-P4Y36VUtRhK/zivqGVMqhptSrFILAGlYp0Z8r9UQqHJ3iWztRCNWnlBzD9HRx0DbueXikzOiwyOri+ojAFfW6A==
+
+esbuild-android-arm64@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.42.tgz#45336d8bec49abddb3a022996a23373f45a57c27"
+ integrity sha512-0cOqCubq+RWScPqvtQdjXG3Czb3AWI2CaKw3HeXry2eoA2rrPr85HF7IpdU26UWdBXgPYtlTN1LUiuXbboROhg==
+
+esbuild-darwin-64@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.42.tgz#6dff5e44cd70a88c33323e2f5fb598e40c68a9e0"
+ integrity sha512-ipiBdCA3ZjYgRfRLdQwP82rTiv/YVMtW36hTvAN5ZKAIfxBOyPXY7Cejp3bMXWgzKD8B6O+zoMzh01GZsCuEIA==
+
+esbuild-darwin-arm64@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.42.tgz#2c7313e1b12d2fa5b889c03213d682fb92ca8c4f"
+ integrity sha512-bU2tHRqTPOaoH/4m0zYHbFWpiYDmaA0gt90/3BMEFaM0PqVK/a6MA2V/ypV5PO0v8QxN6gH5hBPY4YJ2lopXgA==
+
+esbuild-freebsd-64@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.42.tgz#ad1c5a564a7e473b8ce95ee7f76618d05d6daffc"
+ integrity sha512-75h1+22Ivy07+QvxHyhVqOdekupiTZVLN1PMwCDonAqyXd8TVNJfIRFrdL8QmSJrOJJ5h8H1I9ETyl2L8LQDaw==
+
+esbuild-freebsd-arm64@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.42.tgz#4bdb480234144f944f1930829bace7561135ddc7"
+ integrity sha512-W6Jebeu5TTDQMJUJVarEzRU9LlKpNkPBbjqSu+GUPTHDCly5zZEQq9uHkmHHl7OKm+mQ2zFySN83nmfCeZCyNA==
+
+esbuild-linux-32@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.42.tgz#ef18fd19f067e9d2b5f677d6b82fa81519f5a8c2"
+ integrity sha512-Ooy/Bj+mJ1z4jlWcK5Dl6SlPlCgQB9zg1UrTCeY8XagvuWZ4qGPyYEWGkT94HUsRi2hKsXvcs6ThTOjBaJSMfg==
+
+esbuild-linux-64@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.42.tgz#d84e7333b1c1b22cf8b5b9dbb5dd9b2ecb34b79f"
+ integrity sha512-2L0HbzQfbTuemUWfVqNIjOfaTRt9zsvjnme6lnr7/MO9toz/MJ5tZhjqrG6uDWDxhsaHI2/nsDgrv8uEEN2eoA==
+
+esbuild-linux-arm64@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.42.tgz#dc19e282f8c4ffbaa470c02a4d171e4ae0180cca"
+ integrity sha512-c3Ug3e9JpVr8jAcfbhirtpBauLxzYPpycjWulD71CF6ZSY26tvzmXMJYooQ2YKqDY4e/fPu5K8bm7MiXMnyxuA==
+
+esbuild-linux-arm@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.42.tgz#d49870e63e2242b8156bf473f2ee5154226be328"
+ integrity sha512-STq69yzCMhdRaWnh29UYrLSr/qaWMm/KqwaRF1pMEK7kDiagaXhSL1zQGXbYv94GuGY/zAwzK98+6idCMUOOCg==
+
+esbuild-linux-mips64le@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.42.tgz#f4e6ff9bf8a6f175470498826f48d093b054fc22"
+ integrity sha512-QuvpHGbYlkyXWf2cGm51LBCHx6eUakjaSrRpUqhPwjh/uvNUYvLmz2LgPTTPwCqaKt0iwL+OGVL0tXA5aDbAbg==
+
+esbuild-linux-ppc64le@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.42.tgz#ac9c66fc80ba9f8fda15a4cc08f4e55f6c0aed63"
+ integrity sha512-8ohIVIWDbDT+i7lCx44YCyIRrOW1MYlks9fxTo0ME2LS/fxxdoJBwHWzaDYhjvf8kNpA+MInZvyOEAGoVDrMHg==
+
+esbuild-linux-riscv64@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.42.tgz#21e0ae492a3a9bf4eecbfc916339a66e204256d0"
+ integrity sha512-DzDqK3TuoXktPyG1Lwx7vhaF49Onv3eR61KwQyxYo4y5UKTpL3NmuarHSIaSVlTFDDpcIajCDwz5/uwKLLgKiQ==
+
+esbuild-linux-s390x@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.42.tgz#06d40b957250ffd9a2183bfdfc9a03d6fd21b3e8"
+ integrity sha512-YFRhPCxl8nb//Wn6SiS5pmtplBi4z9yC2gLrYoYI/tvwuB1jldir9r7JwAGy1Ck4D7sE7wBN9GFtUUX/DLdcEQ==
+
+esbuild-netbsd-64@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.42.tgz#185664f05f10914f14ed43bd9e22b7de584267f7"
+ integrity sha512-QYSD2k+oT9dqB/4eEM9c+7KyNYsIPgzYOSrmfNGDIyJrbT1d+CFVKvnKahDKNJLfOYj8N4MgyFaU9/Ytc6w5Vw==
+
+esbuild-openbsd-64@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.42.tgz#c29006f659eb4e55283044bbbd4eb4054fae8839"
+ integrity sha512-M2meNVIKWsm2HMY7+TU9AxM7ZVwI9havdsw6m/6EzdXysyCFFSoaTQ/Jg03izjCsK17FsVRHqRe26Llj6x0MNA==
+
+esbuild-sunos-64@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.42.tgz#aa9eec112cd1e7105e7bb37000eca7d460083f8f"
+ integrity sha512-uXV8TAZEw36DkgW8Ak3MpSJs1ofBb3Smkc/6pZ29sCAN1KzCAQzsje4sUwugf+FVicrHvlamCOlFZIXgct+iqQ==
+
+esbuild-windows-32@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.42.tgz#c3fc450853c61a74dacc5679de301db23b73e61e"
+ integrity sha512-4iw/8qWmRICWi9ZOnJJf9sYt6wmtp3hsN4TdI5NqgjfOkBVMxNdM9Vt3626G1Rda9ya2Q0hjQRD9W1o+m6Lz6g==
+
+esbuild-windows-64@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.42.tgz#b877aa37ff47d9fcf0ccb1ca6a24b31475a5e555"
+ integrity sha512-j3cdK+Y3+a5H0wHKmLGTJcq0+/2mMBHPWkItR3vytp/aUGD/ua/t2BLdfBIzbNN9nLCRL9sywCRpOpFMx3CxzA==
+
+esbuild-windows-arm64@0.14.42:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.42.tgz#79da8744626f24bc016dc40d016950b5a4a2bac5"
+ integrity sha512-+lRAARnF+hf8J0mN27ujO+VbhPbDqJ8rCcJKye4y7YZLV6C4n3pTRThAb388k/zqF5uM0lS5O201u0OqoWSicw==
+
+esbuild@0:
+ version "0.14.42"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.42.tgz#98587df0b024d5f6341b12a1d735a2bff55e1836"
+ integrity sha512-V0uPZotCEHokJdNqyozH6qsaQXqmZEOiZWrXnds/zaH/0SyrIayRXWRB98CENO73MIZ9T3HBIOsmds5twWtmgw==
+ optionalDependencies:
+ esbuild-android-64 "0.14.42"
+ esbuild-android-arm64 "0.14.42"
+ esbuild-darwin-64 "0.14.42"
+ esbuild-darwin-arm64 "0.14.42"
+ esbuild-freebsd-64 "0.14.42"
+ esbuild-freebsd-arm64 "0.14.42"
+ esbuild-linux-32 "0.14.42"
+ esbuild-linux-64 "0.14.42"
+ esbuild-linux-arm "0.14.42"
+ esbuild-linux-arm64 "0.14.42"
+ esbuild-linux-mips64le "0.14.42"
+ esbuild-linux-ppc64le "0.14.42"
+ esbuild-linux-riscv64 "0.14.42"
+ esbuild-linux-s390x "0.14.42"
+ esbuild-netbsd-64 "0.14.42"
+ esbuild-openbsd-64 "0.14.42"
+ esbuild-sunos-64 "0.14.42"
+ esbuild-windows-32 "0.14.42"
+ esbuild-windows-64 "0.14.42"
+ esbuild-windows-arm64 "0.14.42"
+
escalade@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
@@ -2421,6 +3197,16 @@ fast-memoize@^2.5.2:
resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e"
integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==
+fast-redact@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.1.1.tgz#790fcff8f808c2e12fabbfb2be5cb2deda448fa0"
+ integrity sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A==
+
+fast-xml-parser@3.19.0:
+ version "3.19.0"
+ resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz#cb637ec3f3999f51406dd8ff0e6fc4d83e520d01"
+ integrity sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==
+
fastq@^1.6.0:
version "1.13.0"
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
@@ -2504,6 +3290,11 @@ flatted@^3.1.0, flatted@^3.2.5:
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3"
integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==
+follow-redirects@^1.14.9:
+ version "1.15.1"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5"
+ integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==
+
for-each@^0.3.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
@@ -2520,6 +3311,15 @@ form-data@^3.0.0:
combined-stream "^1.0.8"
mime-types "^2.1.12"
+form-data@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
+ integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.8"
+ mime-types "^2.1.12"
+
fp-and-or@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/fp-and-or/-/fp-and-or-0.1.3.tgz#e6fba83872a5853a56b3ebdf8d3167f5dfca1882"
@@ -2960,7 +3760,7 @@ ignore-walk@^5.0.1:
dependencies:
minimatch "^5.0.1"
-ignore@^5.1.9, ignore@^5.2.0:
+ignore@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
@@ -4088,6 +4888,11 @@ lodash.ismatch@^4.4.0:
resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37"
integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==
+lodash.isstring@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
+ integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==
+
lodash.memoize@4.x:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
@@ -4645,6 +5450,11 @@ object.values@^1.1.5:
define-properties "^1.1.3"
es-abstract "^1.19.1"
+on-exit-leak-free@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-1.0.0.tgz#4a2accb382278a266848bb1a21439e5fc3cd9881"
+ integrity sha512-Ve8ubhrXRdnuCJ5bQSQpP3uaV43K1PMcOfSRC1pqHgRZommXCgsXwh08jVC5NpjwScE23BPDwDvVg4cov3mwjw==
+
once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@@ -4888,6 +5698,36 @@ pify@^3.0.0:
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
+pino-abstract-transport@v0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0"
+ integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==
+ dependencies:
+ duplexify "^4.1.2"
+ split2 "^4.0.0"
+
+pino-std-serializers@^5.0.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-5.3.0.tgz#906b294503b0c1ac4d7ad5bd195c3ab55ec20496"
+ integrity sha512-Jm6EfiTTWUMxiyi07RUPpD9KLntgqc4P9lriWZG5TpabeJYxG/zkI5aUdTpUdgfS1mj3YD+0n3BINbQTz9r0Ig==
+
+pino@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/pino/-/pino-8.0.0.tgz#7918a19b647a8f281fe06a28043e99ade12dce46"
+ integrity sha512-EvZh9ZUoLGkrhqhoF9UBxw2/ZiAhXHUKlGrI4WUT/wLu0sfu8Wr3NJaZ6lxcy/S51W0PMSon5KE7ujPAhc/G6g==
+ dependencies:
+ atomic-sleep "^1.0.0"
+ fast-redact "^3.0.0"
+ on-exit-leak-free "^1.0.0"
+ pino-abstract-transport v0.5.0
+ pino-std-serializers "^5.0.0"
+ process-warning "^2.0.0"
+ quick-format-unescaped "^4.0.3"
+ real-require "^0.1.0"
+ safe-stable-stringify "^2.1.0"
+ sonic-boom "^3.0.0"
+ thread-stream "^1.0.0"
+
pirates@^4.0.4:
version "4.0.5"
resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
@@ -4934,6 +5774,11 @@ process-nextick-args@~2.0.0:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+process-warning@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.0.0.tgz#341dbeaac985b90a04ebcd844d50097c7737b2ee"
+ integrity sha512-+MmoAXoUX+VTHAlwns0h+kFUWFs/3FZy+ZuchkgjyOu3oioLAo2LB5aCfKPh2+P9O18i3m43tUEv3YqttSy0Ww==
+
progress@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
@@ -5013,6 +5858,11 @@ queue-microtask@^1.2.2:
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+quick-format-unescaped@^4.0.3:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7"
+ integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==
+
quick-lru@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
@@ -5097,7 +5947,7 @@ read-pkg@^5.2.0:
parse-json "^5.0.0"
type-fest "^0.6.0"
-readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.6.0:
+readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -5119,6 +5969,11 @@ readable-stream@~2.3.6:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
+real-require@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381"
+ integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==
+
rechoir@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
@@ -5254,6 +6109,11 @@ safe-buffer@~5.2.0:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+safe-stable-stringify@^2.1.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73"
+ integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==
+
"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0":
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
@@ -5290,7 +6150,7 @@ semver-utils@^1.1.4:
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7:
+semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7:
version "7.3.7"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f"
integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
@@ -5382,6 +6242,13 @@ socks@^2.6.2:
ip "^1.1.5"
smart-buffer "^4.2.0"
+sonic-boom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.0.0.tgz#235119a6606e2646919a27d83ef687f2ba6c0fba"
+ integrity sha512-p5DiZOZHbJ2ZO5MADczp5qrfOd3W5Vr2vHxfCpe7G4AzPwVOweIjbfgku8wSQUuk+Y5Yuo8W7JqRe6XKmKistg==
+ dependencies:
+ atomic-sleep "^1.0.0"
+
sort-json@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/sort-json/-/sort-json-2.0.1.tgz#7338783bef807185dc37d5b02e3afd905d537cfb"
@@ -5452,6 +6319,11 @@ split2@^3.0.0:
dependencies:
readable-stream "^3.0.0"
+split2@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809"
+ integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==
+
split@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
@@ -5505,6 +6377,11 @@ standard-version@^9:
stringify-package "^1.0.1"
yargs "^16.0.0"
+stream-shift@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
+ integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
+
streamroller@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-3.1.1.tgz#679aae10a4703acdf2740755307df0a05ad752e6"
@@ -5690,6 +6567,13 @@ text-table@^0.2.0:
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+thread-stream@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-1.0.0.tgz#a7ba5c3defceb77c69deea6c3a62faf74891e4ba"
+ integrity sha512-2Sw29jWubQWOcVa7MhLHJ51wjksUD/GHN4Fy3hP9w9DYTujifoZGSKBl54CMLRXWoD5h2pD707kY3fAdzhcwAg==
+ dependencies:
+ real-require "^0.1.0"
+
throat@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375"
@@ -5782,11 +6666,16 @@ tsconfig-paths@^3.14.1:
minimist "^1.2.6"
strip-bom "^3.0.0"
-tslib@^1.8.1:
+tslib@^1.11.1, tslib@^1.8.1:
version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
+tslib@^2.3.1:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
+ integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
+
tsutils@^3.21.0:
version "3.21.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"