cdk-cost-analyzer 0.1.18 → 0.1.19

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": 1770040481029
5
+ "timestamp": 1770240270476
6
6
  },
7
- "AmazonDynamoDB:US East (N. Virginia):group:DDB-ReadUnits|groupDescription:OnDemand ReadRequestUnits": {
7
+ "AmazonDynamoDB:US East (N. Virginia):group:DDB-ReadUnits|productFamily:Amazon DynamoDB PayPerRequest Throughput": {
8
8
  "price": 0.023,
9
- "timestamp": 1770040481036
9
+ "timestamp": 1770240270484
10
10
  },
11
- "AmazonDynamoDB:US East (N. Virginia):group:DDB-WriteUnits|groupDescription:OnDemand WriteRequestUnits": {
11
+ "AmazonDynamoDB:US East (N. Virginia):group:DDB-WriteUnits|productFamily:Amazon DynamoDB PayPerRequest Throughput": {
12
12
  "price": 0.023,
13
- "timestamp": 1770040481037
13
+ "timestamp": 1770240270484
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": 1770040481046
17
+ "timestamp": 1770240270494
18
18
  },
19
19
  "AWSLambda:US East (N. Virginia):group:AWS-Lambda-Requests": {
20
20
  "price": 0.023,
21
- "timestamp": 1770040481055
21
+ "timestamp": 1770240270499
22
22
  },
23
23
  "AWSLambda:US East (N. Virginia):group:AWS-Lambda-Duration": {
24
24
  "price": 0.023,
25
- "timestamp": 1770040481055
25
+ "timestamp": 1770240270499
26
26
  },
27
27
  "AmazonS3:EU (Frankfurt):storageClass:General Purpose|volumeType:Standard": {
28
28
  "price": 0.023,
29
- "timestamp": 1770040490319
29
+ "timestamp": 1770240279952
30
30
  },
31
31
  "AmazonS3:invalid-region-123:storageClass:General Purpose|volumeType:Standard": {
32
32
  "price": 0.023,
33
- "timestamp": 1770040490367
33
+ "timestamp": 1770240279996
34
34
  }
35
35
  }
36
36
  }
@@ -33,23 +33,26 @@ class DynamoDBCalculator {
33
33
  const { readRequests: assumedReadRequests, writeRequests: assumedWriteRequests } = this.getUsageAssumptions();
34
34
  // Normalize region for pricing queries
35
35
  const normalizedRegion = (0, RegionMapper_1.normalizeRegion)(region);
36
- const readCostPerMillion = await pricingClient.getPrice({
36
+ // Query pricing using productFamily filter for more accurate on-demand pricing
37
+ // Note: AWS Pricing API returns price per request unit (not per million)
38
+ // See: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand
39
+ const readCostPerUnit = await pricingClient.getPrice({
37
40
  serviceCode: 'AmazonDynamoDB',
38
41
  region: normalizedRegion,
39
42
  filters: [
43
+ { field: 'productFamily', value: 'Amazon DynamoDB PayPerRequest Throughput', type: 'TERM_MATCH' },
40
44
  { field: 'group', value: 'DDB-ReadUnits', type: 'TERM_MATCH' },
41
- { field: 'groupDescription', value: 'OnDemand ReadRequestUnits', type: 'TERM_MATCH' },
42
45
  ],
43
46
  });
44
- const writeCostPerMillion = await pricingClient.getPrice({
47
+ const writeCostPerUnit = await pricingClient.getPrice({
45
48
  serviceCode: 'AmazonDynamoDB',
46
49
  region: normalizedRegion,
47
50
  filters: [
51
+ { field: 'productFamily', value: 'Amazon DynamoDB PayPerRequest Throughput', type: 'TERM_MATCH' },
48
52
  { field: 'group', value: 'DDB-WriteUnits', type: 'TERM_MATCH' },
49
- { field: 'groupDescription', value: 'OnDemand WriteRequestUnits', type: 'TERM_MATCH' },
50
53
  ],
51
54
  });
52
- if (readCostPerMillion === null || writeCostPerMillion === null) {
55
+ if (readCostPerUnit === null || writeCostPerUnit === null) {
53
56
  return {
54
57
  amount: 0,
55
58
  currency: 'USD',
@@ -60,8 +63,9 @@ class DynamoDBCalculator {
60
63
  ],
61
64
  };
62
65
  }
63
- const readCost = (assumedReadRequests / 1_000_000) * readCostPerMillion;
64
- const writeCost = (assumedWriteRequests / 1_000_000) * writeCostPerMillion;
66
+ // Calculate total cost: requests × price per request unit
67
+ const readCost = assumedReadRequests * readCostPerUnit;
68
+ const writeCost = assumedWriteRequests * writeCostPerUnit;
65
69
  const monthlyCost = readCost + writeCost;
66
70
  return {
67
71
  amount: monthlyCost,
@@ -150,4 +154,4 @@ class DynamoDBCalculator {
150
154
  }
151
155
  }
152
156
  exports.DynamoDBCalculator = DynamoDBCalculator;
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1vREJDYWxjdWxhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ByaWNpbmcvY2FsY3VsYXRvcnMvRHluYW1vREJDYWxjdWxhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLGtEQUFrRDtBQUdsRCxNQUFhLGtCQUFrQjtJQUNyQixNQUFNLENBQXNCO0lBRXBDLFlBQVksTUFBMkI7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELFFBQVEsQ0FBQyxZQUFvQjtRQUMzQixPQUFPLFlBQVksS0FBSyxzQkFBc0IsQ0FBQztJQUNqRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FDakIsUUFBd0IsRUFDeEIsTUFBYyxFQUNkLGFBQTRCO1FBRTVCLE1BQU0sV0FBVyxHQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBc0IsSUFBSSxhQUFhLENBQUM7UUFDakYsTUFBTSx3QkFBd0IsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLHFCQUFxQixLQUFLLFNBQVMsQ0FBQztRQUV6Rix3RkFBd0Y7UUFDeEYsSUFBSSx3QkFBd0IsSUFBSSxXQUFXLEtBQUssYUFBYSxFQUFFLENBQUM7WUFDOUQsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN4RSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDckUsQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUI7UUFDekIsT0FBTztZQUNMLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxvQkFBb0IsSUFBSSxVQUFVO1lBQ3pGLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFFBQVEs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UUFBUSxHQUFHLFlBQVksR0FBRyxhQUFhLEdBQUcsZUFBZSxDQUFDO1lBQ2hFLE1BQU0sU0FBUyxHQUFHLGFBQWEsR0FBRyxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7WUFDbkUsTUFBTSxXQUFXLEdBQUcsUUFBUSxHQUFHLFNBQVMsQ0FBQztZQUV6QyxPQUFPO2dCQUNMLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixRQUFRLEVBQUUsS0FBSztnQkFDZixVQUFVLEVBQUUsTUFBTTtnQkFDbEIsV0FBVyxFQUFFO29CQUNYLEdBQUcsWUFBWSxrQ0FBa0M7b0JBQ2pELEdBQUcsYUFBYSxtQ0FBbUM7b0JBQ25ELFdBQVcsYUFBYSxtQ0FBbUM7b0JBQzNELDBCQUEwQjtvQkFDMUIsMkVBQTJFO2lCQUM1RTthQUNGLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsVUFBVSxFQUFFLFNBQVM7Z0JBQ3JCLFdBQVcsRUFBRTtvQkFDWCw0QkFBNEIsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNwRiwwQkFBMEI7aUJBQzNCO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBRUY7QUEvS0QsZ0RBK0tDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzb3VyY2VXaXRoSWQgfSBmcm9tICcuLi8uLi9kaWZmL3R5cGVzJztcbmltcG9ydCB7IFJlc291cmNlQ29zdENhbGN1bGF0b3IsIE1vbnRobHlDb3N0LCBQcmljaW5nQ2xpZW50IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgbm9ybWFsaXplUmVnaW9uIH0gZnJvbSAnLi4vUmVnaW9uTWFwcGVyJztcbmltcG9ydCB7IENvc3RBbmFseXplckNvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBEeW5hbW9EQkNhbGN1bGF0b3IgaW1wbGVtZW50cyBSZXNvdXJjZUNvc3RDYWxjdWxhdG9yIHtcbiAgcHJpdmF0ZSBjb25maWc/OiBDb3N0QW5hbHl6ZXJDb25maWc7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnPzogQ29zdEFuYWx5emVyQ29uZmlnKSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gIH1cblxuICBzdXBwb3J0cyhyZXNvdXJjZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiByZXNvdXJjZVR5cGUgPT09ICdBV1M6OkR5bmFtb0RCOjpUYWJsZSc7XG4gIH1cblxuICBhc3luYyBjYWxjdWxhdGVDb3N0KFxuICAgIHJlc291cmNlOiBSZXNvdXJjZVdpdGhJZCxcbiAgICByZWdpb246IHN0cmluZyxcbiAgICBwcmljaW5nQ2xpZW50OiBQcmljaW5nQ2xpZW50LFxuICApOiBQcm9taXNlPE1vbnRobHlDb3N0PiB7XG4gICAgY29uc3QgYmlsbGluZ01vZGUgPSAocmVzb3VyY2UucHJvcGVydGllcy5CaWxsaW5nTW9kZSBhcyBzdHJpbmcpIHx8ICdQUk9WSVNJT05FRCc7XG4gICAgY29uc3QgaGFzUHJvdmlzaW9uZWRUaHJvdWdocHV0ID0gcmVzb3VyY2UucHJvcGVydGllcy5Qcm92aXNpb25lZFRocm91Z2hwdXQgIT09IHVuZGVmaW5lZDtcblxuICAgIC8vIFBlciByZXF1aXJlbWVudCAxLjQ6IFdoZW4gUHJvdmlzaW9uZWRUaHJvdWdocHV0IGlzIGRlZmluZWQsIHRyZWF0IGFzIHByb3Zpc2lvbmVkIG1vZGVcbiAgICBpZiAoaGFzUHJvdmlzaW9uZWRUaHJvdWdocHV0IHx8IGJpbGxpbmdNb2RlID09PSAnUFJPVklTSU9ORUQnKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVQcm92aXNpb25lZENvc3QocmVzb3VyY2UsIHJlZ2lvbiwgcHJpY2luZ0NsaWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZU9uRGVtYW5kQ29zdChyZXNvdXJjZSwgcmVnaW9uLCBwcmljaW5nQ2xpZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFVzYWdlQXNzdW1wdGlvbnMoKTogeyByZWFkUmVxdWVzdHM6IG51bWJlcjsgd3JpdGVSZXF1ZXN0czogbnVtYmVyIH0ge1xuICAgIHJldHVybiB7XG4gICAgICByZWFkUmVxdWVzdHM6IHRoaXMuY29uZmlnPy51c2FnZUFzc3VtcHRpb25zPy5keW5hbW9kYj8ucmVhZFJlcXVlc3RzUGVyTW9udGggPz8gMTBfMDAwXzAwMCxcbiAgICAgIHdyaXRlUmVxdWVzdHM6IHRoaXMuY29uZmlnPy51c2FnZUFzc3VtcHRpb25zPy5keW5hbW9kYj8ud3JpdGVSZXF1ZXN0c1Blck1vbnRoID8/IDFfMDAwXzAwMCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjYWxjdWxhdGVPbkRlbWFuZENvc3QoXG4gICAgX3Jlc291cmNlOiBSZXNvdXJjZVdpdGhJZCxcbiAgICByZWdpb246IHN0cmluZyxcbiAgICBwcmljaW5nQ2xpZW50OiBQcmljaW5nQ2xpZW50LFxuICApOiBQcm9taXNlPE1vbnRobHlDb3N0PiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEdldCB1c2FnZSBhc3N1bXB0aW9ucyBmcm9tIGNvbmZpZyBvciB1c2UgZGVmYXVsdHNcbiAgICAgIGNvbnN0IHsgcmVhZFJlcXVlc3RzOiBhc3N1bWVkUmVhZFJlcXVlc3RzLCB3cml0ZVJlcXVlc3RzOiBhc3N1bWVkV3JpdGVSZXF1ZXN0cyB9ID0gdGhpcy5nZXRVc2FnZUFzc3VtcHRpb25zKCk7XG5cbiAgICAgIC8vIE5vcm1hbGl6ZSByZWdpb24gZm9yIHByaWNpbmcgcXVlcmllc1xuICAgICAgY29uc3Qgbm9ybWFsaXplZFJlZ2lvbiA9IG5vcm1hbGl6ZVJlZ2lvbihyZWdpb24pO1xuXG4gICAgICBjb25zdCByZWFkQ29zdFBlck1pbGxpb24gPSBhd2FpdCBwcmljaW5nQ2xpZW50LmdldFByaWNlKHtcbiAgICAgICAgc2VydmljZUNvZGU6ICdBbWF6b25EeW5hbW9EQicsXG4gICAgICAgIHJlZ2lvbjogbm9ybWFsaXplZFJlZ2lvbixcbiAgICAgICAgZmlsdGVyczogW1xuICAgICAgICAgIHsgZmllbGQ6ICdncm91cCcsIHZhbHVlOiAnRERCLVJlYWRVbml0cycsIHR5cGU6ICdURVJNX01BVENIJyB9LFxuICAgICAgICAgIHsgZmllbGQ6ICdncm91cERlc2NyaXB0aW9uJywgdmFsdWU6ICdPbkRlbWFuZCBSZWFkUmVxdWVzdFVuaXRzJywgdHlwZTogJ1RFUk1fTUFUQ0gnIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgd3JpdGVDb3N0UGVyTWlsbGlvbiA9IGF3YWl0IHByaWNpbmdDbGllbnQuZ2V0UHJpY2Uoe1xuICAgICAgICBzZXJ2aWNlQ29kZTogJ0FtYXpvbkR5bmFtb0RCJyxcbiAgICAgICAgcmVnaW9uOiBub3JtYWxpemVkUmVnaW9uLFxuICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgeyBmaWVsZDogJ2dyb3VwJywgdmFsdWU6ICdEREItV3JpdGVVbml0cycsIHR5cGU6ICdURVJNX01BVENIJyB9LFxuICAgICAgICAgIHsgZmllbGQ6ICdncm91cERlc2NyaXB0aW9uJywgdmFsdWU6ICdPbkRlbWFuZCBXcml0ZVJlcXVlc3RVbml0cycsIHR5cGU6ICdURVJNX01BVENIJyB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChyZWFkQ29zdFBlck1pbGxpb24gPT09IG51bGwgfHwgd3JpdGVDb3N0UGVyTWlsbGlvbiA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGFtb3VudDogMCxcbiAgICAgICAgICBjdXJyZW5jeTogJ1VTRCcsXG4gICAgICAgICAgY29uZmlkZW5jZTogJ3Vua25vd24nLFxuICAgICAgICAgIGFzc3VtcHRpb25zOiBbXG4gICAgICAgICAgICAnUHJpY2luZyBkYXRhIG5vdCBhdmFpbGFibGUgZm9yIER5bmFtb0RCIG9uLWRlbWFuZCBtb2RlJyxcbiAgICAgICAgICAgICdPbi1kZW1hbmQgYmlsbGluZyBtb2RlJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZWFkQ29zdCA9IChhc3N1bWVkUmVhZFJlcXVlc3RzIC8gMV8wMDBfMDAwKSAqIHJlYWRDb3N0UGVyTWlsbGlvbjtcbiAgICAgIGNvbnN0IHdyaXRlQ29zdCA9IChhc3N1bWVkV3JpdGVSZXF1ZXN0cyAvIDFfMDAwXzAwMCkgKiB3cml0ZUNvc3RQZXJNaWxsaW9uO1xuICAgICAgY29uc3QgbW9udGhseUNvc3QgPSByZWFkQ29zdCArIHdyaXRlQ29zdDtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYW1vdW50OiBtb250aGx5Q29zdCxcbiAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICBjb25maWRlbmNlOiAnbWVkaXVtJyxcbiAgICAgICAgYXNzdW1wdGlvbnM6IFtcbiAgICAgICAgICBgQXNzdW1lcyAke2Fzc3VtZWRSZWFkUmVxdWVzdHMudG9Mb2NhbGVTdHJpbmcoKX0gcmVhZCByZXF1ZXN0cyBwZXIgbW9udGhgLFxuICAgICAgICAgIGBBc3N1bWVzICR7YXNzdW1lZFdyaXRlUmVxdWVzdHMudG9Mb2NhbGVTdHJpbmcoKX0gd3JpdGUgcmVxdWVzdHMgcGVyIG1vbnRoYCxcbiAgICAgICAgICAnT24tZGVtYW5kIGJpbGxpbmcgbW9kZScsXG4gICAgICAgICAgJ0RvZXMgbm90IGluY2x1ZGUgc3RvcmFnZSBjb3N0cyBvciBvdGhlciBmZWF0dXJlcyAoc3RyZWFtcywgYmFja3VwcywgZXRjLiknLFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYW1vdW50OiAwLFxuICAgICAgICBjdXJyZW5jeTogJ1VTRCcsXG4gICAgICAgIGNvbmZpZGVuY2U6ICd1bmtub3duJyxcbiAgICAgICAgYXNzdW1wdGlvbnM6IFtcbiAgICAgICAgICBgRmFpbGVkIHRvIGZldGNoIHByaWNpbmc6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpfWAsXG4gICAgICAgICAgJ09uLWRlbWFuZCBiaWxsaW5nIG1vZGUnLFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNhbGN1bGF0ZVByb3Zpc2lvbmVkQ29zdChcbiAgICByZXNvdXJjZTogUmVzb3VyY2VXaXRoSWQsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgcHJpY2luZ0NsaWVudDogUHJpY2luZ0NsaWVudCxcbiAgKTogUHJvbWlzZTxNb250aGx5Q29zdD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwcm92aXNpb25lZFRocm91Z2hwdXQgPSByZXNvdXJjZS5wcm9wZXJ0aWVzLlByb3Zpc2lvbmVkVGhyb3VnaHB1dCBhcyBhbnk7XG4gICAgICBjb25zdCByZWFkQ2FwYWNpdHkgPSBwcm92aXNpb25lZFRocm91Z2hwdXQ/LlJlYWRDYXBhY2l0eVVuaXRzIHx8IDU7XG4gICAgICBjb25zdCB3cml0ZUNhcGFjaXR5ID0gcHJvdmlzaW9uZWRUaHJvdWdocHV0Py5Xcml0ZUNhcGFjaXR5VW5pdHMgfHwgNTtcblxuICAgICAgLy8gTm9ybWFsaXplIHJlZ2lvbiBmb3IgcHJpY2luZyBxdWVyaWVzXG4gICAgICBjb25zdCBub3JtYWxpemVkUmVnaW9uID0gbm9ybWFsaXplUmVnaW9uKHJlZ2lvbik7XG5cbiAgICAgIGNvbnN0IHJlYWRDb3N0UGVySG91ciA9IGF3YWl0IHByaWNpbmdDbGllbnQuZ2V0UHJpY2Uoe1xuICAgICAgICBzZXJ2aWNlQ29kZTogJ0FtYXpvbkR5bmFtb0RCJyxcbiAgICAgICAgcmVnaW9uOiBub3JtYWxpemVkUmVnaW9uLFxuICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgeyBmaWVsZDogJ3VzYWdldHlwZScsIHZhbHVlOiBgJHtyZWdpb259LVJlYWRDYXBhY2l0eVVuaXQtSHJzYCwgdHlwZTogJ1RFUk1fTUFUQ0gnIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgd3JpdGVDb3N0UGVySG91ciA9IGF3YWl0IHByaWNpbmdDbGllbnQuZ2V0UHJpY2Uoe1xuICAgICAgICBzZXJ2aWNlQ29kZTogJ0FtYXpvbkR5bmFtb0RCJyxcbiAgICAgICAgcmVnaW9uOiBub3JtYWxpemVkUmVnaW9uLFxuICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgeyBmaWVsZDogJ3VzYWdldHlwZScsIHZhbHVlOiBgJHtyZWdpb259LVdyaXRlQ2FwYWNpdHlVbml0LUhyc2AsIHR5cGU6ICdURVJNX01BVENIJyB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChyZWFkQ29zdFBlckhvdXIgPT09IG51bGwgfHwgd3JpdGVDb3N0UGVySG91ciA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGFtb3VudDogMCxcbiAgICAgICAgICBjdXJyZW5jeTogJ1VTRCcsXG4gICAgICAgICAgY29uZmlkZW5jZTogJ3Vua25vd24nLFxuICAgICAgICAgIGFzc3VtcHRpb25zOiBbXG4gICAgICAgICAgICAnUHJpY2luZyBkYXRhIG5vdCBhdmFpbGFibGUgZm9yIER5bmFtb0RCIHByb3Zpc2lvbmVkIG1vZGUnLFxuICAgICAgICAgICAgJ1Byb3Zpc2lvbmVkIGJpbGxpbmcgbW9kZScsXG4gICAgICAgICAgXSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaG91cnNQZXJNb250aCA9IDczMDtcbiAgICAgIGNvbnN0IHJlYWRDb3N0ID0gcmVhZENhcGFjaXR5ICogaG91cnNQZXJNb250aCAqIHJlYWRDb3N0UGVySG91cjtcbiAgICAgIGNvbnN0IHdyaXRlQ29zdCA9IHdyaXRlQ2FwYWNpdHkgKiBob3Vyc1Blck1vbnRoICogd3JpdGVDb3N0UGVySG91cjtcbiAgICAgIGNvbnN0IG1vbnRobHlDb3N0ID0gcmVhZENvc3QgKyB3cml0ZUNvc3Q7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFtb3VudDogbW9udGhseUNvc3QsXG4gICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgY29uZmlkZW5jZTogJ2hpZ2gnLFxuICAgICAgICBhc3N1bXB0aW9uczogW1xuICAgICAgICAgIGAke3JlYWRDYXBhY2l0eX0gcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSB1bml0c2AsXG4gICAgICAgICAgYCR7d3JpdGVDYXBhY2l0eX0gcHJvdmlzaW9uZWQgd3JpdGUgY2FwYWNpdHkgdW5pdHNgLFxuICAgICAgICAgIGBBc3N1bWVzICR7aG91cnNQZXJNb250aH0gaG91cnMgcGVyIG1vbnRoICgyNC83IG9wZXJhdGlvbilgLFxuICAgICAgICAgICdQcm92aXNpb25lZCBiaWxsaW5nIG1vZGUnLFxuICAgICAgICAgICdEb2VzIG5vdCBpbmNsdWRlIHN0b3JhZ2UgY29zdHMgb3Igb3RoZXIgZmVhdHVyZXMgKHN0cmVhbXMsIGJhY2t1cHMsIGV0Yy4pJyxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFtb3VudDogMCxcbiAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICBjb25maWRlbmNlOiAndW5rbm93bicsXG4gICAgICAgIGFzc3VtcHRpb25zOiBbXG4gICAgICAgICAgYEZhaWxlZCB0byBmZXRjaCBwcmljaW5nOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gLFxuICAgICAgICAgICdQcm92aXNpb25lZCBiaWxsaW5nIG1vZGUnLFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxufVxuIl19
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1vREJDYWxjdWxhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ByaWNpbmcvY2FsY3VsYXRvcnMvRHluYW1vREJDYWxjdWxhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLGtEQUFrRDtBQUdsRCxNQUFhLGtCQUFrQjtJQUNyQixNQUFNLENBQXNCO0lBRXBDLFlBQVksTUFBMkI7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELFFBQVEsQ0FBQyxZQUFvQjtRQUMzQixPQUFPLFlBQVksS0FBSyxzQkFBc0IsQ0FBQztJQUNqRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FDakIsUUFBd0IsRUFDeEIsTUFBYyxFQUNkLGFBQTRCO1FBRTVCLE1BQU0sV0FBVyxHQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBc0IsSUFBSSxhQUFhLENBQUM7UUFDakYsTUFBTSx3QkFBd0IsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLHFCQUFxQixLQUFLLFNBQVMsQ0FBQztRQUV6Rix3RkFBd0Y7UUFDeEYsSUFBSSx3QkFBd0IsSUFBSSxXQUFXLEtBQUssYUFBYSxFQUFFLENBQUM7WUFDOUQsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN4RSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDckUsQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUI7UUFDekIsT0FBTztZQUNMLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxvQkFBb0IsSUFBSSxVQUFVO1lBQ3pGLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxxQkFBcUIsSUFBSSxTQUFTO1NBQzNGLENBQUM7SUFDSixDQUFDO0lBRU8sS0FBSyxDQUFDLHFCQUFxQixDQUNqQyxTQUF5QixFQUN6QixNQUFjLEVBQ2QsYUFBNEI7UUFFNUIsSUFBSSxDQUFDO1lBQ0gsb0RBQW9EO1lBQ3BELE1BQU0sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFFOUcsdUNBQXVDO1lBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSw4QkFBZSxFQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRWpELCtFQUErRTtZQUMvRSx5RUFBeUU7WUFDekUsa0lBQWtJO1lBQ2xJLE1BQU0sZUFBZSxHQUFHLE1BQU0sYUFBYSxDQUFDLFFBQVEsQ0FBQztnQkFDbkQsV0FBVyxFQUFFLGdCQUFnQjtnQkFDN0IsTUFBTSxFQUFFLGdCQUFnQjtnQkFDeEIsT0FBTyxFQUFFO29CQUNQLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsMENBQTBDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtvQkFDakcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtpQkFDL0Q7YUFDRixDQUFDLENBQUM7WUFFSCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sYUFBYSxDQUFDLFFBQVEsQ0FBQztnQkFDcEQsV0FBVyxFQUFFLGdCQUFnQjtnQkFDN0IsTUFBTSxFQUFFLGdCQUFnQjtnQkFDeEIsT0FBTyxFQUFFO29CQUNQLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsMENBQTBDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtvQkFDakcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO2lCQUNoRTthQUNGLENBQUMsQ0FBQztZQUVILElBQUksZUFBZSxLQUFLLElBQUksSUFBSSxnQkFBZ0IsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDMUQsT0FBTztvQkFDTCxNQUFNLEVBQUUsQ0FBQztvQkFDVCxRQUFRLEVBQUUsS0FBSztvQkFDZixVQUFVLEVBQUUsU0FBUztvQkFDckIsV0FBVyxFQUFFO3dCQUNYLHdEQUF3RDt3QkFDeEQsd0JBQXdCO3FCQUN6QjtpQkFDRixDQUFDO1lBQ0osQ0FBQztZQUVELDBEQUEwRDtZQUMxRCxNQUFNLFFBQVEsR0FBRyxtQkFBbUIsR0FBRyxlQUFlLENBQUM7WUFDdkQsTUFBTSxTQUFTLEdBQUcsb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUM7WUFDMUQsTUFBTSxXQUFXLEdBQUcsUUFBUSxHQUFHLFNBQVMsQ0FBQztZQUV6QyxPQUFPO2dCQUNMLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixRQUFRLEVBQUUsS0FBSztnQkFDZixVQUFVLEVBQUUsUUFBUTtnQkFDcEIsV0FBVyxFQUFFO29CQUNYLFdBQVcsbUJBQW1CLENBQUMsY0FBYyxFQUFFLDBCQUEwQjtvQkFDekUsV0FBVyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsMkJBQTJCO29CQUMzRSx3QkFBd0I7b0JBQ3hCLDJFQUEyRTtpQkFDNUU7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPO2dCQUNMLE1BQU0sRUFBRSxDQUFDO2dCQUNULFFBQVEsRUFBRSxLQUFLO2dCQUNmLFVBQVUsRUFBRSxTQUFTO2dCQUNyQixXQUFXLEVBQUU7b0JBQ1gsNEJBQTRCLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDcEYsd0JBQXdCO2lCQUN6QjthQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyx3QkFBd0IsQ0FDcEMsUUFBd0IsRUFDeEIsTUFBYyxFQUNkLGFBQTRCO1FBRTVCLElBQUksQ0FBQztZQUNILE1BQU0scUJBQXFCLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxxQkFBNEIsQ0FBQztZQUMvRSxNQUFNLFlBQVksR0FBRyxxQkFBcUIsRUFBRSxpQkFBaUIsSUFBSSxDQUFDLENBQUM7WUFDbkUsTUFBTSxhQUFhLEdBQUcscUJBQXFCLEVBQUUsa0JBQWtCLElBQUksQ0FBQyxDQUFDO1lBRXJFLHVDQUF1QztZQUN2QyxNQUFNLGdCQUFnQixHQUFHLElBQUEsOEJBQWUsRUFBQyxNQUFNLENBQUMsQ0FBQztZQUVqRCxNQUFNLGVBQWUsR0FBRyxNQUFNLGFBQWEsQ0FBQyxRQUFRLENBQUM7Z0JBQ25ELFdBQVcsRUFBRSxnQkFBZ0I7Z0JBQzdCLE1BQU0sRUFBRSxnQkFBZ0I7Z0JBQ3hCLE9BQU8sRUFBRTtvQkFDUCxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO2lCQUNwRjthQUNGLENBQUMsQ0FBQztZQUVILE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxhQUFhLENBQUMsUUFBUSxDQUFDO2dCQUNwRCxXQUFXLEVBQUUsZ0JBQWdCO2dCQUM3QixNQUFNLEVBQUUsZ0JBQWdCO2dCQUN4QixPQUFPLEVBQUU7b0JBQ1AsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sd0JBQXdCLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtpQkFDckY7YUFDRixDQUFDLENBQUM7WUFFSCxJQUFJLGVBQWUsS0FBSyxJQUFJLElBQUksZ0JBQWdCLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQzFELE9BQU87b0JBQ0wsTUFBTSxFQUFFLENBQUM7b0JBQ1QsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsVUFBVSxFQUFFLFNBQVM7b0JBQ3JCLFdBQVcsRUFBRTt3QkFDWCwwREFBMEQ7d0JBQzFELDBCQUEwQjtxQkFDM0I7aUJBQ0YsQ0FBQztZQUNKLENBQUM7WUFFRCxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUM7WUFDMUIsTUFBTSxRQUFRLEdBQUcsWUFBWSxHQUFHLGFBQWEsR0FBRyxlQUFlLENBQUM7WUFDaEUsTUFBTSxTQUFTLEdBQUcsYUFBYSxHQUFHLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQztZQUNuRSxNQUFNLFdBQVcsR0FBRyxRQUFRLEdBQUcsU0FBUyxDQUFDO1lBRXpDLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFVBQVUsRUFBRSxNQUFNO2dCQUNsQixXQUFXLEVBQUU7b0JBQ1gsR0FBRyxZQUFZLGtDQUFrQztvQkFDakQsR0FBRyxhQUFhLG1DQUFtQztvQkFDbkQsV0FBVyxhQUFhLG1DQUFtQztvQkFDM0QsMEJBQTBCO29CQUMxQiwyRUFBMkU7aUJBQzVFO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTztnQkFDTCxNQUFNLEVBQUUsQ0FBQztnQkFDVCxRQUFRLEVBQUUsS0FBSztnQkFDZixVQUFVLEVBQUUsU0FBUztnQkFDckIsV0FBVyxFQUFFO29CQUNYLDRCQUE0QixLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3BGLDBCQUEwQjtpQkFDM0I7YUFDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7Q0FFRjtBQW5MRCxnREFtTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNvdXJjZVdpdGhJZCB9IGZyb20gJy4uLy4uL2RpZmYvdHlwZXMnO1xuaW1wb3J0IHsgUmVzb3VyY2VDb3N0Q2FsY3VsYXRvciwgTW9udGhseUNvc3QsIFByaWNpbmdDbGllbnQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBub3JtYWxpemVSZWdpb24gfSBmcm9tICcuLi9SZWdpb25NYXBwZXInO1xuaW1wb3J0IHsgQ29zdEFuYWx5emVyQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIER5bmFtb0RCQ2FsY3VsYXRvciBpbXBsZW1lbnRzIFJlc291cmNlQ29zdENhbGN1bGF0b3Ige1xuICBwcml2YXRlIGNvbmZpZz86IENvc3RBbmFseXplckNvbmZpZztcblxuICBjb25zdHJ1Y3Rvcihjb25maWc/OiBDb3N0QW5hbHl6ZXJDb25maWcpIHtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgfVxuXG4gIHN1cHBvcnRzKHJlc291cmNlVHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJlc291cmNlVHlwZSA9PT0gJ0FXUzo6RHluYW1vREI6OlRhYmxlJztcbiAgfVxuXG4gIGFzeW5jIGNhbGN1bGF0ZUNvc3QoXG4gICAgcmVzb3VyY2U6IFJlc291cmNlV2l0aElkLFxuICAgIHJlZ2lvbjogc3RyaW5nLFxuICAgIHByaWNpbmdDbGllbnQ6IFByaWNpbmdDbGllbnQsXG4gICk6IFByb21pc2U8TW9udGhseUNvc3Q+IHtcbiAgICBjb25zdCBiaWxsaW5nTW9kZSA9IChyZXNvdXJjZS5wcm9wZXJ0aWVzLkJpbGxpbmdNb2RlIGFzIHN0cmluZykgfHwgJ1BST1ZJU0lPTkVEJztcbiAgICBjb25zdCBoYXNQcm92aXNpb25lZFRocm91Z2hwdXQgPSByZXNvdXJjZS5wcm9wZXJ0aWVzLlByb3Zpc2lvbmVkVGhyb3VnaHB1dCAhPT0gdW5kZWZpbmVkO1xuXG4gICAgLy8gUGVyIHJlcXVpcmVtZW50IDEuNDogV2hlbiBQcm92aXNpb25lZFRocm91Z2hwdXQgaXMgZGVmaW5lZCwgdHJlYXQgYXMgcHJvdmlzaW9uZWQgbW9kZVxuICAgIGlmIChoYXNQcm92aXNpb25lZFRocm91Z2hwdXQgfHwgYmlsbGluZ01vZGUgPT09ICdQUk9WSVNJT05FRCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZVByb3Zpc2lvbmVkQ29zdChyZXNvdXJjZSwgcmVnaW9uLCBwcmljaW5nQ2xpZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlT25EZW1hbmRDb3N0KHJlc291cmNlLCByZWdpb24sIHByaWNpbmdDbGllbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0VXNhZ2VBc3N1bXB0aW9ucygpOiB7IHJlYWRSZXF1ZXN0czogbnVtYmVyOyB3cml0ZVJlcXVlc3RzOiBudW1iZXIgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlYWRSZXF1ZXN0czogdGhpcy5jb25maWc/LnVzYWdlQXNzdW1wdGlvbnM/LmR5bmFtb2RiPy5yZWFkUmVxdWVzdHNQZXJNb250aCA/PyAxMF8wMDBfMDAwLFxuICAgICAgd3JpdGVSZXF1ZXN0czogdGhpcy5jb25maWc/LnVzYWdlQXNzdW1wdGlvbnM/LmR5bmFtb2RiPy53cml0ZVJlcXVlc3RzUGVyTW9udGggPz8gMV8wMDBfMDAwLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNhbGN1bGF0ZU9uRGVtYW5kQ29zdChcbiAgICBfcmVzb3VyY2U6IFJlc291cmNlV2l0aElkLFxuICAgIHJlZ2lvbjogc3RyaW5nLFxuICAgIHByaWNpbmdDbGllbnQ6IFByaWNpbmdDbGllbnQsXG4gICk6IFByb21pc2U8TW9udGhseUNvc3Q+IHtcbiAgICB0cnkge1xuICAgICAgLy8gR2V0IHVzYWdlIGFzc3VtcHRpb25zIGZyb20gY29uZmlnIG9yIHVzZSBkZWZhdWx0c1xuICAgICAgY29uc3QgeyByZWFkUmVxdWVzdHM6IGFzc3VtZWRSZWFkUmVxdWVzdHMsIHdyaXRlUmVxdWVzdHM6IGFzc3VtZWRXcml0ZVJlcXVlc3RzIH0gPSB0aGlzLmdldFVzYWdlQXNzdW1wdGlvbnMoKTtcblxuICAgICAgLy8gTm9ybWFsaXplIHJlZ2lvbiBmb3IgcHJpY2luZyBxdWVyaWVzXG4gICAgICBjb25zdCBub3JtYWxpemVkUmVnaW9uID0gbm9ybWFsaXplUmVnaW9uKHJlZ2lvbik7XG5cbiAgICAgIC8vIFF1ZXJ5IHByaWNpbmcgdXNpbmcgcHJvZHVjdEZhbWlseSBmaWx0ZXIgZm9yIG1vcmUgYWNjdXJhdGUgb24tZGVtYW5kIHByaWNpbmdcbiAgICAgIC8vIE5vdGU6IEFXUyBQcmljaW5nIEFQSSByZXR1cm5zIHByaWNlIHBlciByZXF1ZXN0IHVuaXQgKG5vdCBwZXIgbWlsbGlvbilcbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9Ib3dJdFdvcmtzLlJlYWRXcml0ZUNhcGFjaXR5TW9kZS5odG1sI0hvd0l0V29ya3MuT25EZW1hbmRcbiAgICAgIGNvbnN0IHJlYWRDb3N0UGVyVW5pdCA9IGF3YWl0IHByaWNpbmdDbGllbnQuZ2V0UHJpY2Uoe1xuICAgICAgICBzZXJ2aWNlQ29kZTogJ0FtYXpvbkR5bmFtb0RCJyxcbiAgICAgICAgcmVnaW9uOiBub3JtYWxpemVkUmVnaW9uLFxuICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgeyBmaWVsZDogJ3Byb2R1Y3RGYW1pbHknLCB2YWx1ZTogJ0FtYXpvbiBEeW5hbW9EQiBQYXlQZXJSZXF1ZXN0IFRocm91Z2hwdXQnLCB0eXBlOiAnVEVSTV9NQVRDSCcgfSxcbiAgICAgICAgICB7IGZpZWxkOiAnZ3JvdXAnLCB2YWx1ZTogJ0REQi1SZWFkVW5pdHMnLCB0eXBlOiAnVEVSTV9NQVRDSCcgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCB3cml0ZUNvc3RQZXJVbml0ID0gYXdhaXQgcHJpY2luZ0NsaWVudC5nZXRQcmljZSh7XG4gICAgICAgIHNlcnZpY2VDb2RlOiAnQW1hem9uRHluYW1vREInLFxuICAgICAgICByZWdpb246IG5vcm1hbGl6ZWRSZWdpb24sXG4gICAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAgICB7IGZpZWxkOiAncHJvZHVjdEZhbWlseScsIHZhbHVlOiAnQW1hem9uIER5bmFtb0RCIFBheVBlclJlcXVlc3QgVGhyb3VnaHB1dCcsIHR5cGU6ICdURVJNX01BVENIJyB9LFxuICAgICAgICAgIHsgZmllbGQ6ICdncm91cCcsIHZhbHVlOiAnRERCLVdyaXRlVW5pdHMnLCB0eXBlOiAnVEVSTV9NQVRDSCcgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVhZENvc3RQZXJVbml0ID09PSBudWxsIHx8IHdyaXRlQ29zdFBlclVuaXQgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhbW91bnQ6IDAsXG4gICAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICAgIGNvbmZpZGVuY2U6ICd1bmtub3duJyxcbiAgICAgICAgICBhc3N1bXB0aW9uczogW1xuICAgICAgICAgICAgJ1ByaWNpbmcgZGF0YSBub3QgYXZhaWxhYmxlIGZvciBEeW5hbW9EQiBvbi1kZW1hbmQgbW9kZScsXG4gICAgICAgICAgICAnT24tZGVtYW5kIGJpbGxpbmcgbW9kZScsXG4gICAgICAgICAgXSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2FsY3VsYXRlIHRvdGFsIGNvc3Q6IHJlcXVlc3RzIMOXIHByaWNlIHBlciByZXF1ZXN0IHVuaXRcbiAgICAgIGNvbnN0IHJlYWRDb3N0ID0gYXNzdW1lZFJlYWRSZXF1ZXN0cyAqIHJlYWRDb3N0UGVyVW5pdDtcbiAgICAgIGNvbnN0IHdyaXRlQ29zdCA9IGFzc3VtZWRXcml0ZVJlcXVlc3RzICogd3JpdGVDb3N0UGVyVW5pdDtcbiAgICAgIGNvbnN0IG1vbnRobHlDb3N0ID0gcmVhZENvc3QgKyB3cml0ZUNvc3Q7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFtb3VudDogbW9udGhseUNvc3QsXG4gICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgY29uZmlkZW5jZTogJ21lZGl1bScsXG4gICAgICAgIGFzc3VtcHRpb25zOiBbXG4gICAgICAgICAgYEFzc3VtZXMgJHthc3N1bWVkUmVhZFJlcXVlc3RzLnRvTG9jYWxlU3RyaW5nKCl9IHJlYWQgcmVxdWVzdHMgcGVyIG1vbnRoYCxcbiAgICAgICAgICBgQXNzdW1lcyAke2Fzc3VtZWRXcml0ZVJlcXVlc3RzLnRvTG9jYWxlU3RyaW5nKCl9IHdyaXRlIHJlcXVlc3RzIHBlciBtb250aGAsXG4gICAgICAgICAgJ09uLWRlbWFuZCBiaWxsaW5nIG1vZGUnLFxuICAgICAgICAgICdEb2VzIG5vdCBpbmNsdWRlIHN0b3JhZ2UgY29zdHMgb3Igb3RoZXIgZmVhdHVyZXMgKHN0cmVhbXMsIGJhY2t1cHMsIGV0Yy4pJyxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFtb3VudDogMCxcbiAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICBjb25maWRlbmNlOiAndW5rbm93bicsXG4gICAgICAgIGFzc3VtcHRpb25zOiBbXG4gICAgICAgICAgYEZhaWxlZCB0byBmZXRjaCBwcmljaW5nOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gLFxuICAgICAgICAgICdPbi1kZW1hbmQgYmlsbGluZyBtb2RlJyxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjYWxjdWxhdGVQcm92aXNpb25lZENvc3QoXG4gICAgcmVzb3VyY2U6IFJlc291cmNlV2l0aElkLFxuICAgIHJlZ2lvbjogc3RyaW5nLFxuICAgIHByaWNpbmdDbGllbnQ6IFByaWNpbmdDbGllbnQsXG4gICk6IFByb21pc2U8TW9udGhseUNvc3Q+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcHJvdmlzaW9uZWRUaHJvdWdocHV0ID0gcmVzb3VyY2UucHJvcGVydGllcy5Qcm92aXNpb25lZFRocm91Z2hwdXQgYXMgYW55O1xuICAgICAgY29uc3QgcmVhZENhcGFjaXR5ID0gcHJvdmlzaW9uZWRUaHJvdWdocHV0Py5SZWFkQ2FwYWNpdHlVbml0cyB8fCA1O1xuICAgICAgY29uc3Qgd3JpdGVDYXBhY2l0eSA9IHByb3Zpc2lvbmVkVGhyb3VnaHB1dD8uV3JpdGVDYXBhY2l0eVVuaXRzIHx8IDU7XG5cbiAgICAgIC8vIE5vcm1hbGl6ZSByZWdpb24gZm9yIHByaWNpbmcgcXVlcmllc1xuICAgICAgY29uc3Qgbm9ybWFsaXplZFJlZ2lvbiA9IG5vcm1hbGl6ZVJlZ2lvbihyZWdpb24pO1xuXG4gICAgICBjb25zdCByZWFkQ29zdFBlckhvdXIgPSBhd2FpdCBwcmljaW5nQ2xpZW50LmdldFByaWNlKHtcbiAgICAgICAgc2VydmljZUNvZGU6ICdBbWF6b25EeW5hbW9EQicsXG4gICAgICAgIHJlZ2lvbjogbm9ybWFsaXplZFJlZ2lvbixcbiAgICAgICAgZmlsdGVyczogW1xuICAgICAgICAgIHsgZmllbGQ6ICd1c2FnZXR5cGUnLCB2YWx1ZTogYCR7cmVnaW9ufS1SZWFkQ2FwYWNpdHlVbml0LUhyc2AsIHR5cGU6ICdURVJNX01BVENIJyB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHdyaXRlQ29zdFBlckhvdXIgPSBhd2FpdCBwcmljaW5nQ2xpZW50LmdldFByaWNlKHtcbiAgICAgICAgc2VydmljZUNvZGU6ICdBbWF6b25EeW5hbW9EQicsXG4gICAgICAgIHJlZ2lvbjogbm9ybWFsaXplZFJlZ2lvbixcbiAgICAgICAgZmlsdGVyczogW1xuICAgICAgICAgIHsgZmllbGQ6ICd1c2FnZXR5cGUnLCB2YWx1ZTogYCR7cmVnaW9ufS1Xcml0ZUNhcGFjaXR5VW5pdC1IcnNgLCB0eXBlOiAnVEVSTV9NQVRDSCcgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVhZENvc3RQZXJIb3VyID09PSBudWxsIHx8IHdyaXRlQ29zdFBlckhvdXIgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhbW91bnQ6IDAsXG4gICAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICAgIGNvbmZpZGVuY2U6ICd1bmtub3duJyxcbiAgICAgICAgICBhc3N1bXB0aW9uczogW1xuICAgICAgICAgICAgJ1ByaWNpbmcgZGF0YSBub3QgYXZhaWxhYmxlIGZvciBEeW5hbW9EQiBwcm92aXNpb25lZCBtb2RlJyxcbiAgICAgICAgICAgICdQcm92aXNpb25lZCBiaWxsaW5nIG1vZGUnLFxuICAgICAgICAgIF0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhvdXJzUGVyTW9udGggPSA3MzA7XG4gICAgICBjb25zdCByZWFkQ29zdCA9IHJlYWRDYXBhY2l0eSAqIGhvdXJzUGVyTW9udGggKiByZWFkQ29zdFBlckhvdXI7XG4gICAgICBjb25zdCB3cml0ZUNvc3QgPSB3cml0ZUNhcGFjaXR5ICogaG91cnNQZXJNb250aCAqIHdyaXRlQ29zdFBlckhvdXI7XG4gICAgICBjb25zdCBtb250aGx5Q29zdCA9IHJlYWRDb3N0ICsgd3JpdGVDb3N0O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbW91bnQ6IG1vbnRobHlDb3N0LFxuICAgICAgICBjdXJyZW5jeTogJ1VTRCcsXG4gICAgICAgIGNvbmZpZGVuY2U6ICdoaWdoJyxcbiAgICAgICAgYXNzdW1wdGlvbnM6IFtcbiAgICAgICAgICBgJHtyZWFkQ2FwYWNpdHl9IHByb3Zpc2lvbmVkIHJlYWQgY2FwYWNpdHkgdW5pdHNgLFxuICAgICAgICAgIGAke3dyaXRlQ2FwYWNpdHl9IHByb3Zpc2lvbmVkIHdyaXRlIGNhcGFjaXR5IHVuaXRzYCxcbiAgICAgICAgICBgQXNzdW1lcyAke2hvdXJzUGVyTW9udGh9IGhvdXJzIHBlciBtb250aCAoMjQvNyBvcGVyYXRpb24pYCxcbiAgICAgICAgICAnUHJvdmlzaW9uZWQgYmlsbGluZyBtb2RlJyxcbiAgICAgICAgICAnRG9lcyBub3QgaW5jbHVkZSBzdG9yYWdlIGNvc3RzIG9yIG90aGVyIGZlYXR1cmVzIChzdHJlYW1zLCBiYWNrdXBzLCBldGMuKScsXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhbW91bnQ6IDAsXG4gICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgY29uZmlkZW5jZTogJ3Vua25vd24nLFxuICAgICAgICBhc3N1bXB0aW9uczogW1xuICAgICAgICAgIGBGYWlsZWQgdG8gZmV0Y2ggcHJpY2luZzogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YCxcbiAgICAgICAgICAnUHJvdmlzaW9uZWQgYmlsbGluZyBtb2RlJyxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -1 +1 @@
1
- v0.1.18
1
+ v0.1.19
package/package.json CHANGED
@@ -82,7 +82,7 @@
82
82
  "publishConfig": {
83
83
  "access": "public"
84
84
  },
85
- "version": "0.1.18",
85
+ "version": "0.1.19",
86
86
  "bugs": {
87
87
  "url": "https://github.com/buildinginthecloud/cdk-cost-analyzer/issues"
88
88
  },