@aws-cdk/aws-ec2
Advanced tools
Comparing version 1.23.0 to 1.24.0
@@ -20,3 +20,4 @@ export * from './bastion-host'; | ||
export * from './windows-versions'; | ||
export * from './vpc-flow-logs'; | ||
export * from './ec2.generated'; | ||
import './ec2-augmentations.generated'; |
@@ -24,5 +24,6 @@ "use strict"; | ||
__export(require("./windows-versions")); | ||
__export(require("./vpc-flow-logs")); | ||
// AWS::EC2 CloudFormation Resources: | ||
__export(require("./ec2.generated")); | ||
require("./ec2-augmentations.generated"); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9DQUErQjtBQUMvQixtQ0FBOEI7QUFDOUIsc0NBQWlDO0FBQ2pDLGdDQUEyQjtBQUMzQixxQ0FBZ0M7QUFDaEMsMkJBQXNCO0FBQ3RCLG1DQUE4QjtBQUM5Qix5Q0FBb0M7QUFDcEMsNEJBQXVCO0FBQ3ZCLHNDQUFpQztBQUNqQyw0QkFBdUI7QUFDdkIsOEJBQXlCO0FBQ3pCLDJCQUFzQjtBQUV0QiwyQkFBc0I7QUFDdEIsb0NBQStCO0FBQy9CLDRDQUF1QztBQUN2QyxpQ0FBNEI7QUFDNUIsd0NBQW1DO0FBRW5DLHFDQUFxQztBQUNyQyxxQ0FBZ0M7QUFFaEMseUNBQXVDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iYXN0aW9uLWhvc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25uZWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2luc3RhbmNlLXR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vaW5zdGFuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tYWNoaW5lLWltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vbmF0JztcbmV4cG9ydCAqIGZyb20gJy4vbmV0d29yay1hY2wnO1xuZXhwb3J0ICogZnJvbSAnLi9uZXR3b3JrLWFjbC10eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3BvcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWN1cml0eS1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL3BlZXInO1xuZXhwb3J0ICogZnJvbSAnLi92b2x1bWUnO1xuZXhwb3J0ICogZnJvbSAnLi92cGMnO1xuZXhwb3J0ICogZnJvbSAnLi92cGMtbG9va3VwJztcbmV4cG9ydCAqIGZyb20gJy4vdnBuJztcbmV4cG9ydCAqIGZyb20gJy4vdnBjLWVuZHBvaW50JztcbmV4cG9ydCAqIGZyb20gJy4vdnBjLWVuZHBvaW50LXNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyLWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi93aW5kb3dzLXZlcnNpb25zJztcblxuLy8gQVdTOjpFQzIgQ2xvdWRGb3JtYXRpb24gUmVzb3VyY2VzOlxuZXhwb3J0ICogZnJvbSAnLi9lYzIuZ2VuZXJhdGVkJztcblxuaW1wb3J0ICcuL2VjMi1hdWdtZW50YXRpb25zLmdlbmVyYXRlZCc7XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9DQUErQjtBQUMvQixtQ0FBOEI7QUFDOUIsc0NBQWlDO0FBQ2pDLGdDQUEyQjtBQUMzQixxQ0FBZ0M7QUFDaEMsMkJBQXNCO0FBQ3RCLG1DQUE4QjtBQUM5Qix5Q0FBb0M7QUFDcEMsNEJBQXVCO0FBQ3ZCLHNDQUFpQztBQUNqQyw0QkFBdUI7QUFDdkIsOEJBQXlCO0FBQ3pCLDJCQUFzQjtBQUV0QiwyQkFBc0I7QUFDdEIsb0NBQStCO0FBQy9CLDRDQUF1QztBQUN2QyxpQ0FBNEI7QUFDNUIsd0NBQW1DO0FBQ25DLHFDQUFnQztBQUVoQyxxQ0FBcUM7QUFDckMscUNBQWdDO0FBRWhDLHlDQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFzdGlvbi1ob3N0JztcbmV4cG9ydCAqIGZyb20gJy4vY29ubmVjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnN0YW5jZS10eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2luc3RhbmNlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFjaGluZS1pbWFnZSc7XG5leHBvcnQgKiBmcm9tICcuL25hdCc7XG5leHBvcnQgKiBmcm9tICcuL25ldHdvcmstYWNsJztcbmV4cG9ydCAqIGZyb20gJy4vbmV0d29yay1hY2wtdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vc2VjdXJpdHktZ3JvdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9wZWVyJztcbmV4cG9ydCAqIGZyb20gJy4vdm9sdW1lJztcbmV4cG9ydCAqIGZyb20gJy4vdnBjJztcbmV4cG9ydCAqIGZyb20gJy4vdnBjLWxvb2t1cCc7XG5leHBvcnQgKiBmcm9tICcuL3Zwbic7XG5leHBvcnQgKiBmcm9tICcuL3ZwYy1lbmRwb2ludCc7XG5leHBvcnQgKiBmcm9tICcuL3ZwYy1lbmRwb2ludC1zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vd2luZG93cy12ZXJzaW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3ZwYy1mbG93LWxvZ3MnO1xuXG4vLyBBV1M6OkVDMiBDbG91ZEZvcm1hdGlvbiBSZXNvdXJjZXM6XG5leHBvcnQgKiBmcm9tICcuL2VjMi5nZW5lcmF0ZWQnO1xuXG5pbXBvcnQgJy4vZWMyLWF1Z21lbnRhdGlvbnMuZ2VuZXJhdGVkJztcbiJdfQ== |
@@ -6,2 +6,3 @@ import { Construct, IConstruct, IDependable, IResource, Resource } from '@aws-cdk/core'; | ||
import { GatewayVpcEndpoint, GatewayVpcEndpointOptions, InterfaceVpcEndpoint, InterfaceVpcEndpointOptions } from './vpc-endpoint'; | ||
import { FlowLog, FlowLogOptions } from './vpc-flow-logs'; | ||
import { VpcLookupOptions } from './vpc-lookup'; | ||
@@ -98,2 +99,6 @@ import { VpnConnection, VpnConnectionOptions } from './vpn'; | ||
addInterfaceEndpoint(id: string, options: InterfaceVpcEndpointOptions): InterfaceVpcEndpoint; | ||
/** | ||
* Adds a new Flow Log to this VPC | ||
*/ | ||
addFlowLog(id: string, options?: FlowLogOptions): FlowLog; | ||
} | ||
@@ -286,2 +291,6 @@ /** | ||
/** | ||
* Adds a new flow log to this VPC | ||
*/ | ||
addFlowLog(id: string, options?: FlowLogOptions): FlowLog; | ||
/** | ||
* Return the subnets appropriate for the placement strategy | ||
@@ -546,3 +555,5 @@ */ | ||
* | ||
* @default - On the route tables associated with private subnets. | ||
* @default - On the route tables associated with private subnets. If no | ||
* private subnets exists, isolated subnets are used. If no isolated subnets | ||
* exists, public subnets are used. | ||
*/ | ||
@@ -558,2 +569,10 @@ readonly vpnRoutePropagation?: SubnetSelection[]; | ||
}; | ||
/** | ||
* Flow logs to add to this VPC. | ||
* | ||
* @default - No flow logs. | ||
*/ | ||
readonly flowLogs?: { | ||
[id: string]: FlowLogOptions; | ||
}; | ||
} | ||
@@ -560,0 +579,0 @@ /** |
{ | ||
"name": "@aws-cdk/aws-ec2", | ||
"version": "1.23.0", | ||
"version": "1.24.0", | ||
"description": "CDK Constructs for AWS EC2", | ||
@@ -65,24 +65,28 @@ "main": "lib/index.js", | ||
"devDependencies": { | ||
"@aws-cdk/assert": "1.23.0", | ||
"@aws-cdk/assert": "1.24.0", | ||
"@types/nodeunit": "^0.0.30", | ||
"cdk-build-tools": "1.23.0", | ||
"cdk-integ-tools": "1.23.0", | ||
"cfn2ts": "1.23.0", | ||
"cdk-build-tools": "1.24.0", | ||
"cdk-integ-tools": "1.24.0", | ||
"cfn2ts": "1.24.0", | ||
"nodeunit": "^0.11.3", | ||
"pkglint": "1.23.0" | ||
"pkglint": "1.24.0" | ||
}, | ||
"dependencies": { | ||
"@aws-cdk/aws-cloudwatch": "1.23.0", | ||
"@aws-cdk/aws-iam": "1.23.0", | ||
"@aws-cdk/aws-ssm": "1.23.0", | ||
"@aws-cdk/core": "1.23.0", | ||
"@aws-cdk/cx-api": "1.23.0" | ||
"@aws-cdk/aws-cloudwatch": "1.24.0", | ||
"@aws-cdk/aws-iam": "1.24.0", | ||
"@aws-cdk/aws-logs": "1.24.0", | ||
"@aws-cdk/aws-s3": "1.24.0", | ||
"@aws-cdk/aws-ssm": "1.24.0", | ||
"@aws-cdk/core": "1.24.0", | ||
"@aws-cdk/cx-api": "1.24.0" | ||
}, | ||
"homepage": "https://github.com/aws/aws-cdk", | ||
"peerDependencies": { | ||
"@aws-cdk/aws-cloudwatch": "1.23.0", | ||
"@aws-cdk/aws-iam": "1.23.0", | ||
"@aws-cdk/aws-ssm": "1.23.0", | ||
"@aws-cdk/core": "1.23.0", | ||
"@aws-cdk/cx-api": "1.23.0" | ||
"@aws-cdk/aws-cloudwatch": "1.24.0", | ||
"@aws-cdk/aws-iam": "1.24.0", | ||
"@aws-cdk/aws-logs": "1.24.0", | ||
"@aws-cdk/aws-s3": "1.24.0", | ||
"@aws-cdk/aws-ssm": "1.24.0", | ||
"@aws-cdk/core": "1.24.0", | ||
"@aws-cdk/cx-api": "1.24.0" | ||
}, | ||
@@ -89,0 +93,0 @@ "engines": { |
@@ -403,3 +403,5 @@ ## Amazon EC2 Construct Library | ||
Routes will be propagated on the route tables associated with the private subnets. | ||
By default, routes will be propagated on the route tables associated with the private subnets. If no | ||
private subnets exists, isolated subnets are used. If no isolated subnets exists, public subnets are | ||
used. Use the `Vpc` property `vpnRoutePropagation` to customize this behavior. | ||
@@ -493,1 +495,35 @@ VPN connections expose [metrics (cloudwatch.Metric)](https://github.com/aws/aws-cdk/blob/master/packages/%40aws-cdk/aws-cloudwatch/README.md) across all tunnels in the account/region and per connection: | ||
``` | ||
## VPC Flow Logs | ||
VPC Flow Logs is a feature that enables you to capture information about the IP traffic going to and from network interfaces in your VPC. Flow log data can be published to Amazon CloudWatch Logs and Amazon S3. After you've created a flow log, you can retrieve and view its data in the chosen destination. (https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html). | ||
By default a flow log will be created with CloudWatch Logs as the destination. | ||
You can create a flow log like this: | ||
```ts | ||
new ec2.FlowLog(this, 'FlowLog', { | ||
resourceType: ec2.FlowLogResourceType.fromVpc(vpc) | ||
}) | ||
``` | ||
Or you can add a Flow Log to a VPC by using the addFlowLog method like this: | ||
```ts | ||
const vpc = new ec2.Vpc(this, 'Vpc'); | ||
vpc.addFlowLog('FlowLog'); | ||
``` | ||
You can also add multiple flow logs with different destinations. | ||
```ts | ||
const vpc = new ec2.Vpc(this, 'Vpc'); | ||
vpc.addFlowLog('FlowLogS3', { | ||
destination: ec2.FlowLogDestination.toS3() | ||
}); | ||
vpc.addFlowLog('FlowLogCloudWatch', { | ||
trafficType: ec2.FlowLogTrafficType.REJECT | ||
}); | ||
``` |
@@ -30,2 +30,4 @@ import { Test } from 'nodeunit'; | ||
'with a vpn gateway and route propagation on private and isolated subnets'(test: Test): void; | ||
'route propagation defaults to isolated subnets when there are no private subnets'(test: Test): void; | ||
'route propagation defaults to public subnets when there are no private/isolated subnets'(test: Test): void; | ||
'fails when specifying vpnConnections with vpnGateway set to false'(test: Test): void; | ||
@@ -32,0 +34,0 @@ 'fails when specifying vpnGatewayAsn with vpnGateway set to false'(test: Test): void; |
@@ -7,4 +7,5 @@ import { Test } from 'nodeunit'; | ||
'accepts asymmetric subnets'(test: Test): void; | ||
'selectSubnets onePerAz works on imported VPC'(test: Test): void; | ||
}; | ||
}; | ||
export = _default; |
@@ -122,4 +122,68 @@ "use strict"; | ||
}, | ||
'selectSubnets onePerAz works on imported VPC'(test) { | ||
const previous = mockVpcContextProviderWith(test, { | ||
vpcId: 'vpc-1234', | ||
subnetGroups: [ | ||
{ | ||
name: 'Public', | ||
type: cxapi.VpcSubnetGroupType.PUBLIC, | ||
subnets: [ | ||
{ | ||
subnetId: 'pub-sub-in-us-east-1a', | ||
availabilityZone: 'us-east-1a', | ||
routeTableId: 'rt-123', | ||
}, | ||
{ | ||
subnetId: 'pub-sub-in-us-east-1b', | ||
availabilityZone: 'us-east-1b', | ||
routeTableId: 'rt-123', | ||
}, | ||
], | ||
}, | ||
{ | ||
name: 'Private', | ||
type: cxapi.VpcSubnetGroupType.PRIVATE, | ||
subnets: [ | ||
{ | ||
subnetId: 'pri-sub-1-in-us-east-1c', | ||
availabilityZone: 'us-east-1c', | ||
routeTableId: 'rt-123', | ||
}, | ||
{ | ||
subnetId: 'pri-sub-2-in-us-east-1c', | ||
availabilityZone: 'us-east-1c', | ||
routeTableId: 'rt-123', | ||
}, | ||
{ | ||
subnetId: 'pri-sub-1-in-us-east-1d', | ||
availabilityZone: 'us-east-1d', | ||
routeTableId: 'rt-123', | ||
}, | ||
{ | ||
subnetId: 'pri-sub-2-in-us-east-1d', | ||
availabilityZone: 'us-east-1d', | ||
routeTableId: 'rt-123', | ||
}, | ||
], | ||
}, | ||
], | ||
}, options => { | ||
test.deepEqual(options.filter, { | ||
isDefault: 'true', | ||
}); | ||
test.equal(options.subnetGroupNameTag, undefined); | ||
}); | ||
const stack = new core_1.Stack(); | ||
const vpc = lib_1.Vpc.fromLookup(stack, 'Vpc', { | ||
isDefault: true, | ||
}); | ||
// WHEN | ||
const subnets = vpc.selectSubnets({ subnetType: lib_1.SubnetType.PRIVATE, onePerAz: true }); | ||
// THEN: we got 2 subnets and not 4 | ||
test.deepEqual(subnets.subnets.map(s => s.availabilityZone), ['us-east-1c', 'us-east-1d']); | ||
restoreContextProvider(previous); | ||
test.done(); | ||
}, | ||
}, | ||
}; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC52cGMuZnJvbS1sb29rdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0LnZwYy5mcm9tLWxvb2t1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsd0NBQXVIO0FBQ3ZILHlDQUF5QztBQUV6QyxnQ0FBNkI7QUE2RzdCLFNBQVMsMEJBQTBCLENBQUMsSUFBVSxFQUFFLFFBQWdDLEVBQzVDLGNBQXlEO0lBQzNGLE1BQU0sUUFBUSxHQUFHLHNCQUFlLENBQUMsUUFBUSxDQUFDO0lBQzFDLHNCQUFlLENBQUMsUUFBUSxHQUFHLENBQUMsTUFBaUIsRUFBRSxPQUErQixFQUFFLEVBQUU7UUFDaEYsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsWUFBWSxFQUM3Qyw2QkFBNkIsS0FBSyxDQUFDLFlBQVksWUFBWSxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLEVBQzVELG9FQUFvRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDO1FBRXhILElBQUksY0FBYyxFQUFFO1lBQ2xCLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBWSxDQUFDLENBQUM7U0FDdEM7UUFFRCxPQUFPO1lBQ0wsS0FBSyxFQUFFO2dCQUNMLGlCQUFpQixFQUFFLEVBQUU7Z0JBQ3JCLGlCQUFpQixFQUFFLFNBQVM7Z0JBQzVCLG1CQUFtQixFQUFFLFNBQVM7Z0JBQzlCLDJCQUEyQixFQUFFLFNBQVM7Z0JBQ3RDLGdCQUFnQixFQUFFLFNBQVM7Z0JBQzNCLGtCQUFrQixFQUFFLFNBQVM7Z0JBQzdCLDBCQUEwQixFQUFFLFNBQVM7Z0JBQ3JDLGVBQWUsRUFBRSxTQUFTO2dCQUMxQixp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TUFBTSxFQUFFO29CQUM3QixTQUFTLEVBQUUsTUFBTTtpQkFDbEIsQ0FBQyxDQUFDO2dCQUVILElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxLQUFLLEdBQUcsSUFBSSxZQUFLLEVBQUUsQ0FBQztZQUMxQixNQUFNLEdBQUcsR0FBRyxTQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7Z0JBQ3ZDLFNBQVMsRUFBRSxJQUFJO2FBQ2hCLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNoRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUUxQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0LCBDb250ZXh0UHJvdmlkZXIsIEdldENvbnRleHRWYWx1ZU9wdGlvbnMsIEdldENvbnRleHRWYWx1ZVJlc3VsdCwgTGF6eSwgU3RhY2sgfSBmcm9tIFwiQGF3cy1jZGsvY29yZVwiO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB7IFRlc3QgfSBmcm9tICdub2RldW5pdCc7XG5pbXBvcnQgeyBWcGMgfSBmcm9tIFwiLi4vbGliXCI7XG5cbmV4cG9ydCA9IHtcbiAgJ1ZwYy5mcm9tTG9va3VwKCknOiB7XG4gICAgJ3JlcXVpcmVzIGNvbmNyZXRlIHZhbHVlcycodGVzdDogVGVzdCkge1xuICAgICAgLy8gR0lWRU5cbiAgICAgIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgICAgIHRlc3QudGhyb3dzKCgpID0+IHtcbiAgICAgICAgVnBjLmZyb21Mb29rdXAoc3RhY2ssICdWcGMnLCB7XG4gICAgICAgICAgdnBjSWQ6IExhenkuc3RyaW5nVmFsdWUoeyBwcm9kdWNlOiAoKSA9PiAnc29tZS1pZCcgfSlcbiAgICAgICAgfSk7XG5cbiAgICAgIH0sICdBbGwgYXJndW1lbnRzIHRvIFZwYy5mcm9tTG9va3VwKCkgbXVzdCBiZSBjb25jcmV0ZScpO1xuXG4gICAgICB0ZXN0LmRvbmUoKTtcbiAgICB9LFxuXG4gICAgJ3NlbGVjdGluZyBzdWJuZXRzIGJ5IG5hbWUgZnJvbSBhIGxvb2tlZC11cCBWUEMgZG9lcyBub3QgdGhyb3cnKHRlc3Q6IFRlc3QpIHtcbiAgICAgIC8vIEdJVkVOXG4gICAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjayh1bmRlZmluZWQsIHVuZGVmaW5lZCwgeyBlbnY6IHsgcmVnaW9uOiAndXMtZWFzdC0xJywgYWNjb3VudDogJzEyMzQ1Njc4OTAxMicgfX0pO1xuICAgICAgY29uc3QgdnBjID0gVnBjLmZyb21Mb29rdXAoc3RhY2ssICdWUEMnLCB7XG4gICAgICAgIHZwY0lkOiAndnBjLTEyMzQnXG4gICAgICB9KTtcblxuICAgICAgLy8gV0hFTlxuICAgICAgdnBjLnNlbGVjdFN1Ym5ldHMoeyBzdWJuZXROYW1lOiAnQmxlZXAnIH0pO1xuXG4gICAgICAvLyBUSEVOOiBubyBleGNlcHRpb25cblxuICAgICAgdGVzdC5kb25lKCk7XG4gICAgfSxcblxuICAgICdhY2NlcHRzIGFzeW1tZXRyaWMgc3VibmV0cycodGVzdDogVGVzdCkge1xuICAgICAgY29uc3QgcHJldmlvdXMgPSBtb2NrVnBjQ29udGV4dFByb3ZpZGVyV2l0aCh0ZXN0LCB7XG4gICAgICAgIHZwY0lkOiAndnBjLTEyMzQnLFxuICAgICAgICBzdWJuZXRHcm91cHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUHVibGljJyxcbiAgICAgICAgICAgIHR5cGU6IGN4YXBpLlZwY1N1Ym5ldEdyb3VwVHlwZS5QVUJMSUMsXG4gICAgICAgICAgICBzdWJuZXRzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzdWJuZXRJZDogJ3B1Yi1zdWItaW4tdXMtZWFzdC0xYScsXG4gICAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogJ3VzLWVhc3QtMWEnLFxuICAgICAgICAgICAgICAgIHJvdXRlVGFibGVJZDogJ3J0LTEyMycsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzdWJuZXRJZDogJ3B1Yi1zdWItaW4tdXMtZWFzdC0xYicsXG4gICAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogJ3VzLWVhc3QtMWInLFxuICAgICAgICAgICAgICAgIHJvdXRlVGFibGVJZDogJ3J0LTEyMycsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1ByaXZhdGUnLFxuICAgICAgICAgICAgdHlwZTogY3hhcGkuVnBjU3VibmV0R3JvdXBUeXBlLlBSSVZBVEUsXG4gICAgICAgICAgICBzdWJuZXRzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzdWJuZXRJZDogJ3ByaS1zdWItMS1pbi11cy1lYXN0LTFjJyxcbiAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lOiAndXMtZWFzdC0xYycsXG4gICAgICAgICAgICAgICAgcm91dGVUYWJsZUlkOiAncnQtMTIzJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN1Ym5ldElkOiAncHJpLXN1Yi0yLWluLXVzLWVhc3QtMWMnLFxuICAgICAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6ICd1cy1lYXN0LTFjJyxcbiAgICAgICAgICAgICAgICByb3V0ZVRhYmxlSWQ6ICdydC0xMjMnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc3VibmV0SWQ6ICdwcmktc3ViLTEtaW4tdXMtZWFzdC0xZCcsXG4gICAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogJ3VzLWVhc3QtMWQnLFxuICAgICAgICAgICAgICAgIHJvdXRlVGFibGVJZDogJ3J0LTEyMycsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzdWJuZXRJZDogJ3ByaS1zdWItMi1pbi11cy1lYXN0LTFkJyxcbiAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lOiAndXMtZWFzdC0xZCcsXG4gICAgICAgICAgICAgICAgcm91dGVUYWJsZUlkOiAncnQtMTIzJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sIG9wdGlvbnMgPT4ge1xuICAgICAgICB0ZXN0LmRlZXBFcXVhbChvcHRpb25zLmZpbHRlciwge1xuICAgICAgICAgIGlzRGVmYXVsdDogJ3RydWUnLFxuICAgICAgICB9KTtcblxuICAgICAgICB0ZXN0LmVxdWFsKG9wdGlvbnMuc3VibmV0R3JvdXBOYW1lVGFnLCB1bmRlZmluZWQpO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gICAgICBjb25zdCB2cGMgPSBWcGMuZnJvbUxvb2t1cChzdGFjaywgJ1ZwYycsIHtcbiAgICAgICAgaXNEZWZhdWx0OiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIHRlc3QuZGVlcEVxdWFsKHZwYy5hdmFpbGFiaWxpdHlab25lcywgWyd1cy1lYXN0LTFhJywgJ3VzLWVhc3QtMWInLCAndXMtZWFzdC0xYycsICd1cy1lYXN0LTFkJ10pO1xuICAgICAgdGVzdC5lcXVhbCh2cGMucHVibGljU3VibmV0cy5sZW5ndGgsIDIpO1xuICAgICAgdGVzdC5lcXVhbCh2cGMucHJpdmF0ZVN1Ym5ldHMubGVuZ3RoLCA0KTtcbiAgICAgIHRlc3QuZXF1YWwodnBjLmlzb2xhdGVkU3VibmV0cy5sZW5ndGgsIDApO1xuXG4gICAgICByZXN0b3JlQ29udGV4dFByb3ZpZGVyKHByZXZpb3VzKTtcbiAgICAgIHRlc3QuZG9uZSgpO1xuICAgIH0sXG4gIH0sXG59O1xuXG5pbnRlcmZhY2UgTW9ja1ZjcENvbnRleHRSZXNwb25zZSB7XG4gIHJlYWRvbmx5IHZwY0lkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN1Ym5ldEdyb3VwczogY3hhcGkuVnBjU3VibmV0R3JvdXBbXTtcbn1cblxuZnVuY3Rpb24gbW9ja1ZwY0NvbnRleHRQcm92aWRlcldpdGgodGVzdDogVGVzdCwgcmVzcG9uc2U6IE1vY2tWY3BDb250ZXh0UmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbVZhbGlkYXRvcj86IChvcHRpb25zOiBjeGFwaS5WcGNDb250ZXh0UXVlcnkpID0+IHZvaWQpIHtcbiAgY29uc3QgcHJldmlvdXMgPSBDb250ZXh0UHJvdmlkZXIuZ2V0VmFsdWU7XG4gIENvbnRleHRQcm92aWRlci5nZXRWYWx1ZSA9IChfc2NvcGU6IENvbnN0cnVjdCwgb3B0aW9uczogR2V0Q29udGV4dFZhbHVlT3B0aW9ucykgPT4ge1xuICAgIC8vIGRvIHNvbWUgYmFzaWMgc2FuaXR5IGNoZWNrc1xuICAgIHRlc3QuZXF1YWwob3B0aW9ucy5wcm92aWRlciwgY3hhcGkuVlBDX1BST1ZJREVSLFxuICAgICAgYEV4cGVjdGVkIHByb3ZpZGVyIHRvIGJlOiAnJHtjeGFwaS5WUENfUFJPVklERVJ9JywgZ290OiAnJHtvcHRpb25zLnByb3ZpZGVyfSdgKTtcbiAgICB0ZXN0LmVxdWFsKChvcHRpb25zLnByb3BzIHx8IHt9KS5yZXR1cm5Bc3ltbWV0cmljU3VibmV0cywgdHJ1ZSxcbiAgICAgIGBFeHBlY3RlZCBvcHRpb25zLnByb3BzLnJldHVybkFzeW1tZXRyaWNTdWJuZXRzIHRvIGJlIHRydWUsIGdvdDogJyR7KG9wdGlvbnMucHJvcHMgfHwge30pLnJldHVybkFzeW1tZXRyaWNTdWJuZXRzfSdgKTtcblxuICAgIGlmIChwYXJhbVZhbGlkYXRvcikge1xuICAgICAgcGFyYW1WYWxpZGF0b3Iob3B0aW9ucy5wcm9wcyBhcyBhbnkpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZToge1xuICAgICAgICBhdmFpbGFiaWxpdHlab25lczogW10sXG4gICAgICAgIGlzb2xhdGVkU3VibmV0SWRzOiB1bmRlZmluZWQsXG4gICAgICAgIGlzb2xhdGVkU3VibmV0TmFtZXM6IHVuZGVmaW5lZCxcbiAgICAgICAgaXNvbGF0ZWRTdWJuZXRSb3V0ZVRhYmxlSWRzOiB1bmRlZmluZWQsXG4gICAgICAgIHByaXZhdGVTdWJuZXRJZHM6IHVuZGVmaW5lZCxcbiAgICAgICAgcHJpdmF0ZVN1Ym5ldE5hbWVzOiB1bmRlZmluZWQsXG4gICAgICAgIHByaXZhdGVTdWJuZXRSb3V0ZVRhYmxlSWRzOiB1bmRlZmluZWQsXG4gICAgICAgIHB1YmxpY1N1Ym5ldElkczogdW5kZWZpbmVkLFxuICAgICAgICBwdWJsaWNTdWJuZXROYW1lczogdW5kZWZpbmVkLFxuICAgICAgICBwdWJsaWNTdWJuZXRSb3V0ZVRhYmxlSWRzOiB1bmRlZmluZWQsXG4gICAgICAgIC4uLnJlc3BvbnNlLFxuICAgICAgfSBhcyBjeGFwaS5WcGNDb250ZXh0UmVzcG9uc2UsXG4gICAgfTtcbiAgfTtcbiAgcmV0dXJuIHByZXZpb3VzO1xufVxuXG5mdW5jdGlvbiByZXN0b3JlQ29udGV4dFByb3ZpZGVyKHByZXZpb3VzOiAoc2NvcGU6IENvbnN0cnVjdCwgb3B0aW9uczogR2V0Q29udGV4dFZhbHVlT3B0aW9ucykgPT4gR2V0Q29udGV4dFZhbHVlUmVzdWx0KTogdm9pZCB7XG4gIENvbnRleHRQcm92aWRlci5nZXRWYWx1ZSA9IHByZXZpb3VzO1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC52cGMuZnJvbS1sb29rdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0LnZwYy5mcm9tLWxvb2t1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsd0NBQXVIO0FBQ3ZILHlDQUF5QztBQUV6QyxnQ0FBeUM7QUFtTHpDLFNBQVMsMEJBQTBCLENBQUMsSUFBVSxFQUFFLFFBQWdDLEVBQzVDLGNBQXlEO0lBQzNGLE1BQU0sUUFBUSxHQUFHLHNCQUFlLENBQUMsUUFBUSxDQUFDO0lBQzFDLHNCQUFlLENBQUMsUUFBUSxHQUFHLENBQUMsTUFBaUIsRUFBRSxPQUErQixFQUFFLEVBQUU7UUFDaEYsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsWUFBWSxFQUM3Qyw2QkFBNkIsS0FBSyxDQUFDLFlBQVksWUFBWSxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLEVBQzVELG9FQUFvRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDO1FBRXhILElBQUksY0FBYyxFQUFFO1lBQ2xCLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBWSxDQUFDLENBQUM7U0FDdEM7UUFFRCxPQUFPO1lBQ0wsS0FBSyxFQUFFO2dCQUNMLGlCQUFpQixFQUFFLEVBQUU7Z0JBQ3JCLGlCQUFpQixFQUFFLFNBQVM7Z0JBQzVCLG1CQUFtQixFQUFFLFNBQVM7Z0JBQzlCLDJCQUEyQixFQUFFLFNBQVM7Z0JBQ3RDLGdCQUFnQixFQUFFLFNBQVM7Z0JBQzNCLGtCQUFrQixFQUFFLFNBQVM7Z0JBQzdCLDBCQUEwQixFQUFFLFNBQVM7Z0JBQ3JDLGVBQWUsRUFBRSxTQUFTO2dCQUMxQixp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QUFPO1lBQ1AsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxnQkFBVSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUV0RixtQ0FBbUM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFFM0Ysc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCwgQ29udGV4dFByb3ZpZGVyLCBHZXRDb250ZXh0VmFsdWVPcHRpb25zLCBHZXRDb250ZXh0VmFsdWVSZXN1bHQsIExhenksIFN0YWNrIH0gZnJvbSBcIkBhd3MtY2RrL2NvcmVcIjtcbmltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgeyBUZXN0IH0gZnJvbSAnbm9kZXVuaXQnO1xuaW1wb3J0IHsgU3VibmV0VHlwZSwgVnBjIH0gZnJvbSBcIi4uL2xpYlwiO1xuXG5leHBvcnQgPSB7XG4gICdWcGMuZnJvbUxvb2t1cCgpJzoge1xuICAgICdyZXF1aXJlcyBjb25jcmV0ZSB2YWx1ZXMnKHRlc3Q6IFRlc3QpIHtcbiAgICAgIC8vIEdJVkVOXG4gICAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gICAgICB0ZXN0LnRocm93cygoKSA9PiB7XG4gICAgICAgIFZwYy5mcm9tTG9va3VwKHN0YWNrLCAnVnBjJywge1xuICAgICAgICAgIHZwY0lkOiBMYXp5LnN0cmluZ1ZhbHVlKHsgcHJvZHVjZTogKCkgPT4gJ3NvbWUtaWQnIH0pXG4gICAgICAgIH0pO1xuXG4gICAgICB9LCAnQWxsIGFyZ3VtZW50cyB0byBWcGMuZnJvbUxvb2t1cCgpIG11c3QgYmUgY29uY3JldGUnKTtcblxuICAgICAgdGVzdC5kb25lKCk7XG4gICAgfSxcblxuICAgICdzZWxlY3Rpbmcgc3VibmV0cyBieSBuYW1lIGZyb20gYSBsb29rZWQtdXAgVlBDIGRvZXMgbm90IHRocm93Jyh0ZXN0OiBUZXN0KSB7XG4gICAgICAvLyBHSVZFTlxuICAgICAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2sodW5kZWZpbmVkLCB1bmRlZmluZWQsIHsgZW52OiB7IHJlZ2lvbjogJ3VzLWVhc3QtMScsIGFjY291bnQ6ICcxMjM0NTY3ODkwMTInIH19KTtcbiAgICAgIGNvbnN0IHZwYyA9IFZwYy5mcm9tTG9va3VwKHN0YWNrLCAnVlBDJywge1xuICAgICAgICB2cGNJZDogJ3ZwYy0xMjM0J1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFdIRU5cbiAgICAgIHZwYy5zZWxlY3RTdWJuZXRzKHsgc3VibmV0TmFtZTogJ0JsZWVwJyB9KTtcblxuICAgICAgLy8gVEhFTjogbm8gZXhjZXB0aW9uXG5cbiAgICAgIHRlc3QuZG9uZSgpO1xuICAgIH0sXG5cbiAgICAnYWNjZXB0cyBhc3ltbWV0cmljIHN1Ym5ldHMnKHRlc3Q6IFRlc3QpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzID0gbW9ja1ZwY0NvbnRleHRQcm92aWRlcldpdGgodGVzdCwge1xuICAgICAgICB2cGNJZDogJ3ZwYy0xMjM0JyxcbiAgICAgICAgc3VibmV0R3JvdXBzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1B1YmxpYycsXG4gICAgICAgICAgICB0eXBlOiBjeGFwaS5WcGNTdWJuZXRHcm91cFR5cGUuUFVCTElDLFxuICAgICAgICAgICAgc3VibmV0czogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc3VibmV0SWQ6ICdwdWItc3ViLWluLXVzLWVhc3QtMWEnLFxuICAgICAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6ICd1cy1lYXN0LTFhJyxcbiAgICAgICAgICAgICAgICByb3V0ZVRhYmxlSWQ6ICdydC0xMjMnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc3VibmV0SWQ6ICdwdWItc3ViLWluLXVzLWVhc3QtMWInLFxuICAgICAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6ICd1cy1lYXN0LTFiJyxcbiAgICAgICAgICAgICAgICByb3V0ZVRhYmxlSWQ6ICdydC0xMjMnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdQcml2YXRlJyxcbiAgICAgICAgICAgIHR5cGU6IGN4YXBpLlZwY1N1Ym5ldEdyb3VwVHlwZS5QUklWQVRFLFxuICAgICAgICAgICAgc3VibmV0czogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc3VibmV0SWQ6ICdwcmktc3ViLTEtaW4tdXMtZWFzdC0xYycsXG4gICAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogJ3VzLWVhc3QtMWMnLFxuICAgICAgICAgICAgICAgIHJvdXRlVGFibGVJZDogJ3J0LTEyMycsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzdWJuZXRJZDogJ3ByaS1zdWItMi1pbi11cy1lYXN0LTFjJyxcbiAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lOiAndXMtZWFzdC0xYycsXG4gICAgICAgICAgICAgICAgcm91dGVUYWJsZUlkOiAncnQtMTIzJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN1Ym5ldElkOiAncHJpLXN1Yi0xLWluLXVzLWVhc3QtMWQnLFxuICAgICAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6ICd1cy1lYXN0LTFkJyxcbiAgICAgICAgICAgICAgICByb3V0ZVRhYmxlSWQ6ICdydC0xMjMnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc3VibmV0SWQ6ICdwcmktc3ViLTItaW4tdXMtZWFzdC0xZCcsXG4gICAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogJ3VzLWVhc3QtMWQnLFxuICAgICAgICAgICAgICAgIHJvdXRlVGFibGVJZDogJ3J0LTEyMycsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LCBvcHRpb25zID0+IHtcbiAgICAgICAgdGVzdC5kZWVwRXF1YWwob3B0aW9ucy5maWx0ZXIsIHtcbiAgICAgICAgICBpc0RlZmF1bHQ6ICd0cnVlJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGVzdC5lcXVhbChvcHRpb25zLnN1Ym5ldEdyb3VwTmFtZVRhZywgdW5kZWZpbmVkKTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICAgICAgY29uc3QgdnBjID0gVnBjLmZyb21Mb29rdXAoc3RhY2ssICdWcGMnLCB7XG4gICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICB0ZXN0LmRlZXBFcXVhbCh2cGMuYXZhaWxhYmlsaXR5Wm9uZXMsIFsndXMtZWFzdC0xYScsICd1cy1lYXN0LTFiJywgJ3VzLWVhc3QtMWMnLCAndXMtZWFzdC0xZCddKTtcbiAgICAgIHRlc3QuZXF1YWwodnBjLnB1YmxpY1N1Ym5ldHMubGVuZ3RoLCAyKTtcbiAgICAgIHRlc3QuZXF1YWwodnBjLnByaXZhdGVTdWJuZXRzLmxlbmd0aCwgNCk7XG4gICAgICB0ZXN0LmVxdWFsKHZwYy5pc29sYXRlZFN1Ym5ldHMubGVuZ3RoLCAwKTtcblxuICAgICAgcmVzdG9yZUNvbnRleHRQcm92aWRlcihwcmV2aW91cyk7XG4gICAgICB0ZXN0LmRvbmUoKTtcbiAgICB9LFxuXG4gICAgJ3NlbGVjdFN1Ym5ldHMgb25lUGVyQXogd29ya3Mgb24gaW1wb3J0ZWQgVlBDJyh0ZXN0OiBUZXN0KSB7XG4gICAgICBjb25zdCBwcmV2aW91cyA9IG1vY2tWcGNDb250ZXh0UHJvdmlkZXJXaXRoKHRlc3QsIHtcbiAgICAgICAgdnBjSWQ6ICd2cGMtMTIzNCcsXG4gICAgICAgIHN1Ym5ldEdyb3VwczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdQdWJsaWMnLFxuICAgICAgICAgICAgdHlwZTogY3hhcGkuVnBjU3VibmV0R3JvdXBUeXBlLlBVQkxJQyxcbiAgICAgICAgICAgIHN1Ym5ldHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN1Ym5ldElkOiAncHViLXN1Yi1pbi11cy1lYXN0LTFhJyxcbiAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lOiAndXMtZWFzdC0xYScsXG4gICAgICAgICAgICAgICAgcm91dGVUYWJsZUlkOiAncnQtMTIzJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN1Ym5ldElkOiAncHViLXN1Yi1pbi11cy1lYXN0LTFiJyxcbiAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lOiAndXMtZWFzdC0xYicsXG4gICAgICAgICAgICAgICAgcm91dGVUYWJsZUlkOiAncnQtMTIzJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUHJpdmF0ZScsXG4gICAgICAgICAgICB0eXBlOiBjeGFwaS5WcGNTdWJuZXRHcm91cFR5cGUuUFJJVkFURSxcbiAgICAgICAgICAgIHN1Ym5ldHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN1Ym5ldElkOiAncHJpLXN1Yi0xLWluLXVzLWVhc3QtMWMnLFxuICAgICAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6ICd1cy1lYXN0LTFjJyxcbiAgICAgICAgICAgICAgICByb3V0ZVRhYmxlSWQ6ICdydC0xMjMnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc3VibmV0SWQ6ICdwcmktc3ViLTItaW4tdXMtZWFzdC0xYycsXG4gICAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogJ3VzLWVhc3QtMWMnLFxuICAgICAgICAgICAgICAgIHJvdXRlVGFibGVJZDogJ3J0LTEyMycsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzdWJuZXRJZDogJ3ByaS1zdWItMS1pbi11cy1lYXN0LTFkJyxcbiAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lOiAndXMtZWFzdC0xZCcsXG4gICAgICAgICAgICAgICAgcm91dGVUYWJsZUlkOiAncnQtMTIzJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN1Ym5ldElkOiAncHJpLXN1Yi0yLWluLXVzLWVhc3QtMWQnLFxuICAgICAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6ICd1cy1lYXN0LTFkJyxcbiAgICAgICAgICAgICAgICByb3V0ZVRhYmxlSWQ6ICdydC0xMjMnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSwgb3B0aW9ucyA9PiB7XG4gICAgICAgIHRlc3QuZGVlcEVxdWFsKG9wdGlvbnMuZmlsdGVyLCB7XG4gICAgICAgICAgaXNEZWZhdWx0OiAndHJ1ZScsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRlc3QuZXF1YWwob3B0aW9ucy5zdWJuZXRHcm91cE5hbWVUYWcsIHVuZGVmaW5lZCk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgICAgIGNvbnN0IHZwYyA9IFZwYy5mcm9tTG9va3VwKHN0YWNrLCAnVnBjJywge1xuICAgICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gV0hFTlxuICAgICAgY29uc3Qgc3VibmV0cyA9IHZwYy5zZWxlY3RTdWJuZXRzKHsgc3VibmV0VHlwZTogU3VibmV0VHlwZS5QUklWQVRFLCBvbmVQZXJBejogdHJ1ZSB9KTtcblxuICAgICAgLy8gVEhFTjogd2UgZ290IDIgc3VibmV0cyBhbmQgbm90IDRcbiAgICAgIHRlc3QuZGVlcEVxdWFsKHN1Ym5ldHMuc3VibmV0cy5tYXAocyA9PiBzLmF2YWlsYWJpbGl0eVpvbmUpLCBbJ3VzLWVhc3QtMWMnLCAndXMtZWFzdC0xZCddKTtcblxuICAgICAgcmVzdG9yZUNvbnRleHRQcm92aWRlcihwcmV2aW91cyk7XG4gICAgICB0ZXN0LmRvbmUoKTtcbiAgICB9LFxuICB9LFxufTtcblxuaW50ZXJmYWNlIE1vY2tWY3BDb250ZXh0UmVzcG9uc2Uge1xuICByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuICByZWFkb25seSBzdWJuZXRHcm91cHM6IGN4YXBpLlZwY1N1Ym5ldEdyb3VwW107XG59XG5cbmZ1bmN0aW9uIG1vY2tWcGNDb250ZXh0UHJvdmlkZXJXaXRoKHRlc3Q6IFRlc3QsIHJlc3BvbnNlOiBNb2NrVmNwQ29udGV4dFJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1WYWxpZGF0b3I/OiAob3B0aW9uczogY3hhcGkuVnBjQ29udGV4dFF1ZXJ5KSA9PiB2b2lkKSB7XG4gIGNvbnN0IHByZXZpb3VzID0gQ29udGV4dFByb3ZpZGVyLmdldFZhbHVlO1xuICBDb250ZXh0UHJvdmlkZXIuZ2V0VmFsdWUgPSAoX3Njb3BlOiBDb25zdHJ1Y3QsIG9wdGlvbnM6IEdldENvbnRleHRWYWx1ZU9wdGlvbnMpID0+IHtcbiAgICAvLyBkbyBzb21lIGJhc2ljIHNhbml0eSBjaGVja3NcbiAgICB0ZXN0LmVxdWFsKG9wdGlvbnMucHJvdmlkZXIsIGN4YXBpLlZQQ19QUk9WSURFUixcbiAgICAgIGBFeHBlY3RlZCBwcm92aWRlciB0byBiZTogJyR7Y3hhcGkuVlBDX1BST1ZJREVSfScsIGdvdDogJyR7b3B0aW9ucy5wcm92aWRlcn0nYCk7XG4gICAgdGVzdC5lcXVhbCgob3B0aW9ucy5wcm9wcyB8fCB7fSkucmV0dXJuQXN5bW1ldHJpY1N1Ym5ldHMsIHRydWUsXG4gICAgICBgRXhwZWN0ZWQgb3B0aW9ucy5wcm9wcy5yZXR1cm5Bc3ltbWV0cmljU3VibmV0cyB0byBiZSB0cnVlLCBnb3Q6ICckeyhvcHRpb25zLnByb3BzIHx8IHt9KS5yZXR1cm5Bc3ltbWV0cmljU3VibmV0c30nYCk7XG5cbiAgICBpZiAocGFyYW1WYWxpZGF0b3IpIHtcbiAgICAgIHBhcmFtVmFsaWRhdG9yKG9wdGlvbnMucHJvcHMgYXMgYW55KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IHtcbiAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZXM6IFtdLFxuICAgICAgICBpc29sYXRlZFN1Ym5ldElkczogdW5kZWZpbmVkLFxuICAgICAgICBpc29sYXRlZFN1Ym5ldE5hbWVzOiB1bmRlZmluZWQsXG4gICAgICAgIGlzb2xhdGVkU3VibmV0Um91dGVUYWJsZUlkczogdW5kZWZpbmVkLFxuICAgICAgICBwcml2YXRlU3VibmV0SWRzOiB1bmRlZmluZWQsXG4gICAgICAgIHByaXZhdGVTdWJuZXROYW1lczogdW5kZWZpbmVkLFxuICAgICAgICBwcml2YXRlU3VibmV0Um91dGVUYWJsZUlkczogdW5kZWZpbmVkLFxuICAgICAgICBwdWJsaWNTdWJuZXRJZHM6IHVuZGVmaW5lZCxcbiAgICAgICAgcHVibGljU3VibmV0TmFtZXM6IHVuZGVmaW5lZCxcbiAgICAgICAgcHVibGljU3VibmV0Um91dGVUYWJsZUlkczogdW5kZWZpbmVkLFxuICAgICAgICAuLi5yZXNwb25zZSxcbiAgICAgIH0gYXMgY3hhcGkuVnBjQ29udGV4dFJlc3BvbnNlLFxuICAgIH07XG4gIH07XG4gIHJldHVybiBwcmV2aW91cztcbn1cblxuZnVuY3Rpb24gcmVzdG9yZUNvbnRleHRQcm92aWRlcihwcmV2aW91czogKHNjb3BlOiBDb25zdHJ1Y3QsIG9wdGlvbnM6IEdldENvbnRleHRWYWx1ZU9wdGlvbnMpID0+IEdldENvbnRleHRWYWx1ZVJlc3VsdCk6IHZvaWQge1xuICBDb250ZXh0UHJvdmlkZXIuZ2V0VmFsdWUgPSBwcmV2aW91cztcbn1cbiJdfQ== |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
5042846
119
35011
528
14
+ Added@aws-cdk/aws-logs@1.24.0
+ Added@aws-cdk/aws-s3@1.24.0
+ Added@aws-cdk/aws-cloudwatch@1.24.0(transitive)
+ Added@aws-cdk/aws-events@1.24.0(transitive)
+ Added@aws-cdk/aws-iam@1.24.0(transitive)
+ Added@aws-cdk/aws-kms@1.24.0(transitive)
+ Added@aws-cdk/aws-logs@1.24.0(transitive)
+ Added@aws-cdk/aws-s3@1.24.0(transitive)
+ Added@aws-cdk/aws-ssm@1.24.0(transitive)
+ Added@aws-cdk/core@1.24.0(transitive)
+ Added@aws-cdk/cx-api@1.24.0(transitive)
+ Added@aws-cdk/region-info@1.24.0(transitive)
- Removed@aws-cdk/aws-cloudwatch@1.23.0(transitive)
- Removed@aws-cdk/aws-iam@1.23.0(transitive)
- Removed@aws-cdk/aws-kms@1.23.0(transitive)
- Removed@aws-cdk/aws-ssm@1.23.0(transitive)
- Removed@aws-cdk/core@1.23.0(transitive)
- Removed@aws-cdk/cx-api@1.23.0(transitive)
- Removed@aws-cdk/region-info@1.23.0(transitive)
Updated@aws-cdk/aws-iam@1.24.0
Updated@aws-cdk/aws-ssm@1.24.0
Updated@aws-cdk/core@1.24.0
Updated@aws-cdk/cx-api@1.24.0