cdk-cost-analyzer 0.1.22 → 0.1.23
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.
|
@@ -2,35 +2,35 @@
|
|
|
2
2
|
"entries": {
|
|
3
3
|
"AmazonS3:US East (N. Virginia):storageClass:General Purpose|volumeType:Standard": {
|
|
4
4
|
"price": 0.023,
|
|
5
|
-
"timestamp":
|
|
5
|
+
"timestamp": 1770325754224
|
|
6
6
|
},
|
|
7
7
|
"AmazonDynamoDB:US East (N. Virginia):group:DDB-ReadUnits|productFamily:Amazon DynamoDB PayPerRequest Throughput": {
|
|
8
8
|
"price": 0.023,
|
|
9
|
-
"timestamp":
|
|
9
|
+
"timestamp": 1770325754230
|
|
10
10
|
},
|
|
11
11
|
"AmazonDynamoDB:US East (N. Virginia):group:DDB-WriteUnits|productFamily:Amazon DynamoDB PayPerRequest Throughput": {
|
|
12
12
|
"price": 0.023,
|
|
13
|
-
"timestamp":
|
|
13
|
+
"timestamp": 1770325754230
|
|
14
14
|
},
|
|
15
15
|
"AmazonEC2:US East (N. Virginia):capacitystatus:Used|instanceType:t3.micro|operatingSystem:Linux|preInstalledSw:NA|tenancy:Shared": {
|
|
16
16
|
"price": 0.023,
|
|
17
|
-
"timestamp":
|
|
17
|
+
"timestamp": 1770325754244
|
|
18
18
|
},
|
|
19
19
|
"AWSLambda:US East (N. Virginia):group:AWS-Lambda-Requests": {
|
|
20
20
|
"price": 0.023,
|
|
21
|
-
"timestamp":
|
|
21
|
+
"timestamp": 1770325754249
|
|
22
22
|
},
|
|
23
23
|
"AWSLambda:US East (N. Virginia):group:AWS-Lambda-Duration": {
|
|
24
24
|
"price": 0.023,
|
|
25
|
-
"timestamp":
|
|
25
|
+
"timestamp": 1770325754249
|
|
26
26
|
},
|
|
27
27
|
"AmazonS3:EU (Frankfurt):storageClass:General Purpose|volumeType:Standard": {
|
|
28
28
|
"price": 0.023,
|
|
29
|
-
"timestamp":
|
|
29
|
+
"timestamp": 1770325763850
|
|
30
30
|
},
|
|
31
31
|
"AmazonS3:invalid-region-123:storageClass:General Purpose|volumeType:Standard": {
|
|
32
32
|
"price": 0.023,
|
|
33
|
-
"timestamp":
|
|
33
|
+
"timestamp": 1770325763892
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -6,4 +6,10 @@ export declare class APIGatewayCalculator implements ResourceCostCalculator {
|
|
|
6
6
|
private calculateRestApiCost;
|
|
7
7
|
private calculateHttpApiCost;
|
|
8
8
|
private calculateWebSocketCost;
|
|
9
|
+
/**
|
|
10
|
+
* Get the AWS region prefix for API Gateway pricing usagetype.
|
|
11
|
+
* AWS uses region prefixes in usagetype values (e.g., USE1-ApiGatewayRequest).
|
|
12
|
+
* Reference: https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-region-billing-codes.html
|
|
13
|
+
*/
|
|
14
|
+
private getRegionPrefix;
|
|
9
15
|
}
|
|
@@ -23,12 +23,14 @@ class APIGatewayCalculator {
|
|
|
23
23
|
async calculateRestApiCost(region, pricingClient) {
|
|
24
24
|
try {
|
|
25
25
|
const assumedRequests = 1_000_000; // 1M requests per month
|
|
26
|
+
const regionPrefix = this.getRegionPrefix(region);
|
|
27
|
+
const usageType = regionPrefix ? `${regionPrefix}-ApiGatewayRequest` : 'ApiGatewayRequest';
|
|
26
28
|
const costPerMillion = await pricingClient.getPrice({
|
|
27
29
|
serviceCode: 'AmazonApiGateway',
|
|
28
30
|
region: (0, RegionMapper_1.normalizeRegion)(region),
|
|
29
31
|
filters: [
|
|
30
32
|
{ field: 'productFamily', value: 'API Calls' },
|
|
31
|
-
{ field: '
|
|
33
|
+
{ field: 'usagetype', value: usageType },
|
|
32
34
|
],
|
|
33
35
|
});
|
|
34
36
|
if (costPerMillion === null) {
|
|
@@ -64,12 +66,14 @@ class APIGatewayCalculator {
|
|
|
64
66
|
async calculateHttpApiCost(region, pricingClient) {
|
|
65
67
|
try {
|
|
66
68
|
const assumedRequests = 1_000_000; // 1M requests per month
|
|
69
|
+
const regionPrefix = this.getRegionPrefix(region);
|
|
70
|
+
const usageType = regionPrefix ? `${regionPrefix}-ApiGatewayHttpRequest` : 'ApiGatewayHttpRequest';
|
|
67
71
|
const costPerMillion = await pricingClient.getPrice({
|
|
68
72
|
serviceCode: 'AmazonApiGateway',
|
|
69
73
|
region: (0, RegionMapper_1.normalizeRegion)(region),
|
|
70
74
|
filters: [
|
|
71
75
|
{ field: 'productFamily', value: 'API Calls' },
|
|
72
|
-
{ field: '
|
|
76
|
+
{ field: 'usagetype', value: usageType },
|
|
73
77
|
],
|
|
74
78
|
});
|
|
75
79
|
if (costPerMillion === null) {
|
|
@@ -106,12 +110,15 @@ class APIGatewayCalculator {
|
|
|
106
110
|
try {
|
|
107
111
|
const assumedMessages = 1_000_000; // 1M messages per month
|
|
108
112
|
const assumedConnectionMinutes = 100_000; // 100K connection minutes
|
|
113
|
+
const regionPrefix = this.getRegionPrefix(region);
|
|
114
|
+
const messageUsageType = regionPrefix ? `${regionPrefix}-ApiGatewayMessage` : 'ApiGatewayMessage';
|
|
115
|
+
const minuteUsageType = regionPrefix ? `${regionPrefix}-ApiGatewayMinute` : 'ApiGatewayMinute';
|
|
109
116
|
const messageCostPerMillion = await pricingClient.getPrice({
|
|
110
117
|
serviceCode: 'AmazonApiGateway',
|
|
111
118
|
region: (0, RegionMapper_1.normalizeRegion)(region),
|
|
112
119
|
filters: [
|
|
113
120
|
{ field: 'productFamily', value: 'WebSocket' },
|
|
114
|
-
{ field: '
|
|
121
|
+
{ field: 'usagetype', value: messageUsageType },
|
|
115
122
|
],
|
|
116
123
|
});
|
|
117
124
|
const connectionCostPerMinute = await pricingClient.getPrice({
|
|
@@ -119,7 +126,7 @@ class APIGatewayCalculator {
|
|
|
119
126
|
region: (0, RegionMapper_1.normalizeRegion)(region),
|
|
120
127
|
filters: [
|
|
121
128
|
{ field: 'productFamily', value: 'WebSocket' },
|
|
122
|
-
{ field: '
|
|
129
|
+
{ field: 'usagetype', value: minuteUsageType },
|
|
123
130
|
],
|
|
124
131
|
});
|
|
125
132
|
if (messageCostPerMillion === null || connectionCostPerMinute === null) {
|
|
@@ -154,6 +161,56 @@ class APIGatewayCalculator {
|
|
|
154
161
|
};
|
|
155
162
|
}
|
|
156
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* Get the AWS region prefix for API Gateway pricing usagetype.
|
|
166
|
+
* AWS uses region prefixes in usagetype values (e.g., USE1-ApiGatewayRequest).
|
|
167
|
+
* Reference: https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-region-billing-codes.html
|
|
168
|
+
*/
|
|
169
|
+
getRegionPrefix(region) {
|
|
170
|
+
const prefixMap = {
|
|
171
|
+
// US Regions
|
|
172
|
+
'us-east-1': 'USE1',
|
|
173
|
+
'us-east-2': 'USE2',
|
|
174
|
+
'us-west-1': 'USW1',
|
|
175
|
+
'us-west-2': 'USW2',
|
|
176
|
+
// EU Regions
|
|
177
|
+
'eu-west-1': 'EUW1',
|
|
178
|
+
'eu-west-2': 'EUW2',
|
|
179
|
+
'eu-west-3': 'EUW3',
|
|
180
|
+
'eu-central-1': 'EUC1',
|
|
181
|
+
'eu-central-2': 'EUC2',
|
|
182
|
+
'eu-north-1': 'EUN1',
|
|
183
|
+
'eu-south-1': 'EUS1',
|
|
184
|
+
'eu-south-2': 'EUS2',
|
|
185
|
+
// Asia Pacific Regions
|
|
186
|
+
'ap-south-1': 'APS3', // Mumbai
|
|
187
|
+
'ap-south-2': 'APS5', // Hyderabad
|
|
188
|
+
'ap-southeast-1': 'APS1', // Singapore
|
|
189
|
+
'ap-southeast-2': 'APS2', // Sydney
|
|
190
|
+
'ap-southeast-3': 'APS6', // Jakarta
|
|
191
|
+
'ap-southeast-4': 'APS7', // Melbourne
|
|
192
|
+
'ap-northeast-1': 'APN1', // Tokyo
|
|
193
|
+
'ap-northeast-2': 'APN2', // Seoul
|
|
194
|
+
'ap-northeast-3': 'APN3', // Osaka
|
|
195
|
+
'ap-east-1': 'APE1', // Hong Kong
|
|
196
|
+
// Canada Regions
|
|
197
|
+
'ca-central-1': 'CAN1',
|
|
198
|
+
'ca-west-1': 'CAW1',
|
|
199
|
+
// South America Regions
|
|
200
|
+
'sa-east-1': 'SAE1',
|
|
201
|
+
// Middle East Regions
|
|
202
|
+
'me-south-1': 'MES1',
|
|
203
|
+
'me-central-1': 'MEC1',
|
|
204
|
+
// Africa Regions
|
|
205
|
+
'af-south-1': 'AFS1',
|
|
206
|
+
// Israel Regions
|
|
207
|
+
'il-central-1': 'ILC1',
|
|
208
|
+
// GovCloud Regions
|
|
209
|
+
'us-gov-west-1': 'UGW1',
|
|
210
|
+
'us-gov-east-1': 'UGE1',
|
|
211
|
+
};
|
|
212
|
+
return prefixMap[region] || '';
|
|
213
|
+
}
|
|
157
214
|
}
|
|
158
215
|
exports.APIGatewayCalculator = APIGatewayCalculator;
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQVBJR2F0ZXdheUNhbGN1bGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJpY2luZy9jYWxjdWxhdG9ycy9BUElHYXRld2F5Q2FsY3VsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxrREFBa0Q7QUFFbEQsTUFBYSxvQkFBb0I7SUFDL0IsUUFBUSxDQUFDLFlBQW9CO1FBQzNCLE9BQU8sWUFBWSxLQUFLLDBCQUEwQjtZQUMzQyxZQUFZLEtBQUssd0JBQXdCLENBQUM7SUFDbkQsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQ2pCLFFBQXdCLEVBQ3hCLE1BQWMsRUFDZCxhQUE0QjtRQUU1QixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxLQUFLLHdCQUF3QixDQUFDO1FBQ3hELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUF1QixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFbEYsSUFBSSxZQUFZLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzVELENBQUM7YUFBTSxJQUFJLFlBQVksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDMUQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDMUQsQ0FBQztJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsb0JBQW9CLENBQ2hDLE1BQWMsRUFDZCxhQUE0QjtRQUU1QixJQUFJLENBQUM7WUFDSCxNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsQ0FBQyx3QkFBd0I7WUFFM0QsTUFBTSxjQUFjLEdBQUcsTUFB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VCxRQUFRLEVBQUUsS0FBSztvQkFDZixVQUFVLEVBQUUsU0FBUztvQkFDckIsV0FBVyxFQUFFLENBQUMsMERBQTBELENBQUM7aUJBQzFFLENBQUM7WUFDSixDQUFDO1lBRUQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLEdBQUcscUJBQXFCLENBQUM7WUFDMUUsTUFBTSxjQUFjLEdBQUcsd0JBQXdCLEdBQUcsdUJBQXVCLENBQUM7WUFDMUUsTUFBTSxXQUFXLEdBQUcsV0FBVyxHQUFHLGNBQWMsQ0FBQztZQUVqRCxPQUFPO2dCQUNMLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixRQUFRLEVBQUUsS0FBSztnQkFDZixVQUFVLEVBQUUsUUFBUTtnQkFDcEIsV0FBVyxFQUFFO29CQUNYLFdBQVcsZUFBZSxDQUFDLGNBQWMsRUFBRSwrQkFBK0I7b0JBQzFFLFdBQVcsd0JBQXdCLENBQUMsY0FBYyxFQUFFLCtCQUErQjtvQkFDbkYsb0JBQW9CO29CQUNwQixzQ0FBc0M7aUJBQ3ZDO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTztnQkFDTCxNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsS0FBSztnQkFDZixVQUFVLEVBQUUsU0FBUztnQkFDckIsV0FBVyxFQUFFLENBQUMsNEJBQTRCLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2FBQ3BHLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUVGO0FBbkxELG9EQW1MQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc291cmNlV2l0aElkIH0gZnJvbSAnLi4vLi4vZGlmZi90eXBlcyc7XG5pbXBvcnQgeyBSZXNvdXJjZUNvc3RDYWxjdWxhdG9yLCBNb250aGx5Q29zdCwgUHJpY2luZ0NsaWVudCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG5vcm1hbGl6ZVJlZ2lvbiB9IGZyb20gJy4uL1JlZ2lvbk1hcHBlcic7XG5cbmV4cG9ydCBjbGFzcyBBUElHYXRld2F5Q2FsY3VsYXRvciBpbXBsZW1lbnRzIFJlc291cmNlQ29zdENhbGN1bGF0b3Ige1xuICBzdXBwb3J0cyhyZXNvdXJjZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiByZXNvdXJjZVR5cGUgPT09ICdBV1M6OkFwaUdhdGV3YXk6OlJlc3RBcGknIHx8XG4gICAgICAgICAgIHJlc291cmNlVHlwZSA9PT0gJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGknO1xuICB9XG5cbiAgYXN5bmMgY2FsY3VsYXRlQ29zdChcbiAgICByZXNvdXJjZTogUmVzb3VyY2VXaXRoSWQsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgcHJpY2luZ0NsaWVudDogUHJpY2luZ0NsaWVudCxcbiAgKTogUHJvbWlzZTxNb250aGx5Q29zdD4ge1xuICAgIGNvbnN0IGlzVjIgPSByZXNvdXJjZS50eXBlID09PSAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaSc7XG4gICAgY29uc3QgcHJvdG9jb2xUeXBlID0gaXNWMiA/IChyZXNvdXJjZS5wcm9wZXJ0aWVzLlByb3RvY29sVHlwZSBhcyBzdHJpbmcpIDogJ1JFU1QnO1xuXG4gICAgaWYgKHByb3RvY29sVHlwZSA9PT0gJ1dFQlNPQ0tFVCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZVdlYlNvY2tldENvc3QocmVnaW9uLCBwcmljaW5nQ2xpZW50KTtcbiAgICB9IGVsc2UgaWYgKHByb3RvY29sVHlwZSA9PT0gJ0hUVFAnKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVIdHRwQXBpQ29zdChyZWdpb24sIHByaWNpbmdDbGllbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVSZXN0QXBpQ29zdChyZWdpb24sIHByaWNpbmdDbGllbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2FsY3VsYXRlUmVzdEFwaUNvc3QoXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgcHJpY2luZ0NsaWVudDogUHJpY2luZ0NsaWVudCxcbiAgKTogUHJvbWlzZTxNb250aGx5Q29zdD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBhc3N1bWVkUmVxdWVzdHMgPSAxXzAwMF8wMDA7IC8vIDFNIHJlcXVlc3RzIHBlciBtb250aFxuXG4gICAgICBjb25zdCBjb3N0UGVyTWlsbGlvbiA9IGF3YWl0IHByaWNpbmdDbGllbnQuZ2V0UHJpY2Uoe1xuICAgICAgICBzZXJ2aWNlQ29kZTogJ0FtYXpvbkFwaUdhdGV3YXknLFxuICAgICAgICByZWdpb246IG5vcm1hbGl6ZVJlZ2lvbihyZWdpb24pLFxuICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgeyBmaWVsZDogJ3Byb2R1Y3RGYW1pbHknLCB2YWx1ZTogJ0FQSSBDYWxscycgfSxcbiAgICAgICAgICB7IGZpZWxkOiAnZ3JvdXBEZXNjcmlwdGlvbicsIHZhbHVlOiAnQXBpR2F0ZXdheVJlcXVlc3QnIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgaWYgKGNvc3RQZXJNaWxsaW9uID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYW1vdW50OiAwLFxuICAgICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgICBjb25maWRlbmNlOiAndW5rbm93bicsXG4gICAgICAgICAgYXNzdW1wdGlvbnM6IFsnUHJpY2luZyBkYXRhIG5vdCBhdmFpbGFibGUgZm9yIEFQSSBHYXRld2F5IFJFU1QgQVBJJ10sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1vbnRobHlDb3N0ID0gKGFzc3VtZWRSZXF1ZXN0cyAvIDFfMDAwXzAwMCkgKiBjb3N0UGVyTWlsbGlvbjtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYW1vdW50OiBtb250aGx5Q29zdCxcbiAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICBjb25maWRlbmNlOiAnbWVkaXVtJyxcbiAgICAgICAgYXNzdW1wdGlvbnM6IFtcbiAgICAgICAgICBgQXNzdW1lcyAke2Fzc3VtZWRSZXF1ZXN0cy50b0xvY2FsZVN0cmluZygpfSBSRVNUIEFQSSByZXF1ZXN0cyBwZXIgbW9udGhgLFxuICAgICAgICAgICdSRVNUIEFQSSB0eXBlJyxcbiAgICAgICAgICAnRG9lcyBub3QgaW5jbHVkZSBkYXRhIHRyYW5zZmVyLCBjYWNoaW5nLCBvciBvdGhlciBmZWF0dXJlcycsXG4gICAgICAgICAgJ0ZpcnN0IDMzM00gcmVxdWVzdHMgbWF5IGhhdmUgdGllcmVkIHByaWNpbmcgKG5vdCBjYWxjdWxhdGVkKScsXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbW91bnQ6IDAsXG4gICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgY29uZmlkZW5jZTogJ3Vua25vd24nLFxuICAgICAgICBhc3N1bXB0aW9uczogW2BGYWlsZWQgdG8gZmV0Y2ggcHJpY2luZzogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YF0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2FsY3VsYXRlSHR0cEFwaUNvc3QoXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgcHJpY2luZ0NsaWVudDogUHJpY2luZ0NsaWVudCxcbiAgKTogUHJvbWlzZTxNb250aGx5Q29zdD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBhc3N1bWVkUmVxdWVzdHMgPSAxXzAwMF8wMDA7IC8vIDFNIHJlcXVlc3RzIHBlciBtb250aFxuXG4gICAgICBjb25zdCBjb3N0UGVyTWlsbGlvbiA9IGF3YWl0IHByaWNpbmdDbGllbnQuZ2V0UHJpY2Uoe1xuICAgICAgICBzZXJ2aWNlQ29kZTogJ0FtYXpvbkFwaUdhdGV3YXknLFxuICAgICAgICByZWdpb246IG5vcm1hbGl6ZVJlZ2lvbihyZWdpb24pLFxuICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgeyBmaWVsZDogJ3Byb2R1Y3RGYW1pbHknLCB2YWx1ZTogJ0FQSSBDYWxscycgfSxcbiAgICAgICAgICB7IGZpZWxkOiAnZ3JvdXBEZXNjcmlwdGlvbicsIHZhbHVlOiAnQXBpR2F0ZXdheUh0dHBSZXF1ZXN0JyB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChjb3N0UGVyTWlsbGlvbiA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGFtb3VudDogMCxcbiAgICAgICAgICBjdXJyZW5jeTogJ1VTRCcsXG4gICAgICAgICAgY29uZmlkZW5jZTogJ3Vua25vd24nLFxuICAgICAgICAgIGFzc3VtcHRpb25zOiBbJ1ByaWNpbmcgZGF0YSBub3QgYXZhaWxhYmxlIGZvciBBUEkgR2F0ZXdheSBIVFRQIEFQSSddLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtb250aGx5Q29zdCA9IChhc3N1bWVkUmVxdWVzdHMgLyAxXzAwMF8wMDApICogY29zdFBlck1pbGxpb247XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFtb3VudDogbW9udGhseUNvc3QsXG4gICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgY29uZmlkZW5jZTogJ21lZGl1bScsXG4gICAgICAgIGFzc3VtcHRpb25zOiBbXG4gICAgICAgICAgYEFzc3VtZXMgJHthc3N1bWVkUmVxdWVzdHMudG9Mb2NhbGVTdHJpbmcoKX0gSFRUUCBBUEkgcmVxdWVzdHMgcGVyIG1vbnRoYCxcbiAgICAgICAgICAnSFRUUCBBUEkgdHlwZScsXG4gICAgICAgICAgJ0RvZXMgbm90IGluY2x1ZGUgZGF0YSB0cmFuc2ZlciBjb3N0cycsXG4gICAgICAgICAgJ0ZpcnN0IDMwME0gcmVxdWVzdHMgbWF5IGhhdmUgdGllcmVkIHByaWNpbmcgKG5vdCBjYWxjdWxhdGVkKScsXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbW91bnQ6IDAsXG4gICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgY29uZmlkZW5jZTogJ3Vua25vd24nLFxuICAgICAgICBhc3N1bXB0aW9uczogW2BGYWlsZWQgdG8gZmV0Y2ggcHJpY2luZzogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YF0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2FsY3VsYXRlV2ViU29ja2V0Q29zdChcbiAgICByZWdpb246IHN0cmluZyxcbiAgICBwcmljaW5nQ2xpZW50OiBQcmljaW5nQ2xpZW50LFxuICApOiBQcm9taXNlPE1vbnRobHlDb3N0PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGFzc3VtZWRNZXNzYWdlcyA9IDFfMDAwXzAwMDsgLy8gMU0gbWVzc2FnZXMgcGVyIG1vbnRoXG4gICAgICBjb25zdCBhc3N1bWVkQ29ubmVjdGlvbk1pbnV0ZXMgPSAxMDBfMDAwOyAvLyAxMDBLIGNvbm5lY3Rpb24gbWludXRlc1xuXG4gICAgICBjb25zdCBtZXNzYWdlQ29zdFBlck1pbGxpb24gPSBhd2FpdCBwcmljaW5nQ2xpZW50LmdldFByaWNlKHtcbiAgICAgICAgc2VydmljZUNvZGU6ICdBbWF6b25BcGlHYXRld2F5JyxcbiAgICAgICAgcmVnaW9uOiBub3JtYWxpemVSZWdpb24ocmVnaW9uKSxcbiAgICAgICAgZmlsdGVyczogW1xuICAgICAgICAgIHsgZmllbGQ6ICdwcm9kdWN0RmFtaWx5JywgdmFsdWU6ICdXZWJTb2NrZXQnIH0sXG4gICAgICAgICAgeyBmaWVsZDogJ2dyb3VwRGVzY3JpcHRpb24nLCB2YWx1ZTogJ0FwaUdhdGV3YXlNZXNzYWdlJyB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGNvbm5lY3Rpb25Db3N0UGVyTWludXRlID0gYXdhaXQgcHJpY2luZ0NsaWVudC5nZXRQcmljZSh7XG4gICAgICAgIHNlcnZpY2VDb2RlOiAnQW1hem9uQXBpR2F0ZXdheScsXG4gICAgICAgIHJlZ2lvbjogbm9ybWFsaXplUmVnaW9uKHJlZ2lvbiksXG4gICAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAgICB7IGZpZWxkOiAncHJvZHVjdEZhbWlseScsIHZhbHVlOiAnV2ViU29ja2V0JyB9LFxuICAgICAgICAgIHsgZmllbGQ6ICdncm91cERlc2NyaXB0aW9uJywgdmFsdWU6ICdBcGlHYXRld2F5Q29ubmVjdGlvbk1pbnV0ZScgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAobWVzc2FnZUNvc3RQZXJNaWxsaW9uID09PSBudWxsIHx8IGNvbm5lY3Rpb25Db3N0UGVyTWludXRlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYW1vdW50OiAwLFxuICAgICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgICBjb25maWRlbmNlOiAndW5rbm93bicsXG4gICAgICAgICAgYXNzdW1wdGlvbnM6IFsnUHJpY2luZyBkYXRhIG5vdCBhdmFpbGFibGUgZm9yIEFQSSBHYXRld2F5IFdlYlNvY2tldCBBUEknXSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWVzc2FnZUNvc3QgPSAoYXNzdW1lZE1lc3NhZ2VzIC8gMV8wMDBfMDAwKSAqIG1lc3NhZ2VDb3N0UGVyTWlsbGlvbjtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb25Db3N0ID0gYXNzdW1lZENvbm5lY3Rpb25NaW51dGVzICogY29ubmVjdGlvbkNvc3RQZXJNaW51dGU7XG4gICAgICBjb25zdCBtb250aGx5Q29zdCA9IG1lc3NhZ2VDb3N0ICsgY29ubmVjdGlvbkNvc3Q7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFtb3VudDogbW9udGhseUNvc3QsXG4gICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgY29uZmlkZW5jZTogJ21lZGl1bScsXG4gICAgICAgIGFzc3VtcHRpb25zOiBbXG4gICAgICAgICAgYEFzc3VtZXMgJHthc3N1bWVkTWVzc2FnZXMudG9Mb2NhbGVTdHJpbmcoKX0gV2ViU29ja2V0IG1lc3NhZ2VzIHBlciBtb250aGAsXG4gICAgICAgICAgYEFzc3VtZXMgJHthc3N1bWVkQ29ubmVjdGlvbk1pbnV0ZXMudG9Mb2NhbGVTdHJpbmcoKX0gY29ubmVjdGlvbiBtaW51dGVzIHBlciBtb250aGAsXG4gICAgICAgICAgJ1dlYlNvY2tldCBBUEkgdHlwZScsXG4gICAgICAgICAgJ0RvZXMgbm90IGluY2x1ZGUgZGF0YSB0cmFuc2ZlciBjb3N0cycsXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbW91bnQ6IDAsXG4gICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgY29uZmlkZW5jZTogJ3Vua25vd24nLFxuICAgICAgICBhc3N1bXB0aW9uczogW2BGYWlsZWQgdG8gZmV0Y2ggcHJpY2luZzogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YF0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQVBJR2F0ZXdheUNhbGN1bGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJpY2luZy9jYWxjdWxhdG9ycy9BUElHYXRld2F5Q2FsY3VsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxrREFBa0Q7QUFFbEQsTUFBYSxvQkFBb0I7SUFDL0IsUUFBUSxDQUFDLFlBQW9CO1FBQzNCLE9BQU8sWUFBWSxLQUFLLDBCQUEwQjtZQUMzQyxZQUFZLEtBQUssd0JBQXdCLENBQUM7SUFDbkQsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQ2pCLFFBQXdCLEVBQ3hCLE1BQWMsRUFDZCxhQUE0QjtRQUU1QixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxLQUFLLHdCQUF3QixDQUFDO1FBQ3hELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUF1QixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFbEYsSUFBSSxZQUFZLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzVELENBQUM7YUFBTSxJQUFJLFlBQVksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDMUQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDMUQsQ0FBQztJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsb0JBQW9CLENBQ2hDLE1BQWMsRUFDZCxhQUE0QjtRQUU1QixJQUFJLENBQUM7WUFDSCxNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsQ0FBQyx3QkFBd0I7WUFDM0QsTUFBTSxZQUFZLEdBQUcsSUFB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TSxFQUFJLFFBQVE7WUFDcEMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFJLFFBQVE7WUFDcEMsV0FBVyxFQUFFLE1BQU0sRUFBUyxZQUFZO1lBQ3hDLGlCQUFpQjtZQUNqQixjQUFjLEVBQUUsTUFBTTtZQUN0QixXQUFXLEVBQUUsTUFBTTtZQUNuQix3QkFBd0I7WUFDeEIsV0FBVyxFQUFFLE1BQU07WUFDbkIsc0JBQXNCO1lBQ3RCLFlBQVksRUFBRSxNQUFNO1lBQ3BCLGNBQWMsRUFBRSxNQUFNO1lBQ3RCLGlCQUFpQjtZQUNqQixZQUFZLEVBQUUsTUFBTTtZQUNwQixpQkFBaUI7WUFDakIsY0FBYyxFQUFFLE1BQU07WUFDdEIsbUJBQW1CO1lBQ25CLGVBQWUsRUFBRSxNQUFNO1lBQ3ZCLGVBQWUsRUFBRSxNQUFNO1NBQ3hCLENBQUM7UUFFRixPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNGO0FBN09ELG9EQTZPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc291cmNlV2l0aElkIH0gZnJvbSAnLi4vLi4vZGlmZi90eXBlcyc7XG5pbXBvcnQgeyBSZXNvdXJjZUNvc3RDYWxjdWxhdG9yLCBNb250aGx5Q29zdCwgUHJpY2luZ0NsaWVudCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG5vcm1hbGl6ZVJlZ2lvbiB9IGZyb20gJy4uL1JlZ2lvbk1hcHBlcic7XG5cbmV4cG9ydCBjbGFzcyBBUElHYXRld2F5Q2FsY3VsYXRvciBpbXBsZW1lbnRzIFJlc291cmNlQ29zdENhbGN1bGF0b3Ige1xuICBzdXBwb3J0cyhyZXNvdXJjZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiByZXNvdXJjZVR5cGUgPT09ICdBV1M6OkFwaUdhdGV3YXk6OlJlc3RBcGknIHx8XG4gICAgICAgICAgIHJlc291cmNlVHlwZSA9PT0gJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGknO1xuICB9XG5cbiAgYXN5bmMgY2FsY3VsYXRlQ29zdChcbiAgICByZXNvdXJjZTogUmVzb3VyY2VXaXRoSWQsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgcHJpY2luZ0NsaWVudDogUHJpY2luZ0NsaWVudCxcbiAgKTogUHJvbWlzZTxNb250aGx5Q29zdD4ge1xuICAgIGNvbnN0IGlzVjIgPSByZXNvdXJjZS50eXBlID09PSAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaSc7XG4gICAgY29uc3QgcHJvdG9jb2xUeXBlID0gaXNWMiA/IChyZXNvdXJjZS5wcm9wZXJ0aWVzLlByb3RvY29sVHlwZSBhcyBzdHJpbmcpIDogJ1JFU1QnO1xuXG4gICAgaWYgKHByb3RvY29sVHlwZSA9PT0gJ1dFQlNPQ0tFVCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZVdlYlNvY2tldENvc3QocmVnaW9uLCBwcmljaW5nQ2xpZW50KTtcbiAgICB9IGVsc2UgaWYgKHByb3RvY29sVHlwZSA9PT0gJ0hUVFAnKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVIdHRwQXBpQ29zdChyZWdpb24sIHByaWNpbmdDbGllbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVSZXN0QXBpQ29zdChyZWdpb24sIHByaWNpbmdDbGllbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2FsY3VsYXRlUmVzdEFwaUNvc3QoXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgcHJpY2luZ0NsaWVudDogUHJpY2luZ0NsaWVudCxcbiAgKTogUHJvbWlzZTxNb250aGx5Q29zdD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBhc3N1bWVkUmVxdWVzdHMgPSAxXzAwMF8wMDA7IC8vIDFNIHJlcXVlc3RzIHBlciBtb250aFxuICAgICAgY29uc3QgcmVnaW9uUHJlZml4ID0gdGhpcy5nZXRSZWdpb25QcmVmaXgocmVnaW9uKTtcbiAgICAgIGNvbnN0IHVzYWdlVHlwZSA9IHJlZ2lvblByZWZpeCA/IGAke3JlZ2lvblByZWZpeH0tQXBpR2F0ZXdheVJlcXVlc3RgIDogJ0FwaUdhdGV3YXlSZXF1ZXN0JztcblxuICAgICAgY29uc3QgY29zdFBlck1pbGxpb24gPSBhd2FpdCBwcmljaW5nQ2xpZW50LmdldFByaWNlKHtcbiAgICAgICAgc2VydmljZUNvZGU6ICdBbWF6b25BcGlHYXRld2F5JyxcbiAgICAgICAgcmVnaW9uOiBub3JtYWxpemVSZWdpb24ocmVnaW9uKSxcbiAgICAgICAgZmlsdGVyczogW1xuICAgICAgICAgIHsgZmllbGQ6ICdwcm9kdWN0RmFtaWx5JywgdmFsdWU6ICdBUEkgQ2FsbHMnIH0sXG4gICAgICAgICAgeyBmaWVsZDogJ3VzYWdldHlwZScsIHZhbHVlOiB1c2FnZVR5cGUgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoY29zdFBlck1pbGxpb24gPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhbW91bnQ6IDAsXG4gICAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICAgIGNvbmZpZGVuY2U6ICd1bmtub3duJyxcbiAgICAgICAgICBhc3N1bXB0aW9uczogWydQcmljaW5nIGRhdGEgbm90IGF2YWlsYWJsZSBmb3IgQVBJIEdhdGV3YXkgUkVTVCBBUEknXSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbW9udGhseUNvc3QgPSAoYXNzdW1lZFJlcXVlc3RzIC8gMV8wMDBfMDAwKSAqIGNvc3RQZXJNaWxsaW9uO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbW91bnQ6IG1vbnRobHlDb3N0LFxuICAgICAgICBjdXJyZW5jeTogJ1VTRCcsXG4gICAgICAgIGNvbmZpZGVuY2U6ICdtZWRpdW0nLFxuICAgICAgICBhc3N1bXB0aW9uczogW1xuICAgICAgICAgIGBBc3N1bWVzICR7YXNzdW1lZFJlcXVlc3RzLnRvTG9jYWxlU3RyaW5nKCl9IFJFU1QgQVBJIHJlcXVlc3RzIHBlciBtb250aGAsXG4gICAgICAgICAgJ1JFU1QgQVBJIHR5cGUnLFxuICAgICAgICAgICdEb2VzIG5vdCBpbmNsdWRlIGRhdGEgdHJhbnNmZXIsIGNhY2hpbmcsIG9yIG90aGVyIGZlYXR1cmVzJyxcbiAgICAgICAgICAnRmlyc3QgMzMzTSByZXF1ZXN0cyBtYXkgaGF2ZSB0aWVyZWQgcHJpY2luZyAobm90IGNhbGN1bGF0ZWQpJyxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFtb3VudDogMCxcbiAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICBjb25maWRlbmNlOiAndW5rbm93bicsXG4gICAgICAgIGFzc3VtcHRpb25zOiBbYEZhaWxlZCB0byBmZXRjaCBwcmljaW5nOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gXSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjYWxjdWxhdGVIdHRwQXBpQ29zdChcbiAgICByZWdpb246IHN0cmluZyxcbiAgICBwcmljaW5nQ2xpZW50OiBQcmljaW5nQ2xpZW50LFxuICApOiBQcm9taXNlPE1vbnRobHlDb3N0PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGFzc3VtZWRSZXF1ZXN0cyA9IDFfMDAwXzAwMDsgLy8gMU0gcmVxdWVzdHMgcGVyIG1vbnRoXG4gICAgICBjb25zdCByZWdpb25QcmVmaXggPSB0aGlzLmdldFJlZ2lvblByZWZpeChyZWdpb24pO1xuICAgICAgY29uc3QgdXNhZ2VUeXBlID0gcmVnaW9uUHJlZml4ID8gYCR7cmVnaW9uUHJlZml4fS1BcGlHYXRld2F5SHR0cFJlcXVlc3RgIDogJ0FwaUdhdGV3YXlIdHRwUmVxdWVzdCc7XG5cbiAgICAgIGNvbnN0IGNvc3RQZXJNaWxsaW9uID0gYXdhaXQgcHJpY2luZ0NsaWVudC5nZXRQcmljZSh7XG4gICAgICAgIHNlcnZpY2VDb2RlOiAnQW1hem9uQXBpR2F0ZXdheScsXG4gICAgICAgIHJlZ2lvbjogbm9ybWFsaXplUmVnaW9uKHJlZ2lvbiksXG4gICAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAgICB7IGZpZWxkOiAncHJvZHVjdEZhbWlseScsIHZhbHVlOiAnQVBJIENhbGxzJyB9LFxuICAgICAgICAgIHsgZmllbGQ6ICd1c2FnZXR5cGUnLCB2YWx1ZTogdXNhZ2VUeXBlIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgaWYgKGNvc3RQZXJNaWxsaW9uID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYW1vdW50OiAwLFxuICAgICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgICBjb25maWRlbmNlOiAndW5rbm93bicsXG4gICAgICAgICAgYXNzdW1wdGlvbnM6IFsnUHJpY2luZyBkYXRhIG5vdCBhdmFpbGFibGUgZm9yIEFQSSBHYXRld2F5IEhUVFAgQVBJJ10sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1vbnRobHlDb3N0ID0gKGFzc3VtZWRSZXF1ZXN0cyAvIDFfMDAwXzAwMCkgKiBjb3N0UGVyTWlsbGlvbjtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYW1vdW50OiBtb250aGx5Q29zdCxcbiAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICBjb25maWRlbmNlOiAnbWVkaXVtJyxcbiAgICAgICAgYXNzdW1wdGlvbnM6IFtcbiAgICAgICAgICBgQXNzdW1lcyAke2Fzc3VtZWRSZXF1ZXN0cy50b0xvY2FsZVN0cmluZygpfSBIVFRQIEFQSSByZXF1ZXN0cyBwZXIgbW9udGhgLFxuICAgICAgICAgICdIVFRQIEFQSSB0eXBlJyxcbiAgICAgICAgICAnRG9lcyBub3QgaW5jbHVkZSBkYXRhIHRyYW5zZmVyIGNvc3RzJyxcbiAgICAgICAgICAnRmlyc3QgMzAwTSByZXF1ZXN0cyBtYXkgaGF2ZSB0aWVyZWQgcHJpY2luZyAobm90IGNhbGN1bGF0ZWQpJyxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFtb3VudDogMCxcbiAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICBjb25maWRlbmNlOiAndW5rbm93bicsXG4gICAgICAgIGFzc3VtcHRpb25zOiBbYEZhaWxlZCB0byBmZXRjaCBwcmljaW5nOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gXSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjYWxjdWxhdGVXZWJTb2NrZXRDb3N0KFxuICAgIHJlZ2lvbjogc3RyaW5nLFxuICAgIHByaWNpbmdDbGllbnQ6IFByaWNpbmdDbGllbnQsXG4gICk6IFByb21pc2U8TW9udGhseUNvc3Q+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYXNzdW1lZE1lc3NhZ2VzID0gMV8wMDBfMDAwOyAvLyAxTSBtZXNzYWdlcyBwZXIgbW9udGhcbiAgICAgIGNvbnN0IGFzc3VtZWRDb25uZWN0aW9uTWludXRlcyA9IDEwMF8wMDA7IC8vIDEwMEsgY29ubmVjdGlvbiBtaW51dGVzXG4gICAgICBjb25zdCByZWdpb25QcmVmaXggPSB0aGlzLmdldFJlZ2lvblByZWZpeChyZWdpb24pO1xuICAgICAgY29uc3QgbWVzc2FnZVVzYWdlVHlwZSA9IHJlZ2lvblByZWZpeCA/IGAke3JlZ2lvblByZWZpeH0tQXBpR2F0ZXdheU1lc3NhZ2VgIDogJ0FwaUdhdGV3YXlNZXNzYWdlJztcbiAgICAgIGNvbnN0IG1pbnV0ZVVzYWdlVHlwZSA9IHJlZ2lvblByZWZpeCA/IGAke3JlZ2lvblByZWZpeH0tQXBpR2F0ZXdheU1pbnV0ZWAgOiAnQXBpR2F0ZXdheU1pbnV0ZSc7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2VDb3N0UGVyTWlsbGlvbiA9IGF3YWl0IHByaWNpbmdDbGllbnQuZ2V0UHJpY2Uoe1xuICAgICAgICBzZXJ2aWNlQ29kZTogJ0FtYXpvbkFwaUdhdGV3YXknLFxuICAgICAgICByZWdpb246IG5vcm1hbGl6ZVJlZ2lvbihyZWdpb24pLFxuICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgeyBmaWVsZDogJ3Byb2R1Y3RGYW1pbHknLCB2YWx1ZTogJ1dlYlNvY2tldCcgfSxcbiAgICAgICAgICB7IGZpZWxkOiAndXNhZ2V0eXBlJywgdmFsdWU6IG1lc3NhZ2VVc2FnZVR5cGUgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBjb25uZWN0aW9uQ29zdFBlck1pbnV0ZSA9IGF3YWl0IHByaWNpbmdDbGllbnQuZ2V0UHJpY2Uoe1xuICAgICAgICBzZXJ2aWNlQ29kZTogJ0FtYXpvbkFwaUdhdGV3YXknLFxuICAgICAgICByZWdpb246IG5vcm1hbGl6ZVJlZ2lvbihyZWdpb24pLFxuICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgeyBmaWVsZDogJ3Byb2R1Y3RGYW1pbHknLCB2YWx1ZTogJ1dlYlNvY2tldCcgfSxcbiAgICAgICAgICB7IGZpZWxkOiAndXNhZ2V0eXBlJywgdmFsdWU6IG1pbnV0ZVVzYWdlVHlwZSB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChtZXNzYWdlQ29zdFBlck1pbGxpb24gPT09IG51bGwgfHwgY29ubmVjdGlvbkNvc3RQZXJNaW51dGUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhbW91bnQ6IDAsXG4gICAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICAgIGNvbmZpZGVuY2U6ICd1bmtub3duJyxcbiAgICAgICAgICBhc3N1bXB0aW9uczogWydQcmljaW5nIGRhdGEgbm90IGF2YWlsYWJsZSBmb3IgQVBJIEdhdGV3YXkgV2ViU29ja2V0IEFQSSddLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtZXNzYWdlQ29zdCA9IChhc3N1bWVkTWVzc2FnZXMgLyAxXzAwMF8wMDApICogbWVzc2FnZUNvc3RQZXJNaWxsaW9uO1xuICAgICAgY29uc3QgY29ubmVjdGlvbkNvc3QgPSBhc3N1bWVkQ29ubmVjdGlvbk1pbnV0ZXMgKiBjb25uZWN0aW9uQ29zdFBlck1pbnV0ZTtcbiAgICAgIGNvbnN0IG1vbnRobHlDb3N0ID0gbWVzc2FnZUNvc3QgKyBjb25uZWN0aW9uQ29zdDtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYW1vdW50OiBtb250aGx5Q29zdCxcbiAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICBjb25maWRlbmNlOiAnbWVkaXVtJyxcbiAgICAgICAgYXNzdW1wdGlvbnM6IFtcbiAgICAgICAgICBgQXNzdW1lcyAke2Fzc3VtZWRNZXNzYWdlcy50b0xvY2FsZVN0cmluZygpfSBXZWJTb2NrZXQgbWVzc2FnZXMgcGVyIG1vbnRoYCxcbiAgICAgICAgICBgQXNzdW1lcyAke2Fzc3VtZWRDb25uZWN0aW9uTWludXRlcy50b0xvY2FsZVN0cmluZygpfSBjb25uZWN0aW9uIG1pbnV0ZXMgcGVyIG1vbnRoYCxcbiAgICAgICAgICAnV2ViU29ja2V0IEFQSSB0eXBlJyxcbiAgICAgICAgICAnRG9lcyBub3QgaW5jbHVkZSBkYXRhIHRyYW5zZmVyIGNvc3RzJyxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFtb3VudDogMCxcbiAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICBjb25maWRlbmNlOiAndW5rbm93bicsXG4gICAgICAgIGFzc3VtcHRpb25zOiBbYEZhaWxlZCB0byBmZXRjaCBwcmljaW5nOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gXSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgQVdTIHJlZ2lvbiBwcmVmaXggZm9yIEFQSSBHYXRld2F5IHByaWNpbmcgdXNhZ2V0eXBlLlxuICAgKiBBV1MgdXNlcyByZWdpb24gcHJlZml4ZXMgaW4gdXNhZ2V0eXBlIHZhbHVlcyAoZS5nLiwgVVNFMS1BcGlHYXRld2F5UmVxdWVzdCkuXG4gICAqIFJlZmVyZW5jZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsb2JhbC1pbmZyYXN0cnVjdHVyZS9sYXRlc3QvcmVnaW9ucy9hd3MtcmVnaW9uLWJpbGxpbmctY29kZXMuaHRtbFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRSZWdpb25QcmVmaXgocmVnaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHByZWZpeE1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIC8vIFVTIFJlZ2lvbnNcbiAgICAgICd1cy1lYXN0LTEnOiAnVVNFMScsXG4gICAgICAndXMtZWFzdC0yJzogJ1VTRTInLFxuICAgICAgJ3VzLXdlc3QtMSc6ICdVU1cxJyxcbiAgICAgICd1cy13ZXN0LTInOiAnVVNXMicsXG4gICAgICAvLyBFVSBSZWdpb25zXG4gICAgICAnZXUtd2VzdC0xJzogJ0VVVzEnLFxuICAgICAgJ2V1LXdlc3QtMic6ICdFVVcyJyxcbiAgICAgICdldS13ZXN0LTMnOiAnRVVXMycsXG4gICAgICAnZXUtY2VudHJhbC0xJzogJ0VVQzEnLFxuICAgICAgJ2V1LWNlbnRyYWwtMic6ICdFVUMyJyxcbiAgICAgICdldS1ub3J0aC0xJzogJ0VVTjEnLFxuICAgICAgJ2V1LXNvdXRoLTEnOiAnRVVTMScsXG4gICAgICAnZXUtc291dGgtMic6ICdFVVMyJyxcbiAgICAgIC8vIEFzaWEgUGFjaWZpYyBSZWdpb25zXG4gICAgICAnYXAtc291dGgtMSc6ICdBUFMzJywgICAgICAgLy8gTXVtYmFpXG4gICAgICAnYXAtc291dGgtMic6ICdBUFM1JywgICAgICAgLy8gSHlkZXJhYmFkXG4gICAgICAnYXAtc291dGhlYXN0LTEnOiAnQVBTMScsICAgLy8gU2luZ2Fwb3JlXG4gICAgICAnYXAtc291dGhlYXN0LTInOiAnQVBTMicsICAgLy8gU3lkbmV5XG4gICAgICAnYXAtc291dGhlYXN0LTMnOiAnQVBTNicsICAgLy8gSmFrYXJ0YVxuICAgICAgJ2FwLXNvdXRoZWFzdC00JzogJ0FQUzcnLCAgIC8vIE1lbGJvdXJuZVxuICAgICAgJ2FwLW5vcnRoZWFzdC0xJzogJ0FQTjEnLCAgIC8vIFRva3lvXG4gICAgICAnYXAtbm9ydGhlYXN0LTInOiAnQVBOMicsICAgLy8gU2VvdWxcbiAgICAgICdhcC1ub3J0aGVhc3QtMyc6ICdBUE4zJywgICAvLyBPc2FrYVxuICAgICAgJ2FwLWVhc3QtMSc6ICdBUEUxJywgICAgICAgIC8vIEhvbmcgS29uZ1xuICAgICAgLy8gQ2FuYWRhIFJlZ2lvbnNcbiAgICAgICdjYS1jZW50cmFsLTEnOiAnQ0FOMScsXG4gICAgICAnY2Etd2VzdC0xJzogJ0NBVzEnLFxuICAgICAgLy8gU291dGggQW1lcmljYSBSZWdpb25zXG4gICAgICAnc2EtZWFzdC0xJzogJ1NBRTEnLFxuICAgICAgLy8gTWlkZGxlIEVhc3QgUmVnaW9uc1xuICAgICAgJ21lLXNvdXRoLTEnOiAnTUVTMScsXG4gICAgICAnbWUtY2VudHJhbC0xJzogJ01FQzEnLFxuICAgICAgLy8gQWZyaWNhIFJlZ2lvbnNcbiAgICAgICdhZi1zb3V0aC0xJzogJ0FGUzEnLFxuICAgICAgLy8gSXNyYWVsIFJlZ2lvbnNcbiAgICAgICdpbC1jZW50cmFsLTEnOiAnSUxDMScsXG4gICAgICAvLyBHb3ZDbG91ZCBSZWdpb25zXG4gICAgICAndXMtZ292LXdlc3QtMSc6ICdVR1cxJyxcbiAgICAgICd1cy1nb3YtZWFzdC0xJzogJ1VHRTEnLFxuICAgIH07XG5cbiAgICByZXR1cm4gcHJlZml4TWFwW3JlZ2lvbl0gfHwgJyc7XG4gIH1cbn1cbiJdfQ==
|
package/dist/releasetag.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
v0.1.
|
|
1
|
+
v0.1.23
|