@fjall/components-infrastructure 0.88.3 → 0.89.2

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.
Files changed (152) hide show
  1. package/LICENSE +21 -0
  2. package/dist/lib/app.d.ts +33 -10
  3. package/dist/lib/app.js +79 -36
  4. package/dist/lib/aspects/index.d.ts +1 -0
  5. package/dist/lib/aspects/index.js +6 -0
  6. package/dist/lib/config/aws/accountAuditRole.d.ts +20 -0
  7. package/dist/lib/config/aws/accountAuditRole.js +38 -0
  8. package/dist/lib/config/aws/accountMonitoringRole.d.ts +22 -0
  9. package/dist/lib/config/aws/accountMonitoringRole.js +133 -0
  10. package/dist/lib/config/aws/cloudTrail.d.ts +0 -3
  11. package/dist/lib/config/aws/cloudTrail.js +2 -2
  12. package/dist/lib/config/aws/disasterRecovery.js +53 -20
  13. package/dist/lib/config/aws/ecrDefaultImage.js +4 -3
  14. package/dist/lib/config/aws/index.d.ts +4 -0
  15. package/dist/lib/config/aws/index.js +5 -1
  16. package/dist/lib/config/aws/oidcConnector.d.ts +8 -0
  17. package/dist/lib/config/aws/oidcConnector.js +46 -0
  18. package/dist/lib/config/aws/platform.d.ts +2 -0
  19. package/dist/lib/config/aws/platform.js +6 -0
  20. package/dist/lib/config/index.d.ts +2 -0
  21. package/dist/lib/config/index.js +21 -0
  22. package/dist/lib/patterns/aws/account.js +22 -10
  23. package/dist/lib/patterns/aws/cdn.d.ts +19 -40
  24. package/dist/lib/patterns/aws/cdn.js +21 -17
  25. package/dist/lib/patterns/aws/compute.d.ts +9 -720
  26. package/dist/lib/patterns/aws/compute.js +27 -432
  27. package/dist/lib/patterns/aws/computeEc2.d.ts +67 -0
  28. package/dist/lib/patterns/aws/computeEc2.js +46 -0
  29. package/dist/lib/patterns/aws/computeEcs.d.ts +446 -0
  30. package/dist/lib/patterns/aws/computeEcs.js +246 -0
  31. package/dist/lib/patterns/aws/computeLambda.d.ts +220 -0
  32. package/dist/lib/patterns/aws/computeLambda.js +147 -0
  33. package/dist/lib/patterns/aws/database.d.ts +7 -87
  34. package/dist/lib/patterns/aws/database.js +15 -38
  35. package/dist/lib/patterns/aws/domainDelegation.d.ts +8 -0
  36. package/dist/lib/patterns/aws/domainDelegation.js +54 -0
  37. package/dist/lib/patterns/aws/domainFactory.d.ts +8 -0
  38. package/dist/lib/patterns/aws/domainFactory.js +23 -0
  39. package/dist/lib/patterns/aws/index.d.ts +4 -1
  40. package/dist/lib/patterns/aws/index.js +6 -2
  41. package/dist/lib/patterns/aws/interfaces/cdn.d.ts +26 -0
  42. package/dist/lib/patterns/aws/interfaces/cdn.js +14 -0
  43. package/dist/lib/patterns/aws/interfaces/connector.d.ts +4 -181
  44. package/dist/lib/patterns/aws/interfaces/connector.js +16 -113
  45. package/dist/lib/patterns/aws/interfaces/domain.d.ts +2 -0
  46. package/dist/lib/patterns/aws/interfaces/domain.js +6 -0
  47. package/dist/lib/patterns/aws/interfaces/index.d.ts +2 -0
  48. package/dist/lib/patterns/aws/interfaces/index.js +5 -2
  49. package/dist/lib/patterns/aws/interfaces/pattern.d.ts +9 -6
  50. package/dist/lib/patterns/aws/interfaces/pattern.js +1 -1
  51. package/dist/lib/patterns/aws/network.js +6 -9
  52. package/dist/lib/patterns/aws/organisation.d.ts +4 -2
  53. package/dist/lib/patterns/aws/organisation.js +21 -8
  54. package/dist/lib/patterns/aws/payload.js +21 -12
  55. package/dist/lib/patterns/aws/storage.d.ts +3 -2
  56. package/dist/lib/patterns/aws/storage.js +1 -1
  57. package/dist/lib/resources/aws/audit/auditRole.js +4 -4
  58. package/dist/lib/resources/aws/audit/index.d.ts +1 -0
  59. package/dist/lib/resources/aws/audit/index.js +6 -0
  60. package/dist/lib/resources/aws/backup/backupPlan.js +3 -2
  61. package/dist/lib/resources/aws/backup/backupVault.js +5 -3
  62. package/dist/lib/resources/aws/base/awsStack.d.ts +4 -2
  63. package/dist/lib/resources/aws/base/awsStack.js +8 -2
  64. package/dist/lib/resources/aws/cdn/cloudFront.d.ts +14 -0
  65. package/dist/lib/resources/aws/cdn/cloudFront.js +52 -18
  66. package/dist/lib/resources/aws/compute/ec2.js +18 -22
  67. package/dist/lib/resources/aws/compute/ecs.d.ts +23 -10
  68. package/dist/lib/resources/aws/compute/ecs.js +121 -64
  69. package/dist/lib/resources/aws/compute/index.d.ts +1 -0
  70. package/dist/lib/resources/aws/compute/index.js +2 -1
  71. package/dist/lib/resources/aws/compute/lambda.d.ts +0 -2
  72. package/dist/lib/resources/aws/compute/lambda.js +12 -27
  73. package/dist/lib/resources/aws/database/dynamodb.js +3 -13
  74. package/dist/lib/resources/aws/database/index.d.ts +8 -2
  75. package/dist/lib/resources/aws/database/index.js +19 -3
  76. package/dist/lib/resources/aws/database/rdsAurora.d.ts +2 -3
  77. package/dist/lib/resources/aws/database/rdsAurora.js +32 -68
  78. package/dist/lib/resources/aws/database/rdsAuroraGlobal.d.ts +6 -6
  79. package/dist/lib/resources/aws/database/rdsAuroraGlobal.js +25 -29
  80. package/dist/lib/resources/aws/database/rdsDefaults.d.ts +11 -0
  81. package/dist/lib/resources/aws/database/rdsDefaults.js +15 -0
  82. package/dist/lib/resources/aws/database/rdsHelpers.d.ts +39 -0
  83. package/dist/lib/resources/aws/database/rdsHelpers.js +75 -0
  84. package/dist/lib/resources/aws/database/rdsInstance.d.ts +7 -8
  85. package/dist/lib/resources/aws/database/rdsInstance.js +40 -84
  86. package/dist/lib/resources/aws/database/rdsProxyOutput.d.ts +7 -0
  87. package/dist/lib/resources/aws/database/rdsProxyOutput.js +18 -0
  88. package/dist/lib/resources/aws/iam/index.d.ts +0 -1
  89. package/dist/lib/resources/aws/iam/index.js +1 -2
  90. package/dist/lib/resources/aws/index.d.ts +0 -1
  91. package/dist/lib/resources/aws/index.js +1 -2
  92. package/dist/lib/resources/aws/logging/cloudTrail.js +13 -3
  93. package/dist/lib/resources/aws/logging/index.d.ts +2 -0
  94. package/dist/lib/resources/aws/logging/index.js +19 -0
  95. package/dist/lib/resources/aws/messaging/index.d.ts +3 -2
  96. package/dist/lib/resources/aws/messaging/index.js +4 -3
  97. package/dist/lib/resources/aws/messaging/sqs.js +14 -11
  98. package/dist/lib/resources/aws/messaging/utils.d.ts +1 -2
  99. package/dist/lib/resources/aws/messaging/utils.js +3 -4
  100. package/dist/lib/resources/aws/monitoring/index.d.ts +0 -1
  101. package/dist/lib/resources/aws/monitoring/index.js +4 -17
  102. package/dist/lib/resources/aws/networking/domain.d.ts +13 -0
  103. package/dist/lib/resources/aws/networking/domain.js +102 -0
  104. package/dist/lib/resources/aws/networking/domainCertificate.d.ts +13 -0
  105. package/dist/lib/resources/aws/networking/domainCertificate.js +28 -0
  106. package/dist/lib/resources/aws/networking/hostedZone.d.ts +28 -0
  107. package/dist/lib/resources/aws/networking/hostedZone.js +150 -0
  108. package/dist/lib/resources/aws/networking/index.d.ts +4 -0
  109. package/dist/lib/resources/aws/networking/index.js +5 -1
  110. package/dist/lib/resources/aws/networking/ipamPool.js +57 -31
  111. package/dist/lib/resources/aws/networking/securityGroup.d.ts +5 -0
  112. package/dist/lib/resources/aws/networking/securityGroup.js +14 -0
  113. package/dist/lib/resources/aws/networking/vpc.js +9 -4
  114. package/dist/lib/resources/aws/organisation/costAllocationTagActivator.d.ts +17 -0
  115. package/dist/lib/resources/aws/organisation/costAllocationTagActivator.js +66 -0
  116. package/dist/lib/resources/aws/organisation/index.d.ts +1 -0
  117. package/dist/lib/resources/aws/organisation/index.js +4 -2
  118. package/dist/lib/resources/aws/secrets/index.d.ts +0 -1
  119. package/dist/lib/resources/aws/secrets/index.js +1 -2
  120. package/dist/lib/resources/aws/storage/ecr.d.ts +0 -1
  121. package/dist/lib/resources/aws/storage/ecr.js +5 -5
  122. package/dist/lib/resources/aws/storage/s3.d.ts +3 -3
  123. package/dist/lib/resources/aws/storage/s3.js +1 -1
  124. package/dist/lib/resources/aws/utilities/index.d.ts +5 -0
  125. package/dist/lib/resources/aws/utilities/index.js +22 -0
  126. package/dist/lib/utils/backupTierMapping.d.ts +11 -0
  127. package/dist/lib/utils/backupTierMapping.js +17 -0
  128. package/dist/lib/utils/capitaliseString.d.ts +1 -12
  129. package/dist/lib/utils/capitaliseString.js +8 -28
  130. package/dist/lib/utils/connections.d.ts +46 -0
  131. package/dist/lib/utils/connections.js +159 -0
  132. package/dist/lib/utils/connector.d.ts +183 -0
  133. package/dist/lib/utils/connector.js +117 -0
  134. package/dist/lib/utils/databaseTypes.d.ts +85 -0
  135. package/dist/lib/utils/databaseTypes.js +34 -0
  136. package/dist/lib/utils/dnsRecords.d.ts +4 -0
  137. package/dist/lib/utils/dnsRecords.js +108 -0
  138. package/dist/lib/utils/domainTypes.d.ts +37 -0
  139. package/dist/lib/utils/domainTypes.js +10 -0
  140. package/dist/lib/utils/env.d.ts +42 -0
  141. package/dist/lib/utils/env.js +122 -0
  142. package/dist/lib/utils/getConfig.d.ts +0 -5
  143. package/dist/lib/utils/getConfig.js +42 -19
  144. package/dist/lib/utils/index.d.ts +7 -0
  145. package/dist/lib/utils/index.js +8 -1
  146. package/dist/lib/utils/removalPolicy.d.ts +2 -0
  147. package/dist/lib/utils/removalPolicy.js +16 -0
  148. package/dist/lib/utils/standardTagsAspect.d.ts +4 -0
  149. package/dist/lib/utils/standardTagsAspect.js +8 -8
  150. package/dist/lib/utils/vpcUtils.d.ts +14 -0
  151. package/dist/lib/utils/vpcUtils.js +28 -0
  152. package/package.json +7 -6
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addDnsRecords = addDnsRecords;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const aws_route53_1 = require("aws-cdk-lib/aws-route53");
6
+ const capitaliseString_1 = require("./capitaliseString");
7
+ const domainTypes_1 = require("./domainTypes");
8
+ function addDnsRecords(scope, zone, zoneName, records) {
9
+ const safeZone = (0, capitaliseString_1.toPascalCase)((0, capitaliseString_1.getSafeZoneName)(zoneName));
10
+ records.forEach((record, index) => {
11
+ if (record.value.startsWith(domainTypes_1.ALIAS_CDK_PREFIX)) {
12
+ return;
13
+ }
14
+ const safeName = (0, capitaliseString_1.toPascalCase)(record.name === domainTypes_1.DNS_APEX ? "Apex" : record.name);
15
+ const constructId = `${safeZone}${safeName}${record.type}Record${index}`;
16
+ const ttl = record.ttl ? aws_cdk_lib_1.Duration.seconds(record.ttl) : undefined;
17
+ const recordName = record.name === domainTypes_1.DNS_APEX ? zoneName : `${record.name}.${zoneName}`;
18
+ switch (record.type) {
19
+ case "A":
20
+ new aws_route53_1.ARecord(scope, constructId, {
21
+ zone,
22
+ recordName,
23
+ target: aws_route53_1.RecordTarget.fromIpAddresses(record.value),
24
+ ttl
25
+ });
26
+ break;
27
+ case "AAAA":
28
+ new aws_route53_1.AaaaRecord(scope, constructId, {
29
+ zone,
30
+ recordName,
31
+ target: aws_route53_1.RecordTarget.fromIpAddresses(record.value),
32
+ ttl
33
+ });
34
+ break;
35
+ case "CNAME":
36
+ new aws_route53_1.CnameRecord(scope, constructId, {
37
+ zone,
38
+ recordName,
39
+ domainName: record.value,
40
+ ttl
41
+ });
42
+ break;
43
+ case "MX":
44
+ new aws_route53_1.MxRecord(scope, constructId, {
45
+ zone,
46
+ recordName,
47
+ values: [
48
+ {
49
+ hostName: record.value,
50
+ priority: record.priority ?? 10
51
+ }
52
+ ],
53
+ ttl
54
+ });
55
+ break;
56
+ case "TXT":
57
+ new aws_route53_1.TxtRecord(scope, constructId, {
58
+ zone,
59
+ recordName,
60
+ values: [record.value],
61
+ ttl
62
+ });
63
+ break;
64
+ case "NS":
65
+ new aws_route53_1.NsRecord(scope, constructId, {
66
+ zone,
67
+ recordName,
68
+ values: [record.value],
69
+ ttl
70
+ });
71
+ break;
72
+ case "SRV":
73
+ new aws_route53_1.SrvRecord(scope, constructId, {
74
+ zone,
75
+ recordName,
76
+ values: [
77
+ {
78
+ hostName: record.value,
79
+ priority: record.priority ?? 10,
80
+ weight: record.weight ?? 0,
81
+ port: record.port ?? 443
82
+ }
83
+ ],
84
+ ttl
85
+ });
86
+ break;
87
+ case "CAA":
88
+ new aws_route53_1.CaaRecord(scope, constructId, {
89
+ zone,
90
+ recordName,
91
+ values: [
92
+ {
93
+ flag: 0,
94
+ tag: record.value.includes("issuewild")
95
+ ? aws_route53_1.CaaTag.ISSUEWILD
96
+ : record.value.includes("iodef")
97
+ ? aws_route53_1.CaaTag.IODEF
98
+ : aws_route53_1.CaaTag.ISSUE,
99
+ value: record.value
100
+ }
101
+ ],
102
+ ttl
103
+ });
104
+ break;
105
+ }
106
+ });
107
+ }
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zUmVjb3Jkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlscy9kbnNSZWNvcmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBbUJBLHNDQThHQztBQWhJRCw2Q0FBdUM7QUFDdkMseURBWWlDO0FBQ2pDLHlEQUFtRTtBQUVuRSwrQ0FBMkQ7QUFFM0QsU0FBZ0IsYUFBYSxDQUMzQixLQUFnQixFQUNoQixJQUFpQixFQUNqQixRQUFnQixFQUNoQixPQUF5QjtJQUV6QixNQUFNLFFBQVEsR0FBRyxJQUFBLCtCQUFZLEVBQUMsSUFBQSxrQ0FBZSxFQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFekQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNoQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLDhCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUM5QyxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUEsK0JBQVksRUFDM0IsTUFBTSxDQUFDLElBQUksS0FBSyxzQkFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2hELENBQUM7UUFDRixNQUFNLFdBQVcsR0FBRyxHQUFHLFFBQVEsR0FBRyxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksU0FBUyxLQUFLLEVBQUUsQ0FBQztRQUN6RSxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNsRSxNQUFNLFVBQVUsR0FDZCxNQUFNLENBQUMsSUFBSSxLQUFLLHNCQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLFFBQVEs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LENBQUMsQ0FBQztnQkFDSCxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBBUmVjb3JkLFxuICBBYWFhUmVjb3JkLFxuICBDbmFtZVJlY29yZCxcbiAgTXhSZWNvcmQsXG4gIFR4dFJlY29yZCxcbiAgTnNSZWNvcmQsXG4gIFNydlJlY29yZCxcbiAgQ2FhUmVjb3JkLFxuICBDYWFUYWcsXG4gIFJlY29yZFRhcmdldCxcbiAgdHlwZSBJSG9zdGVkWm9uZVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSwgZ2V0U2FmZVpvbmVOYW1lIH0gZnJvbSBcIi4vY2FwaXRhbGlzZVN0cmluZ1wiO1xuaW1wb3J0IHR5cGUgeyBEbnNSZWNvcmRJbnB1dCB9IGZyb20gXCIuL2RvbWFpblR5cGVzXCI7XG5pbXBvcnQgeyBBTElBU19DREtfUFJFRklYLCBETlNfQVBFWCB9IGZyb20gXCIuL2RvbWFpblR5cGVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGREbnNSZWNvcmRzKFxuICBzY29wZTogQ29uc3RydWN0LFxuICB6b25lOiBJSG9zdGVkWm9uZSxcbiAgem9uZU5hbWU6IHN0cmluZyxcbiAgcmVjb3JkczogRG5zUmVjb3JkSW5wdXRbXVxuKTogdm9pZCB7XG4gIGNvbnN0IHNhZmVab25lID0gdG9QYXNjYWxDYXNlKGdldFNhZmVab25lTmFtZSh6b25lTmFtZSkpO1xuXG4gIHJlY29yZHMuZm9yRWFjaCgocmVjb3JkLCBpbmRleCkgPT4ge1xuICAgIGlmIChyZWNvcmQudmFsdWUuc3RhcnRzV2l0aChBTElBU19DREtfUFJFRklYKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNhZmVOYW1lID0gdG9QYXNjYWxDYXNlKFxuICAgICAgcmVjb3JkLm5hbWUgPT09IEROU19BUEVYID8gXCJBcGV4XCIgOiByZWNvcmQubmFtZVxuICAgICk7XG4gICAgY29uc3QgY29uc3RydWN0SWQgPSBgJHtzYWZlWm9uZX0ke3NhZmVOYW1lfSR7cmVjb3JkLnR5cGV9UmVjb3JkJHtpbmRleH1gO1xuICAgIGNvbnN0IHR0bCA9IHJlY29yZC50dGwgPyBEdXJhdGlvbi5zZWNvbmRzKHJlY29yZC50dGwpIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHJlY29yZE5hbWUgPVxuICAgICAgcmVjb3JkLm5hbWUgPT09IEROU19BUEVYID8gem9uZU5hbWUgOiBgJHtyZWNvcmQubmFtZX0uJHt6b25lTmFtZX1gO1xuXG4gICAgc3dpdGNoIChyZWNvcmQudHlwZSkge1xuICAgICAgY2FzZSBcIkFcIjpcbiAgICAgICAgbmV3IEFSZWNvcmQoc2NvcGUsIGNvbnN0cnVjdElkLCB7XG4gICAgICAgICAgem9uZSxcbiAgICAgICAgICByZWNvcmROYW1lLFxuICAgICAgICAgIHRhcmdldDogUmVjb3JkVGFyZ2V0LmZyb21JcEFkZHJlc3NlcyhyZWNvcmQudmFsdWUpLFxuICAgICAgICAgIHR0bFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiQUFBQVwiOlxuICAgICAgICBuZXcgQWFhYVJlY29yZChzY29wZSwgY29uc3RydWN0SWQsIHtcbiAgICAgICAgICB6b25lLFxuICAgICAgICAgIHJlY29yZE5hbWUsXG4gICAgICAgICAgdGFyZ2V0OiBSZWNvcmRUYXJnZXQuZnJvbUlwQWRkcmVzc2VzKHJlY29yZC52YWx1ZSksXG4gICAgICAgICAgdHRsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJDTkFNRVwiOlxuICAgICAgICBuZXcgQ25hbWVSZWNvcmQoc2NvcGUsIGNvbnN0cnVjdElkLCB7XG4gICAgICAgICAgem9uZSxcbiAgICAgICAgICByZWNvcmROYW1lLFxuICAgICAgICAgIGRvbWFpbk5hbWU6IHJlY29yZC52YWx1ZSxcbiAgICAgICAgICB0dGxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIk1YXCI6XG4gICAgICAgIG5ldyBNeFJlY29yZChzY29wZSwgY29uc3RydWN0SWQsIHtcbiAgICAgICAgICB6b25lLFxuICAgICAgICAgIHJlY29yZE5hbWUsXG4gICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGhvc3ROYW1lOiByZWNvcmQudmFsdWUsXG4gICAgICAgICAgICAgIHByaW9yaXR5OiByZWNvcmQucHJpb3JpdHkgPz8gMTBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIHR0bFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiVFhUXCI6XG4gICAgICAgIG5ldyBUeHRSZWNvcmQoc2NvcGUsIGNvbnN0cnVjdElkLCB7XG4gICAgICAgICAgem9uZSxcbiAgICAgICAgICByZWNvcmROYW1lLFxuICAgICAgICAgIHZhbHVlczogW3JlY29yZC52YWx1ZV0sXG4gICAgICAgICAgdHRsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJOU1wiOlxuICAgICAgICBuZXcgTnNSZWNvcmQoc2NvcGUsIGNvbnN0cnVjdElkLCB7XG4gICAgICAgICAgem9uZSxcbiAgICAgICAgICByZWNvcmROYW1lLFxuICAgICAgICAgIHZhbHVlczogW3JlY29yZC52YWx1ZV0sXG4gICAgICAgICAgdHRsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJTUlZcIjpcbiAgICAgICAgbmV3IFNydlJlY29yZChzY29wZSwgY29uc3RydWN0SWQsIHtcbiAgICAgICAgICB6b25lLFxuICAgICAgICAgIHJlY29yZE5hbWUsXG4gICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGhvc3ROYW1lOiByZWNvcmQudmFsdWUsXG4gICAgICAgICAgICAgIHByaW9yaXR5OiByZWNvcmQucHJpb3JpdHkgPz8gMTAsXG4gICAgICAgICAgICAgIHdlaWdodDogcmVjb3JkLndlaWdodCA/PyAwLFxuICAgICAgICAgICAgICBwb3J0OiByZWNvcmQucG9ydCA/PyA0NDNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIHR0bFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiQ0FBXCI6XG4gICAgICAgIG5ldyBDYWFSZWNvcmQoc2NvcGUsIGNvbnN0cnVjdElkLCB7XG4gICAgICAgICAgem9uZSxcbiAgICAgICAgICByZWNvcmROYW1lLFxuICAgICAgICAgIHZhbHVlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmbGFnOiAwLFxuICAgICAgICAgICAgICB0YWc6IHJlY29yZC52YWx1ZS5pbmNsdWRlcyhcImlzc3Vld2lsZFwiKVxuICAgICAgICAgICAgICAgID8gQ2FhVGFnLklTU1VFV0lMRFxuICAgICAgICAgICAgICAgIDogcmVjb3JkLnZhbHVlLmluY2x1ZGVzKFwiaW9kZWZcIilcbiAgICAgICAgICAgICAgICAgID8gQ2FhVGFnLklPREVGXG4gICAgICAgICAgICAgICAgICA6IENhYVRhZy5JU1NVRSxcbiAgICAgICAgICAgICAgdmFsdWU6IHJlY29yZC52YWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgdHRsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0pO1xufVxuIl19
@@ -0,0 +1,37 @@
1
+ export { DNS_APEX, getDomainExportNames, type ManagedDomainExports } from "@fjall/util";
2
+ export interface DnsRecordInput {
3
+ type: "A" | "AAAA" | "CNAME" | "MX" | "TXT" | "NS" | "SRV" | "CAA";
4
+ name: string;
5
+ value: string;
6
+ ttl?: number;
7
+ priority?: number;
8
+ weight?: number;
9
+ port?: number;
10
+ }
11
+ export interface DelegationInput {
12
+ subdomain: string;
13
+ targetAccount: string;
14
+ }
15
+ export interface CertificateInput {
16
+ domainName: string;
17
+ subjectAlternativeNames?: string[];
18
+ }
19
+ export interface DomainApexProps {
20
+ type: "domain";
21
+ zoneName: string;
22
+ records?: DnsRecordInput[];
23
+ delegations?: DelegationInput[];
24
+ certificates?: CertificateInput[];
25
+ hostedZoneId?: string;
26
+ }
27
+ export interface DomainDelegatedProps {
28
+ type: "delegated";
29
+ zoneName: string;
30
+ parentZoneName: string;
31
+ parentAccountName: string;
32
+ records?: DnsRecordInput[];
33
+ certificates?: CertificateInput[];
34
+ }
35
+ export type IDomainProps = DomainApexProps | DomainDelegatedProps;
36
+ export declare const ALIAS_CDK_PREFIX: "ALIAS:";
37
+ export { addDnsRecords } from "./dnsRecords";
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addDnsRecords = exports.ALIAS_CDK_PREFIX = exports.getDomainExportNames = exports.DNS_APEX = void 0;
4
+ var util_1 = require("@fjall/util");
5
+ Object.defineProperty(exports, "DNS_APEX", { enumerable: true, get: function () { return util_1.DNS_APEX; } });
6
+ Object.defineProperty(exports, "getDomainExportNames", { enumerable: true, get: function () { return util_1.getDomainExportNames; } });
7
+ exports.ALIAS_CDK_PREFIX = "ALIAS:";
8
+ var dnsRecords_1 = require("./dnsRecords");
9
+ Object.defineProperty(exports, "addDnsRecords", { enumerable: true, get: function () { return dnsRecords_1.addDnsRecords; } });
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvZG9tYWluVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0NBSXFCO0FBSG5CLGdHQUFBLFFBQVEsT0FBQTtBQUNSLDRHQUFBLG9CQUFvQixPQUFBO0FBNENULFFBQUEsZ0JBQWdCLEdBQUcsUUFBaUIsQ0FBQztBQUVsRCwyQ0FBNkM7QUFBcEMsMkdBQUEsYUFBYSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgRE5TX0FQRVgsXG4gIGdldERvbWFpbkV4cG9ydE5hbWVzLFxuICB0eXBlIE1hbmFnZWREb21haW5FeHBvcnRzXG59IGZyb20gXCJAZmphbGwvdXRpbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERuc1JlY29yZElucHV0IHtcbiAgdHlwZTogXCJBXCIgfCBcIkFBQUFcIiB8IFwiQ05BTUVcIiB8IFwiTVhcIiB8IFwiVFhUXCIgfCBcIk5TXCIgfCBcIlNSVlwiIHwgXCJDQUFcIjtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICB0dGw/OiBudW1iZXI7XG4gIHByaW9yaXR5PzogbnVtYmVyO1xuICB3ZWlnaHQ/OiBudW1iZXI7XG4gIHBvcnQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZWdhdGlvbklucHV0IHtcbiAgc3ViZG9tYWluOiBzdHJpbmc7XG4gIHRhcmdldEFjY291bnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZXJ0aWZpY2F0ZUlucHV0IHtcbiAgZG9tYWluTmFtZTogc3RyaW5nO1xuICBzdWJqZWN0QWx0ZXJuYXRpdmVOYW1lcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbkFwZXhQcm9wcyB7XG4gIHR5cGU6IFwiZG9tYWluXCI7XG4gIHpvbmVOYW1lOiBzdHJpbmc7XG4gIHJlY29yZHM/OiBEbnNSZWNvcmRJbnB1dFtdO1xuICBkZWxlZ2F0aW9ucz86IERlbGVnYXRpb25JbnB1dFtdO1xuICBjZXJ0aWZpY2F0ZXM/OiBDZXJ0aWZpY2F0ZUlucHV0W107XG4gIGhvc3RlZFpvbmVJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb21haW5EZWxlZ2F0ZWRQcm9wcyB7XG4gIHR5cGU6IFwiZGVsZWdhdGVkXCI7XG4gIHpvbmVOYW1lOiBzdHJpbmc7XG4gIHBhcmVudFpvbmVOYW1lOiBzdHJpbmc7XG4gIHBhcmVudEFjY291bnROYW1lOiBzdHJpbmc7XG4gIHJlY29yZHM/OiBEbnNSZWNvcmRJbnB1dFtdO1xuICBjZXJ0aWZpY2F0ZXM/OiBDZXJ0aWZpY2F0ZUlucHV0W107XG59XG5cbmV4cG9ydCB0eXBlIElEb21haW5Qcm9wcyA9IERvbWFpbkFwZXhQcm9wcyB8IERvbWFpbkRlbGVnYXRlZFByb3BzO1xuXG5leHBvcnQgY29uc3QgQUxJQVNfQ0RLX1BSRUZJWCA9IFwiQUxJQVM6XCIgYXMgY29uc3Q7XG5cbmV4cG9ydCB7IGFkZERuc1JlY29yZHMgfSBmcm9tIFwiLi9kbnNSZWNvcmRzXCI7XG4iXX0=
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Declarative environment configuration utility.
3
+ *
4
+ * Resolves environment-specific values at CDK synth time without requiring
5
+ * an App instance. This allows `env()` to be used in `App.getApp()` arguments.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { App, env } from "@fjall/components-infrastructure";
10
+ *
11
+ * const app = App.getApp("myapp", {
12
+ * network: { maxAzs: env({ default: 2, production: 3 }) }
13
+ * });
14
+ * ```
15
+ */
16
+ type EnvConfig<T> = {
17
+ default: T;
18
+ } & Partial<Record<string, T>>;
19
+ /**
20
+ * Resolve the current deployment environment without App dependency.
21
+ *
22
+ * Resolution order:
23
+ * 1. Module cache (cached after first call)
24
+ * 2. `process.env.ENVIRONMENT`
25
+ * 3. `-c environment=<value>` from process.argv
26
+ * 4. `CDK_DEFAULT_ACCOUNT` → providerAccounts lookup
27
+ * 5. `-c accountName=<value>` → providerAccounts lookup
28
+ * 6. `"unknown"` (with warning)
29
+ */
30
+ export declare function getEnvironment(): string;
31
+ /**
32
+ * Resolve an environment-specific value at CDK synth time.
33
+ *
34
+ * @param config - Object with `default` key and optional environment overrides
35
+ * @returns The value for the current environment, or the default
36
+ */
37
+ export declare function env<T>(config: EnvConfig<T>): T;
38
+ /**
39
+ * Reset the environment cache. For testing only.
40
+ */
41
+ export declare function _resetEnvironmentCache(): void;
42
+ export {};
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEnvironment = getEnvironment;
4
+ exports.env = env;
5
+ exports._resetEnvironmentCache = _resetEnvironmentCache;
6
+ const validationLogger_1 = require("./validationLogger");
7
+ let cachedEnvironment;
8
+ /**
9
+ * Resolve the current deployment environment without App dependency.
10
+ *
11
+ * Resolution order:
12
+ * 1. Module cache (cached after first call)
13
+ * 2. `process.env.ENVIRONMENT`
14
+ * 3. `-c environment=<value>` from process.argv
15
+ * 4. `CDK_DEFAULT_ACCOUNT` → providerAccounts lookup
16
+ * 5. `-c accountName=<value>` → providerAccounts lookup
17
+ * 6. `"unknown"` (with warning)
18
+ */
19
+ function getEnvironment() {
20
+ if (cachedEnvironment !== undefined) {
21
+ return cachedEnvironment;
22
+ }
23
+ // 1. process.env.ENVIRONMENT
24
+ if (process.env.ENVIRONMENT) {
25
+ cachedEnvironment = process.env.ENVIRONMENT;
26
+ return cachedEnvironment;
27
+ }
28
+ // 2. -c environment=<value> from process.argv
29
+ const envFromArgv = parseContextArg("environment");
30
+ if (envFromArgv) {
31
+ cachedEnvironment = envFromArgv;
32
+ return cachedEnvironment;
33
+ }
34
+ // 3. CDK_DEFAULT_ACCOUNT → providerAccounts lookup
35
+ const accountId = process.env.CDK_DEFAULT_ACCOUNT;
36
+ if (accountId) {
37
+ const env = resolveEnvironmentFromAccountId(accountId);
38
+ if (env) {
39
+ cachedEnvironment = env;
40
+ return cachedEnvironment;
41
+ }
42
+ }
43
+ // 4. -c accountName=<value> → providerAccounts lookup
44
+ const accountName = parseContextArg("accountName");
45
+ if (accountName) {
46
+ const env = resolveEnvironmentFromAccountName(accountName);
47
+ if (env) {
48
+ cachedEnvironment = env;
49
+ return cachedEnvironment;
50
+ }
51
+ }
52
+ // 5. Fallback
53
+ validationLogger_1.FjallLogger.warn("[fjall] Could not determine environment. " +
54
+ "Set ENVIRONMENT env var or pass -c environment=<value>.");
55
+ cachedEnvironment = "unknown";
56
+ return cachedEnvironment;
57
+ }
58
+ /**
59
+ * Resolve an environment-specific value at CDK synth time.
60
+ *
61
+ * @param config - Object with `default` key and optional environment overrides
62
+ * @returns The value for the current environment, or the default
63
+ */
64
+ function env(config) {
65
+ const environment = getEnvironment();
66
+ if (environment in config) {
67
+ return config[environment];
68
+ }
69
+ return config.default;
70
+ }
71
+ /**
72
+ * Reset the environment cache. For testing only.
73
+ */
74
+ function _resetEnvironmentCache() {
75
+ cachedEnvironment = undefined;
76
+ }
77
+ /**
78
+ * Parse a `-c key=value` argument from process.argv.
79
+ */
80
+ function parseContextArg(key) {
81
+ const args = process.argv;
82
+ for (let i = 0; i < args.length - 1; i++) {
83
+ if (args[i] === "-c") {
84
+ const parts = args[i + 1].split("=");
85
+ if (parts[0] === key && parts.length >= 2) {
86
+ return parts.slice(1).join("=");
87
+ }
88
+ }
89
+ }
90
+ return undefined;
91
+ }
92
+ /**
93
+ * Parse orgConfig from CDK context (-c orgConfig=<json>) in process.argv.
94
+ */
95
+ function getProviderAccountsFromContext() {
96
+ try {
97
+ const raw = parseContextArg("orgConfig");
98
+ if (!raw)
99
+ return [];
100
+ const parsed = JSON.parse(raw);
101
+ return parsed.providerAccounts ?? [];
102
+ }
103
+ catch (error) {
104
+ validationLogger_1.FjallLogger.warn(`[fjall] Failed to parse orgConfig from CDK context: ${error instanceof Error ? error.message : String(error)}`);
105
+ return [];
106
+ }
107
+ }
108
+ /**
109
+ * Look up environment from account ID via orgConfig CDK context.
110
+ */
111
+ function resolveEnvironmentFromAccountId(accountId) {
112
+ const accounts = getProviderAccountsFromContext();
113
+ return accounts.find((pa) => pa.id === accountId)?.environment;
114
+ }
115
+ /**
116
+ * Look up environment from account name via orgConfig CDK context.
117
+ */
118
+ function resolveEnvironmentFromAccountName(accountName) {
119
+ const accounts = getProviderAccountsFromContext();
120
+ return accounts.find((pa) => pa.name === accountName)?.environment;
121
+ }
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL2Vudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWtDQSx3Q0E2Q0M7QUFRRCxrQkFRQztBQUtELHdEQUVDO0FBckdELHlEQUFpRDtBQW9CakQsSUFBSSxpQkFBcUMsQ0FBQztBQUUxQzs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsY0FBYztJQUM1QixJQUFJLGlCQUFpQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3BDLE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDNUIsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7UUFDNUMsT0FBTyxpQkFBaUIsQ0FBQztJQUMzQixDQUFDO0lBRUQsOENBQThDO0lBQzlDLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hCLGlCQUFpQixHQUFHLFdBQVcsQ0FBQztRQUNoQyxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQztJQUNsRCxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsTUFBTSxHQUFHLEdBQUcsK0JBQStCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztZQUN4QixPQUFPLGlCQUFpQixDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsc0RBQXNEO0lBQ3RELE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hC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LEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEVBQUUsV0FBVyxDQUFDO0FBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFByb3ZpZGVyQWNjb3VudCB9IGZyb20gXCJAZmphbGwvdXRpbFwiO1xuaW1wb3J0IHsgRmphbGxMb2dnZXIgfSBmcm9tIFwiLi92YWxpZGF0aW9uTG9nZ2VyXCI7XG5cbi8qKlxuICogRGVjbGFyYXRpdmUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbiB1dGlsaXR5LlxuICpcbiAqIFJlc29sdmVzIGVudmlyb25tZW50LXNwZWNpZmljIHZhbHVlcyBhdCBDREsgc3ludGggdGltZSB3aXRob3V0IHJlcXVpcmluZ1xuICogYW4gQXBwIGluc3RhbmNlLiBUaGlzIGFsbG93cyBgZW52KClgIHRvIGJlIHVzZWQgaW4gYEFwcC5nZXRBcHAoKWAgYXJndW1lbnRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgQXBwLCBlbnYgfSBmcm9tIFwiQGZqYWxsL2NvbXBvbmVudHMtaW5mcmFzdHJ1Y3R1cmVcIjtcbiAqXG4gKiBjb25zdCBhcHAgPSBBcHAuZ2V0QXBwKFwibXlhcHBcIiwge1xuICogICBuZXR3b3JrOiB7IG1heEF6czogZW52KHsgZGVmYXVsdDogMiwgcHJvZHVjdGlvbjogMyB9KSB9XG4gKiB9KTtcbiAqIGBgYFxuICovXG5cbnR5cGUgRW52Q29uZmlnPFQ+ID0geyBkZWZhdWx0OiBUIH0gJiBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIFQ+PjtcblxubGV0IGNhY2hlZEVudmlyb25tZW50OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbi8qKlxuICogUmVzb2x2ZSB0aGUgY3VycmVudCBkZXBsb3ltZW50IGVudmlyb25tZW50IHdpdGhvdXQgQXBwIGRlcGVuZGVuY3kuXG4gKlxuICogUmVzb2x1dGlvbiBvcmRlcjpcbiAqIDEuIE1vZHVsZSBjYWNoZSAoY2FjaGVkIGFmdGVyIGZpcnN0IGNhbGwpXG4gKiAyLiBgcHJvY2Vzcy5lbnYuRU5WSVJPTk1FTlRgXG4gKiAzLiBgLWMgZW52aXJvbm1lbnQ9PHZhbHVlPmAgZnJvbSBwcm9jZXNzLmFyZ3ZcbiAqIDQuIGBDREtfREVGQVVMVF9BQ0NPVU5UYCDihpIgcHJvdmlkZXJBY2NvdW50cyBsb29rdXBcbiAqIDUuIGAtYyBhY2NvdW50TmFtZT08dmFsdWU+YCDihpIgcHJvdmlkZXJBY2NvdW50cyBsb29rdXBcbiAqIDYuIGBcInVua25vd25cImAgKHdpdGggd2FybmluZylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVudmlyb25tZW50KCk6IHN0cmluZyB7XG4gIGlmIChjYWNoZWRFbnZpcm9ubWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGNhY2hlZEVudmlyb25tZW50O1xuICB9XG5cbiAgLy8gMS4gcHJvY2Vzcy5lbnYuRU5WSVJPTk1FTlRcbiAgaWYgKHByb2Nlc3MuZW52LkVOVklST05NRU5UKSB7XG4gICAgY2FjaGVkRW52aXJvbm1lbnQgPSBwcm9jZXNzLmVudi5FTlZJUk9OTUVOVDtcbiAgICByZXR1cm4gY2FjaGVkRW52aXJvbm1lbnQ7XG4gIH1cblxuICAvLyAyLiAtYyBlbnZpcm9ubWVudD08dmFsdWU+IGZyb20gcHJvY2Vzcy5hcmd2XG4gIGNvbnN0IGVudkZyb21Bcmd2ID0gcGFyc2VDb250ZXh0QXJnKFwiZW52aXJvbm1lbnRcIik7XG4gIGlmIChlbnZGcm9tQXJndikge1xuICAgIGNhY2hlZEVudmlyb25tZW50ID0gZW52RnJvbUFyZ3Y7XG4gICAgcmV0dXJuIGNhY2hlZEVudmlyb25tZW50O1xuICB9XG5cbiAgLy8gMy4gQ0RLX0RFRkFVTFRfQUNDT1VOVCDihpIgcHJvdmlkZXJBY2NvdW50cyBsb29rdXBcbiAgY29uc3QgYWNjb3VudElkID0gcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVDtcbiAgaWYgKGFjY291bnRJZCkge1xuICAgIGNvbnN0IGVudiA9IHJlc29sdmVFbnZpcm9ubWVudEZyb21BY2NvdW50SWQoYWNjb3VudElkKTtcbiAgICBpZiAoZW52KSB7XG4gICAgICBjYWNoZWRFbnZpcm9ubWVudCA9IGVudjtcbiAgICAgIHJldHVybiBjYWNoZWRFbnZpcm9ubWVudDtcbiAgICB9XG4gIH1cblxuICAvLyA0LiAtYyBhY2NvdW50TmFtZT08dmFsdWU+IOKGkiBwcm92aWRlckFjY291bnRzIGxvb2t1cFxuICBjb25zdCBhY2NvdW50TmFtZSA9IHBhcnNlQ29udGV4dEFyZyhcImFjY291bnROYW1lXCIpO1xuICBpZiAoYWNjb3VudE5hbWUpIHtcbiAgICBjb25zdCBlbnYgPSByZXNvbHZlRW52aXJvbm1lbnRGcm9tQWNjb3VudE5hbWUoYWNjb3VudE5hbWUpO1xuICAgIGlmIChlbnYpIHtcbiAgICAgIGNhY2hlZEVudmlyb25tZW50ID0gZW52O1xuICAgICAgcmV0dXJuIGNhY2hlZEVudmlyb25tZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIDUuIEZhbGxiYWNrXG4gIEZqYWxsTG9nZ2VyLndhcm4oXG4gICAgXCJbZmphbGxdIENvdWxkIG5vdCBkZXRlcm1pbmUgZW52aXJvbm1lbnQuIFwiICtcbiAgICAgIFwiU2V0IEVOVklST05NRU5UIGVudiB2YXIgb3IgcGFzcyAtYyBlbnZpcm9ubWVudD08dmFsdWU+LlwiXG4gICk7XG4gIGNhY2hlZEVudmlyb25tZW50ID0gXCJ1bmtub3duXCI7XG4gIHJldHVybiBjYWNoZWRFbnZpcm9ubWVudDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGFuIGVudmlyb25tZW50LXNwZWNpZmljIHZhbHVlIGF0IENESyBzeW50aCB0aW1lLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBPYmplY3Qgd2l0aCBgZGVmYXVsdGAga2V5IGFuZCBvcHRpb25hbCBlbnZpcm9ubWVudCBvdmVycmlkZXNcbiAqIEByZXR1cm5zIFRoZSB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQsIG9yIHRoZSBkZWZhdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnY8VD4oY29uZmlnOiBFbnZDb25maWc8VD4pOiBUIHtcbiAgY29uc3QgZW52aXJvbm1lbnQgPSBnZXRFbnZpcm9ubWVudCgpO1xuXG4gIGlmIChlbnZpcm9ubWVudCBpbiBjb25maWcpIHtcbiAgICByZXR1cm4gY29uZmlnW2Vudmlyb25tZW50XSBhcyBUO1xuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5kZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlc2V0IHRoZSBlbnZpcm9ubWVudCBjYWNoZS4gRm9yIHRlc3Rpbmcgb25seS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9yZXNldEVudmlyb25tZW50Q2FjaGUoKTogdm9pZCB7XG4gIGNhY2hlZEVudmlyb25tZW50ID0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFBhcnNlIGEgYC1jIGtleT12YWx1ZWAgYXJndW1lbnQgZnJvbSBwcm9jZXNzLmFyZ3YuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlQ29udGV4dEFyZyhrZXk6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGFyZ3MgPSBwcm9jZXNzLmFyZ3Y7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICBpZiAoYXJnc1tpXSA9PT0gXCItY1wiKSB7XG4gICAgICBjb25zdCBwYXJ0cyA9IGFyZ3NbaSArIDFdLnNwbGl0KFwiPVwiKTtcbiAgICAgIGlmIChwYXJ0c1swXSA9PT0ga2V5ICYmIHBhcnRzLmxlbmd0aCA+PSAyKSB7XG4gICAgICAgIHJldHVybiBwYXJ0cy5zbGljZSgxKS5qb2luKFwiPVwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBQYXJzZSBvcmdDb25maWcgZnJvbSBDREsgY29udGV4dCAoLWMgb3JnQ29uZmlnPTxqc29uPikgaW4gcHJvY2Vzcy5hcmd2LlxuICovXG5mdW5jdGlvbiBnZXRQcm92aWRlckFjY291bnRzRnJvbUNvbnRleHQoKTogUHJvdmlkZXJBY2NvdW50W10ge1xuICB0cnkge1xuICAgIGNvbnN0IHJhdyA9IHBhcnNlQ29udGV4dEFyZyhcIm9yZ0NvbmZpZ1wiKTtcbiAgICBpZiAoIXJhdykgcmV0dXJuIFtdO1xuICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmF3KSBhcyB7IHByb3ZpZGVyQWNjb3VudHM/OiBQcm92aWRlckFjY291bnRbXSB9O1xuICAgIHJldHVybiBwYXJzZWQucHJvdmlkZXJBY2NvdW50cyA/PyBbXTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBGamFsbExvZ2dlci53YXJuKFxuICAgICAgYFtmamFsbF0gRmFpbGVkIHRvIHBhcnNlIG9yZ0NvbmZpZyBmcm9tIENESyBjb250ZXh0OiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gXG4gICAgKTtcbiAgICByZXR1cm4gW107XG4gIH1cbn1cblxuLyoqXG4gKiBMb29rIHVwIGVudmlyb25tZW50IGZyb20gYWNjb3VudCBJRCB2aWEgb3JnQ29uZmlnIENESyBjb250ZXh0LlxuICovXG5mdW5jdGlvbiByZXNvbHZlRW52aXJvbm1lbnRGcm9tQWNjb3VudElkKFxuICBhY2NvdW50SWQ6IHN0cmluZ1xuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgYWNjb3VudHMgPSBnZXRQcm92aWRlckFjY291bnRzRnJvbUNvbnRleHQoKTtcbiAgcmV0dXJuIGFjY291bnRzLmZpbmQoKHBhKSA9PiBwYS5pZCA9PT0gYWNjb3VudElkKT8uZW52aXJvbm1lbnQ7XG59XG5cbi8qKlxuICogTG9vayB1cCBlbnZpcm9ubWVudCBmcm9tIGFjY291bnQgbmFtZSB2aWEgb3JnQ29uZmlnIENESyBjb250ZXh0LlxuICovXG5mdW5jdGlvbiByZXNvbHZlRW52aXJvbm1lbnRGcm9tQWNjb3VudE5hbWUoXG4gIGFjY291bnROYW1lOiBzdHJpbmdcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGFjY291bnRzID0gZ2V0UHJvdmlkZXJBY2NvdW50c0Zyb21Db250ZXh0KCk7XG4gIHJldHVybiBhY2NvdW50cy5maW5kKChwYSkgPT4gcGEubmFtZSA9PT0gYWNjb3VudE5hbWUpPy5lbnZpcm9ubWVudDtcbn1cbiJdfQ==
@@ -1,13 +1,8 @@
1
1
  import { type Account } from "@aws-sdk/client-organizations";
2
- export interface ICostAllocationTags {
3
- TagKey: string;
4
- Status: string;
5
- }
6
2
  export interface Config {
7
3
  region: string;
8
4
  environment: string;
9
5
  existingAccounts: Account[];
10
- costAllocationTags: ICostAllocationTags[];
11
6
  accountId?: string;
12
7
  accountName?: string;
13
8
  accountIds?: Record<string, string>;
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getConfig = getConfig;
4
4
  const app_1 = require("../app");
5
- const util_1 = require("@fjall/util");
6
5
  const validationLogger_1 = require("./validationLogger");
7
6
  function getConfig(accountName) {
8
7
  const app = app_1.default.getInstance();
@@ -10,37 +9,61 @@ function getConfig(accountName) {
10
9
  region: process.env.AWS_REGION || "us-east-1",
11
10
  environment: "unknown",
12
11
  existingAccounts: [],
13
- costAllocationTags: [],
14
12
  secondaryRegions: [],
15
13
  allRegions: []
16
14
  };
17
15
  if (!process.env.AWS_REGION)
18
16
  validationLogger_1.FjallLogger.warn("AWS_REGION is not set, defaulting to us-east-1");
19
- // Retrieve any pre-existing account config
20
- const fjallConfig = util_1.Config.loadConfig();
21
- // Get existing accounts
22
- config.existingAccounts = fjallConfig.getExistingAccounts();
17
+ let providerAccounts = [];
18
+ // Primary: read org config from CDK context (injected by CLI/worker)
19
+ const orgConfigRaw = app.node.tryGetContext("orgConfig");
20
+ if (typeof orgConfigRaw === "string") {
21
+ try {
22
+ const orgConfig = JSON.parse(orgConfigRaw);
23
+ providerAccounts = Array.isArray(orgConfig.providerAccounts)
24
+ ? orgConfig.providerAccounts
25
+ : [];
26
+ config.primaryRegion =
27
+ typeof orgConfig.primaryRegion === "string"
28
+ ? orgConfig.primaryRegion
29
+ : undefined;
30
+ config.secondaryRegions = Array.isArray(orgConfig.secondaryRegions)
31
+ ? orgConfig.secondaryRegions
32
+ : [];
33
+ config.disasterRecoveryRegion =
34
+ typeof orgConfig.disasterRecoveryRegion === "string"
35
+ ? orgConfig.disasterRecoveryRegion
36
+ : undefined;
37
+ // Compute allRegions from org config fields
38
+ const regions = new Set();
39
+ if (config.primaryRegion)
40
+ regions.add(config.primaryRegion);
41
+ for (const r of config.secondaryRegions)
42
+ regions.add(r);
43
+ if (config.disasterRecoveryRegion)
44
+ regions.add(config.disasterRecoveryRegion);
45
+ config.allRegions = [...regions];
46
+ }
47
+ catch (error) {
48
+ validationLogger_1.FjallLogger.warn(`Failed to parse orgConfig from CDK context: ${error instanceof Error ? error.message : String(error)}`);
49
+ }
50
+ }
51
+ else {
52
+ validationLogger_1.FjallLogger.warn("No orgConfig context provided — org-level config (accounts, regions) will be empty");
53
+ }
23
54
  // Build account IDs map from provider accounts (name → id)
24
- const providerAccounts = fjallConfig.rootConfig.providerAccounts || [];
25
55
  if (providerAccounts.length > 0) {
26
56
  config.accountIds = {};
27
57
  for (const pa of providerAccounts) {
28
58
  config.accountIds[pa.name] = pa.id;
29
59
  }
30
60
  }
31
- // Get cost allocation tags
32
- config.costAllocationTags = fjallConfig.getCostAllocationTags();
33
- // Get regions configuration
34
- config.primaryRegion = fjallConfig.getPrimaryRegion();
35
- config.secondaryRegions = fjallConfig.getSecondaryRegions() || [];
36
- config.allRegions = fjallConfig.getAllRegions();
37
- config.disasterRecoveryRegion = fjallConfig.getDisasterRecoveryRegion();
38
61
  // If unspecified account name - try to retrieve from context
39
62
  if (!accountName)
40
63
  accountName = app.node.tryGetContext("accountName");
41
64
  // If we have an account name - look for associated provider account
42
65
  if (accountName) {
43
- const providerAccount = fjallConfig.getProviderAccount(accountName);
66
+ const providerAccount = providerAccounts.find((pa) => pa.name === accountName);
44
67
  if (providerAccount) {
45
68
  config.accountId = providerAccount.id;
46
69
  config.accountName = providerAccount.name;
@@ -51,9 +74,9 @@ function getConfig(accountName) {
51
74
  if (!config.accountName) {
52
75
  const accountId = app.node.tryGetContext("accountId");
53
76
  // If we find an accountId - retrieve the associated account from config
54
- if (accountId) {
77
+ if (typeof accountId === "string") {
55
78
  config.accountId = accountId;
56
- const providerAccount = fjallConfig.getProviderAccountById(accountId);
79
+ const providerAccount = providerAccounts.find((pa) => pa.id === accountId);
57
80
  if (providerAccount) {
58
81
  config.accountName = providerAccount.name;
59
82
  config.environment = providerAccount.environment;
@@ -62,7 +85,7 @@ function getConfig(accountName) {
62
85
  }
63
86
  // Check for environment from context (highest priority)
64
87
  const contextEnvironment = app.node.tryGetContext("environment");
65
- if (contextEnvironment) {
88
+ if (typeof contextEnvironment === "string") {
66
89
  config.environment = contextEnvironment;
67
90
  }
68
91
  else if (process.env.ENVIRONMENT && config.environment === "unknown") {
@@ -72,4 +95,4 @@ function getConfig(accountName) {
72
95
  return config;
73
96
  }
74
97
  exports.default = getConfig;
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL2dldENvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXlCQSw4QkE0RUM7QUFuR0QsZ0NBQXlCO0FBQ3pCLHNDQUFvRDtBQUNwRCx5REFBaUQ7QUFxQmpELFNBQWdCLFNBQVMsQ0FBQyxXQUFvQjtJQUM1QyxNQUFNLEdBQUcsR0FBRyxhQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFOUIsTUFBTSxNQUFNLEdBQVc7UUFDckIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLFdBQVc7UUFDN0MsV0FBVyxFQUFFLFNBQVM7UUFDdEIsZ0JBQWdCLEVBQUUsRUFBRTtRQUNwQixrQkFBa0IsRUFBRSxFQUFFO1FBQ3RCLGdCQUFnQixFQUFFLEVBQUU7UUFDcEIsVUFBVSxFQUFFLEVBQUU7S0FDZixDQUFDO0lBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVTtRQUN6Qiw4QkFBVyxDQUFDLElBQUksQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0lBRXJFLDJDQUEyQztJQUMzQyxNQUFNLFdBQVcsR0FBRyxhQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7SUFFN0Msd0JBQXdCO0lBQ3hCLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUU1RCwyREFBMkQ7SUFDM0QsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztJQUN2RSxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN2QixLQUFLLE1BQU0sRUFBRSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDbEMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixNQUFNLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFFaEUsNEJBQTRCO0lBQzVCLE1BQU0sQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDdEQsTUFBTSxDQUFDLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsRSxNQUFNLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNoRCxNQUFNLENBQUMsc0JBQXNCLEdBQUcsV0FBVyxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFFeEUsNkRBQTZEO0lBQzdELElBQUksQ0FBQyxXQUFXO1FBQUUsV0FBVyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RFLG9FQUFvRTtJQUNwRSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRSxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDMUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDO0lBRUQsa0ZBQWtGO0lBQ2xGLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEIsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEQsd0VBQXdFO1FBQ3hFLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxNQUFNLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUU3QixNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEUsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsTUFBTSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUMxQyxNQUFNLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUM7WUFDbkQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsd0RBQXdEO0lBQ3hELE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakUsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUM7SUFDMUMsQ0FBQztTQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN2RSw2REFBNkQ7UUFDN0QsTUFBTSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztJQUMvQyxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELGtCQUFlLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQWNjb3VudCB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtb3JnYW5pemF0aW9uc1wiO1xuXG5pbXBvcnQgQXBwIGZyb20gXCIuLi9hcHBcIjtcbmltcG9ydCB7IENvbmZpZyBhcyBGamFsbENvbmZpZyB9IGZyb20gXCJAZmphbGwvdXRpbFwiO1xuaW1wb3J0IHsgRmphbGxMb2dnZXIgfSBmcm9tIFwiLi92YWxpZGF0aW9uTG9nZ2VyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvc3RBbGxvY2F0aW9uVGFncyB7XG4gIFRhZ0tleTogc3RyaW5nO1xuICBTdGF0dXM6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWcge1xuICByZWdpb246IHN0cmluZztcbiAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgZXhpc3RpbmdBY2NvdW50czogQWNjb3VudFtdO1xuICBjb3N0QWxsb2NhdGlvblRhZ3M6IElDb3N0QWxsb2NhdGlvblRhZ3NbXTtcbiAgYWNjb3VudElkPzogc3RyaW5nO1xuICBhY2NvdW50TmFtZT86IHN0cmluZztcbiAgYWNjb3VudElkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHByaW1hcnlSZWdpb24/OiBzdHJpbmc7XG4gIHNlY29uZGFyeVJlZ2lvbnM6IHN0cmluZ1tdO1xuICBhbGxSZWdpb25zOiBzdHJpbmdbXTtcbiAgZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpZyhhY2NvdW50TmFtZT86IHN0cmluZyk6IENvbmZpZyB7XG4gIGNvbnN0IGFwcCA9IEFwcC5nZXRJbnN0YW5jZSgpO1xuXG4gIGNvbnN0IGNvbmZpZzogQ29uZmlnID0ge1xuICAgIHJlZ2lvbjogcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiB8fCBcInVzLWVhc3QtMVwiLFxuICAgIGVudmlyb25tZW50OiBcInVua25vd25cIixcbiAgICBleGlzdGluZ0FjY291bnRzOiBbXSxcbiAgICBjb3N0QWxsb2NhdGlvblRhZ3M6IFtdLFxuICAgIHNlY29uZGFyeVJlZ2lvbnM6IFtdLFxuICAgIGFsbFJlZ2lvbnM6IFtdXG4gIH07XG5cbiAgaWYgKCFwcm9jZXNzLmVudi5BV1NfUkVHSU9OKVxuICAgIEZqYWxsTG9nZ2VyLndhcm4oXCJBV1NfUkVHSU9OIGlzIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gdXMtZWFzdC0xXCIpO1xuXG4gIC8vIFJldHJpZXZlIGFueSBwcmUtZXhpc3RpbmcgYWNjb3VudCBjb25maWdcbiAgY29uc3QgZmphbGxDb25maWcgPSBGamFsbENvbmZpZy5sb2FkQ29uZmlnKCk7XG5cbiAgLy8gR2V0IGV4aXN0aW5nIGFjY291bnRzXG4gIGNvbmZpZy5leGlzdGluZ0FjY291bnRzID0gZmphbGxDb25maWcuZ2V0RXhpc3RpbmdBY2NvdW50cygpO1xuXG4gIC8vIEJ1aWxkIGFjY291bnQgSURzIG1hcCBmcm9tIHByb3ZpZGVyIGFjY291bnRzIChuYW1lIOKGkiBpZClcbiAgY29uc3QgcHJvdmlkZXJBY2NvdW50cyA9IGZqYWxsQ29uZmlnLnJvb3RDb25maWcucHJvdmlkZXJBY2NvdW50cyB8fCBbXTtcbiAgaWYgKHByb3ZpZGVyQWNjb3VudHMubGVuZ3RoID4gMCkge1xuICAgIGNvbmZpZy5hY2NvdW50SWRzID0ge307XG4gICAgZm9yIChjb25zdCBwYSBvZiBwcm92aWRlckFjY291bnRzKSB7XG4gICAgICBjb25maWcuYWNjb3VudElkc1twYS5uYW1lXSA9IHBhLmlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdldCBjb3N0IGFsbG9jYXRpb24gdGFnc1xuICBjb25maWcuY29zdEFsbG9jYXRpb25UYWdzID0gZmphbGxDb25maWcuZ2V0Q29zdEFsbG9jYXRpb25UYWdzKCk7XG5cbiAgLy8gR2V0IHJlZ2lvbnMgY29uZmlndXJhdGlvblxuICBjb25maWcucHJpbWFyeVJlZ2lvbiA9IGZqYWxsQ29uZmlnLmdldFByaW1hcnlSZWdpb24oKTtcbiAgY29uZmlnLnNlY29uZGFyeVJlZ2lvbnMgPSBmamFsbENvbmZpZy5nZXRTZWNvbmRhcnlSZWdpb25zKCkgfHwgW107XG4gIGNvbmZpZy5hbGxSZWdpb25zID0gZmphbGxDb25maWcuZ2V0QWxsUmVnaW9ucygpO1xuICBjb25maWcuZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbiA9IGZqYWxsQ29uZmlnLmdldERpc2FzdGVyUmVjb3ZlcnlSZWdpb24oKTtcblxuICAvLyBJZiB1bnNwZWNpZmllZCBhY2NvdW50IG5hbWUgLSB0cnkgdG8gcmV0cmlldmUgZnJvbSBjb250ZXh0XG4gIGlmICghYWNjb3VudE5hbWUpIGFjY291bnROYW1lID0gYXBwLm5vZGUudHJ5R2V0Q29udGV4dChcImFjY291bnROYW1lXCIpO1xuICAvLyBJZiB3ZSBoYXZlIGFuIGFjY291bnQgbmFtZSAtIGxvb2sgZm9yIGFzc29jaWF0ZWQgcHJvdmlkZXIgYWNjb3VudFxuICBpZiAoYWNjb3VudE5hbWUpIHtcbiAgICBjb25zdCBwcm92aWRlckFjY291bnQgPSBmamFsbENvbmZpZy5nZXRQcm92aWRlckFjY291bnQoYWNjb3VudE5hbWUpO1xuICAgIGlmIChwcm92aWRlckFjY291bnQpIHtcbiAgICAgIGNvbmZpZy5hY2NvdW50SWQgPSBwcm92aWRlckFjY291bnQuaWQ7XG4gICAgICBjb25maWcuYWNjb3VudE5hbWUgPSBwcm92aWRlckFjY291bnQubmFtZTtcbiAgICAgIGNvbmZpZy5lbnZpcm9ubWVudCA9IHByb3ZpZGVyQWNjb3VudC5lbnZpcm9ubWVudDtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB3ZSBzdGlsbCBkb24ndCBoYXZlIGFuIGFjY291bnQgbmFtZSAtIHRyeSB0byByZXRyaWV2ZSBhY2NvdW50SWQgZnJvbSBjb250ZXh0XG4gIGlmICghY29uZmlnLmFjY291bnROYW1lKSB7XG4gICAgY29uc3QgYWNjb3VudElkID0gYXBwLm5vZGUudHJ5R2V0Q29udGV4dChcImFjY291bnRJZFwiKTtcbiAgICAvLyBJZiB3ZSBmaW5kIGFuIGFjY291bnRJZCAtIHJldHJpZXZlIHRoZSBhc3NvY2lhdGVkIGFjY291bnQgZnJvbSBjb25maWdcbiAgICBpZiAoYWNjb3VudElkKSB7XG4gICAgICBjb25maWcuYWNjb3VudElkID0gYWNjb3VudElkO1xuXG4gICAgICBjb25zdCBwcm92aWRlckFjY291bnQgPSBmamFsbENvbmZpZy5nZXRQcm92aWRlckFjY291bnRCeUlkKGFjY291bnRJZCk7XG4gICAgICBpZiAocHJvdmlkZXJBY2NvdW50KSB7XG4gICAgICAgIGNvbmZpZy5hY2NvdW50TmFtZSA9IHByb3ZpZGVyQWNjb3VudC5uYW1lO1xuICAgICAgICBjb25maWcuZW52aXJvbm1lbnQgPSBwcm92aWRlckFjY291bnQuZW52aXJvbm1lbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgZm9yIGVudmlyb25tZW50IGZyb20gY29udGV4dCAoaGlnaGVzdCBwcmlvcml0eSlcbiAgY29uc3QgY29udGV4dEVudmlyb25tZW50ID0gYXBwLm5vZGUudHJ5R2V0Q29udGV4dChcImVudmlyb25tZW50XCIpO1xuICBpZiAoY29udGV4dEVudmlyb25tZW50KSB7XG4gICAgY29uZmlnLmVudmlyb25tZW50ID0gY29udGV4dEVudmlyb25tZW50O1xuICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52LkVOVklST05NRU5UICYmIGNvbmZpZy5lbnZpcm9ubWVudCA9PT0gXCJ1bmtub3duXCIpIHtcbiAgICAvLyBGYWxsIGJhY2sgdG8gRU5WSVJPTk1FTlQgdmFyaWFibGUgaWYgbm8gb3RoZXIgc291cmNlIGZvdW5kXG4gICAgY29uZmlnLmVudmlyb25tZW50ID0gcHJvY2Vzcy5lbnYuRU5WSVJPTk1FTlQ7XG4gIH1cblxuICByZXR1cm4gY29uZmlnO1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRDb25maWc7XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL2dldENvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1CQSw4QkF3R0M7QUF6SEQsZ0NBQXlCO0FBRXpCLHlEQUFpRDtBQWVqRCxTQUFnQixTQUFTLENBQUMsV0FBb0I7SUFDNUMsTUFBTSxHQUFHLEdBQUcsYUFBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRTlCLE1BQU0sTUFBTSxHQUFXO1FBQ3JCLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxXQUFXO1FBQzdDLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLGdCQUFnQixFQUFFLEVBQUU7UUFDcEIsZ0JBQWdCLEVBQUUsRUFBRTtRQUNwQixVQUFVLEVBQUUsRUFBRTtLQUNmLENBQUM7SUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVO1FBQ3pCLDhCQUFXLENBQUMsSUFBSSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFFckUsSUFBSSxnQkFBZ0IsR0FBc0IsRUFBRSxDQUFDO0lBRTdDLHFFQUFxRTtJQUNyRSxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV6RCxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQztZQUNILE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUE0QixDQUFDO1lBQ3RFLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDO2dCQUMxRCxDQUFDLENBQUUsU0FBUyxDQUFDLGdCQUFzQztnQkFDbkQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNQLE1BQU0sQ0FBQyxhQUFhO2dCQUNsQixPQUFPLFNBQVMsQ0FBQyxhQUFhLEtBQUssUUFBUTtvQkFDekMs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LENBQzNDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FDNUIsQ0FBQztZQUNGLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQztnQkFDMUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDO1lBQ25ELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pFLElBQUksT0FBTyxrQkFBa0IsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMzQyxNQUFNLENBQUMsV0FBVyxHQUFHLGtCQUFrQixDQUFDO0lBQzFDLENBQUM7U0FBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdkUsNkRBQTZEO1FBQzdELE1BQU0sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7SUFDL0MsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxrQkFBZSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEFjY291bnQgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LW9yZ2FuaXphdGlvbnNcIjtcblxuaW1wb3J0IEFwcCBmcm9tIFwiLi4vYXBwXCI7XG5pbXBvcnQgeyB0eXBlIFByb3ZpZGVyQWNjb3VudCB9IGZyb20gXCJAZmphbGwvdXRpbFwiO1xuaW1wb3J0IHsgRmphbGxMb2dnZXIgfSBmcm9tIFwiLi92YWxpZGF0aW9uTG9nZ2VyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnIHtcbiAgcmVnaW9uOiBzdHJpbmc7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIGV4aXN0aW5nQWNjb3VudHM6IEFjY291bnRbXTtcbiAgYWNjb3VudElkPzogc3RyaW5nO1xuICBhY2NvdW50TmFtZT86IHN0cmluZztcbiAgYWNjb3VudElkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHByaW1hcnlSZWdpb24/OiBzdHJpbmc7XG4gIHNlY29uZGFyeVJlZ2lvbnM6IHN0cmluZ1tdO1xuICBhbGxSZWdpb25zOiBzdHJpbmdbXTtcbiAgZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpZyhhY2NvdW50TmFtZT86IHN0cmluZyk6IENvbmZpZyB7XG4gIGNvbnN0IGFwcCA9IEFwcC5nZXRJbnN0YW5jZSgpO1xuXG4gIGNvbnN0IGNvbmZpZzogQ29uZmlnID0ge1xuICAgIHJlZ2lvbjogcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiB8fCBcInVzLWVhc3QtMVwiLFxuICAgIGVudmlyb25tZW50OiBcInVua25vd25cIixcbiAgICBleGlzdGluZ0FjY291bnRzOiBbXSxcbiAgICBzZWNvbmRhcnlSZWdpb25zOiBbXSxcbiAgICBhbGxSZWdpb25zOiBbXVxuICB9O1xuXG4gIGlmICghcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTilcbiAgICBGamFsbExvZ2dlci53YXJuKFwiQVdTX1JFR0lPTiBpcyBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIHVzLWVhc3QtMVwiKTtcblxuICBsZXQgcHJvdmlkZXJBY2NvdW50czogUHJvdmlkZXJBY2NvdW50W10gPSBbXTtcblxuICAvLyBQcmltYXJ5OiByZWFkIG9yZyBjb25maWcgZnJvbSBDREsgY29udGV4dCAoaW5qZWN0ZWQgYnkgQ0xJL3dvcmtlcilcbiAgY29uc3Qgb3JnQ29uZmlnUmF3ID0gYXBwLm5vZGUudHJ5R2V0Q29udGV4dChcIm9yZ0NvbmZpZ1wiKTtcblxuICBpZiAodHlwZW9mIG9yZ0NvbmZpZ1JhdyA9PT0gXCJzdHJpbmdcIikge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvcmdDb25maWcgPSBKU09OLnBhcnNlKG9yZ0NvbmZpZ1JhdykgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICBwcm92aWRlckFjY291bnRzID0gQXJyYXkuaXNBcnJheShvcmdDb25maWcucHJvdmlkZXJBY2NvdW50cylcbiAgICAgICAgPyAob3JnQ29uZmlnLnByb3ZpZGVyQWNjb3VudHMgYXMgUHJvdmlkZXJBY2NvdW50W10pXG4gICAgICAgIDogW107XG4gICAgICBjb25maWcucHJpbWFyeVJlZ2lvbiA9XG4gICAgICAgIHR5cGVvZiBvcmdDb25maWcucHJpbWFyeVJlZ2lvbiA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgID8gb3JnQ29uZmlnLnByaW1hcnlSZWdpb25cbiAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbmZpZy5zZWNvbmRhcnlSZWdpb25zID0gQXJyYXkuaXNBcnJheShvcmdDb25maWcuc2Vjb25kYXJ5UmVnaW9ucylcbiAgICAgICAgPyAob3JnQ29uZmlnLnNlY29uZGFyeVJlZ2lvbnMgYXMgc3RyaW5nW10pXG4gICAgICAgIDogW107XG4gICAgICBjb25maWcuZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbiA9XG4gICAgICAgIHR5cGVvZiBvcmdDb25maWcuZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbiA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgID8gb3JnQ29uZmlnLmRpc2FzdGVyUmVjb3ZlcnlSZWdpb25cbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgLy8gQ29tcHV0ZSBhbGxSZWdpb25zIGZyb20gb3JnIGNvbmZpZyBmaWVsZHNcbiAgICAgIGNvbnN0IHJlZ2lvbnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgIGlmIChjb25maWcucHJpbWFyeVJlZ2lvbikgcmVnaW9ucy5hZGQoY29uZmlnLnByaW1hcnlSZWdpb24pO1xuICAgICAgZm9yIChjb25zdCByIG9mIGNvbmZpZy5zZWNvbmRhcnlSZWdpb25zKSByZWdpb25zLmFkZChyKTtcbiAgICAgIGlmIChjb25maWcuZGlzYXN0ZXJSZWNvdmVyeVJlZ2lvbilcbiAgICAgICAgcmVnaW9ucy5hZGQoY29uZmlnLmRpc2FzdGVyUmVjb3ZlcnlSZWdpb24pO1xuICAgICAgY29uZmlnLmFsbFJlZ2lvbnMgPSBbLi4ucmVnaW9uc107XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIEZqYWxsTG9nZ2VyLndhcm4oXG4gICAgICAgIGBGYWlsZWQgdG8gcGFyc2Ugb3JnQ29uZmlnIGZyb20gQ0RLIGNvbnRleHQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpfWBcbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIEZqYWxsTG9nZ2VyLndhcm4oXG4gICAgICBcIk5vIG9yZ0NvbmZpZyBjb250ZXh0IHByb3ZpZGVkIOKAlCBvcmctbGV2ZWwgY29uZmlnIChhY2NvdW50cywgcmVnaW9ucykgd2lsbCBiZSBlbXB0eVwiXG4gICAgKTtcbiAgfVxuXG4gIC8vIEJ1aWxkIGFjY291bnQgSURzIG1hcCBmcm9tIHByb3ZpZGVyIGFjY291bnRzIChuYW1lIOKGkiBpZClcbiAgaWYgKHByb3ZpZGVyQWNjb3VudHMubGVuZ3RoID4gMCkge1xuICAgIGNvbmZpZy5hY2NvdW50SWRzID0ge307XG4gICAgZm9yIChjb25zdCBwYSBvZiBwcm92aWRlckFjY291bnRzKSB7XG4gICAgICBjb25maWcuYWNjb3VudElkc1twYS5uYW1lXSA9IHBhLmlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHVuc3BlY2lmaWVkIGFjY291bnQgbmFtZSAtIHRyeSB0byByZXRyaWV2ZSBmcm9tIGNvbnRleHRcbiAgaWYgKCFhY2NvdW50TmFtZSkgYWNjb3VudE5hbWUgPSBhcHAubm9kZS50cnlHZXRDb250ZXh0KFwiYWNjb3VudE5hbWVcIik7XG4gIC8vIElmIHdlIGhhdmUgYW4gYWNjb3VudCBuYW1lIC0gbG9vayBmb3IgYXNzb2NpYXRlZCBwcm92aWRlciBhY2NvdW50XG4gIGlmIChhY2NvdW50TmFtZSkge1xuICAgIGNvbnN0IHByb3ZpZGVyQWNjb3VudCA9IHByb3ZpZGVyQWNjb3VudHMuZmluZChcbiAgICAgIChwYSkgPT4gcGEubmFtZSA9PT0gYWNjb3VudE5hbWVcbiAgICApO1xuICAgIGlmIChwcm92aWRlckFjY291bnQpIHtcbiAgICAgIGNvbmZpZy5hY2NvdW50SWQgPSBwcm92aWRlckFjY291bnQuaWQ7XG4gICAgICBjb25maWcuYWNjb3VudE5hbWUgPSBwcm92aWRlckFjY291bnQubmFtZTtcbiAgICAgIGNvbmZpZy5lbnZpcm9ubWVudCA9IHByb3ZpZGVyQWNjb3VudC5lbnZpcm9ubWVudDtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB3ZSBzdGlsbCBkb24ndCBoYXZlIGFuIGFjY291bnQgbmFtZSAtIHRyeSB0byByZXRyaWV2ZSBhY2NvdW50SWQgZnJvbSBjb250ZXh0XG4gIGlmICghY29uZmlnLmFjY291bnROYW1lKSB7XG4gICAgY29uc3QgYWNjb3VudElkID0gYXBwLm5vZGUudHJ5R2V0Q29udGV4dChcImFjY291bnRJZFwiKTtcbiAgICAvLyBJZiB3ZSBmaW5kIGFuIGFjY291bnRJZCAtIHJldHJpZXZlIHRoZSBhc3NvY2lhdGVkIGFjY291bnQgZnJvbSBjb25maWdcbiAgICBpZiAodHlwZW9mIGFjY291bnRJZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uZmlnLmFjY291bnRJZCA9IGFjY291bnRJZDtcblxuICAgICAgY29uc3QgcHJvdmlkZXJBY2NvdW50ID0gcHJvdmlkZXJBY2NvdW50cy5maW5kKFxuICAgICAgICAocGEpID0+IHBhLmlkID09PSBhY2NvdW50SWRcbiAgICAgICk7XG4gICAgICBpZiAocHJvdmlkZXJBY2NvdW50KSB7XG4gICAgICAgIGNvbmZpZy5hY2NvdW50TmFtZSA9IHByb3ZpZGVyQWNjb3VudC5uYW1lO1xuICAgICAgICBjb25maWcuZW52aXJvbm1lbnQgPSBwcm92aWRlckFjY291bnQuZW52aXJvbm1lbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgZm9yIGVudmlyb25tZW50IGZyb20gY29udGV4dCAoaGlnaGVzdCBwcmlvcml0eSlcbiAgY29uc3QgY29udGV4dEVudmlyb25tZW50ID0gYXBwLm5vZGUudHJ5R2V0Q29udGV4dChcImVudmlyb25tZW50XCIpO1xuICBpZiAodHlwZW9mIGNvbnRleHRFbnZpcm9ubWVudCA9PT0gXCJzdHJpbmdcIikge1xuICAgIGNvbmZpZy5lbnZpcm9ubWVudCA9IGNvbnRleHRFbnZpcm9ubWVudDtcbiAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5FTlZJUk9OTUVOVCAmJiBjb25maWcuZW52aXJvbm1lbnQgPT09IFwidW5rbm93blwiKSB7XG4gICAgLy8gRmFsbCBiYWNrIHRvIEVOVklST05NRU5UIHZhcmlhYmxlIGlmIG5vIG90aGVyIHNvdXJjZSBmb3VuZFxuICAgIGNvbmZpZy5lbnZpcm9ubWVudCA9IHByb2Nlc3MuZW52LkVOVklST05NRU5UO1xuICB9XG5cbiAgcmV0dXJuIGNvbmZpZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0Q29uZmlnO1xuIl19
@@ -1,5 +1,12 @@
1
+ export * from "./backupTierMapping";
1
2
  export * from "./capitaliseString";
3
+ export * from "./connections";
4
+ export * from "./databaseTypes";
2
5
  export * from "./getConfig";
6
+ export * from "./removalPolicy";
3
7
  export * from "./resourceNaming";
4
8
  export * from "./standardTagsAspect";
5
9
  export * from "./validationLogger";
10
+ export * from "./env";
11
+ export * from "./vpcUtils";
12
+ export * from "./domainTypes";
@@ -14,9 +14,16 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./backupTierMapping"), exports);
17
18
  __exportStar(require("./capitaliseString"), exports);
19
+ __exportStar(require("./connections"), exports);
20
+ __exportStar(require("./databaseTypes"), exports);
18
21
  __exportStar(require("./getConfig"), exports);
22
+ __exportStar(require("./removalPolicy"), exports);
19
23
  __exportStar(require("./resourceNaming"), exports);
20
24
  __exportStar(require("./standardTagsAspect"), exports);
21
25
  __exportStar(require("./validationLogger"), exports);
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFtQztBQUNuQyw4Q0FBNEI7QUFDNUIsbURBQWlDO0FBQ2pDLHVEQUFxQztBQUNyQyxxREFBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jYXBpdGFsaXNlU3RyaW5nXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRDb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Jlc291cmNlTmFtaW5nXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGFuZGFyZFRhZ3NBc3BlY3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ZhbGlkYXRpb25Mb2dnZXJcIjtcbiJdfQ==
26
+ __exportStar(require("./env"), exports);
27
+ __exportStar(require("./vpcUtils"), exports);
28
+ __exportStar(require("./domainTypes"), exports);
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNEQUFvQztBQUNwQyxxREFBbUM7QUFDbkMsZ0RBQThCO0FBQzlCLGtEQUFnQztBQUNoQyw4Q0FBNEI7QUFDNUIsa0RBQWdDO0FBQ2hDLG1EQUFpQztBQUNqQyx1REFBcUM7QUFDckMscURBQW1DO0FBQ25DLHdDQUFzQjtBQUN0Qiw2Q0FBMkI7QUFDM0IsZ0RBQThCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYmFja3VwVGllck1hcHBpbmdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NhcGl0YWxpc2VTdHJpbmdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Nvbm5lY3Rpb25zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kYXRhYmFzZVR5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRDb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JlbW92YWxQb2xpY3lcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Jlc291cmNlTmFtaW5nXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGFuZGFyZFRhZ3NBc3BlY3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ZhbGlkYXRpb25Mb2dnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudlwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdnBjVXRpbHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RvbWFpblR5cGVzXCI7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ import { RemovalPolicy } from "aws-cdk-lib";
2
+ export declare function toRemovalPolicy(value?: "DESTROY" | "RETAIN" | "SNAPSHOT"): RemovalPolicy;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toRemovalPolicy = toRemovalPolicy;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ function toRemovalPolicy(value) {
6
+ switch (value) {
7
+ case "DESTROY":
8
+ return aws_cdk_lib_1.RemovalPolicy.DESTROY;
9
+ case "SNAPSHOT":
10
+ return aws_cdk_lib_1.RemovalPolicy.SNAPSHOT;
11
+ case "RETAIN":
12
+ default:
13
+ return aws_cdk_lib_1.RemovalPolicy.RETAIN;
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZhbFBvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlscy9yZW1vdmFsUG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsMENBWUM7QUFkRCw2Q0FBNEM7QUFFNUMsU0FBZ0IsZUFBZSxDQUM3QixLQUF5QztJQUV6QyxRQUFRLEtBQUssRUFBRSxDQUFDO1FBQ2QsS0FBSyxTQUFTO1lBQ1osT0FBTywyQkFBYSxDQUFDLE9BQU8sQ0FBQztRQUMvQixLQUFLLFVBQVU7WUFDYixPQUFPLDJCQUFhLENBQUMsUUFBUSxDQUFDO1FBQ2hDLEtBQUssUUFBUSxDQUFDO1FBQ2Q7WUFDRSxPQUFPLDJCQUFhLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG5leHBvcnQgZnVuY3Rpb24gdG9SZW1vdmFsUG9saWN5KFxuICB2YWx1ZT86IFwiREVTVFJPWVwiIHwgXCJSRVRBSU5cIiB8IFwiU05BUFNIT1RcIlxuKTogUmVtb3ZhbFBvbGljeSB7XG4gIHN3aXRjaCAodmFsdWUpIHtcbiAgICBjYXNlIFwiREVTVFJPWVwiOlxuICAgICAgcmV0dXJuIFJlbW92YWxQb2xpY3kuREVTVFJPWTtcbiAgICBjYXNlIFwiU05BUFNIT1RcIjpcbiAgICAgIHJldHVybiBSZW1vdmFsUG9saWN5LlNOQVBTSE9UO1xuICAgIGNhc2UgXCJSRVRBSU5cIjpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFJlbW92YWxQb2xpY3kuUkVUQUlOO1xuICB9XG59XG4iXX0=
@@ -23,6 +23,10 @@ export declare class StandardTagsAspect implements IAspect {
23
23
  private addIpamPoolTag;
24
24
  /**
25
25
  * Add disaster recovery tier tag to S3 buckets with backupVaultTier property.
26
+ * This serves as a per-resource override when `backupVaultTier` is set on a
27
+ * specific S3 bucket. CDK child tags override parent tags, so this takes
28
+ * precedence over the app-level backup tag set via `App.getApp({ backup })`.
29
+ *
26
30
  * Tag format: fjall:disasterRecovery:tier = "{tier}"
27
31
  *
28
32
  * Tier mapping: