cdk-common 2.0.395 → 2.0.397
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/main.js +1 -1
- package/node_modules/@aws-cdk/assert/package.json +8 -8
- package/node_modules/@aws-cdk/cfnspec/CHANGELOG.md +140 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/spec-diff.js +9 -1
- package/node_modules/@aws-cdk/cfnspec/build-tools/split-spec-by-service.js +15 -5
- package/node_modules/@aws-cdk/cfnspec/build-tools/update.sh +10 -1
- package/node_modules/@aws-cdk/cfnspec/cfn.version +1 -1
- package/node_modules/@aws-cdk/cfnspec/package.json +3 -3
- package/node_modules/@aws-cdk/cfnspec/spec/cfn-docs.json +491 -57
- package/node_modules/@aws-cdk/cfnspec/spec/specification.json +1383 -27
- package/node_modules/@aws-cdk/cloudformation-diff/package.json +4 -4
- package/package.json +3 -3
package/.jsii
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
]
|
|
8
8
|
},
|
|
9
9
|
"bundled": {
|
|
10
|
-
"@aws-cdk/assert": "^2.
|
|
10
|
+
"@aws-cdk/assert": "^2.63.0",
|
|
11
11
|
"case": "^1.6.3",
|
|
12
12
|
"sync-request": "^6.1.0"
|
|
13
13
|
},
|
|
@@ -9271,6 +9271,6 @@
|
|
|
9271
9271
|
"symbolId": "src/main:LambdaArmFunctionProps"
|
|
9272
9272
|
}
|
|
9273
9273
|
},
|
|
9274
|
-
"version": "2.0.
|
|
9275
|
-
"fingerprint": "
|
|
9274
|
+
"version": "2.0.397",
|
|
9275
|
+
"fingerprint": "AWz1TDK479bCkfMmgV87MfQsWoLqw1Jr/b8HuRSHlJM="
|
|
9276
9276
|
}
|
package/lib/main.js
CHANGED
|
@@ -41,5 +41,5 @@ class LambdaArmFunction extends constructs_1.Construct {
|
|
|
41
41
|
}
|
|
42
42
|
exports.LambdaArmFunction = LambdaArmFunction;
|
|
43
43
|
_a = JSII_RTTI_SYMBOL_1;
|
|
44
|
-
LambdaArmFunction[_a] = { fqn: "cdk-common.LambdaArmFunction", version: "2.0.
|
|
44
|
+
LambdaArmFunction[_a] = { fqn: "cdk-common.LambdaArmFunction", version: "2.0.397" };
|
|
45
45
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLGlEQUFpRDtBQUNqRCwyQ0FBdUM7QUFLdkMsTUFBYSxpQkFBa0IsU0FBUSxzQkFBUztJQUU5QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ2hELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1NBQzFFO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ3ZELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1NBQzFFO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ3RELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1NBQ3hFO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ3RELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1NBQ3hFO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFO1lBQzNELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1NBQzNFO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ25ELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ3JFO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFO1lBQzNELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQzdFO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3BELEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1NBQ3RFO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixLQUFLLENBQUMsT0FBTyx1R0FBdUcsQ0FBQyxDQUFDO1NBQzFKO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM1SCxDQUFDOztBQTFCSCw4Q0EyQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUFybUZ1bmN0aW9uUHJvcHMgZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb25Qcm9wcyB7XG5cbn1cblxuZXhwb3J0IGNsYXNzIExhbWJkYUFybUZ1bmN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb247XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOkxhbWJkYUFybUZ1bmN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKHByb3BzLnJ1bnRpbWUgPT09IGxhbWJkYS5SdW50aW1lLk5PREVKU18xMl9YKSB7XG4gICAgICBjZGsuQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZygnWW91IGFyZSB1c2luZyBOb2RlLmpzIDEyLnggYXQgQVJNJyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5ydW50aW1lID09PSBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTRfWCkge1xuICAgICAgY2RrLkFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmcoJ1lvdSBhcmUgdXNpbmcgTm9kZS5qcyAxNC54IGF0IEFSTScpO1xuICAgIH0gZWxzZSBpZiAocHJvcHMucnVudGltZSA9PT0gbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfOCkge1xuICAgICAgY2RrLkFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmcoJ1lvdSBhcmUgdXNpbmcgUHl0aG9uIDMuOCBhdCBBUk0nKTtcbiAgICB9IGVsc2UgaWYgKHByb3BzLnJ1bnRpbWUgPT09IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzkpIHtcbiAgICAgIGNkay5Bbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRXYXJuaW5nKCdZb3UgYXJlIHVzaW5nIFB5dGhvbiAzLjkgYXQgQVJNJyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5ydW50aW1lID09PSBsYW1iZGEuUnVudGltZS5KQVZBXzhfQ09SUkVUVE8pIHtcbiAgICAgIGNkay5Bbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRXYXJuaW5nKCdZb3UgYXJlIHVzaW5nIEphdmEgOCBvbiBhbDIgYXQgQVJNJyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5ydW50aW1lID09PSBsYW1iZGEuUnVudGltZS5KQVZBXzExKSB7XG4gICAgICBjZGsuQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZygnWW91IGFyZSB1c2luZyBKYXZhIDExIGF0IEFSTScpO1xuICAgIH0gZWxzZSBpZiAocHJvcHMucnVudGltZSA9PT0gbGFtYmRhLlJ1bnRpbWUuRE9UTkVUX0NPUkVfM18xKSB7XG4gICAgICBjZGsuQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZygnWW91IGFyZSB1c2luZyBET1RORVQgQ09SRSAzLjEgYXQgQVJNJyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5ydW50aW1lID09PSBsYW1iZGEuUnVudGltZS5SVUJZXzJfNykge1xuICAgICAgY2RrLkFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmcoJ1lvdSBhcmUgdXNpbmcgUlVCWSAyLjcgYXQgQVJNJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBSdW50aW1lICR7cHJvcHMucnVudGltZX0gYXQgQVJNLCBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvZm91bmRhdGlvbi1hcmNoLmh0bWw/aWNtcGlkPWRvY3NfbGFtYmRhX3Jzc2ApO1xuICAgIH1cblxuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsICdMYW1iZGFGdW5jdGlvbicsIHsgYXJjaGl0ZWN0dXJlOiBsYW1iZGEuQXJjaGl0ZWN0dXJlLkFSTV82NCwgLi4ucHJvcHMgfSk7XG4gIH1cbn0iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/assert",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.63.0",
|
|
4
4
|
"description": "An assertion library for use with CDK Apps",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -34,21 +34,21 @@
|
|
|
34
34
|
},
|
|
35
35
|
"license": "Apache-2.0",
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@aws-cdk/assert-internal": "2.
|
|
38
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
39
|
-
"@aws-cdk/pkglint": "2.
|
|
37
|
+
"@aws-cdk/assert-internal": "2.63.0",
|
|
38
|
+
"@aws-cdk/cdk-build-tools": "2.63.0",
|
|
39
|
+
"@aws-cdk/pkglint": "2.63.0",
|
|
40
40
|
"@types/jest": "^27.5.2",
|
|
41
|
-
"aws-cdk-lib": "2.
|
|
42
|
-
"aws-cdk-migration": "2.
|
|
41
|
+
"aws-cdk-lib": "2.63.0",
|
|
42
|
+
"aws-cdk-migration": "2.63.0",
|
|
43
43
|
"constructs": "^10.0.0",
|
|
44
44
|
"jest": "^27.3.1",
|
|
45
45
|
"ts-jest": "^27.1.5"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@aws-cdk/cloudformation-diff": "2.
|
|
48
|
+
"@aws-cdk/cloudformation-diff": "2.63.0"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"aws-cdk-lib": "^2.
|
|
51
|
+
"aws-cdk-lib": "^2.63.0",
|
|
52
52
|
"constructs": "^10.0.0",
|
|
53
53
|
"jest": ">=26.6.3"
|
|
54
54
|
},
|
|
@@ -1,4 +1,144 @@
|
|
|
1
1
|
|
|
2
|
+
# CloudFormation Resource Specification (us-west-2) v109.0.0
|
|
3
|
+
|
|
4
|
+
## New Resource Types
|
|
5
|
+
|
|
6
|
+
* AWS::DeviceFarm::DevicePool
|
|
7
|
+
* AWS::DeviceFarm::InstanceProfile
|
|
8
|
+
* AWS::DeviceFarm::NetworkProfile
|
|
9
|
+
* AWS::DeviceFarm::Project
|
|
10
|
+
* AWS::DeviceFarm::TestGridProject
|
|
11
|
+
* AWS::DeviceFarm::VPCEConfiguration
|
|
12
|
+
|
|
13
|
+
## Attribute Changes
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
## Property Changes
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## Property Type Changes
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# CloudFormation Resource Specification v109.0.0
|
|
24
|
+
|
|
25
|
+
## New Resource Types
|
|
26
|
+
|
|
27
|
+
* AWS::Connect::ApprovedOrigin
|
|
28
|
+
* AWS::Connect::IntegrationAssociation
|
|
29
|
+
* AWS::Connect::SecurityKey
|
|
30
|
+
|
|
31
|
+
## Attribute Changes
|
|
32
|
+
|
|
33
|
+
* AWS::Logs::LogStream Id (__added__)
|
|
34
|
+
* AWS::OpenSearchService::Domain AdvancedSecurityOptions.AnonymousAuthDisableDate (__added__)
|
|
35
|
+
* AWS::Route53Resolver::ResolverEndpoint ResolverEndpointType (__added__)
|
|
36
|
+
* AWS::SecretsManager::Secret Id (__deleted__)
|
|
37
|
+
|
|
38
|
+
## Property Changes
|
|
39
|
+
|
|
40
|
+
* AWS::ApiGatewayV2::ApiMapping ApiId.UpdateType (__changed__)
|
|
41
|
+
* Old: Immutable
|
|
42
|
+
* New: Mutable
|
|
43
|
+
* AWS::DMS::EventSubscription Tags.UpdateType (__changed__)
|
|
44
|
+
* Old: Immutable
|
|
45
|
+
* New: Mutable
|
|
46
|
+
* AWS::DMS::ReplicationInstance Tags.UpdateType (__changed__)
|
|
47
|
+
* Old: Immutable
|
|
48
|
+
* New: Mutable
|
|
49
|
+
* AWS::DMS::ReplicationTask Tags.UpdateType (__changed__)
|
|
50
|
+
* Old: Immutable
|
|
51
|
+
* New: Mutable
|
|
52
|
+
* AWS::EC2::CustomerGateway DeviceName (__added__)
|
|
53
|
+
* AWS::EC2::NatGateway MaxDrainDurationSeconds (__added__)
|
|
54
|
+
* AWS::EC2::NatGateway SecondaryAllocationIds (__added__)
|
|
55
|
+
* AWS::EC2::NatGateway SecondaryPrivateIpAddressCount (__added__)
|
|
56
|
+
* AWS::EC2::NatGateway SecondaryPrivateIpAddresses (__added__)
|
|
57
|
+
* AWS::EMRServerless::Application ImageConfiguration (__added__)
|
|
58
|
+
* AWS::EMRServerless::Application WorkerTypeSpecifications (__added__)
|
|
59
|
+
* AWS::GroundStation::DataflowEndpointGroup ContactPostPassDurationSeconds (__added__)
|
|
60
|
+
* AWS::GroundStation::DataflowEndpointGroup ContactPrePassDurationSeconds (__added__)
|
|
61
|
+
* AWS::ImageBuilder::Image ImageScanningConfiguration (__added__)
|
|
62
|
+
* AWS::ImageBuilder::ImagePipeline ImageScanningConfiguration (__added__)
|
|
63
|
+
* AWS::Lambda::Function RuntimeManagementConfig (__added__)
|
|
64
|
+
* AWS::Location::GeofenceCollection PricingPlan (__deleted__)
|
|
65
|
+
* AWS::Location::GeofenceCollection PricingPlanDataSource (__deleted__)
|
|
66
|
+
* AWS::RUM::AppMonitor CustomEvents (__added__)
|
|
67
|
+
* AWS::Route53Resolver::ResolverEndpoint ResolverEndpointType (__added__)
|
|
68
|
+
* AWS::SageMaker::Domain DefaultSpaceSettings (__added__)
|
|
69
|
+
* AWS::SecretsManager::Secret ReplicaRegions.DuplicatesAllowed (__deleted__)
|
|
70
|
+
* AWS::SecretsManager::Secret Tags.DuplicatesAllowed (__deleted__)
|
|
71
|
+
|
|
72
|
+
## Property Type Changes
|
|
73
|
+
|
|
74
|
+
* AWS::AppFlow::ConnectorProfile.PardotConnectorProfileCredentials (__added__)
|
|
75
|
+
* AWS::AppFlow::ConnectorProfile.PardotConnectorProfileProperties (__added__)
|
|
76
|
+
* AWS::AppFlow::Flow.PardotSourceProperties (__added__)
|
|
77
|
+
* AWS::EMRServerless::Application.ImageConfigurationInput (__added__)
|
|
78
|
+
* AWS::EMRServerless::Application.WorkerTypeSpecificationInput (__added__)
|
|
79
|
+
* AWS::ImageBuilder::Image.EcrConfiguration (__added__)
|
|
80
|
+
* AWS::ImageBuilder::Image.ImageScanningConfiguration (__added__)
|
|
81
|
+
* AWS::ImageBuilder::ImagePipeline.EcrConfiguration (__added__)
|
|
82
|
+
* AWS::ImageBuilder::ImagePipeline.ImageScanningConfiguration (__added__)
|
|
83
|
+
* AWS::Lambda::Function.RuntimeManagementConfig (__added__)
|
|
84
|
+
* AWS::Lex::Bot.Condition (__added__)
|
|
85
|
+
* AWS::Lex::Bot.ConditionalBranch (__added__)
|
|
86
|
+
* AWS::Lex::Bot.ConditionalSpecification (__added__)
|
|
87
|
+
* AWS::Lex::Bot.DefaultConditionalBranch (__added__)
|
|
88
|
+
* AWS::Lex::Bot.DialogAction (__added__)
|
|
89
|
+
* AWS::Lex::Bot.DialogCodeHookInvocationSetting (__added__)
|
|
90
|
+
* AWS::Lex::Bot.DialogState (__added__)
|
|
91
|
+
* AWS::Lex::Bot.ElicitationCodeHookInvocationSetting (__added__)
|
|
92
|
+
* AWS::Lex::Bot.InitialResponseSetting (__added__)
|
|
93
|
+
* AWS::Lex::Bot.IntentOverride (__added__)
|
|
94
|
+
* AWS::Lex::Bot.PostDialogCodeHookInvocationSpecification (__added__)
|
|
95
|
+
* AWS::Lex::Bot.SessionAttribute (__added__)
|
|
96
|
+
* AWS::Lex::Bot.SlotCaptureSetting (__added__)
|
|
97
|
+
* AWS::Lex::Bot.SlotValue (__added__)
|
|
98
|
+
* AWS::Lex::Bot.SlotValueOverride (__added__)
|
|
99
|
+
* AWS::Lex::Bot.SlotValueOverrideMap (__added__)
|
|
100
|
+
* AWS::OpenSearchService::Domain.Idp (__added__)
|
|
101
|
+
* AWS::OpenSearchService::Domain.SAMLOptions (__added__)
|
|
102
|
+
* AWS::RUM::AppMonitor.CustomEvents (__added__)
|
|
103
|
+
* AWS::SageMaker::Domain.DefaultSpaceSettings (__added__)
|
|
104
|
+
* AWS::AppFlow::ConnectorProfile.ConnectorProfileCredentials Pardot (__added__)
|
|
105
|
+
* AWS::AppFlow::ConnectorProfile.ConnectorProfileProperties Pardot (__added__)
|
|
106
|
+
* AWS::AppFlow::Flow.ConnectorOperator Pardot (__added__)
|
|
107
|
+
* AWS::AppFlow::Flow.SourceConnectorProperties Pardot (__added__)
|
|
108
|
+
* AWS::Lex::Bot.FulfillmentCodeHookSetting IsActive (__added__)
|
|
109
|
+
* AWS::Lex::Bot.Intent InitialResponseSetting (__added__)
|
|
110
|
+
* AWS::Lex::Bot.IntentClosingSetting Conditional (__added__)
|
|
111
|
+
* AWS::Lex::Bot.IntentClosingSetting NextStep (__added__)
|
|
112
|
+
* AWS::Lex::Bot.IntentClosingSetting ClosingResponse.Required (__changed__)
|
|
113
|
+
* Old: true
|
|
114
|
+
* New: false
|
|
115
|
+
* AWS::Lex::Bot.IntentConfirmationSetting CodeHook (__added__)
|
|
116
|
+
* AWS::Lex::Bot.IntentConfirmationSetting ConfirmationConditional (__added__)
|
|
117
|
+
* AWS::Lex::Bot.IntentConfirmationSetting ConfirmationNextStep (__added__)
|
|
118
|
+
* AWS::Lex::Bot.IntentConfirmationSetting ConfirmationResponse (__added__)
|
|
119
|
+
* AWS::Lex::Bot.IntentConfirmationSetting DeclinationConditional (__added__)
|
|
120
|
+
* AWS::Lex::Bot.IntentConfirmationSetting DeclinationNextStep (__added__)
|
|
121
|
+
* AWS::Lex::Bot.IntentConfirmationSetting ElicitationCodeHook (__added__)
|
|
122
|
+
* AWS::Lex::Bot.IntentConfirmationSetting FailureConditional (__added__)
|
|
123
|
+
* AWS::Lex::Bot.IntentConfirmationSetting FailureNextStep (__added__)
|
|
124
|
+
* AWS::Lex::Bot.IntentConfirmationSetting FailureResponse (__added__)
|
|
125
|
+
* AWS::Lex::Bot.IntentConfirmationSetting DeclinationResponse.Required (__changed__)
|
|
126
|
+
* Old: true
|
|
127
|
+
* New: false
|
|
128
|
+
* AWS::Lex::Bot.PostFulfillmentStatusSpecification FailureConditional (__added__)
|
|
129
|
+
* AWS::Lex::Bot.PostFulfillmentStatusSpecification FailureNextStep (__added__)
|
|
130
|
+
* AWS::Lex::Bot.PostFulfillmentStatusSpecification SuccessConditional (__added__)
|
|
131
|
+
* AWS::Lex::Bot.PostFulfillmentStatusSpecification SuccessNextStep (__added__)
|
|
132
|
+
* AWS::Lex::Bot.PostFulfillmentStatusSpecification TimeoutConditional (__added__)
|
|
133
|
+
* AWS::Lex::Bot.PostFulfillmentStatusSpecification TimeoutNextStep (__added__)
|
|
134
|
+
* AWS::Lex::Bot.SlotValueElicitationSetting SlotCaptureSetting (__added__)
|
|
135
|
+
* AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput AnonymousAuthDisableDate (__added__)
|
|
136
|
+
* AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput AnonymousAuthEnabled (__added__)
|
|
137
|
+
* AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput SAMLOptions (__added__)
|
|
138
|
+
* AWS::Route53Resolver::ResolverEndpoint.IpAddressRequest Ipv6 (__added__)
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
2
142
|
# Serverless Application Model (SAM) Resource Specification v2016-10-31
|
|
3
143
|
|
|
4
144
|
## New Resource Types
|
|
@@ -15,6 +15,14 @@ async function main() {
|
|
|
15
15
|
const newSpecFile = process.argv[4];
|
|
16
16
|
const newSpec = await fs.readJSON(newSpecFile);
|
|
17
17
|
const oldSpec = await fs.readJSON(oldSpecFile);
|
|
18
|
+
// Diff operates on PropertyTypes & ResourceTypes
|
|
19
|
+
// Ensure they always exist in the old spec
|
|
20
|
+
if (!oldSpec.PropertyTypes) {
|
|
21
|
+
oldSpec.PropertyTypes = {};
|
|
22
|
+
}
|
|
23
|
+
if (!oldSpec.ResourceTypes) {
|
|
24
|
+
oldSpec.ResourceTypes = {};
|
|
25
|
+
}
|
|
18
26
|
const out = jsonDiff(oldSpec, newSpec);
|
|
19
27
|
// Here's the magic output format of this thing
|
|
20
28
|
// If a key ends in __added, it got added, and the value
|
|
@@ -237,4 +245,4 @@ main().catch(e => {
|
|
|
237
245
|
process.stderr.write('\n');
|
|
238
246
|
process.exit(1);
|
|
239
247
|
});
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy1kaWZmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3BlYy1kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQiwwREFBMEQ7QUFDMUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMzQyxtQkFBbUI7QUFFbkIsU0FBUyxJQUFJLENBQUMsTUFBYyxFQUFFLEVBQUUsR0FBRyxLQUFZO0lBQzdDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUvQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXZDLCtDQUErQztJQUMvQyx3REFBd0Q7SUFDeEQsc0JBQXNCO0lBQ3RCLDREQUE0RDtJQUM1RCxzQkFBc0I7SUFDdEIsMkRBQTJEO0lBQzNELCtCQUErQjtJQUUvQixJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsT0FB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LGdDQUFnQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDNUU7YUFDRjtTQUNGO2FBQU07WUFDTCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3JDLEtBQUssTUFBTSxNQUFNLElBQUksZUFBZSxDQUFDLFNBQVMsRUFBRSxHQUFHLE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDaEYsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDdEI7YUFDRjtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztBQUNILENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDZixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMgKi9cbmNvbnN0IGpzb25EaWZmID0gcmVxdWlyZSgnanNvbi1kaWZmJykuZGlmZjtcbi8qIGVzbGludC1lbmFibGUgKi9cblxuZnVuY3Rpb24gbGluZShmbXQ6IHN0cmluZyA9ICcnLCAuLi5wYXJhbTogYW55W10pIHtcbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUodXRpbC5mb3JtYXQoZm10LCAuLi5wYXJhbSkpO1xuICBwcm9jZXNzLnN0ZG91dC53cml0ZSgnXFxuJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IHRpdGxlID0gcHJvY2Vzcy5hcmd2WzJdO1xuICBjb25zdCBvbGRTcGVjRmlsZSA9IHByb2Nlc3MuYXJndlszXTtcbiAgY29uc3QgbmV3U3BlY0ZpbGUgPSBwcm9jZXNzLmFyZ3ZbNF07XG5cbiAgY29uc3QgbmV3U3BlYyA9IGF3YWl0IGZzLnJlYWRKU09OKG5ld1NwZWNGaWxlKTtcbiAgY29uc3Qgb2xkU3BlYyA9IGF3YWl0IGZzLnJlYWRKU09OKG9sZFNwZWNGaWxlKTtcblxuICBjb25zdCBvdXQgPSBqc29uRGlmZihvbGRTcGVjLCBuZXdTcGVjKTtcblxuICAvLyBIZXJlJ3MgdGhlIG1hZ2ljIG91dHB1dCBmb3JtYXQgb2YgdGhpcyB0aGluZ1xuICAvLyBJZiBhIGtleSBlbmRzIGluIF9fYWRkZWQsIGl0IGdvdCBhZGRlZCwgYW5kIHRoZSB2YWx1ZVxuICAvLyAgIGlzIHRoZSBuZXcgdmFsdWUuXG4gIC8vIElmIGEga2V5IGVuZHMgaW4gX19kZWxldGVkLCBpdCBnb3QgZGVsZXRlZCwgYW5kIHRoZSB2YWx1ZVxuICAvLyAgIGlzIHRoZSBvbGQgdmFsdWUuXG4gIC8vIElmIGEgdmFsdWUgZ290IGNoYW5nZWQsIHRoZSB2YWx1ZSBvYmplY3Qgd2lsbCBsb29rIGxpa2U6XG4gIC8vICAgeyBfX29sZDogLi4uLCBfX25ldzogLi4uIH1cblxuICBpZiAoIW91dCkge1xuICAgIHJldHVybjsgLy8gbm8gZGlmZlxuICB9XG5cbiAgY29uc3QgcmVzb3VyY2VUeXBlQWRkaXRpb25zID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IHJlc291cmNlVHlwZURlbGV0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCBhdHRyaWJ1dGVDaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgY29uc3QgcHJvcGVydHlDaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgY29uc3QgcHJvcGVydHlUeXBlQ2hhbmdlcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob3V0LlJlc291cmNlVHlwZXMgfHwge30pKSB7XG4gICAgY2xhc3NpZnlSZXNvdXJjZVR5cGVVcGRhdGUoa2V5LCBvdXQuUmVzb3VyY2VUeXBlc1trZXldKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG91dC5Qcm9wZXJ0eVR5cGVzIHx8IHt9KSkge1xuICAgIGNsYXNzaWZ5UHJvcGVydHlUeXBlVXBkYXRlKGtleSwgb3V0LlByb3BlcnR5VHlwZXNba2V5XSk7XG4gIH1cblxuICBsaW5lKGAjICR7dGl0bGV9IHYke25ld1NwZWMuUmVzb3VyY2VTcGVjaWZpY2F0aW9uVmVyc2lvbn1gKTtcbiAgbGluZSgpO1xuXG4gIGxpbmUoJyMjIE5ldyBSZXNvdXJjZSBUeXBlcycpO1xuICBsaW5lKCk7XG4gIHJlc291cmNlVHlwZUFkZGl0aW9ucy5mb3JFYWNoKHR5cGUgPT4gbGluZShgKiAke3R5cGV9YCkpO1xuICBsaW5lKCk7XG5cbiAgaWYgKHJlc291cmNlVHlwZURlbGV0aW9ucy5zaXplID4gMCkge1xuICAgIGxpbmUoJyMjIFJlbW92ZWQgUmVzb3VyY2UgVHlwZXMnKTtcbiAgICBsaW5lKCk7XG4gICAgcmVzb3VyY2VUeXBlRGVsZXRpb25zLmZvckVhY2godHlwZSA9PiBsaW5lKGAqICR7dHlwZX1gKSk7XG4gICAgbGluZSgpO1xuICB9XG5cbiAgbGluZSgnIyMgQXR0cmlidXRlIENoYW5nZXMnKTtcbiAgbGluZSgpO1xuICBhdHRyaWJ1dGVDaGFuZ2VzLmZvckVhY2goeCA9PiBsaW5lKHgpKTtcbiAgbGluZSgpO1xuXG4gIGxpbmUoJyMjIFByb3BlcnR5IENoYW5nZXMnKTtcbiAgbGluZSgpO1xuICBwcm9wZXJ0eUNoYW5nZXMuZm9yRWFjaCh4ID0+IGxpbmUoeCkpO1xuICBsaW5lKCk7XG5cbiAgbGluZSgnIyMgUHJvcGVydHkgVHlwZSBDaGFuZ2VzJyk7XG4gIGxpbmUoKTtcbiAgcHJvcGVydHlUeXBlQ2hhbmdlcy5mb3JFYWNoKHggPT4gbGluZSh4KSk7XG5cbiAgZnVuY3Rpb24gY2xhc3NpZnlSZXNvdXJjZVR5cGVVcGRhdGUocmVzb3VyY2VUeXBlOiBzdHJpbmcsIHVwZGF0ZTogYW55KSB7XG4gICAgY29uc3QgYWRkZWQgPSBpc0FkZGVkKHJlc291cmNlVHlwZSk7XG4gICAgaWYgKGFkZGVkKSB7XG4gICAgICByZXNvdXJjZVR5cGVBZGRpdGlvbnMuYWRkKGFkZGVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZWxldGVkID0gaXNEZWxldGVkKHJlc291cmNlVHlwZSk7XG4gICAgaWYgKGRlbGV0ZWQpIHtcbiAgICAgIHJlc291cmNlVHlwZURlbGV0aW9ucy5hZGQoZGVsZXRlZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHVzaERvd25Db21wbGV0ZUNoYW5nZXModXBkYXRlKTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHVwZGF0ZSkpIHtcbiAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgIGNhc2UgJ1Byb3BlcnRpZXMnOlxuICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBPYmplY3Qua2V5cyh1cGRhdGUuUHJvcGVydGllcykpIHtcbiAgICAgICAgICAgIGRlc2NyaWJlQ2hhbmdlcyhyZXNvdXJjZVR5cGUsIHByb3AsIHVwZGF0ZS5Qcm9wZXJ0aWVzW3Byb3BdKS5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICAgIHByb3BlcnR5Q2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0F0dHJpYnV0ZXMnOlxuICAgICAgICAgIGZvciAoY29uc3QgYXR0ciBvZiBPYmplY3Qua2V5cyh1cGRhdGUuQXR0cmlidXRlcykpIHtcbiAgICAgICAgICAgIGRlc2NyaWJlQ2hhbmdlcyhyZXNvdXJjZVR5cGUsIGF0dHIsIHVwZGF0ZS5BdHRyaWJ1dGVzW2F0dHJdKS5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICAgIGF0dHJpYnV0ZUNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdEb2N1bWVudGF0aW9uJzpcbiAgICAgICAgICBkZXNjcmliZUNoYW5nZXMocmVzb3VyY2VUeXBlLCBrZXksIHVwZGF0ZS5Eb2N1bWVudGF0aW9uKS5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVDaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdXBkYXRlIHRvICR7cmVzb3VyY2VUeXBlfTogJHtrZXl9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY2xhc3NpZnlQcm9wZXJ0eVR5cGVVcGRhdGUocHJvcGVydHlUeXBlOiBzdHJpbmcsIHVwZGF0ZTogYW55KSB7XG4gICAgY29uc3QgYWRkZWQgPSBpc0FkZGVkKHByb3BlcnR5VHlwZSk7XG4gICAgaWYgKGFkZGVkKSB7XG4gICAgICBjb25zdCByZXNvdXJjZVR5cGUgPSBhZGRlZC5zcGxpdCgnLicpWzBdO1xuICAgICAgaWYgKHJlc291cmNlVHlwZUFkZGl0aW9ucy5oYXMocmVzb3VyY2VUeXBlKSkge1xuICAgICAgICByZXR1cm47IC8vIHNraXBwaW5nIHByb3BlcnR5IGZvciBhZGRlZCByZXNvdXJjZSB0eXBlc1xuICAgICAgfVxuXG4gICAgICBwcm9wZXJ0eVR5cGVDaGFuZ2VzLnB1c2goYCogJHthZGRlZH0gKF9fYWRkZWRfXylgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZWxldGVkID0gaXNEZWxldGVkKHByb3BlcnR5VHlwZSk7XG4gICAgaWYgKGRlbGV0ZWQpIHtcbiAgICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IGRlbGV0ZWQuc3BsaXQoJy4nKVswXTtcbiAgICAgIGlmIChyZXNvdXJjZVR5cGVEZWxldGlvbnMuaGFzKHJlc291cmNlVHlwZSkpIHtcbiAgICAgICAgcmV0dXJuOyAvLyBza2lwcGluZyBwcm9wZXJ0eSBmb3IgYWRkZWQgcmVzb3VyY2UgdHlwZXNcbiAgICAgIH1cblxuICAgICAgcHJvcGVydHlUeXBlQ2hhbmdlcy5wdXNoKGAqICR7ZGVsZXRlZH0gKF9fcmVtb3ZlZF9fKWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyh1cGRhdGUpLmxlbmd0aCAhPT0gMSAmJiBPYmplY3Qua2V5cyh1cGRhdGUpWzBdID09PSAnUHJvcGVydGllcycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCB1cGRhdGUgdG8gYSByZXNvdXJjZSB0eXBlLiBFeHBlY3Rpbmcgb25seSBcIlByb3BlcnRpZXNcIiB0byBjaGFuZ2U6ICcgKyBwcm9wZXJ0eVR5cGUpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiBPYmplY3Qua2V5cyh1cGRhdGUuUHJvcGVydGllcyA/PyB7fSkpIHtcbiAgICAgIGRlc2NyaWJlQ2hhbmdlcyhwcm9wZXJ0eVR5cGUsIHByb3AsIHVwZGF0ZS5Qcm9wZXJ0aWVzW3Byb3BdKS5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgIHByb3BlcnR5VHlwZUNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFB1c2ggZG93biBtYXNzIGNoYW5nZXMgdG8gYXR0cmlidXRlcyBvciBwcm9wZXJ0aWVzIHRvIHRoZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEFuIGV4YW1wbGUgd2lsbCBleHBsYWluIHRoaXMgYmVzdC4gSlNPTi1kaWZmIHdpbGwgbWFrZSB0aGUgc21hbGxlc3QgZGlmZiwgc28gaWYgdGhlcmVcbiAgICogYXJlIG5ldyBwcm9wZXJ0aWVzIGl0IHdpbGwgcmVwb3J0OlxuICAgKlxuICAgKiBcIlByb3BlcnRpZXNfX2FkZGVkXCI6IHtcbiAgICogICAgXCJQcm9wZXJ0eTFcIjogeyAuLi4gfSxcbiAgICogICAgXCJQcm9wZXJ0eTJcIjogeyAuLi4gfSxcbiAgICogfVxuICAgKlxuICAgKiBCdXQgd2Ugd2FudCB0byBzZWUgdGhpcyBhczpcbiAgICpcbiAgICogXCJQcm9wZXJ0aWVzXCI6IHtcbiAgICogICAgXCJQcm9wZXJ0eTFfX2FkZGVkXCI6IHsgLi4uIH0sXG4gICAqICAgIFwiUHJvcGVydHkyX19hZGRlZFwiOiB7IC4uLiB9LFxuICAgKiB9XG4gICAqXG4gICAqIFNhbWUgKGJ1dCBpbiByZXZlcnNlKSBmb3IgZGVsZXRpb25zLlxuICAgKi9cbiAgZnVuY3Rpb24gcHVzaERvd25Db21wbGV0ZUNoYW5nZXModXBkYXRlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+Pikge1xuICAgIGZvciAoY29uc3QgW2NhdGVnb3J5LCBlbnRyaWVzXSBvZiBPYmplY3QuZW50cmllcyh1cGRhdGUpKSB7XG4gICAgICBjb25zdCBhZGRlZEtleSA9IGlzQWRkZWQoY2F0ZWdvcnkpO1xuICAgICAgaWYgKGFkZGVkS2V5KSB7XG4gICAgICAgIGRlbGV0ZSB1cGRhdGVbY2F0ZWdvcnldO1xuICAgICAgICB1cGRhdGVbYWRkZWRLZXldID0gc3VmZml4S2V5cygnX19hZGRlZCcsIGVudHJpZXMpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkZWxldGVkS2V5ID0gaXNEZWxldGVkKGNhdGVnb3J5KTtcbiAgICAgIGlmIChkZWxldGVkS2V5KSB7XG4gICAgICAgIGRlbGV0ZSB1cGRhdGVbY2F0ZWdvcnldO1xuICAgICAgICB1cGRhdGVbZGVsZXRlZEtleV0gPSBzdWZmaXhLZXlzKCdfX2RlbGV0ZWQnLCBlbnRyaWVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpc0RlbGV0ZWQoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaXNTdWZmaXgoa2V5LCAnX19kZWxldGVkJyk7XG4gIH1cblxuICBmdW5jdGlvbiBpc0FkZGVkKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGlzU3VmZml4KGtleSwgJ19fYWRkZWQnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzU3VmZml4KGtleTogc3RyaW5nLCBzdWZmaXg6IHN0cmluZykge1xuICAgIGNvbnN0IGluZGV4ID0ga2V5LmluZGV4T2Yoc3VmZml4KTtcbiAgICByZXR1cm4gaW5kZXggPT09IC0xID8gdW5kZWZpbmVkIDoga2V5LnNsaWNlKDAsIGluZGV4KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHN1ZmZpeEtleXMoc3VmZml4OiBzdHJpbmcsIHhzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgcmV0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoeHMpKSB7XG4gICAgICByZXRba2V5ICsgc3VmZml4XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgZnVuY3Rpb24gZGVzY3JpYmVDaGFuZ2VzKG5hbWVzcGFjZTogc3RyaW5nLCBwcmVmaXg6IHN0cmluZywgdXBkYXRlOiBhbnkpIHtcbiAgICBjb25zdCBjaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGNvbnN0IGFkZGVkID0gaXNBZGRlZChwcmVmaXgpO1xuICAgIGlmIChhZGRlZCkge1xuICAgICAgY2hhbmdlcy5wdXNoKGAqICR7bmFtZXNwYWNlfSAke2FkZGVkfSAoX19hZGRlZF9fKWApO1xuICAgICAgcmV0dXJuIGNoYW5nZXM7XG4gICAgfVxuXG4gICAgY29uc3QgZGVsZXRlZCA9IGlzRGVsZXRlZChwcmVmaXgpO1xuICAgIGlmIChkZWxldGVkKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goYCogJHtuYW1lc3BhY2V9ICR7ZGVsZXRlZH0gKF9fZGVsZXRlZF9fKWApO1xuICAgICAgcmV0dXJuIGNoYW5nZXM7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZih1cGRhdGUpICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGNoYW5nZSBmb3IgJHtuYW1lc3BhY2V9LiR7cHJlZml4fSAke0pTT04uc3RyaW5naWZ5KHVwZGF0ZSl9YCk7XG4gICAgfVxuXG4gICAgaWYgKCdfX29sZCcgaW4gdXBkYXRlICYmICdfX25ldycgaW4gdXBkYXRlKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goYCogJHtuYW1lc3BhY2V9ICR7cHJlZml4fSAoX19jaGFuZ2VkX18pYCk7XG4gICAgICBjaGFuZ2VzLnB1c2goYCAgKiBPbGQ6ICR7dXBkYXRlLl9fb2xkfWApO1xuICAgICAgY2hhbmdlcy5wdXNoKGAgICogTmV3OiAke3VwZGF0ZS5fX25ld31gKTtcbiAgICAgIHJldHVybiBjaGFuZ2VzO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHVwZGF0ZSkpIHtcbiAgICAgIGNoYW5nZXMucHVzaChgKiAke25hbWVzcGFjZX0gJHtwcmVmaXh9IChfX2NoYW5nZWRfXylgKTtcbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdXBkYXRlKSB7XG4gICAgICAgIGlmIChlbnRyeS5sZW5ndGggPT09IDEgJiYgZW50cnlbMF0gPT09ICcgJykge1xuICAgICAgICAgIC8vIFRoaXMgbWVhbnMgdGhhdCB0aGlzIGVsZW1lbnQgb2YgdGhlIGFycmF5IGlzIHVuY2hhbmdlZFxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbnRyeS5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYXJyYXkgZGlmZiBlbnRyeTogJHtKU09OLnN0cmluZ2lmeShlbnRyeSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChlbnRyeVswXSkge1xuICAgICAgICAgIGNhc2UgJysnOlxuICAgICAgICAgICAgY2hhbmdlcy5wdXNoKGAgICogQWRkZWQgJHtlbnRyeVsxXX1gKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJy0nOlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTb21ldGhpbmcgYXdrd2FyZCBoYXBwZW5lZDogJHtlbnRyeVsxXX0gd2FzIGRlbGV0ZWQgZnJvbSAke25hbWVzcGFjZX0gJHtwcmVmaXh9IWApO1xuICAgICAgICAgIGNhc2UgJyAnOlxuICAgICAgICAgICAgLy8gVGhpcyBlbnRyeSBpcyBcImNvbnRleHRcIlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBhcnJheSBkaWZmIGVudHJ5OiAke0pTT04uc3RyaW5naWZ5KGVudHJ5KX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh1cGRhdGUpKSB7XG4gICAgICAgIGZvciAoY29uc3QgY2hhbmdlIG9mIGRlc2NyaWJlQ2hhbmdlcyhuYW1lc3BhY2UsIGAke3ByZWZpeH0uJHtrZXl9YCwgdXBkYXRlW2tleV0pKSB7XG4gICAgICAgICAgY2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2hhbmdlcztcbiAgfVxufVxuXG5tYWluKCkuY2F0Y2goZSA9PiB7XG4gIHByb2Nlc3Muc3RkZXJyLndyaXRlKGUuc3RhY2spO1xuICBwcm9jZXNzLnN0ZGVyci53cml0ZSgnXFxuJyk7XG4gIHByb2Nlc3MuZXhpdCgxKTtcbn0pO1xuIl19
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy1kaWZmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3BlYy1kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQiwwREFBMEQ7QUFDMUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMzQyxtQkFBbUI7QUFFbkIsU0FBUyxJQUFJLENBQUMsTUFBYyxFQUFFLEVBQUUsR0FBRyxLQUFZO0lBQzdDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUvQyxpREFBaUQ7SUFDakQsMkNBQTJDO0lBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1FBQzFCLE9BQU8sQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0tBQzVCO0lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7UUFDMUIsT0FBTyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7S0FDNUI7SUFFRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXZDLCtDQUErQztJQUMvQyx3REFBd0Q7SUFDeEQsc0JBQXNCO0lBQ3RCLDREQUE0RDtJQUM1RCxzQkFBc0I7SUFDdEIsMkRBQTJEO0lBQzNELCtCQUErQjtJQUUvQixJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsT0FBTyxDQUFDLFVBQVU7S0FDbkI7SUFFRCxNQUFNLHFCQUFxQixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDaEQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBQ2hELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUM3QyxNQUFNLGVBQWUsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBQzVDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUVoRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsRUFBRTtRQUN0RCwwQkFBMEIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ3pEO0lBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEVBQUU7UUFDdEQsMEJBQTBCLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUN6RDtJQUVELElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxPQUFPLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxDQUFDO0lBQzVELElBQUksRUFBRSxDQUFDO0lBRVAsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDOUIsSUFBSSxFQUFFLENBQUM7SUFDUCxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekQsSUFBSSxFQUFFLENBQUM7SUFFUCxJQUFJLHFCQUFxQixDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7UUFDbEMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDbEMsSUFBSSxFQUFFLENBQUM7UUFDUCxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxFQUFFLENBQUM7S0FDUjtJQUVELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzdCLElBQUksRUFBRSxDQUFDO0lBQ1AsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsSUFBSSxFQUFFLENBQUM7SUFFUCxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUM1QixJQUFJLEVBQUUsQ0FBQztJQUNQLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxJQUFJLEVBQUUsQ0FBQztJQUVQLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2pDLElBQUksRUFBRSxDQUFDO0lBQ1AsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFMUMsU0FBUywwQkFBMEIsQ0FBQyxZQUFvQixFQUFFLE1BQVc7UUFDbkUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLElBQUksS0FBSyxFQUFFO1lBQ1QscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLE9BQU87U0FDUjtRQUVELE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QyxJQUFJLE9BQU8sRUFBRTtZQUNYLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxPQUFPO1NBQ1I7UUFFRCx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVoQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDckMsUUFBUSxHQUFHLEVBQUU7Z0JBQ1gsS0FBSyxZQUFZO29CQUNmLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUU7d0JBQ2pELGVBQWUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQzVFLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQy9CLENBQUMsQ0FBQyxDQUFDO3FCQUNKO29CQUNELE1BQU07Z0JBQ1IsS0FBSyxZQUFZO29CQUNmLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUU7d0JBQ2pELGVBQWUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQzVFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDaEMsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7b0JBQ0QsTUFBTTtnQkFDUixLQUFLLGVBQWU7b0JBQ2xCLGVBQWUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7d0JBQ3hFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDaEMsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsTUFBTTtnQkFDUjtvQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixZQUFZLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQzthQUNuRTtTQUNGO0lBQ0gsQ0FBQztJQUVELFNBQVMsMEJBQTBCLENBQUMsWUFBb0IsRUFBRSxNQUFXO1FBQ25FLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekMsSUFBSSxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQzNDLE9BQU8sQ0FBQyw2Q0FBNkM7YUFDdEQ7WUFFRCxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLGNBQWMsQ0FBQyxDQUFDO1lBQ25ELE9BQU87U0FDUjtRQUVELE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QyxJQUFJLE9BQU8sRUFBRTtZQUNYLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQzNDLE9BQU8sQ0FBQyw2Q0FBNkM7YUFDdEQ7WUFFRCxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxPQUFPLGdCQUFnQixDQUFDLENBQUM7WUFDdkQsT0FBTztTQUNSO1FBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxZQUFZLEVBQUU7WUFDL0UsTUFBTSxJQUFJLEtBQUssQ0FBQywrRUFBK0UsR0FBRyxZQUFZLENBQUMsQ0FBQztTQUNqSDtRQUVELEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ3ZELGVBQWUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzVFLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BbUJHO0lBQ0gsU0FBUyx1QkFBdUIsQ0FBQyxNQUEyQztRQUMxRSxLQUFLLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN4RCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkMsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3hCLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxVQUFVLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQ25EO1lBRUQsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksVUFBVSxFQUFFO2dCQUNkLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN4QixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUN2RDtTQUNGO0lBQ0gsQ0FBQztJQUVELFNBQVMsU0FBUyxDQUFDLEdBQVc7UUFDNUIsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxTQUFTLE9BQU8sQ0FBQyxHQUFXO1FBQzFCLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUyxRQUFRLENBQUMsR0FBVyxFQUFFLE1BQWM7UUFDM0MsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsU0FBUyxVQUFVLENBQUMsTUFBYyxFQUFFLEVBQXVCO1FBQ3pELE1BQU0sR0FBRyxHQUF3QixFQUFFLENBQUM7UUFDcEMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDN0MsR0FBRyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDM0I7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxTQUFTLGVBQWUsQ0FBQyxTQUFpQixFQUFFLE1BQWMsRUFBRSxNQUFXO1FBQ3JFLE1BQU0sT0FBTyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFFcEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLElBQUksS0FBSyxFQUFFO1lBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBRUQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxPQUFPLGdCQUFnQixDQUFDLENBQUM7WUFDeEQsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxJQUFJLE9BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxRQUFRLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsU0FBUyxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMzRjtRQUVELElBQUksT0FBTyxJQUFJLE1BQU0sSUFBSSxPQUFPLElBQUksTUFBTSxFQUFFO1lBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksTUFBTSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN6QyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDekMsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxNQUFNLGdCQUFnQixDQUFDLENBQUM7WUFDdkQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7Z0JBQzFCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtvQkFDMUMseURBQXlEO29CQUN6RCxTQUFTO2lCQUNWO2dCQUNELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUMxRTtnQkFDRCxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDaEIsS0FBSyxHQUFHO3dCQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUN0QyxNQUFNO29CQUNSLEtBQUssR0FBRzt3QkFDTixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixTQUFTLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztvQkFDdEcsS0FBSyxHQUFHO3dCQUNOLDBCQUEwQjt3QkFDMUIsTUFBTTtvQkFDUjt3QkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDNUU7YUFDRjtTQUNGO2FBQU07WUFDTCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3JDLEtBQUssTUFBTSxNQUFNLElBQUksZUFBZSxDQUFDLFNBQVMsRUFBRSxHQUFHLE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDaEYsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDdEI7YUFDRjtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztBQUNILENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDZixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMgKi9cbmNvbnN0IGpzb25EaWZmID0gcmVxdWlyZSgnanNvbi1kaWZmJykuZGlmZjtcbi8qIGVzbGludC1lbmFibGUgKi9cblxuZnVuY3Rpb24gbGluZShmbXQ6IHN0cmluZyA9ICcnLCAuLi5wYXJhbTogYW55W10pIHtcbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUodXRpbC5mb3JtYXQoZm10LCAuLi5wYXJhbSkpO1xuICBwcm9jZXNzLnN0ZG91dC53cml0ZSgnXFxuJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IHRpdGxlID0gcHJvY2Vzcy5hcmd2WzJdO1xuICBjb25zdCBvbGRTcGVjRmlsZSA9IHByb2Nlc3MuYXJndlszXTtcbiAgY29uc3QgbmV3U3BlY0ZpbGUgPSBwcm9jZXNzLmFyZ3ZbNF07XG5cbiAgY29uc3QgbmV3U3BlYyA9IGF3YWl0IGZzLnJlYWRKU09OKG5ld1NwZWNGaWxlKTtcbiAgY29uc3Qgb2xkU3BlYyA9IGF3YWl0IGZzLnJlYWRKU09OKG9sZFNwZWNGaWxlKTtcblxuICAvLyBEaWZmIG9wZXJhdGVzIG9uIFByb3BlcnR5VHlwZXMgJiBSZXNvdXJjZVR5cGVzXG4gIC8vIEVuc3VyZSB0aGV5IGFsd2F5cyBleGlzdCBpbiB0aGUgb2xkIHNwZWNcbiAgaWYgKCFvbGRTcGVjLlByb3BlcnR5VHlwZXMpIHtcbiAgICBvbGRTcGVjLlByb3BlcnR5VHlwZXMgPSB7fTtcbiAgfVxuICBpZiAoIW9sZFNwZWMuUmVzb3VyY2VUeXBlcykge1xuICAgIG9sZFNwZWMuUmVzb3VyY2VUeXBlcyA9IHt9O1xuICB9XG5cbiAgY29uc3Qgb3V0ID0ganNvbkRpZmYob2xkU3BlYywgbmV3U3BlYyk7XG5cbiAgLy8gSGVyZSdzIHRoZSBtYWdpYyBvdXRwdXQgZm9ybWF0IG9mIHRoaXMgdGhpbmdcbiAgLy8gSWYgYSBrZXkgZW5kcyBpbiBfX2FkZGVkLCBpdCBnb3QgYWRkZWQsIGFuZCB0aGUgdmFsdWVcbiAgLy8gICBpcyB0aGUgbmV3IHZhbHVlLlxuICAvLyBJZiBhIGtleSBlbmRzIGluIF9fZGVsZXRlZCwgaXQgZ290IGRlbGV0ZWQsIGFuZCB0aGUgdmFsdWVcbiAgLy8gICBpcyB0aGUgb2xkIHZhbHVlLlxuICAvLyBJZiBhIHZhbHVlIGdvdCBjaGFuZ2VkLCB0aGUgdmFsdWUgb2JqZWN0IHdpbGwgbG9vayBsaWtlOlxuICAvLyAgIHsgX19vbGQ6IC4uLiwgX19uZXc6IC4uLiB9XG5cbiAgaWYgKCFvdXQpIHtcbiAgICByZXR1cm47IC8vIG5vIGRpZmZcbiAgfVxuXG4gIGNvbnN0IHJlc291cmNlVHlwZUFkZGl0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCByZXNvdXJjZVR5cGVEZWxldGlvbnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgY29uc3QgYXR0cmlidXRlQ2hhbmdlcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIGNvbnN0IHByb3BlcnR5Q2hhbmdlcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIGNvbnN0IHByb3BlcnR5VHlwZUNoYW5nZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG91dC5SZXNvdXJjZVR5cGVzIHx8IHt9KSkge1xuICAgIGNsYXNzaWZ5UmVzb3VyY2VUeXBlVXBkYXRlKGtleSwgb3V0LlJlc291cmNlVHlwZXNba2V5XSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvdXQuUHJvcGVydHlUeXBlcyB8fCB7fSkpIHtcbiAgICBjbGFzc2lmeVByb3BlcnR5VHlwZVVwZGF0ZShrZXksIG91dC5Qcm9wZXJ0eVR5cGVzW2tleV0pO1xuICB9XG5cbiAgbGluZShgIyAke3RpdGxlfSB2JHtuZXdTcGVjLlJlc291cmNlU3BlY2lmaWNhdGlvblZlcnNpb259YCk7XG4gIGxpbmUoKTtcblxuICBsaW5lKCcjIyBOZXcgUmVzb3VyY2UgVHlwZXMnKTtcbiAgbGluZSgpO1xuICByZXNvdXJjZVR5cGVBZGRpdGlvbnMuZm9yRWFjaCh0eXBlID0+IGxpbmUoYCogJHt0eXBlfWApKTtcbiAgbGluZSgpO1xuXG4gIGlmIChyZXNvdXJjZVR5cGVEZWxldGlvbnMuc2l6ZSA+IDApIHtcbiAgICBsaW5lKCcjIyBSZW1vdmVkIFJlc291cmNlIFR5cGVzJyk7XG4gICAgbGluZSgpO1xuICAgIHJlc291cmNlVHlwZURlbGV0aW9ucy5mb3JFYWNoKHR5cGUgPT4gbGluZShgKiAke3R5cGV9YCkpO1xuICAgIGxpbmUoKTtcbiAgfVxuXG4gIGxpbmUoJyMjIEF0dHJpYnV0ZSBDaGFuZ2VzJyk7XG4gIGxpbmUoKTtcbiAgYXR0cmlidXRlQ2hhbmdlcy5mb3JFYWNoKHggPT4gbGluZSh4KSk7XG4gIGxpbmUoKTtcblxuICBsaW5lKCcjIyBQcm9wZXJ0eSBDaGFuZ2VzJyk7XG4gIGxpbmUoKTtcbiAgcHJvcGVydHlDaGFuZ2VzLmZvckVhY2goeCA9PiBsaW5lKHgpKTtcbiAgbGluZSgpO1xuXG4gIGxpbmUoJyMjIFByb3BlcnR5IFR5cGUgQ2hhbmdlcycpO1xuICBsaW5lKCk7XG4gIHByb3BlcnR5VHlwZUNoYW5nZXMuZm9yRWFjaCh4ID0+IGxpbmUoeCkpO1xuXG4gIGZ1bmN0aW9uIGNsYXNzaWZ5UmVzb3VyY2VUeXBlVXBkYXRlKHJlc291cmNlVHlwZTogc3RyaW5nLCB1cGRhdGU6IGFueSkge1xuICAgIGNvbnN0IGFkZGVkID0gaXNBZGRlZChyZXNvdXJjZVR5cGUpO1xuICAgIGlmIChhZGRlZCkge1xuICAgICAgcmVzb3VyY2VUeXBlQWRkaXRpb25zLmFkZChhZGRlZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVsZXRlZCA9IGlzRGVsZXRlZChyZXNvdXJjZVR5cGUpO1xuICAgIGlmIChkZWxldGVkKSB7XG4gICAgICByZXNvdXJjZVR5cGVEZWxldGlvbnMuYWRkKGRlbGV0ZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHB1c2hEb3duQ29tcGxldGVDaGFuZ2VzKHVwZGF0ZSk7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh1cGRhdGUpKSB7XG4gICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlICdQcm9wZXJ0aWVzJzpcbiAgICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgT2JqZWN0LmtleXModXBkYXRlLlByb3BlcnRpZXMpKSB7XG4gICAgICAgICAgICBkZXNjcmliZUNoYW5nZXMocmVzb3VyY2VUeXBlLCBwcm9wLCB1cGRhdGUuUHJvcGVydGllc1twcm9wXSkuZm9yRWFjaChjaGFuZ2UgPT4ge1xuICAgICAgICAgICAgICBwcm9wZXJ0eUNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdBdHRyaWJ1dGVzJzpcbiAgICAgICAgICBmb3IgKGNvbnN0IGF0dHIgb2YgT2JqZWN0LmtleXModXBkYXRlLkF0dHJpYnV0ZXMpKSB7XG4gICAgICAgICAgICBkZXNjcmliZUNoYW5nZXMocmVzb3VyY2VUeXBlLCBhdHRyLCB1cGRhdGUuQXR0cmlidXRlc1thdHRyXSkuZm9yRWFjaChjaGFuZ2UgPT4ge1xuICAgICAgICAgICAgICBhdHRyaWJ1dGVDaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnRG9jdW1lbnRhdGlvbic6XG4gICAgICAgICAgZGVzY3JpYmVDaGFuZ2VzKHJlc291cmNlVHlwZSwga2V5LCB1cGRhdGUuRG9jdW1lbnRhdGlvbikuZm9yRWFjaChjaGFuZ2UgPT4ge1xuICAgICAgICAgICAgYXR0cmlidXRlQ2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHVwZGF0ZSB0byAke3Jlc291cmNlVHlwZX06ICR7a2V5fWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGNsYXNzaWZ5UHJvcGVydHlUeXBlVXBkYXRlKHByb3BlcnR5VHlwZTogc3RyaW5nLCB1cGRhdGU6IGFueSkge1xuICAgIGNvbnN0IGFkZGVkID0gaXNBZGRlZChwcm9wZXJ0eVR5cGUpO1xuICAgIGlmIChhZGRlZCkge1xuICAgICAgY29uc3QgcmVzb3VyY2VUeXBlID0gYWRkZWQuc3BsaXQoJy4nKVswXTtcbiAgICAgIGlmIChyZXNvdXJjZVR5cGVBZGRpdGlvbnMuaGFzKHJlc291cmNlVHlwZSkpIHtcbiAgICAgICAgcmV0dXJuOyAvLyBza2lwcGluZyBwcm9wZXJ0eSBmb3IgYWRkZWQgcmVzb3VyY2UgdHlwZXNcbiAgICAgIH1cblxuICAgICAgcHJvcGVydHlUeXBlQ2hhbmdlcy5wdXNoKGAqICR7YWRkZWR9IChfX2FkZGVkX18pYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVsZXRlZCA9IGlzRGVsZXRlZChwcm9wZXJ0eVR5cGUpO1xuICAgIGlmIChkZWxldGVkKSB7XG4gICAgICBjb25zdCByZXNvdXJjZVR5cGUgPSBkZWxldGVkLnNwbGl0KCcuJylbMF07XG4gICAgICBpZiAocmVzb3VyY2VUeXBlRGVsZXRpb25zLmhhcyhyZXNvdXJjZVR5cGUpKSB7XG4gICAgICAgIHJldHVybjsgLy8gc2tpcHBpbmcgcHJvcGVydHkgZm9yIGFkZGVkIHJlc291cmNlIHR5cGVzXG4gICAgICB9XG5cbiAgICAgIHByb3BlcnR5VHlwZUNoYW5nZXMucHVzaChgKiAke2RlbGV0ZWR9IChfX3JlbW92ZWRfXylgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LmtleXModXBkYXRlKS5sZW5ndGggIT09IDEgJiYgT2JqZWN0LmtleXModXBkYXRlKVswXSA9PT0gJ1Byb3BlcnRpZXMnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgdXBkYXRlIHRvIGEgcmVzb3VyY2UgdHlwZS4gRXhwZWN0aW5nIG9ubHkgXCJQcm9wZXJ0aWVzXCIgdG8gY2hhbmdlOiAnICsgcHJvcGVydHlUeXBlKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgT2JqZWN0LmtleXModXBkYXRlLlByb3BlcnRpZXMgPz8ge30pKSB7XG4gICAgICBkZXNjcmliZUNoYW5nZXMocHJvcGVydHlUeXBlLCBwcm9wLCB1cGRhdGUuUHJvcGVydGllc1twcm9wXSkuZm9yRWFjaChjaGFuZ2UgPT4ge1xuICAgICAgICBwcm9wZXJ0eVR5cGVDaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQdXNoIGRvd24gbWFzcyBjaGFuZ2VzIHRvIGF0dHJpYnV0ZXMgb3IgcHJvcGVydGllcyB0byB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBBbiBleGFtcGxlIHdpbGwgZXhwbGFpbiB0aGlzIGJlc3QuIEpTT04tZGlmZiB3aWxsIG1ha2UgdGhlIHNtYWxsZXN0IGRpZmYsIHNvIGlmIHRoZXJlXG4gICAqIGFyZSBuZXcgcHJvcGVydGllcyBpdCB3aWxsIHJlcG9ydDpcbiAgICpcbiAgICogXCJQcm9wZXJ0aWVzX19hZGRlZFwiOiB7XG4gICAqICAgIFwiUHJvcGVydHkxXCI6IHsgLi4uIH0sXG4gICAqICAgIFwiUHJvcGVydHkyXCI6IHsgLi4uIH0sXG4gICAqIH1cbiAgICpcbiAgICogQnV0IHdlIHdhbnQgdG8gc2VlIHRoaXMgYXM6XG4gICAqXG4gICAqIFwiUHJvcGVydGllc1wiOiB7XG4gICAqICAgIFwiUHJvcGVydHkxX19hZGRlZFwiOiB7IC4uLiB9LFxuICAgKiAgICBcIlByb3BlcnR5Ml9fYWRkZWRcIjogeyAuLi4gfSxcbiAgICogfVxuICAgKlxuICAgKiBTYW1lIChidXQgaW4gcmV2ZXJzZSkgZm9yIGRlbGV0aW9ucy5cbiAgICovXG4gIGZ1bmN0aW9uIHB1c2hEb3duQ29tcGxldGVDaGFuZ2VzKHVwZGF0ZTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55Pj4pIHtcbiAgICBmb3IgKGNvbnN0IFtjYXRlZ29yeSwgZW50cmllc10gb2YgT2JqZWN0LmVudHJpZXModXBkYXRlKSkge1xuICAgICAgY29uc3QgYWRkZWRLZXkgPSBpc0FkZGVkKGNhdGVnb3J5KTtcbiAgICAgIGlmIChhZGRlZEtleSkge1xuICAgICAgICBkZWxldGUgdXBkYXRlW2NhdGVnb3J5XTtcbiAgICAgICAgdXBkYXRlW2FkZGVkS2V5XSA9IHN1ZmZpeEtleXMoJ19fYWRkZWQnLCBlbnRyaWVzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGVsZXRlZEtleSA9IGlzRGVsZXRlZChjYXRlZ29yeSk7XG4gICAgICBpZiAoZGVsZXRlZEtleSkge1xuICAgICAgICBkZWxldGUgdXBkYXRlW2NhdGVnb3J5XTtcbiAgICAgICAgdXBkYXRlW2RlbGV0ZWRLZXldID0gc3VmZml4S2V5cygnX19kZWxldGVkJywgZW50cmllcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaXNEZWxldGVkKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGlzU3VmZml4KGtleSwgJ19fZGVsZXRlZCcpO1xuICB9XG5cbiAgZnVuY3Rpb24gaXNBZGRlZChrZXk6IHN0cmluZykge1xuICAgIHJldHVybiBpc1N1ZmZpeChrZXksICdfX2FkZGVkJyk7XG4gIH1cblxuICBmdW5jdGlvbiBpc1N1ZmZpeChrZXk6IHN0cmluZywgc3VmZml4OiBzdHJpbmcpIHtcbiAgICBjb25zdCBpbmRleCA9IGtleS5pbmRleE9mKHN1ZmZpeCk7XG4gICAgcmV0dXJuIGluZGV4ID09PSAtMSA/IHVuZGVmaW5lZCA6IGtleS5zbGljZSgwLCBpbmRleCk7XG4gIH1cblxuICBmdW5jdGlvbiBzdWZmaXhLZXlzKHN1ZmZpeDogc3RyaW5nLCB4czogUmVjb3JkPHN0cmluZywgYW55Pik6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGNvbnN0IHJldDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHhzKSkge1xuICAgICAgcmV0W2tleSArIHN1ZmZpeF0gPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlc2NyaWJlQ2hhbmdlcyhuYW1lc3BhY2U6IHN0cmluZywgcHJlZml4OiBzdHJpbmcsIHVwZGF0ZTogYW55KSB7XG4gICAgY29uc3QgY2hhbmdlcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICBjb25zdCBhZGRlZCA9IGlzQWRkZWQocHJlZml4KTtcbiAgICBpZiAoYWRkZWQpIHtcbiAgICAgIGNoYW5nZXMucHVzaChgKiAke25hbWVzcGFjZX0gJHthZGRlZH0gKF9fYWRkZWRfXylgKTtcbiAgICAgIHJldHVybiBjaGFuZ2VzO1xuICAgIH1cblxuICAgIGNvbnN0IGRlbGV0ZWQgPSBpc0RlbGV0ZWQocHJlZml4KTtcbiAgICBpZiAoZGVsZXRlZCkge1xuICAgICAgY2hhbmdlcy5wdXNoKGAqICR7bmFtZXNwYWNlfSAke2RlbGV0ZWR9IChfX2RlbGV0ZWRfXylgKTtcbiAgICAgIHJldHVybiBjaGFuZ2VzO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YodXBkYXRlKSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBjaGFuZ2UgZm9yICR7bmFtZXNwYWNlfS4ke3ByZWZpeH0gJHtKU09OLnN0cmluZ2lmeSh1cGRhdGUpfWApO1xuICAgIH1cblxuICAgIGlmICgnX19vbGQnIGluIHVwZGF0ZSAmJiAnX19uZXcnIGluIHVwZGF0ZSkge1xuICAgICAgY2hhbmdlcy5wdXNoKGAqICR7bmFtZXNwYWNlfSAke3ByZWZpeH0gKF9fY2hhbmdlZF9fKWApO1xuICAgICAgY2hhbmdlcy5wdXNoKGAgICogT2xkOiAke3VwZGF0ZS5fX29sZH1gKTtcbiAgICAgIGNoYW5nZXMucHVzaChgICAqIE5ldzogJHt1cGRhdGUuX19uZXd9YCk7XG4gICAgICByZXR1cm4gY2hhbmdlcztcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh1cGRhdGUpKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goYCogJHtuYW1lc3BhY2V9ICR7cHJlZml4fSAoX19jaGFuZ2VkX18pYCk7XG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHVwZGF0ZSkge1xuICAgICAgICBpZiAoZW50cnkubGVuZ3RoID09PSAxICYmIGVudHJ5WzBdID09PSAnICcpIHtcbiAgICAgICAgICAvLyBUaGlzIG1lYW5zIHRoYXQgdGhpcyBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyB1bmNoYW5nZWRcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnkubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGFycmF5IGRpZmYgZW50cnk6ICR7SlNPTi5zdHJpbmdpZnkoZW50cnkpfWApO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoZW50cnlbMF0pIHtcbiAgICAgICAgICBjYXNlICcrJzpcbiAgICAgICAgICAgIGNoYW5nZXMucHVzaChgICAqIEFkZGVkICR7ZW50cnlbMV19YCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICctJzpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU29tZXRoaW5nIGF3a3dhcmQgaGFwcGVuZWQ6ICR7ZW50cnlbMV19IHdhcyBkZWxldGVkIGZyb20gJHtuYW1lc3BhY2V9ICR7cHJlZml4fSFgKTtcbiAgICAgICAgICBjYXNlICcgJzpcbiAgICAgICAgICAgIC8vIFRoaXMgZW50cnkgaXMgXCJjb250ZXh0XCJcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYXJyYXkgZGlmZiBlbnRyeTogJHtKU09OLnN0cmluZ2lmeShlbnRyeSl9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModXBkYXRlKSkge1xuICAgICAgICBmb3IgKGNvbnN0IGNoYW5nZSBvZiBkZXNjcmliZUNoYW5nZXMobmFtZXNwYWNlLCBgJHtwcmVmaXh9LiR7a2V5fWAsIHVwZGF0ZVtrZXldKSkge1xuICAgICAgICAgIGNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cbn1cblxubWFpbigpLmNhdGNoKGUgPT4ge1xuICBwcm9jZXNzLnN0ZGVyci53cml0ZShlLnN0YWNrKTtcbiAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoJ1xcbicpO1xuICBwcm9jZXNzLmV4aXQoMSk7XG59KTtcbiJdfQ==
|
|
@@ -18,10 +18,11 @@ const fs = require("fs-extra");
|
|
|
18
18
|
const patch_set_1 = require("./patch-set");
|
|
19
19
|
const validate_cfn_1 = require("./validate-cfn");
|
|
20
20
|
async function main(args) {
|
|
21
|
-
if (args.length <
|
|
22
|
-
throw new Error('Usage: split-spec-by-service <SPECFILE> <DIRECTORY>');
|
|
21
|
+
if (args.length < 3) {
|
|
22
|
+
throw new Error('Usage: split-spec-by-service <SPECFILE> <DIRECTORY> [<SERVICES>]');
|
|
23
23
|
}
|
|
24
|
-
const [specFile, outDir] = args;
|
|
24
|
+
const [specFile, outDir, services] = args;
|
|
25
|
+
const allowedServices = services.trim().split(' ').filter(Boolean);
|
|
25
26
|
log(`Loading specification: ${specFile}`);
|
|
26
27
|
const spec = await fs.readJson(specFile);
|
|
27
28
|
// Split
|
|
@@ -36,8 +37,17 @@ async function main(args) {
|
|
|
36
37
|
serviceSpec(svcName).ResourceTypes[resTypeName] = resType;
|
|
37
38
|
}
|
|
38
39
|
// Write out
|
|
39
|
-
|
|
40
|
+
if (allowedServices.length > 0) {
|
|
41
|
+
log(`Writing: ${allowedServices.join(' ')}`);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
log('Writing all services');
|
|
45
|
+
}
|
|
40
46
|
for (const [svcName, svcSpec] of Object.entries(byService)) {
|
|
47
|
+
// Skip services that are not explicitly allowed
|
|
48
|
+
if (allowedServices.length > 0 && !allowedServices.includes(svcName)) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
41
51
|
const successTarget = path.join(outDir, `000_${svcName}.json`);
|
|
42
52
|
const rejectedTarget = path.join(outDir, `.000_${svcName}.rejected.json`);
|
|
43
53
|
const errors = !process.env.NO_VALIDATE ? validate_cfn_1.CfnSpecValidator.validate(svcSpec) : [];
|
|
@@ -107,4 +117,4 @@ main(process.argv.slice(2)).catch(e => {
|
|
|
107
117
|
console.error(e);
|
|
108
118
|
process.exitCode = 1;
|
|
109
119
|
});
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtc3BlYy1ieS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3BsaXQtc3BlYy1ieS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQStCO0FBQy9COzs7Ozs7Ozs7OztHQVdHO0FBQ0gsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQiwyQ0FBMEM7QUFDMUMsaURBQWlGO0FBRWpGLEtBQUssVUFBVSxJQUFJLENBQUMsSUFBYztJQUNoQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztLQUN4RTtJQUVELE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLEdBQUcsQ0FBQywwQkFBMEIsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMxQyxNQUFNLElBQUksR0FBWSxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbEQsUUFBUTtJQUNSLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQixNQUFNLFNBQVMsR0FBNEIsRUFBRSxDQUFDO0lBQzlDLEtBQUssTUFBTSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUN6RSxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxRQUFRLENBQUM7S0FDN0Q7SUFDRCxLQUFLLE1BQU0sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDdkUsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxD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QUFVLENBQUMsUUFBZ0I7SUFDeEMsSUFBSTtRQUNGLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUMzQjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUFFLE9BQU87U0FBRTtRQUNwQyxNQUFNLENBQUMsQ0FBQztLQUNUO0FBQ0gsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLENBQVM7SUFDNUIsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBQyxDQUFTO0lBQ3BCLHNDQUFzQztJQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDcEMsc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4vKipcbiAqIFNwbGl0IHRoZSBnaXZlbiBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSBzcGVjaWZpY2F0aW9uIHVwIGludG8gYSBwYXRjaCBzZXQsIGJ5IHNlcnZpY2VcbiAqXG4gKiBBZnRlciBzcGxpdHRpbmcsIG9ubHkgd3JpdGUgb3V0IHRob3NlIGZyYWdtZW50cyB0aGF0IGFyZSB2YWxpZC4oKilcbiAqXG4gKiBUaGUgcmVhc29uIGZvciB0aGlzIGlzIHRoYXQgc29tZSBzZXJ2aWNlIHVwZGF0ZXMgc29tZXRpbWVzIGNvbnRhaW4gbWlzdGFrZXMsXG4gKiBhbmQgd2Ugd2FudCB0byBiZSBhYmxlIHRvIHRha2UgcGFydGlhbCB1cGdyYWRlcy4gQnkgc3BsaXR0aW5nIHRoZSBzcGVjLCB3ZSBjYW5cbiAqIHRha2UgdXBkYXRlcyB0byBzb21lIHNlcnZpY2VzIHdoaWxlIGxlYXZpbmcgdXBkYXRlcyB0byBvdGhlciBzZXJ2aWNlcyBiZWhpbmQuXG4gKlxuICogKCopIElmIGBOT19WQUxJREFURWAgaXMgc2V0LCBhbGwgcGllY2VzIGFyZSB3cml0dGVuIG91dC4gSW4gbm9ybWFsIG9wZXJhdGlvbiB0aGlzXG4gKiAgICAgc2hvdWxkIG5vdCBiZSB1c2VkLlxuICovXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuXG5pbXBvcnQgeyB3cml0ZVNvcnRlZCB9IGZyb20gJy4vcGF0Y2gtc2V0JztcbmltcG9ydCB7IENmblNwZWMsIENmblNwZWNWYWxpZGF0b3IsIGZvcm1hdEVycm9ySW5Db250ZXh0IH0gZnJvbSAnLi92YWxpZGF0ZS1jZm4nO1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKGFyZ3M6IHN0cmluZ1tdKSB7XG4gIGlmIChhcmdzLmxlbmd0aCA8IDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VzYWdlOiBzcGxpdC1zcGVjLWJ5LXNlcnZpY2UgPFNQRUNGSUxFPiA8RElSRUNUT1JZPicpO1xuICB9XG5cbiAgY29uc3QgW3NwZWNGaWxlLCBvdXREaXJdID0gYXJncztcbiAgbG9nKGBMb2FkaW5nIHNwZWNpZmljYXRpb246ICR7c3BlY0ZpbGV9YCk7XG4gIGNvbnN0IHNwZWM6IENmblNwZWMgPSBhd2FpdCBmcy5yZWFkSnNvbihzcGVjRmlsZSk7XG5cbiAgLy8gU3BsaXRcbiAgbG9nKCdTcGxpdHRpbmcnKTtcbiAgY29uc3QgYnlTZXJ2aWNlOiBSZWNvcmQ8c3RyaW5nLCBDZm5TcGVjPiA9IHt9O1xuICBmb3IgKGNvbnN0IFtwcm9wVHlwZU5hbWUsIHByb3BUeXBlXSBvZiBPYmplY3QuZW50cmllcyhzcGVjLlByb3BlcnR5VHlwZXMpKSB7XG4gICAgY29uc3Qgc3ZjTmFtZSA9IHNlcnZpY2VOYW1lKHByb3BUeXBlTmFtZSk7XG4gICAgc2VydmljZVNwZWMoc3ZjTmFtZSkuUHJvcGVydHlUeXBlc1twcm9wVHlwZU5hbWVdID0gcHJvcFR5cGU7XG4gIH1cbiAgZm9yIChjb25zdCBbcmVzVHlwZU5hbWUsIHJlc1R5cGVdIG9mIE9iamVjdC5lbnRyaWVzKHNwZWMuUmVzb3VyY2VUeXBlcykpIHtcbiAgICBjb25zdCBzdmNOYW1lID0gc2VydmljZU5hbWUocmVzVHlwZU5hbWUpO1xuICAgIHNlcnZpY2VTcGVjKHN2Y05hbWUpLlJlc291cmNlVHlwZXNbcmVzVHlwZU5hbWVdID0gcmVzVHlwZTtcbiAgfVxuXG4gIC8vIFdyaXRlIG91dFxuICBsb2coJ1dyaXRpbmcnKTtcbiAgZm9yIChjb25zdCBbc3ZjTmFtZSwgc3ZjU3BlY10gb2YgT2JqZWN0LmVudHJpZXMoYnlTZXJ2aWNlKSkge1xuICAgIGNvbnN0IHN1Y2Nlc3NUYXJnZXQgPSBwYXRoLmpvaW4ob3V0RGlyLCBgMDAwXyR7c3ZjTmFtZX0uanNvbmApO1xuICAgIGNvbnN0IHJlamVjdGVkVGFyZ2V0ID0gcGF0aC5qb2luKG91dERpciwgYC4wMDBfJHtzdmNOYW1lfS5yZWplY3RlZC5qc29uYCk7XG5cbiAgICBjb25zdCBlcnJvcnMgPSAhcHJvY2Vzcy5lbnYuTk9fVkFMSURBVEUgPyBDZm5TcGVjVmFsaWRhdG9yLnZhbGlkYXRlKHN2Y1NwZWMpIDogW107XG4gICAgaWYgKGVycm9ycy5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIENoYW5nZSAnUmVzb3VyY2VTcGVjaWZpY2F0aW9uVmVyc2lvbicgdG8gJyR2ZXJzaW9uJywgb3RoZXJ3aXNlIHRoZXkgd2lsbCBhbGwgY29uZmxpY3RcbiAgICAgIGNvbnN0IHRvV3JpdGUgPSB7XG4gICAgICAgIFByb3BlcnR5VHlwZXM6IHN2Y1NwZWMuUHJvcGVydHlUeXBlcyxcbiAgICAgICAgUmVzb3VyY2VUeXBlczogc3ZjU3BlYy5SZXNvdXJjZVR5cGVzLFxuICAgICAgICAkdmVyc2lvbjogc3ZjU3BlYy5SZXNvdXJjZVNwZWNpZmljYXRpb25WZXJzaW9uLFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgd3JpdGVTb3J0ZWQoc3VjY2Vzc1RhcmdldCwgdG9Xcml0ZSk7XG4gICAgICBhd2FpdCBlbnN1cmVHb25lKHJlamVjdGVkVGFyZ2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCc9Jy5yZXBlYXQoNzApKTtcbiAgICAgIGNvbnNvbGUud2FybignICcucmVwZWF0KE1hdGguZmxvb3IoMzUgLSBzdmNOYW1lLmxlbmd0aCAvIDIpKSArIHN2Y05hbWUpO1xuICAgICAgY29uc29sZS53YXJuKCc9Jy5yZXBlYXQoNzApKTtcbiAgICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JzKSB7XG4gICAgICAgIGNvbnNvbGUud2Fybihmb3JtYXRFcnJvckluQ29udGV4dChlcnJvcikpO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCB3cml0ZVNvcnRlZChyZWplY3RlZFRhcmdldCwgc3ZjU3BlYyk7XG5cbiAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBzdWNjZXNzIGZpbGUgZXhpc3RzLiBJZiBub3QsIHRoZSBpbml0aWFsIGltcG9ydCBvZiBhXG4gICAgICAvLyBuZXcgc2VydmljZSBmYWlsZWQuXG4gICAgICBpZiAoIWF3YWl0IGZzLnBhdGhFeGlzdHMoc3VjY2Vzc1RhcmdldCkpIHtcbiAgICAgICAgYXdhaXQgd3JpdGVTb3J0ZWQoc3VjY2Vzc1RhcmdldCwge1xuICAgICAgICAgIFByb3BlcnR5VHlwZXM6IHt9LFxuICAgICAgICAgIFJlc291cmNlVHlwZXM6IHt9LFxuICAgICAgICAgICR2ZXJzaW9uOiAnMC4wLjAnLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgYXdhaXQgZnMud3JpdGVKc29uKHBhdGguam9pbihvdXREaXIsICcwMDFfVmVyc2lvbi5qc29uJyksIHtcbiAgICBSZXNvdXJjZVNwZWNpZmljYXRpb25WZXJzaW9uOiBzcGVjLlJlc291cmNlU3BlY2lmaWNhdGlvblZlcnNpb24sXG4gIH0sIHsgc3BhY2VzOiAyIH0pO1xuXG4gIGZ1bmN0aW9uIHNlcnZpY2VTcGVjKHN2Y05hbWU6IHN0cmluZykge1xuICAgIGlmICghKHN2Y05hbWUgaW4gYnlTZXJ2aWNlKSkge1xuICAgICAgYnlTZXJ2aWNlW3N2Y05hbWVdID0ge1xuICAgICAgICBQcm9wZXJ0eVR5cGVzOiB7fSxcbiAgICAgICAgUmVzb3VyY2VUeXBlczoge30sXG4gICAgICAgIFJlc291cmNlU3BlY2lmaWNhdGlvblZlcnNpb246IHNwZWMuUmVzb3VyY2VTcGVjaWZpY2F0aW9uVmVyc2lvbixcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBieVNlcnZpY2Vbc3ZjTmFtZV07XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZW5zdXJlR29uZShmaWxlTmFtZTogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZnMudW5saW5rKGZpbGVOYW1lKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChlLmNvZGUgPT09ICdFTk9FTlQnKSB7IHJldHVybjsgfVxuICAgIHRocm93IGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2VydmljZU5hbWUoeDogc3RyaW5nKSB7XG4gIHJldHVybiB4LnNwbGl0KCc6OicpLnNsaWNlKDAsIDIpLmpvaW4oJ18nKTtcbn1cblxuZnVuY3Rpb24gbG9nKHg6IHN0cmluZykge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICBjb25zb2xlLmxvZyh4KTtcbn1cblxubWFpbihwcm9jZXNzLmFyZ3Yuc2xpY2UoMikpLmNhdGNoKGUgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICBjb25zb2xlLmVycm9yKGUpO1xuICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbn0pO1xuIl19
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtc3BlYy1ieS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3BsaXQtc3BlYy1ieS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQStCO0FBQy9COzs7Ozs7Ozs7OztHQVdHO0FBQ0gsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQiwyQ0FBMEM7QUFDMUMsaURBQWlGO0FBRWpGLEtBQUssVUFBVSxJQUFJLENBQUMsSUFBYztJQUNoQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztLQUNyRjtJQUVELE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUMxQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVuRSxHQUFHLENBQUMsMEJBQTBCLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUMsTUFBTSxJQUFJLEdBQVksTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWxELFFBQVE7SUFDUixHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakIsTUFBTSxTQUFTLEdBQTRCLEVBQUUsQ0FBQztJQUM5QyxLQUFLLE1BQU0sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDekUsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFDO0tBQzdEO0lBQ0QsS0FBSyxNQUFNLENBQUMsV0FBVyxF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QUFDO0lBQ2pCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuLyoqXG4gKiBTcGxpdCB0aGUgZ2l2ZW4gQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2Ugc3BlY2lmaWNhdGlvbiB1cCBpbnRvIGEgcGF0Y2ggc2V0LCBieSBzZXJ2aWNlXG4gKlxuICogQWZ0ZXIgc3BsaXR0aW5nLCBvbmx5IHdyaXRlIG91dCB0aG9zZSBmcmFnbWVudHMgdGhhdCBhcmUgdmFsaWQuKCopXG4gKlxuICogVGhlIHJlYXNvbiBmb3IgdGhpcyBpcyB0aGF0IHNvbWUgc2VydmljZSB1cGRhdGVzIHNvbWV0aW1lcyBjb250YWluIG1pc3Rha2VzLFxuICogYW5kIHdlIHdhbnQgdG8gYmUgYWJsZSB0byB0YWtlIHBhcnRpYWwgdXBncmFkZXMuIEJ5IHNwbGl0dGluZyB0aGUgc3BlYywgd2UgY2FuXG4gKiB0YWtlIHVwZGF0ZXMgdG8gc29tZSBzZXJ2aWNlcyB3aGlsZSBsZWF2aW5nIHVwZGF0ZXMgdG8gb3RoZXIgc2VydmljZXMgYmVoaW5kLlxuICpcbiAqICgqKSBJZiBgTk9fVkFMSURBVEVgIGlzIHNldCwgYWxsIHBpZWNlcyBhcmUgd3JpdHRlbiBvdXQuIEluIG5vcm1hbCBvcGVyYXRpb24gdGhpc1xuICogICAgIHNob3VsZCBub3QgYmUgdXNlZC5cbiAqL1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcblxuaW1wb3J0IHsgd3JpdGVTb3J0ZWQgfSBmcm9tICcuL3BhdGNoLXNldCc7XG5pbXBvcnQgeyBDZm5TcGVjLCBDZm5TcGVjVmFsaWRhdG9yLCBmb3JtYXRFcnJvckluQ29udGV4dCB9IGZyb20gJy4vdmFsaWRhdGUtY2ZuJztcblxuYXN5bmMgZnVuY3Rpb24gbWFpbihhcmdzOiBzdHJpbmdbXSkge1xuICBpZiAoYXJncy5sZW5ndGggPCAzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVc2FnZTogc3BsaXQtc3BlYy1ieS1zZXJ2aWNlIDxTUEVDRklMRT4gPERJUkVDVE9SWT4gWzxTRVJWSUNFUz5dJyk7XG4gIH1cblxuICBjb25zdCBbc3BlY0ZpbGUsIG91dERpciwgc2VydmljZXNdID0gYXJncztcbiAgY29uc3QgYWxsb3dlZFNlcnZpY2VzID0gc2VydmljZXMudHJpbSgpLnNwbGl0KCcgJykuZmlsdGVyKEJvb2xlYW4pO1xuXG4gIGxvZyhgTG9hZGluZyBzcGVjaWZpY2F0aW9uOiAke3NwZWNGaWxlfWApO1xuICBjb25zdCBzcGVjOiBDZm5TcGVjID0gYXdhaXQgZnMucmVhZEpzb24oc3BlY0ZpbGUpO1xuXG4gIC8vIFNwbGl0XG4gIGxvZygnU3BsaXR0aW5nJyk7XG4gIGNvbnN0IGJ5U2VydmljZTogUmVjb3JkPHN0cmluZywgQ2ZuU3BlYz4gPSB7fTtcbiAgZm9yIChjb25zdCBbcHJvcFR5cGVOYW1lLCBwcm9wVHlwZV0gb2YgT2JqZWN0LmVudHJpZXMoc3BlYy5Qcm9wZXJ0eVR5cGVzKSkge1xuICAgIGNvbnN0IHN2Y05hbWUgPSBzZXJ2aWNlTmFtZShwcm9wVHlwZU5hbWUpO1xuICAgIHNlcnZpY2VTcGVjKHN2Y05hbWUpLlByb3BlcnR5VHlwZXNbcHJvcFR5cGVOYW1lXSA9IHByb3BUeXBlO1xuICB9XG4gIGZvciAoY29uc3QgW3Jlc1R5cGVOYW1lLCByZXNUeXBlXSBvZiBPYmplY3QuZW50cmllcyhzcGVjLlJlc291cmNlVHlwZXMpKSB7XG4gICAgY29uc3Qgc3ZjTmFtZSA9IHNlcnZpY2VOYW1lKHJlc1R5cGVOYW1lKTtcbiAgICBzZXJ2aWNlU3BlYyhzdmNOYW1lKS5SZXNvdXJjZVR5cGVzW3Jlc1R5cGVOYW1lXSA9IHJlc1R5cGU7XG4gIH1cblxuICAvLyBXcml0ZSBvdXRcbiAgaWYgKGFsbG93ZWRTZXJ2aWNlcy5sZW5ndGggPiAwKSB7XG4gICAgbG9nKGBXcml0aW5nOiAke2FsbG93ZWRTZXJ2aWNlcy5qb2luKCcgJyl9YCk7XG4gIH0gZWxzZSB7XG4gICAgbG9nKCdXcml0aW5nIGFsbCBzZXJ2aWNlcycpO1xuICB9XG4gIGZvciAoY29uc3QgW3N2Y05hbWUsIHN2Y1NwZWNdIG9mIE9iamVjdC5lbnRyaWVzKGJ5U2VydmljZSkpIHtcbiAgICAvLyBTa2lwIHNlcnZpY2VzIHRoYXQgYXJlIG5vdCBleHBsaWNpdGx5IGFsbG93ZWRcbiAgICBpZiAoYWxsb3dlZFNlcnZpY2VzLmxlbmd0aCA+IDAgJiYgIWFsbG93ZWRTZXJ2aWNlcy5pbmNsdWRlcyhzdmNOYW1lKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3Qgc3VjY2Vzc1RhcmdldCA9IHBhdGguam9pbihvdXREaXIsIGAwMDBfJHtzdmNOYW1lfS5qc29uYCk7XG4gICAgY29uc3QgcmVqZWN0ZWRUYXJnZXQgPSBwYXRoLmpvaW4ob3V0RGlyLCBgLjAwMF8ke3N2Y05hbWV9LnJlamVjdGVkLmpzb25gKTtcblxuICAgIGNvbnN0IGVycm9ycyA9ICFwcm9jZXNzLmVudi5OT19WQUxJREFURSA/IENmblNwZWNWYWxpZGF0b3IudmFsaWRhdGUoc3ZjU3BlYykgOiBbXTtcbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gQ2hhbmdlICdSZXNvdXJjZVNwZWNpZmljYXRpb25WZXJzaW9uJyB0byAnJHZlcnNpb24nLCBvdGhlcndpc2UgdGhleSB3aWxsIGFsbCBjb25mbGljdFxuICAgICAgY29uc3QgdG9Xcml0ZSA9IHtcbiAgICAgICAgUHJvcGVydHlUeXBlczogc3ZjU3BlYy5Qcm9wZXJ0eVR5cGVzLFxuICAgICAgICBSZXNvdXJjZVR5cGVzOiBzdmNTcGVjLlJlc291cmNlVHlwZXMsXG4gICAgICAgICR2ZXJzaW9uOiBzdmNTcGVjLlJlc291cmNlU3BlY2lmaWNhdGlvblZlcnNpb24sXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCB3cml0ZVNvcnRlZChzdWNjZXNzVGFyZ2V0LCB0b1dyaXRlKTtcbiAgICAgIGF3YWl0IGVuc3VyZUdvbmUocmVqZWN0ZWRUYXJnZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oJz0nLnJlcGVhdCg3MCkpO1xuICAgICAgY29uc29sZS53YXJuKCcgJy5yZXBlYXQoTWF0aC5mbG9vcigzNSAtIHN2Y05hbWUubGVuZ3RoIC8gMikpICsgc3ZjTmFtZSk7XG4gICAgICBjb25zb2xlLndhcm4oJz0nLnJlcGVhdCg3MCkpO1xuICAgICAgZm9yIChjb25zdCBlcnJvciBvZiBlcnJvcnMpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGZvcm1hdEVycm9ySW5Db250ZXh0KGVycm9yKSk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHdyaXRlU29ydGVkKHJlamVjdGVkVGFyZ2V0LCBzdmNTcGVjKTtcblxuICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHN1Y2Nlc3MgZmlsZSBleGlzdHMuIElmIG5vdCwgdGhlIGluaXRpYWwgaW1wb3J0IG9mIGFcbiAgICAgIC8vIG5ldyBzZXJ2aWNlIGZhaWxlZC5cbiAgICAgIGlmICghYXdhaXQgZnMucGF0aEV4aXN0cyhzdWNjZXNzVGFyZ2V0KSkge1xuICAgICAgICBhd2FpdCB3cml0ZVNvcnRlZChzdWNjZXNzVGFyZ2V0LCB7XG4gICAgICAgICAgUHJvcGVydHlUeXBlczoge30sXG4gICAgICAgICAgUmVzb3VyY2VUeXBlczoge30sXG4gICAgICAgICAgJHZlcnNpb246ICcwLjAuMCcsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBhd2FpdCBmcy53cml0ZUpzb24ocGF0aC5qb2luKG91dERpciwgJzAwMV9WZXJzaW9uLmpzb24nKSwge1xuICAgIFJlc291cmNlU3BlY2lmaWNhdGlvblZlcnNpb246IHNwZWMuUmVzb3VyY2VTcGVjaWZpY2F0aW9uVmVyc2lvbixcbiAgfSwgeyBzcGFjZXM6IDIgfSk7XG5cbiAgZnVuY3Rpb24gc2VydmljZVNwZWMoc3ZjTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCEoc3ZjTmFtZSBpbiBieVNlcnZpY2UpKSB7XG4gICAgICBieVNlcnZpY2Vbc3ZjTmFtZV0gPSB7XG4gICAgICAgIFByb3BlcnR5VHlwZXM6IHt9LFxuICAgICAgICBSZXNvdXJjZVR5cGVzOiB7fSxcbiAgICAgICAgUmVzb3VyY2VTcGVjaWZpY2F0aW9uVmVyc2lvbjogc3BlYy5SZXNvdXJjZVNwZWNpZmljYXRpb25WZXJzaW9uLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGJ5U2VydmljZVtzdmNOYW1lXTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBlbnN1cmVHb25lKGZpbGVOYW1lOiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy51bmxpbmsoZmlsZU5hbWUpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGUuY29kZSA9PT0gJ0VOT0VOVCcpIHsgcmV0dXJuOyB9XG4gICAgdGhyb3cgZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXJ2aWNlTmFtZSh4OiBzdHJpbmcpIHtcbiAgcmV0dXJuIHguc3BsaXQoJzo6Jykuc2xpY2UoMCwgMikuam9pbignXycpO1xufVxuXG5mdW5jdGlvbiBsb2coeDogc3RyaW5nKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUubG9nKHgpO1xufVxuXG5tYWluKHByb2Nlc3MuYXJndi5zbGljZSgyKSkuY2F0Y2goZSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUuZXJyb3IoZSk7XG4gIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xufSk7XG4iXX0=
|
|
@@ -16,6 +16,7 @@ function update-spec() {
|
|
|
16
16
|
local targetdir=$3
|
|
17
17
|
local gunzip=$4
|
|
18
18
|
local split=$5
|
|
19
|
+
local services=${@:6}
|
|
19
20
|
|
|
20
21
|
local tmpdir="$(mktemp -d)"
|
|
21
22
|
local newspec="${tmpdir}/new_proposed.json"
|
|
@@ -42,10 +43,11 @@ function update-spec() {
|
|
|
42
43
|
|
|
43
44
|
# Calculate the old and new combined specs, so we can do a diff on the changes
|
|
44
45
|
echo >&2 "Updating source spec..."
|
|
46
|
+
mkdir -p ${targetdir}
|
|
45
47
|
|
|
46
48
|
node build-tools/patch-set.js --quiet "${targetdir}" "${oldcombined}"
|
|
47
49
|
if ${split}; then
|
|
48
|
-
node build-tools/split-spec-by-service.js "${newspec}" "${targetdir}"
|
|
50
|
+
node build-tools/split-spec-by-service.js "${newspec}" "${targetdir}" "${services}"
|
|
49
51
|
else
|
|
50
52
|
cp "${newspec}" "${targetdir}/spec.json"
|
|
51
53
|
sort-json "${targetdir}/spec.json"
|
|
@@ -66,6 +68,12 @@ update-spec \
|
|
|
66
68
|
spec-source/specification/000_cfn/000_official \
|
|
67
69
|
true true
|
|
68
70
|
|
|
71
|
+
update-spec \
|
|
72
|
+
"CloudFormation Resource Specification (us-west-2)" \
|
|
73
|
+
"${2:-https://d201a2mn26r7lk.cloudfront.net/latest/gzip/CloudFormationResourceSpecification.json}" \
|
|
74
|
+
spec-source/specification/001_cfn_us-west-2/000_official \
|
|
75
|
+
true true AWS_DeviceFarm
|
|
76
|
+
|
|
69
77
|
old_version=$(cat cfn.version)
|
|
70
78
|
new_version=$(node -p "require('${scriptdir}/../spec-source/specification/000_cfn/000_official/001_Version.json').ResourceSpecificationVersion")
|
|
71
79
|
echo >&2 "Recording new version..."
|
|
@@ -76,6 +84,7 @@ echo "$new_version" > cfn.version
|
|
|
76
84
|
if [[ "$new_version" != "$old_version" ]]; then
|
|
77
85
|
echo >&2 "Reporting outdated specs..."
|
|
78
86
|
node build-tools/report-issues spec-source/specification/000_cfn/000_official/ outdated >> CHANGELOG.md.new
|
|
87
|
+
node build-tools/report-issues spec-source/specification/001_cfn_us-west-2/000_official/ outdated >> CHANGELOG.md.new
|
|
79
88
|
fi
|
|
80
89
|
|
|
81
90
|
update-spec \
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
109.0.0
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/cfnspec",
|
|
3
3
|
"description": "The CloudFormation resource specification used by @aws-cdk packages",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.63.0",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"update": "cdk-build && /bin/bash build-tools/update.sh",
|
|
7
7
|
"update-metrics": "/bin/bash build-tools/update-metrics.sh",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"main": "lib/index.js",
|
|
31
31
|
"types": "lib/index.d.ts",
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
34
|
-
"@aws-cdk/pkglint": "2.
|
|
33
|
+
"@aws-cdk/cdk-build-tools": "2.63.0",
|
|
34
|
+
"@aws-cdk/pkglint": "2.63.0",
|
|
35
35
|
"@types/fs-extra": "^8.1.2",
|
|
36
36
|
"@types/jest": "^27.5.2",
|
|
37
37
|
"@types/md5": "^2.3.2",
|