Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@aws-cdk/aws-ec2

Package Overview
Dependencies
Maintainers
5
Versions
288
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-cdk/aws-ec2 - npm Package Compare versions

Comparing version 1.23.0 to 1.24.0

lib/vpc-flow-logs.d.ts

1

lib/index.d.ts

@@ -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';

3

lib/index.js

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc