@aws-solutions-constructs/core 2.44.0 → 2.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +864 -485
- package/index.d.ts +0 -1
- package/index.js +1 -2
- package/lib/alb-helper.js +22 -5
- package/lib/apigateway-helper.js +4 -4
- package/lib/cloudfront-distribution-defaults.d.ts +1 -1
- package/lib/cloudfront-distribution-defaults.js +4 -4
- package/lib/cloudfront-distribution-helper.d.ts +5 -0
- package/lib/cloudfront-distribution-helper.js +15 -3
- package/lib/dynamodb-table-helper.d.ts +6 -4
- package/lib/dynamodb-table-helper.js +22 -26
- package/lib/elasticsearch-helper.js +5 -2
- package/lib/eventbridge-helper.d.ts +5 -0
- package/lib/eventbridge-helper.js +14 -2
- package/lib/fargate-helper.d.ts +8 -0
- package/lib/fargate-helper.js +35 -15
- package/lib/glue-job-helper.d.ts +1 -1
- package/lib/glue-job-helper.js +5 -7
- package/lib/glue-table-helper.d.ts +12 -1
- package/lib/glue-table-helper.js +34 -3
- package/lib/kendra-helper.js +6 -7
- package/lib/kinesis-streams-helper.d.ts +5 -0
- package/lib/kinesis-streams-helper.js +14 -2
- package/lib/lambda-helper.d.ts +6 -1
- package/lib/lambda-helper.js +16 -4
- package/lib/mediastore-helper.d.ts +5 -0
- package/lib/mediastore-helper.js +14 -2
- package/lib/opensearch-helper.d.ts +4 -0
- package/lib/opensearch-helper.js +18 -3
- package/lib/s3-bucket-helper.d.ts +9 -0
- package/lib/s3-bucket-helper.js +65 -5
- package/lib/sagemaker-helper.d.ts +6 -1
- package/lib/sagemaker-helper.js +68 -45
- package/lib/secretsmanager-helper.d.ts +7 -2
- package/lib/secretsmanager-helper.js +16 -4
- package/lib/sns-helper.d.ts +8 -0
- package/lib/sns-helper.js +32 -3
- package/lib/sqs-helper.d.ts +9 -0
- package/lib/sqs-helper.js +54 -8
- package/lib/utils.d.ts +6 -2
- package/lib/utils.js +15 -4
- package/lib/vpc-helper.d.ts +6 -0
- package/lib/vpc-helper.js +14 -2
- package/lib/waf-helper.d.ts +5 -0
- package/lib/waf-helper.js +14 -2
- package/package.json +3 -3
- package/test/alb-helper.test.js +39 -1
- package/test/cloudfront-distribution-s3-helper.test.js +18 -1
- package/test/dynamo-table.test.js +18 -48
- package/test/eventbridge-helper.test.js +16 -1
- package/test/fargate-helper.test.js +3 -3
- package/test/glue-job-helper.test.js +85 -66
- package/test/kendra-helper.test.js +5 -5
- package/test/kinesis-streams-helper.test.js +17 -10
- package/test/lambda-helper.test.js +25 -2
- package/test/mediastore-helper.test.js +20 -1
- package/test/s3-bucket.test.js +57 -1
- package/test/sagemaker-helper.test.js +46 -1
- package/test/secretsmanager-helper.test.js +16 -7
- package/test/sns-helper.test.js +85 -1
- package/test/sqs-helper.test.js +125 -1
- package/test/utils.test.js +27 -1
- package/test/vpc-helper.test.js +32 -37
- package/test/waf-helper.test.js +48 -4
- package/lib/input-validation.d.ts +0 -76
- package/lib/input-validation.js +0 -157
- package/node_modules/console-control-strings/README.md~ +0 -140
- package/node_modules/npmlog/CHANGELOG.md +0 -49
- package/node_modules/set-blocking/CHANGELOG.md +0 -26
- package/test/input-validation.test.d.ts +0 -13
- package/test/input-validation.test.js +0 -451
package/lib/input-validation.js
DELETED
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
|
|
6
|
-
* with the License. A copy of the License is located at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
|
|
11
|
-
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
12
|
-
* and limitations under the License.
|
|
13
|
-
*/
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.CheckListValues = exports.CheckProps = void 0;
|
|
16
|
-
/**
|
|
17
|
-
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
18
|
-
*/
|
|
19
|
-
function CheckProps(propsObject) {
|
|
20
|
-
let errorMessages = '';
|
|
21
|
-
let errorFound = false;
|
|
22
|
-
if (propsObject.loadBalancerProps && propsObject.existingLoadBalancerObj) {
|
|
23
|
-
errorMessages += 'Error - Either provide loadBalancerProps or existingLoadBalancerObj, but not both.\n';
|
|
24
|
-
errorFound = true;
|
|
25
|
-
}
|
|
26
|
-
if (propsObject.dynamoTableProps && propsObject.existingTableObj) {
|
|
27
|
-
errorMessages += 'Error - Either provide existingTableObj or dynamoTableProps, but not both.\n';
|
|
28
|
-
errorFound = true;
|
|
29
|
-
}
|
|
30
|
-
if (propsObject.dynamoTableProps && propsObject.existingTableInterface) {
|
|
31
|
-
errorMessages += 'Error - Either provide existingTableInterface or dynamoTableProps, but not both.\n';
|
|
32
|
-
errorFound = true;
|
|
33
|
-
}
|
|
34
|
-
if (propsObject.existingStreamObj && propsObject.kinesisStreamProps) {
|
|
35
|
-
errorMessages += 'Error - Either provide existingStreamObj or kinesisStreamProps, but not both.\n';
|
|
36
|
-
errorFound = true;
|
|
37
|
-
}
|
|
38
|
-
if (propsObject.existingLambdaObj && propsObject.lambdaFunctionProps) {
|
|
39
|
-
errorMessages += 'Error - Either provide lambdaFunctionProps or existingLambdaObj, but not both.\n';
|
|
40
|
-
errorFound = true;
|
|
41
|
-
}
|
|
42
|
-
if (propsObject.existingQueueObj && propsObject.queueProps) {
|
|
43
|
-
errorMessages += 'Error - Either provide queueProps or existingQueueObj, but not both.\n';
|
|
44
|
-
errorFound = true;
|
|
45
|
-
}
|
|
46
|
-
if (propsObject.queueProps?.encryptionMasterKey && propsObject.encryptionKey) {
|
|
47
|
-
errorMessages += 'Error - Either provide queueProps.encryptionMasterKey or encryptionKey, but not both.\n';
|
|
48
|
-
errorFound = true;
|
|
49
|
-
}
|
|
50
|
-
if (propsObject.queueProps?.encryptionMasterKey && propsObject.encryptionKeyProps) {
|
|
51
|
-
errorMessages += 'Error - Either provide queueProps.encryptionMasterKey or encryptionKeyProps, but not both.\n';
|
|
52
|
-
errorFound = true;
|
|
53
|
-
}
|
|
54
|
-
if ((propsObject?.deployDeadLetterQueue === false) && propsObject.deadLetterQueueProps) {
|
|
55
|
-
errorMessages += 'Error - If deployDeadLetterQueue is false then deadLetterQueueProps cannot be specified.\n';
|
|
56
|
-
errorFound = true;
|
|
57
|
-
}
|
|
58
|
-
const isQueueFifo = propsObject?.queueProps?.fifo;
|
|
59
|
-
const isDeadLetterQueueFifo = propsObject?.deadLetterQueueProps?.fifo;
|
|
60
|
-
const deployDeadLetterQueue = propsObject.deployDeadLetterQueue || propsObject.deployDeadLetterQueue === undefined;
|
|
61
|
-
if (deployDeadLetterQueue && (isQueueFifo !== isDeadLetterQueueFifo)) {
|
|
62
|
-
errorMessages += 'Error - If you specify a fifo: true in either queueProps or deadLetterQueueProps, you must also set fifo: ' +
|
|
63
|
-
'true in the other props object. Fifo must match for the Queue and the Dead Letter Queue.\n';
|
|
64
|
-
errorFound = true;
|
|
65
|
-
}
|
|
66
|
-
if (propsObject.existingMediaStoreContainerObj && propsObject.mediaStoreContainerProps) {
|
|
67
|
-
errorMessages += 'Error - Either provide mediaStoreContainerProps or existingMediaStoreContainerObj, but not both.\n';
|
|
68
|
-
errorFound = true;
|
|
69
|
-
}
|
|
70
|
-
if (propsObject.existingBucketObj && propsObject.bucketProps) {
|
|
71
|
-
errorMessages += 'Error - Either provide bucketProps or existingBucketObj, but not both.\n';
|
|
72
|
-
errorFound = true;
|
|
73
|
-
}
|
|
74
|
-
if (propsObject.existingBucketInterface && propsObject.bucketProps) {
|
|
75
|
-
errorMessages += 'Error - Either provide bucketProps or existingBucketInterface, but not both.\n';
|
|
76
|
-
errorFound = true;
|
|
77
|
-
}
|
|
78
|
-
if (propsObject.topicProps && propsObject.existingTopicObj) {
|
|
79
|
-
errorMessages += 'Error - Either provide topicProps or existingTopicObj, but not both.\n';
|
|
80
|
-
errorFound = true;
|
|
81
|
-
}
|
|
82
|
-
if (propsObject.topicProps?.masterKey && propsObject.encryptionKey) {
|
|
83
|
-
errorMessages += 'Error - Either provide topicProps.masterKey or encryptionKey, but not both.\n';
|
|
84
|
-
errorFound = true;
|
|
85
|
-
}
|
|
86
|
-
if (propsObject.topicProps?.masterKey && propsObject.encryptionKeyProps) {
|
|
87
|
-
errorMessages += 'Error - Either provide topicProps.masterKey or encryptionKeyProps, but not both.\n';
|
|
88
|
-
errorFound = true;
|
|
89
|
-
}
|
|
90
|
-
if (propsObject.glueJobProps && propsObject.existingGlueJob) {
|
|
91
|
-
errorMessages += 'Error - Either provide glueJobProps or existingGlueJob, but not both.\n';
|
|
92
|
-
errorFound = true;
|
|
93
|
-
}
|
|
94
|
-
if (propsObject.existingSagemakerEndpointObj && propsObject.endpointProps) {
|
|
95
|
-
errorMessages += 'Error - Either provide endpointProps or existingSagemakerEndpointObj, but not both.\n';
|
|
96
|
-
errorFound = true;
|
|
97
|
-
}
|
|
98
|
-
if (propsObject.existingSecretObj && propsObject.secretProps) {
|
|
99
|
-
errorMessages += 'Error - Either provide secretProps or existingSecretObj, but not both.\n';
|
|
100
|
-
errorFound = true;
|
|
101
|
-
}
|
|
102
|
-
if ((propsObject.deployVpc || propsObject.vpcProps) && propsObject.existingVpc) {
|
|
103
|
-
errorMessages += 'Error - Either provide an existingVpc or some combination of deployVpc and vpcProps, but not both.\n';
|
|
104
|
-
errorFound = true;
|
|
105
|
-
}
|
|
106
|
-
if (propsObject.encryptionKey && propsObject.encryptionKeyProps) {
|
|
107
|
-
errorMessages += 'Error - Either provide encryptionKey or encryptionKeyProps, but not both.\n';
|
|
108
|
-
errorFound = true;
|
|
109
|
-
}
|
|
110
|
-
if (propsObject.existingEventBusInterface && propsObject.eventBusProps) {
|
|
111
|
-
errorMessages += 'Error - Either provide existingEventBusInterface or eventBusProps, but not both.\n';
|
|
112
|
-
errorFound = true;
|
|
113
|
-
}
|
|
114
|
-
if (propsObject.existingWebaclObj && propsObject.webaclProps) {
|
|
115
|
-
errorMessages += 'Error - Either provide existingWebaclObj or webaclProps, but not both.\n';
|
|
116
|
-
errorFound = true;
|
|
117
|
-
}
|
|
118
|
-
if ((propsObject?.logAlbAccessLogs === false) && (propsObject.albLoggingBucketProps)) {
|
|
119
|
-
errorMessages += 'Error - If logAlbAccessLogs is false, supplying albLoggingBucketProps is invalid.\n';
|
|
120
|
-
errorFound = true;
|
|
121
|
-
}
|
|
122
|
-
if (propsObject.existingLoggingBucketObj && propsObject.loggingBucketProps) {
|
|
123
|
-
errorMessages += 'Error - Either provide existingLoggingBucketObj or loggingBucketProps, but not both.\n';
|
|
124
|
-
errorFound = true;
|
|
125
|
-
}
|
|
126
|
-
if ((propsObject?.logS3AccessLogs === false) && (propsObject.loggingBucketProps || propsObject.existingLoggingBucketObj)) {
|
|
127
|
-
errorMessages += 'Error - If logS3AccessLogs is false, supplying loggingBucketProps or existingLoggingBucketObj is invalid.\n';
|
|
128
|
-
errorFound = true;
|
|
129
|
-
}
|
|
130
|
-
if (propsObject.existingBucketObj && (propsObject.loggingBucketProps || propsObject.logS3AccessLogs)) {
|
|
131
|
-
errorMessages += 'Error - If existingBucketObj is provided, supplying loggingBucketProps or logS3AccessLogs is an error.\n';
|
|
132
|
-
errorFound = true;
|
|
133
|
-
}
|
|
134
|
-
if (propsObject.insertHttpSecurityHeaders !== false && propsObject.responseHeadersPolicyProps?.securityHeadersBehavior) {
|
|
135
|
-
errorMessages += 'responseHeadersPolicyProps.securityHeadersBehavior can only be passed if httpSecurityHeaders is set to `false`.';
|
|
136
|
-
errorFound = true;
|
|
137
|
-
}
|
|
138
|
-
if (propsObject.openSearchDomainProps?.vpcOptions) {
|
|
139
|
-
throw new Error("Error - Define VPC using construct parameters not the OpenSearch Service props");
|
|
140
|
-
}
|
|
141
|
-
if (errorFound) {
|
|
142
|
-
throw new Error(errorMessages);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
exports.CheckProps = CheckProps;
|
|
146
|
-
/**
|
|
147
|
-
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|
|
148
|
-
*/
|
|
149
|
-
function CheckListValues(allowedPermissions, submittedValues, valueType) {
|
|
150
|
-
submittedValues.forEach((submittedValue) => {
|
|
151
|
-
if (!allowedPermissions.includes(submittedValue)) {
|
|
152
|
-
throw Error(`Invalid ${valueType} submitted - ${submittedValue}`);
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
exports.CheckListValues = CheckListValues;
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlucHV0LXZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFnRkg7O0dBRUc7QUFDSCxTQUFnQixVQUFVLENBQUMsV0FBZ0M7SUFDekQsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztJQUV2QixJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsSUFBSSxXQUFXLENBQUMsdUJBQXVCLEVBQUU7UUFDeEUsYUFBYSxJQUFJLHNGQUFzRixDQUFDO1FBQ3hHLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLFdBQVcsQ0FBQyxnQkFBZ0IsSUFBSSxXQUFXLENBQUMsZ0JBQWdCLEVBQUU7UUFDaEUsYUFBYSxJQUFJLDhFQUE4RSxDQUFDO1FBQ2hHLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLFdBQVcsQ0FBQyxnQkFBZ0IsSUFBSSxXQUFXLENBQUMsc0JBQXNCLEVBQUU7UUFDdEUsYUFBYSxJQUFJLG9GQUFvRixDQUFDO1FBQ3RHLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsSUFBSyxXQUFXLENBQUMsa0JBQWtCLEVBQUU7UUFDcEUsYUFBYSxJQUFJLGlGQUFpRixDQUFDO1FBQ25HLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsSUFBSSxXQUFXLENBQUMsbUJBQW1CLEVBQUU7UUFDcEUsYUFBYSxJQUFJLGtGQUFrRixDQUFDO1FBQ3BHLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLFdBQVcsQ0FBQyxnQkFBZ0IsSUFBSSxXQUFXLENBQUMsVUFBVSxFQUFFO1FBQzFELGFBQWEsSUFBSSx3RUFBd0UsQ0FBQztRQUMxRixVQUFV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Q0FBQyxlQUFlLENBQUMsRUFBRTtRQUNwRyxhQUFhLElBQUksMEdBQTBHLENBQUM7UUFDNUgsVUFBVSxHQUFHLElBQUksQ0FBQztLQUNuQjtJQUVELElBQUksV0FBVyxDQUFDLHlCQUF5QixLQUFLLEtBQUssSUFBSSxXQUFXLENBQUMsMEJBQTBCLEVBQUUsdUJBQXVCLEVBQUU7UUFDdEgsYUFBYSxJQUFJLGlIQUFpSCxDQUFDO1FBQ25JLFVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7SUFFRCxJQUFJLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxVQUFVLEVBQUU7UUFDakQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRkFBZ0YsQ0FBQyxDQUFDO0tBQ25HO0lBRUQsSUFBSSxVQUFVLEVBQUU7UUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQ2hDO0FBQ0gsQ0FBQztBQTVKRCxnQ0E0SkM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxrQkFBNEIsRUFBRSxlQUF5QixFQUFFLFNBQWlCO0lBQ3hHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtRQUN6QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ2hELE1BQU0sS0FBSyxDQUFDLFdBQVcsU0FBUyxnQkFBZ0IsY0FBYyxFQUFFLENBQUUsQ0FBQztTQUNwRTtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQU5ELDBDQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBkeW5hbW9kYiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0ICogYXMga2luZXNpcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta2luZXNpcyc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBzcXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNxcyc7XG5pbXBvcnQgKiBhcyBtZWRpYXN0b3JlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1tZWRpYXN0b3JlJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBlbGIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuaW1wb3J0ICogYXMgZ2x1ZSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2x1ZSc7XG5pbXBvcnQgKiBhcyBzYWdlbWFrZXIgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNhZ2VtYWtlcic7XG5pbXBvcnQgKiBhcyBzZWNyZXRzbWFuYWdlciBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1rbXNcIjtcbmltcG9ydCB7UmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHN9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udFwiO1xuaW1wb3J0ICogYXMgb3BlbnNlYXJjaCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLW9wZW5zZWFyY2hzZXJ2aWNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZpZWRQcm9wcyB7XG4gIHJlYWRvbmx5IGR5bmFtb1RhYmxlUHJvcHM/OiBkeW5hbW9kYi5UYWJsZVByb3BzLFxuICByZWFkb25seSBleGlzdGluZ1RhYmxlT2JqPzogZHluYW1vZGIuVGFibGUsXG4gIHJlYWRvbmx5IGV4aXN0aW5nVGFibGVJbnRlcmZhY2U/OiBkeW5hbW9kYi5JVGFibGUsXG5cbiAgcmVhZG9ubHkgZXhpc3RpbmdTdHJlYW1PYmo/OiBraW5lc2lzLlN0cmVhbTtcbiAgcmVhZG9ubHkga2luZXNpc1N0cmVhbVByb3BzPzoga2luZXNpcy5TdHJlYW1Qcm9wcyxcblxuICByZWFkb25seSBleGlzdGluZ0xhbWJkYU9iaj86IGxhbWJkYS5GdW5jdGlvbixcbiAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb25Qcm9wcz86IGxhbWJkYS5GdW5jdGlvblByb3BzLFxuXG4gIHJlYWRvbmx5IGV4aXN0aW5nUXVldWVPYmo/OiBzcXMuUXVldWUsXG4gIHJlYWRvbmx5IHF1ZXVlUHJvcHM/OiBzcXMuUXVldWVQcm9wcyxcbiAgcmVhZG9ubHkgZGVwbG95RGVhZExldHRlclF1ZXVlPzogYm9vbGVhbixcbiAgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlUHJvcHM/OiBzcXMuUXVldWVQcm9wcyxcblxuICByZWFkb25seSBleGlzdGluZ01lZGlhU3RvcmVDb250YWluZXJPYmo/OiBtZWRpYXN0b3JlLkNmbkNvbnRhaW5lcjtcbiAgcmVhZG9ubHkgbWVkaWFTdG9yZUNvbnRhaW5lclByb3BzPzogbWVkaWFzdG9yZS5DZm5Db250YWluZXJQcm9wcztcblxuICByZWFkb25seSBleGlzdGluZ0J1Y2tldE9iaj86IHMzLkJ1Y2tldCxcbiAgcmVhZG9ubHkgZXhpc3RpbmdCdWNrZXRJbnRlcmZhY2U/OiBzMy5JQnVja2V0LFxuICByZWFkb25seSBidWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuXG4gIHJlYWRvbmx5IHRvcGljUHJvcHM/OiBzbnMuVG9waWNQcm9wcyxcbiAgcmVhZG9ubHkgZXhpc3RpbmdUb3BpY09iaj86IHNucy5Ub3BpYyxcblxuICByZWFkb25seSBnbHVlSm9iUHJvcHM/OiBnbHVlLkNmbkpvYlByb3BzLFxuICByZWFkb25seSBleGlzdGluZ0dsdWVKb2I/OiBnbHVlLkNmbkpvYixcblxuICByZWFkb25seSBleGlzdGluZ1NhZ2VtYWtlckVuZHBvaW50T2JqPzogc2FnZW1ha2VyLkNmbkVuZHBvaW50LFxuICByZWFkb25seSBlbmRwb2ludFByb3BzPzogc2FnZW1ha2VyLkNmbkVuZHBvaW50UHJvcHMsXG5cbiAgcmVhZG9ubHkgZXhpc3RpbmdTZWNyZXRPYmo/OiBzZWNyZXRzbWFuYWdlci5TZWNyZXQ7XG4gIHJlYWRvbmx5IHNlY3JldFByb3BzPzogc2VjcmV0c21hbmFnZXIuU2VjcmV0UHJvcHM7XG5cbiAgcmVhZG9ubHkgZXhpc3RpbmdWcGM/OiBlYzIuSVZwYztcbiAgcmVhZG9ubHkgdnBjUHJvcHM/OiBlYzIuVnBjUHJvcHM7XG4gIHJlYWRvbmx5IGRlcGxveVZwYz86IGJvb2xlYW47XG5cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5LZXksXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXlQcm9wcz86IGttcy5LZXlQcm9wc1xuXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlclByb3BzPzogZWxiLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHM7XG4gIHJlYWRvbmx5IGV4aXN0aW5nTG9hZEJhbGFuY2VyT2JqPzogZWxiLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyO1xuXG4gIHJlYWRvbmx5IGxvZ0FsYkFjY2Vzc0xvZ3M/OiBib29sZWFuO1xuICByZWFkb25seSBhbGJMb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcztcblxuICByZWFkb25seSBleGlzdGluZ0xvZ2dpbmdCdWNrZXRPYmo/OiBzMy5JQnVja2V0O1xuICByZWFkb25seSBsb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcztcbiAgcmVhZG9ubHkgbG9nUzNBY2Nlc3NMb2dzPzogYm9vbGVhbjtcblxuICByZWFkb25seSBpbnNlcnRIdHRwU2VjdXJpdHlIZWFkZXJzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHM/OiBSZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcztcbiAgcmVhZG9ubHkgb3BlblNlYXJjaERvbWFpblByb3BzPzogb3BlbnNlYXJjaC5DZm5Eb21haW5Qcm9wcztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQ2hlY2tQcm9wcyhwcm9wc09iamVjdDogVmVyaWZpZWRQcm9wcyB8IGFueSkge1xuICBsZXQgZXJyb3JNZXNzYWdlcyA9ICcnO1xuICBsZXQgZXJyb3JGb3VuZCA9IGZhbHNlO1xuXG4gIGlmIChwcm9wc09iamVjdC5sb2FkQmFsYW5jZXJQcm9wcyAmJiBwcm9wc09iamVjdC5leGlzdGluZ0xvYWRCYWxhbmNlck9iaikge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgbG9hZEJhbGFuY2VyUHJvcHMgb3IgZXhpc3RpbmdMb2FkQmFsYW5jZXJPYmosIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmR5bmFtb1RhYmxlUHJvcHMgJiYgcHJvcHNPYmplY3QuZXhpc3RpbmdUYWJsZU9iaikge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgZXhpc3RpbmdUYWJsZU9iaiBvciBkeW5hbW9UYWJsZVByb3BzLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5keW5hbW9UYWJsZVByb3BzICYmIHByb3BzT2JqZWN0LmV4aXN0aW5nVGFibGVJbnRlcmZhY2UpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGV4aXN0aW5nVGFibGVJbnRlcmZhY2Ugb3IgZHluYW1vVGFibGVQcm9wcywgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdTdHJlYW1PYmogICYmIHByb3BzT2JqZWN0LmtpbmVzaXNTdHJlYW1Qcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgZXhpc3RpbmdTdHJlYW1PYmogb3Iga2luZXNpc1N0cmVhbVByb3BzLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5leGlzdGluZ0xhbWJkYU9iaiAmJiBwcm9wc09iamVjdC5sYW1iZGFGdW5jdGlvblByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBsYW1iZGFGdW5jdGlvblByb3BzIG9yIGV4aXN0aW5nTGFtYmRhT2JqLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5leGlzdGluZ1F1ZXVlT2JqICYmIHByb3BzT2JqZWN0LnF1ZXVlUHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIHF1ZXVlUHJvcHMgb3IgZXhpc3RpbmdRdWV1ZU9iaiwgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QucXVldWVQcm9wcz8uZW5jcnlwdGlvbk1hc3RlcktleSAmJiBwcm9wc09iamVjdC5lbmNyeXB0aW9uS2V5KSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBxdWV1ZVByb3BzLmVuY3J5cHRpb25NYXN0ZXJLZXkgb3IgZW5jcnlwdGlvbktleSwgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QucXVldWVQcm9wcz8uZW5jcnlwdGlvbk1hc3RlcktleSAmJiBwcm9wc09iamVjdC5lbmNyeXB0aW9uS2V5UHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIHF1ZXVlUHJvcHMuZW5jcnlwdGlvbk1hc3RlcktleSBvciBlbmNyeXB0aW9uS2V5UHJvcHMsIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKChwcm9wc09iamVjdD8uZGVwbG95RGVhZExldHRlclF1ZXVlID09PSBmYWxzZSkgJiYgcHJvcHNPYmplY3QuZGVhZExldHRlclF1ZXVlUHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIElmIGRlcGxveURlYWRMZXR0ZXJRdWV1ZSBpcyBmYWxzZSB0aGVuIGRlYWRMZXR0ZXJRdWV1ZVByb3BzIGNhbm5vdCBiZSBzcGVjaWZpZWQuXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGlzUXVldWVGaWZvOiBib29sZWFuID0gcHJvcHNPYmplY3Q/LnF1ZXVlUHJvcHM/LmZpZm87XG4gIGNvbnN0IGlzRGVhZExldHRlclF1ZXVlRmlmbzogYm9vbGVhbiA9IHByb3BzT2JqZWN0Py5kZWFkTGV0dGVyUXVldWVQcm9wcz8uZmlmbztcbiAgY29uc3QgZGVwbG95RGVhZExldHRlclF1ZXVlOiBib29sZWFuID0gcHJvcHNPYmplY3QuZGVwbG95RGVhZExldHRlclF1ZXVlIHx8IHByb3BzT2JqZWN0LmRlcGxveURlYWRMZXR0ZXJRdWV1ZSA9PT0gdW5kZWZpbmVkO1xuXG4gIGlmIChkZXBsb3lEZWFkTGV0dGVyUXVldWUgJiYgKGlzUXVldWVGaWZvICE9PSBpc0RlYWRMZXR0ZXJRdWV1ZUZpZm8pKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBJZiB5b3Ugc3BlY2lmeSBhIGZpZm86IHRydWUgaW4gZWl0aGVyIHF1ZXVlUHJvcHMgb3IgZGVhZExldHRlclF1ZXVlUHJvcHMsIHlvdSBtdXN0IGFsc28gc2V0IGZpZm86ICcgK1xuICAgICAgJ3RydWUgaW4gdGhlIG90aGVyIHByb3BzIG9iamVjdC4gRmlmbyBtdXN0IG1hdGNoIGZvciB0aGUgUXVldWUgYW5kIHRoZSBEZWFkIExldHRlciBRdWV1ZS5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nTWVkaWFTdG9yZUNvbnRhaW5lck9iaiAmJiBwcm9wc09iamVjdC5tZWRpYVN0b3JlQ29udGFpbmVyUHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIG1lZGlhU3RvcmVDb250YWluZXJQcm9wcyBvciBleGlzdGluZ01lZGlhU3RvcmVDb250YWluZXJPYmosIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nQnVja2V0T2JqICYmIHByb3BzT2JqZWN0LmJ1Y2tldFByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBidWNrZXRQcm9wcyBvciBleGlzdGluZ0J1Y2tldE9iaiwgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdCdWNrZXRJbnRlcmZhY2UgJiYgcHJvcHNPYmplY3QuYnVja2V0UHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGJ1Y2tldFByb3BzIG9yIGV4aXN0aW5nQnVja2V0SW50ZXJmYWNlLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC50b3BpY1Byb3BzICYmIHByb3BzT2JqZWN0LmV4aXN0aW5nVG9waWNPYmopIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIHRvcGljUHJvcHMgb3IgZXhpc3RpbmdUb3BpY09iaiwgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QudG9waWNQcm9wcz8ubWFzdGVyS2V5ICYmIHByb3BzT2JqZWN0LmVuY3J5cHRpb25LZXkpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIHRvcGljUHJvcHMubWFzdGVyS2V5IG9yIGVuY3J5cHRpb25LZXksIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LnRvcGljUHJvcHM/Lm1hc3RlcktleSAmJiBwcm9wc09iamVjdC5lbmNyeXB0aW9uS2V5UHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIHRvcGljUHJvcHMubWFzdGVyS2V5IG9yIGVuY3J5cHRpb25LZXlQcm9wcywgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZ2x1ZUpvYlByb3BzICYmIHByb3BzT2JqZWN0LmV4aXN0aW5nR2x1ZUpvYikge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgZ2x1ZUpvYlByb3BzIG9yIGV4aXN0aW5nR2x1ZUpvYiwgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdTYWdlbWFrZXJFbmRwb2ludE9iaiAmJiBwcm9wc09iamVjdC5lbmRwb2ludFByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBlbmRwb2ludFByb3BzIG9yIGV4aXN0aW5nU2FnZW1ha2VyRW5kcG9pbnRPYmosIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nU2VjcmV0T2JqICYmIHByb3BzT2JqZWN0LnNlY3JldFByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBzZWNyZXRQcm9wcyBvciBleGlzdGluZ1NlY3JldE9iaiwgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAoKHByb3BzT2JqZWN0LmRlcGxveVZwYyB8fCBwcm9wc09iamVjdC52cGNQcm9wcykgJiYgcHJvcHNPYmplY3QuZXhpc3RpbmdWcGMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGFuIGV4aXN0aW5nVnBjIG9yIHNvbWUgY29tYmluYXRpb24gb2YgZGVwbG95VnBjIGFuZCB2cGNQcm9wcywgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZW5jcnlwdGlvbktleSAmJiBwcm9wc09iamVjdC5lbmNyeXB0aW9uS2V5UHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGVuY3J5cHRpb25LZXkgb3IgZW5jcnlwdGlvbktleVByb3BzLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5leGlzdGluZ0V2ZW50QnVzSW50ZXJmYWNlICYmIHByb3BzT2JqZWN0LmV2ZW50QnVzUHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGV4aXN0aW5nRXZlbnRCdXNJbnRlcmZhY2Ugb3IgZXZlbnRCdXNQcm9wcywgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdXZWJhY2xPYmogJiYgcHJvcHNPYmplY3Qud2ViYWNsUHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGV4aXN0aW5nV2ViYWNsT2JqIG9yIHdlYmFjbFByb3BzLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICgocHJvcHNPYmplY3Q/LmxvZ0FsYkFjY2Vzc0xvZ3MgPT09IGZhbHNlKSAmJiAocHJvcHNPYmplY3QuYWxiTG9nZ2luZ0J1Y2tldFByb3BzKSkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gSWYgbG9nQWxiQWNjZXNzTG9ncyBpcyBmYWxzZSwgc3VwcGx5aW5nIGFsYkxvZ2dpbmdCdWNrZXRQcm9wcyBpcyBpbnZhbGlkLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdMb2dnaW5nQnVja2V0T2JqICYmIHByb3BzT2JqZWN0LmxvZ2dpbmdCdWNrZXRQcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgZXhpc3RpbmdMb2dnaW5nQnVja2V0T2JqIG9yIGxvZ2dpbmdCdWNrZXRQcm9wcywgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAoKHByb3BzT2JqZWN0Py5sb2dTM0FjY2Vzc0xvZ3MgPT09IGZhbHNlKSAmJiAocHJvcHNPYmplY3QubG9nZ2luZ0J1Y2tldFByb3BzIHx8IHByb3BzT2JqZWN0LmV4aXN0aW5nTG9nZ2luZ0J1Y2tldE9iaikpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIElmIGxvZ1MzQWNjZXNzTG9ncyBpcyBmYWxzZSwgc3VwcGx5aW5nIGxvZ2dpbmdCdWNrZXRQcm9wcyBvciBleGlzdGluZ0xvZ2dpbmdCdWNrZXRPYmogaXMgaW52YWxpZC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nQnVja2V0T2JqICYmIChwcm9wc09iamVjdC5sb2dnaW5nQnVja2V0UHJvcHMgfHwgcHJvcHNPYmplY3QubG9nUzNBY2Nlc3NMb2dzKSkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gSWYgZXhpc3RpbmdCdWNrZXRPYmogaXMgcHJvdmlkZWQsIHN1cHBseWluZyBsb2dnaW5nQnVja2V0UHJvcHMgb3IgbG9nUzNBY2Nlc3NMb2dzIGlzIGFuIGVycm9yLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuaW5zZXJ0SHR0cFNlY3VyaXR5SGVhZGVycyAhPT0gZmFsc2UgJiYgcHJvcHNPYmplY3QucmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHM/LnNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAncmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMuc2VjdXJpdHlIZWFkZXJzQmVoYXZpb3IgY2FuIG9ubHkgYmUgcGFzc2VkIGlmIGh0dHBTZWN1cml0eUhlYWRlcnMgaXMgc2V0IHRvIGBmYWxzZWAuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5vcGVuU2VhcmNoRG9tYWluUHJvcHM/LnZwY09wdGlvbnMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFcnJvciAtIERlZmluZSBWUEMgdXNpbmcgY29uc3RydWN0IHBhcmFtZXRlcnMgbm90IHRoZSBPcGVuU2VhcmNoIFNlcnZpY2UgcHJvcHNcIik7XG4gIH1cblxuICBpZiAoZXJyb3JGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2VzKTtcbiAgfVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDaGVja0xpc3RWYWx1ZXMoYWxsb3dlZFBlcm1pc3Npb25zOiBzdHJpbmdbXSwgc3VibWl0dGVkVmFsdWVzOiBzdHJpbmdbXSwgdmFsdWVUeXBlOiBzdHJpbmcpIHtcbiAgc3VibWl0dGVkVmFsdWVzLmZvckVhY2goKHN1Ym1pdHRlZFZhbHVlKSA9PiB7XG4gICAgaWYgKCFhbGxvd2VkUGVybWlzc2lvbnMuaW5jbHVkZXMoc3VibWl0dGVkVmFsdWUpKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCAke3ZhbHVlVHlwZX0gc3VibWl0dGVkIC0gJHtzdWJtaXR0ZWRWYWx1ZX1gICk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
# Console Control Strings
|
|
2
|
-
|
|
3
|
-
A library of cross-platform tested terminal/console command strings for
|
|
4
|
-
doing things like color and cursor positioning. This is a subset of both
|
|
5
|
-
ansi and vt100. All control codes included work on both Windows & Unix-like
|
|
6
|
-
OSes, except where noted.
|
|
7
|
-
|
|
8
|
-
## Usage
|
|
9
|
-
|
|
10
|
-
```js
|
|
11
|
-
var consoleControl = require('console-control-strings')
|
|
12
|
-
|
|
13
|
-
console.log(consoleControl.color('blue','bgRed', 'bold') + 'hi there' + consoleControl.color('reset'))
|
|
14
|
-
process.stdout.write(consoleControl.goto(75, 10))
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Why Another?
|
|
18
|
-
|
|
19
|
-
There are tons of libraries similar to this one. I wanted one that was:
|
|
20
|
-
|
|
21
|
-
1. Very clear about compatibility goals.
|
|
22
|
-
2. Could emit, for instance, a start color code without an end one.
|
|
23
|
-
3. Returned strings w/o writing to streams.
|
|
24
|
-
4. Was not weighed down with other unrelated baggage.
|
|
25
|
-
|
|
26
|
-
## Functions
|
|
27
|
-
|
|
28
|
-
### var code = consoleControl.up(_num = 1_)
|
|
29
|
-
|
|
30
|
-
Returns the escape sequence to move _num_ lines up.
|
|
31
|
-
|
|
32
|
-
### var code = consoleControl.down(_num = 1_)
|
|
33
|
-
|
|
34
|
-
Returns the escape sequence to move _num_ lines down.
|
|
35
|
-
|
|
36
|
-
### var code = consoleControl.forward(_num = 1_)
|
|
37
|
-
|
|
38
|
-
Returns the escape sequence to move _num_ lines righ.
|
|
39
|
-
|
|
40
|
-
### var code = consoleControl.back(_num = 1_)
|
|
41
|
-
|
|
42
|
-
Returns the escape sequence to move _num_ lines left.
|
|
43
|
-
|
|
44
|
-
### var code = consoleControl.nextLine(_num = 1_)
|
|
45
|
-
|
|
46
|
-
Returns the escape sequence to move _num_ lines down and to the beginning of
|
|
47
|
-
the line.
|
|
48
|
-
|
|
49
|
-
### var code = consoleControl.previousLine(_num = 1_)
|
|
50
|
-
|
|
51
|
-
Returns the escape sequence to move _num_ lines up and to the beginning of
|
|
52
|
-
the line.
|
|
53
|
-
|
|
54
|
-
### var code = consoleControl.eraseData()
|
|
55
|
-
|
|
56
|
-
Returns the escape sequence to erase everything from the current cursor
|
|
57
|
-
position to the bottom right of the screen. This is line based, so it
|
|
58
|
-
erases the remainder of the current line and all following lines.
|
|
59
|
-
|
|
60
|
-
### var code = consoleControl.eraseLine()
|
|
61
|
-
|
|
62
|
-
Returns the escape sequence to erase to the end of the current line.
|
|
63
|
-
|
|
64
|
-
### var code = consoleControl.goto(_x_, _y_)
|
|
65
|
-
|
|
66
|
-
Returns the escape sequence to move the cursor to the designated position.
|
|
67
|
-
Note that the origin is _1, 1_ not _0, 0_.
|
|
68
|
-
|
|
69
|
-
### var code = consoleControl.gotoSOL()
|
|
70
|
-
|
|
71
|
-
Returns the escape sequence to move the cursor to the beginning of the
|
|
72
|
-
current line. (That is, it returns a carriage return, `\r`.)
|
|
73
|
-
|
|
74
|
-
### var code = consoleControl.hideCursor()
|
|
75
|
-
|
|
76
|
-
Returns the escape sequence to hide the cursor.
|
|
77
|
-
|
|
78
|
-
### var code = consoleControl.showCursor()
|
|
79
|
-
|
|
80
|
-
Returns the escape sequence to show the cursor.
|
|
81
|
-
|
|
82
|
-
### var code = consoleControl.color(_colors = []_)
|
|
83
|
-
|
|
84
|
-
### var code = consoleControl.color(_color1_, _color2_, _…_, _colorn_)
|
|
85
|
-
|
|
86
|
-
Returns the escape sequence to set the current terminal display attributes
|
|
87
|
-
(mostly colors). Arguments can either be a list of attributes or an array
|
|
88
|
-
of attributes. The difference between passing in an array or list of colors
|
|
89
|
-
and calling `.color` separately for each one, is that in the former case a
|
|
90
|
-
single escape sequence will be produced where as in the latter each change
|
|
91
|
-
will have its own distinct escape sequence. Each attribute can be one of:
|
|
92
|
-
|
|
93
|
-
* Reset:
|
|
94
|
-
* **reset** – Reset all attributes to the terminal default.
|
|
95
|
-
* Styles:
|
|
96
|
-
* **bold** – Display text as bold. In some terminals this means using a
|
|
97
|
-
bold font, in others this means changing the color. In some it means
|
|
98
|
-
both.
|
|
99
|
-
* **italic** – Display text as italic. This is not available in most Windows terminals.
|
|
100
|
-
* **underline** – Underline text. This is not available in most Windows Terminals.
|
|
101
|
-
* **inverse** – Invert the foreground and background colors.
|
|
102
|
-
* **stopBold** – Do not display text as bold.
|
|
103
|
-
* **stopItalic** – Do not display text as italic.
|
|
104
|
-
* **stopUnderline** – Do not underline text.
|
|
105
|
-
* **stopInverse** – Do not invert foreground and background.
|
|
106
|
-
* Colors:
|
|
107
|
-
* **white**
|
|
108
|
-
* **black**
|
|
109
|
-
* **blue**
|
|
110
|
-
* **cyan**
|
|
111
|
-
* **green**
|
|
112
|
-
* **magenta**
|
|
113
|
-
* **red**
|
|
114
|
-
* **yellow**
|
|
115
|
-
* **grey** / **brightBlack**
|
|
116
|
-
* **brightRed**
|
|
117
|
-
* **brightGreen**
|
|
118
|
-
* **brightYellow**
|
|
119
|
-
* **brightBlue**
|
|
120
|
-
* **brightMagenta**
|
|
121
|
-
* **brightCyan**
|
|
122
|
-
* **brightWhite**
|
|
123
|
-
* Background Colors:
|
|
124
|
-
* **bgWhite**
|
|
125
|
-
* **bgBlack**
|
|
126
|
-
* **bgBlue**
|
|
127
|
-
* **bgCyan**
|
|
128
|
-
* **bgGreen**
|
|
129
|
-
* **bgMagenta**
|
|
130
|
-
* **bgRed**
|
|
131
|
-
* **bgYellow**
|
|
132
|
-
* **bgGrey** / **bgBrightBlack**
|
|
133
|
-
* **bgBrightRed**
|
|
134
|
-
* **bgBrightGreen**
|
|
135
|
-
* **bgBrightYellow**
|
|
136
|
-
* **bgBrightBlue**
|
|
137
|
-
* **bgBrightMagenta**
|
|
138
|
-
* **bgBrightCyan**
|
|
139
|
-
* **bgBrightWhite**
|
|
140
|
-
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
### v4.0.2
|
|
2
|
-
|
|
3
|
-
* Added installation instructions.
|
|
4
|
-
|
|
5
|
-
### v4.0.1
|
|
6
|
-
|
|
7
|
-
* Fix bugs where `log.progressEnabled` got out of sync with how `gauge` kept
|
|
8
|
-
track of these things resulting in a progressbar that couldn't be disabled.
|
|
9
|
-
|
|
10
|
-
### v4.0.0
|
|
11
|
-
|
|
12
|
-
* Allow creating log levels that are an empty string or 0.
|
|
13
|
-
|
|
14
|
-
### v3.1.2
|
|
15
|
-
|
|
16
|
-
* Update to `gauge@1.6.0` adding support for default values for template
|
|
17
|
-
items.
|
|
18
|
-
|
|
19
|
-
### v3.1.1
|
|
20
|
-
|
|
21
|
-
* Update to `gauge@1.5.3` to fix to `1.x` compatibility when it comes to
|
|
22
|
-
when a progress bar is enabled. In `1.x` if you didn't have a TTY the
|
|
23
|
-
progress bar was never shown. In `2.x` it merely defaults to disabled,
|
|
24
|
-
but you can enable it explicitly if you still want progress updates.
|
|
25
|
-
|
|
26
|
-
### v3.1.0
|
|
27
|
-
|
|
28
|
-
* Update to `gauge@2.5.2`:
|
|
29
|
-
* Updates the `signal-exit` dependency which fixes an incompatibility with
|
|
30
|
-
the node profiler.
|
|
31
|
-
* Uses externalizes its ansi code generation in `console-control-strings`
|
|
32
|
-
* Make the default progress bar include the last line printed, colored as it
|
|
33
|
-
would be when printing to a tty.
|
|
34
|
-
|
|
35
|
-
### v3.0.0
|
|
36
|
-
|
|
37
|
-
* Switch to `gauge@2.0.0`, for better performance, better look.
|
|
38
|
-
* Set stderr/stdout blocking if they're tty's, so that we can hide a
|
|
39
|
-
progress bar going to stderr and then safely print to stdout. Without
|
|
40
|
-
this the two can end up overlapping producing confusing and sometimes
|
|
41
|
-
corrupted output.
|
|
42
|
-
|
|
43
|
-
### v2.0.0
|
|
44
|
-
|
|
45
|
-
* Make the `error` event non-fatal so that folks can use it as a prefix.
|
|
46
|
-
|
|
47
|
-
### v1.0.0
|
|
48
|
-
|
|
49
|
-
* Add progress bar with `gauge@1.1.0`
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
|
-
|
|
5
|
-
<a name="2.0.0"></a>
|
|
6
|
-
# [2.0.0](https://github.com/yargs/set-blocking/compare/v1.0.0...v2.0.0) (2016-05-17)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
### Features
|
|
10
|
-
|
|
11
|
-
* add an isTTY check ([#3](https://github.com/yargs/set-blocking/issues/3)) ([66ce277](https://github.com/yargs/set-blocking/commit/66ce277))
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
### BREAKING CHANGES
|
|
15
|
-
|
|
16
|
-
* stdio/stderr will not be set to blocking if isTTY === false
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<a name="1.0.0"></a>
|
|
21
|
-
# 1.0.0 (2016-05-14)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
### Features
|
|
25
|
-
|
|
26
|
-
* implemented shim for stream._handle.setBlocking ([6bde0c0](https://github.com/yargs/set-blocking/commit/6bde0c0))
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
|
|
5
|
-
* with the License. A copy of the License is located at
|
|
6
|
-
*
|
|
7
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
*
|
|
9
|
-
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
|
|
10
|
-
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
11
|
-
* and limitations under the License.
|
|
12
|
-
*/
|
|
13
|
-
export {};
|