cdk-common 2.0.218 → 2.0.221
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 +10 -4
- package/API.md +5 -0
- package/lib/main.js +1 -1
- package/lib/managed-policies.d.ts +1 -0
- package/lib/managed-policies.js +2 -1
- package/node_modules/@aws-cdk/assert/package.json +8 -8
- package/node_modules/@aws-cdk/cfnspec/CHANGELOG.md +59 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/patch-set.js +5 -2
- package/node_modules/@aws-cdk/cfnspec/build-tools/report-issues.d.ts +5 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/report-issues.js +30 -2
- package/node_modules/@aws-cdk/cfnspec/build-tools/split-spec-by-service.js +26 -2
- package/node_modules/@aws-cdk/cfnspec/cfn.version +1 -1
- package/node_modules/@aws-cdk/cfnspec/package.json +4 -3
- package/node_modules/@aws-cdk/cfnspec/spec/specification.json +182 -8
- package/node_modules/@aws-cdk/cfnspec/tsconfig.tsbuildinfo +75 -17
- package/node_modules/@aws-cdk/cloudformation-diff/package.json +4 -4
- package/node_modules/@types/concat-stream/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/concat-stream/node_modules/@types/node/package.json +2 -2
- package/node_modules/@types/concat-stream/node_modules/@types/node/path.d.ts +30 -19
- package/node_modules/@types/form-data/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/form-data/node_modules/@types/node/package.json +2 -2
- package/node_modules/@types/form-data/node_modules/@types/node/path.d.ts +30 -19
- package/package.json +6 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/assert",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.34.2",
|
|
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.34.2",
|
|
38
|
+
"@aws-cdk/cdk-build-tools": "2.34.2",
|
|
39
|
+
"@aws-cdk/pkglint": "2.34.2",
|
|
40
40
|
"@types/jest": "^27.5.2",
|
|
41
|
-
"aws-cdk-lib": "2.
|
|
42
|
-
"aws-cdk-migration": "2.
|
|
41
|
+
"aws-cdk-lib": "2.34.2",
|
|
42
|
+
"aws-cdk-migration": "2.34.2",
|
|
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.34.2"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"aws-cdk-lib": "^2.
|
|
51
|
+
"aws-cdk-lib": "^2.34.2",
|
|
52
52
|
"constructs": "^10.0.0",
|
|
53
53
|
"jest": ">=26.6.3"
|
|
54
54
|
},
|
|
@@ -1,3 +1,62 @@
|
|
|
1
|
+
# CloudFormation Resource Specification v81.1.0
|
|
2
|
+
|
|
3
|
+
## New Resource Types
|
|
4
|
+
|
|
5
|
+
* AWS::Evidently::Segment
|
|
6
|
+
|
|
7
|
+
## Attribute Changes
|
|
8
|
+
|
|
9
|
+
* AWS::ApiGateway::DocumentationPart DocumentationPartId (__added__)
|
|
10
|
+
* AWS::IoT::Policy Id (__added__)
|
|
11
|
+
|
|
12
|
+
## Property Changes
|
|
13
|
+
|
|
14
|
+
* AWS::CloudWatch::CompositeAlarm ActionsSuppressor (__added__)
|
|
15
|
+
* AWS::CloudWatch::CompositeAlarm ActionsSuppressorExtensionPeriod (__added__)
|
|
16
|
+
* AWS::CloudWatch::CompositeAlarm ActionsSuppressorWaitPeriod (__added__)
|
|
17
|
+
* AWS::EC2::Host InstanceFamily (__added__)
|
|
18
|
+
* AWS::EC2::Host OutpostArn (__added__)
|
|
19
|
+
* AWS::EC2::Host InstanceType.Required (__changed__)
|
|
20
|
+
* Old: true
|
|
21
|
+
* New: false
|
|
22
|
+
* AWS::EC2::VPCEndpointService ContributorInsightsEnabled (__added__)
|
|
23
|
+
* AWS::GuardDuty::Detector Tags (__added__)
|
|
24
|
+
* AWS::GuardDuty::Filter Tags (__added__)
|
|
25
|
+
* AWS::GuardDuty::IPSet Tags (__added__)
|
|
26
|
+
* AWS::GuardDuty::ThreatIntelSet Tags (__added__)
|
|
27
|
+
* AWS::IoT::Policy PolicyDocument.UpdateType (__changed__)
|
|
28
|
+
* Old: Immutable
|
|
29
|
+
* New: Mutable
|
|
30
|
+
* AWS::Location::GeofenceCollection KmsKeyId.UpdateType (__changed__)
|
|
31
|
+
* Old: Mutable
|
|
32
|
+
* New: Immutable
|
|
33
|
+
* AWS::Location::GeofenceCollection PricingPlanDataSource.UpdateType (__changed__)
|
|
34
|
+
* Old: Immutable
|
|
35
|
+
* New: Mutable
|
|
36
|
+
* AWS::Location::Tracker PricingPlanDataSource.UpdateType (__changed__)
|
|
37
|
+
* Old: Immutable
|
|
38
|
+
* New: Mutable
|
|
39
|
+
* AWS::SSO::PermissionSet CustomerManagedPolicyReferences (__added__)
|
|
40
|
+
* AWS::SSO::PermissionSet PermissionsBoundary (__added__)
|
|
41
|
+
|
|
42
|
+
## Property Type Changes
|
|
43
|
+
|
|
44
|
+
* AWS::SSO::PermissionSet.CustomerManagedPolicyReference (__added__)
|
|
45
|
+
* AWS::SSO::PermissionSet.PermissionsBoundary (__added__)
|
|
46
|
+
* AWS::Transfer::Server.As2Transport (__added__)
|
|
47
|
+
* AWS::AppFlow::Flow.ScheduledTriggerProperties FirstExecutionFrom (__added__)
|
|
48
|
+
* AWS::CloudFront::Distribution.DistributionConfig DefaultCacheBehavior.Required (__changed__)
|
|
49
|
+
* Old: false
|
|
50
|
+
* New: true
|
|
51
|
+
* AWS::Transfer::Server.ProtocolDetails As2Transports (__added__)
|
|
52
|
+
|
|
53
|
+
## Unapplied changes
|
|
54
|
+
|
|
55
|
+
* AWS::ConnectCampaigns is at 0.0.0
|
|
56
|
+
* AWS::Rekognition is at 68.0.0
|
|
57
|
+
* AWS::RolesAnywhere is at 0.0.0
|
|
58
|
+
* AWS::SageMaker is at 72.0.0
|
|
59
|
+
|
|
1
60
|
# CloudFormation Resource Specification v81.0.0
|
|
2
61
|
|
|
3
62
|
## New Resource Types
|
|
@@ -17,7 +17,10 @@ async function loadPatchSet(sourceDirectory, relativeTo = process.cwd()) {
|
|
|
17
17
|
for (const file of files) {
|
|
18
18
|
const fullFile = path.join(sourceDirectory, file);
|
|
19
19
|
const relName = path.relative(relativeTo, fullFile);
|
|
20
|
-
if (
|
|
20
|
+
if (file.startsWith('.')) {
|
|
21
|
+
// Nothing, ignore
|
|
22
|
+
}
|
|
23
|
+
else if ((await fs.stat(fullFile)).isDirectory()) {
|
|
21
24
|
ret[relName] = {
|
|
22
25
|
type: 'set',
|
|
23
26
|
sources: await loadPatchSet(fullFile, sourceDirectory),
|
|
@@ -236,4 +239,4 @@ if (require.main === module) {
|
|
|
236
239
|
console.error(e.message);
|
|
237
240
|
});
|
|
238
241
|
}
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2gtc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGF0Y2gtc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBOzs7O0dBSUc7QUFDSCw2QkFBNkI7QUFDN0IsaURBQWlEO0FBQ2pELCtCQUErQjtBQUUvQixpRUFBaUU7QUFDakUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBYy9CLEtBQUssVUFBVSxZQUFZLENBQUMsZUFBdUIsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRTtJQUNwRixNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7SUFFekIsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2hELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUMzQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUc7Z0JBQ2IsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUM7YUFDdkQsQ0FBQztTQUNIO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRztnQkFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENB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QU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7SUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ3BDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLHNDQUFzQztRQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIEFwcGx5IGEgSlNPTiBwYXRjaCBzZXQgaW50byB0aGUgZ2l2ZW4gdGFyZ2V0IGZpbGVcbiAqXG4gKiBUaGUgc291cmNlcyBjYW4gYmUgdGFrZW4gZnJvbSBvbmUgb3IgbW9yZSBkaXJlY3Rvcmllcy5cbiAqL1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZhc3RKc29uUGF0Y2ggZnJvbSAnZmFzdC1qc29uLXBhdGNoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IHNvcnRKc29uID0gcmVxdWlyZSgnc29ydC1qc29uJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0Y2hPcHRpb25zIHtcbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBQYXRjaFNldCA9IFJlY29yZDxzdHJpbmcsIFBhdGNoU2V0RWxlbWVudD47XG5cbmV4cG9ydCB0eXBlIFBhdGNoU2V0RWxlbWVudCA9XG4gIHwgeyByZWFkb25seSB0eXBlOiAnZnJhZ21lbnQnOyByZWFkb25seSBkYXRhOiBhbnkgfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ3BhdGNoJzsgcmVhZG9ubHkgZGF0YTogYW55IH1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdzZXQnOyByZWFkb25seSBzb3VyY2VzOiBQYXRjaFNldCB9XG4gIDtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRQYXRjaFNldChzb3VyY2VEaXJlY3Rvcnk6IHN0cmluZywgcmVsYXRpdmVUbyA9IHByb2Nlc3MuY3dkKCkpOiBQcm9taXNlPFBhdGNoU2V0PiB7XG4gIGNvbnN0IHJldDogUGF0Y2hTZXQgPSB7fTtcblxuICBjb25zdCBmaWxlcyA9IGF3YWl0IGZzLnJlYWRkaXIoc291cmNlRGlyZWN0b3J5KTtcbiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgY29uc3QgZnVsbEZpbGUgPSBwYXRoLmpvaW4oc291cmNlRGlyZWN0b3J5LCBmaWxlKTtcbiAgICBjb25zdCByZWxOYW1lID0gcGF0aC5yZWxhdGl2ZShyZWxhdGl2ZVRvLCBmdWxsRmlsZSk7XG5cbiAgICBpZiAoKGF3YWl0IGZzLnN0YXQoZnVsbEZpbGUpKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICByZXRbcmVsTmFtZV0gPSB7XG4gICAgICAgIHR5cGU6ICdzZXQnLFxuICAgICAgICBzb3VyY2VzOiBhd2FpdCBsb2FkUGF0Y2hTZXQoZnVsbEZpbGUsIHNvdXJjZURpcmVjdG9yeSksXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoZmlsZS5lbmRzV2l0aCgnLmpzb24nKSkge1xuICAgICAgcmV0W3JlbE5hbWVdID0ge1xuICAgICAgICB0eXBlOiBmaWxlLmluZGV4T2YoJ3BhdGNoJykgPT09IC0xID8gJ2ZyYWdtZW50JyA6ICdwYXRjaCcsXG4gICAgICAgIGRhdGE6IGF3YWl0IGZzLnJlYWRKc29uKGZ1bGxGaWxlKSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2YWx1YXRlUGF0Y2hTZXQoc291cmNlczogUGF0Y2hTZXQsIG9wdGlvbnM6IFBhdGNoT3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHRhcmdldE9iamVjdDogYW55ID0ge307XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoc291cmNlcykuc29ydCgpKSB7XG4gICAgY29uc3QgdmFsdWUgPSBzb3VyY2VzW2tleV07XG5cbiAgICBzd2l0Y2ggKHZhbHVlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2ZyYWdtZW50JzpcbiAgICAgICAgbG9nKGtleSk7XG4gICAgICAgIG1lcmdlKHRhcmdldE9iamVjdCwgdmFsdWUuZGF0YSwgW10pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3BhdGNoJzpcbiAgICAgICAgcGF0Y2godGFyZ2V0T2JqZWN0LCB2YWx1ZS5kYXRhLCAobSkgPT4gbG9nKGAke2tleX06ICR7bX1gKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2V0JzpcbiAgICAgICAgY29uc3QgZXZhbHVhdGVkID0gZXZhbHVhdGVQYXRjaFNldCh2YWx1ZS5zb3VyY2VzLCBvcHRpb25zKTtcbiAgICAgICAgbG9nKGtleSk7XG4gICAgICAgIG1lcmdlKHRhcmdldE9iamVjdCwgZXZhbHVhdGVkLCBbXSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXRPYmplY3Q7XG5cbiAgZnVuY3Rpb24gbG9nKHg6IHN0cmluZykge1xuICAgIGlmICghb3B0aW9ucy5xdWlldCkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKHgpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIExvYWQgYSBwYXRjaCBzZXQgZnJvbSBhIGRpcmVjdG9yeVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlQYXRjaFNldChzb3VyY2VEaXJlY3Rvcnk6IHN0cmluZywgb3B0aW9uczogUGF0Y2hPcHRpb25zID0ge30pIHtcbiAgY29uc3QgcGF0Y2hlcyA9IGF3YWl0IGxvYWRQYXRjaFNldChzb3VyY2VEaXJlY3RvcnkpO1xuICByZXR1cm4gZXZhbHVhdGVQYXRjaFNldChwYXRjaGVzLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBMb2FkIGEgcGF0Y2ggc2V0IGFuZCB3cml0ZSBpdCBvdXQgdG8gYSBmaWxlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcHBseUFuZFdyaXRlKHRhcmdldEZpbGU6IHN0cmluZywgc291cmNlRGlyZWN0b3J5OiBzdHJpbmcsIG9wdGlvbnM6IFBhdGNoT3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IG1vZGVsID0gYXdhaXQgYXBwbHlQYXRjaFNldChzb3VyY2VEaXJlY3RvcnksIG9wdGlvbnMpO1xuICBhd2FpdCB3cml0ZVNvcnRlZCh0YXJnZXRGaWxlLCBtb2RlbCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZVNvcnRlZCh0YXJnZXRGaWxlOiBzdHJpbmcsIGRhdGE6IGFueSkge1xuICBhd2FpdCBmcy5ta2RpcnAocGF0aC5kaXJuYW1lKHRhcmdldEZpbGUpKTtcbiAgYXdhaXQgZnMud3JpdGVKc29uKHRhcmdldEZpbGUsIHNvcnRKc29uKGRhdGEpLCB7IHNwYWNlczogMiB9KTtcbn1cblxuZnVuY3Rpb24gcHJpbnRTb3J0ZWQoZGF0YTogYW55KSB7XG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKEpTT04uc3RyaW5naWZ5KHNvcnRKc29uKGRhdGEpLCB1bmRlZmluZWQsIDIpKTtcbn1cblxuZnVuY3Rpb24gbWVyZ2UodGFyZ2V0OiBhbnksIGZyYWdtZW50OiBhbnksIGpzb25QYXRoOiBzdHJpbmdbXSkge1xuICBpZiAoIWZyYWdtZW50KSB7IHJldHVybjsgfVxuICBpZiAoIXRhcmdldCB8fCB0eXBlb2YgdGFyZ2V0ICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHRhcmdldCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIG9iamVjdCwgZm91bmQ6ICcke3RhcmdldH0nIGF0ICckLiR7anNvblBhdGguam9pbignLicpfSdgKTtcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGZyYWdtZW50KSkge1xuICAgIGlmIChrZXkuc3RhcnRzV2l0aCgnJCcpKSB7IGNvbnRpbnVlOyB9XG5cbiAgICBpZiAoa2V5IGluIHRhcmdldCkge1xuICAgICAgY29uc3Qgc3BlY1ZhbCA9IHRhcmdldFtrZXldO1xuICAgICAgY29uc3QgZnJhZ1ZhbCA9IGZyYWdtZW50W2tleV07XG4gICAgICBpZiAodHlwZW9mIHNwZWNWYWwgIT09IHR5cGVvZiBmcmFnVmFsKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQXR0ZW1wdGVkIHRvIG1lcmdlICR7SlNPTi5zdHJpbmdpZnkoZnJhZ1ZhbCl9IGludG8gaW5jb21wYXRpYmxlICR7SlNPTi5zdHJpbmdpZnkoc3BlY1ZhbCl9IGF0IHBhdGggJHtqc29uUGF0aC5qb2luKCcvJyl9LyR7a2V5fWApO1xuICAgICAgfVxuICAgICAgaWYgKHNwZWNWYWwgPT0gZnJhZ1ZhbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygc3BlY1ZhbCAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb25mbGljdCB3aGVuIGF0dGVtcHRpbmcgdG8gbWVyZ2UgJHtKU09OLnN0cmluZ2lmeShmcmFnVmFsKX0gaW50byAke0pTT04uc3RyaW5naWZ5KHNwZWNWYWwpfSBhdCBwYXRoICR7anNvblBhdGguam9pbignLycpfS8ke2tleX1gKTtcbiAgICAgIH1cbiAgICAgIG1lcmdlKHNwZWNWYWwsIGZyYWdWYWwsIFsuLi5qc29uUGF0aCwga2V5XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldFtrZXldID0gZnJhZ21lbnRba2V5XTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcGF0Y2godGFyZ2V0OiBhbnksIGZyYWdtZW50OiBhbnksIGxvZzogKHg6IHN0cmluZykgPT4gdm9pZCkge1xuICBpZiAoIWZyYWdtZW50KSB7IHJldHVybjsgfVxuXG4gIGNvbnN0IHBhdGNoZXMgPSBmaW5kUGF0Y2hlcyh0YXJnZXQsIGZyYWdtZW50KTtcbiAgZm9yIChjb25zdCBwIG9mIHBhdGNoZXMpIHtcbiAgICBsb2cocC5kZXNjcmlwdGlvbiA/PyAnJyk7XG5cbiAgICB0cnkge1xuICAgICAgZmFzdEpzb25QYXRjaC5hcHBseVBhdGNoKHRhcmdldCwgcC5vcGVyYXRpb25zKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGVycm9yIGFwcGx5aW5nIHBhdGNoOiAke0pTT04uc3RyaW5naWZ5KHAsIHVuZGVmaW5lZCwgMil9OiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cbn1cblxuaW50ZXJmYWNlIFBhdGNoIHtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9wZXJhdGlvbnM6IE9wZXJhdGlvbltdO1xufVxuXG50eXBlIE9wZXJhdGlvbiA9XG4gIHwgeyByZWFkb25seSBvcDogJ2FkZCc7IHJlYWRvbmx5IHBhdGg6IHN0cmluZzsgcmVhZG9ubHkgdmFsdWU6IGFueSB9XG4gIHwgeyByZWFkb25seSBvcDogJ3JlbW92ZSc7IHJlYWRvbmx5IHBhdGg6IHN0cmluZyB9XG4gIHwgeyByZWFkb25seSBvcDogJ3JlcGxhY2UnOyByZWFkb25seSBwYXRoOiBzdHJpbmc7IHJlYWRvbmx5IHZhbHVlOiBhbnkgfVxuICB8IHsgcmVhZG9ubHkgb3A6ICdjb3B5JzsgcmVhZG9ubHkgcGF0aDogc3RyaW5nOyByZWFkb25seSBmcm9tOiBzdHJpbmcgfVxuICB8IHsgcmVhZG9ubHkgb3A6ICdtb3ZlJzsgcmVhZG9ubHkgcGF0aDogc3RyaW5nOyByZWFkb25seSBmcm9tOiBzdHJpbmcgfVxuICB8IHsgcmVhZG9ubHkgb3A6ICd0ZXN0JzsgcmVhZG9ubHkgcGF0aDogc3RyaW5nOyByZWFkb25seSB2YWx1ZTogYW55IH1cbiAgO1xuXG4vKipcbiAqIEZpbmQgdGhlIHNldHMgb2YgcGF0Y2hlcyB0byBhcHBseSBpbiBhIGRvY3VtZW50XG4gKlxuICogQWRqdXN0cyBwYXRocyB0byBiZSByb290LXJlbGF0aXZlLCB3aGljaCBtYWtlcyBpdCBwb3NzaWJsZSB0byBoYXZlIHBhdGhzXG4gKiBwb2ludCBvdXRzaWRlIHRoZSBwYXRjaCBzY29wZS5cbiAqL1xuZnVuY3Rpb24gZmluZFBhdGNoZXMoZGF0YTogYW55LCBwYXRjaFNvdXJjZTogYW55KTogUGF0Y2hbXSB7XG4gIGNvbnN0IHJldDogUGF0Y2hbXSA9IFtdO1xuICByZWN1cnNlKGRhdGEsIHBhdGNoU291cmNlLCBbXSk7XG4gIHJldHVybiByZXQ7XG5cbiAgZnVuY3Rpb24gcmVjdXJzZShhY3R1YWxEYXRhOiBhbnksIGZyYWdtZW50OiBhbnksIGpzb25QYXRoOiBzdHJpbmdbXSkge1xuICAgIGlmICghZnJhZ21lbnQpIHsgcmV0dXJuOyB9XG5cbiAgICBpZiAoJ3BhdGNoJyBpbiBmcmFnbWVudCkge1xuICAgICAgY29uc3QgcCA9IGZyYWdtZW50LnBhdGNoO1xuICAgICAgaWYgKCFwLm9wZXJhdGlvbnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXRjaCBuZWVkcyAnb3BlcmF0aW9ucycga2V5LCBnb3Q6ICR7SlNPTi5zdHJpbmdpZnkocCl9YCk7XG4gICAgICB9XG4gICAgICByZXQucHVzaCh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBwLmRlc2NyaXB0aW9uLFxuICAgICAgICBvcGVyYXRpb25zOiBwLm9wZXJhdGlvbnMubWFwKChvcDogYW55KSA9PiBhZGp1c3RQYXRocyhvcCwganNvblBhdGgpKSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoJ3BhdGNoOmVhY2gnIGluIGZyYWdtZW50KSB7XG4gICAgICBjb25zdCBwID0gZnJhZ21lbnRbJ3BhdGNoOmVhY2gnXTtcbiAgICAgIGlmICh0eXBlb2YgYWN0dWFsRGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXRjaCAke3AuZGVzY3JpcHRpb259OiBleHBlY3Rpbmcgb2JqZWN0IGluIGRhdGEsIGZvdW5kICcke2FjdHVhbERhdGF9J2ApO1xuICAgICAgfVxuICAgICAgaWYgKCFwLm9wZXJhdGlvbnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXRjaCBuZWVkcyAnb3BlcmF0aW9ucycga2V5LCBnb3Q6ICR7SlNPTi5zdHJpbmdpZnkocCl9YCk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBhY3R1YWxEYXRhKSB7XG4gICAgICAgIHJldC5wdXNoKHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYCR7a2V5fTogJHtwLmRlc2NyaXB0aW9ufWAsXG4gICAgICAgICAgb3BlcmF0aW9uczogcC5vcGVyYXRpb25zLm1hcCgob3A6IGFueSkgPT4gYWRqdXN0UGF0aHMob3AsIFsuLi5qc29uUGF0aCwga2V5XSkpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZnJhZ21lbnQpKSB7XG4gICAgICAgIGlmICghKGtleSBpbiBhY3R1YWxEYXRhKSkge1xuICAgICAgICAgIGFjdHVhbERhdGFba2V5XSA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIHJlY3Vyc2UoYWN0dWFsRGF0YVtrZXldLCBmcmFnbWVudFtrZXldLCBbLi4uanNvblBhdGgsIGtleV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGFkanVzdFBhdGhzKG9wOiBhbnksIGpzb25QYXRoOiBzdHJpbmdbXSk6IE9wZXJhdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm9wLFxuICAgICAgLi4ub3AucGF0aCA/IHsgcGF0aDogYWRqdXN0UGF0aChvcC5wYXRoLCBqc29uUGF0aCkgfSA6IHVuZGVmaW5lZCxcbiAgICAgIC4uLm9wLmZyb20gPyB7IGZyb206IGFkanVzdFBhdGgob3AuZnJvbSwganNvblBhdGgpIH0gOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGp1c3QgcGF0aFxuICAgKlxuICAgKiAnJC8nIG1lYW5zIGZyb20gdGhlIHJvb3QsIG90aGVyd2lzZSBpbnRlcnByZXQgYXMgcmVsYXRpdmUgcGF0aC5cbiAgICovXG4gIGZ1bmN0aW9uIGFkanVzdFBhdGgob3JpZ2luYWxQYXRoOiBzdHJpbmcsIGpzb25QYXRoOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiBvcmlnaW5hbFBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGFkanVzdFBhdGg6IGV4cGVjdGVkIHN0cmluZywgZ290ICR7SlNPTi5zdHJpbmdpZnkob3JpZ2luYWxQYXRoKX1gKTtcbiAgICB9XG4gICAgaWYgKG9yaWdpbmFsUGF0aC5zdGFydHNXaXRoKCckLycpKSB7XG4gICAgICByZXR1cm4gb3JpZ2luYWxQYXRoLnNsaWNlKDEpO1xuICAgIH1cbiAgICByZXR1cm4ganNvblBhdGgubWFwKHAgPT4gYC8ke3B9YCkuam9pbignJykgKyBvcmlnaW5hbFBhdGg7XG4gIH1cbn1cblxuXG4vKipcbiAqIFJ1biB0aGlzIGZpbGUgYXMgYSBDTEkgdG9vbCwgdG8gYXBwbHkgYSBwYXRjaCBzZXQgZnJvbSB0aGUgY29tbWFuZCBsaW5lXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIG1haW4oYXJnczogc3RyaW5nW10pIHtcbiAgY29uc3QgcXVpZXQgPSBlYXRBcmcoJy1xJywgYXJncykgfHwgZWF0QXJnKCctLXF1aWV0JywgYXJncyk7XG5cbiAgaWYgKGFyZ3MubGVuZ3RoIDwgMSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVXNhZ2U6IHBhdGNoLXNldCA8RElSPiBbPEZJTEU+XScpO1xuICB9XG5cbiAgY29uc3QgW2RpciwgdGFyZ2V0RmlsZV0gPSBhcmdzO1xuXG4gIGNvbnN0IG1vZGVsID0gYXdhaXQgYXBwbHlQYXRjaFNldChkaXIsIHsgcXVpZXQgfSk7XG4gIGlmICh0YXJnZXRGaWxlKSB7XG4gICAgYXdhaXQgd3JpdGVTb3J0ZWQodGFyZ2V0RmlsZSwgbW9kZWwpO1xuICB9IGVsc2Uge1xuICAgIHByaW50U29ydGVkKG1vZGVsKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBlYXRBcmcoYXJnOiBzdHJpbmcsIGFyZ3M6IHN0cmluZ1tdKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhcmdzW2ldID09PSBhcmcpIHtcbiAgICAgIGFyZ3Muc3BsaWNlKGksIDEpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7XG4gIG1haW4ocHJvY2Vzcy5hcmd2LnNsaWNlKDIpKS5jYXRjaChlID0+IHtcbiAgICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgIGNvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKTtcbiAgfSk7XG59XG4iXX0=
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2gtc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGF0Y2gtc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBOzs7O0dBSUc7QUFDSCw2QkFBNkI7QUFDN0IsaURBQWlEO0FBQ2pELCtCQUErQjtBQUUvQixpRUFBaUU7QUFDakUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBYy9CLEtBQUssVUFBVSxZQUFZLENBQUMsZUFBdUIsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRTtJQUNwRixNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7SUFFekIsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2hELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXBELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QixrQkFBa0I7U0FDbkI7YUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDbEQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHO2dCQUNiLElBQUksRUFBRSxLQUFLO2dCQUNYLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDO2FBQ3ZELENBQUM7U0FDSDthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNqQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUc7Z0JBQ2IsSUFBSSxFQUFFLElBQUksQ0FB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LENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQztTQUNiO0tBQ0Y7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO0lBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNwQyxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNyQixzQ0FBc0M7UUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBBcHBseSBhIEpTT04gcGF0Y2ggc2V0IGludG8gdGhlIGdpdmVuIHRhcmdldCBmaWxlXG4gKlxuICogVGhlIHNvdXJjZXMgY2FuIGJlIHRha2VuIGZyb20gb25lIG9yIG1vcmUgZGlyZWN0b3JpZXMuXG4gKi9cbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmYXN0SnNvblBhdGNoIGZyb20gJ2Zhc3QtanNvbi1wYXRjaCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCBzb3J0SnNvbiA9IHJlcXVpcmUoJ3NvcnQtanNvbicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhdGNoT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgUGF0Y2hTZXQgPSBSZWNvcmQ8c3RyaW5nLCBQYXRjaFNldEVsZW1lbnQ+O1xuXG5leHBvcnQgdHlwZSBQYXRjaFNldEVsZW1lbnQgPVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ2ZyYWdtZW50JzsgcmVhZG9ubHkgZGF0YTogYW55IH1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdwYXRjaCc7IHJlYWRvbmx5IGRhdGE6IGFueSB9XG4gIHwgeyByZWFkb25seSB0eXBlOiAnc2V0JzsgcmVhZG9ubHkgc291cmNlczogUGF0Y2hTZXQgfVxuICA7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkUGF0Y2hTZXQoc291cmNlRGlyZWN0b3J5OiBzdHJpbmcsIHJlbGF0aXZlVG8gPSBwcm9jZXNzLmN3ZCgpKTogUHJvbWlzZTxQYXRjaFNldD4ge1xuICBjb25zdCByZXQ6IFBhdGNoU2V0ID0ge307XG5cbiAgY29uc3QgZmlsZXMgPSBhd2FpdCBmcy5yZWFkZGlyKHNvdXJjZURpcmVjdG9yeSk7XG4gIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgIGNvbnN0IGZ1bGxGaWxlID0gcGF0aC5qb2luKHNvdXJjZURpcmVjdG9yeSwgZmlsZSk7XG4gICAgY29uc3QgcmVsTmFtZSA9IHBhdGgucmVsYXRpdmUocmVsYXRpdmVUbywgZnVsbEZpbGUpO1xuXG4gICAgaWYgKGZpbGUuc3RhcnRzV2l0aCgnLicpKSB7XG4gICAgICAvLyBOb3RoaW5nLCBpZ25vcmVcbiAgICB9IGVsc2UgaWYgKChhd2FpdCBmcy5zdGF0KGZ1bGxGaWxlKSkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgcmV0W3JlbE5hbWVdID0ge1xuICAgICAgICB0eXBlOiAnc2V0JyxcbiAgICAgICAgc291cmNlczogYXdhaXQgbG9hZFBhdGNoU2V0KGZ1bGxGaWxlLCBzb3VyY2VEaXJlY3RvcnkpLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGZpbGUuZW5kc1dpdGgoJy5qc29uJykpIHtcbiAgICAgIHJldFtyZWxOYW1lXSA9IHtcbiAgICAgICAgdHlwZTogZmlsZS5pbmRleE9mKCdwYXRjaCcpID09PSAtMSA/ICdmcmFnbWVudCcgOiAncGF0Y2gnLFxuICAgICAgICBkYXRhOiBhd2FpdCBmcy5yZWFkSnNvbihmdWxsRmlsZSksXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBldmFsdWF0ZVBhdGNoU2V0KHNvdXJjZXM6IFBhdGNoU2V0LCBvcHRpb25zOiBQYXRjaE9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB0YXJnZXRPYmplY3Q6IGFueSA9IHt9O1xuXG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHNvdXJjZXMpLnNvcnQoKSkge1xuICAgIGNvbnN0IHZhbHVlID0gc291cmNlc1trZXldO1xuXG4gICAgc3dpdGNoICh2YWx1ZS50eXBlKSB7XG4gICAgICBjYXNlICdmcmFnbWVudCc6XG4gICAgICAgIGxvZyhrZXkpO1xuICAgICAgICBtZXJnZSh0YXJnZXRPYmplY3QsIHZhbHVlLmRhdGEsIFtdKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdwYXRjaCc6XG4gICAgICAgIHBhdGNoKHRhcmdldE9iamVjdCwgdmFsdWUuZGF0YSwgKG0pID0+IGxvZyhgJHtrZXl9OiAke219YCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NldCc6XG4gICAgICAgIGNvbnN0IGV2YWx1YXRlZCA9IGV2YWx1YXRlUGF0Y2hTZXQodmFsdWUuc291cmNlcywgb3B0aW9ucyk7XG4gICAgICAgIGxvZyhrZXkpO1xuICAgICAgICBtZXJnZSh0YXJnZXRPYmplY3QsIGV2YWx1YXRlZCwgW10pO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0T2JqZWN0O1xuXG4gIGZ1bmN0aW9uIGxvZyh4OiBzdHJpbmcpIHtcbiAgICBpZiAoIW9wdGlvbnMucXVpZXQpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmxvZyh4KTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBMb2FkIGEgcGF0Y2ggc2V0IGZyb20gYSBkaXJlY3RvcnlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwcGx5UGF0Y2hTZXQoc291cmNlRGlyZWN0b3J5OiBzdHJpbmcsIG9wdGlvbnM6IFBhdGNoT3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHBhdGNoZXMgPSBhd2FpdCBsb2FkUGF0Y2hTZXQoc291cmNlRGlyZWN0b3J5KTtcbiAgcmV0dXJuIGV2YWx1YXRlUGF0Y2hTZXQocGF0Y2hlcywgb3B0aW9ucyk7XG59XG5cbi8qKlxuICogTG9hZCBhIHBhdGNoIHNldCBhbmQgd3JpdGUgaXQgb3V0IHRvIGEgZmlsZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlBbmRXcml0ZSh0YXJnZXRGaWxlOiBzdHJpbmcsIHNvdXJjZURpcmVjdG9yeTogc3RyaW5nLCBvcHRpb25zOiBQYXRjaE9wdGlvbnMgPSB7fSkge1xuICBjb25zdCBtb2RlbCA9IGF3YWl0IGFwcGx5UGF0Y2hTZXQoc291cmNlRGlyZWN0b3J5LCBvcHRpb25zKTtcbiAgYXdhaXQgd3JpdGVTb3J0ZWQodGFyZ2V0RmlsZSwgbW9kZWwpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVTb3J0ZWQodGFyZ2V0RmlsZTogc3RyaW5nLCBkYXRhOiBhbnkpIHtcbiAgYXdhaXQgZnMubWtkaXJwKHBhdGguZGlybmFtZSh0YXJnZXRGaWxlKSk7XG4gIGF3YWl0IGZzLndyaXRlSnNvbih0YXJnZXRGaWxlLCBzb3J0SnNvbihkYXRhKSwgeyBzcGFjZXM6IDIgfSk7XG59XG5cbmZ1bmN0aW9uIHByaW50U29ydGVkKGRhdGE6IGFueSkge1xuICBwcm9jZXNzLnN0ZG91dC53cml0ZShKU09OLnN0cmluZ2lmeShzb3J0SnNvbihkYXRhKSwgdW5kZWZpbmVkLCAyKSk7XG59XG5cbmZ1bmN0aW9uIG1lcmdlKHRhcmdldDogYW55LCBmcmFnbWVudDogYW55LCBqc29uUGF0aDogc3RyaW5nW10pIHtcbiAgaWYgKCFmcmFnbWVudCkgeyByZXR1cm47IH1cbiAgaWYgKCF0YXJnZXQgfHwgdHlwZW9mIHRhcmdldCAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheSh0YXJnZXQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBvYmplY3QsIGZvdW5kOiAnJHt0YXJnZXR9JyBhdCAnJC4ke2pzb25QYXRoLmpvaW4oJy4nKX0nYCk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhmcmFnbWVudCkpIHtcbiAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJyQnKSkgeyBjb250aW51ZTsgfVxuXG4gICAgaWYgKGtleSBpbiB0YXJnZXQpIHtcbiAgICAgIGNvbnN0IHNwZWNWYWwgPSB0YXJnZXRba2V5XTtcbiAgICAgIGNvbnN0IGZyYWdWYWwgPSBmcmFnbWVudFtrZXldO1xuICAgICAgaWYgKHR5cGVvZiBzcGVjVmFsICE9PSB0eXBlb2YgZnJhZ1ZhbCkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEF0dGVtcHRlZCB0byBtZXJnZSAke0pTT04uc3RyaW5naWZ5KGZyYWdWYWwpfSBpbnRvIGluY29tcGF0aWJsZSAke0pTT04uc3RyaW5naWZ5KHNwZWNWYWwpfSBhdCBwYXRoICR7anNvblBhdGguam9pbignLycpfS8ke2tleX1gKTtcbiAgICAgIH1cbiAgICAgIGlmIChzcGVjVmFsID09IGZyYWdWYWwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHNwZWNWYWwgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ29uZmxpY3Qgd2hlbiBhdHRlbXB0aW5nIHRvIG1lcmdlICR7SlNPTi5zdHJpbmdpZnkoZnJhZ1ZhbCl9IGludG8gJHtKU09OLnN0cmluZ2lmeShzcGVjVmFsKX0gYXQgcGF0aCAke2pzb25QYXRoLmpvaW4oJy8nKX0vJHtrZXl9YCk7XG4gICAgICB9XG4gICAgICBtZXJnZShzcGVjVmFsLCBmcmFnVmFsLCBbLi4uanNvblBhdGgsIGtleV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRba2V5XSA9IGZyYWdtZW50W2tleV07XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHBhdGNoKHRhcmdldDogYW55LCBmcmFnbWVudDogYW55LCBsb2c6ICh4OiBzdHJpbmcpID0+IHZvaWQpIHtcbiAgaWYgKCFmcmFnbWVudCkgeyByZXR1cm47IH1cblxuICBjb25zdCBwYXRjaGVzID0gZmluZFBhdGNoZXModGFyZ2V0LCBmcmFnbWVudCk7XG4gIGZvciAoY29uc3QgcCBvZiBwYXRjaGVzKSB7XG4gICAgbG9nKHAuZGVzY3JpcHRpb24gPz8gJycpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGZhc3RKc29uUGF0Y2guYXBwbHlQYXRjaCh0YXJnZXQsIHAub3BlcmF0aW9ucyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBlcnJvciBhcHBseWluZyBwYXRjaDogJHtKU09OLnN0cmluZ2lmeShwLCB1bmRlZmluZWQsIDIpfTogJHtlLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG59XG5cbmludGVyZmFjZSBQYXRjaCB7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICByZWFkb25seSBvcGVyYXRpb25zOiBPcGVyYXRpb25bXTtcbn1cblxudHlwZSBPcGVyYXRpb24gPVxuICB8IHsgcmVhZG9ubHkgb3A6ICdhZGQnOyByZWFkb25seSBwYXRoOiBzdHJpbmc7IHJlYWRvbmx5IHZhbHVlOiBhbnkgfVxuICB8IHsgcmVhZG9ubHkgb3A6ICdyZW1vdmUnOyByZWFkb25seSBwYXRoOiBzdHJpbmcgfVxuICB8IHsgcmVhZG9ubHkgb3A6ICdyZXBsYWNlJzsgcmVhZG9ubHkgcGF0aDogc3RyaW5nOyByZWFkb25seSB2YWx1ZTogYW55IH1cbiAgfCB7IHJlYWRvbmx5IG9wOiAnY29weSc7IHJlYWRvbmx5IHBhdGg6IHN0cmluZzsgcmVhZG9ubHkgZnJvbTogc3RyaW5nIH1cbiAgfCB7IHJlYWRvbmx5IG9wOiAnbW92ZSc7IHJlYWRvbmx5IHBhdGg6IHN0cmluZzsgcmVhZG9ubHkgZnJvbTogc3RyaW5nIH1cbiAgfCB7IHJlYWRvbmx5IG9wOiAndGVzdCc7IHJlYWRvbmx5IHBhdGg6IHN0cmluZzsgcmVhZG9ubHkgdmFsdWU6IGFueSB9XG4gIDtcblxuLyoqXG4gKiBGaW5kIHRoZSBzZXRzIG9mIHBhdGNoZXMgdG8gYXBwbHkgaW4gYSBkb2N1bWVudFxuICpcbiAqIEFkanVzdHMgcGF0aHMgdG8gYmUgcm9vdC1yZWxhdGl2ZSwgd2hpY2ggbWFrZXMgaXQgcG9zc2libGUgdG8gaGF2ZSBwYXRoc1xuICogcG9pbnQgb3V0c2lkZSB0aGUgcGF0Y2ggc2NvcGUuXG4gKi9cbmZ1bmN0aW9uIGZpbmRQYXRjaGVzKGRhdGE6IGFueSwgcGF0Y2hTb3VyY2U6IGFueSk6IFBhdGNoW10ge1xuICBjb25zdCByZXQ6IFBhdGNoW10gPSBbXTtcbiAgcmVjdXJzZShkYXRhLCBwYXRjaFNvdXJjZSwgW10pO1xuICByZXR1cm4gcmV0O1xuXG4gIGZ1bmN0aW9uIHJlY3Vyc2UoYWN0dWFsRGF0YTogYW55LCBmcmFnbWVudDogYW55LCBqc29uUGF0aDogc3RyaW5nW10pIHtcbiAgICBpZiAoIWZyYWdtZW50KSB7IHJldHVybjsgfVxuXG4gICAgaWYgKCdwYXRjaCcgaW4gZnJhZ21lbnQpIHtcbiAgICAgIGNvbnN0IHAgPSBmcmFnbWVudC5wYXRjaDtcbiAgICAgIGlmICghcC5vcGVyYXRpb25zKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUGF0Y2ggbmVlZHMgJ29wZXJhdGlvbnMnIGtleSwgZ290OiAke0pTT04uc3RyaW5naWZ5KHApfWApO1xuICAgICAgfVxuICAgICAgcmV0LnB1c2goe1xuICAgICAgICBkZXNjcmlwdGlvbjogcC5kZXNjcmlwdGlvbixcbiAgICAgICAgb3BlcmF0aW9uczogcC5vcGVyYXRpb25zLm1hcCgob3A6IGFueSkgPT4gYWRqdXN0UGF0aHMob3AsIGpzb25QYXRoKSksXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKCdwYXRjaDplYWNoJyBpbiBmcmFnbWVudCkge1xuICAgICAgY29uc3QgcCA9IGZyYWdtZW50WydwYXRjaDplYWNoJ107XG4gICAgICBpZiAodHlwZW9mIGFjdHVhbERhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUGF0Y2ggJHtwLmRlc2NyaXB0aW9ufTogZXhwZWN0aW5nIG9iamVjdCBpbiBkYXRhLCBmb3VuZCAnJHthY3R1YWxEYXRhfSdgKTtcbiAgICAgIH1cbiAgICAgIGlmICghcC5vcGVyYXRpb25zKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUGF0Y2ggbmVlZHMgJ29wZXJhdGlvbnMnIGtleSwgZ290OiAke0pTT04uc3RyaW5naWZ5KHApfWApO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gYWN0dWFsRGF0YSkge1xuICAgICAgICByZXQucHVzaCh7XG4gICAgICAgICAgZGVzY3JpcHRpb246IGAke2tleX06ICR7cC5kZXNjcmlwdGlvbn1gLFxuICAgICAgICAgIG9wZXJhdGlvbnM6IHAub3BlcmF0aW9ucy5tYXAoKG9wOiBhbnkpID0+IGFkanVzdFBhdGhzKG9wLCBbLi4uanNvblBhdGgsIGtleV0pKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGZyYWdtZW50KSkge1xuICAgICAgICBpZiAoIShrZXkgaW4gYWN0dWFsRGF0YSkpIHtcbiAgICAgICAgICBhY3R1YWxEYXRhW2tleV0gPSB7fTtcbiAgICAgICAgfVxuICAgICAgICByZWN1cnNlKGFjdHVhbERhdGFba2V5XSwgZnJhZ21lbnRba2V5XSwgWy4uLmpzb25QYXRoLCBrZXldKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBhZGp1c3RQYXRocyhvcDogYW55LCBqc29uUGF0aDogc3RyaW5nW10pOiBPcGVyYXRpb24ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5vcCxcbiAgICAgIC4uLm9wLnBhdGggPyB7IHBhdGg6IGFkanVzdFBhdGgob3AucGF0aCwganNvblBhdGgpIH0gOiB1bmRlZmluZWQsXG4gICAgICAuLi5vcC5mcm9tID8geyBmcm9tOiBhZGp1c3RQYXRoKG9wLmZyb20sIGpzb25QYXRoKSB9IDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQWRqdXN0IHBhdGhcbiAgICpcbiAgICogJyQvJyBtZWFucyBmcm9tIHRoZSByb290LCBvdGhlcndpc2UgaW50ZXJwcmV0IGFzIHJlbGF0aXZlIHBhdGguXG4gICAqL1xuICBmdW5jdGlvbiBhZGp1c3RQYXRoKG9yaWdpbmFsUGF0aDogc3RyaW5nLCBqc29uUGF0aDogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxQYXRoICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBhZGp1c3RQYXRoOiBleHBlY3RlZCBzdHJpbmcsIGdvdCAke0pTT04uc3RyaW5naWZ5KG9yaWdpbmFsUGF0aCl9YCk7XG4gICAgfVxuICAgIGlmIChvcmlnaW5hbFBhdGguc3RhcnRzV2l0aCgnJC8nKSkge1xuICAgICAgcmV0dXJuIG9yaWdpbmFsUGF0aC5zbGljZSgxKTtcbiAgICB9XG4gICAgcmV0dXJuIGpzb25QYXRoLm1hcChwID0+IGAvJHtwfWApLmpvaW4oJycpICsgb3JpZ2luYWxQYXRoO1xuICB9XG59XG5cblxuLyoqXG4gKiBSdW4gdGhpcyBmaWxlIGFzIGEgQ0xJIHRvb2wsIHRvIGFwcGx5IGEgcGF0Y2ggc2V0IGZyb20gdGhlIGNvbW1hbmQgbGluZVxuICovXG5hc3luYyBmdW5jdGlvbiBtYWluKGFyZ3M6IHN0cmluZ1tdKSB7XG4gIGNvbnN0IHF1aWV0ID0gZWF0QXJnKCctcScsIGFyZ3MpIHx8IGVhdEFyZygnLS1xdWlldCcsIGFyZ3MpO1xuXG4gIGlmIChhcmdzLmxlbmd0aCA8IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VzYWdlOiBwYXRjaC1zZXQgPERJUj4gWzxGSUxFPl0nKTtcbiAgfVxuXG4gIGNvbnN0IFtkaXIsIHRhcmdldEZpbGVdID0gYXJncztcblxuICBjb25zdCBtb2RlbCA9IGF3YWl0IGFwcGx5UGF0Y2hTZXQoZGlyLCB7IHF1aWV0IH0pO1xuICBpZiAodGFyZ2V0RmlsZSkge1xuICAgIGF3YWl0IHdyaXRlU29ydGVkKHRhcmdldEZpbGUsIG1vZGVsKTtcbiAgfSBlbHNlIHtcbiAgICBwcmludFNvcnRlZChtb2RlbCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZWF0QXJnKGFyZzogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJnc1tpXSA9PT0gYXJnKSB7XG4gICAgICBhcmdzLnNwbGljZShpLCAxKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmlmIChyZXF1aXJlLm1haW4gPT09IG1vZHVsZSkge1xuICBtYWluKHByb2Nlc3MuYXJndi5zbGljZSgyKSkuY2F0Y2goZSA9PiB7XG4gICAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSk7XG4gIH0pO1xufVxuIl19
|
|
@@ -2,10 +2,16 @@
|
|
|
2
2
|
/* eslint-disable no-console */
|
|
3
3
|
/**
|
|
4
4
|
* Report on spec fragment files that are being held back.
|
|
5
|
+
*
|
|
6
|
+
* Report formats:
|
|
7
|
+
*
|
|
8
|
+
* - 'outdated'/'changelog': print for changelog format
|
|
9
|
+
* - 'rejected': print validation errors, exit with error code 1 if there are any
|
|
5
10
|
*/
|
|
6
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
12
|
const path = require("path");
|
|
8
13
|
const fs = require("fs-extra");
|
|
14
|
+
const validate_cfn_1 = require("./validate-cfn");
|
|
9
15
|
async function main(args) {
|
|
10
16
|
if (args.length < 2) {
|
|
11
17
|
throw new Error('Usage: report-issues <DIR> <FORMAT>');
|
|
@@ -19,18 +25,40 @@ async function main(args) {
|
|
|
19
25
|
}
|
|
20
26
|
const json = await fs.readJson(path.join(dir, file));
|
|
21
27
|
const fragmentVersion = json.$version;
|
|
28
|
+
const serviceName = file.replace(/^000_/, '').replace(/\.json$/, '').replace('_', '::');
|
|
22
29
|
switch (format) {
|
|
23
30
|
case 'outdated':
|
|
31
|
+
case 'changelog':
|
|
24
32
|
if (fragmentVersion !== officialVersion) {
|
|
25
33
|
if (!headerPrinted) {
|
|
26
34
|
console.log('## Unapplied changes');
|
|
27
35
|
console.log('');
|
|
28
36
|
headerPrinted = true;
|
|
29
37
|
}
|
|
30
|
-
const serviceName = file.replace(/^000_/, '').replace(/\.json$/, '').replace('_', '::');
|
|
31
38
|
console.log(`* ${serviceName} is at ${fragmentVersion}`);
|
|
32
39
|
}
|
|
33
40
|
break;
|
|
41
|
+
case 'rejected':
|
|
42
|
+
if (fragmentVersion !== officialVersion) {
|
|
43
|
+
// Read the 'rejected' file, parse it (which we expect to fail)
|
|
44
|
+
// and print the failures.
|
|
45
|
+
const rejectedFileName = `.${file.replace(/.json$/, '.rejected.json')}`;
|
|
46
|
+
const rejectedPath = path.join(dir, rejectedFileName);
|
|
47
|
+
if (!await fs.pathExists(rejectedPath)) {
|
|
48
|
+
// If for whatever reason the file doesn't exist, ignore
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const rejectedSpec = await fs.readJson(rejectedPath);
|
|
52
|
+
const errors = validate_cfn_1.CfnSpecValidator.validate(rejectedSpec);
|
|
53
|
+
console.warn('='.repeat(70));
|
|
54
|
+
console.warn(' '.repeat(Math.floor(35 - serviceName.length / 2)) + serviceName);
|
|
55
|
+
console.warn('='.repeat(70));
|
|
56
|
+
for (const error of errors) {
|
|
57
|
+
console.warn(validate_cfn_1.formatErrorInContext(error));
|
|
58
|
+
process.exitCode = 1;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
break;
|
|
34
62
|
default:
|
|
35
63
|
throw new Error(`Unknown format type requested: ${format}`);
|
|
36
64
|
}
|
|
@@ -41,4 +69,4 @@ main(process.argv.slice(2)).catch(e => {
|
|
|
41
69
|
console.error(e);
|
|
42
70
|
process.exitCode = 1;
|
|
43
71
|
});
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWlzc3Vlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlcG9ydC1pc3N1ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjtBQUMvQjs7Ozs7OztHQU9HOztBQUVILDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsaURBQXdFO0FBRXhFLEtBQUssVUFBVSxJQUFJLENBQUMsSUFBYztJQUNoQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztLQUN4RDtJQUVELE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBRTNCLE1BQU0sZUFBZSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDO0lBQzdHLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztJQUUxQixLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QixTQUFTO1NBQ1Y7UUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV4RixRQUFRLE1BQU0sRUFBRTtZQUNkLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssV0FBVztnQkFDZCxJQUFJLGVBQWUsS0FBSyxlQUFlLEVBQUU7b0JBQ3ZDLElBQUksQ0FBQyxhQUFhLEVBQUU7d0JBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQzt3QkFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDaEIsYUFBYSxHQUFHLElBQUksQ0FBQztxQkFDdEI7b0JBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFdBQVcsVUFBVSxlQUFlLEVBQUUsQ0FBQyxDQUFDO2lCQUMxRDtnQkFDRCxNQUFNO1lBRVIsS0FBSyxVQUFVO2dCQUNiLElBQUksZUFBZSxLQUFLLGVBQWUsRUFBRTtvQkFDdkMsK0RBQStEO29CQUMvRCwwQkFBMEI7b0JBQzFCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7b0JBQ3hFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLENBQUM7b0JBQ3RELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUU7d0JBQ3RDLHdEQUF3RDt3QkFDeEQsU0FBUztxQkFDVjtvQkFDRCxNQUFNLFlBQVksR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBRXJELE1BQU0sTUFBTSxHQUFHLCtCQUFnQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFFdkQsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7b0JBQ2hGLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUM3QixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTt3QkFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxtQ0FBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUMxQyxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztxQkFDdEI7aUJBQ0Y7Z0JBQ0QsTUFBTTtZQUVSO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDL0Q7S0FDRjtBQUNILENBQUM7QUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDcEMsc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4vKipcbiAqIFJlcG9ydCBvbiBzcGVjIGZyYWdtZW50IGZpbGVzIHRoYXQgYXJlIGJlaW5nIGhlbGQgYmFjay5cbiAqXG4gKiBSZXBvcnQgZm9ybWF0czpcbiAqXG4gKiAtICdvdXRkYXRlZCcvJ2NoYW5nZWxvZyc6IHByaW50IGZvciBjaGFuZ2Vsb2cgZm9ybWF0XG4gKiAtICdyZWplY3RlZCc6IHByaW50IHZhbGlkYXRpb24gZXJyb3JzLCBleGl0IHdpdGggZXJyb3IgY29kZSAxIGlmIHRoZXJlIGFyZSBhbnlcbiAqL1xuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgQ2ZuU3BlY1ZhbGlkYXRvciwgZm9ybWF0RXJyb3JJbkNvbnRleHQgfSBmcm9tICcuL3ZhbGlkYXRlLWNmbic7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oYXJnczogc3RyaW5nW10pIHtcbiAgaWYgKGFyZ3MubGVuZ3RoIDwgMikge1xuICAgIHRocm93IG5ldyBFcnJvcignVXNhZ2U6IHJlcG9ydC1pc3N1ZXMgPERJUj4gPEZPUk1BVD4nKTtcbiAgfVxuXG4gIGNvbnN0IFtkaXIsIGZvcm1hdF0gPSBhcmdzO1xuXG4gIGNvbnN0IG9mZmljaWFsVmVyc2lvbiA9IChhd2FpdCBmcy5yZWFkSnNvbihwYXRoLmpvaW4oZGlyLCAnMDAxX1ZlcnNpb24uanNvbicpKSkuUmVzb3VyY2VTcGVjaWZpY2F0aW9uVmVyc2lvbjtcbiAgbGV0IGhlYWRlclByaW50ZWQgPSBmYWxzZTtcblxuICBmb3IgKGNvbnN0IGZpbGUgb2YgYXdhaXQgZnMucmVhZGRpcihkaXIpKSB7XG4gICAgaWYgKCFmaWxlLnN0YXJ0c1dpdGgoJzAwMF8nKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QganNvbiA9IGF3YWl0IGZzLnJlYWRKc29uKHBhdGguam9pbihkaXIsIGZpbGUpKTtcbiAgICBjb25zdCBmcmFnbWVudFZlcnNpb24gPSBqc29uLiR2ZXJzaW9uO1xuICAgIGNvbnN0IHNlcnZpY2VOYW1lID0gZmlsZS5yZXBsYWNlKC9eMDAwXy8sICcnKS5yZXBsYWNlKC9cXC5qc29uJC8sICcnKS5yZXBsYWNlKCdfJywgJzo6Jyk7XG5cbiAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgY2FzZSAnb3V0ZGF0ZWQnOlxuICAgICAgY2FzZSAnY2hhbmdlbG9nJzpcbiAgICAgICAgaWYgKGZyYWdtZW50VmVyc2lvbiAhPT0gb2ZmaWNpYWxWZXJzaW9uKSB7XG4gICAgICAgICAgaWYgKCFoZWFkZXJQcmludGVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnIyMgVW5hcHBsaWVkIGNoYW5nZXMnKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgICAgIGhlYWRlclByaW50ZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zb2xlLmxvZyhgKiAke3NlcnZpY2VOYW1lfSBpcyBhdCAke2ZyYWdtZW50VmVyc2lvbn1gKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncmVqZWN0ZWQnOlxuICAgICAgICBpZiAoZnJhZ21lbnRWZXJzaW9uICE9PSBvZmZpY2lhbFZlcnNpb24pIHtcbiAgICAgICAgICAvLyBSZWFkIHRoZSAncmVqZWN0ZWQnIGZpbGUsIHBhcnNlIGl0ICh3aGljaCB3ZSBleHBlY3QgdG8gZmFpbClcbiAgICAgICAgICAvLyBhbmQgcHJpbnQgdGhlIGZhaWx1cmVzLlxuICAgICAgICAgIGNvbnN0IHJlamVjdGVkRmlsZU5hbWUgPSBgLiR7ZmlsZS5yZXBsYWNlKC8uanNvbiQvLCAnLnJlamVjdGVkLmpzb24nKX1gO1xuICAgICAgICAgIGNvbnN0IHJlamVjdGVkUGF0aCA9IHBhdGguam9pbihkaXIsIHJlamVjdGVkRmlsZU5hbWUpO1xuICAgICAgICAgIGlmICghYXdhaXQgZnMucGF0aEV4aXN0cyhyZWplY3RlZFBhdGgpKSB7XG4gICAgICAgICAgICAvLyBJZiBmb3Igd2hhdGV2ZXIgcmVhc29uIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QsIGlnbm9yZVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHJlamVjdGVkU3BlYyA9IGF3YWl0IGZzLnJlYWRKc29uKHJlamVjdGVkUGF0aCk7XG5cbiAgICAgICAgICBjb25zdCBlcnJvcnMgPSBDZm5TcGVjVmFsaWRhdG9yLnZhbGlkYXRlKHJlamVjdGVkU3BlYyk7XG5cbiAgICAgICAgICBjb25zb2xlLndhcm4oJz0nLnJlcGVhdCg3MCkpO1xuICAgICAgICAgIGNvbnNvbGUud2FybignICcucmVwZWF0KE1hdGguZmxvb3IoMzUgLSBzZXJ2aWNlTmFtZS5sZW5ndGggLyAyKSkgKyBzZXJ2aWNlTmFtZSk7XG4gICAgICAgICAgY29uc29sZS53YXJuKCc9Jy5yZXBlYXQoNzApKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGVycm9yIG9mIGVycm9ycykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGZvcm1hdEVycm9ySW5Db250ZXh0KGVycm9yKSk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBmb3JtYXQgdHlwZSByZXF1ZXN0ZWQ6ICR7Zm9ybWF0fWApO1xuICAgIH1cbiAgfVxufVxuXG5tYWluKHByb2Nlc3MuYXJndi5zbGljZSgyKSkuY2F0Y2goZSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUuZXJyb3IoZSk7XG4gIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xufSk7Il19
|
|
@@ -38,6 +38,8 @@ async function main(args) {
|
|
|
38
38
|
// Write out
|
|
39
39
|
log('Writing');
|
|
40
40
|
for (const [svcName, svcSpec] of Object.entries(byService)) {
|
|
41
|
+
const successTarget = path.join(outDir, `000_${svcName}.json`);
|
|
42
|
+
const rejectedTarget = path.join(outDir, `.000_${svcName}.rejected.json`);
|
|
41
43
|
const errors = !process.env.NO_VALIDATE ? validate_cfn_1.CfnSpecValidator.validate(svcSpec) : [];
|
|
42
44
|
if (errors.length === 0) {
|
|
43
45
|
// Change 'ResourceSpecificationVersion' to '$version', otherwise they will all conflict
|
|
@@ -46,7 +48,8 @@ async function main(args) {
|
|
|
46
48
|
ResourceTypes: svcSpec.ResourceTypes,
|
|
47
49
|
$version: svcSpec.ResourceSpecificationVersion,
|
|
48
50
|
};
|
|
49
|
-
await patch_set_1.writeSorted(
|
|
51
|
+
await patch_set_1.writeSorted(successTarget, toWrite);
|
|
52
|
+
await ensureGone(rejectedTarget);
|
|
50
53
|
}
|
|
51
54
|
else {
|
|
52
55
|
console.warn('='.repeat(70));
|
|
@@ -55,6 +58,16 @@ async function main(args) {
|
|
|
55
58
|
for (const error of errors) {
|
|
56
59
|
console.warn(validate_cfn_1.formatErrorInContext(error));
|
|
57
60
|
}
|
|
61
|
+
await patch_set_1.writeSorted(rejectedTarget, svcSpec);
|
|
62
|
+
// Make sure that the success file exists. If not, the initial import of a
|
|
63
|
+
// new service failed.
|
|
64
|
+
if (!await fs.pathExists(successTarget)) {
|
|
65
|
+
await patch_set_1.writeSorted(successTarget, {
|
|
66
|
+
PropertyTypes: {},
|
|
67
|
+
ResourceTypes: {},
|
|
68
|
+
$version: '0.0.0',
|
|
69
|
+
});
|
|
70
|
+
}
|
|
58
71
|
}
|
|
59
72
|
}
|
|
60
73
|
await fs.writeJson(path.join(outDir, '001_Version.json'), {
|
|
@@ -71,6 +84,17 @@ async function main(args) {
|
|
|
71
84
|
return byService[svcName];
|
|
72
85
|
}
|
|
73
86
|
}
|
|
87
|
+
async function ensureGone(fileName) {
|
|
88
|
+
try {
|
|
89
|
+
await fs.unlink(fileName);
|
|
90
|
+
}
|
|
91
|
+
catch (e) {
|
|
92
|
+
if (e.code === 'ENOENT') {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
throw e;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
74
98
|
function serviceName(x) {
|
|
75
99
|
return x.split('::').slice(0, 2).join('_');
|
|
76
100
|
}
|
|
@@ -83,4 +107,4 @@ main(process.argv.slice(2)).catch(e => {
|
|
|
83
107
|
console.error(e);
|
|
84
108
|
process.exitCode = 1;
|
|
85
109
|
});
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtc3BlYy1ieS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3BsaXQtc3BlYy1ieS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQStCO0FBQy9COzs7Ozs7Ozs7OztHQVdHO0FBQ0gsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQiwyQ0FBMEM7QUFDMUMsaURBQWlGO0FBRWpGLEtBQUssVUFBVSxJQUFJLENBQUMsSUFBYztJQUNoQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztLQUN4RTtJQUVELE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLEdBQUcsQ0FBQywwQkFBMEIsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMxQyxNQUFNLElBQUksR0FBWSxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbEQsUUFBUTtJQUNSLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQixNQUFNLFNBQVMsR0FBNEIsRUFBRSxDQUFDO0lBQzlDLEtBQUssTUFBTSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUN6RSxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxRQUFRLENBQUM7S0FDN0Q7SUFDRCxLQUFLLE1BQU0sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDdkUsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxD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QUFVLENBQUMsUUFBZ0I7SUFDeEMsSUFBSTtRQUNGLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUMzQjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUFFLE9BQU87U0FBRTtRQUNwQyxNQUFNLENBQUMsQ0FBQztLQUNUO0FBQ0gsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLENBQVM7SUFDNUIsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBQyxDQUFTO0lBQ3BCLHNDQUFzQztJQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDcEMsc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4vKipcbiAqIFNwbGl0IHRoZSBnaXZlbiBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSBzcGVjaWZpY2F0aW9uIHVwIGludG8gYSBwYXRjaCBzZXQsIGJ5IHNlcnZpY2VcbiAqXG4gKiBBZnRlciBzcGxpdHRpbmcsIG9ubHkgd3JpdGUgb3V0IHRob3NlIGZyYWdtZW50cyB0aGF0IGFyZSB2YWxpZC4oKilcbiAqXG4gKiBUaGUgcmVhc29uIGZvciB0aGlzIGlzIHRoYXQgc29tZSBzZXJ2aWNlIHVwZGF0ZXMgc29tZXRpbWVzIGNvbnRhaW4gbWlzdGFrZXMsXG4gKiBhbmQgd2Ugd2FudCB0byBiZSBhYmxlIHRvIHRha2UgcGFydGlhbCB1cGdyYWRlcy4gQnkgc3BsaXR0aW5nIHRoZSBzcGVjLCB3ZSBjYW5cbiAqIHRha2UgdXBkYXRlcyB0byBzb21lIHNlcnZpY2VzIHdoaWxlIGxlYXZpbmcgdXBkYXRlcyB0byBvdGhlciBzZXJ2aWNlcyBiZWhpbmQuXG4gKlxuICogKCopIElmIGBOT19WQUxJREFURWAgaXMgc2V0LCBhbGwgcGllY2VzIGFyZSB3cml0dGVuIG91dC4gSW4gbm9ybWFsIG9wZXJhdGlvbiB0aGlzXG4gKiAgICAgc2hvdWxkIG5vdCBiZSB1c2VkLlxuICovXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuXG5pbXBvcnQgeyB3cml0ZVNvcnRlZCB9IGZyb20gJy4vcGF0Y2gtc2V0JztcbmltcG9ydCB7IENmblNwZWMsIENmblNwZWNWYWxpZGF0b3IsIGZvcm1hdEVycm9ySW5Db250ZXh0IH0gZnJvbSAnLi92YWxpZGF0ZS1jZm4nO1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKGFyZ3M6IHN0cmluZ1tdKSB7XG4gIGlmIChhcmdzLmxlbmd0aCA8IDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VzYWdlOiBzcGxpdC1zcGVjLWJ5LXNlcnZpY2UgPFNQRUNGSUxFPiA8RElSRUNUT1JZPicpO1xuICB9XG5cbiAgY29uc3QgW3NwZWNGaWxlLCBvdXREaXJdID0gYXJncztcbiAgbG9nKGBMb2FkaW5nIHNwZWNpZmljYXRpb246ICR7c3BlY0ZpbGV9YCk7XG4gIGNvbnN0IHNwZWM6IENmblNwZWMgPSBhd2FpdCBmcy5yZWFkSnNvbihzcGVjRmlsZSk7XG5cbiAgLy8gU3BsaXRcbiAgbG9nKCdTcGxpdHRpbmcnKTtcbiAgY29uc3QgYnlTZXJ2aWNlOiBSZWNvcmQ8c3RyaW5nLCBDZm5TcGVjPiA9IHt9O1xuICBmb3IgKGNvbnN0IFtwcm9wVHlwZU5hbWUsIHByb3BUeXBlXSBvZiBPYmplY3QuZW50cmllcyhzcGVjLlByb3BlcnR5VHlwZXMpKSB7XG4gICAgY29uc3Qgc3ZjTmFtZSA9IHNlcnZpY2VOYW1lKHByb3BUeXBlTmFtZSk7XG4gICAgc2VydmljZVNwZWMoc3ZjTmFtZSkuUHJvcGVydHlUeXBlc1twcm9wVHlwZU5hbWVdID0gcHJvcFR5cGU7XG4gIH1cbiAgZm9yIChjb25zdCBbcmVzVHlwZU5hbWUsIHJlc1R5cGVdIG9mIE9iamVjdC5lbnRyaWVzKHNwZWMuUmVzb3VyY2VUeXBlcykpIHtcbiAgICBjb25zdCBzdmNOYW1lID0gc2VydmljZU5hbWUocmVzVHlwZU5hbWUpO1xuICAgIHNlcnZpY2VTcGVjKHN2Y05hbWUpLlJlc291cmNlVHlwZXNbcmVzVHlwZU5hbWVdID0gcmVzVHlwZTtcbiAgfVxuXG4gIC8vIFdyaXRlIG91dFxuICBsb2coJ1dyaXRpbmcnKTtcbiAgZm9yIChjb25zdCBbc3ZjTmFtZSwgc3ZjU3BlY10gb2YgT2JqZWN0LmVudHJpZXMoYnlTZXJ2aWNlKSkge1xuICAgIGNvbnN0IHN1Y2Nlc3NUYXJnZXQgPSBwYXRoLmpvaW4ob3V0RGlyLCBgMDAwXyR7c3ZjTmFtZX0uanNvbmApO1xuICAgIGNvbnN0IHJlamVjdGVkVGFyZ2V0ID0gcGF0aC5qb2luKG91dERpciwgYC4wMDBfJHtzdmNOYW1lfS5yZWplY3RlZC5qc29uYCk7XG5cbiAgICBjb25zdCBlcnJvcnMgPSAhcHJvY2Vzcy5lbnYuTk9fVkFMSURBVEUgPyBDZm5TcGVjVmFsaWRhdG9yLnZhbGlkYXRlKHN2Y1NwZWMpIDogW107XG4gICAgaWYgKGVycm9ycy5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIENoYW5nZSAnUmVzb3VyY2VTcGVjaWZpY2F0aW9uVmVyc2lvbicgdG8gJyR2ZXJzaW9uJywgb3RoZXJ3aXNlIHRoZXkgd2lsbCBhbGwgY29uZmxpY3RcbiAgICAgIGNvbnN0IHRvV3JpdGUgPSB7XG4gICAgICAgIFByb3BlcnR5VHlwZXM6IHN2Y1NwZWMuUHJvcGVydHlUeXBlcyxcbiAgICAgICAgUmVzb3VyY2VUeXBlczogc3ZjU3BlYy5SZXNvdXJjZVR5cGVzLFxuICAgICAgICAkdmVyc2lvbjogc3ZjU3BlYy5SZXNvdXJjZVNwZWNpZmljYXRpb25WZXJzaW9uLFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgd3JpdGVTb3J0ZWQoc3VjY2Vzc1RhcmdldCwgdG9Xcml0ZSk7XG4gICAgICBhd2FpdCBlbnN1cmVHb25lKHJlamVjdGVkVGFyZ2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCc9Jy5yZXBlYXQoNzApKTtcbiAgICAgIGNvbnNvbGUud2FybignICcucmVwZWF0KE1hdGguZmxvb3IoMzUgLSBzdmNOYW1lLmxlbmd0aCAvIDIpKSArIHN2Y05hbWUpO1xuICAgICAgY29uc29sZS53YXJuKCc9Jy5yZXBlYXQoNzApKTtcbiAgICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JzKSB7XG4gICAgICAgIGNvbnNvbGUud2Fybihmb3JtYXRFcnJvckluQ29udGV4dChlcnJvcikpO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCB3cml0ZVNvcnRlZChyZWplY3RlZFRhcmdldCwgc3ZjU3BlYyk7XG5cbiAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBzdWNjZXNzIGZpbGUgZXhpc3RzLiBJZiBub3QsIHRoZSBpbml0aWFsIGltcG9ydCBvZiBhXG4gICAgICAvLyBuZXcgc2VydmljZSBmYWlsZWQuXG4gICAgICBpZiAoIWF3YWl0IGZzLnBhdGhFeGlzdHMoc3VjY2Vzc1RhcmdldCkpIHtcbiAgICAgICAgYXdhaXQgd3JpdGVTb3J0ZWQoc3VjY2Vzc1RhcmdldCwge1xuICAgICAgICAgIFByb3BlcnR5VHlwZXM6IHt9LFxuICAgICAgICAgIFJlc291cmNlVHlwZXM6IHt9LFxuICAgICAgICAgICR2ZXJzaW9uOiAnMC4wLjAnLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgYXdhaXQgZnMud3JpdGVKc29uKHBhdGguam9pbihvdXREaXIsICcwMDFfVmVyc2lvbi5qc29uJyksIHtcbiAgICBSZXNvdXJjZVNwZWNpZmljYXRpb25WZXJzaW9uOiBzcGVjLlJlc291cmNlU3BlY2lmaWNhdGlvblZlcnNpb24sXG4gIH0sIHsgc3BhY2VzOiAyIH0pO1xuXG4gIGZ1bmN0aW9uIHNlcnZpY2VTcGVjKHN2Y05hbWU6IHN0cmluZykge1xuICAgIGlmICghKHN2Y05hbWUgaW4gYnlTZXJ2aWNlKSkge1xuICAgICAgYnlTZXJ2aWNlW3N2Y05hbWVdID0ge1xuICAgICAgICBQcm9wZXJ0eVR5cGVzOiB7fSxcbiAgICAgICAgUmVzb3VyY2VUeXBlczoge30sXG4gICAgICAgIFJlc291cmNlU3BlY2lmaWNhdGlvblZlcnNpb246IHNwZWMuUmVzb3VyY2VTcGVjaWZpY2F0aW9uVmVyc2lvbixcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBieVNlcnZpY2Vbc3ZjTmFtZV07XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZW5zdXJlR29uZShmaWxlTmFtZTogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZnMudW5saW5rKGZpbGVOYW1lKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChlLmNvZGUgPT09ICdFTk9FTlQnKSB7IHJldHVybjsgfVxuICAgIHRocm93IGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2VydmljZU5hbWUoeDogc3RyaW5nKSB7XG4gIHJldHVybiB4LnNwbGl0KCc6OicpLnNsaWNlKDAsIDIpLmpvaW4oJ18nKTtcbn1cblxuZnVuY3Rpb24gbG9nKHg6IHN0cmluZykge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICBjb25zb2xlLmxvZyh4KTtcbn1cblxubWFpbihwcm9jZXNzLmFyZ3Yuc2xpY2UoMikpLmNhdGNoKGUgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICBjb25zb2xlLmVycm9yKGUpO1xuICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbn0pO1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
81.
|
|
1
|
+
81.1.0
|
|
@@ -1,10 +1,11 @@
|
|
|
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.34.2",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"update": "cdk-build && /bin/bash build-tools/update.sh && /bin/bash build-tools/update-cfnlint.sh",
|
|
7
7
|
"update-metrics": "/bin/bash build-tools/update-metrics.sh",
|
|
8
|
+
"rejected": "node build-tools/report-issues.js spec-source/specification/000_cfn/000_official/ rejected",
|
|
8
9
|
"build": "cdk-build && node build-tools/build",
|
|
9
10
|
"watch": "cdk-watch",
|
|
10
11
|
"lint": "cdk-lint",
|
|
@@ -29,8 +30,8 @@
|
|
|
29
30
|
"main": "lib/index.js",
|
|
30
31
|
"types": "lib/index.d.ts",
|
|
31
32
|
"devDependencies": {
|
|
32
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
33
|
-
"@aws-cdk/pkglint": "2.
|
|
33
|
+
"@aws-cdk/cdk-build-tools": "2.34.2",
|
|
34
|
+
"@aws-cdk/pkglint": "2.34.2",
|
|
34
35
|
"@types/fs-extra": "^8.1.2",
|
|
35
36
|
"@types/jest": "^27.5.2",
|
|
36
37
|
"@types/md5": "^2.3.2",
|