cdk-cost-analyzer 0.1.5 → 0.1.7
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,11 +2,11 @@
|
|
|
2
2
|
"entries": {
|
|
3
3
|
"AmazonS3:EU (Frankfurt):storageClass:General Purpose|volumeType:Standard": {
|
|
4
4
|
"price": 0.023,
|
|
5
|
-
"timestamp":
|
|
5
|
+
"timestamp": 1768922090044
|
|
6
6
|
},
|
|
7
7
|
"AmazonS3:invalid-region-123:storageClass:General Purpose|volumeType:Standard": {
|
|
8
8
|
"price": 0.023,
|
|
9
|
-
"timestamp":
|
|
9
|
+
"timestamp": 1768922090078
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
}
|
package/SECURITY.md
CHANGED
|
@@ -111,7 +111,7 @@ We follow coordinated vulnerability disclosure:
|
|
|
111
111
|
|
|
112
112
|
Security updates are released as patch versions and announced through:
|
|
113
113
|
- GitHub Security Advisories
|
|
114
|
-
- Release notes
|
|
114
|
+
- Release notes on [GitHub Releases](https://github.com/buildinginthecloud/cdk-cost-analyzer/releases)
|
|
115
115
|
- NPM package updates
|
|
116
116
|
|
|
117
117
|
Subscribe to repository notifications to stay informed about security updates.
|
|
@@ -28,12 +28,12 @@ class NatGatewayCalculator {
|
|
|
28
28
|
region: (0, RegionMapper_1.normalizeRegion)(region),
|
|
29
29
|
filters: [
|
|
30
30
|
{ field: 'productFamily', value: 'NAT Gateway' },
|
|
31
|
-
{ field: 'usagetype', value: `${regionPrefix}-
|
|
31
|
+
{ field: 'usagetype', value: `${regionPrefix}-RegionalNatGateway-Hours` },
|
|
32
32
|
],
|
|
33
33
|
});
|
|
34
34
|
Logger_1.Logger.debug('NAT Gateway hourly rate retrieved', {
|
|
35
35
|
hourlyRate,
|
|
36
|
-
usageType: `${regionPrefix}-
|
|
36
|
+
usageType: `${regionPrefix}-RegionalNatGateway-Hours`,
|
|
37
37
|
});
|
|
38
38
|
// Get data processing rate
|
|
39
39
|
const dataProcessingRate = await pricingClient.getPrice({
|
|
@@ -41,12 +41,12 @@ class NatGatewayCalculator {
|
|
|
41
41
|
region: (0, RegionMapper_1.normalizeRegion)(region),
|
|
42
42
|
filters: [
|
|
43
43
|
{ field: 'productFamily', value: 'NAT Gateway' },
|
|
44
|
-
{ field: 'usagetype', value: `${regionPrefix}-
|
|
44
|
+
{ field: 'usagetype', value: `${regionPrefix}-RegionalNatGateway-Bytes` },
|
|
45
45
|
],
|
|
46
46
|
});
|
|
47
47
|
Logger_1.Logger.debug('NAT Gateway data processing rate retrieved', {
|
|
48
48
|
dataProcessingRate,
|
|
49
|
-
usageType: `${regionPrefix}-
|
|
49
|
+
usageType: `${regionPrefix}-RegionalNatGateway-Bytes`,
|
|
50
50
|
});
|
|
51
51
|
if (hourlyRate === null || dataProcessingRate === null) {
|
|
52
52
|
const dataProcessedGB = this.customDataProcessedGB || this.DEFAULT_DATA_PROCESSED_GB;
|
|
@@ -109,7 +109,7 @@ class NatGatewayCalculator {
|
|
|
109
109
|
}
|
|
110
110
|
getRegionPrefix(region) {
|
|
111
111
|
// AWS uses region prefixes in usage types for NAT Gateway
|
|
112
|
-
// Format: {PREFIX}
|
|
112
|
+
// Format: {PREFIX}NatGateway-Hours or {PREFIX}NatGateway-Bytes
|
|
113
113
|
// Reference: https://cur.vantage.sh/aws/nat-gateways/
|
|
114
114
|
const prefixMap = {
|
|
115
115
|
// US Regions
|
|
@@ -159,4 +159,4 @@ class NatGatewayCalculator {
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
exports.NatGatewayCalculator = NatGatewayCalculator;
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmF0R2F0ZXdheUNhbGN1bGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJpY2luZy9jYWxjdWxhdG9ycy9OYXRHYXRld2F5Q2FsY3VsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxrREFBa0Q7QUFDbEQsK0NBQTRDO0FBRTVDLE1BQWEsb0JBQW9CO0lBSVg7SUFISCx5QkFBeUIsR0FBRyxHQUFHLENBQUM7SUFDaEMsZUFBZSxHQUFHLEdBQUcsQ0FBQztJQUV2QyxZQUFvQixxQkFBOEI7UUFBOUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFTO0lBQUcsQ0FBQztJQUV0RCxRQUFRLENBQUMsWUFBb0I7UUFDM0IsT0FBTyxZQUFZLEtBQUssc0JBQXNCLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQ2pCLFNBQXlCLEVBQ3pCLE1BQWMsRUFDZCxhQUE0QjtRQUU1QixJQUFJLENBQUM7WUFDSCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRWxELGVBQU0sQ0FBQyxLQUFLLENBQUMseUNBQXlDLEVBQUU7Z0JBQ3RELE1BQU07Z0JBQ04sWUFBWTtnQkFDWixnQkFBZ0IsRUFBRSxJQUFBLDhCQUFlLEVBQUMsTUFBTSxDQUFDO2dCQUN6QyxlQUFlLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQyx5QkFBeUI7YUFDOUUsQ0FBQyxDQUFDO1lBRUgsa0JBQWtCO1lBQ2xCLE1BQU0sVUFBVSxHQUFHLE1BQU0sYUFBYSxDQUFDLFFBQVEsQ0FBQztnQkFDOUMsV0FBVyxFQUFFLFdBQVc7Z0JBQ3hCLE1BQU0sRUFBRSxJQUFBLDhCQUFlLEVBQUMsTUFBTSxDQUFDO2dCQUMvQixPQUFPLEVBQUU7b0JBQ1AsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7b0JBQ2hELEVBQUUsS0FBSyxFQUFF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TTtZQUN4QixnQkFBZ0IsRUFBRSxNQUFNO1lBQ3hCLGdCQUFnQixFQUFFLE1BQU07WUFDeEIsZ0JBQWdCLEVBQUUsTUFBTTtZQUN4QixnQkFBZ0IsRUFBRSxNQUFNO1lBQ3hCLGdCQUFnQixFQUFFLE1BQU07WUFDeEIsV0FBVyxFQUFFLE1BQU07WUFDbkIsaUJBQWlCO1lBQ2pCLGNBQWMsRUFBRSxNQUFNO1lBQ3RCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLHdCQUF3QjtZQUN4QixXQUFXLEVBQUUsTUFBTTtZQUNuQixzQkFBc0I7WUFDdEIsWUFBWSxFQUFFLE1BQU07WUFDcEIsY0FBYyxFQUFFLE1BQU07WUFDdEIsaUJBQWlCO1lBQ2pCLFlBQVksRUFBRSxNQUFNO1lBQ3BCLGlCQUFpQjtZQUNqQixjQUFjLEVBQUUsTUFBTTtZQUN0QixnQkFBZ0I7WUFDaEIsZ0JBQWdCLEVBQUUsTUFBTTtZQUN4QixnQkFBZ0IsRUFBRSxNQUFNO1lBQ3hCLGVBQWUsRUFBRSxNQUFNO1lBQ3ZCLGVBQWUsRUFBRSxNQUFNO1NBQ3hCLENBQUM7UUFFRixPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNGO0FBN0tELG9EQTZLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc291cmNlV2l0aElkIH0gZnJvbSAnLi4vLi4vZGlmZi90eXBlcyc7XG5pbXBvcnQgeyBSZXNvdXJjZUNvc3RDYWxjdWxhdG9yLCBNb250aGx5Q29zdCwgUHJpY2luZ0NsaWVudCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG5vcm1hbGl6ZVJlZ2lvbiB9IGZyb20gJy4uL1JlZ2lvbk1hcHBlcic7XG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tICcuLi8uLi91dGlscy9Mb2dnZXInO1xuXG5leHBvcnQgY2xhc3MgTmF0R2F0ZXdheUNhbGN1bGF0b3IgaW1wbGVtZW50cyBSZXNvdXJjZUNvc3RDYWxjdWxhdG9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RBVEFfUFJPQ0VTU0VEX0dCID0gMTAwO1xuICBwcml2YXRlIHJlYWRvbmx5IEhPVVJTX1BFUl9NT05USCA9IDczMDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGN1c3RvbURhdGFQcm9jZXNzZWRHQj86IG51bWJlcikge31cblxuICBzdXBwb3J0cyhyZXNvdXJjZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiByZXNvdXJjZVR5cGUgPT09ICdBV1M6OkVDMjo6TmF0R2F0ZXdheSc7XG4gIH1cblxuICBhc3luYyBjYWxjdWxhdGVDb3N0KFxuICAgIF9yZXNvdXJjZTogUmVzb3VyY2VXaXRoSWQsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgcHJpY2luZ0NsaWVudDogUHJpY2luZ0NsaWVudCxcbiAgKTogUHJvbWlzZTxNb250aGx5Q29zdD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZWdpb25QcmVmaXggPSB0aGlzLmdldFJlZ2lvblByZWZpeChyZWdpb24pO1xuICAgICAgXG4gICAgICBMb2dnZXIuZGVidWcoJ05BVCBHYXRld2F5IHByaWNpbmcgY2FsY3VsYXRpb24gc3RhcnRlZCcsIHtcbiAgICAgICAgcmVnaW9uLFxuICAgICAgICByZWdpb25QcmVmaXgsXG4gICAgICAgIG5vcm1hbGl6ZWRSZWdpb246IG5vcm1hbGl6ZVJlZ2lvbihyZWdpb24pLFxuICAgICAgICBkYXRhUHJvY2Vzc2VkR0I6IHRoaXMuY3VzdG9tRGF0YVByb2Nlc3NlZEdCIHx8IHRoaXMuREVGQVVMVF9EQVRBX1BST0NFU1NFRF9HQixcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBHZXQgaG91cmx5IHJhdGVcbiAgICAgIGNvbnN0IGhvdXJseVJhdGUgPSBhd2FpdCBwcmljaW5nQ2xpZW50LmdldFByaWNlKHtcbiAgICAgICAgc2VydmljZUNvZGU6ICdBbWF6b25FQzInLFxuICAgICAgICByZWdpb246IG5vcm1hbGl6ZVJlZ2lvbihyZWdpb24pLFxuICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgeyBmaWVsZDogJ3Byb2R1Y3RGYW1pbHknLCB2YWx1ZTogJ05BVCBHYXRld2F5JyB9LFxuICAgICAgICAgIHsgZmllbGQ6ICd1c2FnZXR5cGUnLCB2YWx1ZTogYCR7cmVnaW9uUHJlZml4fS1OYXRHYXRld2F5LUhvdXJzYCB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIExvZ2dlci5kZWJ1ZygnTkFUIEdhdGV3YXkgaG91cmx5IHJhdGUgcmV0cmlldmVkJywge1xuICAgICAgICBob3VybHlSYXRlLFxuICAgICAgICB1c2FnZVR5cGU6IGAke3JlZ2lvblByZWZpeH0tTmF0R2F0ZXdheS1Ib3Vyc2AsXG4gICAgICB9KTtcblxuICAgICAgLy8gR2V0IGRhdGEgcHJvY2Vzc2luZyByYXRlXG4gICAgICBjb25zdCBkYXRhUHJvY2Vzc2luZ1JhdGUgPSBhd2FpdCBwcmljaW5nQ2xpZW50LmdldFByaWNlKHtcbiAgICAgICAgc2VydmljZUNvZGU6ICdBbWF6b25FQzInLFxuICAgICAgICByZWdpb246IG5vcm1hbGl6ZVJlZ2lvbihyZWdpb24pLFxuICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgeyBmaWVsZDogJ3Byb2R1Y3RGYW1pbHknLCB2YWx1ZTogJ05BVCBHYXRld2F5JyB9LFxuICAgICAgICAgIHsgZmllbGQ6ICd1c2FnZXR5cGUnLCB2YWx1ZTogYCR7cmVnaW9uUHJlZml4fS1OYXRHYXRld2F5LUJ5dGVzYCB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIExvZ2dlci5kZWJ1ZygnTkFUIEdhdGV3YXkgZGF0YSBwcm9jZXNzaW5nIHJhdGUgcmV0cmlldmVkJywge1xuICAgICAgICBkYXRhUHJvY2Vzc2luZ1JhdGUsXG4gICAgICAgIHVzYWdlVHlwZTogYCR7cmVnaW9uUHJlZml4fS1OYXRHYXRld2F5LUJ5dGVzYCxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoaG91cmx5UmF0ZSA9PT0gbnVsbCB8fCBkYXRhUHJvY2Vzc2luZ1JhdGUgPT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgZGF0YVByb2Nlc3NlZEdCID0gdGhpcy5jdXN0b21EYXRhUHJvY2Vzc2VkR0IgfHwgdGhpcy5ERUZBVUxUX0RBVEFfUFJPQ0VTU0VEX0dCO1xuICAgICAgICBjb25zdCBhc3N1bXB0aW9ucyA9IFtcbiAgICAgICAgICBgUHJpY2luZyBkYXRhIG5vdCBhdmFpbGFibGUgZm9yIE5BVCBHYXRld2F5IGluIHJlZ2lvbiAke3JlZ2lvbn1gLFxuICAgICAgICAgIGBXb3VsZCBhc3N1bWUgJHtkYXRhUHJvY2Vzc2VkR0J9IEdCIG9mIGRhdGEgcHJvY2Vzc2luZyBwZXIgbW9udGhgLFxuICAgICAgICAgIGBXb3VsZCBhc3N1bWUgJHt0aGlzLkhPVVJTX1BFUl9NT05USH0gaG91cnMgcGVyIG1vbnRoYCxcbiAgICAgICAgXTtcblxuICAgICAgICBpZiAodGhpcy5jdXN0b21EYXRhUHJvY2Vzc2VkR0IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGFzc3VtcHRpb25zLnB1c2goJ1VzaW5nIGN1c3RvbSBkYXRhIHByb2Nlc3NpbmcgYXNzdW1wdGlvbiBmcm9tIGNvbmZpZ3VyYXRpb24nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIExvZ2dlci5kZWJ1ZygnTkFUIEdhdGV3YXkgcHJpY2luZyBub3QgYXZhaWxhYmxlJywge1xuICAgICAgICAgIHJlZ2lvbixcbiAgICAgICAgICByZWdpb25QcmVmaXgsXG4gICAgICAgICAgaG91cmx5UmF0ZUF2YWlsYWJsZTogaG91cmx5UmF0ZSAhPT0gbnVsbCxcbiAgICAgICAgICBkYXRhUHJvY2Vzc2luZ1JhdGVBdmFpbGFibGU6IGRhdGFQcm9jZXNzaW5nUmF0ZSAhPT0gbnVsbCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhbW91bnQ6IDAsXG4gICAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICAgIGNvbmZpZGVuY2U6ICd1bmtub3duJyxcbiAgICAgICAgICBhc3N1bXB0aW9ucyxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0YVByb2Nlc3NlZEdCID0gdGhpcy5jdXN0b21EYXRhUHJvY2Vzc2VkR0IgfHwgdGhpcy5ERUZBVUxUX0RBVEFfUFJPQ0VTU0VEX0dCO1xuICAgICAgY29uc3QgaG91cmx5Q29zdCA9IGhvdXJseVJhdGUgKiB0aGlzLkhPVVJTX1BFUl9NT05USDtcbiAgICAgIGNvbnN0IGRhdGFQcm9jZXNzaW5nQ29zdCA9IGRhdGFQcm9jZXNzaW5nUmF0ZSAqIGRhdGFQcm9jZXNzZWRHQjtcbiAgICAgIGNvbnN0IHRvdGFsQ29zdCA9IGhvdXJseUNvc3QgKyBkYXRhUHJvY2Vzc2luZ0Nvc3Q7XG5cbiAgICAgIExvZ2dlci5kZWJ1ZygnTkFUIEdhdGV3YXkgY29zdCBjYWxjdWxhdGVkJywge1xuICAgICAgICBob3VybHlSYXRlLFxuICAgICAgICBkYXRhUHJvY2Vzc2luZ1JhdGUsXG4gICAgICAgIGRhdGFQcm9jZXNzZWRHQixcbiAgICAgICAgaG91cmx5Q29zdCxcbiAgICAgICAgZGF0YVByb2Nlc3NpbmdDb3N0LFxuICAgICAgICB0b3RhbENvc3QsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYW1vdW50OiB0b3RhbENvc3QsXG4gICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgY29uZmlkZW5jZTogJ21lZGl1bScsXG4gICAgICAgIGFzc3VtcHRpb25zOiBbXG4gICAgICAgICAgYEhvdXJseSByYXRlOiAkJHtob3VybHlSYXRlLnRvRml4ZWQoNCl9L2hvdXIgw5cgJHt0aGlzLkhPVVJTX1BFUl9NT05USH0gaG91cnMgPSAkJHtob3VybHlDb3N0LnRvRml4ZWQoMil9L21vbnRoYCxcbiAgICAgICAgICBgRGF0YSBwcm9jZXNzaW5nOiAkJHtkYXRhUHJvY2Vzc2luZ1JhdGUudG9GaXhlZCg0KX0vR0Igw5cgJHtkYXRhUHJvY2Vzc2VkR0J9IEdCID0gJCR7ZGF0YVByb2Nlc3NpbmdDb3N0LnRvRml4ZWQoMil9L21vbnRoYCxcbiAgICAgICAgICBgVG90YWw6ICQke3RvdGFsQ29zdC50b0ZpeGVkKDIpfS9tb250aGAsXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBMb2dnZXIuZGVidWcoJ05BVCBHYXRld2F5IHByaWNpbmcgY2FsY3VsYXRpb24gZmFpbGVkJywge1xuICAgICAgICBlcnJvcjogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpLFxuICAgICAgICByZWdpb24sXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYW1vdW50OiAwLFxuICAgICAgICBjdXJyZW5jeTogJ1VTRCcsXG4gICAgICAgIGNvbmZpZGVuY2U6ICd1bmtub3duJyxcbiAgICAgICAgYXNzdW1wdGlvbnM6IFtgRmFpbGVkIHRvIGZldGNoIHByaWNpbmc6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpfWBdLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuXG4gIHByaXZhdGUgZ2V0UmVnaW9uUHJlZml4KHJlZ2lvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBBV1MgdXNlcyByZWdpb24gcHJlZml4ZXMgaW4gdXNhZ2UgdHlwZXMgZm9yIE5BVCBHYXRld2F5XG4gICAgLy8gRm9ybWF0OiB7UFJFRklYfS1OYXRHYXRld2F5LUhvdXJzIG9yIHtQUkVGSVh9LU5hdEdhdGV3YXktQnl0ZXNcbiAgICAvLyBSZWZlcmVuY2U6IGh0dHBzOi8vY3VyLnZhbnRhZ2Uuc2gvYXdzL25hdC1nYXRld2F5cy9cbiAgICBjb25zdCBwcmVmaXhNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAvLyBVUyBSZWdpb25zXG4gICAgICAndXMtZWFzdC0xJzogJ1VTRTEnLFxuICAgICAgJ3VzLWVhc3QtMic6ICdVU0UyJyxcbiAgICAgICd1cy13ZXN0LTEnOiAnVVNXMScsXG4gICAgICAndXMtd2VzdC0yJzogJ1VTVzInLFxuICAgICAgLy8gRVUgUmVnaW9uc1xuICAgICAgJ2V1LXdlc3QtMSc6ICdFVVcxJyxcbiAgICAgICdldS13ZXN0LTInOiAnRVVXMicsXG4gICAgICAnZXUtd2VzdC0zJzogJ0VVVzMnLFxuICAgICAgJ2V1LWNlbnRyYWwtMSc6ICdFVUMxJyxcbiAgICAgICdldS1jZW50cmFsLTInOiAnRVVDMicsXG4gICAgICAnZXUtbm9ydGgtMSc6ICdFVU4xJyxcbiAgICAgICdldS1zb3V0aC0xJzogJ0VVUzEnLFxuICAgICAgJ2V1LXNvdXRoLTInOiAnRVVTMicsXG4gICAgICAvLyBBc2lhIFBhY2lmaWMgUmVnaW9uc1xuICAgICAgJ2FwLXNvdXRoLTEnOiAnQVBTMScsXG4gICAgICAnYXAtc291dGgtMic6ICdBUFMyJyxcbiAgICAgICdhcC1zb3V0aGVhc3QtMSc6ICdBUFMzJyxcbiAgICAgICdhcC1zb3V0aGVhc3QtMic6ICdBUFM0JyxcbiAgICAgICdhcC1zb3V0aGVhc3QtMyc6ICdBUFM1JyxcbiAgICAgICdhcC1zb3V0aGVhc3QtNCc6ICdBUFM2JyxcbiAgICAgICdhcC1ub3J0aGVhc3QtMSc6ICdBUE4xJyxcbiAgICAgICdhcC1ub3J0aGVhc3QtMic6ICdBUE4yJyxcbiAgICAgICdhcC1ub3J0aGVhc3QtMyc6ICdBUE4zJyxcbiAgICAgICdhcC1lYXN0LTEnOiAnQVBFMScsXG4gICAgICAvLyBDYW5hZGEgUmVnaW9uc1xuICAgICAgJ2NhLWNlbnRyYWwtMSc6ICdDQU4xJyxcbiAgICAgICdjYS13ZXN0LTEnOiAnQ0FXMScsXG4gICAgICAvLyBTb3V0aCBBbWVyaWNhIFJlZ2lvbnNcbiAgICAgICdzYS1lYXN0LTEnOiAnU0FFMScsXG4gICAgICAvLyBNaWRkbGUgRWFzdCBSZWdpb25zXG4gICAgICAnbWUtc291dGgtMSc6ICdNRVMxJyxcbiAgICAgICdtZS1jZW50cmFsLTEnOiAnTUVDMScsXG4gICAgICAvLyBBZnJpY2EgUmVnaW9uc1xuICAgICAgJ2FmLXNvdXRoLTEnOiAnQUZTMScsXG4gICAgICAvLyBJc3JhZWwgUmVnaW9uc1xuICAgICAgJ2lsLWNlbnRyYWwtMSc6ICdJTEMxJyxcbiAgICAgIC8vIE90aGVyIFJlZ2lvbnNcbiAgICAgICdhcC1zb3V0aGVhc3QtNSc6ICdBUFM3JyxcbiAgICAgICdldS1pc29lLXdlc3QtMSc6ICdFSVcxJyxcbiAgICAgICd1cy1nb3Ytd2VzdC0xJzogJ1VHVzEnLFxuICAgICAgJ3VzLWdvdi1lYXN0LTEnOiAnVUdFMScsXG4gICAgfTtcblxuICAgIHJldHVybiBwcmVmaXhNYXBbcmVnaW9uXSB8fCAnJztcbiAgfVxufVxuIl19
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmF0R2F0ZXdheUNhbGN1bGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJpY2luZy9jYWxjdWxhdG9ycy9OYXRHYXRld2F5Q2FsY3VsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxrREFBa0Q7QUFDbEQsK0NBQTRDO0FBRTVDLE1BQWEsb0JBQW9CO0lBSVg7SUFISCx5QkFBeUIsR0FBRyxHQUFHLENBQUM7SUFDaEMsZUFBZSxHQUFHLEdBQUcsQ0FBQztJQUV2QyxZQUFvQixxQkFBOEI7UUFBOUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFTO0lBQUcsQ0FBQztJQUV0RCxRQUFRLENBQUMsWUFBb0I7UUFDM0IsT0FBTyxZQUFZLEtBQUssc0JBQXNCLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQ2pCLFNBQXlCLEVBQ3pCLE1BQWMsRUFDZCxhQUE0QjtRQUU1QixJQUFJLENBQUM7WUFDSCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRWxELGVBQU0sQ0FBQyxLQUFLLENBQUMseUNBQXlDLEVBQUU7Z0JBQ3RELE1BQU07Z0JBQ04sWUFBWTtnQkFDWixnQkFBZ0IsRUFBRSxJQUFBLDhCQUFlLEVBQUMsTUFBTSxDQUFDO2dCQUN6QyxlQUFlLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQyx5QkFBeUI7YUFDOUUsQ0FBQyxDQUFDO1lBRUgsa0JBQWtCO1lBQ2xCLE1BQU0sVUFBVSxHQUFHLE1BQU0sYUFBYSxDQUFDLFFBQVEsQ0FBQztnQkFDOUMsV0FBVyxFQUFFLFdBQVc7Z0JBQ3hCLE1BQU0sRUFBRSxJQUFBLDhCQUFlLEVBQUMsTUFBTSxDQUFDO2dCQUMvQixPQUFPLEVBQUU7b0JBQ1AsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7b0JBQ2hELEVBQUUsS0FBSyxFQUFF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TTtZQUN4QixnQkFBZ0IsRUFBRSxNQUFNO1lBQ3hCLGdCQUFnQixFQUFFLE1BQU07WUFDeEIsZ0JBQWdCLEVBQUUsTUFBTTtZQUN4QixnQkFBZ0IsRUFBRSxNQUFNO1lBQ3hCLGdCQUFnQixFQUFFLE1BQU07WUFDeEIsV0FBVyxFQUFFLE1BQU07WUFDbkIsaUJBQWlCO1lBQ2pCLGNBQWMsRUFBRSxNQUFNO1lBQ3RCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLHdCQUF3QjtZQUN4QixXQUFXLEVBQUUsTUFBTTtZQUNuQixzQkFBc0I7WUFDdEIsWUFBWSxFQUFFLE1BQU07WUFDcEIsY0FBYyxFQUFFLE1BQU07WUFDdEIsaUJBQWlCO1lBQ2pCLFlBQVksRUFBRSxNQUFNO1lBQ3BCLGlCQUFpQjtZQUNqQixjQUFjLEVBQUUsTUFBTTtZQUN0QixnQkFBZ0I7WUFDaEIsZ0JBQWdCLEVBQUUsTUFBTTtZQUN4QixnQkFBZ0IsRUFBRSxNQUFNO1lBQ3hCLGVBQWUsRUFBRSxNQUFNO1lBQ3ZCLGVBQWUsRUFBRSxNQUFNO1NBQ3hCLENBQUM7UUFFRixPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNGO0FBN0tELG9EQTZLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc291cmNlV2l0aElkIH0gZnJvbSAnLi4vLi4vZGlmZi90eXBlcyc7XG5pbXBvcnQgeyBSZXNvdXJjZUNvc3RDYWxjdWxhdG9yLCBNb250aGx5Q29zdCwgUHJpY2luZ0NsaWVudCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG5vcm1hbGl6ZVJlZ2lvbiB9IGZyb20gJy4uL1JlZ2lvbk1hcHBlcic7XG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tICcuLi8uLi91dGlscy9Mb2dnZXInO1xuXG5leHBvcnQgY2xhc3MgTmF0R2F0ZXdheUNhbGN1bGF0b3IgaW1wbGVtZW50cyBSZXNvdXJjZUNvc3RDYWxjdWxhdG9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RBVEFfUFJPQ0VTU0VEX0dCID0gMTAwO1xuICBwcml2YXRlIHJlYWRvbmx5IEhPVVJTX1BFUl9NT05USCA9IDczMDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGN1c3RvbURhdGFQcm9jZXNzZWRHQj86IG51bWJlcikge31cblxuICBzdXBwb3J0cyhyZXNvdXJjZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiByZXNvdXJjZVR5cGUgPT09ICdBV1M6OkVDMjo6TmF0R2F0ZXdheSc7XG4gIH1cblxuICBhc3luYyBjYWxjdWxhdGVDb3N0KFxuICAgIF9yZXNvdXJjZTogUmVzb3VyY2VXaXRoSWQsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgcHJpY2luZ0NsaWVudDogUHJpY2luZ0NsaWVudCxcbiAgKTogUHJvbWlzZTxNb250aGx5Q29zdD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZWdpb25QcmVmaXggPSB0aGlzLmdldFJlZ2lvblByZWZpeChyZWdpb24pO1xuICAgICAgXG4gICAgICBMb2dnZXIuZGVidWcoJ05BVCBHYXRld2F5IHByaWNpbmcgY2FsY3VsYXRpb24gc3RhcnRlZCcsIHtcbiAgICAgICAgcmVnaW9uLFxuICAgICAgICByZWdpb25QcmVmaXgsXG4gICAgICAgIG5vcm1hbGl6ZWRSZWdpb246IG5vcm1hbGl6ZVJlZ2lvbihyZWdpb24pLFxuICAgICAgICBkYXRhUHJvY2Vzc2VkR0I6IHRoaXMuY3VzdG9tRGF0YVByb2Nlc3NlZEdCIHx8IHRoaXMuREVGQVVMVF9EQVRBX1BST0NFU1NFRF9HQixcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBHZXQgaG91cmx5IHJhdGVcbiAgICAgIGNvbnN0IGhvdXJseVJhdGUgPSBhd2FpdCBwcmljaW5nQ2xpZW50LmdldFByaWNlKHtcbiAgICAgICAgc2VydmljZUNvZGU6ICdBbWF6b25FQzInLFxuICAgICAgICByZWdpb246IG5vcm1hbGl6ZVJlZ2lvbihyZWdpb24pLFxuICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgeyBmaWVsZDogJ3Byb2R1Y3RGYW1pbHknLCB2YWx1ZTogJ05BVCBHYXRld2F5JyB9LFxuICAgICAgICAgIHsgZmllbGQ6ICd1c2FnZXR5cGUnLCB2YWx1ZTogYCR7cmVnaW9uUHJlZml4fS1SZWdpb25hbE5hdEdhdGV3YXktSG91cnNgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgTG9nZ2VyLmRlYnVnKCdOQVQgR2F0ZXdheSBob3VybHkgcmF0ZSByZXRyaWV2ZWQnLCB7XG4gICAgICAgIGhvdXJseVJhdGUsXG4gICAgICAgIHVzYWdlVHlwZTogYCR7cmVnaW9uUHJlZml4fS1SZWdpb25hbE5hdEdhdGV3YXktSG91cnNgLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEdldCBkYXRhIHByb2Nlc3NpbmcgcmF0ZVxuICAgICAgY29uc3QgZGF0YVByb2Nlc3NpbmdSYXRlID0gYXdhaXQgcHJpY2luZ0NsaWVudC5nZXRQcmljZSh7XG4gICAgICAgIHNlcnZpY2VDb2RlOiAnQW1hem9uRUMyJyxcbiAgICAgICAgcmVnaW9uOiBub3JtYWxpemVSZWdpb24ocmVnaW9uKSxcbiAgICAgICAgZmlsdGVyczogW1xuICAgICAgICAgIHsgZmllbGQ6ICdwcm9kdWN0RmFtaWx5JywgdmFsdWU6ICdOQVQgR2F0ZXdheScgfSxcbiAgICAgICAgICB7IGZpZWxkOiAndXNhZ2V0eXBlJywgdmFsdWU6IGAke3JlZ2lvblByZWZpeH0tUmVnaW9uYWxOYXRHYXRld2F5LUJ5dGVzYCB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIExvZ2dlci5kZWJ1ZygnTkFUIEdhdGV3YXkgZGF0YSBwcm9jZXNzaW5nIHJhdGUgcmV0cmlldmVkJywge1xuICAgICAgICBkYXRhUHJvY2Vzc2luZ1JhdGUsXG4gICAgICAgIHVzYWdlVHlwZTogYCR7cmVnaW9uUHJlZml4fS1SZWdpb25hbE5hdEdhdGV3YXktQnl0ZXNgLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChob3VybHlSYXRlID09PSBudWxsIHx8IGRhdGFQcm9jZXNzaW5nUmF0ZSA9PT0gbnVsbCkge1xuICAgICAgICBjb25zdCBkYXRhUHJvY2Vzc2VkR0IgPSB0aGlzLmN1c3RvbURhdGFQcm9jZXNzZWRHQiB8fCB0aGlzLkRFRkFVTFRfREFUQV9QUk9DRVNTRURfR0I7XG4gICAgICAgIGNvbnN0IGFzc3VtcHRpb25zID0gW1xuICAgICAgICAgIGBQcmljaW5nIGRhdGEgbm90IGF2YWlsYWJsZSBmb3IgTkFUIEdhdGV3YXkgaW4gcmVnaW9uICR7cmVnaW9ufWAsXG4gICAgICAgICAgYFdvdWxkIGFzc3VtZSAke2RhdGFQcm9jZXNzZWRHQn0gR0Igb2YgZGF0YSBwcm9jZXNzaW5nIHBlciBtb250aGAsXG4gICAgICAgICAgYFdvdWxkIGFzc3VtZSAke3RoaXMuSE9VUlNfUEVSX01PTlRIfSBob3VycyBwZXIgbW9udGhgLFxuICAgICAgICBdO1xuXG4gICAgICAgIGlmICh0aGlzLmN1c3RvbURhdGFQcm9jZXNzZWRHQiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgYXNzdW1wdGlvbnMucHVzaCgnVXNpbmcgY3VzdG9tIGRhdGEgcHJvY2Vzc2luZyBhc3N1bXB0aW9uIGZyb20gY29uZmlndXJhdGlvbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgTG9nZ2VyLmRlYnVnKCdOQVQgR2F0ZXdheSBwcmljaW5nIG5vdCBhdmFpbGFibGUnLCB7XG4gICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgIHJlZ2lvblByZWZpeCxcbiAgICAgICAgICBob3VybHlSYXRlQXZhaWxhYmxlOiBob3VybHlSYXRlICE9PSBudWxsLFxuICAgICAgICAgIGRhdGFQcm9jZXNzaW5nUmF0ZUF2YWlsYWJsZTogZGF0YVByb2Nlc3NpbmdSYXRlICE9PSBudWxsLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGFtb3VudDogMCxcbiAgICAgICAgICBjdXJyZW5jeTogJ1VTRCcsXG4gICAgICAgICAgY29uZmlkZW5jZTogJ3Vua25vd24nLFxuICAgICAgICAgIGFzc3VtcHRpb25zLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhUHJvY2Vzc2VkR0IgPSB0aGlzLmN1c3RvbURhdGFQcm9jZXNzZWRHQiB8fCB0aGlzLkRFRkFVTFRfREFUQV9QUk9DRVNTRURfR0I7XG4gICAgICBjb25zdCBob3VybHlDb3N0ID0gaG91cmx5UmF0ZSAqIHRoaXMuSE9VUlNfUEVSX01PTlRIO1xuICAgICAgY29uc3QgZGF0YVByb2Nlc3NpbmdDb3N0ID0gZGF0YVByb2Nlc3NpbmdSYXRlICogZGF0YVByb2Nlc3NlZEdCO1xuICAgICAgY29uc3QgdG90YWxDb3N0ID0gaG91cmx5Q29zdCArIGRhdGFQcm9jZXNzaW5nQ29zdDtcblxuICAgICAgTG9nZ2VyLmRlYnVnKCdOQVQgR2F0ZXdheSBjb3N0IGNhbGN1bGF0ZWQnLCB7XG4gICAgICAgIGhvdXJseVJhdGUsXG4gICAgICAgIGRhdGFQcm9jZXNzaW5nUmF0ZSxcbiAgICAgICAgZGF0YVByb2Nlc3NlZEdCLFxuICAgICAgICBob3VybHlDb3N0LFxuICAgICAgICBkYXRhUHJvY2Vzc2luZ0Nvc3QsXG4gICAgICAgIHRvdGFsQ29zdCxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbW91bnQ6IHRvdGFsQ29zdCxcbiAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICBjb25maWRlbmNlOiAnbWVkaXVtJyxcbiAgICAgICAgYXNzdW1wdGlvbnM6IFtcbiAgICAgICAgICBgSG91cmx5IHJhdGU6ICQke2hvdXJseVJhdGUudG9GaXhlZCg0KX0vaG91ciDDlyAke3RoaXMuSE9VUlNfUEVSX01PTlRIfSBob3VycyA9ICQke2hvdXJseUNvc3QudG9GaXhlZCgyKX0vbW9udGhgLFxuICAgICAgICAgIGBEYXRhIHByb2Nlc3Npbmc6ICQke2RhdGFQcm9jZXNzaW5nUmF0ZS50b0ZpeGVkKDQpfS9HQiDDlyAke2RhdGFQcm9jZXNzZWRHQn0gR0IgPSAkJHtkYXRhUHJvY2Vzc2luZ0Nvc3QudG9GaXhlZCgyKX0vbW9udGhgLFxuICAgICAgICAgIGBUb3RhbDogJCR7dG90YWxDb3N0LnRvRml4ZWQoMil9L21vbnRoYCxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIExvZ2dlci5kZWJ1ZygnTkFUIEdhdGV3YXkgcHJpY2luZyBjYWxjdWxhdGlvbiBmYWlsZWQnLCB7XG4gICAgICAgIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvciksXG4gICAgICAgIHJlZ2lvbixcbiAgICAgIH0pO1xuICAgICAgXG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbW91bnQ6IDAsXG4gICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgY29uZmlkZW5jZTogJ3Vua25vd24nLFxuICAgICAgICBhc3N1bXB0aW9uczogW2BGYWlsZWQgdG8gZmV0Y2ggcHJpY2luZzogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YF0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG5cbiAgcHJpdmF0ZSBnZXRSZWdpb25QcmVmaXgocmVnaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIEFXUyB1c2VzIHJlZ2lvbiBwcmVmaXhlcyBpbiB1c2FnZSB0eXBlcyBmb3IgTkFUIEdhdGV3YXlcbiAgICAvLyBGb3JtYXQ6IHtQUkVGSVh9TmF0R2F0ZXdheS1Ib3VycyBvciB7UFJFRklYfU5hdEdhdGV3YXktQnl0ZXNcbiAgICAvLyBSZWZlcmVuY2U6IGh0dHBzOi8vY3VyLnZhbnRhZ2Uuc2gvYXdzL25hdC1nYXRld2F5cy9cbiAgICBjb25zdCBwcmVmaXhNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAvLyBVUyBSZWdpb25zXG4gICAgICAndXMtZWFzdC0xJzogJ1VTRTEnLFxuICAgICAgJ3VzLWVhc3QtMic6ICdVU0UyJyxcbiAgICAgICd1cy13ZXN0LTEnOiAnVVNXMScsXG4gICAgICAndXMtd2VzdC0yJzogJ1VTVzInLFxuICAgICAgLy8gRVUgUmVnaW9uc1xuICAgICAgJ2V1LXdlc3QtMSc6ICdFVVcxJyxcbiAgICAgICdldS13ZXN0LTInOiAnRVVXMicsXG4gICAgICAnZXUtd2VzdC0zJzogJ0VVVzMnLFxuICAgICAgJ2V1LWNlbnRyYWwtMSc6ICdFVUMxJyxcbiAgICAgICdldS1jZW50cmFsLTInOiAnRVVDMicsXG4gICAgICAnZXUtbm9ydGgtMSc6ICdFVU4xJyxcbiAgICAgICdldS1zb3V0aC0xJzogJ0VVUzEnLFxuICAgICAgJ2V1LXNvdXRoLTInOiAnRVVTMicsXG4gICAgICAvLyBBc2lhIFBhY2lmaWMgUmVnaW9uc1xuICAgICAgJ2FwLXNvdXRoLTEnOiAnQVBTMScsXG4gICAgICAnYXAtc291dGgtMic6ICdBUFMyJyxcbiAgICAgICdhcC1zb3V0aGVhc3QtMSc6ICdBUFMzJyxcbiAgICAgICdhcC1zb3V0aGVhc3QtMic6ICdBUFM0JyxcbiAgICAgICdhcC1zb3V0aGVhc3QtMyc6ICdBUFM1JyxcbiAgICAgICdhcC1zb3V0aGVhc3QtNCc6ICdBUFM2JyxcbiAgICAgICdhcC1ub3J0aGVhc3QtMSc6ICdBUE4xJyxcbiAgICAgICdhcC1ub3J0aGVhc3QtMic6ICdBUE4yJyxcbiAgICAgICdhcC1ub3J0aGVhc3QtMyc6ICdBUE4zJyxcbiAgICAgICdhcC1lYXN0LTEnOiAnQVBFMScsXG4gICAgICAvLyBDYW5hZGEgUmVnaW9uc1xuICAgICAgJ2NhLWNlbnRyYWwtMSc6ICdDQU4xJyxcbiAgICAgICdjYS13ZXN0LTEnOiAnQ0FXMScsXG4gICAgICAvLyBTb3V0aCBBbWVyaWNhIFJlZ2lvbnNcbiAgICAgICdzYS1lYXN0LTEnOiAnU0FFMScsXG4gICAgICAvLyBNaWRkbGUgRWFzdCBSZWdpb25zXG4gICAgICAnbWUtc291dGgtMSc6ICdNRVMxJyxcbiAgICAgICdtZS1jZW50cmFsLTEnOiAnTUVDMScsXG4gICAgICAvLyBBZnJpY2EgUmVnaW9uc1xuICAgICAgJ2FmLXNvdXRoLTEnOiAnQUZTMScsXG4gICAgICAvLyBJc3JhZWwgUmVnaW9uc1xuICAgICAgJ2lsLWNlbnRyYWwtMSc6ICdJTEMxJyxcbiAgICAgIC8vIE90aGVyIFJlZ2lvbnNcbiAgICAgICdhcC1zb3V0aGVhc3QtNSc6ICdBUFM3JyxcbiAgICAgICdldS1pc29lLXdlc3QtMSc6ICdFSVcxJyxcbiAgICAgICd1cy1nb3Ytd2VzdC0xJzogJ1VHVzEnLFxuICAgICAgJ3VzLWdvdi1lYXN0LTEnOiAnVUdFMScsXG4gICAgfTtcblxuICAgIHJldHVybiBwcmVmaXhNYXBbcmVnaW9uXSB8fCAnJztcbiAgfVxufVxuIl19
|
package/dist/releasetag.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
v0.1.
|
|
1
|
+
v0.1.7
|
package/docs/RELEASE.md
CHANGED
|
@@ -65,7 +65,7 @@ The GitHub Actions release workflow automatically:
|
|
|
65
65
|
- `feat!:` or `BREAKING CHANGE:` → Major version (1.0.0 → 2.0.0)
|
|
66
66
|
- `feat:` → Minor version (1.0.0 → 1.1.0)
|
|
67
67
|
- `fix:` → Patch version (1.0.0 → 1.0.1)
|
|
68
|
-
3. **
|
|
68
|
+
3. **Generates changelog** with categorized changes:
|
|
69
69
|
- Features
|
|
70
70
|
- Bug Fixes
|
|
71
71
|
- Documentation
|
|
@@ -89,7 +89,7 @@ gh run list --workflow=release
|
|
|
89
89
|
|
|
90
90
|
## Changelog Management
|
|
91
91
|
|
|
92
|
-
The
|
|
92
|
+
The changelog is automatically generated during releases and published to [GitHub Releases](https://github.com/buildinginthecloud/cdk-cost-analyzer/releases).
|
|
93
93
|
|
|
94
94
|
### Commit Type Mapping
|
|
95
95
|
|
|
@@ -102,13 +102,15 @@ Commits are categorized in the changelog as follows:
|
|
|
102
102
|
- `perf:` → **Performance Improvements** section
|
|
103
103
|
- `chore:`, `style:`, `test:` → Hidden (not in changelog)
|
|
104
104
|
|
|
105
|
-
###
|
|
105
|
+
### Viewing Changelog
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
View the complete changelog at: https://github.com/buildinginthecloud/cdk-cost-analyzer/releases
|
|
108
108
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
Each release includes:
|
|
110
|
+
- Version number and release date
|
|
111
|
+
- Categorized list of changes
|
|
112
|
+
- Links to commits and pull requests
|
|
113
|
+
- Breaking changes (if any)
|
|
112
114
|
|
|
113
115
|
## Manual Release Process
|
|
114
116
|
|
|
@@ -132,7 +134,7 @@ npm publish --access public
|
|
|
132
134
|
1. Verify the package is available on NPM: https://www.npmjs.com/package/cdk-cost-analyzer
|
|
133
135
|
2. Verify the GitHub release was created: https://github.com/buildinginthecloud/cdk-cost-analyzer/releases
|
|
134
136
|
3. Test installation: `npm install -g cdk-cost-analyzer@X.Y.Z`
|
|
135
|
-
4. Verify
|
|
137
|
+
4. Verify changelog was published to GitHub Releases
|
|
136
138
|
5. Announce the release in relevant channels
|
|
137
139
|
|
|
138
140
|
## Rollback
|
|
@@ -169,11 +171,12 @@ If a release has critical issues:
|
|
|
169
171
|
- Verify package name is not already taken
|
|
170
172
|
- Check for version conflicts
|
|
171
173
|
|
|
172
|
-
###
|
|
174
|
+
### Changelog Not Published
|
|
173
175
|
|
|
174
|
-
- Verify
|
|
175
|
-
- Check
|
|
176
|
+
- Verify release workflow completed successfully
|
|
177
|
+
- Check GitHub Releases page for the version
|
|
176
178
|
- Review release workflow logs for errors
|
|
179
|
+
- Ensure conventional commit format is correct
|
|
177
180
|
|
|
178
181
|
## Configuration
|
|
179
182
|
|
|
@@ -226,7 +229,7 @@ The `.versionrc.json` file configures how commits are categorized:
|
|
|
226
229
|
- [ ] Commits follow conventional commit format
|
|
227
230
|
- [ ] PR merged to main branch
|
|
228
231
|
- [ ] Release workflow completed successfully
|
|
229
|
-
- [ ]
|
|
232
|
+
- [ ] Changelog published to GitHub Releases
|
|
230
233
|
- [ ] Package published to NPM
|
|
231
234
|
- [ ] GitHub release created
|
|
232
235
|
- [ ] Installation tested: `npm install -g cdk-cost-analyzer@latest`
|
package/package.json
CHANGED
|
@@ -21,7 +21,6 @@
|
|
|
21
21
|
"lint": "npx projen lint",
|
|
22
22
|
"package": "npx projen package",
|
|
23
23
|
"post-compile": "npx projen post-compile",
|
|
24
|
-
"post-release": "npx projen post-release",
|
|
25
24
|
"post-upgrade": "npx projen post-upgrade",
|
|
26
25
|
"pre-compile": "npx projen pre-compile",
|
|
27
26
|
"prepare": "npx projen prepare",
|
|
@@ -83,7 +82,7 @@
|
|
|
83
82
|
"publishConfig": {
|
|
84
83
|
"access": "public"
|
|
85
84
|
},
|
|
86
|
-
"version": "0.1.
|
|
85
|
+
"version": "0.1.7",
|
|
87
86
|
"bugs": {
|
|
88
87
|
"url": "https://github.com/buildinginthecloud/cdk-cost-analyzer/issues"
|
|
89
88
|
},
|
package/CHANGELOG.md
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
|
|
5
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
-
|
|
8
|
-
## [Unreleased]
|
|
9
|
-
|
|
10
|
-
### Features
|
|
11
|
-
- Add demo CDK project with ECS Fargate, bastion hosts, and serverless API
|
|
12
|
-
- Add integration test for NAT Gateway pricing with real AWS API calls
|
|
13
|
-
- Add discovery tool for exploring AWS Pricing API NAT Gateway responses
|
|
14
|
-
|
|
15
|
-
### Bug Fixes
|
|
16
|
-
- Fix NAT Gateway calculator region prefix format for AWS Pricing API queries
|
|
17
|
-
- Changed usageType format from `{PREFIX}NatGateway-Hours` to `{PREFIX}-NatGateway-Hours`
|
|
18
|
-
- Changed usageType format from `{PREFIX}NatGateway-Bytes` to `{PREFIX}-NatGateway-Bytes`
|
|
19
|
-
- Fixes pricing detection for eu-central-1 and other regions
|
|
20
|
-
- NAT Gateway costs now show correct monthly estimates (~$37/month for eu-central-1 with 100GB data)
|
|
21
|
-
- Fix locale formatting in CustomAssumptions property test
|
|
22
|
-
|
|
23
|
-
### Changed
|
|
24
|
-
- Expand NAT Gateway region prefix mappings to include all AWS commercial and government regions
|
|
25
|
-
- Add comprehensive debug logging to NAT Gateway calculator for pricing queries and calculations
|
|
26
|
-
|
|
27
|
-
### Documentation
|
|
28
|
-
- Add GitHub CLI best practices steering document
|
|
29
|
-
- Add NAT Gateway testing and debugging guide
|
|
30
|
-
- Add NAT Gateway pricing example with debug logging
|
|
31
|
-
|
|
32
|
-
### Security
|
|
33
|
-
- Improved command execution security in CDK synthesis by using `shell: false` to prevent command injection vulnerabilities
|
|
34
|
-
|
|
35
|
-
## [0.1.2] - 2025-01-20
|
|
36
|
-
|
|
37
|
-
### Features
|
|
38
|
-
- Add debug logging for pricing API calls with `--debug` flag
|
|
39
|
-
- Add Logger utility class for consistent debug output
|
|
40
|
-
- Add region normalization logging
|
|
41
|
-
- Add cache status logging (memory/persistent)
|
|
42
|
-
- Add comprehensive debug logging documentation
|
|
43
|
-
|
|
44
|
-
### Changed
|
|
45
|
-
- Upgrade dependencies to latest versions
|
|
46
|
-
|
|
47
|
-
## [0.1.1] - 2024-12-11
|
|
48
|
-
|
|
49
|
-
### Features
|
|
50
|
-
- Enable npm release workflow
|
|
51
|
-
- Add GitHub Actions workflow validation with act pre-commit hook
|
|
52
|
-
- Migrate from Vitest to Jest and improve projen configuration
|
|
53
|
-
- Add dedicated test workflow for GitHub Actions status checks
|
|
54
|
-
|
|
55
|
-
### Bug Fixes
|
|
56
|
-
- Update package name to unscoped cdk-cost-analyzer
|
|
57
|
-
- Increase property test timeouts for CDK synthesis from 15s to 30s
|
|
58
|
-
- Enforce npm version consistency in CI workflow
|
|
59
|
-
- Pin Node.js version to 20.18.1 in GitHub Actions workflows
|
|
60
|
-
- Ensure npm ci is used consistently in GitHub Actions
|
|
61
|
-
- Add example project dependencies installation to build workflow
|
|
62
|
-
|
|
63
|
-
### Changed
|
|
64
|
-
- Clean up temporary CDK output files and artifacts
|
|
65
|
-
- Remove temporary log files
|
|
66
|
-
- Exclude CDK output directories from version control
|
|
67
|
-
|
|
68
|
-
### Security
|
|
69
|
-
- Fix security vulnerability in CDK synthesis process
|
|
70
|
-
|
|
71
|
-
## [0.1.0] - 2024-12-10
|
|
72
|
-
|
|
73
|
-
### Added
|
|
74
|
-
- Initial public release with core cost analysis functionality
|
|
75
|
-
- CONTRIBUTING.md with contribution guidelines
|
|
76
|
-
- SECURITY.md with security policy and vulnerability reporting
|
|
77
|
-
- GitHub issue templates for bug reports and feature requests
|
|
78
|
-
- Pull request template for standardized contributions
|
|
79
|
-
- Enhanced package metadata (homepage, bug tracker URLs)
|
|
80
|
-
- Support for multiple AWS resource types
|
|
81
|
-
- CloudFormation template parsing and comparison
|
|
82
|
-
- Cost estimation using AWS Pricing API
|
|
83
|
-
- CLI interface for local and CI/CD usage
|
|
84
|
-
- GitLab integration for merge request comments
|
|
85
|
-
- Configuration file support
|
|
86
|
-
- Threshold enforcement
|
|
87
|
-
- Multi-stack CDK application support
|
|
88
|
-
- Automatic CDK synthesis
|
|
89
|
-
- Pricing data caching
|
|
90
|
-
- Property-based testing for core components
|
|
91
|
-
|
|
92
|
-
### Supported Resources
|
|
93
|
-
- AWS::Lambda::Function
|
|
94
|
-
- AWS::S3::Bucket
|
|
95
|
-
- AWS::DynamoDB::Table
|
|
96
|
-
- AWS::RDS::DBInstance
|
|
97
|
-
- AWS::EC2::Instance
|
|
98
|
-
- AWS::ECS::Service
|
|
99
|
-
- AWS::ApiGateway::RestApi
|
|
100
|
-
- AWS::EC2::NatGateway
|
|
101
|
-
- AWS::ElasticLoadBalancingV2::LoadBalancer (ALB/NLB)
|
|
102
|
-
- AWS::CloudFront::Distribution
|
|
103
|
-
- AWS::ElastiCache::CacheCluster
|
|
104
|
-
- AWS::EC2::VPCEndpoint
|
|
105
|
-
|
|
106
|
-
[Unreleased]: https://github.com/buildinginthecloud/cdk-cost-analyzer/compare/v0.1.2...HEAD
|
|
107
|
-
[0.1.2]: https://github.com/buildinginthecloud/cdk-cost-analyzer/compare/v0.1.1...v0.1.2
|
|
108
|
-
[0.1.1]: https://github.com/buildinginthecloud/cdk-cost-analyzer/compare/v0.1.0...v0.1.1
|
|
109
|
-
[0.1.0]: https://github.com/buildinginthecloud/cdk-cost-analyzer/releases/tag/v0.1.0
|