diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml
index adf2f1b0..e626395a 100644
--- a/.github/workflows/linting.yml
+++ b/.github/workflows/linting.yml
@@ -8,7 +8,6 @@ on:
branches:
- master
- linting
- workflow_dispatch:
jobs:
nodejs-test:
diff --git a/.github/workflows/waf_test_ipSets.yml b/.github/workflows/waf_test_ipSets.yml
new file mode 100644
index 00000000..f34f3050
--- /dev/null
+++ b/.github/workflows/waf_test_ipSets.yml
@@ -0,0 +1,76 @@
+name: IpSet-Firewall
+
+env:
+ AWS_REGION: eu-central-1
+ AWS_ROLE: FirewallFactoryGithubPipelineRole
+ AWS_ACCOUNT: 859220371210
+
+permissions:
+ id-token: write
+ contents: read
+
+concurrency: ci-${{ github.ref }}
+
+on:
+ push:
+ branches:
+ - master
+ paths:
+ - 'bin/**/*'
+ - 'lib/**/*'
+ - 'package*.json'
+ pull_request:
+ branches:
+ - master
+ paths:
+ - 'bin/**/*'
+ - 'lib/**/*'
+ - 'package*.json'
+jobs:
+ deploy_production_main:
+ name: Test and deploy IpSet Firewall
+ runs-on: ubuntu-latest
+ steps:
+ - name: β¬οΈ Checkout
+ uses: actions/checkout@v3
+ - name: π Install Taskfile
+ run: |
+ npm install -g @go-task/cli
+ - name: β Use Node.js
+ uses: actions/setup-node@v1
+ with:
+ node-version: '18.x'
+ - name: πΎ Cache Node.js modules
+ uses: actions/cache@v2
+ with:
+ path: ~/.npm
+ key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
+ restore-keys: |
+ ${{ runner.OS }}-node-
+ ${{ runner.OS }}-
+ - name: π Install CDK and typescript globally
+ run: |
+ npm i -g aws-cdk typescript ts-node @types/node
+ npm link typescript
+ - name: π¦ Install Packages
+ run: |
+ npm install
+ - name: π Configure AWS credentials
+ uses: aws-actions/configure-aws-credentials@v1.7.0
+ env:
+ ACCOUNT_ID: ${{ env.AWS_ACCOUNT }}
+ with:
+ role-to-assume: arn:aws:iam::${{ env.ACCOUNT_ID }}:role/${{ env.AWS_ROLE }}
+ aws-region: ${{ env.AWS_REGION }}
+ role-session-name: GitHubActionsSession
+ mask-aws-account-id: false
+ - name: π Set up QEMU
+ uses: docker/setup-qemu-action@v2
+ - name: π« Set up Docker Buildx
+ uses: docker/setup-buildx-action@v2
+ - name: π₯ Deploy Firewall to AWS
+ run: |
+ task deploy config=ipSetsTests
+ - name: ποΈ Remove Firewall from AWS
+ run: |
+ task destroy config=ipSetsTests
\ No newline at end of file
diff --git a/.github/workflows/waf_test_onlymanagedrulegroups.yml b/.github/workflows/waf_test_onlymanagedrulegroups.yml
new file mode 100644
index 00000000..1615e134
--- /dev/null
+++ b/.github/workflows/waf_test_onlymanagedrulegroups.yml
@@ -0,0 +1,76 @@
+name: ManagedRuleGroups-Firewall
+
+env:
+ AWS_REGION: eu-central-1
+ AWS_ROLE: FirewallFactoryGithubPipelineRole
+ AWS_ACCOUNT: 859220371210
+
+permissions:
+ id-token: write
+ contents: read
+
+concurrency: ci-${{ github.ref }}
+
+on:
+ push:
+ branches:
+ - master
+ paths:
+ - 'bin/**/*'
+ - 'lib/**/*'
+ - 'package*.json'
+ pull_request:
+ branches:
+ - master
+ paths:
+ - 'bin/**/*'
+ - 'lib/**/*'
+ - 'package*.json'
+jobs:
+ deploy_production_main:
+ name: Test and deploy OnlyManagedRuleGroups Firewall
+ runs-on: ubuntu-latest
+ steps:
+ - name: β¬οΈ Checkout
+ uses: actions/checkout@v3
+ - name: π Install Taskfile
+ run: |
+ npm install -g @go-task/cli
+ - name: β Use Node.js
+ uses: actions/setup-node@v1
+ with:
+ node-version: '18.x'
+ - name: πΎ Cache Node.js modules
+ uses: actions/cache@v2
+ with:
+ path: ~/.npm
+ key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
+ restore-keys: |
+ ${{ runner.OS }}-node-
+ ${{ runner.OS }}-
+ - name: π Install CDK and typescript globally
+ run: |
+ npm i -g aws-cdk typescript ts-node @types/node
+ npm link typescript
+ - name: π¦ Install Packages
+ run: |
+ npm install
+ - name: π Configure AWS credentials
+ uses: aws-actions/configure-aws-credentials@v1.7.0
+ env:
+ ACCOUNT_ID: ${{ env.AWS_ACCOUNT }}
+ with:
+ role-to-assume: arn:aws:iam::${{ env.ACCOUNT_ID }}:role/${{ env.AWS_ROLE }}
+ aws-region: ${{ env.AWS_REGION }}
+ role-session-name: GitHubActionsSession
+ mask-aws-account-id: false
+ - name: π Set up QEMU
+ uses: docker/setup-qemu-action@v2
+ - name: π« Set up Docker Buildx
+ uses: docker/setup-buildx-action@v2
+ - name: π₯ Deploy Firewall to AWS
+ run: |
+ task deploy config=onlyManagedRuleGroupsTests
+ - name: ποΈ Remove Firewall from AWS
+ run: |
+ task destroy config=onlyManagedRuleGroupsTests
\ No newline at end of file
diff --git a/.github/workflows/waf_test_regexPatternSets.yml b/.github/workflows/waf_test_regexPatternSets.yml
new file mode 100644
index 00000000..9fda144b
--- /dev/null
+++ b/.github/workflows/waf_test_regexPatternSets.yml
@@ -0,0 +1,77 @@
+name: RegexPatternSets-Firewall
+
+env:
+ AWS_REGION: eu-central-1
+ AWS_ROLE: FirewallFactoryGithubPipelineRole
+ AWS_ACCOUNT: 859220371210
+
+permissions:
+ id-token: write
+ contents: read
+
+concurrency: ci-${{ github.ref }}
+
+on:
+ push:
+ branches:
+ - master
+ paths:
+ - 'bin/**/*'
+ - 'lib/**/*'
+ - 'package*.json'
+ pull_request:
+ branches:
+ - master
+ paths:
+ - 'bin/**/*'
+ - 'lib/**/*'
+ - 'package*.json'
+
+jobs:
+ deploy_production_main:
+ name: Test and deploy RegexPatternSets Firewall
+ runs-on: ubuntu-latest
+ steps:
+ - name: β¬οΈ Checkout
+ uses: actions/checkout@v3
+ - name: π Install Taskfile
+ run: |
+ npm install -g @go-task/cli
+ - name: β Use Node.js
+ uses: actions/setup-node@v1
+ with:
+ node-version: '18.x'
+ - name: πΎ Cache Node.js modules
+ uses: actions/cache@v2
+ with:
+ path: ~/.npm
+ key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
+ restore-keys: |
+ ${{ runner.OS }}-node-
+ ${{ runner.OS }}-
+ - name: π Install CDK and typescript globally
+ run: |
+ npm i -g aws-cdk typescript ts-node @types/node
+ npm link typescript
+ - name: π¦ Install Packages
+ run: |
+ npm install
+ - name: π Configure AWS credentials
+ uses: aws-actions/configure-aws-credentials@v1.7.0
+ env:
+ ACCOUNT_ID: ${{ env.AWS_ACCOUNT }}
+ with:
+ role-to-assume: arn:aws:iam::${{ env.ACCOUNT_ID }}:role/${{ env.AWS_ROLE }}
+ aws-region: ${{ env.AWS_REGION }}
+ role-session-name: GitHubActionsSession
+ mask-aws-account-id: false
+ - name: π Set up QEMU
+ uses: docker/setup-qemu-action@v2
+ - name: π« Set up Docker Buildx
+ uses: docker/setup-buildx-action@v2
+ - name: π₯ Deploy Firewall to AWS
+ run: |
+ task deploy config=regexPatternSetsTests
+ - name: ποΈ Remove Firewall from AWS
+ run: |
+ task destroy config=regexPatternSetsTests
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8746b364..d2ed358e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,7 +2,20 @@
## Released
+## 4.1.3
+## Added
+- Optional Lambda function to prerequisite Stack that send notifications about potential DDoS activity for protected resources to messengers (Slack/Teams) - [AWS Shield Advanced]
+- Automated test workflows of example firewalls, to ensure code quality and test coverage
+
+### Fixed
+- Bump @aws-sdk/client-cloudformation from 3.427.0 to 3.428.0
+- Bump @aws-sdk/client-shield from 3.427.0 to 3.428.0
+- Bump typescript from 4.9.5 to 5.2.2
+- Bump jest from 29.5.0 to 29.7.0
+- Bump eslint from 8.48.0 to 8.51.0
+
## 4.1.2
+
### Fixed
- Separate NotStatements where not parsed correctly while deployment
- Bump @typescript-eslint/eslint-plugin 6.7.4 from to 6.7.5
diff --git a/README.md b/README.md
index 238c55c4..fdb5bc00 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@
**[π§ Feature request](https://github.com/globaldatanet/aws-firewall-factory/issues/new?assignees=&labels=feature-request%2C+enhancement&template=feature_request.md&title=)** | **[π Bug Report](https://github.com/globaldatanet/aws-firewall-factory/issues/new?assignees=&labels=bug%2C+triage&template=bug_report.md&title=)**
-
+
## π° Table of contents
@@ -19,6 +19,7 @@
- [π¬ Media](#-media)
- [π Useful Links](#-useful-links)
- [πΊοΈ Architecture](#οΈ-architecture)
+- [π§ͺ Tests](#-tests)
- [π¦ΈπΌββοΈ Contributors](#οΈ-contributors)
- [π©βπ» Contribute](#-contribute)
- [π Supporters](#-supporters)
@@ -57,6 +58,17 @@ If you want to learn more about the AWS Firewall Factory feel free to look at th
![Architecture](./static/AWSFIREWALLMANAGER.png "Architecture")
+## π§ͺ Tests
+| Test | Status |
+|---|---|
+| CodeQL | ![CodeQL](https://github.com/globaldatanet/aws-firewall-factory/actions/workflows/github-code-scanning/codeql/badge.svg?branch=master) |
+| Linting | ![linting](https://github.com/globaldatanet/aws-firewall-factory/actions/workflows/linting.yml/badge.svg?branch=master) |
+| WAF Deployment - Only Managed Rule Groups | ![onlyManagedRuleGroups](https://github.com/globaldatanet/aws-firewall-factory/actions/workflows/waf_test_onlymanagedrulegroups.yml/badge.svg?branch=master) |
+| WAF Deployment - IpSets | ![IpSets](https://github.com/globaldatanet/aws-firewall-factory/actions/workflows/waf_test_ipSets.yml/badge.svg?branch=master) |
+| WAF Deployment - RegexPatternSets | ![regexPatternSets](https://github.com/globaldatanet/aws-firewall-factory/actions/workflows/waf_test_regexPatternSets.yml/badge.svg?branch=master) |
+
+
+
## π¦ΈπΌββοΈ Contributors
diff --git a/Taskfile.yml b/Taskfile.yml
index 3a9319eb..059d8598 100644
--- a/Taskfile.yml
+++ b/Taskfile.yml
@@ -47,7 +47,7 @@ tasks:
cdkdestroy:
desc: CDK Destroy
cmds:
- - cdk destroy
+ - cdk destroy --require-approval never --force
vars:
ACCOUNT:
sh: aws sts get-caller-identity |jq -r .Account
@@ -59,7 +59,7 @@ tasks:
cdkdeploy:
desc: CDK Deploy
cmds:
- - cdk deploy --require-approval never {{.TAGS}} --toolkit-stack-name {{.TOOL_KIT_STACKNAME}}
+ - DOCKER_BUILDKIT=1 cdk deploy --require-approval never {{.TAGS}} --toolkit-stack-name {{.TOOL_KIT_STACKNAME}}
vars:
ACCOUNT:
sh: aws sts get-caller-identity |jq -r .Account
diff --git a/gotestwaf/gotestwaf.ts b/gotestwaf/gotestwaf.ts
new file mode 100644
index 00000000..404d84ec
--- /dev/null
+++ b/gotestwaf/gotestwaf.ts
@@ -0,0 +1,13 @@
+import * as values from "../values";
+
+/**
+ * relative path to config file imported from the env PROCESS_PARAMETERS
+ */
+const CONFIG_OBJECT_NAME = process.env.PROCESS_PARAMETERS;
+
+if(!CONFIG_OBJECT_NAME || (values.configs[CONFIG_OBJECT_NAME] === undefined && values.prereq[CONFIG_OBJECT_NAME] === undefined)) {
+ console.log("Configuration ", CONFIG_OBJECT_NAME, " not found.");
+ process.exit(1);
+}
+
+console.log(JSON.stringify(values.configs[CONFIG_OBJECT_NAME]));
\ No newline at end of file
diff --git a/lib/firewall-stack.ts b/lib/firewall-stack.ts
index 3ade7735..12dc05e7 100644
--- a/lib/firewall-stack.ts
+++ b/lib/firewall-stack.ts
@@ -173,7 +173,7 @@ export class FirewallStack extends cdk.Stack {
managedRuleGroupVersionLambdaRole.addToPolicy(wafGetManagedRuleGroupVersion);
const managedRuleGroupVersionLambda = new NodejsFunction.NodejsFunction(this, "managedRuleGroupVersionLambdaFunction", {
- entry: path.join(__dirname, "../lib/lambda/ManagedRuleGRoupVersion/index.ts"),
+ entry: path.join(__dirname, "../lib/lambda/ManagedRuleGroupVersion/index.ts"),
handler: "handler",
timeout: cdk.Duration.seconds(30),
architecture:lambda.Architecture.ARM_64,
diff --git a/lib/lambda/FmsNotification/index.py b/lib/lambda/FmsNotification/index.py
new file mode 100644
index 00000000..a45dd80e
--- /dev/null
+++ b/lib/lambda/FmsNotification/index.py
@@ -0,0 +1,87 @@
+import json
+import logging
+import os
+import urllib.request
+import boto3
+
+wafv2 = boto3.client('wafv2')
+
+HOOK_URL = os.environ['WebhookUrl']
+MESSENGER = os.environ['Messenger']
+
+logger = logging.getLogger()
+logger.setLevel(logging.INFO)
+
+
+def format_slack_message(data):
+ payload = {
+ 'username': f"π¨ FMS Notification",
+ 'text': f"{data['Subject']}",
+ 'attachments': [
+ {
+ 'fallback': "Detailed information:",
+ 'color': 'green',
+ 'title': data['Subject'],
+ 'text': data['Message'],
+ }
+ ]
+ }
+ return payload
+
+
+def format_teams_message(data):
+ message = {
+ "type":"message",
+ "attachments":[
+ {
+ "contentType":"application/vnd.microsoft.card.adaptive",
+ "contentUrl": "",
+ "content":{
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "type": "AdaptiveCard",
+ "msteams": {
+ "width": "Full"
+ },
+ "version": "1.4",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": f"{data['Subject']}",
+ "size": "Large",
+ "weight": "Bolder",
+ "wrap": True
+ },
+ {
+ "type": "TextBlock",
+ "text": f"{data['Message']}",
+ "separator": True,
+ "wrap": True
+ }
+ ]
+ }
+ }
+ ]
+ }
+ return message
+
+
+def notify(url, payload):
+ data = json.dumps(payload).encode('utf-8')
+ method = 'POST'
+ headers = {'Content-Type': 'application/json'}
+
+ request = urllib.request.Request(url, data = data, method = method, headers = headers)
+ with urllib.request.urlopen(request) as response:
+ return response.read().decode('utf-8')
+
+
+def lambda_handler(event, context):
+ logger.info("Message: " + str(event))
+ for(record) in event['Records']:
+ if(MESSENGER == "Slack"):
+ payload = format_slack_message(record['Sns'])
+ elif(MESSENGER == "Teams"):
+ payload = format_teams_message(record['Sns'])
+ response = notify(HOOK_URL, payload)
+ print(response)
+
diff --git a/lib/prerequisites-stack.ts b/lib/prerequisites-stack.ts
index 41ae5a55..8720f8d5 100644
--- a/lib/prerequisites-stack.ts
+++ b/lib/prerequisites-stack.ts
@@ -6,7 +6,8 @@ import { aws_kms as kms } from "aws-cdk-lib";
import { aws_iam as iam } from "aws-cdk-lib";
import { aws_lambda as lambda } from "aws-cdk-lib";
import { aws_logs as logs } from "aws-cdk-lib";
-
+import { aws_fms as fms } from "aws-cdk-lib";
+import { aws_sns as sns } from "aws-cdk-lib";
export interface StackProps extends cdk.StackProps {
readonly prerequisites: Prerequisites;
}
@@ -52,6 +53,47 @@ export class PrerequisitesStack extends cdk.Stack {
sourceArn: "arn:aws:sns:us-east-1:248400274283:aws-managed-waf-rule-notifications",
});
}
+ if(props.prerequisites.DdosNotifications) {
+ console.log("π’ Creating Lambda Function that send notifications about potential DDoS activity for protected resources to messengers (Slack/Teams)");
+ let Messenger:string = "";
+ let WebhookUrl:string = "";
+ if(props.prerequisites.DdosNotifications.SlackWebhook) {
+ Messenger="Slack";
+ WebhookUrl=props.prerequisites.DdosNotifications.SlackWebhook;
+ }
+ if(props.prerequisites.DdosNotifications.TeamsWebhook) {
+ Messenger="Teams";
+ WebhookUrl=props.prerequisites.DdosNotifications.TeamsWebhook;
+ }
+ const FmsNotification = new lambda.Function(this, "AWS-Firewall-Factory-FMS-Notifications", {
+ runtime: lambda.Runtime.PYTHON_3_11,
+ code: lambda.Code.fromAsset("./lib/lambda/FmsNotification"),
+ handler: "index.lambda_handler",
+ timeout: cdk.Duration.seconds(30),
+ environment: {
+ "Messenger": Messenger,
+ "WebhookUrl": WebhookUrl,
+ },
+ logRetention: logs.RetentionDays.ONE_WEEK,
+ description: "Lambda Function that send notifications about potential DDoS activity for protected resources to messengers (Slack/Teams)",
+ });
+ const snsRoleName = `arn:aws:iam::${props.env?.account}:role/aws-service-role/fms.amazonaws.com/AWSServiceRoleForFMS`;
+ const FmsTopic = new sns.Topic(this, "FMS-Notifications-Topic");
+ FmsTopic.addToResourcePolicy(new iam.PolicyStatement({
+ actions: ["sns:Publish"],
+ principals: [iam.Role.fromRoleArn(this, "AWSServiceRoleForFMS",snsRoleName)],
+ }));
+ FmsNotification.addPermission("InvokeByFmsSnsTopic", {
+ action: "lambda:InvokeFunction",
+ principal: new iam.ServicePrincipal("sns.amazonaws.com"),
+ sourceArn: FmsTopic.topicArn,
+ });
+ new fms.CfnNotificationChannel(this, "AWS-Firewall-Factory-FMS-NotificationChannel", {
+ snsRoleName,
+ snsTopicArn: FmsTopic.topicArn,
+ });
+ }
+
if(props.prerequisites.Logging) {
if(props.prerequisites.Logging.FireHoseKey) {
diff --git a/lib/tools/price-calculator.ts b/lib/tools/price-calculator.ts
index 0b454a9a..6dcd7768 100644
--- a/lib/tools/price-calculator.ts
+++ b/lib/tools/price-calculator.ts
@@ -177,9 +177,9 @@ export async function isPriceCalculated(runtimeProps: RuntimeProperties): Promis
const requestscost = runtimeProps.Pricing.Request;
const totalcost = fixedcost + (requestscost * 5) + (captchacost * 5);
const shieldSubscriptionState = await getShieldSubscriptionState();
- console.log("\nπ‘οΈ Shield Advanced State: " + shieldSubscriptionState?.toLowerCase());
+ console.log("\nπ‘οΈ Shield Advanced State: " + shieldSubscriptionState);
console.log("\nπ° Cost: \n");
- if(shieldSubscriptionState === "ACTIVE"){
+ if(shieldSubscriptionState && shieldSubscriptionState === "ACTIVE"){
fixedcost = botcontrolfixedcost + atpfixedcost + runtimeProps.Pricing.Dashboard;
}
console.log(" WAF Rules cost: " + fixedcost + " $ per month");
@@ -192,7 +192,7 @@ export async function isPriceCalculated(runtimeProps: RuntimeProperties): Promis
(botcontrolfixedcost !== 0) ? console.log(" The deployed WAF includes BotControl rules this costs an extra fee of "+runtimeProps.Pricing.BotControl +" $ and " +runtimeProps.Pricing.BotControlRequest +"$ pro 1 mio requests (10 mio request Free Tier). \n These costs are already included in the price calculation.") : "";
(atpfixedcost !== 0) ? console.log(" The deployed WAF includes Account Takeover Prevention rules this costs an extra fee of "+runtimeProps.Pricing.AccountTakeoverPrevention+" $ and " + runtimeProps.Pricing.AccountTakeoverPreventionRequest +" $ per thousand login attempts analyzed (10,000 attempts analyzed Free Tier). \n These costs are already included in the price calculation.") : "";
(runtimeProps.Pricing.Dashboard !== 0) ? console.log(" The deployed WAF includes CloudWatch Dashboard and you have more than 3 Dashboards (Free tier), so you will need to pay " + runtimeProps.Pricing.Dashboard+ "$ for this CloudWatch Dashboard. \n These costs are already included in the price calculation.") : "";
- (shieldSubscriptionState === "Active") ? console.log(" AWS WAF WebACLs or Rules created by Firewall Manager - are Included in AWS Shield Advanced. More information at https://aws.amazon.com/firewall-manager/pricing/.") : "";
+ (shieldSubscriptionState === "ACTIVE") ? console.log(" AWS WAF WebACLs or Rules created by Firewall Manager - are Included in AWS Shield Advanced. More information at https://aws.amazon.com/firewall-manager/pricing/.") : "";
console.log("\n\n");
const pricecalculated = true;
return pricecalculated;
diff --git a/lib/types/config.ts b/lib/types/config.ts
index cb2675a5..bd74923b 100644
--- a/lib/types/config.ts
+++ b/lib/types/config.ts
@@ -48,6 +48,10 @@ export interface Prerequisites {
SlackWebhook?: string,
TeamsWebhook?: string,
}
+ readonly DdosNotifications?:{
+ SlackWebhook?: string,
+ TeamsWebhook?: string,
+ }
readonly Logging?: {
readonly BucketProperties?: {
readonly BucketName?: string,
diff --git a/package-lock.json b/package-lock.json
index 085b0995..db4b4654 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,12 +8,12 @@
"name": "aws-firewall-factory",
"version": "4.1.2",
"dependencies": {
- "@aws-sdk/client-cloudformation": "^3.427.0",
+ "@aws-sdk/client-cloudformation": "^3.428.0",
"@aws-sdk/client-cloudwatch": "^3.427.0",
"@aws-sdk/client-fms": "^3.427.0",
"@aws-sdk/client-pricing": "^3.427.0",
"@aws-sdk/client-service-quotas": "^3.427.0",
- "@aws-sdk/client-shield": "^3.427.0",
+ "@aws-sdk/client-shield": "^3.428.0",
"@aws-sdk/client-wafv2": "^3.427.0",
"@mhlabs/cfn-diagram": "^1.1.29",
"@types/aws-lambda": "^8.10.119",
@@ -35,11 +35,11 @@
"@typescript-eslint/eslint-plugin": "6.7.5",
"@typescript-eslint/parser": "6.7.5",
"aws-cdk": "2.100.0",
- "eslint": "8.48.0",
- "jest": "29.5.0",
+ "eslint": "8.51.0",
+ "jest": "29.7.0",
"ts-jest": "29.1.1",
"ts-node": "10.9.1",
- "typescript": "4.9.5"
+ "typescript": "5.2.2"
}
},
"node_modules/@aashutoshrathi/word-wrap": {
@@ -171,47 +171,47 @@
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
"node_modules/@aws-sdk/client-cloudformation": {
- "version": "3.427.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudformation/-/client-cloudformation-3.427.0.tgz",
- "integrity": "sha512-Hm1E/b3mIq/6vTJthN8CR+92p73AMLSA8Oe/qso78aUCEYyFL32gjT1fCQFTx0HYyh2x0sbJXSO/jD7FpUR4PQ==",
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudformation/-/client-cloudformation-3.433.0.tgz",
+ "integrity": "sha512-6jFMhWM0AeBwCFyLo3VpOzmqwYOrGiwGB8LDUmI0bFsPyIFhxOKMTZ5DMvG8qe+JK4f9W5XqUQpFVrRmvqEccA==",
"dependencies": {
"@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0",
- "@aws-sdk/client-sts": "3.427.0",
- "@aws-sdk/credential-provider-node": "3.427.0",
- "@aws-sdk/middleware-host-header": "3.425.0",
- "@aws-sdk/middleware-logger": "3.425.0",
- "@aws-sdk/middleware-recursion-detection": "3.425.0",
- "@aws-sdk/middleware-signing": "3.425.0",
- "@aws-sdk/middleware-user-agent": "3.427.0",
- "@aws-sdk/region-config-resolver": "3.425.0",
- "@aws-sdk/types": "3.425.0",
- "@aws-sdk/util-endpoints": "3.427.0",
- "@aws-sdk/util-user-agent-browser": "3.425.0",
- "@aws-sdk/util-user-agent-node": "3.425.0",
- "@smithy/config-resolver": "^2.0.11",
- "@smithy/fetch-http-handler": "^2.2.1",
- "@smithy/hash-node": "^2.0.10",
- "@smithy/invalid-dependency": "^2.0.10",
- "@smithy/middleware-content-length": "^2.0.12",
- "@smithy/middleware-endpoint": "^2.0.10",
- "@smithy/middleware-retry": "^2.0.13",
- "@smithy/middleware-serde": "^2.0.10",
- "@smithy/middleware-stack": "^2.0.4",
- "@smithy/node-config-provider": "^2.0.13",
- "@smithy/node-http-handler": "^2.1.6",
- "@smithy/protocol-http": "^3.0.6",
- "@smithy/smithy-client": "^2.1.9",
- "@smithy/types": "^2.3.4",
- "@smithy/url-parser": "^2.0.10",
+ "@aws-sdk/client-sts": "3.433.0",
+ "@aws-sdk/credential-provider-node": "3.433.0",
+ "@aws-sdk/middleware-host-header": "3.433.0",
+ "@aws-sdk/middleware-logger": "3.433.0",
+ "@aws-sdk/middleware-recursion-detection": "3.433.0",
+ "@aws-sdk/middleware-signing": "3.433.0",
+ "@aws-sdk/middleware-user-agent": "3.433.0",
+ "@aws-sdk/region-config-resolver": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@aws-sdk/util-endpoints": "3.433.0",
+ "@aws-sdk/util-user-agent-browser": "3.433.0",
+ "@aws-sdk/util-user-agent-node": "3.433.0",
+ "@smithy/config-resolver": "^2.0.16",
+ "@smithy/fetch-http-handler": "^2.2.4",
+ "@smithy/hash-node": "^2.0.12",
+ "@smithy/invalid-dependency": "^2.0.12",
+ "@smithy/middleware-content-length": "^2.0.14",
+ "@smithy/middleware-endpoint": "^2.1.3",
+ "@smithy/middleware-retry": "^2.0.18",
+ "@smithy/middleware-serde": "^2.0.12",
+ "@smithy/middleware-stack": "^2.0.6",
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/node-http-handler": "^2.1.8",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/smithy-client": "^2.1.12",
+ "@smithy/types": "^2.4.0",
+ "@smithy/url-parser": "^2.0.12",
"@smithy/util-base64": "^2.0.0",
"@smithy/util-body-length-browser": "^2.0.0",
"@smithy/util-body-length-node": "^2.1.0",
- "@smithy/util-defaults-mode-browser": "^2.0.13",
- "@smithy/util-defaults-mode-node": "^2.0.15",
- "@smithy/util-retry": "^2.0.3",
+ "@smithy/util-defaults-mode-browser": "^2.0.16",
+ "@smithy/util-defaults-mode-node": "^2.0.21",
+ "@smithy/util-retry": "^2.0.5",
"@smithy/util-utf8": "^2.0.0",
- "@smithy/util-waiter": "^2.0.10",
+ "@smithy/util-waiter": "^2.0.12",
"fast-xml-parser": "4.2.5",
"tslib": "^2.5.0",
"uuid": "^8.3.2"
@@ -220,6 +220,403 @@
"node": ">=14.0.0"
}
},
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/client-sso": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.433.0.tgz",
+ "integrity": "sha512-L7ksMP7UnYH+w52ly+m+s5vk8662VtyqJ+UduFEMPqKUHTFEm7w+CCw4Xfk3hl5GlVvqPvYWqBqv8eLKSHpCEQ==",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "3.0.0",
+ "@aws-crypto/sha256-js": "3.0.0",
+ "@aws-sdk/middleware-host-header": "3.433.0",
+ "@aws-sdk/middleware-logger": "3.433.0",
+ "@aws-sdk/middleware-recursion-detection": "3.433.0",
+ "@aws-sdk/middleware-user-agent": "3.433.0",
+ "@aws-sdk/region-config-resolver": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@aws-sdk/util-endpoints": "3.433.0",
+ "@aws-sdk/util-user-agent-browser": "3.433.0",
+ "@aws-sdk/util-user-agent-node": "3.433.0",
+ "@smithy/config-resolver": "^2.0.16",
+ "@smithy/fetch-http-handler": "^2.2.4",
+ "@smithy/hash-node": "^2.0.12",
+ "@smithy/invalid-dependency": "^2.0.12",
+ "@smithy/middleware-content-length": "^2.0.14",
+ "@smithy/middleware-endpoint": "^2.1.3",
+ "@smithy/middleware-retry": "^2.0.18",
+ "@smithy/middleware-serde": "^2.0.12",
+ "@smithy/middleware-stack": "^2.0.6",
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/node-http-handler": "^2.1.8",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/smithy-client": "^2.1.12",
+ "@smithy/types": "^2.4.0",
+ "@smithy/url-parser": "^2.0.12",
+ "@smithy/util-base64": "^2.0.0",
+ "@smithy/util-body-length-browser": "^2.0.0",
+ "@smithy/util-body-length-node": "^2.1.0",
+ "@smithy/util-defaults-mode-browser": "^2.0.16",
+ "@smithy/util-defaults-mode-node": "^2.0.21",
+ "@smithy/util-retry": "^2.0.5",
+ "@smithy/util-utf8": "^2.0.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/client-sts": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.433.0.tgz",
+ "integrity": "sha512-hQ+NLIcA1KRJ2qPdrtkJ3fOEVnehLLMlnB/I5mjg9K2UKjuiOufLao6tc5SyW9fseIL9AdX3fjJ8Unhg+y1RWg==",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "3.0.0",
+ "@aws-crypto/sha256-js": "3.0.0",
+ "@aws-sdk/credential-provider-node": "3.433.0",
+ "@aws-sdk/middleware-host-header": "3.433.0",
+ "@aws-sdk/middleware-logger": "3.433.0",
+ "@aws-sdk/middleware-recursion-detection": "3.433.0",
+ "@aws-sdk/middleware-sdk-sts": "3.433.0",
+ "@aws-sdk/middleware-signing": "3.433.0",
+ "@aws-sdk/middleware-user-agent": "3.433.0",
+ "@aws-sdk/region-config-resolver": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@aws-sdk/util-endpoints": "3.433.0",
+ "@aws-sdk/util-user-agent-browser": "3.433.0",
+ "@aws-sdk/util-user-agent-node": "3.433.0",
+ "@smithy/config-resolver": "^2.0.16",
+ "@smithy/fetch-http-handler": "^2.2.4",
+ "@smithy/hash-node": "^2.0.12",
+ "@smithy/invalid-dependency": "^2.0.12",
+ "@smithy/middleware-content-length": "^2.0.14",
+ "@smithy/middleware-endpoint": "^2.1.3",
+ "@smithy/middleware-retry": "^2.0.18",
+ "@smithy/middleware-serde": "^2.0.12",
+ "@smithy/middleware-stack": "^2.0.6",
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/node-http-handler": "^2.1.8",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/smithy-client": "^2.1.12",
+ "@smithy/types": "^2.4.0",
+ "@smithy/url-parser": "^2.0.12",
+ "@smithy/util-base64": "^2.0.0",
+ "@smithy/util-body-length-browser": "^2.0.0",
+ "@smithy/util-body-length-node": "^2.1.0",
+ "@smithy/util-defaults-mode-browser": "^2.0.16",
+ "@smithy/util-defaults-mode-node": "^2.0.21",
+ "@smithy/util-retry": "^2.0.5",
+ "@smithy/util-utf8": "^2.0.0",
+ "fast-xml-parser": "4.2.5",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-env": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.433.0.tgz",
+ "integrity": "sha512-Vl7Qz5qYyxBurMn6hfSiNJeUHSqfVUlMt0C1Bds3tCkl3IzecRWwyBOlxtxO3VCrgVeW3HqswLzCvhAFzPH6nQ==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-ini": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.433.0.tgz",
+ "integrity": "sha512-T+YhCOORyA4+i4T86FfFCmi/jPsmLOP6GAtScHp/K8XzB9XuVvJSZ+T8SUKeW6/9G9z3Az7dqeBVLcMdC6fFDA==",
+ "dependencies": {
+ "@aws-sdk/credential-provider-env": "3.433.0",
+ "@aws-sdk/credential-provider-process": "3.433.0",
+ "@aws-sdk/credential-provider-sso": "3.433.0",
+ "@aws-sdk/credential-provider-web-identity": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/credential-provider-imds": "^2.0.0",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/shared-ini-file-loader": "^2.0.6",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-node": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.433.0.tgz",
+ "integrity": "sha512-uOTBJszqGJIX5SrH2YdN501cv9rW4ghuSkasxI9DL+sVV5YRMd/bwu6I3PphRyK7z4dosDEbJ1xoIuVR/W04HQ==",
+ "dependencies": {
+ "@aws-sdk/credential-provider-env": "3.433.0",
+ "@aws-sdk/credential-provider-ini": "3.433.0",
+ "@aws-sdk/credential-provider-process": "3.433.0",
+ "@aws-sdk/credential-provider-sso": "3.433.0",
+ "@aws-sdk/credential-provider-web-identity": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/credential-provider-imds": "^2.0.0",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/shared-ini-file-loader": "^2.0.6",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-process": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.433.0.tgz",
+ "integrity": "sha512-W7FcGlQjio9Y/PepcZGRyl5Bpwb0uWU7qIUCh+u4+q2mW4D5ZngXg8V/opL9/I/p4tUH9VXZLyLGwyBSkdhL+A==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/shared-ini-file-loader": "^2.0.6",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-sso": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.433.0.tgz",
+ "integrity": "sha512-vuc2X7q/1HUAO/NowfnNMpRDoHw8H2lyZZzUc0lmamy6PDrEFBi/VTm1nStGPuS9egCFrYlkRHsfp50ukYGa5w==",
+ "dependencies": {
+ "@aws-sdk/client-sso": "3.433.0",
+ "@aws-sdk/token-providers": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/shared-ini-file-loader": "^2.0.6",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-web-identity": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.433.0.tgz",
+ "integrity": "sha512-RlwjP1I5wO+aPpwyCp23Mk8nmRbRL33hqRASy73c4JA2z2YiRua+ryt6MalIxehhwQU6xvXUKulJnPG9VaMFZg==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-host-header": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.433.0.tgz",
+ "integrity": "sha512-mBTq3UWv1UzeHG+OfUQ2MB/5GEkt5LTKFaUqzL7ESwzW8XtpBgXnjZvIwu3Vcd3sEetMwijwaGiJhY0ae/YyaA==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-logger": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.433.0.tgz",
+ "integrity": "sha512-We346Fb5xGonTGVZC9Nvqtnqy74VJzYuTLLiuuftA5sbNzftBDy/22QCfvYSTOAl3bvif+dkDUzQY2ihc5PwOQ==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-recursion-detection": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.433.0.tgz",
+ "integrity": "sha512-HEvYC9PQlWY/ccUYtLvAlwwf1iCif2TSAmLNr3YTBRVa98x6jKL0hlCrHWYklFeqOGSKy6XhE+NGJMUII0/HaQ==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-sdk-sts": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.433.0.tgz",
+ "integrity": "sha512-ORYbJnBejUyonFl5FwIqhvI3Cq6sAp9j+JpkKZtFNma9tFPdrhmYgfCeNH32H/wGTQV/tUoQ3luh0gA4cuk6DA==",
+ "dependencies": {
+ "@aws-sdk/middleware-signing": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-signing": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.433.0.tgz",
+ "integrity": "sha512-jxPvt59NZo/epMNLNTu47ikmP8v0q217I6bQFGJG7JVFnfl36zDktMwGw+0xZR80qiK47/2BWrNpta61Zd2FxQ==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/signature-v4": "^2.0.0",
+ "@smithy/types": "^2.4.0",
+ "@smithy/util-middleware": "^2.0.5",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-user-agent": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.433.0.tgz",
+ "integrity": "sha512-jMgA1jHfisBK4oSjMKrtKEZf0sl2vzADivkFmyZFzORpSZxBnF6hC21RjaI+70LJLcc9rSCzLgcoz5lHb9LLDg==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@aws-sdk/util-endpoints": "3.433.0",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/region-config-resolver": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.433.0.tgz",
+ "integrity": "sha512-xpjRjCZW+CDFdcMmmhIYg81ST5UAnJh61IHziQEk0FXONrg4kjyYPZAOjEdzXQ+HxJQuGQLKPhRdzxmQnbX7pg==",
+ "dependencies": {
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/types": "^2.4.0",
+ "@smithy/util-config-provider": "^2.0.0",
+ "@smithy/util-middleware": "^2.0.5",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/token-providers": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.433.0.tgz",
+ "integrity": "sha512-Q6aYVaQKB+CkBLHQQlN8MHVpOzZv9snRfVz7SxIpdbHkRuGEHiLliCY3fg6Sonvu3AKEPERPuHcaC75tnNpOBw==",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "3.0.0",
+ "@aws-crypto/sha256-js": "3.0.0",
+ "@aws-sdk/middleware-host-header": "3.433.0",
+ "@aws-sdk/middleware-logger": "3.433.0",
+ "@aws-sdk/middleware-recursion-detection": "3.433.0",
+ "@aws-sdk/middleware-user-agent": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@aws-sdk/util-endpoints": "3.433.0",
+ "@aws-sdk/util-user-agent-browser": "3.433.0",
+ "@aws-sdk/util-user-agent-node": "3.433.0",
+ "@smithy/config-resolver": "^2.0.16",
+ "@smithy/fetch-http-handler": "^2.2.4",
+ "@smithy/hash-node": "^2.0.12",
+ "@smithy/invalid-dependency": "^2.0.12",
+ "@smithy/middleware-content-length": "^2.0.14",
+ "@smithy/middleware-endpoint": "^2.1.3",
+ "@smithy/middleware-retry": "^2.0.18",
+ "@smithy/middleware-serde": "^2.0.12",
+ "@smithy/middleware-stack": "^2.0.6",
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/node-http-handler": "^2.1.8",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/shared-ini-file-loader": "^2.0.6",
+ "@smithy/smithy-client": "^2.1.12",
+ "@smithy/types": "^2.4.0",
+ "@smithy/url-parser": "^2.0.12",
+ "@smithy/util-base64": "^2.0.0",
+ "@smithy/util-body-length-browser": "^2.0.0",
+ "@smithy/util-body-length-node": "^2.1.0",
+ "@smithy/util-defaults-mode-browser": "^2.0.16",
+ "@smithy/util-defaults-mode-node": "^2.0.21",
+ "@smithy/util-retry": "^2.0.5",
+ "@smithy/util-utf8": "^2.0.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/types": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.433.0.tgz",
+ "integrity": "sha512-0jEE2mSrNDd8VGFjTc1otYrwYPIkzZJEIK90ZxisKvQ/EURGBhNzWn7ejWB9XCMFT6XumYLBR0V9qq5UPisWtA==",
+ "dependencies": {
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/util-endpoints": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.433.0.tgz",
+ "integrity": "sha512-LFNUh9FH7RMtYjSjPGz9lAJQMzmJ3RcXISzc5X5k2R/9mNwMK7y1k2VAfvx+RbuDbll6xwsXlgv6QHcxVdF2zw==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/util-user-agent-browser": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.433.0.tgz",
+ "integrity": "sha512-2Cf/Lwvxbt5RXvWFXrFr49vXv0IddiUwrZoAiwhDYxvsh+BMnh+NUFot+ZQaTrk/8IPZVDeLPWZRdVy00iaVXQ==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/types": "^2.4.0",
+ "bowser": "^2.11.0",
+ "tslib": "^2.5.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/util-user-agent-node": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.433.0.tgz",
+ "integrity": "sha512-yT1tO4MbbsUBLl5+S+jVv8wxiAtP5TKjKib9B2KQ2x0OtWWTrIf2o+IZK8va+zQqdV4MVMjezdxdE20hOdB4yQ==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "aws-crt": ">=1.0.0"
+ },
+ "peerDependenciesMeta": {
+ "aws-crt": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@aws-sdk/client-cloudformation/node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
@@ -419,52 +816,449 @@
}
},
"node_modules/@aws-sdk/client-shield": {
- "version": "3.427.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-shield/-/client-shield-3.427.0.tgz",
- "integrity": "sha512-rdpmrA/K+hltxue6Sxt3ArnFTKNtQUdQG4r17VVaQCTd1oDWsJCDDZid+SU7vBI/y771dLpB82In0aDsQ9j2NQ==",
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-shield/-/client-shield-3.433.0.tgz",
+ "integrity": "sha512-nWcGEHgHkM3lBn45XkDP9I5WIb7QJ2Qc/M4YXQ4ZbhSwbJrpPRu1L2v40JvADBXWzouqKL70eqyJM1/mZTeB0Q==",
"dependencies": {
"@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0",
- "@aws-sdk/client-sts": "3.427.0",
- "@aws-sdk/credential-provider-node": "3.427.0",
- "@aws-sdk/middleware-host-header": "3.425.0",
- "@aws-sdk/middleware-logger": "3.425.0",
- "@aws-sdk/middleware-recursion-detection": "3.425.0",
- "@aws-sdk/middleware-signing": "3.425.0",
- "@aws-sdk/middleware-user-agent": "3.427.0",
- "@aws-sdk/region-config-resolver": "3.425.0",
- "@aws-sdk/types": "3.425.0",
- "@aws-sdk/util-endpoints": "3.427.0",
- "@aws-sdk/util-user-agent-browser": "3.425.0",
- "@aws-sdk/util-user-agent-node": "3.425.0",
- "@smithy/config-resolver": "^2.0.11",
- "@smithy/fetch-http-handler": "^2.2.1",
- "@smithy/hash-node": "^2.0.10",
- "@smithy/invalid-dependency": "^2.0.10",
- "@smithy/middleware-content-length": "^2.0.12",
- "@smithy/middleware-endpoint": "^2.0.10",
- "@smithy/middleware-retry": "^2.0.13",
- "@smithy/middleware-serde": "^2.0.10",
- "@smithy/middleware-stack": "^2.0.4",
- "@smithy/node-config-provider": "^2.0.13",
- "@smithy/node-http-handler": "^2.1.6",
- "@smithy/protocol-http": "^3.0.6",
- "@smithy/smithy-client": "^2.1.9",
- "@smithy/types": "^2.3.4",
- "@smithy/url-parser": "^2.0.10",
+ "@aws-sdk/client-sts": "3.433.0",
+ "@aws-sdk/credential-provider-node": "3.433.0",
+ "@aws-sdk/middleware-host-header": "3.433.0",
+ "@aws-sdk/middleware-logger": "3.433.0",
+ "@aws-sdk/middleware-recursion-detection": "3.433.0",
+ "@aws-sdk/middleware-signing": "3.433.0",
+ "@aws-sdk/middleware-user-agent": "3.433.0",
+ "@aws-sdk/region-config-resolver": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@aws-sdk/util-endpoints": "3.433.0",
+ "@aws-sdk/util-user-agent-browser": "3.433.0",
+ "@aws-sdk/util-user-agent-node": "3.433.0",
+ "@smithy/config-resolver": "^2.0.16",
+ "@smithy/fetch-http-handler": "^2.2.4",
+ "@smithy/hash-node": "^2.0.12",
+ "@smithy/invalid-dependency": "^2.0.12",
+ "@smithy/middleware-content-length": "^2.0.14",
+ "@smithy/middleware-endpoint": "^2.1.3",
+ "@smithy/middleware-retry": "^2.0.18",
+ "@smithy/middleware-serde": "^2.0.12",
+ "@smithy/middleware-stack": "^2.0.6",
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/node-http-handler": "^2.1.8",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/smithy-client": "^2.1.12",
+ "@smithy/types": "^2.4.0",
+ "@smithy/url-parser": "^2.0.12",
"@smithy/util-base64": "^2.0.0",
"@smithy/util-body-length-browser": "^2.0.0",
"@smithy/util-body-length-node": "^2.1.0",
- "@smithy/util-defaults-mode-browser": "^2.0.13",
- "@smithy/util-defaults-mode-node": "^2.0.15",
- "@smithy/util-retry": "^2.0.3",
+ "@smithy/util-defaults-mode-browser": "^2.0.16",
+ "@smithy/util-defaults-mode-node": "^2.0.21",
+ "@smithy/util-retry": "^2.0.5",
+ "@smithy/util-utf8": "^2.0.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/client-sso": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.433.0.tgz",
+ "integrity": "sha512-L7ksMP7UnYH+w52ly+m+s5vk8662VtyqJ+UduFEMPqKUHTFEm7w+CCw4Xfk3hl5GlVvqPvYWqBqv8eLKSHpCEQ==",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "3.0.0",
+ "@aws-crypto/sha256-js": "3.0.0",
+ "@aws-sdk/middleware-host-header": "3.433.0",
+ "@aws-sdk/middleware-logger": "3.433.0",
+ "@aws-sdk/middleware-recursion-detection": "3.433.0",
+ "@aws-sdk/middleware-user-agent": "3.433.0",
+ "@aws-sdk/region-config-resolver": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@aws-sdk/util-endpoints": "3.433.0",
+ "@aws-sdk/util-user-agent-browser": "3.433.0",
+ "@aws-sdk/util-user-agent-node": "3.433.0",
+ "@smithy/config-resolver": "^2.0.16",
+ "@smithy/fetch-http-handler": "^2.2.4",
+ "@smithy/hash-node": "^2.0.12",
+ "@smithy/invalid-dependency": "^2.0.12",
+ "@smithy/middleware-content-length": "^2.0.14",
+ "@smithy/middleware-endpoint": "^2.1.3",
+ "@smithy/middleware-retry": "^2.0.18",
+ "@smithy/middleware-serde": "^2.0.12",
+ "@smithy/middleware-stack": "^2.0.6",
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/node-http-handler": "^2.1.8",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/smithy-client": "^2.1.12",
+ "@smithy/types": "^2.4.0",
+ "@smithy/url-parser": "^2.0.12",
+ "@smithy/util-base64": "^2.0.0",
+ "@smithy/util-body-length-browser": "^2.0.0",
+ "@smithy/util-body-length-node": "^2.1.0",
+ "@smithy/util-defaults-mode-browser": "^2.0.16",
+ "@smithy/util-defaults-mode-node": "^2.0.21",
+ "@smithy/util-retry": "^2.0.5",
+ "@smithy/util-utf8": "^2.0.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/client-sts": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.433.0.tgz",
+ "integrity": "sha512-hQ+NLIcA1KRJ2qPdrtkJ3fOEVnehLLMlnB/I5mjg9K2UKjuiOufLao6tc5SyW9fseIL9AdX3fjJ8Unhg+y1RWg==",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "3.0.0",
+ "@aws-crypto/sha256-js": "3.0.0",
+ "@aws-sdk/credential-provider-node": "3.433.0",
+ "@aws-sdk/middleware-host-header": "3.433.0",
+ "@aws-sdk/middleware-logger": "3.433.0",
+ "@aws-sdk/middleware-recursion-detection": "3.433.0",
+ "@aws-sdk/middleware-sdk-sts": "3.433.0",
+ "@aws-sdk/middleware-signing": "3.433.0",
+ "@aws-sdk/middleware-user-agent": "3.433.0",
+ "@aws-sdk/region-config-resolver": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@aws-sdk/util-endpoints": "3.433.0",
+ "@aws-sdk/util-user-agent-browser": "3.433.0",
+ "@aws-sdk/util-user-agent-node": "3.433.0",
+ "@smithy/config-resolver": "^2.0.16",
+ "@smithy/fetch-http-handler": "^2.2.4",
+ "@smithy/hash-node": "^2.0.12",
+ "@smithy/invalid-dependency": "^2.0.12",
+ "@smithy/middleware-content-length": "^2.0.14",
+ "@smithy/middleware-endpoint": "^2.1.3",
+ "@smithy/middleware-retry": "^2.0.18",
+ "@smithy/middleware-serde": "^2.0.12",
+ "@smithy/middleware-stack": "^2.0.6",
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/node-http-handler": "^2.1.8",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/smithy-client": "^2.1.12",
+ "@smithy/types": "^2.4.0",
+ "@smithy/url-parser": "^2.0.12",
+ "@smithy/util-base64": "^2.0.0",
+ "@smithy/util-body-length-browser": "^2.0.0",
+ "@smithy/util-body-length-node": "^2.1.0",
+ "@smithy/util-defaults-mode-browser": "^2.0.16",
+ "@smithy/util-defaults-mode-node": "^2.0.21",
+ "@smithy/util-retry": "^2.0.5",
"@smithy/util-utf8": "^2.0.0",
+ "fast-xml-parser": "4.2.5",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/credential-provider-env": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.433.0.tgz",
+ "integrity": "sha512-Vl7Qz5qYyxBurMn6hfSiNJeUHSqfVUlMt0C1Bds3tCkl3IzecRWwyBOlxtxO3VCrgVeW3HqswLzCvhAFzPH6nQ==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/credential-provider-ini": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.433.0.tgz",
+ "integrity": "sha512-T+YhCOORyA4+i4T86FfFCmi/jPsmLOP6GAtScHp/K8XzB9XuVvJSZ+T8SUKeW6/9G9z3Az7dqeBVLcMdC6fFDA==",
+ "dependencies": {
+ "@aws-sdk/credential-provider-env": "3.433.0",
+ "@aws-sdk/credential-provider-process": "3.433.0",
+ "@aws-sdk/credential-provider-sso": "3.433.0",
+ "@aws-sdk/credential-provider-web-identity": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/credential-provider-imds": "^2.0.0",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/shared-ini-file-loader": "^2.0.6",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/credential-provider-node": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.433.0.tgz",
+ "integrity": "sha512-uOTBJszqGJIX5SrH2YdN501cv9rW4ghuSkasxI9DL+sVV5YRMd/bwu6I3PphRyK7z4dosDEbJ1xoIuVR/W04HQ==",
+ "dependencies": {
+ "@aws-sdk/credential-provider-env": "3.433.0",
+ "@aws-sdk/credential-provider-ini": "3.433.0",
+ "@aws-sdk/credential-provider-process": "3.433.0",
+ "@aws-sdk/credential-provider-sso": "3.433.0",
+ "@aws-sdk/credential-provider-web-identity": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/credential-provider-imds": "^2.0.0",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/shared-ini-file-loader": "^2.0.6",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/credential-provider-process": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.433.0.tgz",
+ "integrity": "sha512-W7FcGlQjio9Y/PepcZGRyl5Bpwb0uWU7qIUCh+u4+q2mW4D5ZngXg8V/opL9/I/p4tUH9VXZLyLGwyBSkdhL+A==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/shared-ini-file-loader": "^2.0.6",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
},
"engines": {
"node": ">=14.0.0"
}
},
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/credential-provider-sso": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.433.0.tgz",
+ "integrity": "sha512-vuc2X7q/1HUAO/NowfnNMpRDoHw8H2lyZZzUc0lmamy6PDrEFBi/VTm1nStGPuS9egCFrYlkRHsfp50ukYGa5w==",
+ "dependencies": {
+ "@aws-sdk/client-sso": "3.433.0",
+ "@aws-sdk/token-providers": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/shared-ini-file-loader": "^2.0.6",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/credential-provider-web-identity": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.433.0.tgz",
+ "integrity": "sha512-RlwjP1I5wO+aPpwyCp23Mk8nmRbRL33hqRASy73c4JA2z2YiRua+ryt6MalIxehhwQU6xvXUKulJnPG9VaMFZg==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/middleware-host-header": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.433.0.tgz",
+ "integrity": "sha512-mBTq3UWv1UzeHG+OfUQ2MB/5GEkt5LTKFaUqzL7ESwzW8XtpBgXnjZvIwu3Vcd3sEetMwijwaGiJhY0ae/YyaA==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/middleware-logger": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.433.0.tgz",
+ "integrity": "sha512-We346Fb5xGonTGVZC9Nvqtnqy74VJzYuTLLiuuftA5sbNzftBDy/22QCfvYSTOAl3bvif+dkDUzQY2ihc5PwOQ==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/middleware-recursion-detection": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.433.0.tgz",
+ "integrity": "sha512-HEvYC9PQlWY/ccUYtLvAlwwf1iCif2TSAmLNr3YTBRVa98x6jKL0hlCrHWYklFeqOGSKy6XhE+NGJMUII0/HaQ==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/middleware-sdk-sts": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.433.0.tgz",
+ "integrity": "sha512-ORYbJnBejUyonFl5FwIqhvI3Cq6sAp9j+JpkKZtFNma9tFPdrhmYgfCeNH32H/wGTQV/tUoQ3luh0gA4cuk6DA==",
+ "dependencies": {
+ "@aws-sdk/middleware-signing": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/middleware-signing": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.433.0.tgz",
+ "integrity": "sha512-jxPvt59NZo/epMNLNTu47ikmP8v0q217I6bQFGJG7JVFnfl36zDktMwGw+0xZR80qiK47/2BWrNpta61Zd2FxQ==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/signature-v4": "^2.0.0",
+ "@smithy/types": "^2.4.0",
+ "@smithy/util-middleware": "^2.0.5",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/middleware-user-agent": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.433.0.tgz",
+ "integrity": "sha512-jMgA1jHfisBK4oSjMKrtKEZf0sl2vzADivkFmyZFzORpSZxBnF6hC21RjaI+70LJLcc9rSCzLgcoz5lHb9LLDg==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@aws-sdk/util-endpoints": "3.433.0",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/region-config-resolver": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.433.0.tgz",
+ "integrity": "sha512-xpjRjCZW+CDFdcMmmhIYg81ST5UAnJh61IHziQEk0FXONrg4kjyYPZAOjEdzXQ+HxJQuGQLKPhRdzxmQnbX7pg==",
+ "dependencies": {
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/types": "^2.4.0",
+ "@smithy/util-config-provider": "^2.0.0",
+ "@smithy/util-middleware": "^2.0.5",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/token-providers": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.433.0.tgz",
+ "integrity": "sha512-Q6aYVaQKB+CkBLHQQlN8MHVpOzZv9snRfVz7SxIpdbHkRuGEHiLliCY3fg6Sonvu3AKEPERPuHcaC75tnNpOBw==",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "3.0.0",
+ "@aws-crypto/sha256-js": "3.0.0",
+ "@aws-sdk/middleware-host-header": "3.433.0",
+ "@aws-sdk/middleware-logger": "3.433.0",
+ "@aws-sdk/middleware-recursion-detection": "3.433.0",
+ "@aws-sdk/middleware-user-agent": "3.433.0",
+ "@aws-sdk/types": "3.433.0",
+ "@aws-sdk/util-endpoints": "3.433.0",
+ "@aws-sdk/util-user-agent-browser": "3.433.0",
+ "@aws-sdk/util-user-agent-node": "3.433.0",
+ "@smithy/config-resolver": "^2.0.16",
+ "@smithy/fetch-http-handler": "^2.2.4",
+ "@smithy/hash-node": "^2.0.12",
+ "@smithy/invalid-dependency": "^2.0.12",
+ "@smithy/middleware-content-length": "^2.0.14",
+ "@smithy/middleware-endpoint": "^2.1.3",
+ "@smithy/middleware-retry": "^2.0.18",
+ "@smithy/middleware-serde": "^2.0.12",
+ "@smithy/middleware-stack": "^2.0.6",
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/node-http-handler": "^2.1.8",
+ "@smithy/property-provider": "^2.0.0",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/shared-ini-file-loader": "^2.0.6",
+ "@smithy/smithy-client": "^2.1.12",
+ "@smithy/types": "^2.4.0",
+ "@smithy/url-parser": "^2.0.12",
+ "@smithy/util-base64": "^2.0.0",
+ "@smithy/util-body-length-browser": "^2.0.0",
+ "@smithy/util-body-length-node": "^2.1.0",
+ "@smithy/util-defaults-mode-browser": "^2.0.16",
+ "@smithy/util-defaults-mode-node": "^2.0.21",
+ "@smithy/util-retry": "^2.0.5",
+ "@smithy/util-utf8": "^2.0.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/types": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.433.0.tgz",
+ "integrity": "sha512-0jEE2mSrNDd8VGFjTc1otYrwYPIkzZJEIK90ZxisKvQ/EURGBhNzWn7ejWB9XCMFT6XumYLBR0V9qq5UPisWtA==",
+ "dependencies": {
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/util-endpoints": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.433.0.tgz",
+ "integrity": "sha512-LFNUh9FH7RMtYjSjPGz9lAJQMzmJ3RcXISzc5X5k2R/9mNwMK7y1k2VAfvx+RbuDbll6xwsXlgv6QHcxVdF2zw==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/util-user-agent-browser": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.433.0.tgz",
+ "integrity": "sha512-2Cf/Lwvxbt5RXvWFXrFr49vXv0IddiUwrZoAiwhDYxvsh+BMnh+NUFot+ZQaTrk/8IPZVDeLPWZRdVy00iaVXQ==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/types": "^2.4.0",
+ "bowser": "^2.11.0",
+ "tslib": "^2.5.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-shield/node_modules/@aws-sdk/util-user-agent-node": {
+ "version": "3.433.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.433.0.tgz",
+ "integrity": "sha512-yT1tO4MbbsUBLl5+S+jVv8wxiAtP5TKjKib9B2KQ2x0OtWWTrIf2o+IZK8va+zQqdV4MVMjezdxdE20hOdB4yQ==",
+ "dependencies": {
+ "@aws-sdk/types": "3.433.0",
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/types": "^2.4.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "aws-crt": ">=1.0.0"
+ },
+ "peerDependenciesMeta": {
+ "aws-crt": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@aws-sdk/client-sso": {
"version": "3.427.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.427.0.tgz",
@@ -1679,9 +2473,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.48.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz",
- "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==",
+ "version": "8.51.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz",
+ "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -2226,11 +3020,11 @@
}
},
"node_modules/@smithy/abort-controller": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.11.tgz",
- "integrity": "sha512-MSzE1qR2JNyb7ot3blIOT3O3H0Jn06iNDEgHRaqZUwBgx5EG+VIx24Y21tlKofzYryIOcWpIohLrIIyocD6LMA==",
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.12.tgz",
+ "integrity": "sha512-YIJyefe1mi3GxKdZxEBEuzYOeQ9xpYfqnFmWzojCssRAuR7ycxwpoRQgp965vuW426xUAQhCV5rCaWElQ7XsaA==",
"dependencies": {
- "@smithy/types": "^2.3.5",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
},
"engines": {
@@ -2238,14 +3032,14 @@
}
},
"node_modules/@smithy/config-resolver": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.14.tgz",
- "integrity": "sha512-K1K+FuWQoy8j/G7lAmK85o03O89s2Vvh6kMFmzEmiHUoQCRH1rzbDtMnGNiaMHeSeYJ6y79IyTusdRG+LuWwtg==",
+ "version": "2.0.16",
+ "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.16.tgz",
+ "integrity": "sha512-1k+FWHQDt2pfpXhJsOmNMmlAZ3NUQ98X5tYsjQhVGq+0X6cOBMhfh6Igd0IX3Ut6lEO6DQAdPMI/blNr3JZfMQ==",
"dependencies": {
- "@smithy/node-config-provider": "^2.1.1",
- "@smithy/types": "^2.3.5",
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/types": "^2.4.0",
"@smithy/util-config-provider": "^2.0.0",
- "@smithy/util-middleware": "^2.0.4",
+ "@smithy/util-middleware": "^2.0.5",
"tslib": "^2.5.0"
},
"engines": {
@@ -2253,14 +3047,14 @@
}
},
"node_modules/@smithy/credential-provider-imds": {
- "version": "2.0.16",
- "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.0.16.tgz",
- "integrity": "sha512-tKa2xF+69TvGxJT+lnJpGrKxUuAZDLYXFhqnPEgnHz+psTpkpcB4QRjHj63+uj83KaeFJdTfW201eLZeRn6FfA==",
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.0.18.tgz",
+ "integrity": "sha512-QnPBi6D2zj6AHJdUTo5zXmk8vwHJ2bNevhcVned1y+TZz/OI5cizz5DsYNkqFUIDn8tBuEyKNgbmKVNhBbuY3g==",
"dependencies": {
- "@smithy/node-config-provider": "^2.1.1",
- "@smithy/property-provider": "^2.0.12",
- "@smithy/types": "^2.3.5",
- "@smithy/url-parser": "^2.0.11",
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/property-provider": "^2.0.13",
+ "@smithy/types": "^2.4.0",
+ "@smithy/url-parser": "^2.0.12",
"tslib": "^2.5.0"
},
"engines": {
@@ -2279,23 +3073,23 @@
}
},
"node_modules/@smithy/fetch-http-handler": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.2.2.tgz",
- "integrity": "sha512-K7aRtRuaBjzlk+jWWeyfDTLAmRRvmA4fU8eHUXtjsuEDgi3f356ZE32VD2ssxIH13RCLVZbXMt5h7wHzYiSuVA==",
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.2.4.tgz",
+ "integrity": "sha512-gIPRFEGi+c6V52eauGKrjDzPWF2Cu7Z1r5F8A3j2wcwz25sPG/t8kjsbEhli/tS/2zJp/ybCZXe4j4ro3yv/HA==",
"dependencies": {
- "@smithy/protocol-http": "^3.0.7",
- "@smithy/querystring-builder": "^2.0.11",
- "@smithy/types": "^2.3.5",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/querystring-builder": "^2.0.12",
+ "@smithy/types": "^2.4.0",
"@smithy/util-base64": "^2.0.0",
"tslib": "^2.5.0"
}
},
"node_modules/@smithy/hash-node": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.11.tgz",
- "integrity": "sha512-PbleVugN2tbhl1ZoNWVrZ1oTFFas/Hq+s6zGO8B9bv4w/StTriTKA9W+xZJACOj9X7zwfoTLbscM+avCB1KqOQ==",
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.12.tgz",
+ "integrity": "sha512-fDZnTr5j9t5qcbeJ037aMZXxMka13Znqwrgy3PAqYj6Dm3XHXHftTH3q+NWgayUxl1992GFtQt1RuEzRMy3NnQ==",
"dependencies": {
- "@smithy/types": "^2.3.5",
+ "@smithy/types": "^2.4.0",
"@smithy/util-buffer-from": "^2.0.0",
"@smithy/util-utf8": "^2.0.0",
"tslib": "^2.5.0"
@@ -2305,11 +3099,11 @@
}
},
"node_modules/@smithy/invalid-dependency": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.11.tgz",
- "integrity": "sha512-zazq99ujxYv/NOf9zh7xXbNgzoVLsqE0wle8P/1zU/XdhPi/0zohTPKWUzIxjGdqb5hkkwfBkNkl5H+LE0mvgw==",
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.12.tgz",
+ "integrity": "sha512-p5Y+iMHV3SoEpy3VSR7mifbreHQwVSvHSAz/m4GdoXfOzKzaYC8hYv10Ks7Deblkf7lhas8U+lAp9ThbBM+ZXA==",
"dependencies": {
- "@smithy/types": "^2.3.5",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
}
},
@@ -2325,12 +3119,12 @@
}
},
"node_modules/@smithy/middleware-content-length": {
- "version": "2.0.13",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.13.tgz",
- "integrity": "sha512-Md2kxWpaec3bXp1oERFPQPBhOXCkGSAF7uc1E+4rkwjgw3/tqAXRtbjbggu67HJdwaif76As8AV6XxbD1HzqTQ==",
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.14.tgz",
+ "integrity": "sha512-poUNgKTw9XwPXfX9nEHpVgrMNVpaSMZbshqvPxFVoalF4wp6kRzYKOfdesSVectlQ51VtigoLfbXcdyPwvxgTg==",
"dependencies": {
- "@smithy/protocol-http": "^3.0.7",
- "@smithy/types": "^2.3.5",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
},
"engines": {
@@ -2338,14 +3132,16 @@
}
},
"node_modules/@smithy/middleware-endpoint": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.0.11.tgz",
- "integrity": "sha512-mCugsvB15up6fqpzUEpMT4CuJmFkEI+KcozA7QMzYguXCaIilyMKsyxgamwmr+o7lo3QdjN0//XLQ9bWFL129g==",
- "dependencies": {
- "@smithy/middleware-serde": "^2.0.11",
- "@smithy/types": "^2.3.5",
- "@smithy/url-parser": "^2.0.11",
- "@smithy/util-middleware": "^2.0.4",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.1.3.tgz",
+ "integrity": "sha512-ZrQ0/YX6hNVTxqMEHtEaDbDv6pNeEji/a5Vk3HuFC5R3ZY8lfoATyxmOGxBVYnF3NUvZLNC7umEv1WzWGWvCGQ==",
+ "dependencies": {
+ "@smithy/middleware-serde": "^2.0.12",
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/shared-ini-file-loader": "^2.2.2",
+ "@smithy/types": "^2.4.0",
+ "@smithy/url-parser": "^2.0.12",
+ "@smithy/util-middleware": "^2.0.5",
"tslib": "^2.5.0"
},
"engines": {
@@ -2353,16 +3149,16 @@
}
},
"node_modules/@smithy/middleware-retry": {
- "version": "2.0.16",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.16.tgz",
- "integrity": "sha512-Br5+0yoiMS0ugiOAfJxregzMMGIRCbX4PYo1kDHtLgvkA/d++aHbnHB819m5zOIAMPvPE7AThZgcsoK+WOsUTA==",
- "dependencies": {
- "@smithy/node-config-provider": "^2.1.1",
- "@smithy/protocol-http": "^3.0.7",
- "@smithy/service-error-classification": "^2.0.4",
- "@smithy/types": "^2.3.5",
- "@smithy/util-middleware": "^2.0.4",
- "@smithy/util-retry": "^2.0.4",
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.18.tgz",
+ "integrity": "sha512-VyrHQRldGSb3v9oFOB5yPxmLT7U2sQic2ytylOnYlnsmVOLlFIaI6sW22c+w2675yq+XZ6HOuzV7x2OBYCWRNA==",
+ "dependencies": {
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/service-error-classification": "^2.0.5",
+ "@smithy/types": "^2.4.0",
+ "@smithy/util-middleware": "^2.0.5",
+ "@smithy/util-retry": "^2.0.5",
"tslib": "^2.5.0",
"uuid": "^8.3.2"
},
@@ -2379,11 +3175,11 @@
}
},
"node_modules/@smithy/middleware-serde": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.11.tgz",
- "integrity": "sha512-NuxnjMyf4zQqhwwdh0OTj5RqpnuT6HcH5Xg5GrPijPcKzc2REXVEVK4Yyk8ckj8ez1XSj/bCmJ+oNjmqB02GWA==",
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.12.tgz",
+ "integrity": "sha512-IBeco157lIScecq2Z+n0gq56i4MTnfKxS7rbfrAORveDJgnbBAaEQgYqMqp/cYqKrpvEXcyTjwKHrBjCCIZh2A==",
"dependencies": {
- "@smithy/types": "^2.3.5",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
},
"engines": {
@@ -2391,11 +3187,11 @@
}
},
"node_modules/@smithy/middleware-stack": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.5.tgz",
- "integrity": "sha512-bVQU/rZzBY7CbSxIrDTGZYnBWKtIw+PL/cRc9B7etZk1IKSOe0NvKMJyWllfhfhrTeMF6eleCzOihIQympAvPw==",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.6.tgz",
+ "integrity": "sha512-YSvNZeOKWLJ0M/ycxwDIe2Ztkp6Qixmcml1ggsSv2fdHKGkBPhGrX5tMzPGMI1yyx55UEYBi2OB4s+RriXX48A==",
"dependencies": {
- "@smithy/types": "^2.3.5",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
},
"engines": {
@@ -2403,13 +3199,13 @@
}
},
"node_modules/@smithy/node-config-provider": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.1.1.tgz",
- "integrity": "sha512-1lF6s1YWBi1LBu2O30tD3jyTgMtuvk/Z1twzXM4GPYe4dmZix4nNREPJIPOcfFikNU2o0eTYP80+izx5F2jIJA==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.1.3.tgz",
+ "integrity": "sha512-J6lXvRHGVnSX3n1PYi+e1L5HN73DkkJpUviV3Ebf+8wSaIjAf+eVNbzyvh/S5EQz7nf4KVfwbD5vdoZMAthAEQ==",
"dependencies": {
- "@smithy/property-provider": "^2.0.12",
- "@smithy/shared-ini-file-loader": "^2.2.0",
- "@smithy/types": "^2.3.5",
+ "@smithy/property-provider": "^2.0.13",
+ "@smithy/shared-ini-file-loader": "^2.2.2",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
},
"engines": {
@@ -2417,14 +3213,14 @@
}
},
"node_modules/@smithy/node-http-handler": {
- "version": "2.1.7",
- "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.1.7.tgz",
- "integrity": "sha512-PQIKZXlp3awCDn/xNlCSTFE7aYG/5Tx33M05NfQmWYeB5yV1GZZOSz4dXpwiNJYTXb9jPqjl+ueXXkwtEluFFA==",
- "dependencies": {
- "@smithy/abort-controller": "^2.0.11",
- "@smithy/protocol-http": "^3.0.7",
- "@smithy/querystring-builder": "^2.0.11",
- "@smithy/types": "^2.3.5",
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.1.8.tgz",
+ "integrity": "sha512-KZylM7Wff/So5SmCiwg2kQNXJ+RXgz34wkxS7WNwIUXuZrZZpY/jKJCK+ZaGyuESDu3TxcaY+zeYGJmnFKbQsA==",
+ "dependencies": {
+ "@smithy/abort-controller": "^2.0.12",
+ "@smithy/protocol-http": "^3.0.8",
+ "@smithy/querystring-builder": "^2.0.12",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
},
"engines": {
@@ -2432,11 +3228,11 @@
}
},
"node_modules/@smithy/property-provider": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.12.tgz",
- "integrity": "sha512-Un/OvvuQ1Kg8WYtoMCicfsFFuHb/TKL3pCA6ZIo/WvNTJTR94RtoRnL7mY4XkkUAoFMyf6KjcQJ76y1FX7S5rw==",
+ "version": "2.0.13",
+ "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.13.tgz",
+ "integrity": "sha512-VJqUf2CbsQX6uUiC5dUPuoEATuFjkbkW3lJHbRnpk9EDC9X+iKqhfTK+WP+lve5EQ9TcCI1Q6R7hrg41FyC54w==",
"dependencies": {
- "@smithy/types": "^2.3.5",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
},
"engines": {
@@ -2444,11 +3240,11 @@
}
},
"node_modules/@smithy/protocol-http": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.7.tgz",
- "integrity": "sha512-HnZW8y+r66ntYueCDbLqKwWcMNWW8o3eVpSrHNluwtBJ/EUWfQHRKSiu6vZZtc6PGfPQWgVfucoCE/C3QufMAA==",
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.8.tgz",
+ "integrity": "sha512-SHJvYeWq8q0FK8xHk+xjV9dzDUDjFMT+G1pZbV+XB6OVoac/FSVshlMNPeUJ8AmSkcDKHRu5vASnRqZHgD3qhw==",
"dependencies": {
- "@smithy/types": "^2.3.5",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
},
"engines": {
@@ -2456,11 +3252,11 @@
}
},
"node_modules/@smithy/querystring-builder": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.11.tgz",
- "integrity": "sha512-b4kEbVMxpmfv2VWUITn2otckTi7GlMteZQxi+jlwedoATOGEyrCJPfRcYQJjbCi3fZ2QTfh3PcORvB27+j38Yg==",
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.12.tgz",
+ "integrity": "sha512-cDbF07IuCjiN8CdGvPzfJjXIrmDSelScRfyJYrYBNBbKl2+k7QD/KqiHhtRyEKgID5mmEVrV6KE6L/iPJ98sFw==",
"dependencies": {
- "@smithy/types": "^2.3.5",
+ "@smithy/types": "^2.4.0",
"@smithy/util-uri-escape": "^2.0.0",
"tslib": "^2.5.0"
},
@@ -2469,11 +3265,11 @@
}
},
"node_modules/@smithy/querystring-parser": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.11.tgz",
- "integrity": "sha512-YXe7jhi7s3dQ0Fu9dLoY/gLu6NCyy8tBWJL/v2c9i7/RLpHgKT+uT96/OqZkHizCJ4kr0ZD46tzMjql/o60KLg==",
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.12.tgz",
+ "integrity": "sha512-fytyTcXaMzPBuNtPlhj5v6dbl4bJAnwKZFyyItAGt4Tgm9HFPZNo7a9r1SKPr/qdxUEBzvL9Rh+B9SkTX3kFxg==",
"dependencies": {
- "@smithy/types": "^2.3.5",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
},
"engines": {
@@ -2481,22 +3277,22 @@
}
},
"node_modules/@smithy/service-error-classification": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.4.tgz",
- "integrity": "sha512-77506l12I5gxTZqBkx3Wb0RqMG81bMYLaVQ+EqIWFwQDJRs5UFeXogKxSKojCmz1wLUziHZQXm03MBzPQiumQw==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.5.tgz",
+ "integrity": "sha512-M0SeJnEgD2ywJyV99Fb1yKFzmxDe9JfpJiYTVSRMyRLc467BPU0qsuuDPzMCdB1mU8M8u1rVOdkqdoyFN8UFTw==",
"dependencies": {
- "@smithy/types": "^2.3.5"
+ "@smithy/types": "^2.4.0"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@smithy/shared-ini-file-loader": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.0.tgz",
- "integrity": "sha512-xFXqs4vAb5BdkzHSRrTapFoaqS4/3m/CGZzdw46fBjYZ0paYuLAoMY60ICCn1FfGirG+PiJ3eWcqJNe4/SkfyA==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.2.tgz",
+ "integrity": "sha512-noyQUPn7b1M8uB0GEXc/Zyxq+5K2b7aaqWnLp+hgJ7+xu/FCvtyWy5eWLDjQEsHnAet2IZhS5QF8872OR69uNg==",
"dependencies": {
- "@smithy/types": "^2.3.5",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
},
"engines": {
@@ -2522,13 +3318,13 @@
}
},
"node_modules/@smithy/smithy-client": {
- "version": "2.1.10",
- "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.1.10.tgz",
- "integrity": "sha512-2OEmZDiW1Z196QHuQZ5M6cBE8FCSG0H2HADP1G+DY8P3agsvb0YJyfhyKuJbxIQy15tr3eDAK6FOrlbxgKOOew==",
+ "version": "2.1.12",
+ "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.1.12.tgz",
+ "integrity": "sha512-XXqhridfkKnpj+lt8vM6HRlZbqUAqBjVC74JIi13F/AYQd/zTj9SOyGfxnbp4mjY9q28LityxIuV8CTinr9r5w==",
"dependencies": {
- "@smithy/middleware-stack": "^2.0.5",
- "@smithy/types": "^2.3.5",
- "@smithy/util-stream": "^2.0.15",
+ "@smithy/middleware-stack": "^2.0.6",
+ "@smithy/types": "^2.4.0",
+ "@smithy/util-stream": "^2.0.17",
"tslib": "^2.5.0"
},
"engines": {
@@ -2536,9 +3332,9 @@
}
},
"node_modules/@smithy/types": {
- "version": "2.3.5",
- "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.3.5.tgz",
- "integrity": "sha512-ehyDt8M9hehyxrLQGoA1BGPou8Js1Ocoh5M0ngDhJMqbFmNK5N6Xhr9/ZExWkyIW8XcGkiMPq3ZUEE0ScrhbuQ==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.4.0.tgz",
+ "integrity": "sha512-iH1Xz68FWlmBJ9vvYeHifVMWJf82ONx+OybPW8ZGf5wnEv2S0UXcU4zwlwJkRXuLKpcSLHrraHbn2ucdVXLb4g==",
"dependencies": {
"tslib": "^2.5.0"
},
@@ -2547,12 +3343,12 @@
}
},
"node_modules/@smithy/url-parser": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.11.tgz",
- "integrity": "sha512-h89yXMCCF+S5k9XIoKltMIWTYj+FcEkU/IIFZ6RtE222fskOTL4Iak6ZRG+ehSvZDt8yKEcxqheTDq7JvvtK3g==",
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.12.tgz",
+ "integrity": "sha512-qgkW2mZqRvlNUcBkxYB/gYacRaAdck77Dk3/g2iw0S9F0EYthIS3loGfly8AwoWpIvHKhkTsCXXQfzksgZ4zIA==",
"dependencies": {
- "@smithy/querystring-parser": "^2.0.11",
- "@smithy/types": "^2.3.5",
+ "@smithy/querystring-parser": "^2.0.12",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
}
},
@@ -2611,13 +3407,13 @@
}
},
"node_modules/@smithy/util-defaults-mode-browser": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.14.tgz",
- "integrity": "sha512-NupG7SWUucm3vJrvlpt9jG1XeoPJphjcivgcUUXhDJbUPy4F04LhlTiAhWSzwlCNcF8OJsMvZ/DWbpYD3pselw==",
+ "version": "2.0.16",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.16.tgz",
+ "integrity": "sha512-Uv5Cu8nVkuvLn0puX+R9zWbSNpLIR3AxUlPoLJ7hC5lvir8B2WVqVEkJLwtixKAncVLasnTVjPDCidtAUTGEQw==",
"dependencies": {
- "@smithy/property-provider": "^2.0.12",
- "@smithy/smithy-client": "^2.1.10",
- "@smithy/types": "^2.3.5",
+ "@smithy/property-provider": "^2.0.13",
+ "@smithy/smithy-client": "^2.1.12",
+ "@smithy/types": "^2.4.0",
"bowser": "^2.11.0",
"tslib": "^2.5.0"
},
@@ -2626,16 +3422,16 @@
}
},
"node_modules/@smithy/util-defaults-mode-node": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.18.tgz",
- "integrity": "sha512-+3jMom/b/Cdp21tDnY4vKu249Al+G/P0HbRbct7/aSZDlROzv1tksaYukon6UUv7uoHn+/McqnsvqZHLlqvQ0g==",
- "dependencies": {
- "@smithy/config-resolver": "^2.0.14",
- "@smithy/credential-provider-imds": "^2.0.16",
- "@smithy/node-config-provider": "^2.1.1",
- "@smithy/property-provider": "^2.0.12",
- "@smithy/smithy-client": "^2.1.10",
- "@smithy/types": "^2.3.5",
+ "version": "2.0.21",
+ "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.21.tgz",
+ "integrity": "sha512-cUEsttVZ79B7Al2rWK2FW03HBpD9LyuqFtm+1qFty5u9sHSdesr215gS2Ln53fTopNiPgeXpdoM3IgjvIO0rJw==",
+ "dependencies": {
+ "@smithy/config-resolver": "^2.0.16",
+ "@smithy/credential-provider-imds": "^2.0.18",
+ "@smithy/node-config-provider": "^2.1.3",
+ "@smithy/property-provider": "^2.0.13",
+ "@smithy/smithy-client": "^2.1.12",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
},
"engines": {
@@ -2654,11 +3450,11 @@
}
},
"node_modules/@smithy/util-middleware": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.4.tgz",
- "integrity": "sha512-Pbu6P4MBwRcjrLgdTR1O4Y3c0sTZn2JdOiJNcgL7EcIStcQodj+6ZTXtbyU/WTEU3MV2NMA10LxFc3AWHZ3+4A==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.5.tgz",
+ "integrity": "sha512-1lyT3TcaMJQe+OFfVI+TlomDkPuVzb27NZYdYtmSTltVmLaUjdCyt4KE+OH1CnhZKsz4/cdCL420Lg9UH5Z2Mw==",
"dependencies": {
- "@smithy/types": "^2.3.5",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
},
"engines": {
@@ -2666,12 +3462,12 @@
}
},
"node_modules/@smithy/util-retry": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.4.tgz",
- "integrity": "sha512-b+n1jBBKc77C1E/zfBe1Zo7S9OXGBiGn55N0apfhZHxPUP/fMH5AhFUUcWaJh7NAnah284M5lGkBKuhnr3yK5w==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.5.tgz",
+ "integrity": "sha512-x3t1+MQAJ6QONk3GTbJNcugCFDVJ+Bkro5YqQQK1EyVesajNDqxFtCx9WdOFNGm/Cbm7tUdwVEmfKQOJoU2Vtw==",
"dependencies": {
- "@smithy/service-error-classification": "^2.0.4",
- "@smithy/types": "^2.3.5",
+ "@smithy/service-error-classification": "^2.0.5",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
},
"engines": {
@@ -2679,13 +3475,13 @@
}
},
"node_modules/@smithy/util-stream": {
- "version": "2.0.15",
- "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.15.tgz",
- "integrity": "sha512-A/hkYJPH2N5MCWYvky4tTpQihpYAEzqnUfxDyG3L/yMndy/2sLvxnyQal9Opuj1e9FiKSTeMyjnU9xxZGs0mRw==",
+ "version": "2.0.17",
+ "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.17.tgz",
+ "integrity": "sha512-fP/ZQ27rRvHsqItds8yB7jerwMpZFTL3QqbQbidUiG0+mttMoKdP0ZqnvM8UK5q0/dfc3/pN7g4XKPXOU7oRWw==",
"dependencies": {
- "@smithy/fetch-http-handler": "^2.2.2",
- "@smithy/node-http-handler": "^2.1.7",
- "@smithy/types": "^2.3.5",
+ "@smithy/fetch-http-handler": "^2.2.4",
+ "@smithy/node-http-handler": "^2.1.8",
+ "@smithy/types": "^2.4.0",
"@smithy/util-base64": "^2.0.0",
"@smithy/util-buffer-from": "^2.0.0",
"@smithy/util-hex-encoding": "^2.0.0",
@@ -2720,12 +3516,12 @@
}
},
"node_modules/@smithy/util-waiter": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.0.11.tgz",
- "integrity": "sha512-8SJWUl9O1YhjC77EccgltI3q4XZQp3vp9DGEW6o0OdkUcwqm/H4qOLnMkA2n+NDojuM5Iia2jWoCdbluIiG7TA==",
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.0.12.tgz",
+ "integrity": "sha512-3sENmyVa1NnOPoiT2NCApPmu7ukP7S/v7kL9IxNmnygkDldn7/yK0TP42oPJLwB2k3mospNsSePIlqdXEUyPHA==",
"dependencies": {
- "@smithy/abort-controller": "^2.0.11",
- "@smithy/types": "^2.3.5",
+ "@smithy/abort-controller": "^2.0.12",
+ "@smithy/types": "^2.4.0",
"tslib": "^2.5.0"
},
"engines": {
@@ -4542,16 +5338,16 @@
}
},
"node_modules/eslint": {
- "version": "8.48.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz",
- "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==",
+ "version": "8.51.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz",
+ "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.2",
- "@eslint/js": "8.48.0",
- "@humanwhocodes/config-array": "^0.11.10",
+ "@eslint/js": "8.51.0",
+ "@humanwhocodes/config-array": "^0.11.11",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"ajv": "^6.12.4",
@@ -5672,15 +6468,15 @@
"integrity": "sha512-ic7NS6peKhtNXL9ijAXXEo9TPmej/wrV3Sggc37Ynqe+ldMiQsLoKIBtrFLMLGrQgSKZZ/77n+8HujCFFPDowA=="
},
"node_modules/jest": {
- "version": "29.5.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz",
- "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==",
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
+ "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
"dev": true,
"dependencies": {
- "@jest/core": "^29.5.0",
- "@jest/types": "^29.5.0",
+ "@jest/core": "^29.7.0",
+ "@jest/types": "^29.6.3",
"import-local": "^3.0.2",
- "jest-cli": "^29.5.0"
+ "jest-cli": "^29.7.0"
},
"bin": {
"jest": "bin/jest.js"
@@ -7707,16 +8503,16 @@
}
},
"node_modules/typescript": {
- "version": "4.9.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
- "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
+ "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
- "node": ">=4.2.0"
+ "node": ">=14.17"
}
},
"node_modules/universalify": {
diff --git a/package.json b/package.json
index f1a06028..6ee28069 100644
--- a/package.json
+++ b/package.json
@@ -16,19 +16,19 @@
"@typescript-eslint/eslint-plugin": "6.7.5",
"@typescript-eslint/parser": "6.7.5",
"aws-cdk": "2.100.0",
- "eslint": "8.48.0",
- "jest": "29.5.0",
+ "eslint": "8.51.0",
+ "jest": "29.7.0",
"ts-jest": "29.1.1",
"ts-node": "10.9.1",
- "typescript": "4.9.5"
+ "typescript": "5.2.2"
},
"dependencies": {
- "@aws-sdk/client-cloudformation": "^3.427.0",
+ "@aws-sdk/client-cloudformation": "^3.428.0",
"@aws-sdk/client-cloudwatch": "^3.427.0",
"@aws-sdk/client-fms": "^3.427.0",
"@aws-sdk/client-pricing": "^3.427.0",
"@aws-sdk/client-service-quotas": "^3.427.0",
- "@aws-sdk/client-shield": "^3.427.0",
+ "@aws-sdk/client-shield": "^3.428.0",
"@aws-sdk/client-wafv2": "^3.427.0",
"@mhlabs/cfn-diagram": "^1.1.29",
"@types/aws-lambda": "^8.10.119",
diff --git a/test/config-loader.ts b/test/config-loader.ts
deleted file mode 100644
index 64afa94e..00000000
--- a/test/config-loader.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { validatewaf, validateprerequisites } from "../lib/tools/config-validator";
-import { Config, Prerequisites } from "../lib/types/config";
-import { realpathSync, existsSync } from "fs";
-
-const CONFIGFILE = process.env.PROCESS_PARAMETERS;
-
-if (CONFIGFILE && existsSync(CONFIGFILE)) {
- // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-assignment
- const prerequisites: Prerequisites = require(realpathSync(CONFIGFILE));
- // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-assignment
- const config: Config = require(realpathSync(CONFIGFILE));
- if(process.env.PREREQUISITE === "true"){
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call
- if(validateprerequisites(prerequisites)){
- console.log("Your config "+ CONFIGFILE +" is valid.");
- } else {
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
- console.error("\u001B[31m","π¨ Invalid Configuration File π¨ \n\n","\x1b[0m" + JSON.stringify(validateprerequisites.errors, null, 2)+ "\n\n");
- }}
- else{
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call
- if(validatewaf(config)){
- console.log("Your config "+ CONFIGFILE +" is valid.");
- } else {
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
- console.error("\u001B[31m","π¨ Invalid Configuration File π¨ \n\n","\x1b[0m" + JSON.stringify(validatewaf.errors, null, 2)+ "\n\n");
- }}
-}
-else {
- console.error("File not found:", CONFIGFILE);
-}
\ No newline at end of file
diff --git a/values/index.ts b/values/index.ts
index c228b84a..ddb2b5c5 100644
--- a/values/index.ts
+++ b/values/index.ts
@@ -1,10 +1,11 @@
import {Config, Prerequisites} from "../lib/types/config";
import { owasptopTen, prequisites, ipSetsManagedTest} from "./examples";
-
+import * as tests from "./tests";
export const configs : { [key: string]: Config } = {
owasptopTen,
ipSetsManagedTest,
+ ...tests,
};
export const prereq : { [key: string]: Prerequisites } = {
diff --git a/values/tests/index.ts b/values/tests/index.ts
new file mode 100644
index 00000000..35e45f0d
--- /dev/null
+++ b/values/tests/index.ts
@@ -0,0 +1,3 @@
+export { config as ipSetsTests }from "./ipSets";
+export { config as regexPatternSetsTests } from "./regexPatternSets";
+export { config as onlyManagedRuleGroupsTests } from "./onlyManagedRuleGroups";
diff --git a/values/tests/ipSets.ts b/values/tests/ipSets.ts
new file mode 100644
index 00000000..143c0b89
--- /dev/null
+++ b/values/tests/ipSets.ts
@@ -0,0 +1,428 @@
+import { Config } from "../../lib/types/config";
+import * as fwmEnums from "../../lib/types/enums";
+
+export const config: Config = {
+ General: {
+ Prefix: "testcases",
+ Stage: "test",
+ S3LoggingBucketName: "aws-waf-logs-aws-firewall-factory-test",
+ LoggingConfiguration: "S3",
+ SecuredDomain: ["test.aws-firewall-factory.com"]
+ },
+ WebAcl: {
+ IncludeMap: {
+ account: [
+ "859220371210" // gdn-test
+ ],
+ },
+ Name: "ipssets",
+ IPSets: [
+ {
+ name: "test-ipSet",
+ addresses: [
+ "192.168.1.1/32"
+ ],
+ ipAddressVersion: "IPV4"
+ }
+ ],
+ PreProcess: {
+ ManagedRuleGroups: [],
+ CustomRules: [
+ {
+ name: "test-statement-ipSet",
+ priority: 10,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-statement-ipSet",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ ipSetReferenceStatement: {
+ arn: "test-ipSet"
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-andStatemment-statement-ipSet",
+ priority: 20,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-andStatemment-statement-ipSet",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ andStatement: {
+ statements: [
+ {
+ notStatement: {
+ statement: {
+ ipSetReferenceStatement: {
+ arn: "test-ipSet"
+ }
+ }
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-orStatemment-statement-ipSet",
+ priority: 30,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-orStatemment-notStatement-ipSet",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ orStatement: {
+ statements: [
+ {
+ ipSetReferenceStatement: {
+ arn: "test-ipSet"
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-notStatement-ipSet",
+ priority: 40,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-notStatement-ipSet",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ notStatement: {
+ statement: {
+ ipSetReferenceStatement: {
+ arn: "test-ipSet"
+ }
+ }
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-andStatemment-notStatement-ipSet",
+ priority: 50,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-andStatemment-notStatement-ipSet",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ andStatement: {
+ statements: [
+ {
+ notStatement: {
+ statement: {
+ ipSetReferenceStatement: {
+ arn: "test-ipSet"
+ }
+ }
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-orStatemment-notStatement-ipSet",
+ priority: 60,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-orStatemment-notStatement-ipSet",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ orStatement: {
+ statements: [
+ {
+ notStatement: {
+ statement: {
+ ipSetReferenceStatement: {
+ arn: "test-ipSet"
+ }
+ }
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-statement-ipSet-Arn",
+ priority: 70,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-statement-ipSet-Arn",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ ipSetReferenceStatement: {
+ arn: "arn:aws:wafv2:eu-central-1:859220371210:regional/ipset/TEST/ee32e47f-e3b0-44ca-a0bd-5ee2ecde9b23"
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-andStatemment-statement-ipSet-Arn",
+ priority: 80,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-andStatemment-statement-ipSet-Arn",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ andStatement: {
+ statements: [
+ {
+ notStatement: {
+ statement: {
+ ipSetReferenceStatement: {
+ arn: "arn:aws:wafv2:eu-central-1:859220371210:regional/ipset/TEST/ee32e47f-e3b0-44ca-a0bd-5ee2ecde9b23"
+ }
+ }
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-orStatemment-statement-ipSet-Arn",
+ priority: 90,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-orStatemment-notStatement-ipSet-Arn",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ orStatement: {
+ statements: [
+ {
+ ipSetReferenceStatement: {
+ arn: "arn:aws:wafv2:eu-central-1:859220371210:regional/ipset/TEST/ee32e47f-e3b0-44ca-a0bd-5ee2ecde9b23"
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-notStatement-ipSet-Arn",
+ priority: 100,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-notStatement-ipSet-Arn",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ notStatement: {
+ statement: {
+ ipSetReferenceStatement: {
+ arn: "arn:aws:wafv2:eu-central-1:859220371210:regional/ipset/TEST/ee32e47f-e3b0-44ca-a0bd-5ee2ecde9b23"
+ }
+ }
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-andStatemment-notStatement-ipSet-Arn",
+ priority: 110,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-andStatemment-notStatement-ipSet-Arn",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ andStatement: {
+ statements: [
+ {
+ notStatement: {
+ statement: {
+ ipSetReferenceStatement: {
+ arn: "arn:aws:wafv2:eu-central-1:859220371210:regional/ipset/TEST/ee32e47f-e3b0-44ca-a0bd-5ee2ecde9b23"
+ }
+ }
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-orStatemment-notStatement-ipSet-Arn",
+ priority: 120,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-orStatemment-notStatement-ipSet-Arn",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ orStatement: {
+ statements: [
+ {
+ notStatement: {
+ statement: {
+ ipSetReferenceStatement: {
+ arn: "arn:aws:wafv2:eu-central-1:859220371210:regional/ipset/TEST/ee32e47f-e3b0-44ca-a0bd-5ee2ecde9b23"
+ }
+ }
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ }
+ ]
+ },
+ PostProcess: {
+ ManagedRuleGroups: [],
+
+ },
+ Scope: fwmEnums.WebAclScope.REGIONAL,
+ Type: fwmEnums.WebAclTypeEnum.ELASTICLOADBALANCINGV2_LOADBALANCER
+ },
+};
\ No newline at end of file
diff --git a/values/tests/onlyManagedRuleGroups.ts b/values/tests/onlyManagedRuleGroups.ts
new file mode 100644
index 00000000..758458fc
--- /dev/null
+++ b/values/tests/onlyManagedRuleGroups.ts
@@ -0,0 +1,60 @@
+import { Config } from "../../lib/types/config";
+import {ManagedRuleGroupVendor, AwsManagedRules, WebAclScope, WebAclTypeEnum} from "../../lib/types/enums";
+export const config: Config = {
+ General: {
+ Prefix: "testcases",
+ Stage: "test",
+ S3LoggingBucketName: "aws-waf-logs-aws-firewall-factory-test",
+ LoggingConfiguration: "S3",
+ SecuredDomain: ["test.aws-firewall-factory.com"]
+ },
+ WebAcl: {
+ Name: "ManagedRuleGroups",
+ Scope: WebAclScope.REGIONAL,
+ Type: WebAclTypeEnum.APIGATEWAY_STAGE,
+ IncludeMap: {
+ account: [
+ "859220371210" // gdn-test
+ ],
+ },
+ PreProcess: {
+ ManagedRuleGroups: [
+ {
+ vendor: ManagedRuleGroupVendor.AWS,
+ name: AwsManagedRules.AMAZON_IP_REPUTATION_LIST,
+ },
+ {
+ vendor: ManagedRuleGroupVendor.AWS,
+ name: AwsManagedRules.ANONYMOUS_IP_LIST
+ },
+ {
+ vendor: ManagedRuleGroupVendor.AWS,
+ name: AwsManagedRules.BOT_CONTROL_RULE_SET,
+ },
+ {
+ vendor: ManagedRuleGroupVendor.AWS,
+ name: AwsManagedRules.COMMON_RULE_SET,
+ },
+ {
+ vendor: ManagedRuleGroupVendor.AWS,
+ name: AwsManagedRules.KNOWN_BAD_INPUTS_RULE_SET,
+ enforceUpdate: true,
+ versionEnabled: false
+ },
+ {
+ vendor: ManagedRuleGroupVendor.AWS,
+ name: AwsManagedRules.SQLI_RULE_SET,
+ enforceUpdate: true,
+ versionEnabled: true
+ },
+ {
+ vendor: ManagedRuleGroupVendor.AWS,
+ name: AwsManagedRules.ADMIN_PROTECTION_RULE_SET,
+ enforceUpdate: false,
+ versionEnabled: true
+ }
+ ]
+ },
+ PostProcess: {},
+ },
+};
\ No newline at end of file
diff --git a/values/tests/regexPatternSets.ts b/values/tests/regexPatternSets.ts
new file mode 100644
index 00000000..f066d97e
--- /dev/null
+++ b/values/tests/regexPatternSets.ts
@@ -0,0 +1,471 @@
+import { Config } from "../../lib/types/config";
+import * as fwmEnums from "../../lib/types/enums";
+
+export const config: Config = {
+ General: {
+ Prefix: "testcases",
+ Stage: "test",
+ S3LoggingBucketName: "aws-waf-logs-aws-firewall-factory-test",
+ LoggingConfiguration: "S3",
+ SecuredDomain: ["test.aws-firewall-factory.com"]
+ },
+ WebAcl: {
+ IncludeMap: {
+ account: [
+ "859220371210" // gdn-test
+ ],
+ },
+ Name: "regexpatternsets",
+ RegexPatternSets: [{
+ name: "test-regexPatternSet",
+ regularExpressionList: ["^.*\/test", "^.*\/regex"]
+ }],
+ PreProcess: {
+ ManagedRuleGroups: [],
+ CustomRules: [
+ {
+ name: "test-statement-regexPatternSet",
+ priority: 10,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-statement-regexPatternSet",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ regexPatternSetReferenceStatement: {
+ arn: "test-regexPatternSet",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{ priority: 0, type: "NONE" }]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-andStatemment-statement-regexPatternSet",
+ priority: 20,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-andStatemment-statement-regexPatternSet",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ andStatement: {
+ statements: [
+ {
+ notStatement: {
+ statement: {
+ regexPatternSetReferenceStatement: {
+ arn: "test-regexPatternSet",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{ priority: 0, type: "NONE" }]
+ }
+ }
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-orStatemment-statement-regexPatternSet",
+ priority: 30,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-orStatemment-notstatement-regexPatternSet",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ orStatement: {
+ statements: [
+ {
+ regexPatternSetReferenceStatement: {
+ arn: "test-regexPatternSet",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{ priority: 0, type: "NONE" }]
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-notstatement-regexPatternSet",
+ priority: 40,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-notstatement-regexPatternSet",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ notStatement: {
+ statement: {
+ regexPatternSetReferenceStatement: {
+ arn: "test-regexPatternSet",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{ priority: 0, type: "NONE" }]
+ }
+ }
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-andStatemment-notstatement-regexPatternSet",
+ priority: 50,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-andStatemment-notstatement-regexPatternSet",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ andStatement: {
+ statements: [
+ {
+ notStatement: {
+ statement: {
+ regexPatternSetReferenceStatement: {
+ arn: "test-regexPatternSet",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{ priority: 0, type: "NONE" }]
+ }
+ }
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-orStatemment-notstatement-regexPatternSet",
+ priority: 60,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-orStatemment-notstatement-regexPatternSet",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ orStatement: {
+ statements: [
+ {
+ notStatement: {
+ statement: {
+ regexPatternSetReferenceStatement: {
+ arn: "test-regexPatternSet",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{ priority: 0, type: "NONE" }]
+ }
+ }
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-statement-regexPatternSet-Arn",
+ priority: 70,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-statement-regexPatternSet-Arn",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ regexPatternSetReferenceStatement: {
+ arn: "arn:aws:wafv2:eu-central-1:859220371210:regional/regexpatternset/TEST/2335872f-2c5b-4326-8d45-955a388212b5",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{ priority: 0, type: "NONE" }]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-andStatemment-statement-regexPatternSet-Arn",
+ priority: 80,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-andStatemment-statement-regexPatternSet-Arn",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ andStatement: {
+ statements: [
+ {
+ notStatement: {
+ statement: {
+ regexPatternSetReferenceStatement: {
+ arn: "arn:aws:wafv2:eu-central-1:859220371210:regional/regexpatternset/TEST/2335872f-2c5b-4326-8d45-955a388212b5",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{ priority: 0, type: "NONE" }]
+ }
+ }
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-orStatemment-statement-regexPatternSet-Arn",
+ priority: 90,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-orStatemment-notstatement-regexPatternSet-Arn",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ orStatement: {
+ statements: [
+ {
+ regexPatternSetReferenceStatement: {
+ arn: "arn:aws:wafv2:eu-central-1:859220371210:regional/regexpatternset/TEST/2335872f-2c5b-4326-8d45-955a388212b5",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{ priority: 0, type: "NONE" }]
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-notstatement-regexPatternSet-Arn",
+ priority: 100,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-notstatement-regexPatternSet-Arn",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ notStatement: {
+ statement: {
+ regexPatternSetReferenceStatement: {
+ arn: "arn:aws:wafv2:eu-central-1:859220371210:regional/regexpatternset/TEST/2335872f-2c5b-4326-8d45-955a388212b5",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{ priority: 0, type: "NONE" }]
+ }
+ }
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-andStatemment-notstatement-regexPatternSet-Arn",
+ priority: 110,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-andStatemment-notstatement-regexPatternSet-Arn",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ andStatement: {
+ statements: [
+ {
+ notStatement: {
+ statement: {
+ regexPatternSetReferenceStatement: {
+ arn: "arn:aws:wafv2:eu-central-1:859220371210:regional/regexpatternset/TEST/2335872f-2c5b-4326-8d45-955a388212b5",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{ priority: 0, type: "NONE" }]
+ }
+ }
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ },
+ {
+ name: "test-orStatemment-notstatement-regexPatternSet-Arn",
+ priority: 120,
+ visibilityConfig: {
+ cloudWatchMetricsEnabled: true,
+ metricName: "test-orStatemment-notstatement-regexPatternSet-Arn",
+ sampledRequestsEnabled: true
+ },
+ statement: {
+ orStatement: {
+ statements: [
+ {
+ notStatement: {
+ statement: {
+ regexPatternSetReferenceStatement: {
+ arn: "arn:aws:wafv2:eu-central-1:859220371210:regional/regexpatternset/TEST/2335872f-2c5b-4326-8d45-955a388212b5",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{ priority: 0, type: "NONE" }]
+ }
+ }
+ }
+ },
+ {
+ byteMatchStatement: {
+ searchString: "test",
+ positionalConstraint: "CONTAINS",
+ fieldToMatch: {
+ uriPath: {}
+ },
+ textTransformations: [{
+ priority: 0,
+ type: "NONE"
+ }]
+ }
+ }
+ ]
+ }
+ },
+ action: {
+ block: {}
+ }
+ }
+ ]
+ },
+ PostProcess: {
+ ManagedRuleGroups: [],
+
+ },
+ Scope: fwmEnums.WebAclScope.REGIONAL,
+ Type: fwmEnums.WebAclTypeEnum.ELASTICLOADBALANCINGV2_LOADBALANCER
+ },
+};
\ No newline at end of file