diff --git a/.eslintrc.json b/.eslintrc.json
index c172f04..dc91996 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -43,88 +43,80 @@
"!.projenrc.js"
],
"rules": {
- "indent": [
- "off"
- ],
"@stylistic/indent": [
"error",
2
],
- "quotes": [
+ "@stylistic/quotes": [
"error",
"single",
{
"avoidEscape": true
}
],
- "comma-dangle": [
+ "@stylistic/comma-dangle": [
"error",
"always-multiline"
],
- "comma-spacing": [
+ "@stylistic/comma-spacing": [
"error",
{
"before": false,
"after": true
}
],
- "no-multi-spaces": [
+ "@stylistic/no-multi-spaces": [
"error",
{
"ignoreEOLComments": false
}
],
- "array-bracket-spacing": [
+ "@stylistic/array-bracket-spacing": [
"error",
"never"
],
- "array-bracket-newline": [
+ "@stylistic/array-bracket-newline": [
"error",
"consistent"
],
- "object-curly-spacing": [
+ "@stylistic/object-curly-spacing": [
"error",
"always"
],
- "object-curly-newline": [
+ "@stylistic/object-curly-newline": [
"error",
{
"multiline": true,
"consistent": true
}
],
- "object-property-newline": [
+ "@stylistic/object-property-newline": [
"error",
{
"allowAllPropertiesOnSameLine": true
}
],
- "keyword-spacing": [
+ "@stylistic/keyword-spacing": [
"error"
],
- "brace-style": [
+ "@stylistic/brace-style": [
"error",
"1tbs",
{
"allowSingleLine": true
}
],
- "space-before-blocks": [
+ "@stylistic/space-before-blocks": [
"error"
],
- "curly": [
- "error",
- "multi-line",
- "consistent"
- ],
"@stylistic/member-delimiter-style": [
"error"
],
- "semi": [
+ "@stylistic/semi": [
"error",
"always"
],
- "max-len": [
+ "@stylistic/max-len": [
"error",
{
"code": 150,
@@ -135,13 +127,25 @@
"ignoreRegExpLiterals": true
}
],
- "quote-props": [
+ "@stylistic/quote-props": [
"error",
"consistent-as-needed"
],
- "@typescript-eslint/no-require-imports": [
+ "@stylistic/key-spacing": [
"error"
],
+ "@stylistic/no-multiple-empty-lines": [
+ "error"
+ ],
+ "@stylistic/no-trailing-spaces": [
+ "error"
+ ],
+ "curly": [
+ "error",
+ "multi-line",
+ "consistent"
+ ],
+ "@typescript-eslint/no-require-imports": "error",
"import/no-extraneous-dependencies": [
"error",
{
@@ -175,27 +179,12 @@
"no-shadow": [
"off"
],
- "@typescript-eslint/no-shadow": [
- "error"
- ],
- "key-spacing": [
- "error"
- ],
- "no-multiple-empty-lines": [
- "error"
- ],
- "@typescript-eslint/no-floating-promises": [
- "error"
- ],
+ "@typescript-eslint/no-shadow": "error",
+ "@typescript-eslint/no-floating-promises": "error",
"no-return-await": [
"off"
],
- "@typescript-eslint/return-await": [
- "error"
- ],
- "no-trailing-spaces": [
- "error"
- ],
+ "@typescript-eslint/return-await": "error",
"dot-notation": [
"error"
],
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 83cb973..c6b3b92 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,4 +1 @@
-* @mr-robot-in
-* @hritik-verma-sc
-* @rithikb24
-* @gagan1510
+* @smallcase/core-infra
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 9975904..f4ce18e 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -32,6 +32,7 @@ jobs:
run: |-
git add .
git diff --staged --patch --exit-code > repo.patch || echo "self_mutation_happened=true" >> $GITHUB_OUTPUT
+ shell: bash
working-directory: ./
- name: Upload patch
if: steps.self_mutation.outputs.self_mutation_happened
diff --git a/.github/workflows/dependabot-auto-approve.yml b/.github/workflows/dependabot-auto-approve.yml
new file mode 100644
index 0000000..489fc10
--- /dev/null
+++ b/.github/workflows/dependabot-auto-approve.yml
@@ -0,0 +1,70 @@
+# Auto-approve Dependabot PRs
+# Based on GitHub's official documentation for Dependabot automation
+
+name: Dependabot auto-approve
+on:
+ pull_request:
+ types: [opened, reopened, synchronize]
+ workflow_run:
+ workflows: ["Dependabot auto-label"]
+ types: [completed]
+
+permissions:
+ pull-requests: write
+
+jobs:
+ dependabot:
+ runs-on: arc-runner-set
+ if: |
+ (github.event_name == 'pull_request' && github.event.pull_request.user.login == 'dependabot[bot]') ||
+ (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success')
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ steps:
+ - name: Dependabot metadata
+ id: metadata
+ uses: dependabot/fetch-metadata@d7267f607e9d3fb96fc2fbe83e0af444713e90b7
+ with:
+ github-token: "${{ secrets.GITHUB_TOKEN }}"
+
+ - name: Auto-approve and add automerge label for patch updates
+ if: |
+ steps.metadata.outputs.update-type == 'version-update:semver-patch' &&
+ steps.metadata.outputs.update-type != null
+ run: |
+ gh pr review --approve "$PR_URL"
+ gh pr edit "$PR_URL" --add-label "automerge"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+
+ - name: Auto-approve and add automerge label for minor updates
+ if: |
+ steps.metadata.outputs.update-type == 'version-update:semver-minor' &&
+ steps.metadata.outputs.update-type != null
+ run: |
+ gh pr review --approve "$PR_URL"
+ gh pr edit "$PR_URL" --add-label "automerge"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+
+ - name: Auto-approve and add automerge label for indirect dependencies
+ if: steps.metadata.outputs.dependency-type == 'indirect'
+ run: |
+ gh pr review --approve "$PR_URL"
+ gh pr edit "$PR_URL" --add-label "automerge"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+
+ - name: Comment on major updates (require manual review)
+ if: steps.metadata.outputs.update-type == 'version-update:semver-major'
+ run: |
+ gh pr comment "$PR_URL" --body "⚠️ **Major version update detected** - This requires manual review before approval."
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+
+ - name: Comment on unknown updates (require manual review)
+ if: steps.metadata.outputs.update-type == null || steps.metadata.outputs.update-type == ''
+ run: |
+ gh pr comment "$PR_URL" --body "❓ **Unknown update type** - This requires manual review before approval."
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
\ No newline at end of file
diff --git a/.github/workflows/dependabot-auto-label.yml b/.github/workflows/dependabot-auto-label.yml
new file mode 100644
index 0000000..6b28ff1
--- /dev/null
+++ b/.github/workflows/dependabot-auto-label.yml
@@ -0,0 +1,66 @@
+# Auto-label Dependabot PRs based on dependency type and update type
+# Based on GitHub's official documentation for Dependabot automation
+
+name: Dependabot auto-label
+on:
+ pull_request:
+ types: [opened, reopened, synchronize]
+
+permissions:
+ pull-requests: write
+ issues: write
+
+jobs:
+ dependabot:
+ runs-on: arc-runner-set
+ if: github.event.pull_request.user.login == 'dependabot[bot]'
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ steps:
+ - name: Dependabot metadata
+ id: metadata
+ uses: dependabot/fetch-metadata@d7267f607e9d3fb96fc2fbe83e0af444713e90b7
+ with:
+ github-token: "${{ secrets.GITHUB_TOKEN }}"
+
+ - name: Add production dependency label
+ if: steps.metadata.outputs.dependency-type == 'direct:production'
+ run: gh pr edit "$PR_URL" --add-label "production"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+
+ - name: Add development dependency label
+ if: steps.metadata.outputs.dependency-type == 'direct:development'
+ run: gh pr edit "$PR_URL" --add-label "dev-dependency"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+
+ - name: Add indirect dependency label
+ if: steps.metadata.outputs.dependency-type == 'indirect'
+ run: gh pr edit "$PR_URL" --add-label "indirect-dependency"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+
+ - name: Add patch update label
+ if: steps.metadata.outputs.update-type == 'version-update:semver-patch'
+ run: gh pr edit "$PR_URL" --add-label "patch"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+
+ - name: Add minor update label
+ if: steps.metadata.outputs.update-type == 'version-update:semver-minor'
+ run: gh pr edit "$PR_URL" --add-label "minor"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+
+ - name: Add major update label
+ if: steps.metadata.outputs.update-type == 'version-update:semver-major'
+ run: gh pr edit "$PR_URL" --add-label "major"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+
+ - name: Add unknown update label
+ if: steps.metadata.outputs.update-type == null || steps.metadata.outputs.update-type == ''
+ run: gh pr edit "$PR_URL" --add-label "unknown-update"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
\ No newline at end of file
diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml
new file mode 100644
index 0000000..9c8c10a
--- /dev/null
+++ b/.github/workflows/dependabot-auto-merge.yml
@@ -0,0 +1,64 @@
+# Auto-merge Dependabot PRs
+# Based on GitHub's official documentation for Dependabot automation
+
+name: Dependabot auto-merge
+on:
+ pull_request:
+ types: [opened, reopened, synchronize, labeled]
+
+permissions:
+ contents: write
+ pull-requests: write
+
+jobs:
+ dependabot:
+ runs-on: arc-runner-set
+ if: github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'mr-robot-in'
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ steps:
+ - name: Dependabot metadata
+ id: metadata
+ uses: dependabot/fetch-metadata@d7267f607e9d3fb96fc2fbe83e0af444713e90b7
+ with:
+ github-token: "${{ secrets.GITHUB_TOKEN }}"
+
+ - name: Enable auto-merge for patch updates
+ if: |
+ steps.metadata.outputs.update-type == 'version-update:semver-patch' &&
+ contains(github.event.pull_request.labels.*.name, 'automerge') &&
+ steps.metadata.outputs.update-type != null
+ run: gh pr merge --auto --merge "$PR_URL"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+
+ - name: Enable auto-merge for minor updates
+ if: |
+ steps.metadata.outputs.update-type == 'version-update:semver-minor' &&
+ contains(github.event.pull_request.labels.*.name, 'automerge') &&
+ steps.metadata.outputs.update-type != null
+ run: gh pr merge --auto --merge "$PR_URL"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+
+ - name: Enable auto-merge for indirect dependencies
+ if: |
+ steps.metadata.outputs.dependency-type == 'indirect' &&
+ contains(github.event.pull_request.labels.*.name, 'automerge')
+ run: gh pr merge --auto --merge "$PR_URL"
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+
+ - name: Comment on major updates (no auto-merge)
+ if: steps.metadata.outputs.update-type == 'version-update:semver-major'
+ run: |
+ gh pr comment "$PR_URL" --body "🚨 **Major version update** - Auto-merge disabled for major updates. Please review manually."
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
+
+ - name: Comment on unknown updates (no auto-merge)
+ if: steps.metadata.outputs.update-type == null || steps.metadata.outputs.update-type == ''
+ run: |
+ gh pr comment "$PR_URL" --body "❓ **Unknown update type** - Auto-merge disabled. Please review manually."
+ env:
+ PR_URL: ${{github.event.pull_request.html_url}}
\ No newline at end of file
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 1b8e85b..91db5bd 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -47,6 +47,7 @@ jobs:
run: |-
echo "latest_commit=$(git ls-remote origin -h ${{ github.ref }} | cut -f1)" >> $GITHUB_OUTPUT
cat $GITHUB_OUTPUT
+ shell: bash
- name: Backup artifact permissions
if: ${{ steps.git_remote.outputs.latest_commit == github.sha }}
run: cd dist && getfacl -R . > permissions-backup.acl
@@ -84,9 +85,7 @@ jobs:
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- GITHUB_REPOSITORY: ${{ github.repository }}
- GITHUB_REF: ${{ github.sha }}
- run: errout=$(mktemp); gh release create $(cat dist/releasetag.txt) -R $GITHUB_REPOSITORY -F dist/changelog.md -t $(cat dist/releasetag.txt) --target $GITHUB_REF 2> $errout && true; exitcode=$?; if [ $exitcode -ne 0 ] && ! grep -q "Release.tag_name already exists" $errout; then cat $errout; exit $exitcode; fi
+ run: errout=$(mktemp); gh release create $(cat dist/releasetag.txt) -R $GITHUB_REPOSITORY -F dist/changelog.md -t $(cat dist/releasetag.txt) --target $GITHUB_SHA 2> $errout && true; exitcode=$?; if [ $exitcode -ne 0 ] && ! grep -q "Release.tag_name already exists" $errout; then cat $errout; exit $exitcode; fi
release_npm:
name: Publish to npm
needs: release
diff --git a/.github/workflows/upgrade-main.yml b/.github/workflows/upgrade-main.yml
index 115bafa..14cba08 100644
--- a/.github/workflows/upgrade-main.yml
+++ b/.github/workflows/upgrade-main.yml
@@ -31,6 +31,7 @@ jobs:
run: |-
git add .
git diff --staged --patch --exit-code > repo.patch || echo "patch_created=true" >> $GITHUB_OUTPUT
+ shell: bash
working-directory: ./
- name: Upload patch
if: steps.create_patch.outputs.patch_created
diff --git a/.projen/deps.json b/.projen/deps.json
index 2d3f032..b050530 100644
--- a/.projen/deps.json
+++ b/.projen/deps.json
@@ -25,7 +25,7 @@
},
{
"name": "aws-cdk-lib",
- "version": "2.169.0",
+ "version": "2.195.0",
"type": "build"
},
{
@@ -52,7 +52,7 @@
},
{
"name": "jest-junit",
- "version": "^15",
+ "version": "^16",
"type": "build"
},
{
@@ -70,12 +70,12 @@
},
{
"name": "jsii-rosetta",
- "version": "~5.6.0",
+ "version": "~5.9.0",
"type": "build"
},
{
"name": "jsii",
- "version": "~5.6.0",
+ "version": "~5.9.0",
"type": "build"
},
{
@@ -92,7 +92,7 @@
},
{
"name": "aws-cdk-lib",
- "version": "^2.169.0",
+ "version": "^2.195.0",
"type": "peer"
},
{
diff --git a/.projenrc.js b/.projenrc.js
index ed9372a..8feaf71 100644
--- a/.projenrc.js
+++ b/.projenrc.js
@@ -1,12 +1,15 @@
const { AwsCdkConstructLibrary } = require('projen/lib/awscdk');
const { NpmAccess } = require('projen/lib/javascript');
-const CDK_VERSION = '2.169.0';
+const CDK_VERSION = '2.195.0';
const project = new AwsCdkConstructLibrary({
author: 'Bharat Parmar',
authorAddress: 'bharat.parmar@smallcase.com',
cdkVersion: `${CDK_VERSION}`,
cdkVersionPinning: false,
constructsVersion: '10.0.5',
+ jsiiVersion: '~5.9.0',
+ jsiiDocgen: '^10.7.0',
+ jsiiRosetta: '~5.9.0',
constructsVersionPinning: false,
releaseWorkflow: true,
defaultReleaseBranch: 'main',
@@ -33,7 +36,17 @@ const project = new AwsCdkConstructLibrary({
},
releaseEveryCommit: true,
licensed: true, /* Indicates if a license should be added. */
- dependabot: false, /* Include dependabot configuration. */
+ dependabot: false,
+ dependabotOptions: {
+ scheduleInterval: 'weekly',
+ versioningStrategy: 'lockfile-only',
+ runsOn: 'arc-runner-set',
+ allow: ['npm', 'github-actions'],
+ ignore: ['aws-cdk-lib', 'constructs'],
+ labels: ['dependencies', 'automerge'],
+ assignees: [],
+ reviewers: [],
+ },
mergify: false, /* Adds mergify configuration. */
pullRequestTemplate: true, /* Include a GitHub pull request template. */
// deps: [], /* Runtime dependencies of this module. */
diff --git a/API.md b/API.md
index ea4cdfd..a071f7b 100644
--- a/API.md
+++ b/API.md
@@ -44,6 +44,7 @@ new Network(scope: Construct, id: string, props: VPCProps)
| --- | --- |
| toString | Returns a string representation of this construct. |
| createSubnet | *No description.* |
+| mergeSubnetsByGroupNames | *No description.* |
---
@@ -58,7 +59,7 @@ Returns a string representation of this construct.
##### `createSubnet`
```typescript
-public createSubnet(option: ISubnetsProps, vpc: Vpc, peeringConnectionId?: PeeringConnectionInternalType): Subnet[]
+public createSubnet(option: ISubnetsProps, vpc: Vpc, peeringConnectionId?: PeeringConnectionInternalType, useGlobalNestedStacks?: boolean): Subnet[]
```
###### `option`Required
@@ -79,6 +80,42 @@ public createSubnet(option: ISubnetsProps, vpc: Vpc, peeringConnectionId?: Peeri
---
+###### `useGlobalNestedStacks`Optional
+
+- *Type:* boolean
+
+---
+
+##### `mergeSubnetsByGroupNames`
+
+```typescript
+public mergeSubnetsByGroupNames(name: string, service: InterfaceVpcEndpointAwsService | GatewayVpcEndpointAwsService | InterfaceVpcEndpointService, subnetGroupNames: string[], externalSubnets?: IExternalVPEndpointSubnets[]): SelectedSubnets
+```
+
+###### `name`Required
+
+- *Type:* string
+
+---
+
+###### `service`Required
+
+- *Type:* aws-cdk-lib.aws_ec2.InterfaceVpcEndpointAwsService | aws-cdk-lib.aws_ec2.GatewayVpcEndpointAwsService | aws-cdk-lib.aws_ec2.InterfaceVpcEndpointService
+
+---
+
+###### `subnetGroupNames`Required
+
+- *Type:* string[]
+
+---
+
+###### `externalSubnets`Optional
+
+- *Type:* IExternalVPEndpointSubnets[]
+
+---
+
#### Static Functions
| **Name** | **Description** |
@@ -110,7 +147,7 @@ Any object.
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| node | constructs.Node | The tree node. |
-| endpointOutputs | {[ key: string ]: aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint \| aws-cdk-lib.aws_ec2.GatewayVpcEndpoint} | *No description.* |
+| endpointOutputs | {[ key: string ]: aws-cdk-lib.aws_ec2.GatewayVpcEndpoint \| aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint} | *No description.* |
| natProvider | aws-cdk-lib.aws_ec2.NatProvider | *No description.* |
| securityGroupOutputs | {[ key: string ]: aws-cdk-lib.aws_ec2.SecurityGroup} | *No description.* |
| vpc | aws-cdk-lib.aws_ec2.Vpc | *No description.* |
@@ -136,10 +173,10 @@ The tree node.
##### `endpointOutputs`Required
```typescript
-public readonly endpointOutputs: {[ key: string ]: InterfaceVpcEndpoint | GatewayVpcEndpoint};
+public readonly endpointOutputs: {[ key: string ]: GatewayVpcEndpoint | InterfaceVpcEndpoint};
```
-- *Type:* {[ key: string ]: aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint | aws-cdk-lib.aws_ec2.GatewayVpcEndpoint}
+- *Type:* {[ key: string ]: aws-cdk-lib.aws_ec2.GatewayVpcEndpoint | aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint}
---
@@ -214,141 +251,1228 @@ public readonly subnets: {[ key: string ]: Subnet[]};
---
-## Structs
-
-### AddRouteOptions
+### VpcEndpointServiceNestedStack
-#### Initializer
+#### Initializers
```typescript
-import { AddRouteOptions } from '@smallcase/cdk-vpc-module'
+import { VpcEndpointServiceNestedStack } from '@smallcase/cdk-vpc-module'
-const addRouteOptions: AddRouteOptions = { ... }
+new VpcEndpointServiceNestedStack(scope: Construct, id: string, props: VpcEndpointServiceNestedStackProps)
```
-#### Properties
-
| **Name** | **Type** | **Description** |
| --- | --- | --- |
-| routerType | aws-cdk-lib.aws_ec2.RouterType | What type of router to route this traffic to. |
-| destinationCidrBlock | string | IPv4 range this route applies to. |
-| destinationIpv6CidrBlock | string | IPv6 range this route applies to. |
-| enablesInternetConnectivity | boolean | Whether this route will enable internet connectivity. |
-| existingVpcPeeringRouteKey | string | *No description.* |
-| routerId | string | *No description.* |
+| scope | constructs.Construct | *No description.* |
+| id | string | *No description.* |
+| props | VpcEndpointServiceNestedStackProps | *No description.* |
---
-##### `routerType`Required
+##### `scope`Required
+
+- *Type:* constructs.Construct
+
+---
+
+##### `id`Required
+
+- *Type:* string
+
+---
+
+##### `props`Required
+
+- *Type:* VpcEndpointServiceNestedStackProps
+
+---
+
+#### Methods
+
+| **Name** | **Description** |
+| --- | --- |
+| toString | Returns a string representation of this construct. |
+| addDependency | Add a dependency between this stack and another stack. |
+| addMetadata | Adds an arbitrary key-value pair, with information you want to record about the stack. |
+| addTransform | Add a Transform to this stack. A Transform is a macro that AWS CloudFormation uses to process your template. |
+| exportStringListValue | Create a CloudFormation Export for a string list value. |
+| exportValue | Create a CloudFormation Export for a string value. |
+| formatArn | Creates an ARN from components. |
+| getLogicalId | Allocates a stack-unique CloudFormation-compatible logical identity for a specific resource. |
+| regionalFact | Look up a fact value for the given fact for the region of this stack. |
+| renameLogicalId | Rename a generated logical identities. |
+| reportMissingContextKey | Indicate that a context key was expected. |
+| resolve | Resolve a tokenized value in the context of the current stack. |
+| splitArn | Splits the provided ARN into its components. |
+| toJsonString | Convert an object, potentially containing tokens, to a JSON string. |
+| toYamlString | Convert an object, potentially containing tokens, to a YAML string. |
+| setParameter | Assign a value to one of the nested stack parameters. |
+
+---
+
+##### `toString`
```typescript
-public readonly routerType: RouterType;
+public toString(): string
```
-- *Type:* aws-cdk-lib.aws_ec2.RouterType
+Returns a string representation of this construct.
-What type of router to route this traffic to.
+##### `addDependency`
+
+```typescript
+public addDependency(target: Stack, reason?: string): void
+```
+
+Add a dependency between this stack and another stack.
+
+This can be used to define dependencies between any two stacks within an
+app, and also supports nested stacks.
+
+###### `target`Required
+
+- *Type:* aws-cdk-lib.Stack
---
-##### `destinationCidrBlock`Optional
+###### `reason`Optional
+
+- *Type:* string
+
+---
+
+##### `addMetadata`
```typescript
-public readonly destinationCidrBlock: string;
+public addMetadata(key: string, value: any): void
```
+Adds an arbitrary key-value pair, with information you want to record about the stack.
+
+These get translated to the Metadata section of the generated template.
+
+> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html)
+
+###### `key`Required
+
- *Type:* string
-- *Default:* '0.0.0.0/0'
-IPv4 range this route applies to.
+---
+
+###### `value`Required
+
+- *Type:* any
---
-##### `destinationIpv6CidrBlock`Optional
+##### `addTransform`
```typescript
-public readonly destinationIpv6CidrBlock: string;
+public addTransform(transform: string): void
+```
+
+Add a Transform to this stack. A Transform is a macro that AWS CloudFormation uses to process your template.
+
+Duplicate values are removed when stack is synthesized.
+
+> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-section-structure.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-section-structure.html)
+
+*Example*
+
+```typescript
+declare const stack: Stack;
+
+stack.addTransform('AWS::Serverless-2016-10-31')
```
+
+###### `transform`Required
+
- *Type:* string
-- *Default:* Uses IPv6
-IPv6 range this route applies to.
+The transform to add.
---
-##### `enablesInternetConnectivity`Optional
+##### `exportStringListValue`
```typescript
-public readonly enablesInternetConnectivity: boolean;
+public exportStringListValue(exportedValue: any, options?: ExportValueOptions): string[]
```
-- *Type:* boolean
-- *Default:* false
+Create a CloudFormation Export for a string list value.
-Whether this route will enable internet connectivity.
+Returns a string list representing the corresponding `Fn.importValue()`
+expression for this Export. The export expression is automatically wrapped with an
+`Fn::Join` and the import value with an `Fn::Split`, since CloudFormation can only
+export strings. You can control the name for the export by passing the `name` option.
-If true, this route will be added before any AWS resources that depend
-on internet connectivity in the VPC will be created.
+If you don't supply a value for `name`, the value you're exporting must be
+a Resource attribute (for example: `bucket.bucketName`) and it will be
+given the same name as the automatic cross-stack reference that would be created
+if you used the attribute in another Stack.
+
+One of the uses for this method is to *remove* the relationship between
+two Stacks established by automatic cross-stack references. It will
+temporarily ensure that the CloudFormation Export still exists while you
+remove the reference from the consuming stack. After that, you can remove
+the resource and the manual export.
+
+See `exportValue` for an example of this process.
+
+###### `exportedValue`Required
+
+- *Type:* any
---
-##### `existingVpcPeeringRouteKey`Optional
+###### `options`Optional
+
+- *Type:* aws-cdk-lib.ExportValueOptions
+
+---
+
+##### `exportValue`
```typescript
-public readonly existingVpcPeeringRouteKey: string;
+public exportValue(exportedValue: any, options?: ExportValueOptions): string
+```
+
+Create a CloudFormation Export for a string value.
+
+Returns a string representing the corresponding `Fn.importValue()`
+expression for this Export. You can control the name for the export by
+passing the `name` option.
+
+If you don't supply a value for `name`, the value you're exporting must be
+a Resource attribute (for example: `bucket.bucketName`) and it will be
+given the same name as the automatic cross-stack reference that would be created
+if you used the attribute in another Stack.
+
+One of the uses for this method is to *remove* the relationship between
+two Stacks established by automatic cross-stack references. It will
+temporarily ensure that the CloudFormation Export still exists while you
+remove the reference from the consuming stack. After that, you can remove
+the resource and the manual export.
+
+Here is how the process works. Let's say there are two stacks,
+`producerStack` and `consumerStack`, and `producerStack` has a bucket
+called `bucket`, which is referenced by `consumerStack` (perhaps because
+an AWS Lambda Function writes into it, or something like that).
+
+It is not safe to remove `producerStack.bucket` because as the bucket is being
+deleted, `consumerStack` might still be using it.
+
+Instead, the process takes two deployments:
+
+**Deployment 1: break the relationship**:
+
+- Make sure `consumerStack` no longer references `bucket.bucketName` (maybe the consumer
+ stack now uses its own bucket, or it writes to an AWS DynamoDB table, or maybe you just
+ remove the Lambda Function altogether).
+- In the `ProducerStack` class, call `this.exportValue(this.bucket.bucketName)`. This
+ will make sure the CloudFormation Export continues to exist while the relationship
+ between the two stacks is being broken.
+- Deploy (this will effectively only change the `consumerStack`, but it's safe to deploy both).
+
+**Deployment 2: remove the bucket resource**:
+
+- You are now free to remove the `bucket` resource from `producerStack`.
+- Don't forget to remove the `exportValue()` call as well.
+- Deploy again (this time only the `producerStack` will be changed -- the bucket will be deleted).
+
+###### `exportedValue`Required
+
+- *Type:* any
+
+---
+
+###### `options`Optional
+
+- *Type:* aws-cdk-lib.ExportValueOptions
+
+---
+
+##### `formatArn`
+
+```typescript
+public formatArn(components: ArnComponents): string
+```
+
+Creates an ARN from components.
+
+If `partition`, `region` or `account` are not specified, the stack's
+partition, region and account will be used.
+
+If any component is the empty string, an empty string will be inserted
+into the generated ARN at the location that component corresponds to.
+
+The ARN will be formatted as follows:
+
+ arn:{partition}:{service}:{region}:{account}:{resource}{sep}{resource-name}
+
+The required ARN pieces that are omitted will be taken from the stack that
+the 'scope' is attached to. If all ARN pieces are supplied, the supplied scope
+can be 'undefined'.
+
+###### `components`Required
+
+- *Type:* aws-cdk-lib.ArnComponents
+
+---
+
+##### `getLogicalId`
+
+```typescript
+public getLogicalId(element: CfnElement): string
+```
+
+Allocates a stack-unique CloudFormation-compatible logical identity for a specific resource.
+
+This method is called when a `CfnElement` is created and used to render the
+initial logical identity of resources. Logical ID renames are applied at
+this stage.
+
+This method uses the protected method `allocateLogicalId` to render the
+logical ID for an element. To modify the naming scheme, extend the `Stack`
+class and override this method.
+
+###### `element`Required
+
+- *Type:* aws-cdk-lib.CfnElement
+
+The CloudFormation element for which a logical identity is needed.
+
+---
+
+##### `regionalFact`
+
+```typescript
+public regionalFact(factName: string, defaultValue?: string): string
```
+Look up a fact value for the given fact for the region of this stack.
+
+Will return a definite value only if the region of the current stack is resolved.
+If not, a lookup map will be added to the stack and the lookup will be done at
+CDK deployment time.
+
+What regions will be included in the lookup map is controlled by the
+`@aws-cdk/core:target-partitions` context value: it must be set to a list
+of partitions, and only regions from the given partitions will be included.
+If no such context key is set, all regions will be included.
+
+This function is intended to be used by construct library authors. Application
+builders can rely on the abstractions offered by construct libraries and do
+not have to worry about regional facts.
+
+If `defaultValue` is not given, it is an error if the fact is unknown for
+the given region.
+
+###### `factName`Required
+
- *Type:* string
---
-##### `routerId`Optional
+###### `defaultValue`Optional
+
+- *Type:* string
+
+---
+
+##### `renameLogicalId`
```typescript
-public readonly routerId: string;
+public renameLogicalId(oldId: string, newId: string): void
```
+Rename a generated logical identities.
+
+To modify the naming scheme strategy, extend the `Stack` class and
+override the `allocateLogicalId` method.
+
+###### `oldId`Required
+
- *Type:* string
---
-### NetworkACL
+###### `newId`Required
-#### Initializer
+- *Type:* string
+
+---
+
+##### `reportMissingContextKey`
```typescript
-import { NetworkACL } from '@smallcase/cdk-vpc-module'
+public reportMissingContextKey(report: MissingContext): void
+```
-const networkACL: NetworkACL = { ... }
+Indicate that a context key was expected.
+
+Contains instructions which will be emitted into the cloud assembly on how
+the key should be supplied.
+
+###### `report`Required
+
+- *Type:* aws-cdk-lib.cloud_assembly_schema.MissingContext
+
+The set of parameters needed to obtain the context.
+
+---
+
+##### `resolve`
+
+```typescript
+public resolve(obj: any): any
+```
+
+Resolve a tokenized value in the context of the current stack.
+
+###### `obj`Required
+
+- *Type:* any
+
+---
+
+##### `splitArn`
+
+```typescript
+public splitArn(arn: string, arnFormat: ArnFormat): ArnComponents
+```
+
+Splits the provided ARN into its components.
+
+Works both if 'arn' is a string like 'arn:aws:s3:::bucket',
+and a Token representing a dynamic CloudFormation expression
+(in which case the returned components will also be dynamic CloudFormation expressions,
+encoded as Tokens).
+
+###### `arn`Required
+
+- *Type:* string
+
+the ARN to split into its components.
+
+---
+
+###### `arnFormat`Required
+
+- *Type:* aws-cdk-lib.ArnFormat
+
+the expected format of 'arn' - depends on what format the service 'arn' represents uses.
+
+---
+
+##### `toJsonString`
+
+```typescript
+public toJsonString(obj: any, space?: number): string
+```
+
+Convert an object, potentially containing tokens, to a JSON string.
+
+###### `obj`Required
+
+- *Type:* any
+
+---
+
+###### `space`Optional
+
+- *Type:* number
+
+---
+
+##### `toYamlString`
+
+```typescript
+public toYamlString(obj: any): string
+```
+
+Convert an object, potentially containing tokens, to a YAML string.
+
+###### `obj`Required
+
+- *Type:* any
+
+---
+
+##### `setParameter`
+
+```typescript
+public setParameter(name: string, value: string): void
+```
+
+Assign a value to one of the nested stack parameters.
+
+###### `name`Required
+
+- *Type:* string
+
+The parameter name (ID).
+
+---
+
+###### `value`Required
+
+- *Type:* string
+
+The value to assign.
+
+---
+
+#### Static Functions
+
+| **Name** | **Description** |
+| --- | --- |
+| isConstruct | Checks if `x` is a construct. |
+| isStack | Return whether the given object is a Stack. |
+| of | Looks up the first stack scope in which `construct` is defined. |
+| isNestedStack | Checks if `x` is an object of type `NestedStack`. |
+
+---
+
+##### ~~`isConstruct`~~
+
+```typescript
+import { VpcEndpointServiceNestedStack } from '@smallcase/cdk-vpc-module'
+
+VpcEndpointServiceNestedStack.isConstruct(x: any)
+```
+
+Checks if `x` is a construct.
+
+###### `x`Required
+
+- *Type:* any
+
+Any object.
+
+---
+
+##### `isStack`
+
+```typescript
+import { VpcEndpointServiceNestedStack } from '@smallcase/cdk-vpc-module'
+
+VpcEndpointServiceNestedStack.isStack(x: any)
+```
+
+Return whether the given object is a Stack.
+
+We do attribute detection since we can't reliably use 'instanceof'.
+
+###### `x`Required
+
+- *Type:* any
+
+---
+
+##### `of`
+
+```typescript
+import { VpcEndpointServiceNestedStack } from '@smallcase/cdk-vpc-module'
+
+VpcEndpointServiceNestedStack.of(construct: IConstruct)
+```
+
+Looks up the first stack scope in which `construct` is defined.
+
+Fails if there is no stack up the tree.
+
+###### `construct`Required
+
+- *Type:* constructs.IConstruct
+
+The construct to start the search from.
+
+---
+
+##### `isNestedStack`
+
+```typescript
+import { VpcEndpointServiceNestedStack } from '@smallcase/cdk-vpc-module'
+
+VpcEndpointServiceNestedStack.isNestedStack(x: any)
+```
+
+Checks if `x` is an object of type `NestedStack`.
+
+###### `x`Required
+
+- *Type:* any
+
+---
+
+#### Properties
+
+| **Name** | **Type** | **Description** |
+| --- | --- | --- |
+| node | constructs.Node | The tree node. |
+| account | string | The AWS account into which this stack will be deployed. |
+| artifactId | string | The ID of the cloud assembly artifact for this stack. |
+| availabilityZones | string[] | Returns the list of AZs that are available in the AWS environment (account/region) associated with this stack. |
+| bundlingRequired | boolean | Indicates whether the stack requires bundling or not. |
+| dependencies | aws-cdk-lib.Stack[] | Return the stacks this stack depends on. |
+| environment | string | The environment coordinates in which this stack is deployed. |
+| nested | boolean | Indicates if this is a nested stack, in which case `parentStack` will include a reference to it's parent. |
+| notificationArns | string[] | Returns the list of notification Amazon Resource Names (ARNs) for the current stack. |
+| partition | string | The partition in which this stack is defined. |
+| region | string | The AWS region into which this stack will be deployed (e.g. `us-west-2`). |
+| stackId | string | An attribute that represents the ID of the stack. |
+| stackName | string | An attribute that represents the name of the nested stack. |
+| synthesizer | aws-cdk-lib.IStackSynthesizer | Synthesis method for this stack. |
+| tags | aws-cdk-lib.TagManager | Tags to be applied to the stack. |
+| templateFile | string | The name of the CloudFormation template file emitted to the output directory during synthesis. |
+| templateOptions | aws-cdk-lib.ITemplateOptions | Options for CloudFormation template (like version, transform, description). |
+| urlSuffix | string | The Amazon domain suffix for the region in which this stack is defined. |
+| nestedStackParent | aws-cdk-lib.Stack | If this is a nested stack, returns it's parent stack. |
+| nestedStackResource | aws-cdk-lib.CfnResource | If this is a nested stack, this represents its `AWS::CloudFormation::Stack` resource. |
+| terminationProtection | boolean | Whether termination protection is enabled for this stack. |
+
+---
+
+##### `node`Required
+
+```typescript
+public readonly node: Node;
+```
+
+- *Type:* constructs.Node
+
+The tree node.
+
+---
+
+##### `account`Required
+
+```typescript
+public readonly account: string;
+```
+
+- *Type:* string
+
+The AWS account into which this stack will be deployed.
+
+This value is resolved according to the following rules:
+
+1. The value provided to `env.account` when the stack is defined. This can
+ either be a concrete account (e.g. `585695031111`) or the
+ `Aws.ACCOUNT_ID` token.
+3. `Aws.ACCOUNT_ID`, which represents the CloudFormation intrinsic reference
+ `{ "Ref": "AWS::AccountId" }` encoded as a string token.
+
+Preferably, you should use the return value as an opaque string and not
+attempt to parse it to implement your logic. If you do, you must first
+check that it is a concrete value an not an unresolved token. If this
+value is an unresolved token (`Token.isUnresolved(stack.account)` returns
+`true`), this implies that the user wishes that this stack will synthesize
+into an **account-agnostic template**. In this case, your code should either
+fail (throw an error, emit a synth error using `Annotations.of(construct).addError()`) or
+implement some other account-agnostic behavior.
+
+---
+
+##### `artifactId`Required
+
+```typescript
+public readonly artifactId: string;
+```
+
+- *Type:* string
+
+The ID of the cloud assembly artifact for this stack.
+
+---
+
+##### `availabilityZones`Required
+
+```typescript
+public readonly availabilityZones: string[];
+```
+
+- *Type:* string[]
+
+Returns the list of AZs that are available in the AWS environment (account/region) associated with this stack.
+
+If the stack is environment-agnostic (either account and/or region are
+tokens), this property will return an array with 2 tokens that will resolve
+at deploy-time to the first two availability zones returned from CloudFormation's
+`Fn::GetAZs` intrinsic function.
+
+If they are not available in the context, returns a set of dummy values and
+reports them as missing, and let the CLI resolve them by calling EC2
+`DescribeAvailabilityZones` on the target environment.
+
+To specify a different strategy for selecting availability zones override this method.
+
+---
+
+##### `bundlingRequired`Required
+
+```typescript
+public readonly bundlingRequired: boolean;
+```
+
+- *Type:* boolean
+
+Indicates whether the stack requires bundling or not.
+
+---
+
+##### `dependencies`Required
+
+```typescript
+public readonly dependencies: Stack[];
+```
+
+- *Type:* aws-cdk-lib.Stack[]
+
+Return the stacks this stack depends on.
+
+---
+
+##### `environment`Required
+
+```typescript
+public readonly environment: string;
+```
+
+- *Type:* string
+
+The environment coordinates in which this stack is deployed.
+
+In the form
+`aws://account/region`. Use `stack.account` and `stack.region` to obtain
+the specific values, no need to parse.
+
+You can use this value to determine if two stacks are targeting the same
+environment.
+
+If either `stack.account` or `stack.region` are not concrete values (e.g.
+`Aws.ACCOUNT_ID` or `Aws.REGION`) the special strings `unknown-account` and/or
+`unknown-region` will be used respectively to indicate this stack is
+region/account-agnostic.
+
+---
+
+##### `nested`Required
+
+```typescript
+public readonly nested: boolean;
+```
+
+- *Type:* boolean
+
+Indicates if this is a nested stack, in which case `parentStack` will include a reference to it's parent.
+
+---
+
+##### `notificationArns`Required
+
+```typescript
+public readonly notificationArns: string[];
+```
+
+- *Type:* string[]
+
+Returns the list of notification Amazon Resource Names (ARNs) for the current stack.
+
+---
+
+##### `partition`Required
+
+```typescript
+public readonly partition: string;
+```
+
+- *Type:* string
+
+The partition in which this stack is defined.
+
+---
+
+##### `region`Required
+
+```typescript
+public readonly region: string;
+```
+
+- *Type:* string
+
+The AWS region into which this stack will be deployed (e.g. `us-west-2`).
+
+This value is resolved according to the following rules:
+
+1. The value provided to `env.region` when the stack is defined. This can
+ either be a concrete region (e.g. `us-west-2`) or the `Aws.REGION`
+ token.
+3. `Aws.REGION`, which is represents the CloudFormation intrinsic reference
+ `{ "Ref": "AWS::Region" }` encoded as a string token.
+
+Preferably, you should use the return value as an opaque string and not
+attempt to parse it to implement your logic. If you do, you must first
+check that it is a concrete value an not an unresolved token. If this
+value is an unresolved token (`Token.isUnresolved(stack.region)` returns
+`true`), this implies that the user wishes that this stack will synthesize
+into a **region-agnostic template**. In this case, your code should either
+fail (throw an error, emit a synth error using `Annotations.of(construct).addError()`) or
+implement some other region-agnostic behavior.
+
+---
+
+##### `stackId`Required
+
+```typescript
+public readonly stackId: string;
+```
+
+- *Type:* string
+
+An attribute that represents the ID of the stack.
+
+This is a context aware attribute:
+- If this is referenced from the parent stack, it will return `{ "Ref": "LogicalIdOfNestedStackResource" }`.
+- If this is referenced from the context of the nested stack, it will return `{ "Ref": "AWS::StackId" }`
+
+Example value: `arn:aws:cloudformation:us-east-2:123456789012:stack/mystack-mynestedstack-sggfrhxhum7w/f449b250-b969-11e0-a185-5081d0136786`
+
+---
+
+##### `stackName`Required
+
+```typescript
+public readonly stackName: string;
+```
+
+- *Type:* string
+
+An attribute that represents the name of the nested stack.
+
+This is a context aware attribute:
+- If this is referenced from the parent stack, it will return a token that parses the name from the stack ID.
+- If this is referenced from the context of the nested stack, it will return `{ "Ref": "AWS::StackName" }`
+
+Example value: `mystack-mynestedstack-sggfrhxhum7w`
+
+---
+
+##### `synthesizer`Required
+
+```typescript
+public readonly synthesizer: IStackSynthesizer;
+```
+
+- *Type:* aws-cdk-lib.IStackSynthesizer
+
+Synthesis method for this stack.
+
+---
+
+##### `tags`Required
+
+```typescript
+public readonly tags: TagManager;
+```
+
+- *Type:* aws-cdk-lib.TagManager
+
+Tags to be applied to the stack.
+
+---
+
+##### `templateFile`Required
+
+```typescript
+public readonly templateFile: string;
+```
+
+- *Type:* string
+
+The name of the CloudFormation template file emitted to the output directory during synthesis.
+
+Example value: `MyStack.template.json`
+
+---
+
+##### `templateOptions`Required
+
+```typescript
+public readonly templateOptions: ITemplateOptions;
+```
+
+- *Type:* aws-cdk-lib.ITemplateOptions
+
+Options for CloudFormation template (like version, transform, description).
+
+---
+
+##### `urlSuffix`Required
+
+```typescript
+public readonly urlSuffix: string;
+```
+
+- *Type:* string
+
+The Amazon domain suffix for the region in which this stack is defined.
+
+---
+
+##### `nestedStackParent`Optional
+
+```typescript
+public readonly nestedStackParent: Stack;
+```
+
+- *Type:* aws-cdk-lib.Stack
+
+If this is a nested stack, returns it's parent stack.
+
+---
+
+##### `nestedStackResource`Optional
+
+```typescript
+public readonly nestedStackResource: CfnResource;
+```
+
+- *Type:* aws-cdk-lib.CfnResource
+
+If this is a nested stack, this represents its `AWS::CloudFormation::Stack` resource.
+
+`undefined` for top-level (non-nested) stacks.
+
+---
+
+##### `terminationProtection`Required
+
+```typescript
+public readonly terminationProtection: boolean;
+```
+
+- *Type:* boolean
+
+Whether termination protection is enabled for this stack.
+
+---
+
+
+## Structs
+
+### AddRouteOptions
+
+#### Initializer
+
+```typescript
+import { AddRouteOptions } from '@smallcase/cdk-vpc-module'
+
+const addRouteOptions: AddRouteOptions = { ... }
+```
+
+#### Properties
+
+| **Name** | **Type** | **Description** |
+| --- | --- | --- |
+| routerType | aws-cdk-lib.aws_ec2.RouterType | What type of router to route this traffic to. |
+| destinationCidrBlock | string | IPv4 range this route applies to. |
+| destinationIpv6CidrBlock | string | IPv6 range this route applies to. |
+| enablesInternetConnectivity | boolean | Whether this route will enable internet connectivity. |
+| existingVpcPeeringRouteKey | string | *No description.* |
+| routeName | string | *No description.* |
+| routerId | string | *No description.* |
+
+---
+
+##### `routerType`Required
+
+```typescript
+public readonly routerType: RouterType;
+```
+
+- *Type:* aws-cdk-lib.aws_ec2.RouterType
+
+What type of router to route this traffic to.
+
+---
+
+##### `destinationCidrBlock`Optional
+
+```typescript
+public readonly destinationCidrBlock: string;
+```
+
+- *Type:* string
+- *Default:* '0.0.0.0/0'
+
+IPv4 range this route applies to.
+
+---
+
+##### `destinationIpv6CidrBlock`Optional
+
+```typescript
+public readonly destinationIpv6CidrBlock: string;
+```
+
+- *Type:* string
+- *Default:* Uses IPv6
+
+IPv6 range this route applies to.
+
+---
+
+##### `enablesInternetConnectivity`Optional
+
+```typescript
+public readonly enablesInternetConnectivity: boolean;
+```
+
+- *Type:* boolean
+- *Default:* false
+
+Whether this route will enable internet connectivity.
+
+If true, this route will be added before any AWS resources that depend
+on internet connectivity in the VPC will be created.
+
+---
+
+##### `existingVpcPeeringRouteKey`Optional
+
+```typescript
+public readonly existingVpcPeeringRouteKey: string;
+```
+
+- *Type:* string
+
+---
+
+##### `routeName`Optional
+
+```typescript
+public readonly routeName: string;
+```
+
+- *Type:* string
+
+---
+
+##### `routerId`Optional
+
+```typescript
+public readonly routerId: string;
+```
+
+- *Type:* string
+
+---
+
+### LoadBalancerConfig
+
+#### Initializer
+
+```typescript
+import { LoadBalancerConfig } from '@smallcase/cdk-vpc-module'
+
+const loadBalancerConfig: LoadBalancerConfig = { ... }
+```
+
+#### Properties
+
+| **Name** | **Type** | **Description** |
+| --- | --- | --- |
+| certificates | string[] | *No description.* |
+| existingArn | string | *No description.* |
+| existingSecurityGroupId | string | *No description.* |
+| internetFacing | boolean | *No description.* |
+| securityGroupRules | SecurityGroupRule[] | *No description.* |
+| subnetGroupName | string | *No description.* |
+| targetGroups | TargetGroupConfig[] | *No description.* |
+
+---
+
+##### `certificates`Optional
+
+```typescript
+public readonly certificates: string[];
+```
+
+- *Type:* string[]
+
+---
+
+##### `existingArn`Optional
+
+```typescript
+public readonly existingArn: string;
+```
+
+- *Type:* string
+
+---
+
+##### `existingSecurityGroupId`Optional
+
+```typescript
+public readonly existingSecurityGroupId: string;
+```
+
+- *Type:* string
+
+---
+
+##### `internetFacing`Optional
+
+```typescript
+public readonly internetFacing: boolean;
+```
+
+- *Type:* boolean
+
+---
+
+##### `securityGroupRules`Optional
+
+```typescript
+public readonly securityGroupRules: SecurityGroupRule[];
+```
+
+- *Type:* SecurityGroupRule[]
+
+---
+
+##### `subnetGroupName`Optional
+
+```typescript
+public readonly subnetGroupName: string;
+```
+
+- *Type:* string
+
+---
+
+##### `targetGroups`Optional
+
+```typescript
+public readonly targetGroups: TargetGroupConfig[];
+```
+
+- *Type:* TargetGroupConfig[]
+
+---
+
+### NetworkACL
+
+#### Initializer
+
+```typescript
+import { NetworkACL } from '@smallcase/cdk-vpc-module'
+
+const networkACL: NetworkACL = { ... }
+```
+
+#### Properties
+
+| **Name** | **Type** | **Description** |
+| --- | --- | --- |
+| cidr | aws-cdk-lib.aws_ec2.AclCidr | *No description.* |
+| traffic | aws-cdk-lib.aws_ec2.AclTraffic | *No description.* |
+
+---
+
+##### `cidr`Required
+
+```typescript
+public readonly cidr: AclCidr;
+```
+
+- *Type:* aws-cdk-lib.aws_ec2.AclCidr
+
+---
+
+##### `traffic`Required
+
+```typescript
+public readonly traffic: AclTraffic;
+```
+
+- *Type:* aws-cdk-lib.aws_ec2.AclTraffic
+
+---
+
+### NetworkLoadBalancerConfig
+
+#### Initializer
+
+```typescript
+import { NetworkLoadBalancerConfig } from '@smallcase/cdk-vpc-module'
+
+const networkLoadBalancerConfig: NetworkLoadBalancerConfig = { ... }
+```
+
+#### Properties
+
+| **Name** | **Type** | **Description** |
+| --- | --- | --- |
+| securityGroupRules | SecurityGroupRule[] | *No description.* |
+| subnetGroupName | string | *No description.* |
+| certificates | string[] | *No description.* |
+| existingSecurityGroupId | string | *No description.* |
+| internetFacing | boolean | *No description.* |
+
+---
+
+##### `securityGroupRules`Required
+
+```typescript
+public readonly securityGroupRules: SecurityGroupRule[];
+```
+
+- *Type:* SecurityGroupRule[]
+
+---
+
+##### `subnetGroupName`Required
+
+```typescript
+public readonly subnetGroupName: string;
+```
+
+- *Type:* string
+
+---
+
+##### `certificates`Optional
+
+```typescript
+public readonly certificates: string[];
```
-#### Properties
-
-| **Name** | **Type** | **Description** |
-| --- | --- | --- |
-| cidr | aws-cdk-lib.aws_ec2.AclCidr | *No description.* |
-| traffic | aws-cdk-lib.aws_ec2.AclTraffic | *No description.* |
+- *Type:* string[]
---
-##### `cidr`Required
+##### `existingSecurityGroupId`Optional
```typescript
-public readonly cidr: AclCidr;
+public readonly existingSecurityGroupId: string;
```
-- *Type:* aws-cdk-lib.aws_ec2.AclCidr
+- *Type:* string
---
-##### `traffic`Required
+##### `internetFacing`Optional
```typescript
-public readonly traffic: AclTraffic;
+public readonly internetFacing: boolean;
```
-- *Type:* aws-cdk-lib.aws_ec2.AclTraffic
+- *Type:* boolean
---
@@ -485,6 +1609,111 @@ public readonly description: string;
---
+### TargetGroupConfig
+
+#### Initializer
+
+```typescript
+import { TargetGroupConfig } from '@smallcase/cdk-vpc-module'
+
+const targetGroupConfig: TargetGroupConfig = { ... }
+```
+
+#### Properties
+
+| **Name** | **Type** | **Description** |
+| --- | --- | --- |
+| applicationPort | number | *No description.* |
+| host | string | *No description.* |
+| healthCheckPath | string | *No description.* |
+| healthCheckPort | number | *No description.* |
+| healthCheckProtocol | aws-cdk-lib.aws_elasticloadbalancingv2.Protocol | *No description.* |
+| priority | number | *No description.* |
+| protocol | aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationProtocol | *No description.* |
+| protocolVersion | aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationProtocolVersion | *No description.* |
+
+---
+
+##### `applicationPort`Required
+
+```typescript
+public readonly applicationPort: number;
+```
+
+- *Type:* number
+
+---
+
+##### `host`Required
+
+```typescript
+public readonly host: string;
+```
+
+- *Type:* string
+
+---
+
+##### `healthCheckPath`Optional
+
+```typescript
+public readonly healthCheckPath: string;
+```
+
+- *Type:* string
+
+---
+
+##### `healthCheckPort`Optional
+
+```typescript
+public readonly healthCheckPort: number;
+```
+
+- *Type:* number
+
+---
+
+##### `healthCheckProtocol`Optional
+
+```typescript
+public readonly healthCheckProtocol: Protocol;
+```
+
+- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.Protocol
+
+---
+
+##### `priority`Optional
+
+```typescript
+public readonly priority: number;
+```
+
+- *Type:* number
+
+---
+
+##### `protocol`Optional
+
+```typescript
+public readonly protocol: ApplicationProtocol;
+```
+
+- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationProtocol
+
+---
+
+##### `protocolVersion`Optional
+
+```typescript
+public readonly protocolVersion: ApplicationProtocolVersion;
+```
+
+- *Type:* aws-cdk-lib.aws_elasticloadbalancingv2.ApplicationProtocolVersion
+
+---
+
### VpcEndpointConfig
#### Initializer
@@ -579,6 +1808,227 @@ public readonly securityGroupRules: SecurityGroupRule[];
---
+### VpcEndpointServiceNestedStackProps
+
+#### Initializer
+
+```typescript
+import { VpcEndpointServiceNestedStackProps } from '@smallcase/cdk-vpc-module'
+
+const vpcEndpointServiceNestedStackProps: VpcEndpointServiceNestedStackProps = { ... }
+```
+
+#### Properties
+
+| **Name** | **Type** | **Description** |
+| --- | --- | --- |
+| description | string | A description of the stack. |
+| notificationArns | string[] | The Simple Notification Service (SNS) topics to publish stack related events. |
+| parameters | {[ key: string ]: string} | The set value pairs that represent the parameters passed to CloudFormation when this nested stack is created. |
+| removalPolicy | aws-cdk-lib.RemovalPolicy | Policy to apply when the nested stack is removed. |
+| timeout | aws-cdk-lib.Duration | The length of time that CloudFormation waits for the nested stack to reach the CREATE_COMPLETE state. |
+| subnets | {[ key: string ]: aws-cdk-lib.aws_ec2.Subnet[]} | *No description.* |
+| vpc | aws-cdk-lib.aws_ec2.Vpc | *No description.* |
+| vpcEndpointServiceConfigs | VpcEndpontServiceConfig[] | *No description.* |
+
+---
+
+##### `description`Optional
+
+```typescript
+public readonly description: string;
+```
+
+- *Type:* string
+- *Default:* No description.
+
+A description of the stack.
+
+---
+
+##### `notificationArns`Optional
+
+```typescript
+public readonly notificationArns: string[];
+```
+
+- *Type:* string[]
+- *Default:* notifications are not sent for this stack.
+
+The Simple Notification Service (SNS) topics to publish stack related events.
+
+---
+
+##### `parameters`Optional
+
+```typescript
+public readonly parameters: {[ key: string ]: string};
+```
+
+- *Type:* {[ key: string ]: string}
+- *Default:* no user-defined parameters are passed to the nested stack
+
+The set value pairs that represent the parameters passed to CloudFormation when this nested stack is created.
+
+Each parameter has a name corresponding
+to a parameter defined in the embedded template and a value representing
+the value that you want to set for the parameter.
+
+The nested stack construct will automatically synthesize parameters in order
+to bind references from the parent stack(s) into the nested stack.
+
+---
+
+##### `removalPolicy`Optional
+
+```typescript
+public readonly removalPolicy: RemovalPolicy;
+```
+
+- *Type:* aws-cdk-lib.RemovalPolicy
+- *Default:* RemovalPolicy.DESTROY
+
+Policy to apply when the nested stack is removed.
+
+The default is `Destroy`, because all Removal Policies of resources inside the
+Nested Stack should already have been set correctly. You normally should
+not need to set this value.
+
+---
+
+##### `timeout`Optional
+
+```typescript
+public readonly timeout: Duration;
+```
+
+- *Type:* aws-cdk-lib.Duration
+- *Default:* no timeout
+
+The length of time that CloudFormation waits for the nested stack to reach the CREATE_COMPLETE state.
+
+When CloudFormation detects that the nested stack has reached the
+CREATE_COMPLETE state, it marks the nested stack resource as
+CREATE_COMPLETE in the parent stack and resumes creating the parent stack.
+If the timeout period expires before the nested stack reaches
+CREATE_COMPLETE, CloudFormation marks the nested stack as failed and rolls
+back both the nested stack and parent stack.
+
+---
+
+##### `subnets`Required
+
+```typescript
+public readonly subnets: {[ key: string ]: Subnet[]};
+```
+
+- *Type:* {[ key: string ]: aws-cdk-lib.aws_ec2.Subnet[]}
+
+---
+
+##### `vpc`Required
+
+```typescript
+public readonly vpc: Vpc;
+```
+
+- *Type:* aws-cdk-lib.aws_ec2.Vpc
+
+---
+
+##### `vpcEndpointServiceConfigs`Required
+
+```typescript
+public readonly vpcEndpointServiceConfigs: VpcEndpontServiceConfig[];
+```
+
+- *Type:* VpcEndpontServiceConfig[]
+
+---
+
+### VpcEndpontServiceConfig
+
+#### Initializer
+
+```typescript
+import { VpcEndpontServiceConfig } from '@smallcase/cdk-vpc-module'
+
+const vpcEndpontServiceConfig: VpcEndpontServiceConfig = { ... }
+```
+
+#### Properties
+
+| **Name** | **Type** | **Description** |
+| --- | --- | --- |
+| alb | LoadBalancerConfig | *No description.* |
+| name | string | *No description.* |
+| nlb | NetworkLoadBalancerConfig | *No description.* |
+| acceptanceRequired | boolean | *No description.* |
+| additionalTags | {[ key: string ]: string} | *No description.* |
+| allowedPrincipals | string[] | *No description.* |
+
+---
+
+##### `alb`Required
+
+```typescript
+public readonly alb: LoadBalancerConfig;
+```
+
+- *Type:* LoadBalancerConfig
+
+---
+
+##### `name`Required
+
+```typescript
+public readonly name: string;
+```
+
+- *Type:* string
+
+---
+
+##### `nlb`Required
+
+```typescript
+public readonly nlb: NetworkLoadBalancerConfig;
+```
+
+- *Type:* NetworkLoadBalancerConfig
+
+---
+
+##### `acceptanceRequired`Optional
+
+```typescript
+public readonly acceptanceRequired: boolean;
+```
+
+- *Type:* boolean
+
+---
+
+##### `additionalTags`Optional
+
+```typescript
+public readonly additionalTags: {[ key: string ]: string};
+```
+
+- *Type:* {[ key: string ]: string}
+
+---
+
+##### `allowedPrincipals`Optional
+
+```typescript
+public readonly allowedPrincipals: string[];
+```
+
+- *Type:* string[]
+
+---
+
### VPCProps
#### Initializer
@@ -597,7 +2047,9 @@ const vPCProps: VPCProps = { ... }
| vpc | aws-cdk-lib.aws_ec2.VpcProps | *No description.* |
| natEipAllocationIds | string[] | *No description.* |
| peeringConfigs | {[ key: string ]: PeeringConfig} | *No description.* |
+| useNestedStacks | boolean | *No description.* |
| vpcEndpoints | VpcEndpointConfig[] | *No description.* |
+| vpcEndpointServices | VpcEndpontServiceConfig[] | *No description.* |
---
@@ -641,6 +2093,16 @@ public readonly peeringConfigs: {[ key: string ]: PeeringConfig};
---
+##### `useNestedStacks`Optional
+
+```typescript
+public readonly useNestedStacks: boolean;
+```
+
+- *Type:* boolean
+
+---
+
##### `vpcEndpoints`Optional
```typescript
@@ -651,6 +2113,16 @@ public readonly vpcEndpoints: VpcEndpointConfig[];
---
+##### `vpcEndpointServices`Optional
+
+```typescript
+public readonly vpcEndpointServices: VpcEndpontServiceConfig[];
+```
+
+- *Type:* VpcEndpontServiceConfig[]
+
+---
+
## Protocols
@@ -716,6 +2188,7 @@ public readonly routeTableId: string;
| ingressNetworkACL | NetworkACL[] | *No description.* |
| routes | AddRouteOptions[] | *No description.* |
| tags | {[ key: string ]: string} | *No description.* |
+| useNestedStacks | boolean | *No description.* |
| useSubnetForNAT | boolean | *No description.* |
---
@@ -800,6 +2273,16 @@ public readonly tags: {[ key: string ]: string};
---
+##### `useNestedStacks`Optional
+
+```typescript
+public readonly useNestedStacks: boolean;
+```
+
+- *Type:* boolean
+
+---
+
##### `useSubnetForNAT`Optional
```typescript
diff --git a/README.md b/README.md
index 740c776..7cb7d47 100644
--- a/README.md
+++ b/README.md
@@ -293,3 +293,219 @@ Here’s a breakdown of the configuration options available:
4. externalSubnets: Specify external subnets if you need to define subnets manually (each with an id, availabilityZone, and routeTableId).
5. iamPolicyStatements: (Optional) Attach IAM policy statements to control access to the endpoint.
6. additionalTags: (Optional) Add custom tags to the VPC Endpoint for easier identification and tracking.
+
+## Dynamic Routing Strategy
+
+The module automatically chooses the optimal routing strategy based on the number of NAT Gateways to prevent duplicate `0.0.0.0/0` route entries:
+
+### **Single NAT Gateway (≤1 NAT Gateway)**
+- **Strategy**: One route table per subnet group
+- **Benefits**:
+ - **Cost Optimized**: Fewer route tables = lower costs
+ - **Simpler Management**: One route table per subnet group
+ - **No Duplicate Routes**: Single NAT Gateway means no duplicate `0.0.0.0/0` entries
+ - **Suitable for**: Development, testing, small workloads
+- **Configuration**: All subnets in a group share the same route table with one NAT route
+
+### **Multiple NAT Gateways (>1 NAT Gateway)**
+- **Strategy**: One route table per subnet
+- **Benefits**:
+ - **Prevents Duplicate Routes**: Each subnet gets its own route table, avoiding duplicate `0.0.0.0/0` entries
+ - **AZ-Aware Routing**: Each subnet uses NAT Gateway in the same AZ when possible
+ - **High Availability**: Better fault tolerance and load distribution
+ - **Cross-AZ Cost Reduction**: Reduced data transfer costs
+ - **Suitable for**: Production workloads, high availability requirements
+- **Configuration**: Each subnet gets its own route table with one NAT route
+
+### **Why This Strategy?**
+
+AWS route tables don't support duplicate entries for the same destination CIDR (like `0.0.0.0/0`). When you have multiple NAT Gateways:
+
+- **❌ Wrong Approach**: Multiple NAT routes in same route table → `AlreadyExists` error
+- **✅ Correct Approach**: One route table per subnet → Each gets one NAT route
+
+### **Automatic Strategy Selection**
+
+```typescript
+// Single NAT Gateway - Cost Optimized
+new Network(this, 'NETWORK', {
+ vpc: {
+ cidr: '10.10.0.0/16',
+ subnetConfiguration: [],
+ },
+ subnets: [
+ {
+ subnetGroupName: 'NATGateway',
+ subnetType: ec2.SubnetType.PUBLIC,
+ cidrBlock: ['10.10.0.0/28'], // Only one subnet
+ availabilityZones: ['ap-south-1a'], // Only one AZ
+ useSubnetForNAT: true,
+ },
+ {
+ subnetGroupName: 'Private',
+ subnetType: ec2.SubnetType.PRIVATE_WITH_NAT,
+ cidrBlock: ['10.10.5.0/24', '10.10.6.0/24', '10.10.7.0/24'],
+ availabilityZones: ['ap-south-1a', 'ap-south-1b', 'ap-south-1c'],
+ },
+ ],
+});
+
+// Multiple NAT Gateways - Performance Optimized
+new Network(this, 'NETWORK', {
+ vpc: {
+ cidr: '10.10.0.0/16',
+ subnetConfiguration: [],
+ },
+ natEipAllocationIds: [
+ 'eipalloc-1234567890abcdef',
+ 'eipalloc-0987654321fedcba',
+ 'eipalloc-abcdef1234567890',
+ ],
+ subnets: [
+ {
+ subnetGroupName: 'NATGateway',
+ subnetType: ec2.SubnetType.PUBLIC,
+ cidrBlock: ['10.10.0.0/28', '10.10.0.16/28', '10.10.0.32/28'],
+ availabilityZones: ['ap-south-1a', 'ap-south-1b', 'ap-south-1c'],
+ useSubnetForNAT: true,
+ },
+ {
+ subnetGroupName: 'Private',
+ subnetType: ec2.SubnetType.PRIVATE_WITH_NAT,
+ cidrBlock: ['10.10.5.0/24', '10.10.6.0/24', '10.10.7.0/24'],
+ availabilityZones: ['ap-south-1a', 'ap-south-1b', 'ap-south-1c'],
+ },
+ ],
+});
+```
+
+### **CloudFormation Outputs**
+
+The module provides outputs to show which strategy is being used:
+
+- **RoutingStrategy**: Shows "Route Table per Subnet Group" or "Route Table per Subnet"
+- **NATGatewayCount**: Shows the number of NAT Gateways configured
+
+### **Route Table Distribution**
+
+| Scenario | Route Tables | NAT Routes per Table | Strategy |
+|----------|-------------|---------------------|----------|
+| Single NAT | 1 per subnet group | 1 | Cost optimized |
+| Multiple NAT | 1 per subnet | 1 | Performance optimized |
+
+### **Migration Strategy**
+
+You can easily migrate between strategies by changing your configuration:
+
+1. **Development → Production**: Add more NAT Gateway subnets
+2. **Production → Development**: Reduce to single NAT Gateway subnet
+3. **Cost Optimization**: Monitor usage and adjust NAT Gateway count
+
+The module handles the migration automatically without manual route table changes.
+
+## NAT Gateway EIP Allocation
+
+You can specify existing Elastic IP (EIP) allocation IDs to use with your NAT Gateways. This is useful when you want to:
+
+- Use pre-existing EIPs
+- Maintain consistent IP addresses across deployments
+- Control EIP costs and management
+
+### **Using EIP Allocation IDs**
+
+```typescript
+new Network(this, 'NETWORK', {
+ vpc: {
+ cidr: '10.10.0.0/16',
+ subnetConfiguration: [],
+ },
+ // Specify existing EIP allocation IDs
+ natEipAllocationIds: [
+ 'eipalloc-1234567890abcdef', // EIP for NAT Gateway 1
+ 'eipalloc-0987654321fedcba', // EIP for NAT Gateway 2
+ 'eipalloc-abcdef1234567890', // EIP for NAT Gateway 3
+ ],
+ subnets: [
+ {
+ subnetGroupName: 'NATGateway',
+ subnetType: ec2.SubnetType.PUBLIC,
+ cidrBlock: ['10.10.0.0/28', '10.10.0.16/28', '10.10.0.32/28'],
+ availabilityZones: ['ap-south-1a', 'ap-south-1b', 'ap-south-1c'],
+ useSubnetForNAT: true,
+ },
+ {
+ subnetGroupName: 'Private',
+ subnetType: ec2.SubnetType.PRIVATE_WITH_NAT,
+ cidrBlock: ['10.10.5.0/24', '10.10.6.0/24', '10.10.7.0/24'],
+ availabilityZones: ['ap-south-1a', 'ap-south-1b', 'ap-south-1c'],
+ },
+ ],
+});
+```
+
+### **EIP Allocation ID Requirements**
+
+- **Count**: Should match the number of NAT Gateway subnets (optional)
+- **Format**: Must be valid EIP allocation IDs (e.g., `eipalloc-xxxxxxxxx`)
+- **Region**: Must be in the same region as your VPC
+- **Account**: Must be owned by the same AWS account
+
+### **Benefits of Using EIP Allocation IDs**
+
+1. **Cost Control**: Reuse existing EIPs instead of creating new ones
+2. **IP Consistency**: Maintain the same public IP addresses across deployments
+3. **Compliance**: Meet requirements for static IP addresses
+4. **DNS**: Use existing DNS records that point to specific EIPs
+
+### **CloudFormation Outputs**
+
+When EIP allocation IDs are provided, the module outputs:
+
+- **NATEipAllocationIds**: Comma-separated list of EIP allocation IDs used
+- **RoutingStrategy**: Shows the routing strategy being used
+- **NATGatewayCount**: Number of NAT Gateways configured
+
+### **Example Output**
+
+```json
+{
+ "NATEipAllocationIds": "eipalloc-1234567890abcdef,eipalloc-0987654321fedcba,eipalloc-abcdef1234567890",
+ "RoutingStrategy": "Route Table per Subnet",
+ "NATGatewayCount": "3"
+}
+```
+
+### **Creating EIPs for NAT Gateways**
+
+If you need to create EIPs first, you can do so using CDK:
+
+```typescript
+import * as ec2 from 'aws-cdk-lib/aws-ec2';
+
+// Create EIPs
+const eip1 = new ec2.CfnEIP(this, 'NATEip1', {
+ domain: 'vpc',
+});
+
+const eip2 = new ec2.CfnEIP(this, 'NATEip2', {
+ domain: 'vpc',
+});
+
+const eip3 = new ec2.CfnEIP(this, 'NATEip3', {
+ domain: 'vpc',
+});
+
+// Use them in your Network construct
+new Network(this, 'NETWORK', {
+ vpc: {
+ cidr: '10.10.0.0/16',
+ subnetConfiguration: [],
+ },
+ natEipAllocationIds: [
+ eip1.attrAllocationId,
+ eip2.attrAllocationId,
+ eip3.attrAllocationId,
+ ],
+ // ... rest of configuration
+});
+```
diff --git a/package.json b/package.json
index 471336e..9d37d36 100644
--- a/package.json
+++ b/package.json
@@ -41,25 +41,25 @@
"@types/node": "^16 <= 16.18.78",
"@typescript-eslint/eslint-plugin": "^8",
"@typescript-eslint/parser": "^8",
- "aws-cdk-lib": "2.169.0",
+ "aws-cdk-lib": "2.195.0",
"commit-and-tag-version": "^12",
"constructs": "10.0.5",
"eslint": "^9",
"eslint-import-resolver-typescript": "^2.7.1",
- "eslint-plugin-import": "^2.31.0",
+ "eslint-plugin-import": "^2.32.0",
"jest": "^27",
- "jest-junit": "^15",
- "jsii": "~5.6.0",
- "jsii-diff": "^1.106.0",
+ "jest-junit": "^16",
+ "jsii": "~5.9.0",
+ "jsii-diff": "^1.114.1",
"jsii-docgen": "^10.5.0",
- "jsii-pacmak": "^1.106.0",
- "jsii-rosetta": "~5.6.0",
- "projen": "^0.91.3",
+ "jsii-pacmak": "^1.114.1",
+ "jsii-rosetta": "~5.9.0",
+ "projen": "^0.95.6",
"ts-jest": "^27",
"typescript": "^4.9.5"
},
"peerDependencies": {
- "aws-cdk-lib": "^2.169.0",
+ "aws-cdk-lib": "^2.195.0",
"constructs": "^10.0.5"
},
"keywords": [
diff --git a/src/constructs/network.ts b/src/constructs/network.ts
index aa41390..ee24232 100644
--- a/src/constructs/network.ts
+++ b/src/constructs/network.ts
@@ -1,7 +1,10 @@
import { aws_ec2 as ec2, CfnOutput, Tags, aws_iam as iam, Stack } from 'aws-cdk-lib';
import { AwsCustomResource, AwsCustomResourcePolicy, PhysicalResourceId } from 'aws-cdk-lib/custom-resources';
import { Construct } from 'constructs';
+import { SubnetStack } from './subnet-stack';
+import { VpcEndpointServiceNestedStack, VpcEndpontServiceConfig } from './vpc-endpoint-service';
import { ObjToStrMap } from '../utils/common';
+
export interface NetworkACL {
readonly cidr: ec2.AclCidr;
readonly traffic: ec2.AclTraffic;
@@ -47,6 +50,7 @@ export interface AddRouteOptions {
* @stability stable
*/
readonly enablesInternetConnectivity?: boolean;
+ readonly routeName?: string;
}
export interface ISubnetsProps {
readonly subnetGroupName: string;
@@ -58,6 +62,7 @@ export interface ISubnetsProps {
readonly routes?: AddRouteOptions[];
readonly tags?: Record;
readonly useSubnetForNAT?: boolean;
+ readonly useNestedStacks?: boolean;
}
export interface VPCProps {
readonly vpc: ec2.VpcProps;
@@ -65,6 +70,8 @@ export interface VPCProps {
readonly vpcEndpoints?: VpcEndpointConfig[]; // List of VPC endpoints to configure
readonly natEipAllocationIds?: string[];
readonly subnets: ISubnetsProps[];
+ readonly vpcEndpointServices?: VpcEndpontServiceConfig[]; // List of VPC endpoint Service to configure
+ readonly useNestedStacks?: boolean;
}
export interface PeeringConfig {
@@ -77,9 +84,9 @@ export interface PeeringConfig {
export interface PeeringConnectionInternalType {
-/**
-* @jsii ignore
-*/
+ /**
+ * @jsii ignore
+ */
[name: string]: ec2.CfnVPCPeeringConnection;
}
export interface SecurityGroupRule {
@@ -111,10 +118,10 @@ export class Network extends Construct {
public readonly securityGroupOutputs: { [key: string]: ec2.SecurityGroup } = {}; // Store Security Group outputs
public readonly endpointOutputs: { [key: string]: ec2.InterfaceVpcEndpoint | ec2.GatewayVpcEndpoint } = {}; // Store Endpoint outputs
private peeringConnectionIds: PeeringConnectionInternalType = {};
- public readonly natProvider!: ec2.NatProvider;
constructor(scope: Construct, id: string, props: VPCProps) {
super(scope, id);
this.vpc = new ec2.Vpc(this, 'VPC', props.vpc);
+
if (props.peeringConfigs) {
const convertPeeringConfig: Map = ObjToStrMap(props.peeringConfigs);
convertPeeringConfig.forEach((createVpcPeering, key) => {
@@ -132,8 +139,27 @@ export class Network extends Construct {
this.peeringConnectionIds[key] = peeringConnectionIdByKey;
});
}
+
+ const internetGateway = new ec2.CfnInternetGateway(
+ this,
+ 'InternetGateway',
+ {},
+ );
+ new ec2.CfnVPCGatewayAttachment(this, 'VPCGatewayAttachement', {
+ internetGatewayId: internetGateway.ref,
+ vpcId: this.vpc.vpcId,
+ });
+
+ // Initialize NAT provider with EIP allocation IDs if provided
+ const natProvider = props.natEipAllocationIds && props.natEipAllocationIds.length > 0
+ ? ec2.NatProvider.gateway({
+ eipAllocationIds: props.natEipAllocationIds,
+ }) : ec2.NatProvider.gateway();
+
+
+ // First pass: collect all subnets
props.subnets.forEach((subnetProps) => {
- let subnet = this.createSubnet(subnetProps, this.vpc, this.peeringConnectionIds);
+ let subnet = this.createSubnet(subnetProps, this.vpc, this.peeringConnectionIds, props.useNestedStacks);
this.subnets[subnetProps.subnetGroupName] = subnet;
subnet.forEach((sb) => {
if (sb instanceof ec2.PublicSubnet) {
@@ -154,40 +180,43 @@ export class Network extends Construct {
}
});
});
- const internetGateway = new ec2.CfnInternetGateway(
- this,
- 'InternetGateway',
- {},
- );
- const att = new ec2.CfnVPCGatewayAttachment(this, 'VPCGatewayAttachement', {
- internetGatewayId: internetGateway.ref,
- vpcId: this.vpc.vpcId,
- });
- this.pbSubnets.forEach((pb) => {
- pb.addDefaultInternetRoute(internetGateway.ref, att);
- });
- if (this.natSubnets.length > 0) {
- if (props.natEipAllocationIds && this.natSubnets.length != props.natEipAllocationIds?.length) {
- // eslint-disable-next-line max-len
- throw new Error(
- 'natEipAllocationIds and natSubnets length should be equal',
- );
- }
-
- if (props.natEipAllocationIds?.length == this.natSubnets?.length) {
- this.natProvider = ec2.NatProvider.gateway({
- eipAllocationIds: props.natEipAllocationIds,
- });
- } else {
- this.natProvider = ec2.NatProvider.gateway();
- }
- this.natProvider.configureNat({
+ // Configure NAT after collecting all subnets
+ if (this.natSubnets.length > 0) {
+ natProvider.configureNat({
vpc: this.vpc,
natSubnets: this.natSubnets,
privateSubnets: this.pvSubnets,
});
}
+
+ // Determine routing strategy based on number of NAT Gateways
+ const natGatewayCount = this.natSubnets.length;
+ const useSingleRouteTable = natGatewayCount <= 1;
+
+ // Add output to show which strategy is being used
+ new CfnOutput(this, 'RoutingStrategy', {
+ value: useSingleRouteTable ? 'Route Table per Subnet Group' : 'Route Table per Subnet',
+ description: 'Routing strategy based on NAT Gateway count',
+ });
+
+ new CfnOutput(this, 'NATGatewayCount', {
+ value: natGatewayCount.toString(),
+ description: 'Number of NAT Gateways configured',
+ });
+
+ // Add output for EIP allocation IDs if provided
+ if (props.natEipAllocationIds && props.natEipAllocationIds.length > 0) {
+ new CfnOutput(this, 'NATEipAllocationIds', {
+ value: props.natEipAllocationIds.join(','),
+ description: 'EIP allocation IDs used for NAT Gateways',
+ });
+ }
+
+ // this.pbSubnets.forEach((pb) => {
+ // pb.addDefaultInternetRoute(internetGateway.ref, att);
+ // });
+
new CfnOutput(this, 'VpcId', { value: this.vpc.vpcId });
// Add VPC endpoints if specified in the props
if (props?.vpcEndpoints) {
@@ -195,126 +224,153 @@ export class Network extends Construct {
this.addVpcEndpoint(endpointConfig);
}
}
+ if (props?.vpcEndpointServices) {
+ new VpcEndpointServiceNestedStack(this, 'VpcEndpointServices', {
+ vpc: this.vpc,
+ vpcEndpointServiceConfigs: props.vpcEndpointServices,
+ subnets: this.subnets,
+ });
+ }
}
- createSubnet(option: ISubnetsProps, vpc: ec2.Vpc, peeringConnectionId?: PeeringConnectionInternalType) {
- const subnets: ec2.Subnet[] = [];
- const SUBNETTYPE_TAG = 'aws-cdk:subnet-type';
- const SUBNETNAME_TAG = 'aws-cdk:subnet-name';
- const NAME_TAG = 'Name';
- if (option.availabilityZones.length != option.cidrBlock.length) {
- // eslint-disable-next-line max-len
- throw new Error(
- "You cannot reference a Subnet's availability zone if it was not supplied. Add the availabilityZone when importing using option.fromSubnetAttributes()",
- );
- }
+ createSubnet(option: ISubnetsProps, vpc: ec2.Vpc, peeringConnectionId?: PeeringConnectionInternalType, useGlobalNestedStacks?: boolean) {
+ const shouldUseNestedStack = option.useNestedStacks ?? useGlobalNestedStacks ?? false;
+ if (shouldUseNestedStack) {
+ // Create nested stack for this subnet group
+ const subnetStack = new SubnetStack(this, `${option.subnetGroupName}Stack`, {
+ vpc: vpc,
+ subnetGroupName: option.subnetGroupName,
+ subnetType: option.subnetType,
+ cidrBlocks: option.cidrBlock,
+ availabilityZones: option.availabilityZones,
+ ingressNetworkACL: option.ingressNetworkACL,
+ egressNetworkACL: option.egressNetworkACL,
+ routes: option.routes,
+ peeringConnectionId: peeringConnectionId,
+ tags: option.tags,
+ useSubnetForNAT: option.useSubnetForNAT,
+ });
+ // Return the subnets from the nested stack
+ return subnetStack.subnets;
+ } else {
+ const subnets: ec2.Subnet[] = [];
+ const SUBNETTYPE_TAG = 'aws-cdk:subnet-type';
+ const SUBNETNAME_TAG = 'aws-cdk:subnet-name';
+ const NAME_TAG = 'Name';
+ if (option.availabilityZones.length != option.cidrBlock.length) {
+ // eslint-disable-next-line max-len
+ throw new Error(
+ "You cannot reference a Subnet's availability zone if it was not supplied. Add the availabilityZone when importing using option.fromSubnetAttributes()",
+ );
+ }
+
+ option.availabilityZones.forEach((az, index) => {
+ let subnet: ec2.PrivateSubnet | ec2.PublicSubnet =
+ option.subnetType === ec2.SubnetType.PUBLIC
+ ? new ec2.PublicSubnet(
+ this,
+ `${option.subnetGroupName}Subnet${index}`,
+ {
+ availabilityZone: az,
+ cidrBlock: option.cidrBlock[index],
+ vpcId: vpc.vpcId,
+ mapPublicIpOnLaunch: true,
- option.availabilityZones.forEach((az, index) => {
- let subnet: ec2.PrivateSubnet | ec2.PublicSubnet =
- option.subnetType === ec2.SubnetType.PUBLIC
- ? new ec2.PublicSubnet(
- this,
- `${option.subnetGroupName}Subnet${index}`,
- {
- availabilityZone: az,
- cidrBlock: option.cidrBlock[index],
- vpcId: vpc.vpcId,
- mapPublicIpOnLaunch: true,
-
- },
- )
- : new ec2.PrivateSubnet(
- this,
- `${option.subnetGroupName}Subnet${index}`,
- {
- availabilityZone: az,
- cidrBlock: option.cidrBlock[index],
- vpcId: vpc.vpcId,
- mapPublicIpOnLaunch: false,
- },
- );
- option.routes?.forEach((route, routeIndex) => {
- if (peeringConnectionId != undefined && route.existingVpcPeeringRouteKey != undefined) {
- let routeId: ec2.CfnVPCPeeringConnection | undefined = peeringConnectionId[route.existingVpcPeeringRouteKey];
- if (routeId != undefined) {
+ },
+ )
+ : new ec2.PrivateSubnet(
+ this,
+ `${option.subnetGroupName}Subnet${index}`,
+ {
+ availabilityZone: az,
+ cidrBlock: option.cidrBlock[index],
+ vpcId: vpc.vpcId,
+ mapPublicIpOnLaunch: false,
+ },
+ );
+ option.routes?.forEach((route, routeIndex) => {
+ if (peeringConnectionId != undefined && route.existingVpcPeeringRouteKey != undefined) {
+ let routeId: ec2.CfnVPCPeeringConnection | undefined = peeringConnectionId[route.existingVpcPeeringRouteKey];
+ if (routeId != undefined) {
+ subnet.addRoute(
+ `${option.subnetGroupName}${routeIndex}RouteEntry`,
+ {
+ routerId: routeId.ref,
+ routerType: route.routerType,
+ destinationCidrBlock: route.destinationCidrBlock,
+ },
+ );
+ }
+ } else if (route.routerId != undefined) {
subnet.addRoute(
`${option.subnetGroupName}${routeIndex}RouteEntry`,
{
- routerId: routeId.ref,
+ routerId: route.routerId ?? '',
routerType: route.routerType,
destinationCidrBlock: route.destinationCidrBlock,
},
);
}
- } else if (route.routerId != undefined) {
- subnet.addRoute(
- `${option.subnetGroupName}${routeIndex}RouteEntry`,
- {
- routerId: route.routerId ?? '',
- routerType: route.routerType,
- destinationCidrBlock: route.destinationCidrBlock,
- },
- );
- }
- });
- Tags.of(subnet).add(SUBNETNAME_TAG, option.subnetGroupName);
- Tags.of(subnet).add(SUBNETTYPE_TAG, option.subnetType);
- if (option.tags != undefined) {
- const tags: Map = ObjToStrMap(option.tags);
- tags.forEach((v, k) => {
- Tags.of(subnet).add(k, v);
});
- }
- subnets.push(subnet);
- });
- const nacl = new ec2.NetworkAcl(this, `${option.subnetGroupName}NACL`, {
- vpc: vpc,
- subnetSelection: {
- subnets: subnets,
- },
- });
- Tags.of(nacl).add(NAME_TAG, nacl.node.path);
- option.ingressNetworkACL?.forEach((ingressNACL, index) => {
- new ec2.NetworkAclEntry(
- this,
- `${option.subnetGroupName}IngressNACL-${index}`,
- {
- ruleNumber: 100 + index,
- cidr: ingressNACL.cidr,
- networkAcl: nacl,
- traffic: ingressNACL.traffic,
- direction: ec2.TrafficDirection.INGRESS,
- },
- );
- });
- option.egressNetworkACL?.forEach((ingressNACL, index) => {
- new ec2.NetworkAclEntry(
- this,
- `${option.subnetGroupName}EgressNACL-${index}`,
- {
- ruleNumber: 100 + index,
- cidr: ingressNACL.cidr,
- networkAcl: nacl,
- traffic: ingressNACL.traffic,
- direction: ec2.TrafficDirection.EGRESS,
+ Tags.of(subnet).add(SUBNETNAME_TAG, option.subnetGroupName);
+ Tags.of(subnet).add(SUBNETTYPE_TAG, option.subnetType);
+ if (option.tags != undefined) {
+ const tags: Map = ObjToStrMap(option.tags);
+ tags.forEach((v, k) => {
+ Tags.of(subnet).add(k, v);
+ });
+ }
+ subnets.push(subnet);
+ });
+ const nacl = new ec2.NetworkAcl(this, `${option.subnetGroupName}NACL`, {
+ vpc: vpc,
+ subnetSelection: {
+ subnets: subnets,
},
- );
- });
+ });
+ Tags.of(nacl).add(NAME_TAG, nacl.node.path);
+ option.ingressNetworkACL?.forEach((ingressNACL, index) => {
+ new ec2.NetworkAclEntry(
+ this,
+ `${option.subnetGroupName}IngressNACL-${index}`,
+ {
+ ruleNumber: 100 + index,
+ cidr: ingressNACL.cidr,
+ networkAcl: nacl,
+ traffic: ingressNACL.traffic,
+ direction: ec2.TrafficDirection.INGRESS,
+ },
+ );
+ });
+ option.egressNetworkACL?.forEach((ingressNACL, index) => {
+ new ec2.NetworkAclEntry(
+ this,
+ `${option.subnetGroupName}EgressNACL-${index}`,
+ {
+ ruleNumber: 100 + index,
+ cidr: ingressNACL.cidr,
+ networkAcl: nacl,
+ traffic: ingressNACL.traffic,
+ direction: ec2.TrafficDirection.EGRESS,
+ },
+ );
+ });
- new CfnOutput(this, `${option.subnetGroupName}OutPutSubnets`, {
- value: subnets
- .map((subnet) => {
- return subnet.subnetId;
- })
- .join(','),
- description: `${option.subnetGroupName} subnets cross`,
- });
- new CfnOutput(this, `${option.subnetGroupName}OutPutNACL`, {
- value: nacl.networkAclId,
- description: `${option.subnetGroupName} subnets associated this nacl`,
- });
- return subnets;
+ new CfnOutput(this, `${option.subnetGroupName}OutPutSubnets`, {
+ value: subnets
+ .map((subnet) => {
+ return subnet.subnetId;
+ })
+ .join(','),
+ description: `${option.subnetGroupName} subnets cross`,
+ });
+ new CfnOutput(this, `${option.subnetGroupName}OutPutNACL`, {
+ value: nacl.networkAclId,
+ description: `${option.subnetGroupName} subnets associated this nacl`,
+ });
+ return subnets;
+ }
}
// Helper function to add VPC endpoints based on the service and optional subnet and security group configuration
@@ -374,10 +430,10 @@ export class Network extends Construct {
// Helper function to merge subnets based on subnet group names
- private mergeSubnetsByGroupNames(name: string,
+ public mergeSubnetsByGroupNames(name: string,
service: ec2.InterfaceVpcEndpointAwsService | ec2.GatewayVpcEndpointAwsService
- | ec2.InterfaceVpcEndpointService,
- subnetGroupNames: string[], externalSubnets?: IExternalVPEndpointSubnets[] ): ec2.SelectedSubnets {
+ | ec2.InterfaceVpcEndpointService,
+ subnetGroupNames: string[], externalSubnets?: IExternalVPEndpointSubnets[]): ec2.SelectedSubnets {
// Check if subnetGroupNames is required and not empty for Interface VPC Endpoints
if ((service instanceof ec2.InterfaceVpcEndpointAwsService || service instanceof ec2.InterfaceVpcEndpointService) &&
(!subnetGroupNames || subnetGroupNames.length === 0)) {
@@ -430,6 +486,7 @@ export class Network extends Construct {
return sg;
}
+
private applyTagsUsingCustomResource(resourceId: string, resourceType: string, tags: { [key: string]: string }) {
new AwsCustomResource(this, `AddTagsTo${resourceType}`, {
onCreate: {
diff --git a/src/constructs/subnet-stack.ts b/src/constructs/subnet-stack.ts
new file mode 100644
index 0000000..2594fca
--- /dev/null
+++ b/src/constructs/subnet-stack.ts
@@ -0,0 +1,158 @@
+import * as cdk from 'aws-cdk-lib';
+import { Tags } from 'aws-cdk-lib';
+import * as ec2 from 'aws-cdk-lib/aws-ec2';
+import { Construct } from 'constructs';
+import { AddRouteOptions, NetworkACL } from './network';
+import { ObjToStrMap } from '../utils/common';
+
+interface SubnetStackProps extends cdk.NestedStackProps {
+ vpc: ec2.Vpc;
+ subnetGroupName: string;
+ subnetType: ec2.SubnetType;
+ cidrBlocks: string[];
+ availabilityZones: string[];
+ ingressNetworkACL?: NetworkACL[];
+ egressNetworkACL?: NetworkACL[];
+ routes?: AddRouteOptions[];
+ peeringConnectionId?: { [key: string]: ec2.CfnVPCPeeringConnection };
+ tags?: Record;
+ useSubnetForNAT?: boolean;
+ useNestedStacks?: boolean;
+}
+
+export class SubnetStack extends cdk.NestedStack {
+ public readonly subnets: ec2.Subnet[] = [];
+ public readonly nacl: ec2.NetworkAcl;
+
+ constructor(scope: Construct, id: string, props: SubnetStackProps) {
+ super(scope, id, props);
+
+ const SUBNETTYPE_TAG = 'aws-cdk:subnet-type';
+ const SUBNETNAME_TAG = 'aws-cdk:subnet-name';
+ const NAME_TAG = 'Name';
+
+ // Validate input
+ if (props.availabilityZones.length !== props.cidrBlocks.length) {
+ throw new Error(
+ "You cannot reference a Subnet's availability zone if it was not supplied. Add the availabilityZone when importing using option.fromSubnetAttributes()",
+ );
+ }
+
+ // Create subnets
+ props.availabilityZones.forEach((az, index) => {
+ const subnet: ec2.PrivateSubnet | ec2.PublicSubnet =
+ props.subnetType === ec2.SubnetType.PUBLIC
+ ? new ec2.PublicSubnet(
+ this,
+ `${props.subnetGroupName}Subnet${index}`,
+ {
+ availabilityZone: az,
+ cidrBlock: props.cidrBlocks[index],
+ vpcId: props.vpc.vpcId,
+ mapPublicIpOnLaunch: true,
+ },
+ )
+ : new ec2.PrivateSubnet(
+ this,
+ `${props.subnetGroupName}Subnet${index}`,
+ {
+ availabilityZone: az,
+ cidrBlock: props.cidrBlocks[index],
+ vpcId: props.vpc.vpcId,
+ mapPublicIpOnLaunch: false,
+ },
+ );
+
+ // Add tags
+ Tags.of(subnet).add(SUBNETNAME_TAG, props.subnetGroupName);
+ Tags.of(subnet).add(SUBNETTYPE_TAG, props.subnetType);
+
+ if (props.tags) {
+ const tags: Map = ObjToStrMap(props.tags);
+ tags.forEach((v, k) => {
+ Tags.of(subnet).add(k, v);
+ });
+ }
+
+ // Add routes
+ props.routes?.forEach((route) => {
+ const destinationCidr = route.routeName ?? route.destinationCidrBlock?.replace(/[./]/g, '-');
+ if (props.peeringConnectionId && route.existingVpcPeeringRouteKey !== undefined) {
+ const routeId = props.peeringConnectionId[route.existingVpcPeeringRouteKey];
+ if (routeId !== undefined) {
+ subnet.addRoute(
+ `${props.subnetGroupName}-${destinationCidr}-Route`,
+ {
+ routerId: routeId.ref,
+ routerType: route.routerType,
+ destinationCidrBlock: route.destinationCidrBlock,
+ },
+ );
+ }
+ } else if (route.routerId) {
+ subnet.addRoute(
+ `${props.subnetGroupName}-${destinationCidr}-Route`,
+ {
+ routerId: route.routerId,
+ routerType: route.routerType,
+ destinationCidrBlock: route.destinationCidrBlock,
+ },
+ );
+ }
+ });
+ this.subnets.push(subnet);
+ });
+
+ // Create Network ACL
+ this.nacl = new ec2.NetworkAcl(this, `${props.subnetGroupName}NACL`, {
+ vpc: props.vpc,
+ subnetSelection: {
+ subnets: this.subnets,
+ },
+ });
+
+ Tags.of(this.nacl).add(NAME_TAG, this.nacl.node.path);
+
+ // Add NACL entries
+ props.ingressNetworkACL?.forEach((ingressNACL, index) => {
+ new ec2.NetworkAclEntry(
+ this,
+ `${props.subnetGroupName}IngressNACL-${index}`,
+ {
+ ruleNumber: 100 + index,
+ cidr: ingressNACL.cidr,
+ networkAcl: this.nacl,
+ traffic: ingressNACL.traffic,
+ direction: ec2.TrafficDirection.INGRESS,
+ },
+ );
+ });
+
+ props.egressNetworkACL?.forEach((egressNACL, index) => {
+ new ec2.NetworkAclEntry(
+ this,
+ `${props.subnetGroupName}EgressNACL-${index}`,
+ {
+ ruleNumber: 100 + index,
+ cidr: egressNACL.cidr,
+ networkAcl: this.nacl,
+ traffic: egressNACL.traffic,
+ direction: ec2.TrafficDirection.EGRESS,
+ },
+ );
+ });
+
+ // Outputs
+ new cdk.CfnOutput(this, `${props.subnetGroupName}OutputSubnets`, {
+ value: this.subnets
+ .map((subnet) => subnet.subnetId)
+ .join(','),
+ description: `${props.subnetGroupName} subnets`,
+ });
+
+ new cdk.CfnOutput(this, `${props.subnetGroupName}OutputNACL`, {
+ value: this.nacl.networkAclId,
+ description: `${props.subnetGroupName} NACL`,
+ });
+ }
+}
diff --git a/src/constructs/vpc-endpoint-service.ts b/src/constructs/vpc-endpoint-service.ts
new file mode 100644
index 0000000..d3c392f
--- /dev/null
+++ b/src/constructs/vpc-endpoint-service.ts
@@ -0,0 +1,324 @@
+import { NestedStack, NestedStackProps, CfnOutput, Tags, aws_iam as iam, aws_ec2 as ec2 } from 'aws-cdk-lib';
+import * as acm from 'aws-cdk-lib/aws-certificatemanager';
+import * as elbv2 from 'aws-cdk-lib/aws-elasticloadbalancingv2';
+import * as targets from 'aws-cdk-lib/aws-elasticloadbalancingv2-targets';
+import { Construct } from 'constructs';
+import { SecurityGroupRule } from './network';
+
+export interface VpcEndpontServiceConfig {
+ readonly name: string;
+ readonly alb: LoadBalancerConfig;
+ readonly nlb: NetworkLoadBalancerConfig;
+ readonly allowedPrincipals?: string[];
+ readonly acceptanceRequired?: boolean;
+ readonly additionalTags?: { [key: string]: string };
+}
+
+export interface LoadBalancerConfig {
+ readonly existingArn?: string;
+ readonly existingSecurityGroupId?: string;
+ readonly subnetGroupName?: string;
+ readonly internetFacing?: boolean;
+ readonly targetGroups?: TargetGroupConfig[];
+ readonly certificates?: string[];
+ readonly securityGroupRules?: SecurityGroupRule[];
+}
+
+export interface NetworkLoadBalancerConfig {
+ readonly subnetGroupName: string;
+ readonly securityGroupRules: SecurityGroupRule[];
+ readonly existingSecurityGroupId?: string;
+ readonly certificates?: string[];
+ readonly internetFacing?: boolean;
+}
+
+export interface TargetGroupConfig {
+ readonly host: string;
+ readonly applicationPort: number;
+ readonly healthCheckPath?: string;
+ readonly healthCheckProtocol?: elbv2.Protocol;
+ readonly protocolVersion?: elbv2.ApplicationProtocolVersion;
+ readonly protocol?: elbv2.ApplicationProtocol;
+ readonly healthCheckPort?: number;
+ readonly priority?: number;
+}
+
+export interface VpcEndpointServiceNestedStackProps extends NestedStackProps {
+ readonly vpc: ec2.Vpc;
+ readonly vpcEndpointServiceConfigs: VpcEndpontServiceConfig[];
+ readonly subnets: { [key: string]: ec2.Subnet[] };
+}
+
+export class VpcEndpointServiceNestedStack extends NestedStack {
+ constructor(scope: Construct, id: string, props: VpcEndpointServiceNestedStackProps) {
+ super(scope, id, props);
+
+ // Create VPC endpoint services
+ for (const vpcEndpointServiceConfig of props.vpcEndpointServiceConfigs) {
+ this.addVpcEndpointService(vpcEndpointServiceConfig, props.vpc, props.subnets);
+ }
+ }
+
+ private addVpcEndpointService(vpceServiceConfig: VpcEndpontServiceConfig, vpc: ec2.Vpc, subnets: { [key: string]: ec2.Subnet[] }) {
+ const { alb, name, nlb, allowedPrincipals, acceptanceRequired, additionalTags } = vpceServiceConfig;
+ let ALB: elbv2.ApplicationLoadBalancer;
+ let NLB: elbv2.NetworkLoadBalancer;
+ let vpcEndpointService: ec2.VpcEndpointService;
+ let nlbTargetGroups: elbv2.INetworkTargetGroup[] = [];
+ let albListeners: string[];
+ let albListener: elbv2.IApplicationListener;
+ let albOutputArn: string | undefined;
+ let nlbOutputArn: string | undefined;
+
+ // eslint-disable-next-line max-len
+ const albVpcSubnets = alb.subnetGroupName ? this.mergeSubnetsByGroupNames(ec2.InterfaceVpcEndpointService, [alb.subnetGroupName], subnets) : undefined;
+
+ const nlbSecurityGroup = this.createOrExistingSGWithRules('NLB', nlb.existingSecurityGroupId, nlb.securityGroupRules, name, vpc);
+ const albSecurityGroup = this.createOrExistingSGWithRules('ALB', alb.existingSecurityGroupId, alb.securityGroupRules, name, vpc);
+ albSecurityGroup.addIngressRule(nlbSecurityGroup, ec2.Port.HTTPS, 'allowNLBTraffic443');
+ albSecurityGroup.addIngressRule(nlbSecurityGroup, ec2.Port.HTTP, 'allowNLBTraffic80');
+
+ // eslint-disable-next-line max-len
+ const nlbVpcSubnets = nlb.subnetGroupName ? this.mergeSubnetsByGroupNames(ec2.InterfaceVpcEndpointService, [nlb.subnetGroupName], subnets) : undefined;
+
+ if (alb.existingArn == undefined) {
+ ALB = new elbv2.ApplicationLoadBalancer(this, `${name}alb`, {
+ vpc: vpc,
+ internetFacing: alb?.internetFacing ? alb?.internetFacing : false,
+ vpcSubnets: albVpcSubnets,
+ securityGroup: albSecurityGroup,
+ });
+ const nlbTargetGroup = new elbv2.NetworkTargetGroup(this, `NLBTargetGroup${name}`, {
+ port: 443,
+ vpc: vpc,
+ protocol: elbv2.Protocol.TCP,
+ targets: [new targets.AlbArnTarget(ALB.loadBalancerArn, 443)],
+ });
+ nlbTargetGroups.push(nlbTargetGroup);
+ albListener = ALB.addListener(`${name}-443-ALBListener`, {
+ port: 443,
+ certificates: alb.certificates ? alb.certificates.map((certiArn, index) => {
+ return acm.Certificate.fromCertificateArn(this, `${name}-importAlbCert-${index}`, certiArn);
+ }) : undefined,
+ defaultAction: elbv2.ListenerAction.fixedResponse(503, {
+ contentType: 'text/plain',
+ messageBody: 'Service is temporarily unavailable.',
+ }),
+ });
+ ALB.addListener(`${name}-HttpListener`, {
+ port: 80,
+ defaultAction: elbv2.ListenerAction.redirect({
+ port: '443',
+ protocol: elbv2.ApplicationProtocol.HTTPS,
+ permanent: true,
+ }),
+ });
+ albOutputArn = ALB.loadBalancerArn;
+ } else {
+ const nlbTargetGroup = new elbv2.NetworkTargetGroup(this, `NLBTargetGroup${name}`, {
+ port: 443,
+ vpc: vpc,
+ protocol: elbv2.Protocol.TCP,
+ targets: [new targets.AlbArnTarget(alb.existingArn, 443)],
+ });
+ nlbTargetGroups.push(nlbTargetGroup);
+ albListeners = this.getLoadBalancerListener(alb.existingArn, true, name);
+ albOutputArn = alb.existingArn;
+ }
+
+ NLB = new elbv2.NetworkLoadBalancer(this, `${name}nlb`, {
+ vpc: vpc,
+ vpcSubnets: nlbVpcSubnets,
+ internetFacing: nlb.internetFacing ? nlb.internetFacing : false,
+ securityGroups: [nlbSecurityGroup!],
+ });
+
+ if (nlb.certificates != undefined) {
+ const certificates: acm.ICertificate[] = nlb.certificates.map((certiArn, index) => {
+ return acm.Certificate.fromCertificateArn(this, `${name}-importNlbCert-${index}`, certiArn);
+ });
+ NLB.addListener(`${name}NLB443Listener`, {
+ port: 443,
+ certificates,
+ protocol: elbv2.Protocol.HTTPS,
+ defaultTargetGroups: nlbTargetGroups,
+ });
+ NLB.addListener(`${name}NLB80Listener`, {
+ port: 80,
+ protocol: elbv2.Protocol.HTTP,
+ defaultTargetGroups: nlbTargetGroups,
+ });
+ } else {
+ NLB.addListener(`${name}NLB443Listener`, {
+ port: 443,
+ protocol: elbv2.Protocol.TCP,
+ defaultTargetGroups: nlbTargetGroups,
+ });
+ NLB.addListener(`${name}NLB80Listener`, {
+ port: 80,
+ protocol: elbv2.Protocol.TCP,
+ defaultTargetGroups: nlbTargetGroups,
+ });
+ }
+
+ vpcEndpointService = new ec2.VpcEndpointService(this, `${name}EndpointService`, {
+ vpcEndpointServiceLoadBalancers: [NLB],
+ acceptanceRequired: acceptanceRequired,
+ allowedPrincipals: allowedPrincipals?.map((principal) => new iam.ArnPrincipal(principal)),
+ contributorInsights: false,
+ });
+ nlbOutputArn = NLB.loadBalancerArn;
+ this.createVPCEndpointServiceOutputs(vpcEndpointService, name, nlbOutputArn, albOutputArn);
+
+ if (additionalTags) {
+ Tags.of(vpcEndpointService).add('Name', name);
+ Object.entries(additionalTags).forEach(([key, value]) => {
+ Tags.of(vpcEndpointService).add(key, value);
+ });
+ }
+
+ if (alb.targetGroups) {
+ alb.targetGroups.forEach((tgConfig, index) => {
+ const albTargetGroup = new elbv2.ApplicationTargetGroup(this, `${name}-AlbTargetGroup-${index}`, {
+ vpc: vpc,
+ protocolVersion: tgConfig.protocolVersion ? tgConfig.protocolVersion : elbv2.ApplicationProtocolVersion.HTTP1,
+ protocol: tgConfig.protocol ? tgConfig.protocol : elbv2.ApplicationProtocol.HTTP,
+ targetType: elbv2.TargetType.IP,
+ port: tgConfig.applicationPort,
+ healthCheck: {
+ path: tgConfig.healthCheckPath,
+ protocol: tgConfig.healthCheckProtocol ? tgConfig.healthCheckProtocol : elbv2.Protocol.HTTP,
+ port: tgConfig.healthCheckPort ? `${tgConfig.healthCheckPort}` : `${tgConfig.applicationPort}`,
+ },
+ });
+ if (alb.existingArn) {
+ new elbv2.CfnListenerRule(this, `${name}-http-rule-${index}`, {
+ listenerArn: albListeners[0],
+ actions: [
+ {
+ type: 'forward',
+ targetGroupArn: albTargetGroup.targetGroupArn,
+ },
+ ],
+ conditions: [
+ {
+ field: 'host-header',
+ hostHeaderConfig: {
+ values: [tgConfig.host],
+ },
+ },
+ ],
+ priority: tgConfig.priority ? tgConfig.priority : (index + 1),
+ });
+ } else {
+ if (albListener != undefined) {
+ albListener.addAction(`${name}-albAction-${index}`, {
+ conditions: [
+ elbv2.ListenerCondition.hostHeaders([tgConfig.host]),
+ ],
+ action: elbv2.ListenerAction.forward([albTargetGroup]),
+ priority: tgConfig.priority ? tgConfig.priority : (index + 1),
+ });
+ }
+ }
+ });
+ }
+ }
+
+ private createVPCEndpointServiceOutputs(
+ vpcEndpointService: ec2.VpcEndpointService,
+ name: string,
+ nlb?: string,
+ alb?: string,
+ ) {
+ new CfnOutput(this, `${name}VpcEndpointServiceName`, {
+ value: vpcEndpointService.vpcEndpointServiceName,
+ description: 'The name of the VPC Endpoint Service.',
+ });
+ if (alb != undefined) {
+ new CfnOutput(this, `${name}AlbArn`, {
+ value: alb,
+ description: 'The ALB ARN of the Application Load Balancer.',
+ });
+ }
+
+ if (nlb != undefined) {
+ new CfnOutput(this, `${name}NlbArn`, {
+ value: nlb,
+ description: 'The NLB ARN of the Network Load Balancer.',
+ });
+ }
+ }
+
+ private getLoadBalancerListener(loadBalancerArn: string, sslEnabled: boolean, name: string) {
+ const listeners = [];
+
+ if (!sslEnabled) {
+ listeners.push(elbv2.ApplicationListener.fromLookup(this, name + '-listener-http', {
+ loadBalancerArn: loadBalancerArn,
+ listenerProtocol: elbv2.ApplicationProtocol.HTTP,
+ }).listenerArn);
+ }
+
+ if (sslEnabled) {
+ listeners.push(elbv2.ApplicationListener.fromLookup(this, name + '-listener-https', {
+ loadBalancerArn: loadBalancerArn,
+ listenerProtocol: elbv2.ApplicationProtocol.HTTPS,
+ }).listenerArn);
+ }
+ return listeners;
+ }
+
+
+ private createOrExistingSGWithRules(type: string, sgId?: string, rules?: SecurityGroupRule[], name?: string, vpc?: ec2.Vpc): ec2.SecurityGroup {
+ const sg = sgId ? ec2.SecurityGroup.fromSecurityGroupId(
+ this,
+ `${name}${type}ExistingSecurityGroup`,
+ sgId,
+ ) as ec2.SecurityGroup
+ : new ec2.SecurityGroup(this, `${name}-${type}-sg`, {
+ vpc: vpc!,
+ securityGroupName: `${name}-${type}-sg`,
+ description: `Custom security group for ${name}`,
+ allowAllOutbound: true, // Allow all outbound traffic by default
+ });
+ Tags.of(sg).add('Name', `${name}-${type}-sg`);
+ // If rules are provided, add each rule to the security group
+ if (rules) {
+ for (const rule of rules) {
+ sg.addIngressRule(rule.peer, rule.port, rule.description);
+ }
+ }
+
+ return sg;
+ }
+
+ // Helper function to merge subnets based on subnet group names
+ private mergeSubnetsByGroupNames(
+ service: ec2.InterfaceVpcEndpointAwsService | ec2.GatewayVpcEndpointAwsService
+ | ec2.InterfaceVpcEndpointService,
+ subnetGroupNames: string[], subnets: { [key: string]: ec2.Subnet[] }): ec2.SelectedSubnets {
+ // Check if subnetGroupNames is required and not empty for Interface VPC Endpoints
+ if ((service instanceof ec2.InterfaceVpcEndpointAwsService || service instanceof ec2.InterfaceVpcEndpointService) &&
+ (!subnetGroupNames || subnetGroupNames.length === 0)) {
+ throw new Error('subnetGroupNames must contain at least one subnet group name for Interface VPC Endpoints.');
+ }
+
+ // Initialize an array to hold all the subnets
+ let mergedSubnets: ec2.ISubnet[] = [];
+
+ // Iterate over each subnet group name and select the subnets
+ for (const groupName of subnetGroupNames) {
+ const selectedSubnets = subnets[groupName];
+ if (selectedSubnets) {
+ mergedSubnets = mergedSubnets.concat(selectedSubnets); // Merge the subnets
+ }
+ }
+
+ // Return the merged subnets as a SelectedSubnets object
+ return {
+ subnets: mergedSubnets,
+ availabilityZones: [...new Set(mergedSubnets.map(subnet => subnet.availabilityZone))], // Deduplicate AZs
+ } as ec2.SelectedSubnets;
+ }
+}
\ No newline at end of file
diff --git a/src/index.ts b/src/index.ts
index 3734472..98987c3 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1 +1,2 @@
-export * from './constructs/network';
\ No newline at end of file
+export * from './constructs/network';
+export * from './constructs/vpc-endpoint-service';
\ No newline at end of file
diff --git a/tsconfig.dev.json b/tsconfig.dev.json
index 0274489..9852f98 100644
--- a/tsconfig.dev.json
+++ b/tsconfig.dev.json
@@ -8,7 +8,7 @@
"inlineSourceMap": true,
"inlineSources": true,
"lib": [
- "es2019"
+ "es2020"
],
"module": "CommonJS",
"noEmitOnError": false,
@@ -23,7 +23,7 @@
"strictNullChecks": true,
"strictPropertyInitialization": true,
"stripInternal": true,
- "target": "ES2019"
+ "target": "ES2020"
},
"include": [
"src/**/*.ts",
diff --git a/yarn.lock b/yarn.lock
index 25055eb..8596dd7 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,145 +2,148 @@
# yarn lockfile v1
-"@ampproject/remapping@^2.2.0":
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
- integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
+"@asamuzakjp/css-color@^3.2.0":
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/@asamuzakjp/css-color/-/css-color-3.2.0.tgz#cc42f5b85c593f79f1fa4f25d2b9b321e61d1794"
+ integrity sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==
dependencies:
- "@jridgewell/gen-mapping" "^0.3.5"
- "@jridgewell/trace-mapping" "^0.3.24"
+ "@csstools/css-calc" "^2.1.3"
+ "@csstools/css-color-parser" "^3.0.9"
+ "@csstools/css-parser-algorithms" "^3.0.4"
+ "@csstools/css-tokenizer" "^3.0.3"
+ lru-cache "^10.4.3"
-"@aws-cdk/asset-awscli-v1@^2.2.208":
- version "2.2.215"
- resolved "https://registry.yarnpkg.com/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.215.tgz#430a39a597d79f6652192f3cee2700faa2b60dd9"
- integrity sha512-D+Jzwpl+zlBGjJf7nuRcz6JFNwqDQ+IzwIq0VSC4LMRRvrkhGE/ZE+zab3EnjmVkipcQqtQe+PVKefgmxETbvA==
-
-"@aws-cdk/asset-kubectl-v20@^2.1.3":
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.3.tgz#80e09004be173995e91614e34d947da11dd9ff4d"
- integrity sha512-cDG1w3ieM6eOT9mTefRuTypk95+oyD7P5X/wRltwmYxU7nZc3+076YEVS6vrjDKr3ADYbfn0lDKpfB1FBtO9CQ==
+"@aws-cdk/asset-awscli-v1@^2.2.229":
+ version "2.2.250"
+ resolved "https://registry.yarnpkg.com/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.250.tgz#9d397fd2ddddee685d5adb8e319cdca2e3eb531c"
+ integrity sha512-OWprXv59KZQxPOV3UsZUZ1MGF/xFTvBr2nWoz+CSnQV84kxnLnwj3wIfAqqVTnELla3tA7mjPXWwK6Fvm0te9w==
"@aws-cdk/asset-node-proxy-agent-v6@^2.1.0":
version "2.1.0"
resolved "https://registry.yarnpkg.com/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.1.0.tgz#6d3c7860354d4856a7e75375f2f0ecab313b4989"
integrity sha512-7bY3J8GCVxLupn/kNmpPc5VJz8grx+4RKfnnJiO1LG+uxkZfANZG3RMHhE+qQxxwkyQ9/MfPtTpf748UhR425A==
-"@aws-cdk/cloud-assembly-schema@^38.0.1":
- version "38.0.1"
- resolved "https://registry.yarnpkg.com/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-38.0.1.tgz#cdf4684ae8778459e039cd44082ea644a3504ca9"
- integrity sha512-KvPe+NMWAulfNVwY7jenFhzhuLhLqJ/OPy5jx7wUstbjnYnjRVLpUHPU3yCjXFE0J8cuJVdx95BJ4rOs66Pi9w==
+"@aws-cdk/cloud-assembly-schema@^41.2.0":
+ version "41.2.0"
+ resolved "https://registry.yarnpkg.com/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-41.2.0.tgz#c1ef513e1cc0528dbc05948ae39d5631306af423"
+ integrity sha512-JaulVS6z9y5+u4jNmoWbHZRs9uGOnmn/ktXygNWKNu1k6lF3ad4so3s18eRu15XCbUIomxN9WPYT6Ehh7hzONw==
dependencies:
- jsonschema "^1.4.1"
- semver "^7.6.3"
+ jsonschema "~1.4.1"
+ semver "^7.7.1"
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.26.2":
- version "7.26.2"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85"
- integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.27.1":
+ version "7.27.1"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be"
+ integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==
dependencies:
- "@babel/helper-validator-identifier" "^7.25.9"
+ "@babel/helper-validator-identifier" "^7.27.1"
js-tokens "^4.0.0"
- picocolors "^1.0.0"
+ picocolors "^1.1.1"
-"@babel/compat-data@^7.25.9":
- version "7.26.3"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.3.tgz#99488264a56b2aded63983abd6a417f03b92ed02"
- integrity sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==
+"@babel/compat-data@^7.27.2":
+ version "7.28.4"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.4.tgz#96fdf1af1b8859c8474ab39c295312bfb7c24b04"
+ integrity sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==
"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0":
- version "7.26.0"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.0.tgz#d78b6023cc8f3114ccf049eb219613f74a747b40"
- integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==
- dependencies:
- "@ampproject/remapping" "^2.2.0"
- "@babel/code-frame" "^7.26.0"
- "@babel/generator" "^7.26.0"
- "@babel/helper-compilation-targets" "^7.25.9"
- "@babel/helper-module-transforms" "^7.26.0"
- "@babel/helpers" "^7.26.0"
- "@babel/parser" "^7.26.0"
- "@babel/template" "^7.25.9"
- "@babel/traverse" "^7.25.9"
- "@babel/types" "^7.26.0"
+ version "7.28.4"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.4.tgz#12a550b8794452df4c8b084f95003bce1742d496"
+ integrity sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==
+ dependencies:
+ "@babel/code-frame" "^7.27.1"
+ "@babel/generator" "^7.28.3"
+ "@babel/helper-compilation-targets" "^7.27.2"
+ "@babel/helper-module-transforms" "^7.28.3"
+ "@babel/helpers" "^7.28.4"
+ "@babel/parser" "^7.28.4"
+ "@babel/template" "^7.27.2"
+ "@babel/traverse" "^7.28.4"
+ "@babel/types" "^7.28.4"
+ "@jridgewell/remapping" "^2.3.5"
convert-source-map "^2.0.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
json5 "^2.2.3"
semver "^6.3.1"
-"@babel/generator@^7.26.0", "@babel/generator@^7.26.3", "@babel/generator@^7.7.2":
- version "7.26.3"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.3.tgz#ab8d4360544a425c90c248df7059881f4b2ce019"
- integrity sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==
+"@babel/generator@^7.28.3", "@babel/generator@^7.7.2":
+ version "7.28.3"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.3.tgz#9626c1741c650cbac39121694a0f2d7451b8ef3e"
+ integrity sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==
dependencies:
- "@babel/parser" "^7.26.3"
- "@babel/types" "^7.26.3"
- "@jridgewell/gen-mapping" "^0.3.5"
- "@jridgewell/trace-mapping" "^0.3.25"
+ "@babel/parser" "^7.28.3"
+ "@babel/types" "^7.28.2"
+ "@jridgewell/gen-mapping" "^0.3.12"
+ "@jridgewell/trace-mapping" "^0.3.28"
jsesc "^3.0.2"
-"@babel/helper-compilation-targets@^7.25.9":
- version "7.25.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz#55af025ce365be3cdc0c1c1e56c6af617ce88875"
- integrity sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==
+"@babel/helper-compilation-targets@^7.27.2":
+ version "7.27.2"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d"
+ integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==
dependencies:
- "@babel/compat-data" "^7.25.9"
- "@babel/helper-validator-option" "^7.25.9"
+ "@babel/compat-data" "^7.27.2"
+ "@babel/helper-validator-option" "^7.27.1"
browserslist "^4.24.0"
lru-cache "^5.1.1"
semver "^6.3.1"
-"@babel/helper-module-imports@^7.25.9":
- version "7.25.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715"
- integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==
+"@babel/helper-globals@^7.28.0":
+ version "7.28.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674"
+ integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==
+
+"@babel/helper-module-imports@^7.27.1":
+ version "7.27.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204"
+ integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==
dependencies:
- "@babel/traverse" "^7.25.9"
- "@babel/types" "^7.25.9"
+ "@babel/traverse" "^7.27.1"
+ "@babel/types" "^7.27.1"
-"@babel/helper-module-transforms@^7.26.0":
- version "7.26.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae"
- integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==
+"@babel/helper-module-transforms@^7.28.3":
+ version "7.28.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz#a2b37d3da3b2344fe085dab234426f2b9a2fa5f6"
+ integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==
dependencies:
- "@babel/helper-module-imports" "^7.25.9"
- "@babel/helper-validator-identifier" "^7.25.9"
- "@babel/traverse" "^7.25.9"
+ "@babel/helper-module-imports" "^7.27.1"
+ "@babel/helper-validator-identifier" "^7.27.1"
+ "@babel/traverse" "^7.28.3"
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.8.0":
- version "7.25.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz#9cbdd63a9443a2c92a725cca7ebca12cc8dd9f46"
- integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.8.0":
+ version "7.27.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c"
+ integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==
-"@babel/helper-string-parser@^7.25.9":
- version "7.25.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c"
- integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==
+"@babel/helper-string-parser@^7.27.1":
+ version "7.27.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687"
+ integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==
-"@babel/helper-validator-identifier@^7.25.9":
- version "7.25.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7"
- integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==
+"@babel/helper-validator-identifier@^7.27.1":
+ version "7.27.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8"
+ integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==
-"@babel/helper-validator-option@^7.25.9":
- version "7.25.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72"
- integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==
+"@babel/helper-validator-option@^7.27.1":
+ version "7.27.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f"
+ integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==
-"@babel/helpers@^7.26.0":
- version "7.26.0"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.0.tgz#30e621f1eba5aa45fe6f4868d2e9154d884119a4"
- integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==
+"@babel/helpers@^7.28.4":
+ version "7.28.4"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.4.tgz#fe07274742e95bdf7cf1443593eeb8926ab63827"
+ integrity sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==
dependencies:
- "@babel/template" "^7.25.9"
- "@babel/types" "^7.26.0"
+ "@babel/template" "^7.27.2"
+ "@babel/types" "^7.28.4"
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.3":
- version "7.26.3"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.3.tgz#8c51c5db6ddf08134af1ddbacf16aaab48bac234"
- integrity sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.27.2", "@babel/parser@^7.28.3", "@babel/parser@^7.28.4":
+ version "7.28.4"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.4.tgz#da25d4643532890932cc03f7705fe19637e03fa8"
+ integrity sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==
dependencies:
- "@babel/types" "^7.26.3"
+ "@babel/types" "^7.28.4"
"@babel/plugin-syntax-async-generators@^7.8.4":
version "7.8.4"
@@ -171,11 +174,11 @@
"@babel/helper-plugin-utils" "^7.14.5"
"@babel/plugin-syntax-import-attributes@^7.24.7":
- version "7.26.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7"
- integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==
+ version "7.27.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz#34c017d54496f9b11b61474e7ea3dfd5563ffe07"
+ integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==
dependencies:
- "@babel/helper-plugin-utils" "^7.25.9"
+ "@babel/helper-plugin-utils" "^7.27.1"
"@babel/plugin-syntax-import-meta@^7.10.4":
version "7.10.4"
@@ -248,41 +251,41 @@
"@babel/helper-plugin-utils" "^7.14.5"
"@babel/plugin-syntax-typescript@^7.7.2":
- version "7.25.9"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399"
- integrity sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.25.9"
-
-"@babel/template@^7.25.9", "@babel/template@^7.3.3":
- version "7.25.9"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016"
- integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==
- dependencies:
- "@babel/code-frame" "^7.25.9"
- "@babel/parser" "^7.25.9"
- "@babel/types" "^7.25.9"
-
-"@babel/traverse@^7.25.9", "@babel/traverse@^7.7.2":
- version "7.26.4"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.4.tgz#ac3a2a84b908dde6d463c3bfa2c5fdc1653574bd"
- integrity sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==
- dependencies:
- "@babel/code-frame" "^7.26.2"
- "@babel/generator" "^7.26.3"
- "@babel/parser" "^7.26.3"
- "@babel/template" "^7.25.9"
- "@babel/types" "^7.26.3"
+ version "7.27.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz#5147d29066a793450f220c63fa3a9431b7e6dd18"
+ integrity sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.27.1"
+
+"@babel/template@^7.27.2", "@babel/template@^7.3.3":
+ version "7.27.2"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d"
+ integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==
+ dependencies:
+ "@babel/code-frame" "^7.27.1"
+ "@babel/parser" "^7.27.2"
+ "@babel/types" "^7.27.1"
+
+"@babel/traverse@^7.27.1", "@babel/traverse@^7.28.3", "@babel/traverse@^7.28.4", "@babel/traverse@^7.7.2":
+ version "7.28.4"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.4.tgz#8d456101b96ab175d487249f60680221692b958b"
+ integrity sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==
+ dependencies:
+ "@babel/code-frame" "^7.27.1"
+ "@babel/generator" "^7.28.3"
+ "@babel/helper-globals" "^7.28.0"
+ "@babel/parser" "^7.28.4"
+ "@babel/template" "^7.27.2"
+ "@babel/types" "^7.28.4"
debug "^4.3.1"
- globals "^11.1.0"
-"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.3", "@babel/types@^7.3.0", "@babel/types@^7.3.3":
- version "7.26.3"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.3.tgz#37e79830f04c2b5687acc77db97fbc75fb81f3c0"
- integrity sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==
+"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.3.3":
+ version "7.28.4"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.4.tgz#0a4e618f4c60a7cd6c11cb2d48060e4dbe38ac3a"
+ integrity sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==
dependencies:
- "@babel/helper-string-parser" "^7.25.9"
- "@babel/helper-validator-identifier" "^7.25.9"
+ "@babel/helper-string-parser" "^7.27.1"
+ "@babel/helper-validator-identifier" "^7.27.1"
"@balena/dockerignore@^1.0.2":
version "1.0.2"
@@ -294,10 +297,38 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56"
- integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==
+"@csstools/color-helpers@^5.1.0":
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.1.0.tgz#106c54c808cabfd1ab4c602d8505ee584c2996ef"
+ integrity sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==
+
+"@csstools/css-calc@^2.1.3", "@csstools/css-calc@^2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.4.tgz#8473f63e2fcd6e459838dd412401d5948f224c65"
+ integrity sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==
+
+"@csstools/css-color-parser@^3.0.9":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz#4e386af3a99dd36c46fef013cfe4c1c341eed6f0"
+ integrity sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==
+ dependencies:
+ "@csstools/color-helpers" "^5.1.0"
+ "@csstools/css-calc" "^2.1.4"
+
+"@csstools/css-parser-algorithms@^3.0.4":
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz#5755370a9a29abaec5515b43c8b3f2cf9c2e3076"
+ integrity sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==
+
+"@csstools/css-tokenizer@^3.0.3":
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz#333fedabc3fd1a8e5d0100013731cf19e6a8c5d3"
+ integrity sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==
+
+"@eslint-community/eslint-utils@^4.7.0", "@eslint-community/eslint-utils@^4.8.0":
+ version "4.9.0"
+ resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz#7308df158e064f0dd8b8fdb58aa14fa2a7f913b3"
+ integrity sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==
dependencies:
eslint-visitor-keys "^3.4.3"
@@ -306,26 +337,31 @@
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
-"@eslint/config-array@^0.19.0":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.1.tgz#734aaea2c40be22bbb1f2a9dac687c57a6a4c984"
- integrity sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==
+"@eslint/config-array@^0.21.0":
+ version "0.21.0"
+ resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.0.tgz#abdbcbd16b124c638081766392a4d6b509f72636"
+ integrity sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==
dependencies:
- "@eslint/object-schema" "^2.1.5"
+ "@eslint/object-schema" "^2.1.6"
debug "^4.3.1"
minimatch "^3.1.2"
-"@eslint/core@^0.9.0":
- version "0.9.1"
- resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.9.1.tgz#31763847308ef6b7084a4505573ac9402c51f9d1"
- integrity sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==
+"@eslint/config-helpers@^0.3.1":
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.3.1.tgz#d316e47905bd0a1a931fa50e669b9af4104d1617"
+ integrity sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==
+
+"@eslint/core@^0.15.2":
+ version "0.15.2"
+ resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.15.2.tgz#59386327d7862cc3603ebc7c78159d2dcc4a868f"
+ integrity sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==
dependencies:
"@types/json-schema" "^7.0.15"
-"@eslint/eslintrc@^3.2.0":
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.2.0.tgz#57470ac4e2e283a6bf76044d63281196e370542c"
- integrity sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==
+"@eslint/eslintrc@^3.3.1":
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.1.tgz#e55f7f1dd400600dd066dbba349c4c0bac916964"
+ integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==
dependencies:
ajv "^6.12.4"
debug "^4.3.2"
@@ -337,21 +373,22 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
-"@eslint/js@9.17.0":
- version "9.17.0"
- resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.17.0.tgz#1523e586791f80376a6f8398a3964455ecc651ec"
- integrity sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==
+"@eslint/js@9.35.0":
+ version "9.35.0"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.35.0.tgz#ffbc7e13cf1204db18552e9cd9d4a8e17c692d07"
+ integrity sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==
-"@eslint/object-schema@^2.1.5":
- version "2.1.5"
- resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.5.tgz#8670a8f6258a2be5b2c620ff314a1d984c23eb2e"
- integrity sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==
+"@eslint/object-schema@^2.1.6":
+ version "2.1.6"
+ resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.6.tgz#58369ab5b5b3ca117880c0f6c0b0f32f6950f24f"
+ integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==
-"@eslint/plugin-kit@^0.2.3":
- version "0.2.4"
- resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz#2b78e7bb3755784bb13faa8932a1d994d6537792"
- integrity sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==
+"@eslint/plugin-kit@^0.3.5":
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz#fd8764f0ee79c8ddab4da65460c641cefee017c5"
+ integrity sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==
dependencies:
+ "@eslint/core" "^0.15.2"
levn "^0.4.1"
"@humanfs/core@^0.19.1":
@@ -360,27 +397,22 @@
integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==
"@humanfs/node@^0.16.6":
- version "0.16.6"
- resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e"
- integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.7.tgz#822cb7b3a12c5a240a24f621b5a2413e27a45f26"
+ integrity sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==
dependencies:
"@humanfs/core" "^0.19.1"
- "@humanwhocodes/retry" "^0.3.0"
+ "@humanwhocodes/retry" "^0.4.0"
"@humanwhocodes/module-importer@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
-"@humanwhocodes/retry@^0.3.0":
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a"
- integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==
-
-"@humanwhocodes/retry@^0.4.1":
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.1.tgz#9a96ce501bc62df46c4031fbd970e3cc6b10f07b"
- integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==
+"@humanwhocodes/retry@^0.4.0", "@humanwhocodes/retry@^0.4.2":
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba"
+ integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==
"@hutson/parse-repository-url@^3.0.0":
version "3.0.2"
@@ -577,13 +609,20 @@
"@types/yargs" "^16.0.0"
chalk "^4.0.0"
-"@jridgewell/gen-mapping@^0.3.5":
- version "0.3.8"
- resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142"
- integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==
+"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5":
+ version "0.3.13"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f"
+ integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==
+ dependencies:
+ "@jridgewell/sourcemap-codec" "^1.5.0"
+ "@jridgewell/trace-mapping" "^0.3.24"
+
+"@jridgewell/remapping@^2.3.5":
+ version "2.3.5"
+ resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1"
+ integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==
dependencies:
- "@jridgewell/set-array" "^1.2.1"
- "@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/gen-mapping" "^0.3.5"
"@jridgewell/trace-mapping" "^0.3.24"
"@jridgewell/resolve-uri@^3.1.0":
@@ -591,44 +630,39 @@
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
-"@jridgewell/set-array@^1.2.1":
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
- integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
-
-"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a"
- integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
+"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0":
+ version "1.5.5"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba"
+ integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==
-"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
- version "0.3.25"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
- integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
+"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.28":
+ version "0.3.30"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz#4a76c4daeee5df09f5d3940e087442fb36ce2b99"
+ integrity sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==
dependencies:
"@jridgewell/resolve-uri" "^3.1.0"
"@jridgewell/sourcemap-codec" "^1.4.14"
-"@jsii/check-node@1.105.0":
- version "1.105.0"
- resolved "https://registry.yarnpkg.com/@jsii/check-node/-/check-node-1.105.0.tgz#92ffea17d1497ddf9b104088d65a363bbf9d2b64"
- integrity sha512-7QIzioc9//TwRjLhGMllcTBfIvJ0h6OeGVUEYdXB1DpCNtMbr8Xcj5KaeKHRAF9iRjB1d0IGzKm4A8fRUzIf+Q==
+"@jsii/check-node@1.113.0":
+ version "1.113.0"
+ resolved "https://registry.yarnpkg.com/@jsii/check-node/-/check-node-1.113.0.tgz#13075880ea626ba8738ee3a220fa6d83fe710091"
+ integrity sha512-6iPLiQiSVn8/D89ycIpj78cMfmxOIU/F9RUTVYwLqKPw4cxpR+BCC4N83WKyGkZxhOxULLa9f5q+rkWq/vAMpA==
dependencies:
chalk "^4.1.2"
- semver "^7.6.3"
+ semver "^7.7.2"
-"@jsii/check-node@1.106.0":
- version "1.106.0"
- resolved "https://registry.yarnpkg.com/@jsii/check-node/-/check-node-1.106.0.tgz#5deb20b0bbe0a506c4bd9edf60b17b0a93f83834"
- integrity sha512-/T/TUsbHdEbZRFR4Rem9+UXVvgMYncEkrIeC52oIHJ8BDSgqlDsIARio/Eu5DOftF4avSLV/sshR6n19mpK1oA==
+"@jsii/check-node@1.114.1":
+ version "1.114.1"
+ resolved "https://registry.yarnpkg.com/@jsii/check-node/-/check-node-1.114.1.tgz#9ff05988721cdee3d295b80a131e10e449e0571d"
+ integrity sha512-SE9H1xBo4D+y259zRWqbrUnWVzCzxZh8ek2G1u5P+wP1n86GcgU+vz8uhJfGagdWFwW1EMW6t4PkPvbYoQG0yw==
dependencies:
chalk "^4.1.2"
- semver "^7.6.3"
+ semver "^7.7.2"
-"@jsii/spec@^1.105.0", "@jsii/spec@^1.106.0":
- version "1.106.0"
- resolved "https://registry.yarnpkg.com/@jsii/spec/-/spec-1.106.0.tgz#f40010ec8cde14b7a003dd5b6a46480d9d7e222f"
- integrity sha512-pAIvqEGf0YLmtzFtUKWNEGkCmXMHENy7k+rzCD147wnM4jHhvEL1mEvxi99aA2VcmvLYaAYNOs/XozT+s+kLqQ==
+"@jsii/spec@1.114.1", "@jsii/spec@^1.113.0":
+ version "1.114.1"
+ resolved "https://registry.yarnpkg.com/@jsii/spec/-/spec-1.114.1.tgz#9c064d57f062d913bcfda25b5496bdf4c9c95c46"
+ integrity sha512-SdjVQaNqLkTUK+2R0/t/MnM/NBvv1vzqxO5sn1nnoFD5Wlih8TFOIjl+Q8npzYmOtN+et3D+BMVYrxmVfq4X0w==
dependencies:
ajv "^8.17.1"
@@ -702,9 +736,9 @@
"@sinonjs/commons" "^1.7.0"
"@stylistic/eslint-plugin@^2":
- version "2.12.1"
- resolved "https://registry.yarnpkg.com/@stylistic/eslint-plugin/-/eslint-plugin-2.12.1.tgz#e341beb4e4315084d8be20bceeeda7d8a46f079f"
- integrity sha512-fubZKIHSPuo07FgRTn6S4Nl0uXPRPYVNpyZzIDGfp7Fny6JjNus6kReLD7NI380JXi4HtUTSOZ34LBuNPO1XLQ==
+ version "2.13.0"
+ resolved "https://registry.yarnpkg.com/@stylistic/eslint-plugin/-/eslint-plugin-2.13.0.tgz#53bf175dac8c1ec055b370a6ff77d491cae9a70d"
+ integrity sha512-RnO1SaiCFHn666wNz2QfZEFxvmiNRqhzaMXHXxXXKt+MEP7aajlPxUSMIQpKAaJfverpovEYqjBOXDq6dDcaOQ==
dependencies:
"@typescript-eslint/utils" "^8.13.0"
eslint-visitor-keys "^4.2.0"
@@ -729,9 +763,9 @@
"@types/babel__traverse" "*"
"@types/babel__generator@*":
- version "7.6.8"
- resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab"
- integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==
+ version "7.27.0"
+ resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9"
+ integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==
dependencies:
"@babel/types" "^7.0.0"
@@ -744,16 +778,16 @@
"@babel/types" "^7.0.0"
"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309"
- integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==
+ version "7.28.0"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz#07d713d6cce0d265c9849db0cbe62d3f61f36f74"
+ integrity sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==
dependencies:
- "@babel/types" "^7.3.0"
+ "@babel/types" "^7.28.2"
"@types/estree@^1.0.6":
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
- integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e"
+ integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==
"@types/graceful-fs@^4.1.2":
version "4.1.9"
@@ -805,11 +839,11 @@
integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==
"@types/node@*":
- version "22.10.2"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.2.tgz#a485426e6d1fdafc7b0d4c7b24e2c78182ddabb9"
- integrity sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==
+ version "24.3.1"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-24.3.1.tgz#b0a3fb2afed0ef98e8d7f06d46ef6349047709f3"
+ integrity sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==
dependencies:
- undici-types "~6.20.0"
+ undici-types "~7.10.0"
"@types/node@^16 <= 16.18.78":
version "16.18.78"
@@ -822,9 +856,9 @@
integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==
"@types/prettier@^2.1.5":
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.0.tgz#efcbd41937f9ae7434c714ab698604822d890759"
- integrity sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw==
+ version "2.7.3"
+ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f"
+ integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==
"@types/stack-utils@^2.0.0":
version "2.0.3"
@@ -844,90 +878,107 @@
"@types/yargs-parser" "*"
"@typescript-eslint/eslint-plugin@^8":
- version "8.18.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.1.tgz#992e5ac1553ce20d0d46aa6eccd79dc36dedc805"
- integrity sha512-Ncvsq5CT3Gvh+uJG0Lwlho6suwDfUXH0HztslDf5I+F2wAFAZMRwYLEorumpKLzmO2suAXZ/td1tBg4NZIi9CQ==
+ version "8.42.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.42.0.tgz#2172d0496c42eee8c7294b6661681100953fa88f"
+ integrity sha512-Aq2dPqsQkxHOLfb2OPv43RnIvfj05nw8v/6n3B2NABIPpHnjQnaLo9QGMTvml+tv4korl/Cjfrb/BYhoL8UUTQ==
dependencies:
"@eslint-community/regexpp" "^4.10.0"
- "@typescript-eslint/scope-manager" "8.18.1"
- "@typescript-eslint/type-utils" "8.18.1"
- "@typescript-eslint/utils" "8.18.1"
- "@typescript-eslint/visitor-keys" "8.18.1"
+ "@typescript-eslint/scope-manager" "8.42.0"
+ "@typescript-eslint/type-utils" "8.42.0"
+ "@typescript-eslint/utils" "8.42.0"
+ "@typescript-eslint/visitor-keys" "8.42.0"
graphemer "^1.4.0"
- ignore "^5.3.1"
+ ignore "^7.0.0"
natural-compare "^1.4.0"
- ts-api-utils "^1.3.0"
+ ts-api-utils "^2.1.0"
"@typescript-eslint/parser@^8":
- version "8.18.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.18.1.tgz#c258bae062778b7696793bc492249027a39dfb95"
- integrity sha512-rBnTWHCdbYM2lh7hjyXqxk70wvon3p2FyaniZuey5TrcGBpfhVp0OxOa6gxr9Q9YhZFKyfbEnxc24ZnVbbUkCA==
- dependencies:
- "@typescript-eslint/scope-manager" "8.18.1"
- "@typescript-eslint/types" "8.18.1"
- "@typescript-eslint/typescript-estree" "8.18.1"
- "@typescript-eslint/visitor-keys" "8.18.1"
+ version "8.42.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.42.0.tgz#20ea66f4867981fb5bb62cbe1454250fc4a440ab"
+ integrity sha512-r1XG74QgShUgXph1BYseJ+KZd17bKQib/yF3SR+demvytiRXrwd12Blnz5eYGm8tXaeRdd4x88MlfwldHoudGg==
+ dependencies:
+ "@typescript-eslint/scope-manager" "8.42.0"
+ "@typescript-eslint/types" "8.42.0"
+ "@typescript-eslint/typescript-estree" "8.42.0"
+ "@typescript-eslint/visitor-keys" "8.42.0"
debug "^4.3.4"
-"@typescript-eslint/scope-manager@8.18.1":
- version "8.18.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.18.1.tgz#52cedc3a8178d7464a70beffed3203678648e55b"
- integrity sha512-HxfHo2b090M5s2+/9Z3gkBhI6xBH8OJCFjH9MhQ+nnoZqxU3wNxkLT+VWXWSFWc3UF3Z+CfPAyqdCTdoXtDPCQ==
+"@typescript-eslint/project-service@8.42.0":
+ version "8.42.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.42.0.tgz#636eb3418b6c42c98554dce884943708bf41a583"
+ integrity sha512-vfVpLHAhbPjilrabtOSNcUDmBboQNrJUiNAGoImkZKnMjs2TIcWG33s4Ds0wY3/50aZmTMqJa6PiwkwezaAklg==
dependencies:
- "@typescript-eslint/types" "8.18.1"
- "@typescript-eslint/visitor-keys" "8.18.1"
+ "@typescript-eslint/tsconfig-utils" "^8.42.0"
+ "@typescript-eslint/types" "^8.42.0"
+ debug "^4.3.4"
-"@typescript-eslint/type-utils@8.18.1":
- version "8.18.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.18.1.tgz#10f41285475c0bdee452b79ff7223f0e43a7781e"
- integrity sha512-jAhTdK/Qx2NJPNOTxXpMwlOiSymtR2j283TtPqXkKBdH8OAMmhiUfP0kJjc/qSE51Xrq02Gj9NY7MwK+UxVwHQ==
+"@typescript-eslint/scope-manager@8.42.0":
+ version "8.42.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.42.0.tgz#36016757bc85b46ea42bae47b61f9421eddedde3"
+ integrity sha512-51+x9o78NBAVgQzOPd17DkNTnIzJ8T/O2dmMBLoK9qbY0Gm52XJcdJcCl18ExBMiHo6jPMErUQWUv5RLE51zJw==
dependencies:
- "@typescript-eslint/typescript-estree" "8.18.1"
- "@typescript-eslint/utils" "8.18.1"
- debug "^4.3.4"
- ts-api-utils "^1.3.0"
+ "@typescript-eslint/types" "8.42.0"
+ "@typescript-eslint/visitor-keys" "8.42.0"
-"@typescript-eslint/types@8.18.1":
- version "8.18.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.18.1.tgz#d7f4f94d0bba9ebd088de840266fcd45408a8fff"
- integrity sha512-7uoAUsCj66qdNQNpH2G8MyTFlgerum8ubf21s3TSM3XmKXuIn+H2Sifh/ES2nPOPiYSRJWAk0fDkW0APBWcpfw==
+"@typescript-eslint/tsconfig-utils@8.42.0", "@typescript-eslint/tsconfig-utils@^8.42.0":
+ version "8.42.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.42.0.tgz#21a3e74396fd7443ff930bc41b27789ba7e9236e"
+ integrity sha512-kHeFUOdwAJfUmYKjR3CLgZSglGHjbNTi1H8sTYRYV2xX6eNz4RyJ2LIgsDLKf8Yi0/GL1WZAC/DgZBeBft8QAQ==
-"@typescript-eslint/typescript-estree@8.18.1":
- version "8.18.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.1.tgz#2a86cd64b211a742f78dfa7e6f4860413475367e"
- integrity sha512-z8U21WI5txzl2XYOW7i9hJhxoKKNG1kcU4RzyNvKrdZDmbjkmLBo8bgeiOJmA06kizLI76/CCBAAGlTlEeUfyg==
+"@typescript-eslint/type-utils@8.42.0":
+ version "8.42.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.42.0.tgz#d6733e7a9fbdf5af60c09c6038dffde13f4e4253"
+ integrity sha512-9KChw92sbPTYVFw3JLRH1ockhyR3zqqn9lQXol3/YbI6jVxzWoGcT3AsAW0mu1MY0gYtsXnUGV/AKpkAj5tVlQ==
dependencies:
- "@typescript-eslint/types" "8.18.1"
- "@typescript-eslint/visitor-keys" "8.18.1"
+ "@typescript-eslint/types" "8.42.0"
+ "@typescript-eslint/typescript-estree" "8.42.0"
+ "@typescript-eslint/utils" "8.42.0"
+ debug "^4.3.4"
+ ts-api-utils "^2.1.0"
+
+"@typescript-eslint/types@8.42.0", "@typescript-eslint/types@^8.42.0":
+ version "8.42.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.42.0.tgz#ae15c09cebda20473772902033328e87372db008"
+ integrity sha512-LdtAWMiFmbRLNP7JNeY0SqEtJvGMYSzfiWBSmx+VSZ1CH+1zyl8Mmw1TT39OrtsRvIYShjJWzTDMPWZJCpwBlw==
+
+"@typescript-eslint/typescript-estree@8.42.0":
+ version "8.42.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.42.0.tgz#593c3af87d4462252c0d7239d1720b84a1b56864"
+ integrity sha512-ku/uYtT4QXY8sl9EDJETD27o3Ewdi72hcXg1ah/kkUgBvAYHLwj2ofswFFNXS+FL5G+AGkxBtvGt8pFBHKlHsQ==
+ dependencies:
+ "@typescript-eslint/project-service" "8.42.0"
+ "@typescript-eslint/tsconfig-utils" "8.42.0"
+ "@typescript-eslint/types" "8.42.0"
+ "@typescript-eslint/visitor-keys" "8.42.0"
debug "^4.3.4"
fast-glob "^3.3.2"
is-glob "^4.0.3"
minimatch "^9.0.4"
semver "^7.6.0"
- ts-api-utils "^1.3.0"
+ ts-api-utils "^2.1.0"
-"@typescript-eslint/utils@8.18.1", "@typescript-eslint/utils@^8.13.0":
- version "8.18.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.18.1.tgz#c4199ea23fc823c736e2c96fd07b1f7235fa92d5"
- integrity sha512-8vikiIj2ebrC4WRdcAdDcmnu9Q/MXXwg+STf40BVfT8exDqBCUPdypvzcUPxEqRGKg9ALagZ0UWcYCtn+4W2iQ==
+"@typescript-eslint/utils@8.42.0", "@typescript-eslint/utils@^8.13.0":
+ version "8.42.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.42.0.tgz#95f8e0c697ff2f7da5f72e16135011f878d815c0"
+ integrity sha512-JnIzu7H3RH5BrKC4NoZqRfmjqCIS1u3hGZltDYJgkVdqAezl4L9d1ZLw+36huCujtSBSAirGINF/S4UxOcR+/g==
dependencies:
- "@eslint-community/eslint-utils" "^4.4.0"
- "@typescript-eslint/scope-manager" "8.18.1"
- "@typescript-eslint/types" "8.18.1"
- "@typescript-eslint/typescript-estree" "8.18.1"
+ "@eslint-community/eslint-utils" "^4.7.0"
+ "@typescript-eslint/scope-manager" "8.42.0"
+ "@typescript-eslint/types" "8.42.0"
+ "@typescript-eslint/typescript-estree" "8.42.0"
-"@typescript-eslint/visitor-keys@8.18.1":
- version "8.18.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.1.tgz#344b4f6bc83f104f514676facf3129260df7610a"
- integrity sha512-Vj0WLm5/ZsD013YeUKn+K0y8p1M0jPpxOkKdbD1wB0ns53a5piVY02zjf072TblEweAbcYiFiPoSMF3kp+VhhQ==
+"@typescript-eslint/visitor-keys@8.42.0":
+ version "8.42.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.42.0.tgz#87c6caaa1ac307bc73a87c1fc469f88f0162f27e"
+ integrity sha512-3WbiuzoEowaEn8RSnhJBrxSwX8ULYE9CXaPepS2C2W3NSA5NNIvBaslpBSBElPq0UGr0xVJlXFWOAKIkyylydQ==
dependencies:
- "@typescript-eslint/types" "8.18.1"
- eslint-visitor-keys "^4.2.0"
+ "@typescript-eslint/types" "8.42.0"
+ eslint-visitor-keys "^4.2.1"
-"@xmldom/xmldom@^0.9.6":
- version "0.9.6"
- resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.9.6.tgz#3eaefb585c1f920e06fb35e6dcb8d505445621c0"
- integrity sha512-Su4xcxR0CPGwlDHNmVP09fqET9YxbyDXHaSob6JlBH7L6reTYaeim6zbk9o08UarO0L5GTRo3uzl0D+9lSxmvw==
+"@xmldom/xmldom@^0.9.8":
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.9.8.tgz#1471e82bdff9e8f20ee8bbe60d4ffa8a516e78d8"
+ integrity sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==
JSONStream@^1.3.5:
version "1.3.5"
@@ -965,10 +1016,10 @@ acorn@^7.1.1:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
-acorn@^8.14.0, acorn@^8.2.4:
- version "8.14.0"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
- integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
+acorn@^8.15.0, acorn@^8.2.4:
+ version "8.15.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816"
+ integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==
add-stream@^1.0.0:
version "1.0.0"
@@ -983,9 +1034,9 @@ agent-base@6:
debug "4"
agent-base@^7.1.0, agent-base@^7.1.2:
- version "7.1.3"
- resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.3.tgz#29435eb821bc4194633a5b89e5bc4703bafc25a1"
- integrity sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==
+ version "7.1.4"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz#e3cd76d4c548ee895d3c3fd8dc1f6c5b9032e7a8"
+ integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==
ajv@^6.12.4:
version "6.12.6"
@@ -1058,7 +1109,7 @@ argparse@^2.0.1:
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
-array-buffer-byte-length@^1.0.1:
+array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz#384d12a37295aec3769ab022ad323a18a51ccf8b"
integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==
@@ -1071,36 +1122,39 @@ array-ify@^1.0.0:
resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece"
integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==
-array-includes@^3.1.8:
- version "3.1.8"
- resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d"
- integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==
+array-includes@^3.1.9:
+ version "3.1.9"
+ resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.9.tgz#1f0ccaa08e90cdbc3eb433210f903ad0f17c3f3a"
+ integrity sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==
dependencies:
- call-bind "^1.0.7"
+ call-bind "^1.0.8"
+ call-bound "^1.0.4"
define-properties "^1.2.1"
- es-abstract "^1.23.2"
- es-object-atoms "^1.0.0"
- get-intrinsic "^1.2.4"
- is-string "^1.0.7"
+ es-abstract "^1.24.0"
+ es-object-atoms "^1.1.1"
+ get-intrinsic "^1.3.0"
+ is-string "^1.1.1"
+ math-intrinsics "^1.1.0"
array-timsort@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/array-timsort/-/array-timsort-1.0.3.tgz#3c9e4199e54fb2b9c3fe5976396a21614ef0d926"
integrity sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==
-array.prototype.findlastindex@^1.2.5:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d"
- integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==
+array.prototype.findlastindex@^1.2.6:
+ version "1.2.6"
+ resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz#cfa1065c81dcb64e34557c9b81d012f6a421c564"
+ integrity sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==
dependencies:
- call-bind "^1.0.7"
+ call-bind "^1.0.8"
+ call-bound "^1.0.4"
define-properties "^1.2.1"
- es-abstract "^1.23.2"
+ es-abstract "^1.23.9"
es-errors "^1.3.0"
- es-object-atoms "^1.0.0"
- es-shim-unscopables "^1.0.2"
+ es-object-atoms "^1.1.1"
+ es-shim-unscopables "^1.1.0"
-array.prototype.flat@^1.3.2:
+array.prototype.flat@^1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz#534aaf9e6e8dd79fb6b9a9917f839ef1ec63afe5"
integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==
@@ -1110,7 +1164,7 @@ array.prototype.flat@^1.3.2:
es-abstract "^1.23.5"
es-shim-unscopables "^1.0.2"
-array.prototype.flatmap@^1.3.2:
+array.prototype.flatmap@^1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz#712cc792ae70370ae40586264629e33aab5dd38b"
integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==
@@ -1143,6 +1197,11 @@ astral-regex@^2.0.0:
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
+async-function@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b"
+ integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==
+
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -1155,25 +1214,24 @@ available-typed-arrays@^1.0.7:
dependencies:
possible-typed-array-names "^1.0.0"
-aws-cdk-lib@2.169.0:
- version "2.169.0"
- resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.169.0.tgz#555e5adf078ef5816070d5a822586044fcd1337f"
- integrity sha512-JBwXMZNkXLCyIJmyK6HcA5UDaYYmJhQ0+ZmE10uTgNTqo/7lZpXYyQYES0SWGM4XrR18lFcH73RmHSAaoEyQhw==
+aws-cdk-lib@2.195.0:
+ version "2.195.0"
+ resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.195.0.tgz#0d4881f1aadcf4bc5da4a51bc2c20a1fd7e8bdde"
+ integrity sha512-AYLysgSjSnSjkal/AmR86DqvOVqy0VjeWmXR+ucIIGSOzJsevsYuNWCeVnf4v9x+vd2ysVcO8fXndG426vGZ/w==
dependencies:
- "@aws-cdk/asset-awscli-v1" "^2.2.208"
- "@aws-cdk/asset-kubectl-v20" "^2.1.3"
+ "@aws-cdk/asset-awscli-v1" "^2.2.229"
"@aws-cdk/asset-node-proxy-agent-v6" "^2.1.0"
- "@aws-cdk/cloud-assembly-schema" "^38.0.1"
+ "@aws-cdk/cloud-assembly-schema" "^41.2.0"
"@balena/dockerignore" "^1.0.2"
case "1.6.3"
- fs-extra "^11.2.0"
+ fs-extra "^11.3.0"
ignore "^5.3.2"
- jsonschema "^1.4.1"
+ jsonschema "^1.5.0"
mime-types "^2.1.35"
minimatch "^3.1.2"
punycode "^2.3.1"
- semver "^7.6.3"
- table "^6.8.2"
+ semver "^7.7.1"
+ table "^6.9.0"
yaml "1.10.2"
babel-jest@^27.5.1:
@@ -1212,9 +1270,9 @@ babel-plugin-jest-hoist@^27.5.1:
"@types/babel__traverse" "^7.0.6"
babel-preset-current-node-syntax@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz#9a929eafece419612ef4ae4f60b1862ebad8ef30"
- integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz#20730d6cdc7dda5d89401cab10ac6a32067acde6"
+ integrity sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==
dependencies:
"@babel/plugin-syntax-async-generators" "^7.8.4"
"@babel/plugin-syntax-bigint" "^7.8.3"
@@ -1246,17 +1304,17 @@ balanced-match@^1.0.0:
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
brace-expansion@^1.1.7:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
- integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ version "1.1.12"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843"
+ integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
brace-expansion@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
- integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7"
+ integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==
dependencies:
balanced-match "^1.0.0"
@@ -1273,14 +1331,14 @@ browser-process-hrtime@^1.0.0:
integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
browserslist@^4.24.0:
- version "4.24.3"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.3.tgz#5fc2725ca8fb3c1432e13dac278c7cc103e026d2"
- integrity sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==
+ version "4.25.4"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.25.4.tgz#ebdd0e1d1cf3911834bab3a6cd7b917d9babf5af"
+ integrity sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==
dependencies:
- caniuse-lite "^1.0.30001688"
- electron-to-chromium "^1.5.73"
+ caniuse-lite "^1.0.30001737"
+ electron-to-chromium "^1.5.211"
node-releases "^2.0.19"
- update-browserslist-db "^1.1.1"
+ update-browserslist-db "^1.1.3"
bs-logger@0.x:
version "0.2.6"
@@ -1301,10 +1359,10 @@ buffer-from@^1.0.0:
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
-call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz#32e5892e6361b29b0b545ba6f7763378daca2840"
- integrity sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==
+call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
+ integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
dependencies:
es-errors "^1.3.0"
function-bind "^1.1.2"
@@ -1319,13 +1377,13 @@ call-bind@^1.0.7, call-bind@^1.0.8:
get-intrinsic "^1.2.4"
set-function-length "^1.2.2"
-call-bound@^1.0.2, call-bound@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.3.tgz#41cfd032b593e39176a71533ab4f384aa04fd681"
- integrity sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==
+call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a"
+ integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==
dependencies:
- call-bind-apply-helpers "^1.0.1"
- get-intrinsic "^1.2.6"
+ call-bind-apply-helpers "^1.0.2"
+ get-intrinsic "^1.3.0"
callsites@^3.0.0:
version "3.1.0"
@@ -1351,10 +1409,10 @@ camelcase@^6.2.0, camelcase@^6.3.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-caniuse-lite@^1.0.30001688:
- version "1.0.30001690"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz#f2d15e3aaf8e18f76b2b8c1481abde063b8104c8"
- integrity sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==
+caniuse-lite@^1.0.30001737:
+ version "1.0.30001741"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001741.tgz#67fb92953edc536442f3c9da74320774aa523143"
+ integrity sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==
case@1.6.3, case@^1.6.3:
version "1.6.3"
@@ -1389,9 +1447,9 @@ ci-info@^3.2.0:
integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
cjs-module-lexer@^1.0.0:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz#707413784dbb3a72aa11c2f2b042a0bef4004170"
- integrity sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz#0f79731eb8cfe1ec72acd4066efac9d61991b00d"
+ integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==
cliui@^7.0.2:
version "7.0.4"
@@ -1421,10 +1479,10 @@ co@^4.6.0:
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
-codemaker@^1.106.0:
- version "1.106.0"
- resolved "https://registry.yarnpkg.com/codemaker/-/codemaker-1.106.0.tgz#c696de48847e7758731b72d89264e972eaceb4d0"
- integrity sha512-1aLNQCF/3DVxXol6eRqoLZnYulAwWPGq8BMF8pMZu+CaNkR7c0T5otMcbAXcskRLChiFt+BjVWS3JPVeBOHD4w==
+codemaker@^1.114.1:
+ version "1.114.1"
+ resolved "https://registry.yarnpkg.com/codemaker/-/codemaker-1.114.1.tgz#16c043d6eab1770806a0de6de807e6f56dbe305f"
+ integrity sha512-X3KgS+Jof8gi3mIVnuyDrQX/g4loOlIHpwyladoSWLxv8B+nIdnGOd2TFNtxOlNGCGyuy2RY5+nASBziLiwu9w==
dependencies:
camelcase "^6.3.0"
decamelize "^5.0.1"
@@ -1478,25 +1536,25 @@ comment-json@4.2.2:
repeat-string "^1.6.1"
commit-and-tag-version@^12:
- version "12.5.0"
- resolved "https://registry.yarnpkg.com/commit-and-tag-version/-/commit-and-tag-version-12.5.0.tgz#fcfd5db2d70c76cb1f40defb44b8c8d687af273b"
- integrity sha512-Ll7rkKntH20iEFOPUT4e503Jf3J0J8jSN+aSeHuvNdtv4xmv9kSLSBg2CWsMVihwF3J2WvMHBEUSCKuDNesiTA==
+ version "12.6.0"
+ resolved "https://registry.yarnpkg.com/commit-and-tag-version/-/commit-and-tag-version-12.6.0.tgz#3d80302463742cce09460c85779f43d878868576"
+ integrity sha512-/x9+InrMz4G0GzDh1/ddrCsq4SKxRPS3vO5ShhZFG9EEr0GCZ3IrQPFpnBEgnIzm1XqwbkMYpIxFml7HuVs6mQ==
dependencies:
chalk "^2.4.2"
conventional-changelog "4.0.0"
conventional-changelog-config-spec "2.1.0"
conventional-changelog-conventionalcommits "6.1.0"
conventional-recommended-bump "7.0.1"
- detect-indent "^6.0.0"
+ detect-indent "^6.1.0"
detect-newline "^3.1.0"
dotgitignore "^2.1.0"
- figures "^3.1.0"
+ figures "^3.2.0"
find-up "^5.0.0"
- git-semver-tags "^5.0.0"
- jsdom "^25.0.0"
- semver "^7.6.3"
+ git-semver-tags "^5.0.1"
+ jsdom "^25.0.1"
+ semver "^7.7.2"
w3c-xmlserializer "^5.0.0"
- yaml "^2.4.1"
+ yaml "^2.6.0"
yargs "^17.7.2"
commonmark@^0.31.2:
@@ -1695,6 +1753,17 @@ core-util-is@^1.0.3, core-util-is@~1.0.0:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+cross-spawn@^6.0.0:
+ version "6.0.6"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.6.tgz#30d0efa0712ddb7eb5a76e1e8721bffafa6b5d57"
+ integrity sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==
+ dependencies:
+ nice-try "^1.0.4"
+ path-key "^2.0.1"
+ semver "^5.5.0"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
cross-spawn@^7.0.3, cross-spawn@^7.0.6:
version "7.0.6"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
@@ -1722,11 +1791,12 @@ cssstyle@^2.3.0:
cssom "~0.3.6"
cssstyle@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-4.1.0.tgz#161faee382af1bafadb6d3867a92a19bcb4aea70"
- integrity sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-4.6.0.tgz#ea18007024e3167f4f105315f3ec2d982bf48ed9"
+ integrity sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==
dependencies:
- rrweb-cssom "^0.7.1"
+ "@asamuzakjp/css-color" "^3.2.0"
+ rrweb-cssom "^0.8.0"
dargs@^7.0.0:
version "7.0.0"
@@ -1750,7 +1820,7 @@ data-urls@^5.0.0:
whatwg-mimetype "^4.0.0"
whatwg-url "^14.0.0"
-data-view-buffer@^1.0.1:
+data-view-buffer@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz#211a03ba95ecaf7798a8c7198d79536211f88570"
integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==
@@ -1759,7 +1829,7 @@ data-view-buffer@^1.0.1:
es-errors "^1.3.0"
is-data-view "^1.0.2"
-data-view-byte-length@^1.0.1:
+data-view-byte-length@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz#9e80f7ca52453ce3e93d25a35318767ea7704735"
integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==
@@ -1768,7 +1838,7 @@ data-view-byte-length@^1.0.1:
es-errors "^1.3.0"
is-data-view "^1.0.2"
-data-view-byte-offset@^1.0.0:
+data-view-byte-offset@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz#068307f9b71ab76dbbe10291389e020856606191"
integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==
@@ -1788,9 +1858,9 @@ dateformat@^3.0.3:
integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a"
- integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b"
+ integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==
dependencies:
ms "^2.1.3"
@@ -1820,9 +1890,9 @@ decamelize@^5.0.1:
integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==
decimal.js@^10.2.1, decimal.js@^10.4.3:
- version "10.4.3"
- resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23"
- integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==
+ version "10.6.0"
+ resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.6.0.tgz#e649a43e3ab953a72192ff5983865e509f37ed9a"
+ integrity sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==
dedent@^0.7.0:
version "0.7.0"
@@ -1867,7 +1937,7 @@ detect-indent@^5.0.0:
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==
-detect-indent@^6.0.0:
+detect-indent@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6"
integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==
@@ -1925,10 +1995,10 @@ dunder-proto@^1.0.0, dunder-proto@^1.0.1:
es-errors "^1.3.0"
gopd "^1.2.0"
-electron-to-chromium@^1.5.73:
- version "1.5.75"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.75.tgz#bba96eabf0e8ca36324679caa38b982800acc87d"
- integrity sha512-Lf3++DumRE/QmweGjU+ZcKqQ+3bKkU/qjaKYhIJKEOhgIO9Xs6IiAQFkfFoj+RhgDk4LUeNsLo6plExHqSyu6Q==
+electron-to-chromium@^1.5.211:
+ version "1.5.214"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.214.tgz#f7bbdc0796124292d4b8a34a49e968c5e6430763"
+ integrity sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q==
emittery@^0.8.1:
version "0.8.1"
@@ -1940,10 +2010,17 @@ emoji-regex@^8.0.0:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
-entities@^4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
- integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
+end-of-stream@^1.1.0:
+ version "1.4.5"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c"
+ integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==
+ dependencies:
+ once "^1.4.0"
+
+entities@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.1.tgz#c28c34a43379ca7f61d074130b2f5f7020a30694"
+ integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==
entities@~3.0.1:
version "3.0.1"
@@ -1957,27 +2034,28 @@ error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
-es-abstract@^1.23.2, es-abstract@^1.23.5, es-abstract@^1.23.6:
- version "1.23.6"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.6.tgz#55f0e1ce7128995cc04ace0a57d7dca348345108"
- integrity sha512-Ifco6n3yj2tMZDWNLyloZrytt9lqqlwvS83P3HtaETR0NUOYnIULGGHpktqYGObGy+8wc1okO25p8TjemhImvA==
+es-abstract@^1.23.2, es-abstract@^1.23.5, es-abstract@^1.23.9, es-abstract@^1.24.0:
+ version "1.24.0"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.24.0.tgz#c44732d2beb0acc1ed60df840869e3106e7af328"
+ integrity sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==
dependencies:
- array-buffer-byte-length "^1.0.1"
+ array-buffer-byte-length "^1.0.2"
arraybuffer.prototype.slice "^1.0.4"
available-typed-arrays "^1.0.7"
call-bind "^1.0.8"
- call-bound "^1.0.3"
- data-view-buffer "^1.0.1"
- data-view-byte-length "^1.0.1"
- data-view-byte-offset "^1.0.0"
+ call-bound "^1.0.4"
+ data-view-buffer "^1.0.2"
+ data-view-byte-length "^1.0.2"
+ data-view-byte-offset "^1.0.1"
es-define-property "^1.0.1"
es-errors "^1.3.0"
- es-object-atoms "^1.0.0"
- es-set-tostringtag "^2.0.3"
+ es-object-atoms "^1.1.1"
+ es-set-tostringtag "^2.1.0"
es-to-primitive "^1.3.0"
- function.prototype.name "^1.1.7"
- get-intrinsic "^1.2.6"
- get-symbol-description "^1.0.2"
+ function.prototype.name "^1.1.8"
+ get-intrinsic "^1.3.0"
+ get-proto "^1.0.1"
+ get-symbol-description "^1.1.0"
globalthis "^1.0.4"
gopd "^1.2.0"
has-property-descriptors "^1.0.2"
@@ -1985,31 +2063,36 @@ es-abstract@^1.23.2, es-abstract@^1.23.5, es-abstract@^1.23.6:
has-symbols "^1.1.0"
hasown "^2.0.2"
internal-slot "^1.1.0"
- is-array-buffer "^3.0.4"
+ is-array-buffer "^3.0.5"
is-callable "^1.2.7"
is-data-view "^1.0.2"
is-negative-zero "^2.0.3"
is-regex "^1.2.1"
- is-shared-array-buffer "^1.0.3"
+ is-set "^2.0.3"
+ is-shared-array-buffer "^1.0.4"
is-string "^1.1.1"
- is-typed-array "^1.1.13"
- is-weakref "^1.1.0"
- math-intrinsics "^1.0.0"
- object-inspect "^1.13.3"
+ is-typed-array "^1.1.15"
+ is-weakref "^1.1.1"
+ math-intrinsics "^1.1.0"
+ object-inspect "^1.13.4"
object-keys "^1.1.1"
- object.assign "^4.1.5"
- regexp.prototype.flags "^1.5.3"
+ object.assign "^4.1.7"
+ own-keys "^1.0.1"
+ regexp.prototype.flags "^1.5.4"
safe-array-concat "^1.1.3"
+ safe-push-apply "^1.0.0"
safe-regex-test "^1.1.0"
+ set-proto "^1.0.0"
+ stop-iteration-iterator "^1.1.0"
string.prototype.trim "^1.2.10"
string.prototype.trimend "^1.0.9"
string.prototype.trimstart "^1.0.8"
- typed-array-buffer "^1.0.2"
- typed-array-byte-length "^1.0.1"
- typed-array-byte-offset "^1.0.3"
+ typed-array-buffer "^1.0.3"
+ typed-array-byte-length "^1.0.3"
+ typed-array-byte-offset "^1.0.4"
typed-array-length "^1.0.7"
- unbox-primitive "^1.0.2"
- which-typed-array "^1.1.16"
+ unbox-primitive "^1.1.0"
+ which-typed-array "^1.1.19"
es-define-property@^1.0.0, es-define-property@^1.0.1:
version "1.0.1"
@@ -2021,28 +2104,29 @@ es-errors@^1.3.0:
resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
-es-object-atoms@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941"
- integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==
+es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
+ integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
dependencies:
es-errors "^1.3.0"
-es-set-tostringtag@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777"
- integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==
+es-set-tostringtag@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d"
+ integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==
dependencies:
- get-intrinsic "^1.2.4"
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.6"
has-tostringtag "^1.0.2"
- hasown "^2.0.1"
+ hasown "^2.0.2"
-es-shim-unscopables@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763"
- integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==
+es-shim-unscopables@^1.0.2, es-shim-unscopables@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz#438df35520dac5d105f3943d927549ea3b00f4b5"
+ integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==
dependencies:
- hasown "^2.0.0"
+ hasown "^2.0.2"
es-to-primitive@^1.3.0:
version "1.3.0"
@@ -2104,42 +2188,42 @@ eslint-import-resolver-typescript@^2.7.1:
resolve "^1.22.0"
tsconfig-paths "^3.14.1"
-eslint-module-utils@^2.12.0:
- version "2.12.0"
- resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz#fe4cfb948d61f49203d7b08871982b65b9af0b0b"
- integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==
+eslint-module-utils@^2.12.1:
+ version "2.12.1"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz#f76d3220bfb83c057651359295ab5854eaad75ff"
+ integrity sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==
dependencies:
debug "^3.2.7"
-eslint-plugin-import@^2.31.0:
- version "2.31.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7"
- integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==
+eslint-plugin-import@^2.32.0:
+ version "2.32.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz#602b55faa6e4caeaa5e970c198b5c00a37708980"
+ integrity sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==
dependencies:
"@rtsao/scc" "^1.1.0"
- array-includes "^3.1.8"
- array.prototype.findlastindex "^1.2.5"
- array.prototype.flat "^1.3.2"
- array.prototype.flatmap "^1.3.2"
+ array-includes "^3.1.9"
+ array.prototype.findlastindex "^1.2.6"
+ array.prototype.flat "^1.3.3"
+ array.prototype.flatmap "^1.3.3"
debug "^3.2.7"
doctrine "^2.1.0"
eslint-import-resolver-node "^0.3.9"
- eslint-module-utils "^2.12.0"
+ eslint-module-utils "^2.12.1"
hasown "^2.0.2"
- is-core-module "^2.15.1"
+ is-core-module "^2.16.1"
is-glob "^4.0.3"
minimatch "^3.1.2"
object.fromentries "^2.0.8"
object.groupby "^1.0.3"
- object.values "^1.2.0"
+ object.values "^1.2.1"
semver "^6.3.1"
- string.prototype.trimend "^1.0.8"
+ string.prototype.trimend "^1.0.9"
tsconfig-paths "^3.15.0"
-eslint-scope@^8.2.0:
- version "8.2.0"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442"
- integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==
+eslint-scope@^8.4.0:
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.4.0.tgz#88e646a207fad61436ffa39eb505147200655c82"
+ integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==
dependencies:
esrecurse "^4.3.0"
estraverse "^5.2.0"
@@ -2149,26 +2233,27 @@ eslint-visitor-keys@^3.4.3:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
-eslint-visitor-keys@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45"
- integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==
+eslint-visitor-keys@^4.2.0, eslint-visitor-keys@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1"
+ integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==
eslint@^9:
- version "9.17.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.17.0.tgz#faa1facb5dd042172fdc520106984b5c2421bb0c"
- integrity sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==
+ version "9.35.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.35.0.tgz#7a89054b7b9ee1dfd1b62035d8ce75547773f47e"
+ integrity sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==
dependencies:
- "@eslint-community/eslint-utils" "^4.2.0"
+ "@eslint-community/eslint-utils" "^4.8.0"
"@eslint-community/regexpp" "^4.12.1"
- "@eslint/config-array" "^0.19.0"
- "@eslint/core" "^0.9.0"
- "@eslint/eslintrc" "^3.2.0"
- "@eslint/js" "9.17.0"
- "@eslint/plugin-kit" "^0.2.3"
+ "@eslint/config-array" "^0.21.0"
+ "@eslint/config-helpers" "^0.3.1"
+ "@eslint/core" "^0.15.2"
+ "@eslint/eslintrc" "^3.3.1"
+ "@eslint/js" "9.35.0"
+ "@eslint/plugin-kit" "^0.3.5"
"@humanfs/node" "^0.16.6"
"@humanwhocodes/module-importer" "^1.0.1"
- "@humanwhocodes/retry" "^0.4.1"
+ "@humanwhocodes/retry" "^0.4.2"
"@types/estree" "^1.0.6"
"@types/json-schema" "^7.0.15"
ajv "^6.12.4"
@@ -2176,9 +2261,9 @@ eslint@^9:
cross-spawn "^7.0.6"
debug "^4.3.2"
escape-string-regexp "^4.0.0"
- eslint-scope "^8.2.0"
- eslint-visitor-keys "^4.2.0"
- espree "^10.3.0"
+ eslint-scope "^8.4.0"
+ eslint-visitor-keys "^4.2.1"
+ espree "^10.4.0"
esquery "^1.5.0"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
@@ -2194,14 +2279,14 @@ eslint@^9:
natural-compare "^1.4.0"
optionator "^0.9.3"
-espree@^10.0.1, espree@^10.3.0:
- version "10.3.0"
- resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a"
- integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==
+espree@^10.0.1, espree@^10.3.0, espree@^10.4.0:
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837"
+ integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==
dependencies:
- acorn "^8.14.0"
+ acorn "^8.15.0"
acorn-jsx "^5.3.2"
- eslint-visitor-keys "^4.2.0"
+ eslint-visitor-keys "^4.2.1"
esprima@^4.0.0, esprima@^4.0.1:
version "4.0.1"
@@ -2232,6 +2317,19 @@ esutils@^2.0.2:
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+execa@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
+ integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
+ dependencies:
+ cross-spawn "^6.0.0"
+ get-stream "^4.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
execa@^5.0.0:
version "5.1.1"
resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
@@ -2267,16 +2365,16 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-fast-glob@^3.3.2:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
- integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
+fast-glob@^3.3.2, fast-glob@^3.3.3:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818"
+ integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
dependencies:
"@nodelib/fs.stat" "^2.0.2"
"@nodelib/fs.walk" "^1.2.3"
glob-parent "^5.1.2"
merge2 "^1.3.0"
- micromatch "^4.0.4"
+ micromatch "^4.0.8"
fast-json-patch@^3.1.1:
version "3.1.1"
@@ -2294,14 +2392,14 @@ fast-levenshtein@^2.0.6:
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
fast-uri@^3.0.1:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.3.tgz#892a1c91802d5d7860de728f18608a0573142241"
- integrity sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa"
+ integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==
fastq@^1.6.0:
- version "1.17.1"
- resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
- integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==
+ version "1.19.1"
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5"
+ integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==
dependencies:
reusify "^1.0.4"
@@ -2312,7 +2410,7 @@ fb-watchman@^2.0.0:
dependencies:
bser "2.1.1"
-figures@^3.1.0:
+figures@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
@@ -2372,33 +2470,37 @@ flat-cache@^4.0.0:
keyv "^4.5.4"
flatted@^3.2.7, flatted@^3.2.9:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27"
- integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358"
+ integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==
-for-each@^0.3.3:
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
- integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
+for-each@^0.3.3, for-each@^0.3.5:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47"
+ integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==
dependencies:
- is-callable "^1.1.3"
+ is-callable "^1.2.7"
form-data@^3.0.0:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.2.tgz#83ad9ced7c03feaad97e293d6f6091011e1659c8"
- integrity sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.4.tgz#938273171d3f999286a4557528ce022dc2c98df1"
+ integrity sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.8"
- mime-types "^2.1.12"
+ es-set-tostringtag "^2.1.0"
+ hasown "^2.0.2"
+ mime-types "^2.1.35"
form-data@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48"
- integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4"
+ integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.8"
+ es-set-tostringtag "^2.1.0"
+ hasown "^2.0.2"
mime-types "^2.1.12"
fs-extra@^10.1.0:
@@ -2410,10 +2512,10 @@ fs-extra@^10.1.0:
jsonfile "^6.0.1"
universalify "^2.0.0"
-fs-extra@^11.2.0:
- version "11.2.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b"
- integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==
+fs-extra@^11.3.0:
+ version "11.3.1"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.1.tgz#ba7a1f97a85f94c6db2e52ff69570db3671d5a74"
+ integrity sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==
dependencies:
graceful-fs "^4.2.0"
jsonfile "^6.0.1"
@@ -2443,12 +2545,13 @@ function-bind@^1.1.2:
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
-function.prototype.name@^1.1.6, function.prototype.name@^1.1.7:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.7.tgz#9df48ea5f746bf577d7e15b5da89df8952a98e7b"
- integrity sha512-2g4x+HqTJKM9zcJqBSpjoRmdcPFtJM60J3xJisTQSXBWka5XqyBN/2tNUgma1mztTXyDuUsEtYe5qcs7xYzYQA==
+function.prototype.name@^1.1.6, function.prototype.name@^1.1.8:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz#e68e1df7b259a5c949eeef95cdbde53edffabb78"
+ integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==
dependencies:
call-bind "^1.0.8"
+ call-bound "^1.0.3"
define-properties "^1.2.1"
functions-have-names "^1.2.3"
hasown "^2.0.2"
@@ -2469,21 +2572,21 @@ get-caller-file@^2.0.5:
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6:
- version "1.2.6"
- resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.6.tgz#43dd3dd0e7b49b82b2dfcad10dc824bf7fc265d5"
- integrity sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==
+get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
+ integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
dependencies:
- call-bind-apply-helpers "^1.0.1"
- dunder-proto "^1.0.0"
+ call-bind-apply-helpers "^1.0.2"
es-define-property "^1.0.1"
es-errors "^1.3.0"
- es-object-atoms "^1.0.0"
+ es-object-atoms "^1.1.1"
function-bind "^1.1.2"
+ get-proto "^1.0.1"
gopd "^1.2.0"
has-symbols "^1.1.0"
hasown "^2.0.2"
- math-intrinsics "^1.0.0"
+ math-intrinsics "^1.1.0"
get-package-type@^0.1.0:
version "0.1.0"
@@ -2500,12 +2603,27 @@ get-pkg-repo@^4.2.1:
through2 "^2.0.0"
yargs "^16.2.0"
+get-proto@^1.0.0, get-proto@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
+ integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
+ dependencies:
+ dunder-proto "^1.0.1"
+ es-object-atoms "^1.0.0"
+
+get-stream@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+ integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+ dependencies:
+ pump "^3.0.0"
+
get-stream@^6.0.0:
version "6.0.1"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
-get-symbol-description@^1.0.2:
+get-symbol-description@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee"
integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==
@@ -2531,7 +2649,7 @@ git-remote-origin-url@^2.0.0:
gitconfiglocal "^1.0.0"
pify "^2.3.0"
-git-semver-tags@^5.0.0:
+git-semver-tags@^5.0.0, git-semver-tags@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-5.0.1.tgz#db748aa0e43d313bf38dcd68624d8443234e1c15"
integrity sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==
@@ -2565,7 +2683,7 @@ glob-promise@^6.0.7:
resolved "https://registry.yarnpkg.com/glob-promise/-/glob-promise-6.0.7.tgz#6d894212c63a42e1b86d1cbb04f4582b658308e4"
integrity sha512-DEAe6br1w8ZF+y6KM2pzgdfhpreladtNvyNNVgSkxxkFWzXTJFXxQrJQQbAnc7kL0EUd7w5cR8u4K0P4+/q+Gw==
-glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0:
+glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0:
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@@ -2577,7 +2695,7 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^8, glob@^8.1.0:
+glob@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e"
integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
@@ -2588,11 +2706,6 @@ glob@^8, glob@^8.1.0:
minimatch "^5.0.1"
once "^1.3.0"
-globals@^11.1.0:
- version "11.12.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
- integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
-
globals@^14.0.0:
version "14.0.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
@@ -2677,14 +2790,14 @@ has-symbols@^1.0.3, has-symbols@^1.1.0:
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
-has-tostringtag@^1.0.0, has-tostringtag@^1.0.2:
+has-tostringtag@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
dependencies:
has-symbols "^1.0.3"
-hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2:
+hasown@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
@@ -2774,15 +2887,20 @@ iconv-lite@0.6.3:
dependencies:
safer-buffer ">= 2.1.2 < 3.0.0"
-ignore@^5.2.0, ignore@^5.3.1, ignore@^5.3.2:
+ignore@^5.2.0, ignore@^5.3.2:
version "5.3.2"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
+ignore@^7.0.0:
+ version "7.0.5"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9"
+ integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==
+
import-fresh@^3.2.1:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
- integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf"
+ integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==
dependencies:
parent-module "^1.0.0"
resolve-from "^4.0.0"
@@ -2857,11 +2975,15 @@ is-arrayish@^0.2.1:
integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
is-async-function@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646"
- integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.1.1.tgz#3e69018c8e04e73b738793d020bfe884b9fd3523"
+ integrity sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==
dependencies:
- has-tostringtag "^1.0.0"
+ async-function "^1.0.0"
+ call-bound "^1.0.3"
+ get-proto "^1.0.1"
+ has-tostringtag "^1.0.2"
+ safe-regex-test "^1.1.0"
is-bigint@^1.1.0:
version "1.1.0"
@@ -2871,22 +2993,22 @@ is-bigint@^1.1.0:
has-bigints "^1.0.2"
is-boolean-object@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.1.tgz#c20d0c654be05da4fbc23c562635c019e93daf89"
- integrity sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz#7067f47709809a393c71ff5bb3e135d8a9215d9e"
+ integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==
dependencies:
- call-bound "^1.0.2"
+ call-bound "^1.0.3"
has-tostringtag "^1.0.2"
-is-callable@^1.1.3, is-callable@^1.2.7:
+is-callable@^1.2.7:
version "1.2.7"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
-is-core-module@^2.13.0, is-core-module@^2.15.1, is-core-module@^2.16.0, is-core-module@^2.5.0:
- version "2.16.0"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.0.tgz#6c01ffdd5e33c49c1d2abfa93334a85cb56bd81c"
- integrity sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==
+is-core-module@^2.13.0, is-core-module@^2.16.0, is-core-module@^2.16.1, is-core-module@^2.5.0:
+ version "2.16.1"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4"
+ integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==
dependencies:
hasown "^2.0.2"
@@ -2930,11 +3052,14 @@ is-generator-fn@^2.0.0:
integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
is-generator-function@^1.0.10:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
- integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.0.tgz#bf3eeda931201394f57b5dba2800f91a238309ca"
+ integrity sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==
dependencies:
- has-tostringtag "^1.0.0"
+ call-bound "^1.0.3"
+ get-proto "^1.0.0"
+ has-tostringtag "^1.0.2"
+ safe-regex-test "^1.1.0"
is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
version "4.0.3"
@@ -2996,19 +3121,24 @@ is-set@^2.0.3:
resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d"
integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==
-is-shared-array-buffer@^1.0.3:
+is-shared-array-buffer@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz#9b67844bd9b7f246ba0708c3a93e34269c774f6f"
integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==
dependencies:
call-bound "^1.0.3"
+is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+ integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==
+
is-stream@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
-is-string@^1.0.7, is-string@^1.1.1:
+is-string@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9"
integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==
@@ -3049,12 +3179,12 @@ is-weakmap@^2.0.2:
resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd"
integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==
-is-weakref@^1.0.2, is-weakref@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.0.tgz#47e3472ae95a63fa9cf25660bcf0c181c39770ef"
- integrity sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==
+is-weakref@^1.0.2, is-weakref@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.1.tgz#eea430182be8d64174bd96bffbc46f21bf3f9293"
+ integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==
dependencies:
- call-bound "^1.0.2"
+ call-bound "^1.0.3"
is-weakset@^2.0.3:
version "2.0.4"
@@ -3114,9 +3244,9 @@ istanbul-lib-source-maps@^4.0.0:
source-map "^0.6.1"
istanbul-reports@^3.1.3:
- version "3.1.7"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b"
- integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.2.0.tgz#cb4535162b5784aa623cee21a7252cf2c807ac93"
+ integrity sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==
dependencies:
html-escaper "^2.0.0"
istanbul-lib-report "^3.0.0"
@@ -3304,10 +3434,10 @@ jest-jasmine2@^27.5.1:
pretty-format "^27.5.1"
throat "^6.0.1"
-jest-junit@^15:
- version "15.0.0"
- resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-15.0.0.tgz#a47544ab42e9f8fe7ada56306c218e09e52bd690"
- integrity sha512-Z5sVX0Ag3HZdMUnD5DFlG+1gciIFSy7yIVPhOdGUi8YJaI9iLvvBb530gtQL2CHmv0JJeiwRZenr0VrSR7frvg==
+jest-junit@^16:
+ version "16.0.0"
+ resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-16.0.0.tgz#d838e8c561cf9fdd7eb54f63020777eee4136785"
+ integrity sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==
dependencies:
mkdirp "^1.0.4"
strip-ansi "^6.0.1"
@@ -3589,7 +3719,7 @@ jsdom@^16.6.0:
ws "^7.4.6"
xml-name-validator "^3.0.0"
-jsdom@^25.0.0:
+jsdom@^25.0.1:
version "25.0.1"
resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-25.0.1.tgz#536ec685c288fc8a5773a65f82d8b44badcc73ef"
integrity sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==
@@ -3621,97 +3751,97 @@ jsesc@^3.0.2:
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d"
integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==
-jsii-diff@^1.106.0:
- version "1.106.0"
- resolved "https://registry.yarnpkg.com/jsii-diff/-/jsii-diff-1.106.0.tgz#5619755f62f7c65b3f35f688639cf7f82e7443a0"
- integrity sha512-1UMvocIJCsUzb0IG/fcOANsm2qVN8lcWG5AD98bljlkJenO33i+YzIChIZc/JqKY0cQFRc7OIEcExt3GtqRzNQ==
+jsii-diff@^1.114.1:
+ version "1.114.1"
+ resolved "https://registry.yarnpkg.com/jsii-diff/-/jsii-diff-1.114.1.tgz#74be17840cc48efb74b4f398f9e90f5920a7acd3"
+ integrity sha512-SdttsWI1SWB/fHxpNHbNFi7Z08j54xvrfy/Hwy0fs8f935a6JJNWAkTmxti12zzFVvL73Oonr6aHf0pRmxpKuA==
dependencies:
- "@jsii/check-node" "1.106.0"
- "@jsii/spec" "^1.106.0"
+ "@jsii/check-node" "1.114.1"
+ "@jsii/spec" "1.114.1"
fs-extra "^10.1.0"
- jsii-reflect "^1.106.0"
+ jsii-reflect "^1.114.1"
log4js "^6.9.1"
- yargs "^16.2.0"
+ yargs "^17.7.2"
jsii-docgen@^10.5.0:
- version "10.6.1"
- resolved "https://registry.yarnpkg.com/jsii-docgen/-/jsii-docgen-10.6.1.tgz#5cff3ae39fb85722e1bf77100fed0e39e8ca94c1"
- integrity sha512-YzuFpdKnETdkljGXv7mn9DCRK6JIK09XrwJ9UDhdJEy3DpRUGn7uD5RH8vm2rIsQrad9L8pKV4xfSii5Pzoy9g==
+ version "10.8.2"
+ resolved "https://registry.yarnpkg.com/jsii-docgen/-/jsii-docgen-10.8.2.tgz#806d1ebfb106c8af70f287921f31d0763faabec8"
+ integrity sha512-oXpYGclsqNuAwL7ry20I/u/4y8NdjD7HBZoUYvrFd5d97mtyZCrhDLDMtr+QzaHBPKKlAPchhU7/3/D0Pb0UfA==
dependencies:
- "@jsii/spec" "^1.106.0"
+ "@jsii/spec" "^1.113.0"
case "^1.6.3"
fs-extra "^10.1.0"
glob "^8.1.0"
glob-promise "^6.0.7"
- jsii-reflect "^1.106.0"
- semver "^7.6.3"
+ jsii-reflect "^1.113.0"
+ semver "^7.7.2"
yargs "^16.2.0"
-jsii-pacmak@^1.106.0:
- version "1.106.0"
- resolved "https://registry.yarnpkg.com/jsii-pacmak/-/jsii-pacmak-1.106.0.tgz#0622a5770585a35b84abff964cb58aaa38f12779"
- integrity sha512-cNSzPszHaFg5AYwOQhp+eM/KpOJupdeyyycrzR6AtxwSmRN6x4K7YybZY/Rk0zfqGds9ukOYv0euGLZuXzXt1w==
+jsii-pacmak@^1.114.1:
+ version "1.114.1"
+ resolved "https://registry.yarnpkg.com/jsii-pacmak/-/jsii-pacmak-1.114.1.tgz#6723a4c148c5c050b7697744298987db15dd1956"
+ integrity sha512-Ks/PmxhznYhLIbQIo4fFPgWAa/cQb6RPudvvT08IKVIJE7i9LbzXE3go0hjbDjuhNFF6r8eYOAd1mqtbIyVB2g==
dependencies:
- "@jsii/check-node" "1.106.0"
- "@jsii/spec" "^1.106.0"
+ "@jsii/check-node" "1.114.1"
+ "@jsii/spec" "1.114.1"
clone "^2.1.2"
- codemaker "^1.106.0"
+ codemaker "^1.114.1"
commonmark "^0.31.2"
escape-string-regexp "^4.0.0"
fs-extra "^10.1.0"
- jsii-reflect "^1.106.0"
- semver "^7.6.3"
- spdx-license-list "^6.9.0"
+ jsii-reflect "^1.114.1"
+ semver "^7.7.2"
+ spdx-license-list "^6.10.0"
xmlbuilder "^15.1.1"
- yargs "^16.2.0"
+ yargs "^17.7.2"
-jsii-reflect@^1.106.0:
- version "1.106.0"
- resolved "https://registry.yarnpkg.com/jsii-reflect/-/jsii-reflect-1.106.0.tgz#8d9bfa7cd22e677fbcc433781b919df3b41d8b2d"
- integrity sha512-3t+a8kT4G5fYnQAM7eS8bgUpK+Vj1sFgABqLIC2Oae+8rUb6J+v7xTSvqWEOlO0FI608/BwalWsXsvW+Mtogmw==
+jsii-reflect@^1.113.0, jsii-reflect@^1.114.1:
+ version "1.114.1"
+ resolved "https://registry.yarnpkg.com/jsii-reflect/-/jsii-reflect-1.114.1.tgz#475ef04a18d76c9be0f4dfa417a0d783a24174d6"
+ integrity sha512-t+p1eYPfzHa8d99Ywa/LwunEtgHQgNGhxCU8XaupWtgW+kLODoQ3eovddSMZOtIH6CQnbHneEqCMVmDeU8dzNA==
dependencies:
- "@jsii/check-node" "1.106.0"
- "@jsii/spec" "^1.106.0"
+ "@jsii/check-node" "1.114.1"
+ "@jsii/spec" "1.114.1"
chalk "^4"
fs-extra "^10.1.0"
- oo-ascii-tree "^1.106.0"
- yargs "^16.2.0"
+ oo-ascii-tree "^1.114.1"
+ yargs "^17.7.2"
-jsii-rosetta@~5.6.0:
- version "5.6.3"
- resolved "https://registry.yarnpkg.com/jsii-rosetta/-/jsii-rosetta-5.6.3.tgz#ac1f8caaf0a34ded2bd907309851b6865085f085"
- integrity sha512-+bTTyFv8qJxNd798nhNU3SFV3WXJd7nrPhQ9FozS92QzLHReCpJIUtJQ4+4bxUDwFTun24872w5T6GY8OKXPgA==
+jsii-rosetta@~5.9.0:
+ version "5.9.4"
+ resolved "https://registry.yarnpkg.com/jsii-rosetta/-/jsii-rosetta-5.9.4.tgz#82ce40c5ed2817b65eb75f2b98deb7b036592db2"
+ integrity sha512-UHwCmY2uM1dWlOBsGtq6615bOdmrMzEW2VWc5EwiWCTTFZMpuodc4mlbgZWHkXnZvpEKr5sHpmXP8eJyeUtp/Q==
dependencies:
- "@jsii/check-node" "1.105.0"
- "@jsii/spec" "^1.105.0"
- "@xmldom/xmldom" "^0.9.6"
+ "@jsii/check-node" "1.113.0"
+ "@jsii/spec" "^1.113.0"
+ "@xmldom/xmldom" "^0.9.8"
chalk "^4"
commonmark "^0.31.2"
- fast-glob "^3.3.2"
- jsii "~5.6.0"
- semver "^7.6.3"
+ fast-glob "^3.3.3"
+ jsii "~5.9.1"
+ semver "^7.7.2"
semver-intersect "^1.5.0"
stream-json "^1.9.1"
- typescript "~5.6"
+ typescript "~5.9"
workerpool "^6.5.1"
yargs "^17.7.2"
-jsii@~5.6.0:
- version "5.6.4"
- resolved "https://registry.yarnpkg.com/jsii/-/jsii-5.6.4.tgz#105774013380a51469528aad127bc3508df41e9c"
- integrity sha512-ZfrnPJeuIQJscs3NN8jAYy246DByFcgTIRomoAOM0PY9nfRx/8qXLkWI2LZ49Zmh7WNzqVt8dBCJ6+z1CUqdpQ==
+jsii@~5.9.0, jsii@~5.9.1:
+ version "5.9.4"
+ resolved "https://registry.yarnpkg.com/jsii/-/jsii-5.9.4.tgz#22b38ffa1359dee12e2fd8c5bacb3f9b324f9fa6"
+ integrity sha512-YLNzhSwLyFU6R3DRAykJOM7hTQbRXqPH4/2uBpFJ4y5/Kj/blrK6mKO2W7bG7oRG6crw/Ui5gUTk4/eLuFJguA==
dependencies:
- "@jsii/check-node" "1.106.0"
- "@jsii/spec" "^1.106.0"
+ "@jsii/check-node" "1.113.0"
+ "@jsii/spec" "^1.113.0"
case "^1.6.3"
chalk "^4"
fast-deep-equal "^3.1.3"
log4js "^6.9.1"
- semver "^7.6.3"
+ semver "^7.7.2"
semver-intersect "^1.5.0"
sort-json "^2.0.1"
- spdx-license-list "^6.9.0"
- typescript "~5.6"
+ spdx-license-list "^6.10.0"
+ typescript "~5.9"
yargs "^17.7.2"
json-buffer@3.0.1:
@@ -3729,6 +3859,11 @@ json-parse-even-better-errors@^2.3.0:
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+json-parse-even-better-errors@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz#d3f67bd5925e81d3e31aa466acc821c8375cec43"
+ integrity sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==
+
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
@@ -3769,9 +3904,9 @@ jsonfile@^4.0.0:
graceful-fs "^4.1.6"
jsonfile@^6.0.1:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
- integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62"
+ integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==
dependencies:
universalify "^2.0.0"
optionalDependencies:
@@ -3782,11 +3917,26 @@ jsonparse@^1.2.0:
resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==
-jsonschema@^1.4.1:
+jsonschema@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.5.0.tgz#f6aceb1ab9123563dd901d05f81f9d4883d3b7d8"
+ integrity sha512-K+A9hhqbn0f3pJX17Q/7H6yQfD/5OXgdrR5UE12gMXCiN9D5Xq2o5mddV2QEcX/bjla99ASsAAQUyMCCRWAEhw==
+
+jsonschema@~1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab"
integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==
+just-diff-apply@^5.2.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f"
+ integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==
+
+just-diff@^6.0.0:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285"
+ integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==
+
keyv@^4.5.4:
version "4.5.4"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
@@ -3898,6 +4048,11 @@ log4js@^6.9.1:
rfdc "^1.3.0"
streamroller "^3.1.5"
+lru-cache@^10.4.3:
+ version "10.4.3"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119"
+ integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
+
lru-cache@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
@@ -3941,7 +4096,7 @@ map-obj@^4.0.0:
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a"
integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==
-math-intrinsics@^1.0.0:
+math-intrinsics@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
@@ -3978,7 +4133,7 @@ merge2@^1.3.0:
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
-micromatch@^4.0.4:
+micromatch@^4.0.4, micromatch@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
@@ -4038,7 +4193,7 @@ minimist-options@4.1.0:
is-plain-obj "^1.1.0"
kind-of "^6.0.3"
-minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.8:
+minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8, minimist@~1.2.8:
version "1.2.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
@@ -4068,15 +4223,20 @@ neo-async@^2.6.2:
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+nice-try@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
+ integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
node-releases@^2.0.19:
- version "2.0.19"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314"
- integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==
+ version "2.0.20"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.20.tgz#e26bb79dbdd1e64a146df389c699014c611cbc27"
+ integrity sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA==
normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
version "2.5.0"
@@ -4103,6 +4263,13 @@ normalize-path@^3.0.0:
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==
+ dependencies:
+ path-key "^2.0.0"
+
npm-run-path@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
@@ -4111,21 +4278,21 @@ npm-run-path@^4.0.1:
path-key "^3.0.0"
nwsapi@^2.2.0, nwsapi@^2.2.12:
- version "2.2.16"
- resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.16.tgz#177760bba02c351df1d2644e220c31dfec8cdb43"
- integrity sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==
+ version "2.2.22"
+ resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.22.tgz#109f9530cda6c156d6a713cdf5939e9f0de98b9d"
+ integrity sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==
-object-inspect@^1.13.3:
- version "1.13.3"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a"
- integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==
+object-inspect@^1.13.3, object-inspect@^1.13.4:
+ version "1.13.4"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213"
+ integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==
object-keys@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-object.assign@^4.1.5:
+object.assign@^4.1.7:
version "4.1.7"
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d"
integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==
@@ -4156,7 +4323,7 @@ object.groupby@^1.0.3:
define-properties "^1.2.1"
es-abstract "^1.23.2"
-object.values@^1.2.0:
+object.values@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216"
integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==
@@ -4166,7 +4333,7 @@ object.values@^1.2.0:
define-properties "^1.2.1"
es-object-atoms "^1.0.0"
-once@^1.3.0:
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
@@ -4180,10 +4347,10 @@ onetime@^5.1.2:
dependencies:
mimic-fn "^2.1.0"
-oo-ascii-tree@^1.106.0:
- version "1.106.0"
- resolved "https://registry.yarnpkg.com/oo-ascii-tree/-/oo-ascii-tree-1.106.0.tgz#58a017dd63f93dc912c9037080967ed7b7afa997"
- integrity sha512-0PZkjIiJUW3jEx7durxcri7JciR8VbJpf2K3qiVbGG4x0MTq6Xm/H84GjBI6tamSx/DV1PMFDfwMs3hm8zfOCw==
+oo-ascii-tree@^1.114.1:
+ version "1.114.1"
+ resolved "https://registry.yarnpkg.com/oo-ascii-tree/-/oo-ascii-tree-1.114.1.tgz#41c2f8c7c66d668a284653e64b6815be919551a8"
+ integrity sha512-+xac1eA8pc16YTNQ3Joxfw1+C3kySirXJmZvKvbtvw2m16CQXpBjETp19EPIvXH6b4dthokP4NbVHm75btcGIQ==
optionator@^0.9.3:
version "0.9.4"
@@ -4197,6 +4364,20 @@ optionator@^0.9.3:
type-check "^0.4.0"
word-wrap "^1.2.5"
+own-keys@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.1.tgz#e4006910a2bf913585289676eebd6f390cf51358"
+ integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==
+ dependencies:
+ get-intrinsic "^1.2.6"
+ object-keys "^1.1.1"
+ safe-push-apply "^1.0.0"
+
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+ integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==
+
p-limit@^1.1.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
@@ -4263,6 +4444,15 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"
+parse-conflict-json@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-4.0.0.tgz#996b1edfc0c727583b56c7644dbb3258fc9e9e4b"
+ integrity sha512-37CN2VtcuvKgHUs8+0b1uJeEsbGn61GRHz469C94P5xiOoqpDYJYwjg4RY9Vmz39WyZAVkR5++nbJwLMIgOCnQ==
+ dependencies:
+ json-parse-even-better-errors "^4.0.0"
+ just-diff "^6.0.0"
+ just-diff-apply "^5.2.0"
+
parse-json@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
@@ -4287,11 +4477,11 @@ parse5@6.0.1:
integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
parse5@^7.1.2:
- version "7.2.1"
- resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.2.1.tgz#8928f55915e6125f430cc44309765bf17556a33a"
- integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==
+ version "7.3.0"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05"
+ integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==
dependencies:
- entities "^4.5.0"
+ entities "^6.0.0"
path-exists@^3.0.0:
version "3.0.0"
@@ -4308,6 +4498,11 @@ path-is-absolute@^1.0.0:
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+path-key@^2.0.0, path-key@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+ integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
+
path-key@^3.0.0, path-key@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
@@ -4325,7 +4520,7 @@ path-type@^3.0.0:
dependencies:
pify "^3.0.0"
-picocolors@^1.0.0, picocolors@^1.1.0:
+picocolors@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
@@ -4336,9 +4531,9 @@ picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1:
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
picomatch@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab"
- integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042"
+ integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==
pify@^2.3.0:
version "2.3.0"
@@ -4351,9 +4546,9 @@ pify@^3.0.0:
integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==
pirates@^4.0.4:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
- integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22"
+ integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==
pkg-dir@^4.2.0:
version "4.2.0"
@@ -4363,9 +4558,9 @@ pkg-dir@^4.2.0:
find-up "^4.0.0"
possible-typed-array-names@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f"
- integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae"
+ integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==
prelude-ls@^1.2.1:
version "1.2.1"
@@ -4386,10 +4581,10 @@ process-nextick-args@~2.0.0:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
-projen@^0.91.3:
- version "0.91.3"
- resolved "https://registry.yarnpkg.com/projen/-/projen-0.91.3.tgz#9e1e7b0e3217d9d29e74d94f8dac0e2b48ac2218"
- integrity sha512-LITT3d4tBceuNfeRbC9hptvimNvwu2+bYp1O5lVs2B6XwguIBvAHGxvwbKLW3Nd3aKdCFm7OWTNmCRZg49yBHA==
+projen@^0.95.6:
+ version "0.95.6"
+ resolved "https://registry.yarnpkg.com/projen/-/projen-0.95.6.tgz#0d8ca52804117dd6b4f95b3fb1f3da49f8eb213b"
+ integrity sha512-LgtNgveF7UyYoFwEFbx0r570R3+jvz9XQRvykijZg+O5y7+h1hF+FzvL2r1i7FZ3RTlqfyJHP+wFXrfA1F+Oxw==
dependencies:
"@iarna/toml" "^2.2.5"
case "^1.6.3"
@@ -4397,11 +4592,12 @@ projen@^0.91.3:
comment-json "4.2.2"
constructs "^10.0.0"
conventional-changelog-config-spec "^2.1.0"
+ fast-glob "^3.3.3"
fast-json-patch "^3.1.1"
- glob "^8"
ini "^2.0.0"
- semver "^7.6.3"
- shx "^0.3.4"
+ parse-conflict-json "^4.0.0"
+ semver "^7.7.2"
+ shx "^0.4.0"
xmlbuilder2 "^3.1.1"
yaml "^2.2.2"
yargs "^17.7.2"
@@ -4421,6 +4617,14 @@ psl@^1.1.33:
dependencies:
punycode "^2.3.1"
+pump@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.3.tgz#151d979f1a29668dc0025ec589a455b53282268d"
+ integrity sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
@@ -4520,27 +4724,29 @@ redent@^3.0.0:
strip-indent "^3.0.0"
reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.9.tgz#c905f3386008de95a62315f3ea8630404be19e2f"
- integrity sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz#c629219e78a3316d8b604c765ef68996964e7bf9"
+ integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==
dependencies:
call-bind "^1.0.8"
define-properties "^1.2.1"
- dunder-proto "^1.0.1"
- es-abstract "^1.23.6"
+ es-abstract "^1.23.9"
es-errors "^1.3.0"
- get-intrinsic "^1.2.6"
- gopd "^1.2.0"
+ es-object-atoms "^1.0.0"
+ get-intrinsic "^1.2.7"
+ get-proto "^1.0.1"
which-builtin-type "^1.2.1"
-regexp.prototype.flags@^1.5.3:
- version "1.5.3"
- resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42"
- integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==
+regexp.prototype.flags@^1.5.4:
+ version "1.5.4"
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19"
+ integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==
dependencies:
- call-bind "^1.0.7"
+ call-bind "^1.0.8"
define-properties "^1.2.1"
es-errors "^1.3.0"
+ get-proto "^1.0.1"
+ gopd "^1.2.0"
set-function-name "^2.0.2"
repeat-string@^1.6.1:
@@ -4595,9 +4801,9 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22
supports-preserve-symlinks-flag "^1.0.0"
reusify@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
- integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f"
+ integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==
rfdc@^1.3.0:
version "1.4.1"
@@ -4616,6 +4822,11 @@ rrweb-cssom@^0.7.1:
resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz#c73451a484b86dd7cfb1e0b2898df4b703183e4b"
integrity sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==
+rrweb-cssom@^0.8.0:
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz#3021d1b4352fbf3b614aaeed0bc0d5739abe0bc2"
+ integrity sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==
+
run-parallel@^1.1.9:
version "1.2.0"
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
@@ -4644,6 +4855,14 @@ safe-buffer@~5.2.0:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+safe-push-apply@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz#01850e981c1602d398c85081f360e4e6d03d27f5"
+ integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==
+ dependencies:
+ es-errors "^1.3.0"
+ isarray "^2.0.5"
+
safe-regex-test@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz#7f87dfb67a3150782eaaf18583ff5d1711ac10c1"
@@ -4679,15 +4898,15 @@ semver-intersect@^1.5.0:
dependencies:
semver "^6.3.0"
-"semver@2 || 3 || 4 || 5":
+"semver@2 || 3 || 4 || 5", semver@^5.5.0:
version "5.7.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
-semver@7.x, semver@^7.0.0, semver@^7.3.2, semver@^7.3.4, semver@^7.5.3, semver@^7.6.0, semver@^7.6.3:
- version "7.6.3"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
- integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
+semver@7.x, semver@^7.0.0, semver@^7.3.2, semver@^7.3.4, semver@^7.5.3, semver@^7.6.0, semver@^7.7.1, semver@^7.7.2:
+ version "7.7.2"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58"
+ integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
semver@^6.3.0, semver@^6.3.1:
version "6.3.1"
@@ -4716,6 +4935,22 @@ set-function-name@^2.0.2:
functions-have-names "^1.2.3"
has-property-descriptors "^1.0.2"
+set-proto@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/set-proto/-/set-proto-1.0.0.tgz#0760dbcff30b2d7e801fd6e19983e56da337565e"
+ integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==
+ dependencies:
+ dunder-proto "^1.0.1"
+ es-errors "^1.3.0"
+ es-object-atoms "^1.0.0"
+
+shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==
+ dependencies:
+ shebang-regex "^1.0.0"
+
shebang-command@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
@@ -4723,27 +4958,33 @@ shebang-command@^2.0.0:
dependencies:
shebang-regex "^3.0.0"
+shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+ integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==
+
shebang-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
-shelljs@^0.8.5:
- version "0.8.5"
- resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c"
- integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==
+shelljs@^0.9.2:
+ version "0.9.2"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.9.2.tgz#a8ac724434520cd7ae24d52071e37a18ac2bb183"
+ integrity sha512-S3I64fEiKgTZzKCC46zT/Ib9meqofLrQVbpSswtjFfAVDW+AZ54WTnAM/3/yENoxz/V1Cy6u3kiiEbQ4DNphvw==
dependencies:
- glob "^7.0.0"
+ execa "^1.0.0"
+ fast-glob "^3.3.2"
interpret "^1.0.0"
rechoir "^0.6.2"
-shx@^0.3.4:
- version "0.3.4"
- resolved "https://registry.yarnpkg.com/shx/-/shx-0.3.4.tgz#74289230b4b663979167f94e1935901406e40f02"
- integrity sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==
+shx@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/shx/-/shx-0.4.0.tgz#c6ea6ace7e778da0ab32d2eab9def59d788e9336"
+ integrity sha512-Z0KixSIlGPpijKgcH6oCMCbltPImvaKy0sGH8AkLRXw1KyzpKtaCTizP2xen+hNDqVF4xxgvA0KXSb9o4Q6hnA==
dependencies:
- minimist "^1.2.3"
- shelljs "^0.8.5"
+ minimist "^1.2.8"
+ shelljs "^0.9.2"
side-channel-list@^1.0.0:
version "1.0.0"
@@ -4785,7 +5026,7 @@ side-channel@^1.1.0:
side-channel-map "^1.0.1"
side-channel-weakmap "^1.0.2"
-signal-exit@^3.0.2, signal-exit@^3.0.3:
+signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:
version "3.0.7"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
@@ -4832,9 +5073,9 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
source-map@^0.7.3:
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
- integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
+ version "0.7.6"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.6.tgz#a3658ab87e5b6429c8a1f3ba0083d4c61ca3ef02"
+ integrity sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==
spdx-correct@^3.0.0:
version "3.2.0"
@@ -4858,14 +5099,14 @@ spdx-expression-parse@^3.0.0:
spdx-license-ids "^3.0.0"
spdx-license-ids@^3.0.0:
- version "3.0.20"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz#e44ed19ed318dd1e5888f93325cee800f0f51b89"
- integrity sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==
+ version "3.0.22"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz#abf5a08a6f5d7279559b669f47f0a43e8f3464ef"
+ integrity sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==
-spdx-license-list@^6.9.0:
- version "6.9.0"
- resolved "https://registry.yarnpkg.com/spdx-license-list/-/spdx-license-list-6.9.0.tgz#5543abb3a15f985a12808f642a622d2721c372ad"
- integrity sha512-L2jl5vc2j6jxWcNCvcVj/BW9A8yGIG02Dw+IUw0ZxDM70f7Ylf5Hq39appV1BI9yxyWQRpq2TQ1qaXvf+yjkqA==
+spdx-license-list@^6.10.0:
+ version "6.10.0"
+ resolved "https://registry.yarnpkg.com/spdx-license-list/-/spdx-license-list-6.10.0.tgz#738249443db42f5fd6780c7c40daecefed7a3adf"
+ integrity sha512-wF3RhDFoqdu14d1Prv6c8aNU0FSRuSFJpNjWeygIZcNZEwPxp7I5/Hwo8j6lSkBKWAIkSQrKefrC5N0lvOP0Gw==
split2@^3.2.2:
version "3.2.2"
@@ -4893,6 +5134,14 @@ stack-utils@^2.0.3:
dependencies:
escape-string-regexp "^2.0.0"
+stop-iteration-iterator@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz#f481ff70a548f6124d0312c3aa14cbfa7aa542ad"
+ integrity sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==
+ dependencies:
+ es-errors "^1.3.0"
+ internal-slot "^1.1.0"
+
stream-chain@^2.2.5:
version "2.2.5"
resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09"
@@ -4944,7 +5193,7 @@ string.prototype.trim@^1.2.10:
es-object-atoms "^1.0.0"
has-property-descriptors "^1.0.2"
-string.prototype.trimend@^1.0.8, string.prototype.trimend@^1.0.9:
+string.prototype.trimend@^1.0.9:
version "1.0.9"
resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942"
integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==
@@ -4994,6 +5243,11 @@ strip-bom@^4.0.0:
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
+strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+ integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==
+
strip-final-newline@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
@@ -5050,7 +5304,7 @@ symbol-tree@^3.2.4:
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
-table@^6.8.2:
+table@^6.9.0:
version "6.9.0"
resolved "https://registry.yarnpkg.com/table/-/table-6.9.0.tgz#50040afa6264141c7566b3b81d4d82c47a8668f5"
integrity sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==
@@ -5101,17 +5355,17 @@ through@2, "through@>=2.2.7 <3":
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
-tldts-core@^6.1.69:
- version "6.1.69"
- resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.69.tgz#079ffcac8a4407bc74567e292aecf30b943674e1"
- integrity sha512-nygxy9n2PBUFQUtAXAc122gGo+04/j5qr5TGQFZTHafTKYvmARVXt2cA5rgero2/dnXUfkdPtiJoKmrd3T+wdA==
+tldts-core@^6.1.86:
+ version "6.1.86"
+ resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.86.tgz#a93e6ed9d505cb54c542ce43feb14c73913265d8"
+ integrity sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==
tldts@^6.1.32:
- version "6.1.69"
- resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.69.tgz#0fe1fcb1ad09510459693e72f96062cee2411f1f"
- integrity sha512-Oh/CqRQ1NXNY7cy9NkTPUauOWiTro0jEYZTioGbOmcQh6EC45oribyIMJp0OJO3677r13tO6SKdWoGZUx2BDFw==
+ version "6.1.86"
+ resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.86.tgz#087e0555b31b9725ee48ca7e77edc56115cd82f7"
+ integrity sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==
dependencies:
- tldts-core "^6.1.69"
+ tldts-core "^6.1.86"
tmpl@1.0.5:
version "1.0.5"
@@ -5136,9 +5390,9 @@ tough-cookie@^4.0.0:
url-parse "^1.5.3"
tough-cookie@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.0.0.tgz#6b6518e2b5c070cf742d872ee0f4f92d69eac1af"
- integrity sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.1.2.tgz#66d774b4a1d9e12dc75089725af3ac75ec31bed7"
+ integrity sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==
dependencies:
tldts "^6.1.32"
@@ -5149,10 +5403,10 @@ tr46@^2.1.0:
dependencies:
punycode "^2.1.1"
-tr46@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/tr46/-/tr46-5.0.0.tgz#3b46d583613ec7283020d79019f1335723801cec"
- integrity sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==
+tr46@^5.1.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-5.1.1.tgz#96ae867cddb8fdb64a49cc3059a8d428bcf238ca"
+ integrity sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==
dependencies:
punycode "^2.3.1"
@@ -5161,10 +5415,10 @@ trim-newlines@^3.0.0:
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144"
integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==
-ts-api-utils@^1.3.0:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064"
- integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==
+ts-api-utils@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91"
+ integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==
ts-jest@^27:
version "27.1.5"
@@ -5222,7 +5476,7 @@ type-fest@^0.8.1:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
-typed-array-buffer@^1.0.2:
+typed-array-buffer@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536"
integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==
@@ -5231,7 +5485,7 @@ typed-array-buffer@^1.0.2:
es-errors "^1.3.0"
is-typed-array "^1.1.14"
-typed-array-byte-length@^1.0.1:
+typed-array-byte-length@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz#8407a04f7d78684f3d252aa1a143d2b77b4160ce"
integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==
@@ -5242,7 +5496,7 @@ typed-array-byte-length@^1.0.1:
has-proto "^1.2.0"
is-typed-array "^1.1.14"
-typed-array-byte-offset@^1.0.3:
+typed-array-byte-offset@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355"
integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==
@@ -5284,17 +5538,17 @@ typescript@^4.9.5:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
-typescript@~5.6:
- version "5.6.3"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b"
- integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==
+typescript@~5.9:
+ version "5.9.2"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.2.tgz#d93450cddec5154a2d5cabe3b8102b83316fb2a6"
+ integrity sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==
uglify-js@^3.1.4:
version "3.19.3"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f"
integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==
-unbox-primitive@^1.0.2:
+unbox-primitive@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2"
integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==
@@ -5304,10 +5558,10 @@ unbox-primitive@^1.0.2:
has-symbols "^1.1.0"
which-boxed-primitive "^1.1.1"
-undici-types@~6.20.0:
- version "6.20.0"
- resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433"
- integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==
+undici-types@~7.10.0:
+ version "7.10.0"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.10.0.tgz#4ac2e058ce56b462b056e629cc6a02393d3ff350"
+ integrity sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==
universalify@^0.1.0:
version "0.1.2"
@@ -5324,13 +5578,13 @@ universalify@^2.0.0:
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
-update-browserslist-db@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5"
- integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==
+update-browserslist-db@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420"
+ integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==
dependencies:
escalade "^3.2.0"
- picocolors "^1.1.0"
+ picocolors "^1.1.1"
uri-js@^4.2.2:
version "4.4.1"
@@ -5442,11 +5696,11 @@ whatwg-mimetype@^4.0.0:
integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==
whatwg-url@^14.0.0:
- version "14.1.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-14.1.0.tgz#fffebec86cc8e6c2a657e50dc606207b870f0ab3"
- integrity sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==
+ version "14.2.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-14.2.0.tgz#4ee02d5d725155dae004f6ae95c73e7ef5d95663"
+ integrity sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==
dependencies:
- tr46 "^5.0.0"
+ tr46 "^5.1.0"
webidl-conversions "^7.0.0"
whatwg-url@^8.0.0, whatwg-url@^8.5.0:
@@ -5498,18 +5752,26 @@ which-collection@^1.0.2:
is-weakmap "^2.0.2"
is-weakset "^2.0.3"
-which-typed-array@^1.1.16:
- version "1.1.18"
- resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.18.tgz#df2389ebf3fbb246a71390e90730a9edb6ce17ad"
- integrity sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==
+which-typed-array@^1.1.16, which-typed-array@^1.1.19:
+ version "1.1.19"
+ resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.19.tgz#df03842e870b6b88e117524a4b364b6fc689f956"
+ integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==
dependencies:
available-typed-arrays "^1.0.7"
call-bind "^1.0.8"
- call-bound "^1.0.3"
- for-each "^0.3.3"
+ call-bound "^1.0.4"
+ for-each "^0.3.5"
+ get-proto "^1.0.1"
gopd "^1.2.0"
has-tostringtag "^1.0.2"
+which@^1.2.9:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+ integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+ dependencies:
+ isexe "^2.0.0"
+
which@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
@@ -5562,9 +5824,9 @@ ws@^7.4.6:
integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==
ws@^8.18.0:
- version "8.18.0"
- resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc"
- integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==
+ version "8.18.3"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472"
+ integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==
xml-name-validator@^3.0.0:
version "3.0.0"
@@ -5626,10 +5888,10 @@ yaml@1.10.2:
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
-yaml@^2.2.2, yaml@^2.4.1:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.6.1.tgz#42f2b1ba89203f374609572d5349fb8686500773"
- integrity sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==
+yaml@^2.2.2, yaml@^2.6.0:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.1.tgz#1870aa02b631f7e8328b93f8bc574fac5d6c4d79"
+ integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==
yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3:
version "20.2.9"