@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
@@ -17,6 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./instanceProfile"), exports);
18
18
  __exportStar(require("./managedPolicy"), exports);
19
19
  __exportStar(require("./policy"), exports);
20
- __exportStar(require("./securityGroup"), exports);
21
20
  __exportStar(require("./role"), exports);
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9pYW0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUFrQztBQUNsQyxrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLGtEQUFnQztBQUNoQyx5Q0FBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9pbnN0YW5jZVByb2ZpbGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21hbmFnZWRQb2xpY3lcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BvbGljeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VjdXJpdHlHcm91cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm9sZVwiO1xuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9pYW0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUFrQztBQUNsQyxrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLHlDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2luc3RhbmNlUHJvZmlsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbWFuYWdlZFBvbGljeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcG9saWN5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb2xlXCI7XG4iXX0=
@@ -2,7 +2,6 @@ export * from "./networking";
2
2
  export * from "./storage";
3
3
  export * from "./base";
4
4
  export * from "./backup";
5
- export * from "./monitoring";
6
5
  export * from "./cdn";
7
6
  export * from "./messaging";
8
7
  export * from "./organisation";
@@ -18,8 +18,7 @@ __exportStar(require("./networking"), exports);
18
18
  __exportStar(require("./storage"), exports);
19
19
  __exportStar(require("./base"), exports);
20
20
  __exportStar(require("./backup"), exports);
21
- __exportStar(require("./monitoring"), exports);
22
21
  __exportStar(require("./cdn"), exports);
23
22
  __exportStar(require("./messaging"), exports);
24
23
  __exportStar(require("./organisation"), exports);
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQTZCO0FBQzdCLDRDQUEwQjtBQUMxQix5Q0FBdUI7QUFDdkIsMkNBQXlCO0FBQ3pCLCtDQUE2QjtBQUM3Qix3Q0FBc0I7QUFDdEIsOENBQTRCO0FBQzVCLGlEQUErQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL25ldHdvcmtpbmdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0b3JhZ2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Jhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2JhY2t1cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9uaXRvcmluZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2RuXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tZXNzYWdpbmdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL29yZ2FuaXNhdGlvblwiO1xuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQTZCO0FBQzdCLDRDQUEwQjtBQUMxQix5Q0FBdUI7QUFDdkIsMkNBQXlCO0FBQ3pCLHdDQUFzQjtBQUN0Qiw4Q0FBNEI7QUFDNUIsaURBQStCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbmV0d29ya2luZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RvcmFnZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYmFja3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jZG5cIjtcbmV4cG9ydCAqIGZyb20gXCIuL21lc3NhZ2luZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vb3JnYW5pc2F0aW9uXCI7XG4iXX0=
@@ -12,7 +12,8 @@ class Trail extends constructs_1.Construct {
12
12
  constructor(scope, id, props) {
13
13
  super(scope, id);
14
14
  const encryptionKey = new secrets_1.CustomerManagedKey(this, `${id}CloudTrailEncryptionKey`, {
15
- aliasName: `cmk/cloudtrail/${id}/encryptionKey`
15
+ aliasName: `cmk/cloudtrail/${id}/encryptionKey`,
16
+ removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY
16
17
  });
17
18
  this.bucket = new storage_1.S3Bucket(this, `${id}CloudTrailBucket`, {
18
19
  bucketName: props.bucketName,
@@ -20,7 +21,6 @@ class Trail extends constructs_1.Construct {
20
21
  encryption: aws_s3_1.BucketEncryption.KMS,
21
22
  encryptionKey: encryptionKey.key,
22
23
  versioned: false,
23
- removalPolicy: aws_cdk_lib_1.RemovalPolicy.RETAIN,
24
24
  lifecycleRules: [{ expiration: aws_cdk_lib_1.Duration.days(365), enabled: true }]
25
25
  });
26
26
  this.bucket.grantReadWrite(new aws_iam_1.ServicePrincipal("cloudtrail.amazonaws.com"));
@@ -30,6 +30,16 @@ class Trail extends constructs_1.Construct {
30
30
  trailName: props.trailName || `${id}Trail`,
31
31
  encryptionKey: encryptionKey.key
32
32
  });
33
+ // TODO: Revert to RemovalPolicy.RETAIN for production
34
+ this.trail.applyRemovalPolicy(aws_cdk_lib_1.RemovalPolicy.DESTROY);
35
+ // Ensure the autoDeleteObjects custom resource is fully provisioned before
36
+ // the trail starts writing to the bucket. Without this, a create-rollback
37
+ // leaves the bucket non-empty (CloudTrail writes logs immediately) and the
38
+ // auto-delete Lambda was never created — causing ROLLBACK_FAILED.
39
+ const autoDeleteResource = this.bucket.node.tryFindChild("AutoDeleteObjectsCustomResource");
40
+ if (autoDeleteResource) {
41
+ this.trail.node.addDependency(autoDeleteResource);
42
+ }
33
43
  }
34
44
  }
35
45
  exports.Trail = Trail;
@@ -42,4 +52,4 @@ class TrailStack extends aws_cdk_lib_1.Stack {
42
52
  }
43
53
  }
44
54
  exports.TrailStack = TrailStack;
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRUcmFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2xvZ2dpbmcvY2xvdWRUcmFpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBNkQ7QUFDN0QseURBQXlEO0FBQ3pELDJDQUF1QztBQUN2Qyx3Q0FBZ0Q7QUFDaEQsd0NBQXNDO0FBQ3RDLCtDQUFzRDtBQUN0RCxpREFBdUQ7QUFNdkQsTUFBYSxLQUFNLFNBQVEsc0JBQVM7SUFJbEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sYUFBYSxHQUFHLElBQUksNEJBQWtCLENBQzFDLElBQUksRUFDSixHQUFHLEVBQUUseUJBQXlCLEVBQzlCO1lBQ0UsU0FBUyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQjtTQUNoRCxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksa0JBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLGtCQUFrQixFQUFFO1lBQ3hELFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM1QixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLFVBQVUsRUFBRSx5QkFBZ0IsQ0FBQyxHQUFHO1lBQ2hDLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRztZQUNoQyxTQUFTLEVBQUUsS0FBSztZQUNoQixhQUFhLEVBQUUsMkJBQWEsQ0FBQyxNQUFNO1lBQ25DLGNBQWMsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLHNCQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNwRSxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FDeEIsSUFBSSwwQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUNqRCxDQUFDO1FBRUYsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUU7WUFDekQsR0FBRyxLQUFLO1lBQ1IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxJQUFJLEdBQUcsRUFBRSxPQUFPO1lBQzFDLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRztTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFuQ0Qsc0JBbUNDO0FBRUQsTUFBYSxVQUFXLFNBQVEsbUJBQUs7SUFDbkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDbEIsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBUkQsZ0NBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSwgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCAqIGFzIENsb3VkVHJhaWwgZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHRyYWlsXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ3VzdG9tZXJNYW5hZ2VkS2V5IH0gZnJvbSBcIi4uL3NlY3JldHNcIjtcbmltcG9ydCB7IFMzQnVja2V0IH0gZnJvbSBcIi4uL3N0b3JhZ2VcIjtcbmltcG9ydCB7IEJ1Y2tldEVuY3J5cHRpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBTZXJ2aWNlUHJpbmNpcGFsIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcblxuaW50ZXJmYWNlIENsb3VkVHJhaWxQcm9wcyBleHRlbmRzIENsb3VkVHJhaWwuVHJhaWxQcm9wcyB7XG4gIGJ1Y2tldE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFRyYWlsIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHRyYWlsOiBDbG91ZFRyYWlsLlRyYWlsO1xuICBwdWJsaWMgcmVhZG9ubHkgYnVja2V0OiBTM0J1Y2tldDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2xvdWRUcmFpbFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGVuY3J5cHRpb25LZXkgPSBuZXcgQ3VzdG9tZXJNYW5hZ2VkS2V5KFxuICAgICAgdGhpcyxcbiAgICAgIGAke2lkfUNsb3VkVHJhaWxFbmNyeXB0aW9uS2V5YCxcbiAgICAgIHtcbiAgICAgICAgYWxpYXNOYW1lOiBgY21rL2Nsb3VkdHJhaWwvJHtpZH0vZW5jcnlwdGlvbktleWBcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5idWNrZXQgPSBuZXcgUzNCdWNrZXQodGhpcywgYCR7aWR9Q2xvdWRUcmFpbEJ1Y2tldGAsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IHByb3BzLmJ1Y2tldE5hbWUsXG4gICAgICBidWNrZXRLZXlFbmFibGVkOiB0cnVlLFxuICAgICAgZW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5LTVMsXG4gICAgICBlbmNyeXB0aW9uS2V5OiBlbmNyeXB0aW9uS2V5LmtleSxcbiAgICAgIHZlcnNpb25lZDogZmFsc2UsXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LlJFVEFJTixcbiAgICAgIGxpZmVjeWNsZVJ1bGVzOiBbeyBleHBpcmF0aW9uOiBEdXJhdGlvbi5kYXlzKDM2NSksIGVuYWJsZWQ6IHRydWUgfV1cbiAgICB9KTtcbiAgICB0aGlzLmJ1Y2tldC5ncmFudFJlYWRXcml0ZShcbiAgICAgIG5ldyBTZXJ2aWNlUHJpbmNpcGFsKFwiY2xvdWR0cmFpbC5hbWF6b25hd3MuY29tXCIpXG4gICAgKTtcblxuICAgIHRoaXMudHJhaWwgPSBuZXcgQ2xvdWRUcmFpbC5UcmFpbCh0aGlzLCBgJHtpZH1DbG91ZFRyYWlsYCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBidWNrZXQ6IHRoaXMuYnVja2V0LFxuICAgICAgdHJhaWxOYW1lOiBwcm9wcy50cmFpbE5hbWUgfHwgYCR7aWR9VHJhaWxgLFxuICAgICAgZW5jcnlwdGlvbktleTogZW5jcnlwdGlvbktleS5rZXlcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHJhaWxTdGFjayBleHRlbmRzIFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENsb3VkVHJhaWxQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBuZXcgVHJhaWwodGhpcywgaWQsIHtcbiAgICAgIC4uLnByb3BzXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRUcmFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2xvZ2dpbmcvY2xvdWRUcmFpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBNkQ7QUFDN0QseURBQXlEO0FBQ3pELDJDQUF1QztBQUN2Qyx3Q0FBZ0Q7QUFDaEQsd0NBQXNDO0FBQ3RDLCtDQUFzRDtBQUN0RCxpREFBdUQ7QUFNdkQsTUFBYSxLQUFNLFNBQVEsc0JBQVM7SUFJbEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sYUFBYSxHQUFHLElBQUksNEJBQWtCLENBQzFDLElBQUksRUFDSixHQUFHLEVBQUUseUJBQXlCLEVBQzlCO1lBQ0UsU0FBUyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQjtZQUMvQyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1NBQ3JDLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxrQkFBUSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsa0JBQWtCLEVBQUU7WUFDeEQsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsVUFBVSxFQUFFLHlCQUFnQixDQUFDLEdBQUc7WUFDaEMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHO1lBQ2hDLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLGNBQWMsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLHNCQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNwRSxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FDeEIsSUFBSSwwQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUNqRCxDQUFDO1FBRUYsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUU7WUFDekQsR0FBRyxLQUFLO1lBQ1IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxJQUFJLEdBQUcsRUFBRSxPQUFPO1lBQzFDLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRztTQUNqQyxDQUFDLENBQUM7UUFDSCxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQywyQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXJELDJFQUEyRTtRQUMzRSwwRUFBMEU7UUFDMUUsMkVBQTJFO1FBQzNFLGtFQUFrRTtRQUNsRSxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FDdEQsaUNBQWlDLENBQ2xDLENBQUM7UUFDRixJQUFJLGtCQUFrQixFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUErQixDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWhERCxzQkFnREM7QUFFRCxNQUFhLFVBQVcsU0FBUSxtQkFBSztJQUNuQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUNsQixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFSRCxnQ0FRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uLCBSZW1vdmFsUG9saWN5LCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgQ2xvdWRUcmFpbCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkdHJhaWxcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBDdXN0b21lck1hbmFnZWRLZXkgfSBmcm9tIFwiLi4vc2VjcmV0c1wiO1xuaW1wb3J0IHsgUzNCdWNrZXQgfSBmcm9tIFwiLi4vc3RvcmFnZVwiO1xuaW1wb3J0IHsgQnVja2V0RW5jcnlwdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7IFNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuXG5pbnRlcmZhY2UgQ2xvdWRUcmFpbFByb3BzIGV4dGVuZHMgQ2xvdWRUcmFpbC5UcmFpbFByb3BzIHtcbiAgYnVja2V0TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgVHJhaWwgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgdHJhaWw6IENsb3VkVHJhaWwuVHJhaWw7XG4gIHB1YmxpYyByZWFkb25seSBidWNrZXQ6IFMzQnVja2V0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDbG91ZFRyYWlsUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZW5jcnlwdGlvbktleSA9IG5ldyBDdXN0b21lck1hbmFnZWRLZXkoXG4gICAgICB0aGlzLFxuICAgICAgYCR7aWR9Q2xvdWRUcmFpbEVuY3J5cHRpb25LZXlgLFxuICAgICAge1xuICAgICAgICBhbGlhc05hbWU6IGBjbWsvY2xvdWR0cmFpbC8ke2lkfS9lbmNyeXB0aW9uS2V5YCxcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuYnVja2V0ID0gbmV3IFMzQnVja2V0KHRoaXMsIGAke2lkfUNsb3VkVHJhaWxCdWNrZXRgLCB7XG4gICAgICBidWNrZXROYW1lOiBwcm9wcy5idWNrZXROYW1lLFxuICAgICAgYnVja2V0S2V5RW5hYmxlZDogdHJ1ZSxcbiAgICAgIGVuY3J5cHRpb246IEJ1Y2tldEVuY3J5cHRpb24uS01TLFxuICAgICAgZW5jcnlwdGlvbktleTogZW5jcnlwdGlvbktleS5rZXksXG4gICAgICB2ZXJzaW9uZWQ6IGZhbHNlLFxuICAgICAgbGlmZWN5Y2xlUnVsZXM6IFt7IGV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoMzY1KSwgZW5hYmxlZDogdHJ1ZSB9XVxuICAgIH0pO1xuICAgIHRoaXMuYnVja2V0LmdyYW50UmVhZFdyaXRlKFxuICAgICAgbmV3IFNlcnZpY2VQcmluY2lwYWwoXCJjbG91ZHRyYWlsLmFtYXpvbmF3cy5jb21cIilcbiAgICApO1xuXG4gICAgdGhpcy50cmFpbCA9IG5ldyBDbG91ZFRyYWlsLlRyYWlsKHRoaXMsIGAke2lkfUNsb3VkVHJhaWxgLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGJ1Y2tldDogdGhpcy5idWNrZXQsXG4gICAgICB0cmFpbE5hbWU6IHByb3BzLnRyYWlsTmFtZSB8fCBgJHtpZH1UcmFpbGAsXG4gICAgICBlbmNyeXB0aW9uS2V5OiBlbmNyeXB0aW9uS2V5LmtleVxuICAgIH0pO1xuICAgIC8vIFRPRE86IFJldmVydCB0byBSZW1vdmFsUG9saWN5LlJFVEFJTiBmb3IgcHJvZHVjdGlvblxuICAgIHRoaXMudHJhaWwuYXBwbHlSZW1vdmFsUG9saWN5KFJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG5cbiAgICAvLyBFbnN1cmUgdGhlIGF1dG9EZWxldGVPYmplY3RzIGN1c3RvbSByZXNvdXJjZSBpcyBmdWxseSBwcm92aXNpb25lZCBiZWZvcmVcbiAgICAvLyB0aGUgdHJhaWwgc3RhcnRzIHdyaXRpbmcgdG8gdGhlIGJ1Y2tldC4gV2l0aG91dCB0aGlzLCBhIGNyZWF0ZS1yb2xsYmFja1xuICAgIC8vIGxlYXZlcyB0aGUgYnVja2V0IG5vbi1lbXB0eSAoQ2xvdWRUcmFpbCB3cml0ZXMgbG9ncyBpbW1lZGlhdGVseSkgYW5kIHRoZVxuICAgIC8vIGF1dG8tZGVsZXRlIExhbWJkYSB3YXMgbmV2ZXIgY3JlYXRlZCDigJQgY2F1c2luZyBST0xMQkFDS19GQUlMRUQuXG4gICAgY29uc3QgYXV0b0RlbGV0ZVJlc291cmNlID0gdGhpcy5idWNrZXQubm9kZS50cnlGaW5kQ2hpbGQoXG4gICAgICBcIkF1dG9EZWxldGVPYmplY3RzQ3VzdG9tUmVzb3VyY2VcIlxuICAgICk7XG4gICAgaWYgKGF1dG9EZWxldGVSZXNvdXJjZSkge1xuICAgICAgdGhpcy50cmFpbC5ub2RlLmFkZERlcGVuZGVuY3koYXV0b0RlbGV0ZVJlc291cmNlIGFzIENvbnN0cnVjdCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUcmFpbFN0YWNrIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2xvdWRUcmFpbFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBUcmFpbCh0aGlzLCBpZCwge1xuICAgICAgLi4ucHJvcHNcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from "./cloudTrail";
2
+ export * from "./logGroup";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./cloudTrail"), exports);
18
+ __exportStar(require("./logGroup"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9sb2dnaW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBNkI7QUFDN0IsNkNBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY2xvdWRUcmFpbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbG9nR3JvdXBcIjtcbiJdfQ==
@@ -1,3 +1,4 @@
1
- export * from "./sqs";
2
- export * from "./sns";
3
1
  export * from "./eventbridge";
2
+ export * from "./sns";
3
+ export * from "./sqs";
4
+ export * from "./utils";
@@ -14,7 +14,8 @@ 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("./sqs"), exports);
18
- __exportStar(require("./sns"), exports);
19
17
  __exportStar(require("./eventbridge"), exports);
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9tZXNzYWdpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUFzQjtBQUN0Qix3Q0FBc0I7QUFDdEIsZ0RBQThCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vc3FzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zbnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V2ZW50YnJpZGdlXCI7XG4iXX0=
18
+ __exportStar(require("./sns"), exports);
19
+ __exportStar(require("./sqs"), exports);
20
+ __exportStar(require("./utils"), exports);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9tZXNzYWdpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUE4QjtBQUM5Qix3Q0FBc0I7QUFDdEIsd0NBQXNCO0FBQ3RCLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2V2ZW50YnJpZGdlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zbnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Nxc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHNcIjtcbiJdfQ==
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SQSQueue = exports.SQS_LIMITS = void 0;
4
4
  const constructs_1 = require("constructs");
5
5
  const aws_cdk_lib_1 = require("aws-cdk-lib");
6
+ const capitaliseString_1 = require("../../../utils/capitaliseString");
6
7
  const aws_sqs_1 = require("aws-cdk-lib/aws-sqs");
7
8
  const utils_1 = require("./utils");
8
9
  /**
@@ -80,6 +81,8 @@ class SQSQueue extends constructs_1.Construct {
80
81
  constructor(scope, id, props) {
81
82
  super(scope, id);
82
83
  this.id = id;
84
+ // Sanitise id for CloudFormation output keys (must be alphanumeric)
85
+ const outputName = (0, capitaliseString_1.toPascalCase)(id);
83
86
  const isFifo = props.queueType === "fifo";
84
87
  const queueName = props.queueName
85
88
  ? isFifo
@@ -114,13 +117,13 @@ class SQSQueue extends constructs_1.Construct {
114
117
  maxReceiveCount: props.deadLetterQueue.maxReceiveCount ??
115
118
  SQS_LIMITS.DEAD_LETTER_QUEUE.DEFAULT_RECEIVE_COUNT
116
119
  };
117
- new aws_cdk_lib_1.CfnOutput(this, `${id}DeadLetterQueueUrl`, {
118
- key: `${id}DeadLetterQueueUrl`,
120
+ new aws_cdk_lib_1.CfnOutput(this, `${outputName}DeadLetterQueueUrl`, {
121
+ key: `${outputName}DeadLetterQueueUrl`,
119
122
  value: this.dlq.queueUrl,
120
123
  description: `Dead letter queue URL for ${id}`
121
124
  });
122
- new aws_cdk_lib_1.CfnOutput(this, `${id}DeadLetterQueueArn`, {
123
- key: `${id}DeadLetterQueueArn`,
125
+ new aws_cdk_lib_1.CfnOutput(this, `${outputName}DeadLetterQueueArn`, {
126
+ key: `${outputName}DeadLetterQueueArn`,
124
127
  value: this.dlq.queueArn,
125
128
  description: `Dead letter queue ARN for ${id}`
126
129
  });
@@ -155,18 +158,18 @@ class SQSQueue extends constructs_1.Construct {
155
158
  : undefined,
156
159
  removalPolicy: (0, utils_1.toRemovalPolicy)(props.removalPolicy)
157
160
  });
158
- new aws_cdk_lib_1.CfnOutput(this, `${id}QueueUrl`, {
159
- key: `${id}QueueUrl`,
161
+ new aws_cdk_lib_1.CfnOutput(this, `${outputName}QueueUrl`, {
162
+ key: `${outputName}QueueUrl`,
160
163
  value: this.queue.queueUrl,
161
164
  description: `SQS queue URL for ${id}`
162
165
  });
163
- new aws_cdk_lib_1.CfnOutput(this, `${id}QueueArn`, {
164
- key: `${id}QueueArn`,
166
+ new aws_cdk_lib_1.CfnOutput(this, `${outputName}QueueArn`, {
167
+ key: `${outputName}QueueArn`,
165
168
  value: this.queue.queueArn,
166
169
  description: `SQS queue ARN for ${id}`
167
170
  });
168
- new aws_cdk_lib_1.CfnOutput(this, `${id}QueueName`, {
169
- key: `${id}QueueName`,
171
+ new aws_cdk_lib_1.CfnOutput(this, `${outputName}QueueName`, {
172
+ key: `${outputName}QueueName`,
170
173
  value: this.queue.queueName,
171
174
  description: `SQS queue name for ${id}`
172
175
  });
@@ -228,4 +231,4 @@ class SQSQueue extends constructs_1.Construct {
228
231
  }
229
232
  }
230
233
  exports.SQSQueue = SQSQueue;
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvbWVzc2FnaW5nL3Nxcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFDdkMsNkNBQWtEO0FBQ2xELGlEQU82QjtBQUU3QixtQ0FBMEM7QUFFMUM7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLEdBQUc7SUFDakIsa0JBQWtCLEVBQUU7UUFDbEIsV0FBVyxFQUFFLENBQUM7UUFDZCxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVc7UUFDL0IsZUFBZSxFQUFFLEVBQUU7S0FDcEI7SUFDRCxpQkFBaUIsRUFBRTtRQUNqQixXQUFXLEVBQUUsRUFBRSxFQUFFLFdBQVc7UUFDNUIsV0FBVyxFQUFFLE9BQU8sRUFBRSxVQUFVO1FBQ2hDLGVBQWUsRUFBRSxNQUFNLEVBQUUsU0FBUztRQUNsQyxZQUFZLEVBQUUsQ0FBQztLQUNoQjtJQUNELEtBQUssRUFBRTtRQUNMLFdBQVcsRUFBRSxDQUFDO1FBQ2QsV0FBVyxFQUFFLEdBQUcsQ0FBQyxhQUFhO0tBQy9CO0lBQ0QsaUJBQWlCLEVBQUU7UUFDakIsV0FBVyxFQUFFLENBQUM7UUFDZCxXQUFXLEVBQUUsRUFBRTtLQUNoQjtJQUNELFlBQVksRUFBRTtRQUNaLFNBQVMsRUFBRSxDQUFDO1FBQ1osU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO0tBQzVCO0lBQ0QsaUJBQWlCLEVBQUU7UUFDakIsaUJBQWlCLEVBQUUsQ0FBQztRQUNwQixpQkFBaUIsRUFBRSxJQUFJO1FBQ3ZCLHFCQUFxQixFQUFFLENBQUM7UUFDeEIsc0JBQXNCLEVBQUUsRUFBRTtLQUMzQjtJQUNELEtBQUssRUFBRTtRQUNMLFFBQVEsRUFBRSxDQUFDO1FBQ1gsUUFBUSxFQUFFLEVBQUU7S0FDYjtDQUNPLENBQUM7QUFFRixnQ0FBVTtBQXVCbkIsU0FBUyxZQUFZLENBQ25CLFVBQTJDO0lBRTNDLFFBQVEsVUFBVSxF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QkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUFoTEQsNEJBZ0xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IENmbk91dHB1dCwgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7XG4gIFF1ZXVlLFxuICB0eXBlIElRdWV1ZSxcbiAgdHlwZSBEZWFkTGV0dGVyUXVldWUsXG4gIFF1ZXVlRW5jcnlwdGlvbixcbiAgRmlmb1Rocm91Z2hwdXRMaW1pdCxcbiAgRGVkdXBsaWNhdGlvblNjb3BlXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3FzXCI7XG5pbXBvcnQgeyB0eXBlIElHcmFudGFibGUsIHR5cGUgR3JhbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgdG9SZW1vdmFsUG9saWN5IH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuLyoqXG4gKiBBV1MgU1FTIHNlcnZpY2UgbGltaXRzIGFuZCBkZWZhdWx0cy5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU1NpbXBsZVF1ZXVlU2VydmljZS9sYXRlc3QvU1FTRGV2ZWxvcGVyR3VpZGUvc3FzLXF1b3Rhcy5odG1sXG4gKi9cbmNvbnN0IFNRU19MSU1JVFMgPSB7XG4gIFZJU0lCSUxJVFlfVElNRU9VVDoge1xuICAgIE1JTl9TRUNPTkRTOiAwLFxuICAgIE1BWF9TRUNPTkRTOiA0MzIwMCwgLy8gMTIgaG91cnNcbiAgICBERUZBVUxUX1NFQ09ORFM6IDMwXG4gIH0sXG4gIE1FU1NBR0VfUkVURU5USU9OOiB7XG4gICAgTUlOX1NFQ09ORFM6IDYwLCAvLyAxIG1pbnV0ZVxuICAgIE1BWF9TRUNPTkRTOiAxMjA5NjAwLCAvLyAxNCBkYXlzXG4gICAgREVGQVVMVF9TRUNPTkRTOiAzNDU2MDAsIC8vIDQgZGF5c1xuICAgIERFRkFVTFRfREFZUzogNFxuICB9LFxuICBERUxBWToge1xuICAgIE1JTl9TRUNPTkRTOiAwLFxuICAgIE1BWF9TRUNPTkRTOiA5MDAgLy8gMTUgbWludXRlc1xuICB9LFxuICBSRUNFSVZFX1dBSVRfVElNRToge1xuICAgIE1JTl9TRUNPTkRTOiAwLFxuICAgIE1BWF9TRUNPTkRTOiAyMFxuICB9LFxuICBNRVNTQUdFX1NJWkU6IHtcbiAgICBNSU5fQllURVM6IDEsXG4gICAgTUFYX0JZVEVTOiAyNjIxNDQgLy8gMjU2IEtCXG4gIH0sXG4gIERFQURfTEVUVEVSX1FVRVVFOiB7XG4gICAgTUlOX1JFQ0VJVkVfQ09VTlQ6IDEsXG4gICAgTUFYX1JFQ0VJVkVfQ09VTlQ6IDEwMDAsXG4gICAgREVGQVVMVF9SRUNFSVZFX0NPVU5UOiAzLFxuICAgIERFRkFVTFRfUkVURU5USU9OX0RBWVM6IDE0XG4gIH0sXG4gIEJBVENIOiB7XG4gICAgTUlOX1NJWkU6IDEsXG4gICAgTUFYX1NJWkU6IDEwXG4gIH1cbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB7IFNRU19MSU1JVFMgfTtcblxuZXhwb3J0IGludGVyZmFjZSBTUVNRdWV1ZVByb3BzIHtcbiAgcXVldWVOYW1lPzogc3RyaW5nO1xuICBxdWV1ZVR5cGU/OiBcInN0YW5kYXJkXCIgfCBcImZpZm9cIjtcbiAgdmlzaWJpbGl0eVRpbWVvdXQ/OiBudW1iZXI7XG4gIG1lc3NhZ2VSZXRlbnRpb25QZXJpb2Q/OiBudW1iZXI7XG4gIHJlY2VpdmVNZXNzYWdlV2FpdFRpbWU/OiBudW1iZXI7XG4gIG1heE1lc3NhZ2VTaXplPzogbnVtYmVyO1xuICBkZWxpdmVyeURlbGF5PzogbnVtYmVyO1xuICBkZWFkTGV0dGVyUXVldWU/OiB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICBtYXhSZWNlaXZlQ291bnQ/OiBudW1iZXI7XG4gICAgcXVldWU/OiBJUXVldWU7XG4gIH07XG4gIGVuY3J5cHRpb24/OiBcIlNTRV9TUVNcIiB8IFwiU1NFX0tNU1wiIHwgXCJOT05FXCI7XG4gIGttc0tleUFybj86IHN0cmluZztcbiAgY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbj86IGJvb2xlYW47XG4gIGZpZm9UaHJvdWdocHV0TGltaXQ/OiBcInBlclF1ZXVlXCIgfCBcInBlck1lc3NhZ2VHcm91cElkXCI7XG4gIGRlZHVwbGljYXRpb25TY29wZT86IFwicXVldWVcIiB8IFwibWVzc2FnZUdyb3VwXCI7XG4gIHJlbW92YWxQb2xpY3k/OiBcIkRFU1RST1lcIiB8IFwiUkVUQUlOXCI7XG59XG5cbmZ1bmN0aW9uIHRvRW5jcnlwdGlvbihcbiAgZW5jcnlwdGlvbj86IFwiU1NFX1NRU1wiIHwgXCJTU0VfS01TXCIgfCBcIk5PTkVcIlxuKTogUXVldWVFbmNyeXB0aW9uIHtcbiAgc3dpdGNoIChlbmNyeXB0aW9uKSB7XG4gICAgY2FzZSBcIlNTRV9LTVNcIjpcbiAgICAgIHJldHVybiBRdWV1ZUVuY3J5cHRpb24uS01TO1xuICAgIGNhc2UgXCJOT05FXCI6XG4gICAgICByZXR1cm4gUXVldWVFbmNyeXB0aW9uLlVORU5DUllQVEVEO1xuICAgIGNhc2UgXCJTU0VfU1FTXCI6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBRdWV1ZUVuY3J5cHRpb24uU1FTX01BTkFHRUQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9GaWZvVGhyb3VnaHB1dExpbWl0KFxuICBsaW1pdD86IFwicGVyUXVldWVcIiB8IFwicGVyTWVzc2FnZUdyb3VwSWRcIlxuKTogRmlmb1Rocm91Z2hwdXRMaW1pdCB8IHVuZGVmaW5lZCB7XG4gIHN3aXRjaCAobGltaXQpIHtcbiAgICBjYXNlIFwicGVyUXVldWVcIjpcbiAgICAgIHJldHVybiBGaWZvVGhyb3VnaHB1dExpbWl0LlBFUl9RVUVVRTtcbiAgICBjYXNlIFwicGVyTWVzc2FnZUdyb3VwSWRcIjpcbiAgICAgIHJldHVybiBGaWZvVGhyb3VnaHB1dExpbWl0LlBFUl9NRVNTQUdFX0dST1VQX0lEO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRvRGVkdXBsaWNhdGlvblNjb3BlKFxuICBzY29wZT86IFwicXVldWVcIiB8IFwibWVzc2FnZUdyb3VwXCJcbik6IERlZHVwbGljYXRpb25TY29wZSB8IHVuZGVmaW5lZCB7XG4gIHN3aXRjaCAoc2NvcGUpIHtcbiAgICBjYXNlIFwicXVldWVcIjpcbiAgICAgIHJldHVybiBEZWR1cGxpY2F0aW9uU2NvcGUuUVVFVUU7XG4gICAgY2FzZSBcIm1lc3NhZ2VHcm91cFwiOlxuICAgICAgcmV0dXJuIERlZHVwbGljYXRpb25TY29wZS5NRVNTQUdFX0dST1VQO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTUVNRdWV1ZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xuICBwcml2YXRlIHF1ZXVlOiBRdWV1ZTtcbiAgcHJpdmF0ZSBkbHE/OiBRdWV1ZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU1FTUXVldWVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5pZCA9IGlkO1xuXG4gICAgY29uc3QgaXNGaWZvID0gcHJvcHMucXVldWVUeXBlID09PSBcImZpZm9cIjtcbiAgICBjb25zdCBxdWV1ZU5hbWUgPSBwcm9wcy5xdWV1ZU5hbWVcbiAgICAgID8gaXNGaWZvXG4gICAgICAgID8gYCR7cHJvcHMucXVldWVOYW1lfS5maWZvYFxuICAgICAgICA6IHByb3BzLnF1ZXVlTmFtZVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBDcmVhdGUgRGVhZCBMZXR0ZXIgUXVldWUgaWYgZW5hYmxlZFxuICAgIGxldCBkZWFkTGV0dGVyUXVldWU6IERlYWRMZXR0ZXJRdWV1ZSB8IHVuZGVmaW5lZDtcbiAgICBpZiAocHJvcHMuZGVhZExldHRlclF1ZXVlPy5lbmFibGVkKSB7XG4gICAgICBpZiAocHJvcHMuZGVhZExldHRlclF1ZXVlLnF1ZXVlKSB7XG4gICAgICAgIGRlYWRMZXR0ZXJRdWV1ZSA9IHtcbiAgICAgICAgICBxdWV1ZTogcHJvcHMuZGVhZExldHRlclF1ZXVlLnF1ZXVlLFxuICAgICAgICAgIG1heFJlY2VpdmVDb3VudDpcbiAgICAgICAgICAgIHByb3BzLmRlYWRMZXR0ZXJRdWV1ZS5tYXhSZWNlaXZlQ291bnQgPz9cbiAgICAgICAgICAgIFNRU19MSU1JVFMuREVBRF9MRVRURVJfUVVFVUUuREVGQVVMVF9SRUNFSVZFX0NPVU5UXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBkbHFOYW1lID0gcXVldWVOYW1lXG4gICAgICAgICAgPyBpc0ZpZm9cbiAgICAgICAgICAgID8gYCR7cHJvcHMucXVldWVOYW1lfS1kbHEuZmlmb2BcbiAgICAgICAgICAgIDogYCR7cHJvcHMucXVldWVOYW1lfS1kbHFgXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgdGhpcy5kbHEgPSBuZXcgUXVldWUodGhpcywgYCR7aWR9RGVhZExldHRlclF1ZXVlYCwge1xuICAgICAgICAgIHF1ZXVlTmFtZTogZGxxTmFtZSxcbiAgICAgICAgICBmaWZvOiBpc0ZpZm8sXG4gICAgICAgICAgZW5jcnlwdGlvbjogdG9FbmNyeXB0aW9uKHByb3BzLmVuY3J5cHRpb24pLFxuICAgICAgICAgIHJldGVudGlvblBlcmlvZDogRHVyYXRpb24uZGF5cyhcbiAgICAgICAgICAgIFNRU19MSU1JVFMuREVBRF9MRVRURVJfUVVFVUUuREVGQVVMVF9SRVRFTlRJT05fREFZU1xuICAgICAgICAgICksXG4gICAgICAgICAgcmVtb3ZhbFBvbGljeTogdG9SZW1vdmFsUG9saWN5KHByb3BzLnJlbW92YWxQb2xpY3kpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRlYWRMZXR0ZXJRdWV1ZSA9IHtcbiAgICAgICAgICBxdWV1ZTogdGhpcy5kbHEsXG4gICAgICAgICAgbWF4UmVjZWl2ZUNvdW50OlxuICAgICAgICAgICAgcHJvcHMuZGVhZExldHRlclF1ZXVlLm1heFJlY2VpdmVDb3VudCA/P1xuICAgICAgICAgICAgU1FTX0xJTUlUUy5ERUFEX0xFVFRFUl9RVUVVRS5ERUZBVUxUX1JFQ0VJVkVfQ09VTlRcbiAgICAgICAgfTtcblxuICAgICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke2lkfURlYWRMZXR0ZXJRdWV1ZVVybGAsIHtcbiAgICAgICAgICBrZXk6IGAke2lkfURlYWRMZXR0ZXJRdWV1ZVVybGAsXG4gICAgICAgICAgdmFsdWU6IHRoaXMuZGxxLnF1ZXVlVXJsLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgRGVhZCBsZXR0ZXIgcXVldWUgVVJMIGZvciAke2lkfWBcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtpZH1EZWFkTGV0dGVyUXVldWVBcm5gLCB7XG4gICAgICAgICAga2V5OiBgJHtpZH1EZWFkTGV0dGVyUXVldWVBcm5gLFxuICAgICAgICAgIHZhbHVlOiB0aGlzLmRscS5xdWV1ZUFybixcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYERlYWQgbGV0dGVyIHF1ZXVlIEFSTiBmb3IgJHtpZH1gXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucXVldWUgPSBuZXcgUXVldWUodGhpcywgYCR7aWR9UXVldWVgLCB7XG4gICAgICBxdWV1ZU5hbWUsXG4gICAgICBmaWZvOiBpc0ZpZm8sXG4gICAgICB2aXNpYmlsaXR5VGltZW91dDogcHJvcHMudmlzaWJpbGl0eVRpbWVvdXRcbiAgICAgICAgPyBEdXJhdGlvbi5zZWNvbmRzKHByb3BzLnZpc2liaWxpdHlUaW1lb3V0KVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHJldGVudGlvblBlcmlvZDogcHJvcHMubWVzc2FnZVJldGVudGlvblBlcmlvZFxuICAgICAgICA/IER1cmF0aW9uLnNlY29uZHMocHJvcHMubWVzc2FnZVJldGVudGlvblBlcmlvZClcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICByZWNlaXZlTWVzc2FnZVdhaXRUaW1lOiBwcm9wcy5yZWNlaXZlTWVzc2FnZVdhaXRUaW1lXG4gICAgICAgID8gRHVyYXRpb24uc2Vjb25kcyhwcm9wcy5yZWNlaXZlTWVzc2FnZVdhaXRUaW1lKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIG1heE1lc3NhZ2VTaXplQnl0ZXM6IHByb3BzLm1heE1lc3NhZ2VTaXplLFxuICAgICAgZGVsaXZlcnlEZWxheTogcHJvcHMuZGVsaXZlcnlEZWxheVxuICAgICAgICA/IER1cmF0aW9uLnNlY29uZHMocHJvcHMuZGVsaXZlcnlEZWxheSlcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBkZWFkTGV0dGVyUXVldWUsXG4gICAgICBlbmNyeXB0aW9uOiB0b0VuY3J5cHRpb24ocHJvcHMuZW5jcnlwdGlvbiksXG4gICAgICBjb250ZW50QmFzZWREZWR1cGxpY2F0aW9uOiBpc0ZpZm9cbiAgICAgICAgPyAocHJvcHMuY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbiA/PyB0cnVlKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGZpZm9UaHJvdWdocHV0TGltaXQ6IGlzRmlmb1xuICAgICAgICA/IHRvRmlmb1Rocm91Z2hwdXRMaW1pdChwcm9wcy5maWZvVGhyb3VnaHB1dExpbWl0KVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGRlZHVwbGljYXRpb25TY29wZTogaXNGaWZvXG4gICAgICAgID8gdG9EZWR1cGxpY2F0aW9uU2NvcGUocHJvcHMuZGVkdXBsaWNhdGlvblNjb3BlKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHJlbW92YWxQb2xpY3k6IHRvUmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5KVxuICAgIH0pO1xuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtpZH1RdWV1ZVVybGAsIHtcbiAgICAgIGtleTogYCR7aWR9UXVldWVVcmxgLFxuICAgICAgdmFsdWU6IHRoaXMucXVldWUucXVldWVVcmwsXG4gICAgICBkZXNjcmlwdGlvbjogYFNRUyBxdWV1ZSBVUkwgZm9yICR7aWR9YFxuICAgIH0pO1xuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtpZH1RdWV1ZUFybmAsIHtcbiAgICAgIGtleTogYCR7aWR9UXVldWVBcm5gLFxuICAgICAgdmFsdWU6IHRoaXMucXVldWUucXVldWVBcm4sXG4gICAgICBkZXNjcmlwdGlvbjogYFNRUyBxdWV1ZSBBUk4gZm9yICR7aWR9YFxuICAgIH0pO1xuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtpZH1RdWV1ZU5hbWVgLCB7XG4gICAgICBrZXk6IGAke2lkfVF1ZXVlTmFtZWAsXG4gICAgICB2YWx1ZTogdGhpcy5xdWV1ZS5xdWV1ZU5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogYFNRUyBxdWV1ZSBuYW1lIGZvciAke2lkfWBcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIFNRUyBxdWV1ZSBVUkwuXG4gICAqL1xuICBwdWJsaWMgZ2V0UXVldWVVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5xdWV1ZVVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIFNRUyBxdWV1ZSBBUk4uXG4gICAqL1xuICBwdWJsaWMgZ2V0UXVldWVBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5xdWV1ZUFybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIFNRUyBxdWV1ZSBuYW1lLlxuICAgKi9cbiAgcHVibGljIGdldFF1ZXVlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLnF1ZXVlTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVuZGVybHlpbmcgQ0RLIFF1ZXVlIGNvbnN0cnVjdC5cbiAgICovXG4gIHB1YmxpYyBnZXRRdWV1ZSgpOiBJUXVldWUge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGVhZCBsZXR0ZXIgcXVldWUgaWYgY29uZmlndXJlZC5cbiAgICovXG4gIHB1YmxpYyBnZXREZWFkTGV0dGVyUXVldWUoKTogSVF1ZXVlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5kbHE7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgc2VuZCBtZXNzYWdlIHBlcm1pc3Npb25zIHRvIHRoZSBncmFudGVlLlxuICAgKi9cbiAgcHVibGljIGdyYW50U2VuZChncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKGdyYW50ZWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IGNvbnN1bWUgKHJlY2VpdmUgYW5kIGRlbGV0ZSkgbWVzc2FnZSBwZXJtaXNzaW9ucyB0byB0aGUgZ3JhbnRlZS5cbiAgICovXG4gIHB1YmxpYyBncmFudENvbnN1bWUoZ3JhbnRlZTogSUdyYW50YWJsZSk6IEdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5ncmFudENvbnN1bWVNZXNzYWdlcyhncmFudGVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBwdXJnZSBxdWV1ZSBwZXJtaXNzaW9ucyB0byB0aGUgZ3JhbnRlZS5cbiAgICovXG4gIHB1YmxpYyBncmFudFB1cmdlKGdyYW50ZWU6IElHcmFudGFibGUpOiBHcmFudCB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUuZ3JhbnRQdXJnZShncmFudGVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBzZW5kIGFuZCBjb25zdW1lIG1lc3NhZ2UgcGVybWlzc2lvbnMgdG8gdGhlIGdyYW50ZWUuXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRTZW5kQW5kQ29uc3VtZShncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQge1xuICAgIHRoaXMucXVldWUuZ3JhbnRTZW5kTWVzc2FnZXMoZ3JhbnRlZSk7XG4gICAgcmV0dXJuIHRoaXMucXVldWUuZ3JhbnRDb25zdW1lTWVzc2FnZXMoZ3JhbnRlZSk7XG4gIH1cbn1cbiJdfQ==
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvbWVzc2FnaW5nL3Nxcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFDdkMsNkNBQWtEO0FBQ2xELHNFQUErRDtBQUMvRCxpREFPNkI7QUFFN0IsbUNBQTBDO0FBRTFDOzs7R0FHRztBQUNILE1BQU0sVUFBVSxHQUFHO0lBQ2pCLGtCQUFrQixFQUFFO1FBQ2xCLFdBQVcsRUFBRSxDQUFDO1FBQ2QsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXO1FBQy9CLGVBQWUsRUFBRSxFQUFFO0tBQ3BCO0lBQ0QsaUJBQWlCLEVBQUU7UUFDakIsV0FBVyxFQUFFLEVBQUUsRUFBRSxXQUFXO1FBQzVCLFdBQVcsRUFBRSxPQUFPLEVBQUUsVUFBVTtRQUNoQyxlQUFlLEVBQUUsTUFBTSxFQUFFLFNBQVM7UUFDbEMsWUFBWSxFQUFFLENBQUM7S0FDaEI7SUFDRCxLQUFLLEVBQUU7UUFDTCxXQUFXLEVBQUUsQ0FBQztRQUNkLFdBQVcsRUFBRSxHQUFHLENBQUMsYUFBYTtLQUMvQjtJQUNELGlCQUFpQixFQUFFO1FBQ2pCLFdBQVcsRUFBRSxDQUFDO1FBQ2QsV0FBVyxFQUFFLEVBQUU7S0FDaEI7SUFDRCxZQUFZLEVBQUU7UUFDWixTQUFTLEVBQUUsQ0FBQztRQUNaLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztLQUM1QjtJQUNELGlCQUFpQixFQUFFO1FBQ2pCLGlCQUFpQixFQUFFLENBQUM7UUFDcEIsaUJBQWlCLEVBQUUsSUFBSTtRQUN2QixxQkFBcUIsRUFBRSxDQUFDO1FBQ3hCLHNCQUFzQixFQUFFLEVBQUU7S0FDM0I7SUFDRCxLQUFLLEVBQUU7UUFDTCxRQUFRLEVBQUUsQ0FBQztRQUNYLFFBQVEsRUFBRSxFQUFFO0tBQ2I7Q0FDTyxDQUFDO0FBRUYsZ0NBQVU7QUF1Qm5CLFNBQVMsWUFBWSxDQUNuQixVQUEyQztJQUUz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QUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUFuTEQsNEJBbUxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IENmbk91dHB1dCwgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSB9IGZyb20gXCIuLi8uLi8uLi91dGlscy9jYXBpdGFsaXNlU3RyaW5nXCI7XG5pbXBvcnQge1xuICBRdWV1ZSxcbiAgdHlwZSBJUXVldWUsXG4gIHR5cGUgRGVhZExldHRlclF1ZXVlLFxuICBRdWV1ZUVuY3J5cHRpb24sXG4gIEZpZm9UaHJvdWdocHV0TGltaXQsXG4gIERlZHVwbGljYXRpb25TY29wZVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNxc1wiO1xuaW1wb3J0IHsgdHlwZSBJR3JhbnRhYmxlLCB0eXBlIEdyYW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IHRvUmVtb3ZhbFBvbGljeSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQVdTIFNRUyBzZXJ2aWNlIGxpbWl0cyBhbmQgZGVmYXVsdHMuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NTaW1wbGVRdWV1ZVNlcnZpY2UvbGF0ZXN0L1NRU0RldmVsb3Blckd1aWRlL3Nxcy1xdW90YXMuaHRtbFxuICovXG5jb25zdCBTUVNfTElNSVRTID0ge1xuICBWSVNJQklMSVRZX1RJTUVPVVQ6IHtcbiAgICBNSU5fU0VDT05EUzogMCxcbiAgICBNQVhfU0VDT05EUzogNDMyMDAsIC8vIDEyIGhvdXJzXG4gICAgREVGQVVMVF9TRUNPTkRTOiAzMFxuICB9LFxuICBNRVNTQUdFX1JFVEVOVElPTjoge1xuICAgIE1JTl9TRUNPTkRTOiA2MCwgLy8gMSBtaW51dGVcbiAgICBNQVhfU0VDT05EUzogMTIwOTYwMCwgLy8gMTQgZGF5c1xuICAgIERFRkFVTFRfU0VDT05EUzogMzQ1NjAwLCAvLyA0IGRheXNcbiAgICBERUZBVUxUX0RBWVM6IDRcbiAgfSxcbiAgREVMQVk6IHtcbiAgICBNSU5fU0VDT05EUzogMCxcbiAgICBNQVhfU0VDT05EUzogOTAwIC8vIDE1IG1pbnV0ZXNcbiAgfSxcbiAgUkVDRUlWRV9XQUlUX1RJTUU6IHtcbiAgICBNSU5fU0VDT05EUzogMCxcbiAgICBNQVhfU0VDT05EUzogMjBcbiAgfSxcbiAgTUVTU0FHRV9TSVpFOiB7XG4gICAgTUlOX0JZVEVTOiAxLFxuICAgIE1BWF9CWVRFUzogMjYyMTQ0IC8vIDI1NiBLQlxuICB9LFxuICBERUFEX0xFVFRFUl9RVUVVRToge1xuICAgIE1JTl9SRUNFSVZFX0NPVU5UOiAxLFxuICAgIE1BWF9SRUNFSVZFX0NPVU5UOiAxMDAwLFxuICAgIERFRkFVTFRfUkVDRUlWRV9DT1VOVDogMyxcbiAgICBERUZBVUxUX1JFVEVOVElPTl9EQVlTOiAxNFxuICB9LFxuICBCQVRDSDoge1xuICAgIE1JTl9TSVpFOiAxLFxuICAgIE1BWF9TSVpFOiAxMFxuICB9XG59IGFzIGNvbnN0O1xuXG5leHBvcnQgeyBTUVNfTElNSVRTIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU1FTUXVldWVQcm9wcyB7XG4gIHF1ZXVlTmFtZT86IHN0cmluZztcbiAgcXVldWVUeXBlPzogXCJzdGFuZGFyZFwiIHwgXCJmaWZvXCI7XG4gIHZpc2liaWxpdHlUaW1lb3V0PzogbnVtYmVyO1xuICBtZXNzYWdlUmV0ZW50aW9uUGVyaW9kPzogbnVtYmVyO1xuICByZWNlaXZlTWVzc2FnZVdhaXRUaW1lPzogbnVtYmVyO1xuICBtYXhNZXNzYWdlU2l6ZT86IG51bWJlcjtcbiAgZGVsaXZlcnlEZWxheT86IG51bWJlcjtcbiAgZGVhZExldHRlclF1ZXVlPzoge1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgbWF4UmVjZWl2ZUNvdW50PzogbnVtYmVyO1xuICAgIHF1ZXVlPzogSVF1ZXVlO1xuICB9O1xuICBlbmNyeXB0aW9uPzogXCJTU0VfU1FTXCIgfCBcIlNTRV9LTVNcIiB8IFwiTk9ORVwiO1xuICBrbXNLZXlBcm4/OiBzdHJpbmc7XG4gIGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24/OiBib29sZWFuO1xuICBmaWZvVGhyb3VnaHB1dExpbWl0PzogXCJwZXJRdWV1ZVwiIHwgXCJwZXJNZXNzYWdlR3JvdXBJZFwiO1xuICBkZWR1cGxpY2F0aW9uU2NvcGU/OiBcInF1ZXVlXCIgfCBcIm1lc3NhZ2VHcm91cFwiO1xuICByZW1vdmFsUG9saWN5PzogXCJERVNUUk9ZXCIgfCBcIlJFVEFJTlwiO1xufVxuXG5mdW5jdGlvbiB0b0VuY3J5cHRpb24oXG4gIGVuY3J5cHRpb24/OiBcIlNTRV9TUVNcIiB8IFwiU1NFX0tNU1wiIHwgXCJOT05FXCJcbik6IFF1ZXVlRW5jcnlwdGlvbiB7XG4gIHN3aXRjaCAoZW5jcnlwdGlvbikge1xuICAgIGNhc2UgXCJTU0VfS01TXCI6XG4gICAgICByZXR1cm4gUXVldWVFbmNyeXB0aW9uLktNUztcbiAgICBjYXNlIFwiTk9ORVwiOlxuICAgICAgcmV0dXJuIFF1ZXVlRW5jcnlwdGlvbi5VTkVOQ1JZUFRFRDtcbiAgICBjYXNlIFwiU1NFX1NRU1wiOlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gUXVldWVFbmNyeXB0aW9uLlNRU19NQU5BR0VEO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRvRmlmb1Rocm91Z2hwdXRMaW1pdChcbiAgbGltaXQ/OiBcInBlclF1ZXVlXCIgfCBcInBlck1lc3NhZ2VHcm91cElkXCJcbik6IEZpZm9UaHJvdWdocHV0TGltaXQgfCB1bmRlZmluZWQge1xuICBzd2l0Y2ggKGxpbWl0KSB7XG4gICAgY2FzZSBcInBlclF1ZXVlXCI6XG4gICAgICByZXR1cm4gRmlmb1Rocm91Z2hwdXRMaW1pdC5QRVJfUVVFVUU7XG4gICAgY2FzZSBcInBlck1lc3NhZ2VHcm91cElkXCI6XG4gICAgICByZXR1cm4gRmlmb1Rocm91Z2hwdXRMaW1pdC5QRVJfTUVTU0FHRV9HUk9VUF9JRDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5mdW5jdGlvbiB0b0RlZHVwbGljYXRpb25TY29wZShcbiAgc2NvcGU/OiBcInF1ZXVlXCIgfCBcIm1lc3NhZ2VHcm91cFwiXG4pOiBEZWR1cGxpY2F0aW9uU2NvcGUgfCB1bmRlZmluZWQge1xuICBzd2l0Y2ggKHNjb3BlKSB7XG4gICAgY2FzZSBcInF1ZXVlXCI6XG4gICAgICByZXR1cm4gRGVkdXBsaWNhdGlvblNjb3BlLlFVRVVFO1xuICAgIGNhc2UgXCJtZXNzYWdlR3JvdXBcIjpcbiAgICAgIHJldHVybiBEZWR1cGxpY2F0aW9uU2NvcGUuTUVTU0FHRV9HUk9VUDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU1FTUXVldWUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcHJpdmF0ZSBxdWV1ZTogUXVldWU7XG4gIHByaXZhdGUgZGxxPzogUXVldWU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNRU1F1ZXVlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMuaWQgPSBpZDtcblxuICAgIC8vIFNhbml0aXNlIGlkIGZvciBDbG91ZEZvcm1hdGlvbiBvdXRwdXQga2V5cyAobXVzdCBiZSBhbHBoYW51bWVyaWMpXG4gICAgY29uc3Qgb3V0cHV0TmFtZSA9IHRvUGFzY2FsQ2FzZShpZCk7XG5cbiAgICBjb25zdCBpc0ZpZm8gPSBwcm9wcy5xdWV1ZVR5cGUgPT09IFwiZmlmb1wiO1xuICAgIGNvbnN0IHF1ZXVlTmFtZSA9IHByb3BzLnF1ZXVlTmFtZVxuICAgICAgPyBpc0ZpZm9cbiAgICAgICAgPyBgJHtwcm9wcy5xdWV1ZU5hbWV9LmZpZm9gXG4gICAgICAgIDogcHJvcHMucXVldWVOYW1lXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIENyZWF0ZSBEZWFkIExldHRlciBRdWV1ZSBpZiBlbmFibGVkXG4gICAgbGV0IGRlYWRMZXR0ZXJRdWV1ZTogRGVhZExldHRlclF1ZXVlIHwgdW5kZWZpbmVkO1xuICAgIGlmIChwcm9wcy5kZWFkTGV0dGVyUXVldWU/LmVuYWJsZWQpIHtcbiAgICAgIGlmIChwcm9wcy5kZWFkTGV0dGVyUXVldWUucXVldWUpIHtcbiAgICAgICAgZGVhZExldHRlclF1ZXVlID0ge1xuICAgICAgICAgIHF1ZXVlOiBwcm9wcy5kZWFkTGV0dGVyUXVldWUucXVldWUsXG4gICAgICAgICAgbWF4UmVjZWl2ZUNvdW50OlxuICAgICAgICAgICAgcHJvcHMuZGVhZExldHRlclF1ZXVlLm1heFJlY2VpdmVDb3VudCA/P1xuICAgICAgICAgICAgU1FTX0xJTUlUUy5ERUFEX0xFVFRFUl9RVUVVRS5ERUZBVUxUX1JFQ0VJVkVfQ09VTlRcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRscU5hbWUgPSBxdWV1ZU5hbWVcbiAgICAgICAgICA/IGlzRmlmb1xuICAgICAgICAgICAgPyBgJHtwcm9wcy5xdWV1ZU5hbWV9LWRscS5maWZvYFxuICAgICAgICAgICAgOiBgJHtwcm9wcy5xdWV1ZU5hbWV9LWRscWBcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICB0aGlzLmRscSA9IG5ldyBRdWV1ZSh0aGlzLCBgJHtpZH1EZWFkTGV0dGVyUXVldWVgLCB7XG4gICAgICAgICAgcXVldWVOYW1lOiBkbHFOYW1lLFxuICAgICAgICAgIGZpZm86IGlzRmlmbyxcbiAgICAgICAgICBlbmNyeXB0aW9uOiB0b0VuY3J5cHRpb24ocHJvcHMuZW5jcnlwdGlvbiksXG4gICAgICAgICAgcmV0ZW50aW9uUGVyaW9kOiBEdXJhdGlvbi5kYXlzKFxuICAgICAgICAgICAgU1FTX0xJTUlUUy5ERUFEX0xFVFRFUl9RVUVVRS5ERUZBVUxUX1JFVEVOVElPTl9EQVlTXG4gICAgICAgICAgKSxcbiAgICAgICAgICByZW1vdmFsUG9saWN5OiB0b1JlbW92YWxQb2xpY3kocHJvcHMucmVtb3ZhbFBvbGljeSlcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGVhZExldHRlclF1ZXVlID0ge1xuICAgICAgICAgIHF1ZXVlOiB0aGlzLmRscSxcbiAgICAgICAgICBtYXhSZWNlaXZlQ291bnQ6XG4gICAgICAgICAgICBwcm9wcy5kZWFkTGV0dGVyUXVldWUubWF4UmVjZWl2ZUNvdW50ID8/XG4gICAgICAgICAgICBTUVNfTElNSVRTLkRFQURfTEVUVEVSX1FVRVVFLkRFRkFVTFRfUkVDRUlWRV9DT1VOVFxuICAgICAgICB9O1xuXG4gICAgICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYCR7b3V0cHV0TmFtZX1EZWFkTGV0dGVyUXVldWVVcmxgLCB7XG4gICAgICAgICAga2V5OiBgJHtvdXRwdXROYW1lfURlYWRMZXR0ZXJRdWV1ZVVybGAsXG4gICAgICAgICAgdmFsdWU6IHRoaXMuZGxxLnF1ZXVlVXJsLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgRGVhZCBsZXR0ZXIgcXVldWUgVVJMIGZvciAke2lkfWBcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtvdXRwdXROYW1lfURlYWRMZXR0ZXJRdWV1ZUFybmAsIHtcbiAgICAgICAgICBrZXk6IGAke291dHB1dE5hbWV9RGVhZExldHRlclF1ZXVlQXJuYCxcbiAgICAgICAgICB2YWx1ZTogdGhpcy5kbHEucXVldWVBcm4sXG4gICAgICAgICAgZGVzY3JpcHRpb246IGBEZWFkIGxldHRlciBxdWV1ZSBBUk4gZm9yICR7aWR9YFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnF1ZXVlID0gbmV3IFF1ZXVlKHRoaXMsIGAke2lkfVF1ZXVlYCwge1xuICAgICAgcXVldWVOYW1lLFxuICAgICAgZmlmbzogaXNGaWZvLFxuICAgICAgdmlzaWJpbGl0eVRpbWVvdXQ6IHByb3BzLnZpc2liaWxpdHlUaW1lb3V0XG4gICAgICAgID8gRHVyYXRpb24uc2Vjb25kcyhwcm9wcy52aXNpYmlsaXR5VGltZW91dClcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICByZXRlbnRpb25QZXJpb2Q6IHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2RcbiAgICAgICAgPyBEdXJhdGlvbi5zZWNvbmRzKHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2QpXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgcmVjZWl2ZU1lc3NhZ2VXYWl0VGltZTogcHJvcHMucmVjZWl2ZU1lc3NhZ2VXYWl0VGltZVxuICAgICAgICA/IER1cmF0aW9uLnNlY29uZHMocHJvcHMucmVjZWl2ZU1lc3NhZ2VXYWl0VGltZSlcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBtYXhNZXNzYWdlU2l6ZUJ5dGVzOiBwcm9wcy5tYXhNZXNzYWdlU2l6ZSxcbiAgICAgIGRlbGl2ZXJ5RGVsYXk6IHByb3BzLmRlbGl2ZXJ5RGVsYXlcbiAgICAgICAgPyBEdXJhdGlvbi5zZWNvbmRzKHByb3BzLmRlbGl2ZXJ5RGVsYXkpXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZGVhZExldHRlclF1ZXVlLFxuICAgICAgZW5jcnlwdGlvbjogdG9FbmNyeXB0aW9uKHByb3BzLmVuY3J5cHRpb24pLFxuICAgICAgY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbjogaXNGaWZvXG4gICAgICAgID8gKHByb3BzLmNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24gPz8gdHJ1ZSlcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBmaWZvVGhyb3VnaHB1dExpbWl0OiBpc0ZpZm9cbiAgICAgICAgPyB0b0ZpZm9UaHJvdWdocHV0TGltaXQocHJvcHMuZmlmb1Rocm91Z2hwdXRMaW1pdClcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBkZWR1cGxpY2F0aW9uU2NvcGU6IGlzRmlmb1xuICAgICAgICA/IHRvRGVkdXBsaWNhdGlvblNjb3BlKHByb3BzLmRlZHVwbGljYXRpb25TY29wZSlcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICByZW1vdmFsUG9saWN5OiB0b1JlbW92YWxQb2xpY3kocHJvcHMucmVtb3ZhbFBvbGljeSlcbiAgICB9KTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYCR7b3V0cHV0TmFtZX1RdWV1ZVVybGAsIHtcbiAgICAgIGtleTogYCR7b3V0cHV0TmFtZX1RdWV1ZVVybGAsXG4gICAgICB2YWx1ZTogdGhpcy5xdWV1ZS5xdWV1ZVVybCxcbiAgICAgIGRlc2NyaXB0aW9uOiBgU1FTIHF1ZXVlIFVSTCBmb3IgJHtpZH1gXG4gICAgfSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke291dHB1dE5hbWV9UXVldWVBcm5gLCB7XG4gICAgICBrZXk6IGAke291dHB1dE5hbWV9UXVldWVBcm5gLFxuICAgICAgdmFsdWU6IHRoaXMucXVldWUucXVldWVBcm4sXG4gICAgICBkZXNjcmlwdGlvbjogYFNRUyBxdWV1ZSBBUk4gZm9yICR7aWR9YFxuICAgIH0pO1xuXG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtvdXRwdXROYW1lfVF1ZXVlTmFtZWAsIHtcbiAgICAgIGtleTogYCR7b3V0cHV0TmFtZX1RdWV1ZU5hbWVgLFxuICAgICAgdmFsdWU6IHRoaXMucXVldWUucXVldWVOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IGBTUVMgcXVldWUgbmFtZSBmb3IgJHtpZH1gXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBTUVMgcXVldWUgVVJMLlxuICAgKi9cbiAgcHVibGljIGdldFF1ZXVlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUucXVldWVVcmw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBTUVMgcXVldWUgQVJOLlxuICAgKi9cbiAgcHVibGljIGdldFF1ZXVlQXJuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUucXVldWVBcm47XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBTUVMgcXVldWUgbmFtZS5cbiAgICovXG4gIHB1YmxpYyBnZXRRdWV1ZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5xdWV1ZU5hbWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB1bmRlcmx5aW5nIENESyBRdWV1ZSBjb25zdHJ1Y3QuXG4gICAqL1xuICBwdWJsaWMgZ2V0UXVldWUoKTogSVF1ZXVlIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlYWQgbGV0dGVyIHF1ZXVlIGlmIGNvbmZpZ3VyZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0RGVhZExldHRlclF1ZXVlKCk6IElRdWV1ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGxxO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHNlbmQgbWVzc2FnZSBwZXJtaXNzaW9ucyB0byB0aGUgZ3JhbnRlZS5cbiAgICovXG4gIHB1YmxpYyBncmFudFNlbmQoZ3JhbnRlZTogSUdyYW50YWJsZSk6IEdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5ncmFudFNlbmRNZXNzYWdlcyhncmFudGVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBjb25zdW1lIChyZWNlaXZlIGFuZCBkZWxldGUpIG1lc3NhZ2UgcGVybWlzc2lvbnMgdG8gdGhlIGdyYW50ZWUuXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRDb25zdW1lKGdyYW50ZWU6IElHcmFudGFibGUpOiBHcmFudCB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUuZ3JhbnRDb25zdW1lTWVzc2FnZXMoZ3JhbnRlZSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgcHVyZ2UgcXVldWUgcGVybWlzc2lvbnMgdG8gdGhlIGdyYW50ZWUuXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRQdXJnZShncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmdyYW50UHVyZ2UoZ3JhbnRlZSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgc2VuZCBhbmQgY29uc3VtZSBtZXNzYWdlIHBlcm1pc3Npb25zIHRvIHRoZSBncmFudGVlLlxuICAgKi9cbiAgcHVibGljIGdyYW50U2VuZEFuZENvbnN1bWUoZ3JhbnRlZTogSUdyYW50YWJsZSk6IEdyYW50IHtcbiAgICB0aGlzLnF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKGdyYW50ZWUpO1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmdyYW50Q29uc3VtZU1lc3NhZ2VzKGdyYW50ZWUpO1xuICB9XG59XG4iXX0=
@@ -1,3 +1,2 @@
1
- import { RemovalPolicy } from "aws-cdk-lib";
1
+ export { toRemovalPolicy } from "../../../utils/removalPolicy";
2
2
  export type RemovalPolicyString = "DESTROY" | "RETAIN";
3
- export declare const toRemovalPolicy: (policy?: RemovalPolicyString) => RemovalPolicy;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toRemovalPolicy = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const toRemovalPolicy = (policy) => policy === "RETAIN" ? aws_cdk_lib_1.RemovalPolicy.RETAIN : aws_cdk_lib_1.RemovalPolicy.DESTROY;
6
- exports.toRemovalPolicy = toRemovalPolicy;
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9tZXNzYWdpbmcvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTRDO0FBSXJDLE1BQU0sZUFBZSxHQUFHLENBQUMsTUFBNEIsRUFBaUIsRUFBRSxDQUM3RSxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQywyQkFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsMkJBQWEsQ0FBQyxPQUFPLENBQUM7QUFEeEQsUUFBQSxlQUFlLG1CQUN5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuZXhwb3J0IHR5cGUgUmVtb3ZhbFBvbGljeVN0cmluZyA9IFwiREVTVFJPWVwiIHwgXCJSRVRBSU5cIjtcblxuZXhwb3J0IGNvbnN0IHRvUmVtb3ZhbFBvbGljeSA9IChwb2xpY3k/OiBSZW1vdmFsUG9saWN5U3RyaW5nKTogUmVtb3ZhbFBvbGljeSA9PlxuICBwb2xpY3kgPT09IFwiUkVUQUlOXCIgPyBSZW1vdmFsUG9saWN5LlJFVEFJTiA6IFJlbW92YWxQb2xpY3kuREVTVFJPWTtcbiJdfQ==
4
+ var removalPolicy_1 = require("../../../utils/removalPolicy");
5
+ Object.defineProperty(exports, "toRemovalPolicy", { enumerable: true, get: function () { return removalPolicy_1.toRemovalPolicy; } });
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9tZXNzYWdpbmcvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBQStEO0FBQXRELGdIQUFBLGVBQWUsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHRvUmVtb3ZhbFBvbGljeSB9IGZyb20gXCIuLi8uLi8uLi91dGlscy9yZW1vdmFsUG9saWN5XCI7XG5cbmV4cG9ydCB0eXBlIFJlbW92YWxQb2xpY3lTdHJpbmcgPSBcIkRFU1RST1lcIiB8IFwiUkVUQUlOXCI7XG4iXX0=
@@ -1 +0,0 @@
1
- export * from "./monitoringRole";
@@ -1,18 +1,5 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./monitoringRole"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9tb25pdG9yaW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9tb25pdG9yaW5nUm9sZVwiO1xuIl19
2
+ // Per-app monitoring roles have been removed.
3
+ // Monitoring is now handled by the per-account AccountMonitoringRole
4
+ // construct in config/aws/accountMonitoringRole.ts.
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9tb25pdG9yaW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw4Q0FBOEM7QUFDOUMscUVBQXFFO0FBQ3JFLG9EQUFvRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIFBlci1hcHAgbW9uaXRvcmluZyByb2xlcyBoYXZlIGJlZW4gcmVtb3ZlZC5cbi8vIE1vbml0b3JpbmcgaXMgbm93IGhhbmRsZWQgYnkgdGhlIHBlci1hY2NvdW50IEFjY291bnRNb25pdG9yaW5nUm9sZVxuLy8gY29uc3RydWN0IGluIGNvbmZpZy9hd3MvYWNjb3VudE1vbml0b3JpbmdSb2xlLnRzLlxuIl19
@@ -0,0 +1,13 @@
1
+ import { Construct } from "constructs";
2
+ import { type IHostedZone } from "aws-cdk-lib/aws-route53";
3
+ import type { DomainApexProps } from "../../../utils/domainTypes";
4
+ export declare class Domain extends Construct {
5
+ readonly hostedZoneId: string;
6
+ readonly hostedZone: IHostedZone;
7
+ private readonly zoneName;
8
+ constructor(scope: Construct, id: string, props: DomainApexProps);
9
+ private addDelegationRole;
10
+ private addZoneIdOutput;
11
+ private addNameserverOutput;
12
+ private addCertificates;
13
+ }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Domain = void 0;
4
+ const constructs_1 = require("constructs");
5
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
6
+ const capitaliseString_1 = require("../../../utils/capitaliseString");
7
+ const iam_1 = require("../iam");
8
+ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
9
+ const aws_route53_1 = require("aws-cdk-lib/aws-route53");
10
+ const domainTypes_1 = require("../../../utils/domainTypes");
11
+ const domainCertificate_1 = require("./domainCertificate");
12
+ class Domain extends constructs_1.Construct {
13
+ constructor(scope, id, props) {
14
+ super(scope, id);
15
+ this.zoneName = props.zoneName;
16
+ if (!props.hostedZoneId) {
17
+ const createdZone = new aws_route53_1.HostedZone(this, `${(0, capitaliseString_1.getSafeZoneName)(props.zoneName)}HostedZone`, {
18
+ zoneName: props.zoneName,
19
+ comment: `Hosted Zone for ${props.zoneName}`
20
+ });
21
+ this.hostedZone = createdZone;
22
+ this.hostedZoneId = createdZone.hostedZoneId;
23
+ this.addDelegationRole(createdZone);
24
+ this.addNameserverOutput(createdZone);
25
+ }
26
+ else {
27
+ this.hostedZoneId = props.hostedZoneId;
28
+ this.hostedZone = aws_route53_1.HostedZone.fromHostedZoneAttributes(this, `${(0, capitaliseString_1.getSafeZoneName)(props.zoneName)}ImportedHostedZone`, {
29
+ hostedZoneId: props.hostedZoneId,
30
+ zoneName: props.zoneName
31
+ });
32
+ }
33
+ this.addZoneIdOutput();
34
+ if (props.records) {
35
+ (0, domainTypes_1.addDnsRecords)(this, this.hostedZone, this.zoneName, props.records);
36
+ }
37
+ if (props.certificates) {
38
+ this.addCertificates(props.certificates);
39
+ }
40
+ }
41
+ addDelegationRole(zone) {
42
+ const domainLabel = this.zoneName.split(".")[0] ?? "default";
43
+ const safeDomainLabel = (0, capitaliseString_1.toPascalCase)(domainLabel);
44
+ const role = new iam_1.Role(this, `${safeDomainLabel}DelegateHostedZoneRole`, {
45
+ assumedBy: new aws_iam_1.OrganizationPrincipal(aws_cdk_lib_1.Fn.importValue("OrganisationId")),
46
+ roleName: `${domainLabel}DelegateHostedZoneRole`,
47
+ inlinePolicies: {
48
+ ["listHostedZones"]: new aws_iam_1.PolicyDocument({
49
+ statements: [
50
+ new aws_iam_1.PolicyStatement({
51
+ actions: ["route53:ListHostedZonesByName"],
52
+ resources: ["*"]
53
+ })
54
+ ]
55
+ }),
56
+ ["changeResourceRecordSets"]: new aws_iam_1.PolicyDocument({
57
+ statements: [
58
+ new aws_iam_1.PolicyStatement({
59
+ actions: ["route53:ChangeResourceRecordSets"],
60
+ resources: [`arn:aws:route53:::hostedzone/${zone.hostedZoneId}`]
61
+ })
62
+ ]
63
+ })
64
+ }
65
+ });
66
+ zone.grantDelegation(role);
67
+ new aws_cdk_lib_1.CfnOutput(this, `${safeDomainLabel}DelegateHostedZoneRoleArn`, {
68
+ key: `${safeDomainLabel}DelegateHostedZoneRoleArn`,
69
+ value: role.roleArn,
70
+ exportName: `${domainLabel}DelegateHostedZoneRoleArn`
71
+ });
72
+ }
73
+ addZoneIdOutput() {
74
+ const safeKey = (0, capitaliseString_1.toPascalCase)((0, capitaliseString_1.getSafeZoneName)(this.zoneName));
75
+ const exports = (0, domainTypes_1.getDomainExportNames)(this.zoneName);
76
+ new aws_cdk_lib_1.CfnOutput(this, `${safeKey}HostedZoneId`, {
77
+ key: `${safeKey}HostedZoneId`,
78
+ value: this.hostedZoneId,
79
+ exportName: exports.hostedZoneId
80
+ });
81
+ }
82
+ addNameserverOutput(zone) {
83
+ const safeKey = (0, capitaliseString_1.toPascalCase)((0, capitaliseString_1.getSafeZoneName)(this.zoneName));
84
+ new aws_cdk_lib_1.CfnOutput(this, `${safeKey}Nameservers`, {
85
+ key: `${safeKey}Nameservers`,
86
+ value: aws_cdk_lib_1.Fn.join(",", zone.hostedZoneNameServers ?? [])
87
+ });
88
+ }
89
+ addCertificates(certificates) {
90
+ const safeZone = (0, capitaliseString_1.toPascalCase)((0, capitaliseString_1.getSafeZoneName)(this.zoneName));
91
+ certificates.forEach((cert, index) => {
92
+ const safeCertName = (0, capitaliseString_1.toPascalCase)(cert.domainName.split(".").join(""));
93
+ new domainCertificate_1.DomainCertificate(this, `${safeZone}${safeCertName}Cert${index}`, {
94
+ domainName: cert.domainName,
95
+ subjectAlternativeNames: cert.subjectAlternativeNames,
96
+ hostedZone: this.hostedZone
97
+ });
98
+ });
99
+ }
100
+ }
101
+ exports.Domain = Domain;
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvbmV0d29ya2luZy9kb21haW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBQ3ZDLDZDQUE0QztBQUM1QyxzRUFBZ0Y7QUFDaEYsZ0NBQThCO0FBQzlCLGlEQUk2QjtBQUM3Qix5REFHaUM7QUFLakMsNERBR29DO0FBQ3BDLDJEQUF3RDtBQUV4RCxNQUFhLE1BQU8sU0FBUSxzQkFBUztJQUtuQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBRS9CLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsTUFBTSxXQUFXLEdBQUcsSUFBSSx3QkFBYSxDQUNuQyxJQUFJLEVBQ0osR0FBRyxJQUFBLGtDQUFlLEVBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQzlDO2dCQUNFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtnQkFDeEIsT0FBTyxFQUFFLG1CQUFtQixLQUFLLENBQUMsUUFBUSxFQUFFO2FBQzdDLENBQ0YsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO1lBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQztZQUM3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsd0JBQWEsQ0FBQyx3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QyxJQUFBLGtDQUFlLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFN0QsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sYUFBYSxFQUFFO1lBQzNDLEdBQUcsRUFBRSxHQUFHLE9BQU8sYUFBYTtZQUM1QixLQUFLLEVBQUUsZ0JBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxFQUFFLENBQUM7U0FDdEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWUsQ0FBQyxZQUFnQztRQUN0RCxNQUFNLFFBQVEsR0FBRyxJQUFBLCtCQUFZLEVBQUMsSUFBQSxrQ0FBZSxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTlELFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDbkMsTUFBTSxZQUFZLEdBQUcsSUFBQSwrQkFBWSxFQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLElBQUkscUNBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsUUFBUSxHQUFHLFlBQVksT0FBTyxLQUFLLEVBQUUsRUFBRTtnQkFDcEUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMzQix1QkFBdUIsRUFBRSxJQUFJLENBQUMsdUJBQXVCO2dCQUNyRCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDNUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFsSEQsd0JBa0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IENmbk91dHB1dCwgRm4gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSwgZ2V0U2FmZVpvbmVOYW1lIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2NhcGl0YWxpc2VTdHJpbmdcIjtcbmltcG9ydCB7IFJvbGUgfSBmcm9tIFwiLi4vaWFtXCI7XG5pbXBvcnQge1xuICBPcmdhbml6YXRpb25QcmluY2lwYWwsXG4gIFBvbGljeURvY3VtZW50LFxuICBQb2xpY3lTdGF0ZW1lbnRcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7XG4gIEhvc3RlZFpvbmUgYXMgQVdTSG9zdGVkWm9uZSxcbiAgdHlwZSBJSG9zdGVkWm9uZVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB0eXBlIHtcbiAgRG9tYWluQXBleFByb3BzLFxuICBDZXJ0aWZpY2F0ZUlucHV0XG59IGZyb20gXCIuLi8uLi8uLi91dGlscy9kb21haW5UeXBlc1wiO1xuaW1wb3J0IHtcbiAgZ2V0RG9tYWluRXhwb3J0TmFtZXMsXG4gIGFkZERuc1JlY29yZHNcbn0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2RvbWFpblR5cGVzXCI7XG5pbXBvcnQgeyBEb21haW5DZXJ0aWZpY2F0ZSB9IGZyb20gXCIuL2RvbWFpbkNlcnRpZmljYXRlXCI7XG5cbmV4cG9ydCBjbGFzcyBEb21haW4gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgaG9zdGVkWm9uZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBob3N0ZWRab25lOiBJSG9zdGVkWm9uZTtcbiAgcHJpdmF0ZSByZWFkb25seSB6b25lTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEb21haW5BcGV4UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy56b25lTmFtZSA9IHByb3BzLnpvbmVOYW1lO1xuXG4gICAgaWYgKCFwcm9wcy5ob3N0ZWRab25lSWQpIHtcbiAgICAgIGNvbnN0IGNyZWF0ZWRab25lID0gbmV3IEFXU0hvc3RlZFpvbmUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGAke2dldFNhZmVab25lTmFtZShwcm9wcy56b25lTmFtZSl9SG9zdGVkWm9uZWAsXG4gICAgICAgIHtcbiAgICAgICAgICB6b25lTmFtZTogcHJvcHMuem9uZU5hbWUsXG4gICAgICAgICAgY29tbWVudDogYEhvc3RlZCBab25lIGZvciAke3Byb3BzLnpvbmVOYW1lfWBcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHRoaXMuaG9zdGVkWm9uZSA9IGNyZWF0ZWRab25lO1xuICAgICAgdGhpcy5ob3N0ZWRab25lSWQgPSBjcmVhdGVkWm9uZS5ob3N0ZWRab25lSWQ7XG4gICAgICB0aGlzLmFkZERlbGVnYXRpb25Sb2xlKGNyZWF0ZWRab25lKTtcbiAgICAgIHRoaXMuYWRkTmFtZXNlcnZlck91dHB1dChjcmVhdGVkWm9uZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaG9zdGVkWm9uZUlkID0gcHJvcHMuaG9zdGVkWm9uZUlkO1xuICAgICAgdGhpcy5ob3N0ZWRab25lID0gQVdTSG9zdGVkWm9uZS5mcm9tSG9zdGVkWm9uZUF0dHJpYnV0ZXMoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGAke2dldFNhZmVab25lTmFtZShwcm9wcy56b25lTmFtZSl9SW1wb3J0ZWRIb3N0ZWRab25lYCxcbiAgICAgICAge1xuICAgICAgICAgIGhvc3RlZFpvbmVJZDogcHJvcHMuaG9zdGVkWm9uZUlkLFxuICAgICAgICAgIHpvbmVOYW1lOiBwcm9wcy56b25lTmFtZVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuYWRkWm9uZUlkT3V0cHV0KCk7XG5cbiAgICBpZiAocHJvcHMucmVjb3Jkcykge1xuICAgICAgYWRkRG5zUmVjb3Jkcyh0aGlzLCB0aGlzLmhvc3RlZFpvbmUsIHRoaXMuem9uZU5hbWUsIHByb3BzLnJlY29yZHMpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5jZXJ0aWZpY2F0ZXMpIHtcbiAgICAgIHRoaXMuYWRkQ2VydGlmaWNhdGVzKHByb3BzLmNlcnRpZmljYXRlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGREZWxlZ2F0aW9uUm9sZSh6b25lOiBBV1NIb3N0ZWRab25lKSB7XG4gICAgY29uc3QgZG9tYWluTGFiZWwgPSB0aGlzLnpvbmVOYW1lLnNwbGl0KFwiLlwiKVswXSA/PyBcImRlZmF1bHRcIjtcbiAgICBjb25zdCBzYWZlRG9tYWluTGFiZWwgPSB0b1Bhc2NhbENhc2UoZG9tYWluTGFiZWwpO1xuXG4gICAgY29uc3Qgcm9sZSA9IG5ldyBSb2xlKHRoaXMsIGAke3NhZmVEb21haW5MYWJlbH1EZWxlZ2F0ZUhvc3RlZFpvbmVSb2xlYCwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgT3JnYW5pemF0aW9uUHJpbmNpcGFsKEZuLmltcG9ydFZhbHVlKFwiT3JnYW5pc2F0aW9uSWRcIikpLFxuICAgICAgcm9sZU5hbWU6IGAke2RvbWFpbkxhYmVsfURlbGVnYXRlSG9zdGVkWm9uZVJvbGVgLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgW1wibGlzdEhvc3RlZFpvbmVzXCJdOiBuZXcgUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBhY3Rpb25zOiBbXCJyb3V0ZTUzOkxpc3RIb3N0ZWRab25lc0J5TmFtZVwiXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF1cbiAgICAgICAgfSksXG4gICAgICAgIFtcImNoYW5nZVJlc291cmNlUmVjb3JkU2V0c1wiXTogbmV3IFBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgYWN0aW9uczogW1wicm91dGU1MzpDaGFuZ2VSZXNvdXJjZVJlY29yZFNldHNcIl0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogW2Bhcm46YXdzOnJvdXRlNTM6Ojpob3N0ZWR6b25lLyR7em9uZS5ob3N0ZWRab25lSWR9YF1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgXVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgem9uZS5ncmFudERlbGVnYXRpb24ocm9sZSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke3NhZmVEb21haW5MYWJlbH1EZWxlZ2F0ZUhvc3RlZFpvbmVSb2xlQXJuYCwge1xuICAgICAga2V5OiBgJHtzYWZlRG9tYWluTGFiZWx9RGVsZWdhdGVIb3N0ZWRab25lUm9sZUFybmAsXG4gICAgICB2YWx1ZTogcm9sZS5yb2xlQXJuLFxuICAgICAgZXhwb3J0TmFtZTogYCR7ZG9tYWluTGFiZWx9RGVsZWdhdGVIb3N0ZWRab25lUm9sZUFybmBcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkWm9uZUlkT3V0cHV0KCkge1xuICAgIGNvbnN0IHNhZmVLZXkgPSB0b1Bhc2NhbENhc2UoZ2V0U2FmZVpvbmVOYW1lKHRoaXMuem9uZU5hbWUpKTtcbiAgICBjb25zdCBleHBvcnRzID0gZ2V0RG9tYWluRXhwb3J0TmFtZXModGhpcy56b25lTmFtZSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke3NhZmVLZXl9SG9zdGVkWm9uZUlkYCwge1xuICAgICAga2V5OiBgJHtzYWZlS2V5fUhvc3RlZFpvbmVJZGAsXG4gICAgICB2YWx1ZTogdGhpcy5ob3N0ZWRab25lSWQsXG4gICAgICBleHBvcnROYW1lOiBleHBvcnRzLmhvc3RlZFpvbmVJZFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGROYW1lc2VydmVyT3V0cHV0KHpvbmU6IEFXU0hvc3RlZFpvbmUpIHtcbiAgICBjb25zdCBzYWZlS2V5ID0gdG9QYXNjYWxDYXNlKGdldFNhZmVab25lTmFtZSh0aGlzLnpvbmVOYW1lKSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke3NhZmVLZXl9TmFtZXNlcnZlcnNgLCB7XG4gICAgICBrZXk6IGAke3NhZmVLZXl9TmFtZXNlcnZlcnNgLFxuICAgICAgdmFsdWU6IEZuLmpvaW4oXCIsXCIsIHpvbmUuaG9zdGVkWm9uZU5hbWVTZXJ2ZXJzID8/IFtdKVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRDZXJ0aWZpY2F0ZXMoY2VydGlmaWNhdGVzOiBDZXJ0aWZpY2F0ZUlucHV0W10pIHtcbiAgICBjb25zdCBzYWZlWm9uZSA9IHRvUGFzY2FsQ2FzZShnZXRTYWZlWm9uZU5hbWUodGhpcy56b25lTmFtZSkpO1xuXG4gICAgY2VydGlmaWNhdGVzLmZvckVhY2goKGNlcnQsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBzYWZlQ2VydE5hbWUgPSB0b1Bhc2NhbENhc2UoY2VydC5kb21haW5OYW1lLnNwbGl0KFwiLlwiKS5qb2luKFwiXCIpKTtcbiAgICAgIG5ldyBEb21haW5DZXJ0aWZpY2F0ZSh0aGlzLCBgJHtzYWZlWm9uZX0ke3NhZmVDZXJ0TmFtZX1DZXJ0JHtpbmRleH1gLCB7XG4gICAgICAgIGRvbWFpbk5hbWU6IGNlcnQuZG9tYWluTmFtZSxcbiAgICAgICAgc3ViamVjdEFsdGVybmF0aXZlTmFtZXM6IGNlcnQuc3ViamVjdEFsdGVybmF0aXZlTmFtZXMsXG4gICAgICAgIGhvc3RlZFpvbmU6IHRoaXMuaG9zdGVkWm9uZVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,13 @@
1
+ import { Construct } from "constructs";
2
+ import { Certificate } from "aws-cdk-lib/aws-certificatemanager";
3
+ import { type IHostedZone } from "aws-cdk-lib/aws-route53";
4
+ export interface DomainCertificateProps {
5
+ domainName: string;
6
+ subjectAlternativeNames?: string[];
7
+ hostedZone: IHostedZone;
8
+ }
9
+ export declare class DomainCertificate extends Construct {
10
+ readonly certificate: Certificate;
11
+ readonly certificateArn: string;
12
+ constructor(scope: Construct, id: string, props: DomainCertificateProps);
13
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DomainCertificate = void 0;
4
+ const constructs_1 = require("constructs");
5
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
6
+ const aws_certificatemanager_1 = require("aws-cdk-lib/aws-certificatemanager");
7
+ const capitaliseString_1 = require("../../../utils/capitaliseString");
8
+ const domainTypes_1 = require("../../../utils/domainTypes");
9
+ class DomainCertificate extends constructs_1.Construct {
10
+ constructor(scope, id, props) {
11
+ super(scope, id);
12
+ this.certificate = new aws_certificatemanager_1.Certificate(this, "Certificate", {
13
+ domainName: props.domainName,
14
+ subjectAlternativeNames: props.subjectAlternativeNames,
15
+ validation: aws_certificatemanager_1.CertificateValidation.fromDns(props.hostedZone)
16
+ });
17
+ this.certificateArn = this.certificate.certificateArn;
18
+ const safeKey = (0, capitaliseString_1.toPascalCase)(props.domainName.split(".").join(""));
19
+ const exports = (0, domainTypes_1.getDomainExportNames)(props.domainName);
20
+ new aws_cdk_lib_1.CfnOutput(this, `${safeKey}CertificateArn`, {
21
+ key: `${safeKey}CertificateArn`,
22
+ value: this.certificateArn,
23
+ exportName: exports.certificateArn
24
+ });
25
+ }
26
+ }
27
+ exports.DomainCertificate = DomainCertificate;
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluQ2VydGlmaWNhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9uZXR3b3JraW5nL2RvbWFpbkNlcnRpZmljYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF1QztBQUN2Qyw2Q0FBd0M7QUFDeEMsK0VBRzRDO0FBRTVDLHNFQUErRDtBQUMvRCw0REFBa0U7QUFRbEUsTUFBYSxpQkFBa0IsU0FBUSxzQkFBUztJQUk5QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLG9DQUFXLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUN0RCxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLHVCQUF1QjtZQUN0RCxVQUFVLEVBQUUsOENBQXFCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7U0FDNUQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQztRQUV0RCxNQUFNLE9BQU8sR0FBRyxJQUFBLCtCQUFZLEVBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkUsTUFBTSxPQUFPLEdBQUcsSUFBQSxrQ0FBb0IsRUFBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkQsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sZ0JBQWdCLEVBQUU7WUFDOUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxnQkFBZ0I7WUFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQzFCLFVBQVUsRUFBRSxPQUFPLENBQUMsY0FBYztTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF2QkQsOENBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IENmbk91dHB1dCB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgQ2VydGlmaWNhdGUsXG4gIENlcnRpZmljYXRlVmFsaWRhdGlvblxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHsgdHlwZSBJSG9zdGVkWm9uZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHsgdG9QYXNjYWxDYXNlIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2NhcGl0YWxpc2VTdHJpbmdcIjtcbmltcG9ydCB7IGdldERvbWFpbkV4cG9ydE5hbWVzIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2RvbWFpblR5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9tYWluQ2VydGlmaWNhdGVQcm9wcyB7XG4gIGRvbWFpbk5hbWU6IHN0cmluZztcbiAgc3ViamVjdEFsdGVybmF0aXZlTmFtZXM/OiBzdHJpbmdbXTtcbiAgaG9zdGVkWm9uZTogSUhvc3RlZFpvbmU7XG59XG5cbmV4cG9ydCBjbGFzcyBEb21haW5DZXJ0aWZpY2F0ZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBjZXJ0aWZpY2F0ZTogQ2VydGlmaWNhdGU7XG4gIHB1YmxpYyByZWFkb25seSBjZXJ0aWZpY2F0ZUFybjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEb21haW5DZXJ0aWZpY2F0ZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuY2VydGlmaWNhdGUgPSBuZXcgQ2VydGlmaWNhdGUodGhpcywgXCJDZXJ0aWZpY2F0ZVwiLCB7XG4gICAgICBkb21haW5OYW1lOiBwcm9wcy5kb21haW5OYW1lLFxuICAgICAgc3ViamVjdEFsdGVybmF0aXZlTmFtZXM6IHByb3BzLnN1YmplY3RBbHRlcm5hdGl2ZU5hbWVzLFxuICAgICAgdmFsaWRhdGlvbjogQ2VydGlmaWNhdGVWYWxpZGF0aW9uLmZyb21EbnMocHJvcHMuaG9zdGVkWm9uZSlcbiAgICB9KTtcblxuICAgIHRoaXMuY2VydGlmaWNhdGVBcm4gPSB0aGlzLmNlcnRpZmljYXRlLmNlcnRpZmljYXRlQXJuO1xuXG4gICAgY29uc3Qgc2FmZUtleSA9IHRvUGFzY2FsQ2FzZShwcm9wcy5kb21haW5OYW1lLnNwbGl0KFwiLlwiKS5qb2luKFwiXCIpKTtcbiAgICBjb25zdCBleHBvcnRzID0gZ2V0RG9tYWluRXhwb3J0TmFtZXMocHJvcHMuZG9tYWluTmFtZSk7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtzYWZlS2V5fUNlcnRpZmljYXRlQXJuYCwge1xuICAgICAga2V5OiBgJHtzYWZlS2V5fUNlcnRpZmljYXRlQXJuYCxcbiAgICAgIHZhbHVlOiB0aGlzLmNlcnRpZmljYXRlQXJuLFxuICAgICAgZXhwb3J0TmFtZTogZXhwb3J0cy5jZXJ0aWZpY2F0ZUFyblxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,28 @@
1
+ import { Construct } from "constructs";
2
+ import { type ARecordProps, type CnameRecordProps, HostedZone as AWSHostedZone, type MxRecordProps, type NsRecordProps, type TxtRecordProps } from "aws-cdk-lib/aws-route53";
3
+ import { type AwsStack } from "../base/awsStack";
4
+ export interface HostedZoneProps {
5
+ zoneName: string;
6
+ hostedZoneId?: string;
7
+ }
8
+ export declare class HostedZoneFactory {
9
+ static import(stack: AwsStack, hostedZoneId: string, zoneName: string): HostedZone;
10
+ }
11
+ export declare class HostedZone extends Construct {
12
+ private hostedZone;
13
+ private hostedZoneId;
14
+ private importedHostedZone;
15
+ private zoneName;
16
+ private scope;
17
+ constructor(scope: Construct, id: string, props: HostedZoneProps);
18
+ getInternalHostedZone(): AWSHostedZone;
19
+ safeZoneName(): string;
20
+ private addHostedZone;
21
+ private importHostedZone;
22
+ private delegateHostedZone;
23
+ addARecord(props: Omit<ARecordProps, "zone">): void;
24
+ addCname(props: Omit<CnameRecordProps, "zone">): void;
25
+ addMx(props: Omit<MxRecordProps, "zone">): void;
26
+ addNS(props: Omit<NsRecordProps, "zone">): void;
27
+ addTxt(props: Omit<TxtRecordProps, "zone">): void;
28
+ }