@aws-cdk/aws-ec2-alpha 2.165.0-alpha.0 → 2.167.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +3 -3
- package/lib/ipam.js +1 -1
- package/lib/route.js +7 -7
- package/lib/subnet-v2.js +2 -2
- package/lib/util.js +6 -6
- package/lib/vpc-v2-base.js +1 -1
- package/lib/vpc-v2.js +2 -2
- package/package.json +7 -7
package/.jsii
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"aws-cdk-lib": "^2.
|
|
11
|
+
"aws-cdk-lib": "^2.167.0",
|
|
12
12
|
"constructs": "^10.0.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -3861,7 +3861,7 @@
|
|
|
3861
3861
|
"stability": "experimental"
|
|
3862
3862
|
},
|
|
3863
3863
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
3864
|
-
"jsiiVersion": "5.
|
|
3864
|
+
"jsiiVersion": "5.5.8 (build 06b640f)",
|
|
3865
3865
|
"keywords": [
|
|
3866
3866
|
"aws",
|
|
3867
3867
|
"cdk",
|
|
@@ -9550,6 +9550,6 @@
|
|
|
9550
9550
|
"symbolId": "lib/vpc-v2:VpcV2Props"
|
|
9551
9551
|
}
|
|
9552
9552
|
},
|
|
9553
|
-
"version": "2.
|
|
9553
|
+
"version": "2.167.0-alpha.0",
|
|
9554
9554
|
"fingerprint": "**********"
|
|
9555
9555
|
}
|
package/lib/ipam.js
CHANGED
|
@@ -236,7 +236,7 @@ class Ipam extends aws_cdk_lib_1.Resource {
|
|
|
236
236
|
}
|
|
237
237
|
exports.Ipam = Ipam;
|
|
238
238
|
_a = JSII_RTTI_SYMBOL_1;
|
|
239
|
-
Ipam[_a] = { fqn: "@aws-cdk/aws-ec2-alpha.Ipam", version: "2.
|
|
239
|
+
Ipam[_a] = { fqn: "@aws-cdk/aws-ec2-alpha.Ipam", version: "2.167.0-alpha.0" };
|
|
240
240
|
/**
|
|
241
241
|
* Function to create IpamPool under scope
|
|
242
242
|
* @internal
|
package/lib/route.js
CHANGED
|
@@ -49,7 +49,7 @@ class EgressOnlyInternetGateway extends core_1.Resource {
|
|
|
49
49
|
}
|
|
50
50
|
exports.EgressOnlyInternetGateway = EgressOnlyInternetGateway;
|
|
51
51
|
_a = JSII_RTTI_SYMBOL_1;
|
|
52
|
-
EgressOnlyInternetGateway[_a] = { fqn: "@aws-cdk/aws-ec2-alpha.EgressOnlyInternetGateway", version: "2.
|
|
52
|
+
EgressOnlyInternetGateway[_a] = { fqn: "@aws-cdk/aws-ec2-alpha.EgressOnlyInternetGateway", version: "2.167.0-alpha.0" };
|
|
53
53
|
/**
|
|
54
54
|
* Creates an internet gateway
|
|
55
55
|
* @resource AWS::EC2::InternetGateway
|
|
@@ -79,7 +79,7 @@ class InternetGateway extends core_1.Resource {
|
|
|
79
79
|
}
|
|
80
80
|
exports.InternetGateway = InternetGateway;
|
|
81
81
|
_b = JSII_RTTI_SYMBOL_1;
|
|
82
|
-
InternetGateway[_b] = { fqn: "@aws-cdk/aws-ec2-alpha.InternetGateway", version: "2.
|
|
82
|
+
InternetGateway[_b] = { fqn: "@aws-cdk/aws-ec2-alpha.InternetGateway", version: "2.167.0-alpha.0" };
|
|
83
83
|
/**
|
|
84
84
|
* Creates a virtual private gateway
|
|
85
85
|
* @resource AWS::EC2::VPNGateway
|
|
@@ -127,7 +127,7 @@ class VPNGatewayV2 extends core_1.Resource {
|
|
|
127
127
|
}
|
|
128
128
|
exports.VPNGatewayV2 = VPNGatewayV2;
|
|
129
129
|
_c = JSII_RTTI_SYMBOL_1;
|
|
130
|
-
VPNGatewayV2[_c] = { fqn: "@aws-cdk/aws-ec2-alpha.VPNGatewayV2", version: "2.
|
|
130
|
+
VPNGatewayV2[_c] = { fqn: "@aws-cdk/aws-ec2-alpha.VPNGatewayV2", version: "2.167.0-alpha.0" };
|
|
131
131
|
/**
|
|
132
132
|
* Creates a network address translation (NAT) gateway
|
|
133
133
|
* @resource AWS::EC2::NatGateway
|
|
@@ -179,7 +179,7 @@ class NatGateway extends core_1.Resource {
|
|
|
179
179
|
}
|
|
180
180
|
exports.NatGateway = NatGateway;
|
|
181
181
|
_d = JSII_RTTI_SYMBOL_1;
|
|
182
|
-
NatGateway[_d] = { fqn: "@aws-cdk/aws-ec2-alpha.NatGateway", version: "2.
|
|
182
|
+
NatGateway[_d] = { fqn: "@aws-cdk/aws-ec2-alpha.NatGateway", version: "2.167.0-alpha.0" };
|
|
183
183
|
/**
|
|
184
184
|
* The gateway or endpoint targeted by the route.
|
|
185
185
|
*/
|
|
@@ -205,7 +205,7 @@ class RouteTargetType {
|
|
|
205
205
|
}
|
|
206
206
|
exports.RouteTargetType = RouteTargetType;
|
|
207
207
|
_e = JSII_RTTI_SYMBOL_1;
|
|
208
|
-
RouteTargetType[_e] = { fqn: "@aws-cdk/aws-ec2-alpha.RouteTargetType", version: "2.
|
|
208
|
+
RouteTargetType[_e] = { fqn: "@aws-cdk/aws-ec2-alpha.RouteTargetType", version: "2.167.0-alpha.0" };
|
|
209
209
|
/**
|
|
210
210
|
* Creates a new route with added functionality.
|
|
211
211
|
* @resource AWS::EC2::Route
|
|
@@ -259,7 +259,7 @@ class Route extends core_1.Resource {
|
|
|
259
259
|
}
|
|
260
260
|
exports.Route = Route;
|
|
261
261
|
_f = JSII_RTTI_SYMBOL_1;
|
|
262
|
-
Route[_f] = { fqn: "@aws-cdk/aws-ec2-alpha.Route", version: "2.
|
|
262
|
+
Route[_f] = { fqn: "@aws-cdk/aws-ec2-alpha.Route", version: "2.167.0-alpha.0" };
|
|
263
263
|
/**
|
|
264
264
|
* Creates a route table for the specified VPC
|
|
265
265
|
* @resource AWS::EC2::RouteTable
|
|
@@ -307,7 +307,7 @@ class RouteTable extends core_1.Resource {
|
|
|
307
307
|
}
|
|
308
308
|
exports.RouteTable = RouteTable;
|
|
309
309
|
_g = JSII_RTTI_SYMBOL_1;
|
|
310
|
-
RouteTable[_g] = { fqn: "@aws-cdk/aws-ec2-alpha.RouteTable", version: "2.
|
|
310
|
+
RouteTable[_g] = { fqn: "@aws-cdk/aws-ec2-alpha.RouteTable", version: "2.167.0-alpha.0" };
|
|
311
311
|
function routerTypeToPropName(routerType) {
|
|
312
312
|
return ({
|
|
313
313
|
[aws_ec2_1.RouterType.CARRIER_GATEWAY]: 'carrierGatewayId',
|
package/lib/subnet-v2.js
CHANGED
|
@@ -19,7 +19,7 @@ class IpCidr {
|
|
|
19
19
|
}
|
|
20
20
|
exports.IpCidr = IpCidr;
|
|
21
21
|
_a = JSII_RTTI_SYMBOL_1;
|
|
22
|
-
IpCidr[_a] = { fqn: "@aws-cdk/aws-ec2-alpha.IpCidr", version: "2.
|
|
22
|
+
IpCidr[_a] = { fqn: "@aws-cdk/aws-ec2-alpha.IpCidr", version: "2.167.0-alpha.0" };
|
|
23
23
|
/**
|
|
24
24
|
* The SubnetV2 class represents a subnet within a VPC (Virtual Private Cloud) in AWS.
|
|
25
25
|
* It extends the Resource class and implements the ISubnet interface.
|
|
@@ -207,7 +207,7 @@ class SubnetV2 extends aws_cdk_lib_1.Resource {
|
|
|
207
207
|
}
|
|
208
208
|
exports.SubnetV2 = SubnetV2;
|
|
209
209
|
_b = JSII_RTTI_SYMBOL_1;
|
|
210
|
-
SubnetV2[_b] = { fqn: "@aws-cdk/aws-ec2-alpha.SubnetV2", version: "2.
|
|
210
|
+
SubnetV2[_b] = { fqn: "@aws-cdk/aws-ec2-alpha.SubnetV2", version: "2.167.0-alpha.0" };
|
|
211
211
|
const subnetTypeMap = {
|
|
212
212
|
[aws_ec2_1.SubnetType.PRIVATE_ISOLATED]: (vpc, subnet) => vpc.isolatedSubnets.push(subnet),
|
|
213
213
|
[aws_ec2_1.SubnetType.PUBLIC]: (vpc, subnet) => vpc.publicSubnets.push(subnet),
|
package/lib/util.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*eslint no-bitwise: ["error", { "allow": ["~", "|", "<<", "&"] }] */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.CidrBlockIpv6 = exports.CidrBlock = exports.NetworkUtils =
|
|
4
|
+
exports.CidrBlockIpv6 = exports.CidrBlock = exports.NetworkUtils = void 0;
|
|
5
|
+
exports.subnetGroupNameFromConstructId = subnetGroupNameFromConstructId;
|
|
6
|
+
exports.subnetId = subnetId;
|
|
7
|
+
exports.allRouteTableIds = allRouteTableIds;
|
|
8
|
+
exports.flatten = flatten;
|
|
5
9
|
/**
|
|
6
10
|
* Return a subnet name from its construct ID
|
|
7
11
|
*
|
|
@@ -10,14 +14,12 @@ exports.CidrBlockIpv6 = exports.CidrBlock = exports.NetworkUtils = exports.flatt
|
|
|
10
14
|
function subnetGroupNameFromConstructId(subnet) {
|
|
11
15
|
return subnet.node.id.replace(/Subnet\d+$/, '');
|
|
12
16
|
}
|
|
13
|
-
exports.subnetGroupNameFromConstructId = subnetGroupNameFromConstructId;
|
|
14
17
|
/**
|
|
15
18
|
* Make the subnet construct ID from a name and number
|
|
16
19
|
*/
|
|
17
20
|
function subnetId(name, i) {
|
|
18
21
|
return `${name}Subnet${i + 1}`;
|
|
19
22
|
}
|
|
20
|
-
exports.subnetId = subnetId;
|
|
21
23
|
/**
|
|
22
24
|
* Return the union of table IDs from all selected subnets
|
|
23
25
|
*/
|
|
@@ -30,11 +32,9 @@ function allRouteTableIds(subnets) {
|
|
|
30
32
|
}
|
|
31
33
|
return Array.from(ret);
|
|
32
34
|
}
|
|
33
|
-
exports.allRouteTableIds = allRouteTableIds;
|
|
34
35
|
function flatten(xs) {
|
|
35
36
|
return Array.prototype.concat.apply([], xs);
|
|
36
37
|
}
|
|
37
|
-
exports.flatten = flatten;
|
|
38
38
|
/**
|
|
39
39
|
* NetworkUtils contains helpers to work with network constructs (subnets/ranges)
|
|
40
40
|
*/
|
|
@@ -307,4 +307,4 @@ class CidrBlockIpv6 {
|
|
|
307
307
|
}
|
|
308
308
|
}
|
|
309
309
|
exports.CidrBlockIpv6 = CidrBlockIpv6;
|
|
310
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFFQUFxRTs7O0FBSXJFOzs7O0dBSUc7QUFDSCxTQUFnQiw4QkFBOEIsQ0FBQyxNQUFlO0lBQzVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRkQsd0VBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxJQUFZLEVBQUUsQ0FBUztJQUM5QyxPQUFPLEdBQUcsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUNqQyxDQUFDO0FBRkQsNEJBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLE9BQWtCO0lBQ2pELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDOUIsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4RCxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQVJELDRDQVFDO0FBRUQsU0FBZ0IsT0FBTyxDQUFJLEVBQVM7SUFDbEMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFGRCwwQkFFQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxZQUFZO0lBRXZCOzs7Ozs7Ozs7T0FTRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FB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TSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0UsTUFBTSxhQUFhLEdBQUcsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQztRQUM1QixNQUFNLEdBQUcsR0FBRyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBRWpDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDckI7SUFFRDs7O09BR0c7SUFDSyxZQUFZLENBQUMsV0FBbUI7UUFDdEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xELElBQUksVUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzNCLCtCQUErQjtZQUMvQixVQUFVLEdBQUcsQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2xELENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztLQUNuQjtDQUNGO0FBN0ZELHNDQTZGQyIsInNvdXJjZXNDb250ZW50IjpbIi8qZXNsaW50IG5vLWJpdHdpc2U6IFtcImVycm9yXCIsIHsgXCJhbGxvd1wiOiBbXCJ+XCIsIFwifFwiLCBcIjw8XCIsIFwiJlwiXSB9XSAqL1xuXG5pbXBvcnQgeyBJU3VibmV0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5cbi8qKlxuICogUmV0dXJuIGEgc3VibmV0IG5hbWUgZnJvbSBpdHMgY29uc3RydWN0IElEXG4gKlxuICogQWxsIHN1Ym5ldCBuYW1lcyBsb29rIGxpa2UgTkFNRSA8PiBcIlN1Ym5ldFwiIDw+IElOREVYXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJuZXRHcm91cE5hbWVGcm9tQ29uc3RydWN0SWQoc3VibmV0OiBJU3VibmV0KSB7XG4gIHJldHVybiBzdWJuZXQubm9kZS5pZC5yZXBsYWNlKC9TdWJuZXRcXGQrJC8sICcnKTtcbn1cblxuLyoqXG4gKiBNYWtlIHRoZSBzdWJuZXQgY29uc3RydWN0IElEIGZyb20gYSBuYW1lIGFuZCBudW1iZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1Ym5ldElkKG5hbWU6IHN0cmluZywgaTogbnVtYmVyKSB7XG4gIHJldHVybiBgJHtuYW1lfVN1Ym5ldCR7aSArIDF9YDtcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIHVuaW9uIG9mIHRhYmxlIElEcyBmcm9tIGFsbCBzZWxlY3RlZCBzdWJuZXRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbGxSb3V0ZVRhYmxlSWRzKHN1Ym5ldHM6IElTdWJuZXRbXSk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcmV0ID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3Qgc3VibmV0IG9mIHN1Ym5ldHMpIHtcbiAgICBpZiAoc3VibmV0LnJvdXRlVGFibGUgJiYgc3VibmV0LnJvdXRlVGFibGUucm91dGVUYWJsZUlkKSB7XG4gICAgICByZXQuYWRkKHN1Ym5ldC5yb3V0ZVRhYmxlLnJvdXRlVGFibGVJZCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBBcnJheS5mcm9tKHJldCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuPEE+KHhzOiBBW11bXSk6IEFbXSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLCB4cyk7XG59XG5cbi8qKlxuICogTmV0d29ya1V0aWxzIGNvbnRhaW5zIGhlbHBlcnMgdG8gd29yayB3aXRoIG5ldHdvcmsgY29uc3RydWN0cyAoc3VibmV0cy9yYW5nZXMpXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXR3b3JrVXRpbHMge1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYW4gSVB2NCBhZGRyZXNzIHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIGlwQWRkcmVzcyBUaGUgSVB2NCBhZGRyZXNzIHN0cmluZyB0byBiZSB2YWxpZGF0ZWQuXG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHN0cmluZyBpcyBhIHZhbGlkIElQdjQgYWRkcmVzcywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKiBWYWxpZGF0ZXMgYW4gSVB2NCBzdHJpbmdcbiAgICpcbiAgICogcmV0dXJucyB0cnVlIG9mIHRoZSBzdHJpbmcgY29udGFpbnMgNCBudW1iZXJzIGJldHdlZW4gMC0yNTUgZGVsaW1pdGVkIGJ5XG4gICAqIGEgYC5gIGNoYXJhY3RlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2YWxpZElwKGlwQWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgb2N0ZXRzID0gaXBBZGRyZXNzLnNwbGl0KCcuJyk7XG4gICAgaWYgKG9jdGV0cy5sZW5ndGggIT09IDQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIG9jdGV0cy5tYXAoKG9jdGV0OiBzdHJpbmcpID0+IHBhcnNlSW50KG9jdGV0LCAxMCkpLlxuICAgICAgZXZlcnkoKG9jdGV0OiBudW1iZXIpID0+IG9jdGV0ID49IDAgJiYgb2N0ZXQgPD0gMjU1KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBJUHY0IGFkZHJlc3MgdG8gaXRzIGNvcnJlc3BvbmRpbmcgbnVtZXJpY2FsIHZhbHVlLlxuICAgKlxuICAgKiBVc2VzIHRoZSBmb3JtdWxhOlxuICAgKiAoZmlyc3Qgb2N0ZXQgKiAyNTbCsykgKyAoc2Vjb25kIG9jdGV0ICogMjU2wrIpICsgKHRoaXJkIG9jdGV0ICogMjU2KSArXG4gICAqIChmb3VydGggb2N0ZXQpXG4gICAqXG4gICAqIEBwYXJhbSAgaXBBZGRyZXNzIHRoZSBJUCBhZGRyZXNzIChlLmcuIDE3NC42Ni4xNzMuMTY4KVxuICAgKiBAcmV0dXJucyB0aGUgaW50ZWdlciB2YWx1ZSBvZiB0aGUgSVAgYWRkcmVzcyAoZS5nIDI5MjM2MDU0MTYpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlwVG9OdW0oaXBBZGRyZXNzOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy52YWxpZElwKGlwQWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtpcEFkZHJlc3N9IGlzIG5vdCB2YWxpZGApO1xuICAgIH1cblxuICAgIHJldHVybiBpcEFkZHJlc3NcbiAgICAgIC5zcGxpdCgnLicpXG4gICAgICAucmVkdWNlKFxuICAgICAgICAocDogbnVtYmVyLCBjOiBzdHJpbmcsIGk6IG51bWJlcikgPT4gcCArIHBhcnNlSW50KGMsIDEwKSAqIDI1NiAqKiAoMyAtIGkpLFxuICAgICAgICAwLFxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyBudW1iZXIgYW5kIGNvbnZlcnRzIGl0IHRvIElQdjQgYWRkcmVzcyBzdHJpbmdcbiAgICpcbiAgICogVGFrZXMgYSBudW1iZXIgKGUuZyAyOTIzNjA1NDE2KSBhbmQgY29udmVydHMgaXQgdG8gYW4gSVB2NCBhZGRyZXNzIHN0cmluZ1xuICAgKiBjdXJyZW50bHkgb25seSBzdXBwb3J0cyBJUHY0XG4gICAqXG4gICAqIEBwYXJhbSBpcE51bSBpbnRlZ2VyIHZhbHVlIG9mIHRoZSBJUCBhZGRyZXNzIChlLmcgMjkyMzYwNTQxNilcbiAgICogQHJldHVybnMgSVB2NCBhZGRyZXNzIChlLmcuIDE3NC42Ni4xNzMuMTY4KVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBudW1Ub0lwKGlwTnVtOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIC8vIHRoaXMgYWxsIGJlY2F1c2UgYml0d2lzZSBtYXRoIGlzIHNpZ25lZFxuICAgIGxldCByZW1haW5pbmcgPSBpcE51bTtcbiAgICBjb25zdCBhZGRyZXNzID0gbmV3IEFycmF5PG51bWJlcj4oKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7IGkrKykge1xuICAgICAgaWYgKHJlbWFpbmluZyAhPT0gMCkge1xuICAgICAgICBhZGRyZXNzLnB1c2goTWF0aC5mbG9vcihyZW1haW5pbmcgLyAyNTYgKiogKDMgLSBpKSkpO1xuICAgICAgICByZW1haW5pbmcgPSByZW1haW5pbmcgJSAyNTYgKiogKDMgLSBpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkZHJlc3MucHVzaCgwKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaXBBZGRyZXNzOiBzdHJpbmcgPSBhZGRyZXNzLmpvaW4oJy4nKTtcbiAgICBpZiAoICF0aGlzLnZhbGlkSXAoaXBBZGRyZXNzKSApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtpcEFkZHJlc3N9IGlzIG5vdCBhIHZhbGlkIElQIEFkZHJlc3NgKTtcbiAgICB9XG4gICAgcmV0dXJuIGlwQWRkcmVzcztcbiAgfVxufVxuXG4vKipcbiAqIEV4cG9ydGVkIGNsYXNzIGZyb20gVlBDIHRvIHN1cHBvcnQgc3VibmV0IGZpbHRlcmluZ1xuICogYW5kIENJRFIgdmFsaWRhdGlvblxuICovXG5leHBvcnQgY2xhc3MgQ2lkckJsb2NrIHtcblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgbmV0bWFzayBmb3IgYSBnaXZlbiBDSURSIG1hc2tcbiAgICpcbiAgICogVGhlIG5ldG1hc2sgaXMgYSAzMi1iaXQgYmluYXJ5IHZhbHVlIHVzZWQgdG8gc2VwYXJhdGUgdGhlIG5ldHdvcmsgcG9ydGlvbiBmcm9tIHRoZSBob3N0IHBvcnRpb24gb2YgYW4gSVB2NCBhZGRyZXNzLlxuICAgKiBJdCBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBDSURSIHByZWZpeCBsZW5ndGggKHRoZSBudW1iZXIgb2YgYml0cyB1c2VkIHRvIHJlcHJlc2VudCB0aGUgbmV0d29yayBwb3J0aW9uKS5cbiAgICpcbiAgICogRm9yIGV4YW1wbGU6XG4gICAqIENpZHJCbG9jay5jYWxjdWxhdGVOZXRtYXNrKDI0KSByZXR1cm5zICcyNTUuMjU1LjI1NS4wJ1xuICAgKlxuICAgKiBAcGFyYW0gbWFzayBUaGUgQ0lEUiBwcmVmaXggbGVuZ3RoIChiZXR3ZWVuIDAgYW5kIDMyKSBmb3Igd2hpY2ggdG8gY2FsY3VsYXRlIHRoZSBuZXRtYXNrLlxuICAgIC8vIENhbGN1bGF0ZSB0aGUgbmV0bWFzayBieSBwZXJmb3JtaW5nIGEgYml0d2lzZSBOT1Qgb24gdGhlIHJlc3VsdCBvZiAoMl4zMiAtIDJeKDMyIC0gbWFzaykpXG4gICAqIEByZXR1cm5zIFRoZSBuZXRtYXNrIHN0cmluZyBpbiBJUHY0IGFkZHJlc3MgZm9ybWF0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjYWxjdWxhdGVOZXRtYXNrKG1hc2s6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIE5ldHdvcmtVdGlscy5udW1Ub0lwKDIgKiogMzIgLSAyICoqICgzMiAtIG1hc2spKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBudW1iZXIgSVAgYWRkcmVzc2VzIGluIGEgQ0lEUiBNYXNrXG4gICAqXG4gICAqIEZvciBleGFtcGxlOlxuICAgKiBDaWRyQmxvY2suY2FsY3VsYXRlTmV0c2l6ZSgxNikgcmV0dXJucyA2NTUzNlxuICAgKlxuICAgKiBAcGFyYW0gbWFzayBUaGUgQ0lEUiBwcmVmaXggbGVuZ3RoIChiZXR3ZWVuIDAgYW5kIDMyKSBmb3Igd2hpY2ggdG8gY2FsY3VsYXRlIHRoZSBuZXR3b3JrIHNpemUuXG4gICAqIENpZHJCbG9jay5jYWxjdWxhdGVOZXRzaXplKDI0KSByZXR1cm5zIDI1NlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjYWxjdWxhdGVOZXRzaXplKG1hc2s6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIDIgKiogKDMyIC0gbWFzayk7XG4gIH1cblxuICAvKipcbiAgICogSVAgYWRkcmVzcyBpbiB0aGUgQ0lEUiBibG9jay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjaWRyOiBzdHJpbmc7XG5cbiAgLypcbiAgICogVGhlIENJRFIgbWFzayBlLmcuIGZvciBDSURSICcxMC4wLjAuMC8yMScgcmV0dXJucyAyMVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1hc2s6IG51bWJlcjtcblxuICAvKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIElQIGFkZHJlc3NlcyBpbiB0aGUgQ0lEUlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5ldHdvcmtTaXplOiBudW1iZXI7XG5cbiAgLypcbiAgICogVGhlIG5ldHdvcmsgYWRkcmVzcyBwcm92aWRlZCBpbiBDSURSIGNyZWF0aW9uIG9mZnNldCBieSB0aGUgTmV0c2l6ZSAtMVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBuZXR3b3JrQWRkcmVzczogbnVtYmVyO1xuXG4gIC8qXG4gICAqIFBhcnNlcyBlaXRoZXIgQ0lEUiBub3RhdGlvbiBTdHJpbmcgb3IgdHdvIG51bWJlcnMgcmVwcmVzZW50aW5nIHRoZSBJUFxuICAgKiBzcGFjZVxuICAgKlxuICAgKiBjaWRyIGV4cGVjdHMgYSBzdHJpbmcgJzEwLjAuMC4wLzE2J1xuICAgKiBpcEFkZHJlc3MgZXhwZWN0cyBhIG51bWJlclxuICAgKiBtYXNrIGV4cGVjdHMgYSBudW1iZXJcbiAgICpcbiAgICogSWYgdGhlIGdpdmVuIGBjaWRyYCBvciBgaXBBZGRyZXNzYCBpcyBub3QgdGhlIGJlZ2lubmluZyBvZiB0aGUgYmxvY2ssXG4gICAqIHRoZW4gdGhlIG5leHQgYXZhaWxhYmxlIGJsb2NrIHdpbGwgYmUgcmV0dXJuZWQuIEZvciBleGFtcGxlLCBpZlxuICAgKiBgMTAuMC4zLjEvMjhgIGlzIGdpdmVuIHRoZSByZXR1cm5lZCBibG9jayB3aWxsIHJlcHJlc2VudCBgMTAuMC4zLjE2LzI4YC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGNpZHI6IHN0cmluZylcbiAgY29uc3RydWN0b3IoaXBBZGRyZXNzOiBudW1iZXIsIG1hc2s6IG51bWJlcilcbiAgY29uc3RydWN0b3IoaXBBZGRyZXNzT3JDaWRyOiBzdHJpbmcgfCBudW1iZXIsIG1hc2s/OiBudW1iZXIpIHtcbiAgICBpZiAodHlwZW9mIGlwQWRkcmVzc09yQ2lkciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMubWFzayA9IHBhcnNlSW50KGlwQWRkcmVzc09yQ2lkci5zcGxpdCgnLycpWzFdLCAxMCk7XG4gICAgICB0aGlzLm5ldHdvcmtBZGRyZXNzID0gTmV0d29ya1V0aWxzLmlwVG9OdW0oaXBBZGRyZXNzT3JDaWRyLnNwbGl0KCcvJylbMF0pICtcbiAgICAgICAgQ2lkckJsb2NrLmNhbGN1bGF0ZU5ldHNpemUodGhpcy5tYXNrKSAtIDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2YgbWFzayA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhpcy5tYXNrID0gbWFzaztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHRoaXMgc2hvdWxkIGJlIGltcG9zc2libGVcbiAgICAgICAgdGhpcy5tYXNrID0gMTY7XG4gICAgICB9XG4gICAgICB0aGlzLm5ldHdvcmtBZGRyZXNzID0gaXBBZGRyZXNzT3JDaWRyICsgQ2lkckJsb2NrLmNhbGN1bGF0ZU5ldHNpemUodGhpcy5tYXNrKSAtIDE7XG4gICAgICB0aGlzLm5ldHdvcmtTaXplID0gMiAqKiAoMzIgLSB0aGlzLm1hc2spO1xuICAgIH1cbiAgICB0aGlzLm5ldHdvcmtTaXplID0gMiAqKiAoMzIgLSB0aGlzLm1hc2spO1xuICAgIHRoaXMuY2lkciA9IGAke3RoaXMubWluSXAoKX0vJHt0aGlzLm1hc2t9YDtcbiAgfVxuXG4gIC8qXG4gICAqIFRoZSBtYXhpbXVtIElQIGluIHRoZSBDSURSIEJsb2NrIGUuZy4gJzEwLjAuOC4yNTUnXG4gICAqL1xuICBwdWJsaWMgbWF4SXAoKTogc3RyaW5nIHtcbiAgICAvLyBtaW4gKyAoMl4oMzItbWFzaykpIC0gMSBbemVybyBuZWVkcyB0byBjb3VudF1cbiAgICByZXR1cm4gTmV0d29ya1V0aWxzLm51bVRvSXAodGhpcy5tYXhBZGRyZXNzKCkpO1xuICB9XG5cbiAgLypcbiAgICogQ2hlY2tzIGlmIHRoaXMgQ0lEUiBibG9jayBmdWxseSBjb250YWlucyB0aGUgcHJvdmlkZWQgQ0lEUiBibG9jay5cbiAgICpcbiAgICogQHBhcmFtIG90aGVyIFRoZSBDSURSIGJsb2NrIHRvIGNoZWNrIGZvciBjb250YWlubWVudC5cbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGlzIENJRFIgYmxvY2sgZnVsbHkgY29udGFpbnMgdGhlIHByb3ZpZGVkIENJRFIgYmxvY2ssIGZhbHNlIG90aGVyd2lzZS5cbiAgICpcbiAgICogVGhlIG1pbmltdW0gSVAgaW4gdGhlIENJRFIgQmxvY2sgZS5nLiAnMTAuMC4wLjAnXG4gICAqL1xuICBwdWJsaWMgbWluSXAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gTmV0d29ya1V0aWxzLm51bVRvSXAodGhpcy5taW5BZGRyZXNzKCkpO1xuICB9XG5cbiAgLypcbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgbWluaW11bSBJUHY0IGFkZHJlc3NcbiAgICovXG4gIHB1YmxpYyBtaW5BZGRyZXNzKCk6IG51bWJlciB7XG4gICAgY29uc3QgZGl2ID0gdGhpcy5uZXR3b3JrQWRkcmVzcyAlIHRoaXMubmV0d29ya1NpemU7XG4gICAgcmV0dXJuIHRoaXMubmV0d29ya0FkZHJlc3MgLSBkaXY7XG4gIH1cblxuICAvKlxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBtYXhpbXVtIElQdjQgYWRkcmVzc1xuICAgKi9cbiAgcHVibGljIG1heEFkZHJlc3MoKTogbnVtYmVyIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbWF4aW11bSBJUCBhZGRyZXNzIGluIHRoZSBDSURSIGJsb2NrIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gYWRkcmVzcyArICgyXigzMi1tYXNrKSkgLSAxLlxuICAgICAqIFRoaXMgaXMgYmVjYXVzZSB0aGUgbWluaW11bSBhZGRyZXNzIHJlcHJlc2VudHMgdGhlIG5ldHdvcmsgYWRkcmVzcywgYW5kIHRoZSBtYXhpbXVtIGFkZHJlc3MgaXMgdGhlIGJyb2FkY2FzdCBhZGRyZXNzLlxuICAgICAqL1xuICAgIC8vIG1pbiArICgyXigzMi1tYXNrKSkgLSAxIFt6ZXJvIG5lZWRzIHRvIGNvdW50XVxuICAgIHJldHVybiB0aGlzLm1pbkFkZHJlc3MoKSArIHRoaXMubmV0d29ya1NpemUgLSAxO1xuICB9XG5cbiAgLypcbiAgICogUmV0dXJucyB0aGUgbmV4dCBjb25zZWN1dGl2ZSBDSURSIGJsb2NrIG9mIHRoZSBzYW1lIG1hc2sgc2l6ZSBmb2xsb3dpbmcgdGhpcyBDSURSIGJsb2NrLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgaWYgdGhpcyBDSURSIGJsb2NrIGlzICcxMC4wLjAuMC8yNCcsIHRoZSBuZXh0IGJsb2NrIHdvdWxkIGJlICcxMC4wLjEuMC8yNCcuXG4gICAqXG4gICAqIFJldHVybnMgdGhlIG5leHQgQ0lEUiBCbG9jayBvZiB0aGUgc2FtZSBtYXNrIHNpemVcbiAgICovXG4gIHB1YmxpYyBuZXh0QmxvY2soKTogQ2lkckJsb2NrIHtcbiAgICByZXR1cm4gbmV3IENpZHJCbG9jayh0aGlzLm1heEFkZHJlc3MoKSArIDEsIHRoaXMubWFzayk7XG4gIH1cblxuICAvKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBDaWRyQmxvY2sgZnVsbHkgY29udGFpbnMgdGhlIHByb3ZpZGVkIENpZHJCbG9ja1xuICAgKi9cbiAgcHVibGljIGNvbnRhaW5zQ2lkcihvdGhlcjogQ2lkckJsb2NrKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLm1heEFkZHJlc3MoKSA+PSBvdGhlci5tYXhBZGRyZXNzKCkpICYmXG4gICAgICAodGhpcy5taW5BZGRyZXNzKCkgPD0gb3RoZXIubWluQWRkcmVzcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdHdvIElQIGFkZHJlc3MgcmFuZ2VzIG92ZXJsYXAuXG4gICAqXG4gICAqIEBwYXJhbSByYW5nZTEgVGhlIGZpcnN0IElQIGFkZHJlc3MgcmFuZ2UgcmVwcmVzZW50ZWQgYXMgYW4gYXJyYXkgW3N0YXJ0LCBlbmRdLlxuICAgKiBAcGFyYW0gcmFuZ2UyIFRoZSBzZWNvbmQgSVAgYWRkcmVzcyByYW5nZSByZXByZXNlbnRlZCBhcyBhbiBhcnJheSBbc3RhcnQsIGVuZF0uXG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHR3byBJUCBhZGRyZXNzIHJhbmdlcyBvdmVybGFwLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqXG4gICAqIE5vdGU6IFRoaXMgbWV0aG9kIGFzc3VtZXMgdGhhdCB0aGUgc3RhcnQgYW5kIGVuZCBhZGRyZXNzZXMgYXJlIHZhbGlkIElQdjQgYWRkcmVzc2VzLlxuICAgKi9cbiAgcHVibGljIHJhbmdlc092ZXJsYXAocmFuZ2UxOiBbc3RyaW5nLCBzdHJpbmddLCByYW5nZTI6IFtzdHJpbmcsIHN0cmluZ10pOiBib29sZWFuIHtcbiAgICBjb25zdCBbc3RhcnQxLCBlbmQxXSA9IHJhbmdlMTtcbiAgICBjb25zdCBbc3RhcnQyLCBlbmQyXSA9IHJhbmdlMjtcblxuICAgIC8vIENoZWNrIGlmIHJhbmdlcyBvdmVybGFwXG4gICAgcmV0dXJuIHN0YXJ0MSA8PSBlbmQyICYmIHN0YXJ0MiA8PSBlbmQxO1xuICB9XG5cbn1cblxuLyoqXG4gKiBDbGFzcyB3aXRoIGhlbHBlciBmdW5jdGlvbnMgdG8gc3VwcG9ydFxuICogU3VibmV0IElwdjYgQWRkcmVzcyBWYWxpZGF0aW9uXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBtZXRob2RzIGZvciB3b3JraW5nIHdpdGggSVB2NiBDSURSIGJsb2NrcywgaW5jbHVkaW5nIGNhbGN1bGF0aW5nIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtXG4gKiBJUCBhZGRyZXNzZXMgaW4gYSBDSURSIGJsb2NrLCBhbmQgY2hlY2tpbmcgaWYgdHdvIENJRFIgYmxvY2tzIG92ZXJsYXAuXG4gKi9cbmV4cG9ydCBjbGFzcyBDaWRyQmxvY2tJcHY2IHtcblxuICAvKipcbiAgICogSXB2NiBDSURSIHJhbmdlXG4gICAqL1xuICBwdWJsaWMgY2lkcjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIENJRFIgcHJlZml4IGxlbmd0aCAobnVtYmVyIG9mIGJpdHMgdXNlZCBmb3IgdGhlIG5ldHdvcmsgcG9ydGlvbiBvZiB0aGUgYWRkcmVzcykuXG4gICAqL1xuICBwdWJsaWMgY2lkclByZWZpeDogbnVtYmVyO1xuICBwcml2YXRlIGlwUGFydHM6IGJpZ2ludFtdO1xuICBwcml2YXRlIG5ldHdvcmtCaXRzOiBudW1iZXI7XG4gIHByaXZhdGUgbmV0d29ya1BhcnQ6IGJpZ2ludFtdO1xuXG4gIGNvbnN0cnVjdG9yKGNpZHI6IHN0cmluZykge1xuICAgIHRoaXMuY2lkciA9IGNpZHI7XG4gICAgY29uc3QgW2lwQWRkcmVzcywgcHJlZml4XSA9IGNpZHIuc3BsaXQoJy8nKTtcbiAgICB0aGlzLmNpZHJQcmVmaXggPSBwYXJzZUludChwcmVmaXgsIDEwKTtcbiAgICB0aGlzLmlwUGFydHMgPSB0aGlzLnBhcnNlQmlnSW50UGFydHMoaXBBZGRyZXNzKTtcbiAgICB0aGlzLm5ldHdvcmtCaXRzID0gdGhpcy5jaWRyUHJlZml4O1xuICAgIHRoaXMubmV0d29ya1BhcnQgPSB0aGlzLmlwUGFydHMuc2xpY2UoMCwgTWF0aC5jZWlsKHRoaXMubmV0d29ya0JpdHMgLyAxNikpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUJpZ0ludFBhcnRzKGlwQWRkcmVzczogc3RyaW5nKTogYmlnaW50W10ge1xuICAgIHJldHVybiBpcEFkZHJlc3Muc3BsaXQoJzonKS5tYXAoKHBhcnQpID0+IEJpZ0ludChgMHgke3BhcnQucGFkU3RhcnQoNCwgJzAnKX1gIHx8ICcwJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIE1pbmltdW0gSVB2NiBhZGRyZXNzIGZvciBhIHByb3ZpZGVkIENJRFJcbiAgICovXG4gIHB1YmxpYyBtaW5JcCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0YXJ0SVAgPSBbLi4udGhpcy5uZXR3b3JrUGFydF07XG4gICAgZm9yIChsZXQgaSA9IHRoaXMubmV0d29ya1BhcnQubGVuZ3RoOyBpIDwgODsgaSsrKSB7XG4gICAgICBzdGFydElQLnB1c2goQmlnSW50KDApKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXJ0SVAubWFwKHRoaXMuZm9ybWF0SVB2NlBhcnQpLmpvaW4oJzonKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBNYXhpbXVtIElQdjYgYWRkcmVzcyBmb3IgYSBwcm92aWRlZCBDSURSXG4gICAqL1xuICBwdWJsaWMgbWF4SXAoKTogc3RyaW5nIHtcbiAgICBjb25zdCBlbmRJUCA9IFsuLi50aGlzLm5ldHdvcmtQYXJ0XTtcbiAgICBjb25zdCBob3N0UGFydCA9IEFycmF5KDggLSB0aGlzLm5ldHdvcmtQYXJ0Lmxlbmd0aCkuZmlsbChCaWdJbnQoMHhmZmZmKSk7XG4gICAgZW5kSVAucHVzaCguLi5ob3N0UGFydCk7XG5cbiAgICByZXR1cm4gZW5kSVAubWFwKHRoaXMuZm9ybWF0SVB2NlBhcnQpLmpvaW4oJzonKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0SVB2NlBhcnQgPSAocGFydDogYmlnaW50KSA9PiBwYXJ0LnRvU3RyaW5nKDE2KS5wYWRTdGFydCg0LCAnMCcpO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gcmFuZ2UxIElwdjYgQ0lEUiByYW5nZSB0byBjb21wYXJlXG4gICAqIEBwYXJhbSByYW5nZTIgSXB2NiBDSURSIHJhbmdlIHRvIGNvbXBhcmVcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0d28gcmFuZ2VzIG92ZXJsYXAsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIHJhbmdlc092ZXJsYXAocmFuZ2UxOiBzdHJpbmcsIHJhbmdlMjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgW3N0YXJ0MSwgZW5kMV0gPSB0aGlzLmdldElQdjZSYW5nZShyYW5nZTEpO1xuICAgIGNvbnN0IFtzdGFydDIsIGVuZDJdID0gdGhpcy5nZXRJUHY2UmFuZ2UocmFuZ2UyKTtcblxuICAgIHJldHVybiAoc3RhcnQxIDw9IGVuZDIpICYmIChzdGFydDIgPD0gZW5kMSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGNpZHJcbiAgICogQHJldHVybnMgUmFuZ2UgaW4gdGhlIGZyb20gb2YgYmlnIGludCBudW1iZXIgW3N0YXJ0LCBlbmRdXG4gICAqL1xuICBwcml2YXRlIGdldElQdjZSYW5nZShjaWRyOiBzdHJpbmcpOiBbYmlnaW50LCBiaWdpbnRdIHtcbiAgICBjb25zdCBbaXB2NkFkZHJlc3MsIHByZWZpeExlbmd0aF0gPSBjaWRyLnNwbGl0KCcvJyk7XG4gICAgY29uc3QgaXB2Nk51bWJlciA9IHRoaXMuaXB2NlRvTnVtYmVyKGlwdjZBZGRyZXNzKTtcbiAgICBjb25zdCBtYXNrID0gKEJpZ0ludCgxKSA8PCBCaWdJbnQoMTI4IC0gTnVtYmVyKHByZWZpeExlbmd0aCkpKSAtIEJpZ0ludCgxKTtcbiAgICBjb25zdCBuZXR3b3JrUHJlZml4ID0gaXB2Nk51bWJlciAmIH5tYXNrO1xuICAgIGNvbnN0IHN0YXJ0ID0gbmV0d29ya1ByZWZpeDtcbiAgICBjb25zdCBlbmQgPSBuZXR3b3JrUHJlZml4IHwgbWFzaztcblxuICAgIHJldHVybiBbc3RhcnQsIGVuZF07XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGlwdjZBZGRyZXNzXG4gICAqIEByZXR1cm5zIENvbnZlcnRzIGdpdmVuIGlwdjYgYWRkcmVzcyByYW5nZSB0byBiaWcgaW50IG51bWJlclxuICAgKi9cbiAgcHJpdmF0ZSBpcHY2VG9OdW1iZXIoaXB2NkFkZHJlc3M6IHN0cmluZyk6IGJpZ2ludCB7XG4gICAgY29uc3QgYmxvY2tzID0gdGhpcy5wYXJzZUJpZ0ludFBhcnRzKGlwdjZBZGRyZXNzKTtcbiAgICBsZXQgaXB2Nk51bWJlciA9IEJpZ0ludCgwKTtcbiAgICBmb3IgKGNvbnN0IGJsb2NrIG9mIGJsb2Nrcykge1xuICAgICAgLyogdHNsaW50OmRpc2FibGU6bm8tYml0d2lzZSAqL1xuICAgICAgaXB2Nk51bWJlciA9IChpcHY2TnVtYmVyIDw8IEJpZ0ludCgxNikpICsgYmxvY2s7XG4gICAgfVxuICAgIHJldHVybiBpcHY2TnVtYmVyO1xuICB9XG59XG5cbiJdfQ==
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFFQUFxRTs7O0FBU3JFLHdFQUVDO0FBS0QsNEJBRUM7QUFLRCw0Q0FRQztBQUVELDBCQUVDO0FBL0JEOzs7O0dBSUc7QUFDSCxTQUFnQiw4QkFBOEIsQ0FBQyxNQUFlO0lBQzVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixRQUFRLENBQUMsSUFBWSxFQUFFLENBQVM7SUFDOUMsT0FBTyxHQUFHLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFDakMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsT0FBa0I7SUFDakQsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUM5QixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLElBQUksTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hELEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QixDQUFDO0FBRUQsU0FBZ0IsT0FBTyxDQUFJLEVBQVM7SUFDbEMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQWEsWUFBWTtJQUV2Qjs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLFNB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QU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sYUFBYSxHQUFHLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQztRQUN6QyxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUM7UUFDNUIsTUFBTSxHQUFHLEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQztRQUVqQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQ3JCO0lBRUQ7OztPQUdHO0lBQ0ssWUFBWSxDQUFDLFdBQW1CO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRCxJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMzQiwrQkFBK0I7WUFDL0IsVUFBVSxHQUFHLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNsRCxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUM7S0FDbkI7Q0FDRjtBQTdGRCxzQ0E2RkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKmVzbGludCBuby1iaXR3aXNlOiBbXCJlcnJvclwiLCB7IFwiYWxsb3dcIjogW1wiflwiLCBcInxcIiwgXCI8PFwiLCBcIiZcIl0gfV0gKi9cblxuaW1wb3J0IHsgSVN1Ym5ldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuXG4vKipcbiAqIFJldHVybiBhIHN1Ym5ldCBuYW1lIGZyb20gaXRzIGNvbnN0cnVjdCBJRFxuICpcbiAqIEFsbCBzdWJuZXQgbmFtZXMgbG9vayBsaWtlIE5BTUUgPD4gXCJTdWJuZXRcIiA8PiBJTkRFWFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3VibmV0R3JvdXBOYW1lRnJvbUNvbnN0cnVjdElkKHN1Ym5ldDogSVN1Ym5ldCkge1xuICByZXR1cm4gc3VibmV0Lm5vZGUuaWQucmVwbGFjZSgvU3VibmV0XFxkKyQvLCAnJyk7XG59XG5cbi8qKlxuICogTWFrZSB0aGUgc3VibmV0IGNvbnN0cnVjdCBJRCBmcm9tIGEgbmFtZSBhbmQgbnVtYmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJuZXRJZChuYW1lOiBzdHJpbmcsIGk6IG51bWJlcikge1xuICByZXR1cm4gYCR7bmFtZX1TdWJuZXQke2kgKyAxfWA7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSB1bmlvbiBvZiB0YWJsZSBJRHMgZnJvbSBhbGwgc2VsZWN0ZWQgc3VibmV0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gYWxsUm91dGVUYWJsZUlkcyhzdWJuZXRzOiBJU3VibmV0W10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHJldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IHN1Ym5ldCBvZiBzdWJuZXRzKSB7XG4gICAgaWYgKHN1Ym5ldC5yb3V0ZVRhYmxlICYmIHN1Ym5ldC5yb3V0ZVRhYmxlLnJvdXRlVGFibGVJZCkge1xuICAgICAgcmV0LmFkZChzdWJuZXQucm91dGVUYWJsZS5yb3V0ZVRhYmxlSWQpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gQXJyYXkuZnJvbShyZXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmxhdHRlbjxBPih4czogQVtdW10pOiBBW10ge1xuICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSwgeHMpO1xufVxuXG4vKipcbiAqIE5ldHdvcmtVdGlscyBjb250YWlucyBoZWxwZXJzIHRvIHdvcmsgd2l0aCBuZXR3b3JrIGNvbnN0cnVjdHMgKHN1Ym5ldHMvcmFuZ2VzKVxuICovXG5leHBvcnQgY2xhc3MgTmV0d29ya1V0aWxzIHtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIGFuIElQdjQgYWRkcmVzcyBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBpcEFkZHJlc3MgVGhlIElQdjQgYWRkcmVzcyBzdHJpbmcgdG8gYmUgdmFsaWRhdGVkLlxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBJUHY0IGFkZHJlc3MsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogVmFsaWRhdGVzIGFuIElQdjQgc3RyaW5nXG4gICAqXG4gICAqIHJldHVybnMgdHJ1ZSBvZiB0aGUgc3RyaW5nIGNvbnRhaW5zIDQgbnVtYmVycyBiZXR3ZWVuIDAtMjU1IGRlbGltaXRlZCBieVxuICAgKiBhIGAuYCBjaGFyYWN0ZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmFsaWRJcChpcEFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG9jdGV0cyA9IGlwQWRkcmVzcy5zcGxpdCgnLicpO1xuICAgIGlmIChvY3RldHMubGVuZ3RoICE9PSA0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBvY3RldHMubWFwKChvY3RldDogc3RyaW5nKSA9PiBwYXJzZUludChvY3RldCwgMTApKS5cbiAgICAgIGV2ZXJ5KChvY3RldDogbnVtYmVyKSA9PiBvY3RldCA+PSAwICYmIG9jdGV0IDw9IDI1NSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gSVB2NCBhZGRyZXNzIHRvIGl0cyBjb3JyZXNwb25kaW5nIG51bWVyaWNhbCB2YWx1ZS5cbiAgICpcbiAgICogVXNlcyB0aGUgZm9ybXVsYTpcbiAgICogKGZpcnN0IG9jdGV0ICogMjU2wrMpICsgKHNlY29uZCBvY3RldCAqIDI1NsKyKSArICh0aGlyZCBvY3RldCAqIDI1NikgK1xuICAgKiAoZm91cnRoIG9jdGV0KVxuICAgKlxuICAgKiBAcGFyYW0gIGlwQWRkcmVzcyB0aGUgSVAgYWRkcmVzcyAoZS5nLiAxNzQuNjYuMTczLjE2OClcbiAgICogQHJldHVybnMgdGhlIGludGVnZXIgdmFsdWUgb2YgdGhlIElQIGFkZHJlc3MgKGUuZyAyOTIzNjA1NDE2KVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpcFRvTnVtKGlwQWRkcmVzczogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMudmFsaWRJcChpcEFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7aXBBZGRyZXNzfSBpcyBub3QgdmFsaWRgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXBBZGRyZXNzXG4gICAgICAuc3BsaXQoJy4nKVxuICAgICAgLnJlZHVjZShcbiAgICAgICAgKHA6IG51bWJlciwgYzogc3RyaW5nLCBpOiBudW1iZXIpID0+IHAgKyBwYXJzZUludChjLCAxMCkgKiAyNTYgKiogKDMgLSBpKSxcbiAgICAgICAgMCxcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGFrZXMgbnVtYmVyIGFuZCBjb252ZXJ0cyBpdCB0byBJUHY0IGFkZHJlc3Mgc3RyaW5nXG4gICAqXG4gICAqIFRha2VzIGEgbnVtYmVyIChlLmcgMjkyMzYwNTQxNikgYW5kIGNvbnZlcnRzIGl0IHRvIGFuIElQdjQgYWRkcmVzcyBzdHJpbmdcbiAgICogY3VycmVudGx5IG9ubHkgc3VwcG9ydHMgSVB2NFxuICAgKlxuICAgKiBAcGFyYW0gaXBOdW0gaW50ZWdlciB2YWx1ZSBvZiB0aGUgSVAgYWRkcmVzcyAoZS5nIDI5MjM2MDU0MTYpXG4gICAqIEByZXR1cm5zIElQdjQgYWRkcmVzcyAoZS5nLiAxNzQuNjYuMTczLjE2OClcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbnVtVG9JcChpcE51bTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAvLyB0aGlzIGFsbCBiZWNhdXNlIGJpdHdpc2UgbWF0aCBpcyBzaWduZWRcbiAgICBsZXQgcmVtYWluaW5nID0gaXBOdW07XG4gICAgY29uc3QgYWRkcmVzcyA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0OyBpKyspIHtcbiAgICAgIGlmIChyZW1haW5pbmcgIT09IDApIHtcbiAgICAgICAgYWRkcmVzcy5wdXNoKE1hdGguZmxvb3IocmVtYWluaW5nIC8gMjU2ICoqICgzIC0gaSkpKTtcbiAgICAgICAgcmVtYWluaW5nID0gcmVtYWluaW5nICUgMjU2ICoqICgzIC0gaSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZGRyZXNzLnB1c2goMCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGlwQWRkcmVzczogc3RyaW5nID0gYWRkcmVzcy5qb2luKCcuJyk7XG4gICAgaWYgKCAhdGhpcy52YWxpZElwKGlwQWRkcmVzcykgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7aXBBZGRyZXNzfSBpcyBub3QgYSB2YWxpZCBJUCBBZGRyZXNzYCk7XG4gICAgfVxuICAgIHJldHVybiBpcEFkZHJlc3M7XG4gIH1cbn1cblxuLyoqXG4gKiBFeHBvcnRlZCBjbGFzcyBmcm9tIFZQQyB0byBzdXBwb3J0IHN1Ym5ldCBmaWx0ZXJpbmdcbiAqIGFuZCBDSURSIHZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIENpZHJCbG9jayB7XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIG5ldG1hc2sgZm9yIGEgZ2l2ZW4gQ0lEUiBtYXNrXG4gICAqXG4gICAqIFRoZSBuZXRtYXNrIGlzIGEgMzItYml0IGJpbmFyeSB2YWx1ZSB1c2VkIHRvIHNlcGFyYXRlIHRoZSBuZXR3b3JrIHBvcnRpb24gZnJvbSB0aGUgaG9zdCBwb3J0aW9uIG9mIGFuIElQdjQgYWRkcmVzcy5cbiAgICogSXQgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgQ0lEUiBwcmVmaXggbGVuZ3RoICh0aGUgbnVtYmVyIG9mIGJpdHMgdXNlZCB0byByZXByZXNlbnQgdGhlIG5ldHdvcmsgcG9ydGlvbikuXG4gICAqXG4gICAqIEZvciBleGFtcGxlOlxuICAgKiBDaWRyQmxvY2suY2FsY3VsYXRlTmV0bWFzaygyNCkgcmV0dXJucyAnMjU1LjI1NS4yNTUuMCdcbiAgICpcbiAgICogQHBhcmFtIG1hc2sgVGhlIENJRFIgcHJlZml4IGxlbmd0aCAoYmV0d2VlbiAwIGFuZCAzMikgZm9yIHdoaWNoIHRvIGNhbGN1bGF0ZSB0aGUgbmV0bWFzay5cbiAgICAvLyBDYWxjdWxhdGUgdGhlIG5ldG1hc2sgYnkgcGVyZm9ybWluZyBhIGJpdHdpc2UgTk9UIG9uIHRoZSByZXN1bHQgb2YgKDJeMzIgLSAyXigzMiAtIG1hc2spKVxuICAgKiBAcmV0dXJucyBUaGUgbmV0bWFzayBzdHJpbmcgaW4gSVB2NCBhZGRyZXNzIGZvcm1hdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY2FsY3VsYXRlTmV0bWFzayhtYXNrOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBOZXR3b3JrVXRpbHMubnVtVG9JcCgyICoqIDMyIC0gMiAqKiAoMzIgLSBtYXNrKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgbnVtYmVyIElQIGFkZHJlc3NlcyBpbiBhIENJRFIgTWFza1xuICAgKlxuICAgKiBGb3IgZXhhbXBsZTpcbiAgICogQ2lkckJsb2NrLmNhbGN1bGF0ZU5ldHNpemUoMTYpIHJldHVybnMgNjU1MzZcbiAgICpcbiAgICogQHBhcmFtIG1hc2sgVGhlIENJRFIgcHJlZml4IGxlbmd0aCAoYmV0d2VlbiAwIGFuZCAzMikgZm9yIHdoaWNoIHRvIGNhbGN1bGF0ZSB0aGUgbmV0d29yayBzaXplLlxuICAgKiBDaWRyQmxvY2suY2FsY3VsYXRlTmV0c2l6ZSgyNCkgcmV0dXJucyAyNTZcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY2FsY3VsYXRlTmV0c2l6ZShtYXNrOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiAyICoqICgzMiAtIG1hc2spO1xuICB9XG5cbiAgLyoqXG4gICAqIElQIGFkZHJlc3MgaW4gdGhlIENJRFIgYmxvY2suXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2lkcjogc3RyaW5nO1xuXG4gIC8qXG4gICAqIFRoZSBDSURSIG1hc2sgZS5nLiBmb3IgQ0lEUiAnMTAuMC4wLjAvMjEnIHJldHVybnMgMjFcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtYXNrOiBudW1iZXI7XG5cbiAgLypcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiBJUCBhZGRyZXNzZXMgaW4gdGhlIENJRFJcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuZXR3b3JrU2l6ZTogbnVtYmVyO1xuXG4gIC8qXG4gICAqIFRoZSBuZXR3b3JrIGFkZHJlc3MgcHJvdmlkZWQgaW4gQ0lEUiBjcmVhdGlvbiBvZmZzZXQgYnkgdGhlIE5ldHNpemUgLTFcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgbmV0d29ya0FkZHJlc3M6IG51bWJlcjtcblxuICAvKlxuICAgKiBQYXJzZXMgZWl0aGVyIENJRFIgbm90YXRpb24gU3RyaW5nIG9yIHR3byBudW1iZXJzIHJlcHJlc2VudGluZyB0aGUgSVBcbiAgICogc3BhY2VcbiAgICpcbiAgICogY2lkciBleHBlY3RzIGEgc3RyaW5nICcxMC4wLjAuMC8xNidcbiAgICogaXBBZGRyZXNzIGV4cGVjdHMgYSBudW1iZXJcbiAgICogbWFzayBleHBlY3RzIGEgbnVtYmVyXG4gICAqXG4gICAqIElmIHRoZSBnaXZlbiBgY2lkcmAgb3IgYGlwQWRkcmVzc2AgaXMgbm90IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJsb2NrLFxuICAgKiB0aGVuIHRoZSBuZXh0IGF2YWlsYWJsZSBibG9jayB3aWxsIGJlIHJldHVybmVkLiBGb3IgZXhhbXBsZSwgaWZcbiAgICogYDEwLjAuMy4xLzI4YCBpcyBnaXZlbiB0aGUgcmV0dXJuZWQgYmxvY2sgd2lsbCByZXByZXNlbnQgYDEwLjAuMy4xNi8yOGAuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihjaWRyOiBzdHJpbmcpXG4gIGNvbnN0cnVjdG9yKGlwQWRkcmVzczogbnVtYmVyLCBtYXNrOiBudW1iZXIpXG4gIGNvbnN0cnVjdG9yKGlwQWRkcmVzc09yQ2lkcjogc3RyaW5nIHwgbnVtYmVyLCBtYXNrPzogbnVtYmVyKSB7XG4gICAgaWYgKHR5cGVvZiBpcEFkZHJlc3NPckNpZHIgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLm1hc2sgPSBwYXJzZUludChpcEFkZHJlc3NPckNpZHIuc3BsaXQoJy8nKVsxXSwgMTApO1xuICAgICAgdGhpcy5uZXR3b3JrQWRkcmVzcyA9IE5ldHdvcmtVdGlscy5pcFRvTnVtKGlwQWRkcmVzc09yQ2lkci5zcGxpdCgnLycpWzBdKSArXG4gICAgICAgIENpZHJCbG9jay5jYWxjdWxhdGVOZXRzaXplKHRoaXMubWFzaykgLSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIG1hc2sgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHRoaXMubWFzayA9IG1hc2s7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyB0aGlzIHNob3VsZCBiZSBpbXBvc3NpYmxlXG4gICAgICAgIHRoaXMubWFzayA9IDE2O1xuICAgICAgfVxuICAgICAgdGhpcy5uZXR3b3JrQWRkcmVzcyA9IGlwQWRkcmVzc09yQ2lkciArIENpZHJCbG9jay5jYWxjdWxhdGVOZXRzaXplKHRoaXMubWFzaykgLSAxO1xuICAgICAgdGhpcy5uZXR3b3JrU2l6ZSA9IDIgKiogKDMyIC0gdGhpcy5tYXNrKTtcbiAgICB9XG4gICAgdGhpcy5uZXR3b3JrU2l6ZSA9IDIgKiogKDMyIC0gdGhpcy5tYXNrKTtcbiAgICB0aGlzLmNpZHIgPSBgJHt0aGlzLm1pbklwKCl9LyR7dGhpcy5tYXNrfWA7XG4gIH1cblxuICAvKlxuICAgKiBUaGUgbWF4aW11bSBJUCBpbiB0aGUgQ0lEUiBCbG9jayBlLmcuICcxMC4wLjguMjU1J1xuICAgKi9cbiAgcHVibGljIG1heElwKCk6IHN0cmluZyB7XG4gICAgLy8gbWluICsgKDJeKDMyLW1hc2spKSAtIDEgW3plcm8gbmVlZHMgdG8gY291bnRdXG4gICAgcmV0dXJuIE5ldHdvcmtVdGlscy5udW1Ub0lwKHRoaXMubWF4QWRkcmVzcygpKTtcbiAgfVxuXG4gIC8qXG4gICAqIENoZWNrcyBpZiB0aGlzIENJRFIgYmxvY2sgZnVsbHkgY29udGFpbnMgdGhlIHByb3ZpZGVkIENJRFIgYmxvY2suXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciBUaGUgQ0lEUiBibG9jayB0byBjaGVjayBmb3IgY29udGFpbm1lbnQuXG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhpcyBDSURSIGJsb2NrIGZ1bGx5IGNvbnRhaW5zIHRoZSBwcm92aWRlZCBDSURSIGJsb2NrLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqXG4gICAqIFRoZSBtaW5pbXVtIElQIGluIHRoZSBDSURSIEJsb2NrIGUuZy4gJzEwLjAuMC4wJ1xuICAgKi9cbiAgcHVibGljIG1pbklwKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIE5ldHdvcmtVdGlscy5udW1Ub0lwKHRoaXMubWluQWRkcmVzcygpKTtcbiAgfVxuXG4gIC8qXG4gICAqIFJldHVybnMgdGhlIG51bWJlciByZXByZXNlbnRhdGlvbiBmb3IgdGhlIG1pbmltdW0gSVB2NCBhZGRyZXNzXG4gICAqL1xuICBwdWJsaWMgbWluQWRkcmVzcygpOiBudW1iZXIge1xuICAgIGNvbnN0IGRpdiA9IHRoaXMubmV0d29ya0FkZHJlc3MgJSB0aGlzLm5ldHdvcmtTaXplO1xuICAgIHJldHVybiB0aGlzLm5ldHdvcmtBZGRyZXNzIC0gZGl2O1xuICB9XG5cbiAgLypcbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgbWF4aW11bSBJUHY0IGFkZHJlc3NcbiAgICovXG4gIHB1YmxpYyBtYXhBZGRyZXNzKCk6IG51bWJlciB7XG4gICAgLyoqXG4gICAgICogVGhlIG1heGltdW0gSVAgYWRkcmVzcyBpbiB0aGUgQ0lEUiBibG9jayBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIGFkZHJlc3MgKyAoMl4oMzItbWFzaykpIC0gMS5cbiAgICAgKiBUaGlzIGlzIGJlY2F1c2UgdGhlIG1pbmltdW0gYWRkcmVzcyByZXByZXNlbnRzIHRoZSBuZXR3b3JrIGFkZHJlc3MsIGFuZCB0aGUgbWF4aW11bSBhZGRyZXNzIGlzIHRoZSBicm9hZGNhc3QgYWRkcmVzcy5cbiAgICAgKi9cbiAgICAvLyBtaW4gKyAoMl4oMzItbWFzaykpIC0gMSBbemVybyBuZWVkcyB0byBjb3VudF1cbiAgICByZXR1cm4gdGhpcy5taW5BZGRyZXNzKCkgKyB0aGlzLm5ldHdvcmtTaXplIC0gMTtcbiAgfVxuXG4gIC8qXG4gICAqIFJldHVybnMgdGhlIG5leHQgY29uc2VjdXRpdmUgQ0lEUiBibG9jayBvZiB0aGUgc2FtZSBtYXNrIHNpemUgZm9sbG93aW5nIHRoaXMgQ0lEUiBibG9jay5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGlmIHRoaXMgQ0lEUiBibG9jayBpcyAnMTAuMC4wLjAvMjQnLCB0aGUgbmV4dCBibG9jayB3b3VsZCBiZSAnMTAuMC4xLjAvMjQnLlxuICAgKlxuICAgKiBSZXR1cm5zIHRoZSBuZXh0IENJRFIgQmxvY2sgb2YgdGhlIHNhbWUgbWFzayBzaXplXG4gICAqL1xuICBwdWJsaWMgbmV4dEJsb2NrKCk6IENpZHJCbG9jayB7XG4gICAgcmV0dXJuIG5ldyBDaWRyQmxvY2sodGhpcy5tYXhBZGRyZXNzKCkgKyAxLCB0aGlzLm1hc2spO1xuICB9XG5cbiAgLypcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgQ2lkckJsb2NrIGZ1bGx5IGNvbnRhaW5zIHRoZSBwcm92aWRlZCBDaWRyQmxvY2tcbiAgICovXG4gIHB1YmxpYyBjb250YWluc0NpZHIob3RoZXI6IENpZHJCbG9jayk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5tYXhBZGRyZXNzKCkgPj0gb3RoZXIubWF4QWRkcmVzcygpKSAmJlxuICAgICAgKHRoaXMubWluQWRkcmVzcygpIDw9IG90aGVyLm1pbkFkZHJlc3MoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHR3byBJUCBhZGRyZXNzIHJhbmdlcyBvdmVybGFwLlxuICAgKlxuICAgKiBAcGFyYW0gcmFuZ2UxIFRoZSBmaXJzdCBJUCBhZGRyZXNzIHJhbmdlIHJlcHJlc2VudGVkIGFzIGFuIGFycmF5IFtzdGFydCwgZW5kXS5cbiAgICogQHBhcmFtIHJhbmdlMiBUaGUgc2Vjb25kIElQIGFkZHJlc3MgcmFuZ2UgcmVwcmVzZW50ZWQgYXMgYW4gYXJyYXkgW3N0YXJ0LCBlbmRdLlxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSB0d28gSVAgYWRkcmVzcyByYW5nZXMgb3ZlcmxhcCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBOb3RlOiBUaGlzIG1ldGhvZCBhc3N1bWVzIHRoYXQgdGhlIHN0YXJ0IGFuZCBlbmQgYWRkcmVzc2VzIGFyZSB2YWxpZCBJUHY0IGFkZHJlc3Nlcy5cbiAgICovXG4gIHB1YmxpYyByYW5nZXNPdmVybGFwKHJhbmdlMTogW3N0cmluZywgc3RyaW5nXSwgcmFuZ2UyOiBbc3RyaW5nLCBzdHJpbmddKTogYm9vbGVhbiB7XG4gICAgY29uc3QgW3N0YXJ0MSwgZW5kMV0gPSByYW5nZTE7XG4gICAgY29uc3QgW3N0YXJ0MiwgZW5kMl0gPSByYW5nZTI7XG5cbiAgICAvLyBDaGVjayBpZiByYW5nZXMgb3ZlcmxhcFxuICAgIHJldHVybiBzdGFydDEgPD0gZW5kMiAmJiBzdGFydDIgPD0gZW5kMTtcbiAgfVxuXG59XG5cbi8qKlxuICogQ2xhc3Mgd2l0aCBoZWxwZXIgZnVuY3Rpb25zIHRvIHN1cHBvcnRcbiAqIFN1Ym5ldCBJcHY2IEFkZHJlc3MgVmFsaWRhdGlvblxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgbWV0aG9kcyBmb3Igd29ya2luZyB3aXRoIElQdjYgQ0lEUiBibG9ja3MsIGluY2x1ZGluZyBjYWxjdWxhdGluZyB0aGUgbWluaW11bSBhbmQgbWF4aW11bVxuICogSVAgYWRkcmVzc2VzIGluIGEgQ0lEUiBibG9jaywgYW5kIGNoZWNraW5nIGlmIHR3byBDSURSIGJsb2NrcyBvdmVybGFwLlxuICovXG5leHBvcnQgY2xhc3MgQ2lkckJsb2NrSXB2NiB7XG5cbiAgLyoqXG4gICAqIElwdjYgQ0lEUiByYW5nZVxuICAgKi9cbiAgcHVibGljIGNpZHI6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBDSURSIHByZWZpeCBsZW5ndGggKG51bWJlciBvZiBiaXRzIHVzZWQgZm9yIHRoZSBuZXR3b3JrIHBvcnRpb24gb2YgdGhlIGFkZHJlc3MpLlxuICAgKi9cbiAgcHVibGljIGNpZHJQcmVmaXg6IG51bWJlcjtcbiAgcHJpdmF0ZSBpcFBhcnRzOiBiaWdpbnRbXTtcbiAgcHJpdmF0ZSBuZXR3b3JrQml0czogbnVtYmVyO1xuICBwcml2YXRlIG5ldHdvcmtQYXJ0OiBiaWdpbnRbXTtcblxuICBjb25zdHJ1Y3RvcihjaWRyOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNpZHIgPSBjaWRyO1xuICAgIGNvbnN0IFtpcEFkZHJlc3MsIHByZWZpeF0gPSBjaWRyLnNwbGl0KCcvJyk7XG4gICAgdGhpcy5jaWRyUHJlZml4ID0gcGFyc2VJbnQocHJlZml4LCAxMCk7XG4gICAgdGhpcy5pcFBhcnRzID0gdGhpcy5wYXJzZUJpZ0ludFBhcnRzKGlwQWRkcmVzcyk7XG4gICAgdGhpcy5uZXR3b3JrQml0cyA9IHRoaXMuY2lkclByZWZpeDtcbiAgICB0aGlzLm5ldHdvcmtQYXJ0ID0gdGhpcy5pcFBhcnRzLnNsaWNlKDAsIE1hdGguY2VpbCh0aGlzLm5ldHdvcmtCaXRzIC8gMTYpKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VCaWdJbnRQYXJ0cyhpcEFkZHJlc3M6IHN0cmluZyk6IGJpZ2ludFtdIHtcbiAgICByZXR1cm4gaXBBZGRyZXNzLnNwbGl0KCc6JykubWFwKChwYXJ0KSA9PiBCaWdJbnQoYDB4JHtwYXJ0LnBhZFN0YXJ0KDQsICcwJyl9YCB8fCAnMCcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBNaW5pbXVtIElQdjYgYWRkcmVzcyBmb3IgYSBwcm92aWRlZCBDSURSXG4gICAqL1xuICBwdWJsaWMgbWluSXAoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdGFydElQID0gWy4uLnRoaXMubmV0d29ya1BhcnRdO1xuICAgIGZvciAobGV0IGkgPSB0aGlzLm5ldHdvcmtQYXJ0Lmxlbmd0aDsgaSA8IDg7IGkrKykge1xuICAgICAgc3RhcnRJUC5wdXNoKEJpZ0ludCgwKSk7XG4gICAgfVxuICAgIHJldHVybiBzdGFydElQLm1hcCh0aGlzLmZvcm1hdElQdjZQYXJ0KS5qb2luKCc6Jyk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgTWF4aW11bSBJUHY2IGFkZHJlc3MgZm9yIGEgcHJvdmlkZWQgQ0lEUlxuICAgKi9cbiAgcHVibGljIG1heElwKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZW5kSVAgPSBbLi4udGhpcy5uZXR3b3JrUGFydF07XG4gICAgY29uc3QgaG9zdFBhcnQgPSBBcnJheSg4IC0gdGhpcy5uZXR3b3JrUGFydC5sZW5ndGgpLmZpbGwoQmlnSW50KDB4ZmZmZikpO1xuICAgIGVuZElQLnB1c2goLi4uaG9zdFBhcnQpO1xuXG4gICAgcmV0dXJuIGVuZElQLm1hcCh0aGlzLmZvcm1hdElQdjZQYXJ0KS5qb2luKCc6Jyk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdElQdjZQYXJ0ID0gKHBhcnQ6IGJpZ2ludCkgPT4gcGFydC50b1N0cmluZygxNikucGFkU3RhcnQoNCwgJzAnKTtcblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHJhbmdlMSBJcHY2IENJRFIgcmFuZ2UgdG8gY29tcGFyZVxuICAgKiBAcGFyYW0gcmFuZ2UyIElwdjYgQ0lEUiByYW5nZSB0byBjb21wYXJlXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdHdvIHJhbmdlcyBvdmVybGFwLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHB1YmxpYyByYW5nZXNPdmVybGFwKHJhbmdlMTogc3RyaW5nLCByYW5nZTI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IFtzdGFydDEsIGVuZDFdID0gdGhpcy5nZXRJUHY2UmFuZ2UocmFuZ2UxKTtcbiAgICBjb25zdCBbc3RhcnQyLCBlbmQyXSA9IHRoaXMuZ2V0SVB2NlJhbmdlKHJhbmdlMik7XG5cbiAgICByZXR1cm4gKHN0YXJ0MSA8PSBlbmQyKSAmJiAoc3RhcnQyIDw9IGVuZDEpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBjaWRyXG4gICAqIEByZXR1cm5zIFJhbmdlIGluIHRoZSBmcm9tIG9mIGJpZyBpbnQgbnVtYmVyIFtzdGFydCwgZW5kXVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRJUHY2UmFuZ2UoY2lkcjogc3RyaW5nKTogW2JpZ2ludCwgYmlnaW50XSB7XG4gICAgY29uc3QgW2lwdjZBZGRyZXNzLCBwcmVmaXhMZW5ndGhdID0gY2lkci5zcGxpdCgnLycpO1xuICAgIGNvbnN0IGlwdjZOdW1iZXIgPSB0aGlzLmlwdjZUb051bWJlcihpcHY2QWRkcmVzcyk7XG4gICAgY29uc3QgbWFzayA9IChCaWdJbnQoMSkgPDwgQmlnSW50KDEyOCAtIE51bWJlcihwcmVmaXhMZW5ndGgpKSkgLSBCaWdJbnQoMSk7XG4gICAgY29uc3QgbmV0d29ya1ByZWZpeCA9IGlwdjZOdW1iZXIgJiB+bWFzaztcbiAgICBjb25zdCBzdGFydCA9IG5ldHdvcmtQcmVmaXg7XG4gICAgY29uc3QgZW5kID0gbmV0d29ya1ByZWZpeCB8IG1hc2s7XG5cbiAgICByZXR1cm4gW3N0YXJ0LCBlbmRdO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBpcHY2QWRkcmVzc1xuICAgKiBAcmV0dXJucyBDb252ZXJ0cyBnaXZlbiBpcHY2IGFkZHJlc3MgcmFuZ2UgdG8gYmlnIGludCBudW1iZXJcbiAgICovXG4gIHByaXZhdGUgaXB2NlRvTnVtYmVyKGlwdjZBZGRyZXNzOiBzdHJpbmcpOiBiaWdpbnQge1xuICAgIGNvbnN0IGJsb2NrcyA9IHRoaXMucGFyc2VCaWdJbnRQYXJ0cyhpcHY2QWRkcmVzcyk7XG4gICAgbGV0IGlwdjZOdW1iZXIgPSBCaWdJbnQoMCk7XG4gICAgZm9yIChjb25zdCBibG9jayBvZiBibG9ja3MpIHtcbiAgICAgIC8qIHRzbGludDpkaXNhYmxlOm5vLWJpdHdpc2UgKi9cbiAgICAgIGlwdjZOdW1iZXIgPSAoaXB2Nk51bWJlciA8PCBCaWdJbnQoMTYpKSArIGJsb2NrO1xuICAgIH1cbiAgICByZXR1cm4gaXB2Nk51bWJlcjtcbiAgfVxufVxuXG4iXX0=
|
package/lib/vpc-v2-base.js
CHANGED
|
@@ -405,7 +405,7 @@ class VpcV2Base extends aws_cdk_lib_1.Resource {
|
|
|
405
405
|
}
|
|
406
406
|
exports.VpcV2Base = VpcV2Base;
|
|
407
407
|
_a = JSII_RTTI_SYMBOL_1;
|
|
408
|
-
VpcV2Base[_a] = { fqn: "@aws-cdk/aws-ec2-alpha.VpcV2Base", version: "2.
|
|
408
|
+
VpcV2Base[_a] = { fqn: "@aws-cdk/aws-ec2-alpha.VpcV2Base", version: "2.167.0-alpha.0" };
|
|
409
409
|
class CompositeDependable {
|
|
410
410
|
constructor() {
|
|
411
411
|
this.dependables = new Array();
|
package/lib/vpc-v2.js
CHANGED
|
@@ -77,7 +77,7 @@ class IpAddresses {
|
|
|
77
77
|
}
|
|
78
78
|
exports.IpAddresses = IpAddresses;
|
|
79
79
|
_a = JSII_RTTI_SYMBOL_1;
|
|
80
|
-
IpAddresses[_a] = { fqn: "@aws-cdk/aws-ec2-alpha.IpAddresses", version: "2.
|
|
80
|
+
IpAddresses[_a] = { fqn: "@aws-cdk/aws-ec2-alpha.IpAddresses", version: "2.167.0-alpha.0" };
|
|
81
81
|
/**
|
|
82
82
|
* This class provides a foundation for creating and configuring a VPC with advanced features such as IPAM (IP Address Management) and IPv6 support.
|
|
83
83
|
*
|
|
@@ -273,7 +273,7 @@ class VpcV2 extends vpc_v2_base_1.VpcV2Base {
|
|
|
273
273
|
}
|
|
274
274
|
exports.VpcV2 = VpcV2;
|
|
275
275
|
_b = JSII_RTTI_SYMBOL_1;
|
|
276
|
-
VpcV2[_b] = { fqn: "@aws-cdk/aws-ec2-alpha.VpcV2", version: "2.
|
|
276
|
+
VpcV2[_b] = { fqn: "@aws-cdk/aws-ec2-alpha.VpcV2", version: "2.167.0-alpha.0" };
|
|
277
277
|
/**
|
|
278
278
|
* Supports assigning IPv4 address to VPC
|
|
279
279
|
*/
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/aws-ec2-alpha",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.167.0-alpha.0",
|
|
5
5
|
"description": "The CDK construct library for VPC V2",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
@@ -77,17 +77,17 @@
|
|
|
77
77
|
},
|
|
78
78
|
"license": "Apache-2.0",
|
|
79
79
|
"devDependencies": {
|
|
80
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
81
|
-
"@aws-cdk/integ-runner": "2.
|
|
82
|
-
"@aws-cdk/integ-tests-alpha": "^2.
|
|
83
|
-
"@aws-cdk/pkglint": "2.
|
|
80
|
+
"@aws-cdk/cdk-build-tools": "2.167.0-alpha.0",
|
|
81
|
+
"@aws-cdk/integ-runner": "2.167.0-alpha.0",
|
|
82
|
+
"@aws-cdk/integ-tests-alpha": "^2.167.0-alpha.0",
|
|
83
|
+
"@aws-cdk/pkglint": "2.167.0-alpha.0",
|
|
84
84
|
"@types/jest": "^29.5.14",
|
|
85
|
-
"aws-cdk-lib": "2.
|
|
85
|
+
"aws-cdk-lib": "2.167.0",
|
|
86
86
|
"jest": "^29.7.0"
|
|
87
87
|
},
|
|
88
88
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
89
89
|
"peerDependencies": {
|
|
90
|
-
"aws-cdk-lib": "^2.
|
|
90
|
+
"aws-cdk-lib": "^2.167.0",
|
|
91
91
|
"constructs": "^10.0.0"
|
|
92
92
|
},
|
|
93
93
|
"separate-module": false,
|