@fjall/components-infrastructure 0.79.1 → 0.80.4

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 (97) hide show
  1. package/dist/lib/app.d.ts +39 -2
  2. package/dist/lib/app.js +85 -4
  3. package/dist/lib/aspects/resourceInventory.d.ts +41 -0
  4. package/dist/lib/aspects/resourceInventory.js +56 -0
  5. package/dist/lib/config/audit.d.ts +18 -0
  6. package/dist/lib/config/audit.js +22 -0
  7. package/dist/lib/config/aws/accountId.js +3 -3
  8. package/dist/lib/config/aws/ecrDefaultImage.js +7 -7
  9. package/dist/lib/config/aws/identityCenter.js +7 -8
  10. package/dist/lib/config/aws/identityCenterGroupMembership.js +6 -6
  11. package/dist/lib/config/aws/ipam.js +3 -3
  12. package/dist/lib/config/aws/ipamPoolId.js +4 -4
  13. package/dist/lib/config/aws/organisation.js +2 -3
  14. package/dist/lib/config/aws/organisationId.js +4 -4
  15. package/dist/lib/patterns/aws/auditRole.d.ts +44 -0
  16. package/dist/lib/patterns/aws/auditRole.js +58 -0
  17. package/dist/lib/patterns/aws/buildkite.js +12 -12
  18. package/dist/lib/patterns/aws/cdn.d.ts +133 -0
  19. package/dist/lib/patterns/aws/cdn.js +216 -0
  20. package/dist/lib/patterns/aws/compute.d.ts +32 -13
  21. package/dist/lib/patterns/aws/compute.js +24 -14
  22. package/dist/lib/patterns/aws/database.d.ts +8 -1
  23. package/dist/lib/patterns/aws/database.js +13 -5
  24. package/dist/lib/patterns/aws/dynamodb.d.ts +66 -0
  25. package/dist/lib/patterns/aws/dynamodb.js +106 -0
  26. package/dist/lib/patterns/aws/hostedZone.js +7 -2
  27. package/dist/lib/patterns/aws/index.d.ts +1 -0
  28. package/dist/lib/patterns/aws/index.js +2 -1
  29. package/dist/lib/patterns/aws/loadBalancer.d.ts +163 -0
  30. package/dist/lib/patterns/aws/loadBalancer.js +278 -0
  31. package/dist/lib/patterns/aws/managedAccount.js +3 -4
  32. package/dist/lib/patterns/aws/queue.d.ts +61 -0
  33. package/dist/lib/patterns/aws/queue.js +103 -0
  34. package/dist/lib/patterns/aws/storage.js +3 -2
  35. package/dist/lib/patterns/aws/subdomainHostedZone.js +2 -2
  36. package/dist/lib/resources/aws/audit/auditRole.d.ts +32 -0
  37. package/dist/lib/resources/aws/audit/auditRole.js +44 -0
  38. package/dist/lib/resources/aws/backup/backupPlan.js +3 -4
  39. package/dist/lib/resources/aws/backup/backupVault.js +3 -4
  40. package/dist/lib/resources/aws/base/awsStack.js +1 -2
  41. package/dist/lib/resources/aws/cdn/cloudFront.d.ts +65 -0
  42. package/dist/lib/resources/aws/cdn/cloudFront.js +135 -0
  43. package/dist/lib/resources/aws/cdn/index.d.ts +1 -0
  44. package/dist/lib/resources/aws/cdn/index.js +18 -0
  45. package/dist/lib/resources/aws/compute/capacityProviderDrainWaiter.d.ts +20 -0
  46. package/dist/lib/resources/aws/compute/capacityProviderDrainWaiter.js +180 -0
  47. package/dist/lib/resources/aws/compute/ecs.d.ts +65 -11
  48. package/dist/lib/resources/aws/compute/ecs.js +293 -124
  49. package/dist/lib/resources/aws/compute/ecsFreeTier.d.ts +1 -2
  50. package/dist/lib/resources/aws/compute/ecsFreeTier.js +1 -4
  51. package/dist/lib/resources/aws/compute/ecsSpot.d.ts +1 -2
  52. package/dist/lib/resources/aws/compute/ecsSpot.js +1 -4
  53. package/dist/lib/resources/aws/compute/lambda.d.ts +10 -1
  54. package/dist/lib/resources/aws/compute/lambda.js +71 -4
  55. package/dist/lib/resources/aws/database/database.js +1 -1
  56. package/dist/lib/resources/aws/database/dynamodb.d.ts +70 -0
  57. package/dist/lib/resources/aws/database/dynamodb.js +170 -0
  58. package/dist/lib/resources/aws/database/rdsAurora.d.ts +2 -0
  59. package/dist/lib/resources/aws/database/rdsAurora.js +9 -6
  60. package/dist/lib/resources/aws/database/rdsAuroraGlobal.d.ts +2 -0
  61. package/dist/lib/resources/aws/database/rdsAuroraGlobal.js +9 -8
  62. package/dist/lib/resources/aws/database/rdsDeletionWaiter.d.ts +33 -0
  63. package/dist/lib/resources/aws/database/rdsDeletionWaiter.js +74 -0
  64. package/dist/lib/resources/aws/database/rdsInstance.d.ts +2 -0
  65. package/dist/lib/resources/aws/database/rdsInstance.js +7 -4
  66. package/dist/lib/resources/aws/iam/identityCenter/assignment.js +2 -2
  67. package/dist/lib/resources/aws/iam/identityCenter/attachManagedPolicy.js +1 -1
  68. package/dist/lib/resources/aws/iam/identityCenter/group.js +1 -1
  69. package/dist/lib/resources/aws/iam/identityCenter/permissionSet.js +1 -1
  70. package/dist/lib/resources/aws/logging/cloudTrail.js +1 -1
  71. package/dist/lib/resources/aws/messaging/index.d.ts +1 -0
  72. package/dist/lib/resources/aws/messaging/index.js +18 -0
  73. package/dist/lib/resources/aws/messaging/sqs.d.ts +65 -0
  74. package/dist/lib/resources/aws/messaging/sqs.js +195 -0
  75. package/dist/lib/resources/aws/monitoring/monitoringRole.js +2 -3
  76. package/dist/lib/resources/aws/networking/ipamPool.js +1 -1
  77. package/dist/lib/resources/aws/networking/vpc.d.ts +1 -0
  78. package/dist/lib/resources/aws/networking/vpc.js +7 -3
  79. package/dist/lib/resources/aws/networking/vpcEndpoint.d.ts +20 -0
  80. package/dist/lib/resources/aws/networking/vpcEndpoint.js +59 -0
  81. package/dist/lib/resources/aws/networking/vpcEndpoints.d.ts +71 -0
  82. package/dist/lib/resources/aws/networking/vpcEndpoints.js +125 -0
  83. package/dist/lib/resources/aws/secrets/secret.js +1 -1
  84. package/dist/lib/resources/aws/storage/ecr.d.ts +1 -2
  85. package/dist/lib/resources/aws/storage/ecr.js +2 -2
  86. package/dist/lib/resources/aws/utilities/cfnOutput.test.d.ts +1 -0
  87. package/dist/lib/resources/aws/utilities/cfnOutput.test.js +102 -0
  88. package/dist/lib/resources/aws/utilities/codeBuild.d.ts +1 -2
  89. package/dist/lib/resources/aws/utilities/codeBuild.js +1 -1
  90. package/dist/lib/resources/aws/utilities/customResource.d.ts +2 -1
  91. package/dist/lib/resources/aws/utilities/customResource.js +1 -1
  92. package/dist/lib/utils/getStackOutput.js +2 -2
  93. package/dist/lib/utils/sanitizeCfnKey.d.ts +5 -0
  94. package/dist/lib/utils/sanitizeCfnKey.js +11 -0
  95. package/dist/lib/utils/tagResource.d.ts +24 -0
  96. package/dist/lib/utils/tagResource.js +30 -0
  97. package/package.json +6 -5
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueueFactory = exports.Queue = void 0;
4
+ const sqs_1 = require("../../resources/aws/messaging/sqs");
5
+ /**
6
+ * Validates SQS props and logs warnings for misconfigured options.
7
+ */
8
+ function validateSQSProps(props) {
9
+ // Validate visibility timeout range (0-43200 seconds = 12 hours)
10
+ if (props.visibilityTimeout !== undefined &&
11
+ (props.visibilityTimeout < 0 || props.visibilityTimeout > 43200)) {
12
+ throw new Error("visibilityTimeout must be between 0 and 43200 seconds (12 hours)");
13
+ }
14
+ // Validate message retention period (60-1209600 seconds = 1 minute to 14 days)
15
+ if (props.messageRetentionPeriod !== undefined &&
16
+ (props.messageRetentionPeriod < 60 || props.messageRetentionPeriod > 1209600)) {
17
+ throw new Error("messageRetentionPeriod must be between 60 and 1209600 seconds (1 minute to 14 days)");
18
+ }
19
+ // Warn about FIFO-specific options on standard queues
20
+ if (props.queueType !== "fifo") {
21
+ if (props.contentBasedDeduplication !== undefined) {
22
+ console.warn("[Fjall] Warning: 'contentBasedDeduplication' is only applicable to FIFO queues. " +
23
+ "This setting will be ignored for standard queues.");
24
+ }
25
+ if (props.fifoThroughputLimit !== undefined) {
26
+ console.warn("[Fjall] Warning: 'fifoThroughputLimit' is only applicable to FIFO queues. " +
27
+ "This setting will be ignored for standard queues.");
28
+ }
29
+ if (props.deduplicationScope !== undefined) {
30
+ console.warn("[Fjall] Warning: 'deduplicationScope' is only applicable to FIFO queues. " +
31
+ "This setting will be ignored for standard queues.");
32
+ }
33
+ }
34
+ // Validate KMS encryption
35
+ if (props.kmsKeyArn && props.encryption !== "SSE_KMS") {
36
+ console.warn("[Fjall] Warning: 'kmsKeyArn' provided but 'encryption' is not SSE_KMS. " +
37
+ "The KMS key will be ignored.");
38
+ }
39
+ }
40
+ /**
41
+ * SQS queue wrapper with grant methods and Fjall patterns.
42
+ */
43
+ class Queue extends sqs_1.SQSQueue {
44
+ constructor(scope, id, props) {
45
+ const queueProps = {
46
+ queueType: props.queueType,
47
+ visibilityTimeout: props.visibilityTimeout,
48
+ messageRetentionPeriod: props.messageRetentionPeriod,
49
+ receiveMessageWaitTime: props.receiveMessageWaitTime,
50
+ maxMessageSize: props.maxMessageSize,
51
+ deliveryDelay: props.deliveryDelay,
52
+ deadLetterQueue: props.deadLetterQueue,
53
+ encryption: props.encryption,
54
+ kmsKeyArn: props.kmsKeyArn,
55
+ contentBasedDeduplication: props.contentBasedDeduplication,
56
+ fifoThroughputLimit: props.fifoThroughputLimit,
57
+ deduplicationScope: props.deduplicationScope,
58
+ removalPolicy: props.removalPolicy
59
+ };
60
+ super(scope, id, queueProps);
61
+ }
62
+ }
63
+ exports.Queue = Queue;
64
+ /**
65
+ * Factory for creating SQS queues.
66
+ *
67
+ * @example
68
+ * // Standard queue with DLQ
69
+ * const notifications = app.addQueue(QueueFactory.build("Notifications", {
70
+ * queueType: "standard",
71
+ * deadLetterQueue: { enabled: true, maxReceiveCount: 3 }
72
+ * }));
73
+ *
74
+ * @example
75
+ * // FIFO queue for OpenNext revalidation
76
+ * const revalidation = app.addQueue(QueueFactory.build("Revalidation", {
77
+ * queueType: "fifo",
78
+ * visibilityTimeout: 300,
79
+ * contentBasedDeduplication: true
80
+ * }));
81
+ *
82
+ * @example
83
+ * // Grant permissions
84
+ * revalidation.grantSend(serverFunction);
85
+ * revalidation.grantConsume(revalidationFunction);
86
+ */
87
+ class QueueFactory {
88
+ /**
89
+ * Build an SQS queue factory function.
90
+ *
91
+ * @param id - Unique identifier for the queue
92
+ * @param props - SQS queue configuration properties
93
+ * @returns Factory function that creates the queue when invoked
94
+ */
95
+ static build(id, props = {}) {
96
+ return (_app, scope) => {
97
+ validateSQSProps(props);
98
+ return new Queue(scope, id, props);
99
+ };
100
+ }
101
+ }
102
+ exports.QueueFactory = QueueFactory;
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvcGF0dGVybnMvYXdzL3F1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLDJEQUFpRjtBQXFCakY7O0dBRUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLEtBQWdCO0lBQ3hDLGlFQUFpRTtJQUNqRSxJQUNFLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyxTQUFTO1FBQ3JDLENBQUMsS0FBSyxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLEVBQ2hFLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLGtFQUFrRSxDQUNuRSxDQUFDO0lBQ0osQ0FBQztJQUVELCtFQUErRTtJQUMvRSxJQUNFLEtBQUssQ0FBQyxzQkFBc0IsS0FBSyxTQUFTO1FBQzFDLENBQUMsS0FBSyxDQUFDLHNCQUFzQixHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsc0JBQXNCLEdBQUcsT0FBTyxDQUFDLEVBQzdFLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLHFGQUFxRixDQUN0RixDQUFDO0lBQ0osQ0FBQztJQUVELHNEQUFzRDtJQUN0RCxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDL0IsSUFBSSxLQUFLLENBQUMseUJBQXlCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbEQsT0FBTyxDQUFDLElBQUksQ0FDVixrRkFBa0Y7Z0JBQ2hGLG1EQUFtRCxDQUN0RCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLG1CQUFtQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVDLE9BQU8sQ0FBQyxJQUFJLENBQ1YsNEVBQTRFO2dCQUMxRSxtREFBbUQsQ0FDdEQsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQyxPQUFPLENBQUMsSUFBSSxDQUNWLDJFQUEyRTtnQkFDekUsbURBQW1ELENBQ3RELENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELDBCQUEwQjtJQUMxQixJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN0RCxPQUFPLENBQUMsSUFBSSxDQUNWLHlFQUF5RTtZQUN2RSw4QkFBOEIsQ0FDakMsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLEtBQU0sU0FBUSxjQUFRO0lBQ2pDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZ0I7UUFDeEQsTUFBTSxVQUFVLEdBQWtCO1lBQ2hDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQzFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxzQkFBc0I7WUFDcEQsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLHNCQUFzQjtZQUNwRCxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7WUFDcEMsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQ2xDLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLHlCQUF5QixFQUFFLEtBQUssQ0FBQyx5QkFBeUI7WUFDMUQsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLG1CQUFtQjtZQUM5QyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCO1lBQzVDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtTQUNuQyxDQUFDO1FBQ0YsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDL0IsQ0FBQztDQUNGO0FBbkJELHNCQW1CQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsTUFBYSxZQUFZO0lBQ3ZCOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBVSxFQUFFLFFBQW1CLEVBQUU7UUFDNUMsT0FBTyxDQUFDLElBQVMsRUFBRSxLQUFnQixFQUFTLEVBQUU7WUFDNUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWRELG9DQWNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IHR5cGUgSUdyYW50YWJsZSwgdHlwZSBHcmFudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyB0eXBlIElRdWV1ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3FzXCI7XG5cbmltcG9ydCB0eXBlIEFwcCBmcm9tIFwiLi4vLi4vYXBwXCI7XG5pbXBvcnQgeyBTUVNRdWV1ZSwgdHlwZSBTUVNRdWV1ZVByb3BzIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvbWVzc2FnaW5nL3Nxc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTUVNQcm9wcyB7XG4gIHF1ZXVlVHlwZT86IFwic3RhbmRhcmRcIiB8IFwiZmlmb1wiO1xuICB2aXNpYmlsaXR5VGltZW91dD86IG51bWJlcjtcbiAgbWVzc2FnZVJldGVudGlvblBlcmlvZD86IG51bWJlcjtcbiAgcmVjZWl2ZU1lc3NhZ2VXYWl0VGltZT86IG51bWJlcjtcbiAgbWF4TWVzc2FnZVNpemU/OiBudW1iZXI7XG4gIGRlbGl2ZXJ5RGVsYXk/OiBudW1iZXI7XG4gIGRlYWRMZXR0ZXJRdWV1ZT86IHtcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIG1heFJlY2VpdmVDb3VudD86IG51bWJlcjtcbiAgfTtcbiAgZW5jcnlwdGlvbj86IFwiU1NFX1NRU1wiIHwgXCJTU0VfS01TXCIgfCBcIk5PTkVcIjtcbiAga21zS2V5QXJuPzogc3RyaW5nO1xuICBjb250ZW50QmFzZWREZWR1cGxpY2F0aW9uPzogYm9vbGVhbjtcbiAgZmlmb1Rocm91Z2hwdXRMaW1pdD86IFwicGVyUXVldWVcIiB8IFwicGVyTWVzc2FnZUdyb3VwSWRcIjtcbiAgZGVkdXBsaWNhdGlvblNjb3BlPzogXCJxdWV1ZVwiIHwgXCJtZXNzYWdlR3JvdXBcIjtcbiAgcmVtb3ZhbFBvbGljeT86IFwiREVTVFJPWVwiIHwgXCJSRVRBSU5cIjtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgU1FTIHByb3BzIGFuZCBsb2dzIHdhcm5pbmdzIGZvciBtaXNjb25maWd1cmVkIG9wdGlvbnMuXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlU1FTUHJvcHMocHJvcHM6IElTUVNQcm9wcyk6IHZvaWQge1xuICAvLyBWYWxpZGF0ZSB2aXNpYmlsaXR5IHRpbWVvdXQgcmFuZ2UgKDAtNDMyMDAgc2Vjb25kcyA9IDEyIGhvdXJzKVxuICBpZiAoXG4gICAgcHJvcHMudmlzaWJpbGl0eVRpbWVvdXQgIT09IHVuZGVmaW5lZCAmJlxuICAgIChwcm9wcy52aXNpYmlsaXR5VGltZW91dCA8IDAgfHwgcHJvcHMudmlzaWJpbGl0eVRpbWVvdXQgPiA0MzIwMClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJ2aXNpYmlsaXR5VGltZW91dCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgNDMyMDAgc2Vjb25kcyAoMTIgaG91cnMpXCJcbiAgICApO1xuICB9XG5cbiAgLy8gVmFsaWRhdGUgbWVzc2FnZSByZXRlbnRpb24gcGVyaW9kICg2MC0xMjA5NjAwIHNlY29uZHMgPSAxIG1pbnV0ZSB0byAxNCBkYXlzKVxuICBpZiAoXG4gICAgcHJvcHMubWVzc2FnZVJldGVudGlvblBlcmlvZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgKHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2QgPCA2MCB8fCBwcm9wcy5tZXNzYWdlUmV0ZW50aW9uUGVyaW9kID4gMTIwOTYwMClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJtZXNzYWdlUmV0ZW50aW9uUGVyaW9kIG11c3QgYmUgYmV0d2VlbiA2MCBhbmQgMTIwOTYwMCBzZWNvbmRzICgxIG1pbnV0ZSB0byAxNCBkYXlzKVwiXG4gICAgKTtcbiAgfVxuXG4gIC8vIFdhcm4gYWJvdXQgRklGTy1zcGVjaWZpYyBvcHRpb25zIG9uIHN0YW5kYXJkIHF1ZXVlc1xuICBpZiAocHJvcHMucXVldWVUeXBlICE9PSBcImZpZm9cIikge1xuICAgIGlmIChwcm9wcy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgXCJbRmphbGxdIFdhcm5pbmc6ICdjb250ZW50QmFzZWREZWR1cGxpY2F0aW9uJyBpcyBvbmx5IGFwcGxpY2FibGUgdG8gRklGTyBxdWV1ZXMuIFwiICtcbiAgICAgICAgICBcIlRoaXMgc2V0dGluZyB3aWxsIGJlIGlnbm9yZWQgZm9yIHN0YW5kYXJkIHF1ZXVlcy5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmZpZm9UaHJvdWdocHV0TGltaXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBcIltGamFsbF0gV2FybmluZzogJ2ZpZm9UaHJvdWdocHV0TGltaXQnIGlzIG9ubHkgYXBwbGljYWJsZSB0byBGSUZPIHF1ZXVlcy4gXCIgK1xuICAgICAgICAgIFwiVGhpcyBzZXR0aW5nIHdpbGwgYmUgaWdub3JlZCBmb3Igc3RhbmRhcmQgcXVldWVzLlwiXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAocHJvcHMuZGVkdXBsaWNhdGlvblNjb3BlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgXCJbRmphbGxdIFdhcm5pbmc6ICdkZWR1cGxpY2F0aW9uU2NvcGUnIGlzIG9ubHkgYXBwbGljYWJsZSB0byBGSUZPIHF1ZXVlcy4gXCIgK1xuICAgICAgICAgIFwiVGhpcyBzZXR0aW5nIHdpbGwgYmUgaWdub3JlZCBmb3Igc3RhbmRhcmQgcXVldWVzLlwiXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIFZhbGlkYXRlIEtNUyBlbmNyeXB0aW9uXG4gIGlmIChwcm9wcy5rbXNLZXlBcm4gJiYgcHJvcHMuZW5jcnlwdGlvbiAhPT0gXCJTU0VfS01TXCIpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBcIltGamFsbF0gV2FybmluZzogJ2ttc0tleUFybicgcHJvdmlkZWQgYnV0ICdlbmNyeXB0aW9uJyBpcyBub3QgU1NFX0tNUy4gXCIgK1xuICAgICAgICBcIlRoZSBLTVMga2V5IHdpbGwgYmUgaWdub3JlZC5cIlxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBTUVMgcXVldWUgd3JhcHBlciB3aXRoIGdyYW50IG1ldGhvZHMgYW5kIEZqYWxsIHBhdHRlcm5zLlxuICovXG5leHBvcnQgY2xhc3MgUXVldWUgZXh0ZW5kcyBTUVNRdWV1ZSB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJU1FTUHJvcHMpIHtcbiAgICBjb25zdCBxdWV1ZVByb3BzOiBTUVNRdWV1ZVByb3BzID0ge1xuICAgICAgcXVldWVUeXBlOiBwcm9wcy5xdWV1ZVR5cGUsXG4gICAgICB2aXNpYmlsaXR5VGltZW91dDogcHJvcHMudmlzaWJpbGl0eVRpbWVvdXQsXG4gICAgICBtZXNzYWdlUmV0ZW50aW9uUGVyaW9kOiBwcm9wcy5tZXNzYWdlUmV0ZW50aW9uUGVyaW9kLFxuICAgICAgcmVjZWl2ZU1lc3NhZ2VXYWl0VGltZTogcHJvcHMucmVjZWl2ZU1lc3NhZ2VXYWl0VGltZSxcbiAgICAgIG1heE1lc3NhZ2VTaXplOiBwcm9wcy5tYXhNZXNzYWdlU2l6ZSxcbiAgICAgIGRlbGl2ZXJ5RGVsYXk6IHByb3BzLmRlbGl2ZXJ5RGVsYXksXG4gICAgICBkZWFkTGV0dGVyUXVldWU6IHByb3BzLmRlYWRMZXR0ZXJRdWV1ZSxcbiAgICAgIGVuY3J5cHRpb246IHByb3BzLmVuY3J5cHRpb24sXG4gICAgICBrbXNLZXlBcm46IHByb3BzLmttc0tleUFybixcbiAgICAgIGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb246IHByb3BzLmNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24sXG4gICAgICBmaWZvVGhyb3VnaHB1dExpbWl0OiBwcm9wcy5maWZvVGhyb3VnaHB1dExpbWl0LFxuICAgICAgZGVkdXBsaWNhdGlvblNjb3BlOiBwcm9wcy5kZWR1cGxpY2F0aW9uU2NvcGUsXG4gICAgICByZW1vdmFsUG9saWN5OiBwcm9wcy5yZW1vdmFsUG9saWN5XG4gICAgfTtcbiAgICBzdXBlcihzY29wZSwgaWQsIHF1ZXVlUHJvcHMpO1xuICB9XG59XG5cbi8qKlxuICogRmFjdG9yeSBmb3IgY3JlYXRpbmcgU1FTIHF1ZXVlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gU3RhbmRhcmQgcXVldWUgd2l0aCBETFFcbiAqIGNvbnN0IG5vdGlmaWNhdGlvbnMgPSBhcHAuYWRkUXVldWUoUXVldWVGYWN0b3J5LmJ1aWxkKFwiTm90aWZpY2F0aW9uc1wiLCB7XG4gKiAgIHF1ZXVlVHlwZTogXCJzdGFuZGFyZFwiLFxuICogICBkZWFkTGV0dGVyUXVldWU6IHsgZW5hYmxlZDogdHJ1ZSwgbWF4UmVjZWl2ZUNvdW50OiAzIH1cbiAqIH0pKTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRklGTyBxdWV1ZSBmb3IgT3Blbk5leHQgcmV2YWxpZGF0aW9uXG4gKiBjb25zdCByZXZhbGlkYXRpb24gPSBhcHAuYWRkUXVldWUoUXVldWVGYWN0b3J5LmJ1aWxkKFwiUmV2YWxpZGF0aW9uXCIsIHtcbiAqICAgcXVldWVUeXBlOiBcImZpZm9cIixcbiAqICAgdmlzaWJpbGl0eVRpbWVvdXQ6IDMwMCxcbiAqICAgY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbjogdHJ1ZVxuICogfSkpO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBHcmFudCBwZXJtaXNzaW9uc1xuICogcmV2YWxpZGF0aW9uLmdyYW50U2VuZChzZXJ2ZXJGdW5jdGlvbik7XG4gKiByZXZhbGlkYXRpb24uZ3JhbnRDb25zdW1lKHJldmFsaWRhdGlvbkZ1bmN0aW9uKTtcbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXVlRmFjdG9yeSB7XG4gIC8qKlxuICAgKiBCdWlsZCBhbiBTUVMgcXVldWUgZmFjdG9yeSBmdW5jdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIGlkIC0gVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBxdWV1ZVxuICAgKiBAcGFyYW0gcHJvcHMgLSBTUVMgcXVldWUgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIEZhY3RvcnkgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIHRoZSBxdWV1ZSB3aGVuIGludm9rZWRcbiAgICovXG4gIHN0YXRpYyBidWlsZChpZDogc3RyaW5nLCBwcm9wczogSVNRU1Byb3BzID0ge30pIHtcbiAgICByZXR1cm4gKF9hcHA6IEFwcCwgc2NvcGU6IENvbnN0cnVjdCk6IFF1ZXVlID0+IHtcbiAgICAgIHZhbGlkYXRlU1FTUHJvcHMocHJvcHMpO1xuICAgICAgcmV0dXJuIG5ldyBRdWV1ZShzY29wZSwgaWQsIHByb3BzKTtcbiAgICB9O1xuICB9XG59XG5cbi8vIFJlLWV4cG9ydCB0eXBlcyBmb3IgY29udmVuaWVuY2VcbmV4cG9ydCB0eXBlIHsgU1FTUXVldWVQcm9wcyB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL21lc3NhZ2luZy9zcXNcIjtcbiJdfQ==
@@ -30,10 +30,11 @@ class S3Storage extends constructs_1.Construct {
30
30
  case "publicRead":
31
31
  this.addPublicReadBucket(props);
32
32
  break;
33
- default:
33
+ default: {
34
34
  // Exhaustiveness check
35
35
  const _exhaustive = props;
36
36
  throw new Error(`Unsupported S3 bucket type ${props.bucketType}`);
37
+ }
37
38
  }
38
39
  }
39
40
  addPrivateBucket(props) {
@@ -76,4 +77,4 @@ class S3Storage extends constructs_1.Construct {
76
77
  }
77
78
  }
78
79
  exports.S3Storage = S3Storage;
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3Mvc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFJdkMseURBS3FDO0FBZ0NyQyxNQUFhLGNBQWM7SUFDekIsTUFBTSxDQUFDLEtBQUssQ0FBcUIsRUFBVSxFQUFFLEtBQVE7UUFDbkQsT0FBTyxDQUFDLEdBQVEsRUFBRSxLQUFnQixFQUFFLEVBQUU7WUFDcEMsT0FBTyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQU5ELHdDQU1DO0FBRUQsTUFBYSxTQUFVLFNBQVEsc0JBQVM7SUFPdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFlO1FBQ3ZELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFFbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWU7UUFDekIsUUFBUSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDekIsS0FBSyxTQUFTO2dCQUNaLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0IsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdCLE1BQU07WUFDUixLQUFLLFlBQVk7Z0JBQ2YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoQyxNQUFNO1lBQ1I7Z0JBQ0UsdUJBQXVCO2dCQUN2QixNQUFNLFdBQVcsR0FBVSxLQUFLLENBQUM7Z0JBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQ2IsOEJBQStCLEtBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FDMUQsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsS0FBcUI7UUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGtCQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFO1lBQ25ELGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFpQjtZQUNuQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsbUJBQW1CO1lBQzNFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQXFCO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSx5QkFBZSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRTtZQUMxRCxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBaUI7WUFDbkMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQjtZQUNoRCxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CO1lBQ2hELElBQUksRUFBRSxLQUFLLENBQUMsSUFBVztTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBd0I7UUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLDRCQUFrQixDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRTtZQUM3RCxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBaUI7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUFoRkQsOEJBZ0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IHR5cGUgSUJ1Y2tldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcblxuaW1wb3J0IHR5cGUgQXBwIGZyb20gXCIuLi8uLi9hcHBcIjtcbmltcG9ydCB7XG4gIFMzQnVja2V0LFxuICBTM1dlYnNpdGVCdWNrZXQsXG4gIFMzUHVibGljUmVhZEJ1Y2tldCxcbiAgdHlwZSBCYWNrdXBWYXVsdFRpZXJcbn0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3Mvc3RvcmFnZVwiO1xuXG50eXBlIFMzQnVja2V0VHlwZSA9IFwicHJpdmF0ZVwiIHwgXCJ3ZWJzaXRlXCIgfCBcInB1YmxpY1JlYWRcIjtcblxudHlwZSBCYXNlUzNQcm9wcyA9IHtcbiAgYmFja3VwVmF1bHRUaWVyPzogQmFja3VwVmF1bHRUaWVyO1xuICB2ZXJzaW9uZWQ/OiBib29sZWFuO1xuICBlbmNyeXB0aW9uPzogXCJBRVMyNTZcIiB8IFwiS01TXCI7XG4gIGttc0tleUFybj86IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpdmF0ZVMzUHJvcHMgZXh0ZW5kcyBCYXNlUzNQcm9wcyB7XG4gIGJ1Y2tldFR5cGU6IFwicHJpdmF0ZVwiO1xuICBwdWJsaWNSZWFkQWNjZXNzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXZWJzaXRlUzNQcm9wcyBleHRlbmRzIEJhc2VTM1Byb3BzIHtcbiAgYnVja2V0VHlwZTogXCJ3ZWJzaXRlXCI7XG4gIHdlYnNpdGVJbmRleERvY3VtZW50Pzogc3RyaW5nO1xuICB3ZWJzaXRlRXJyb3JEb2N1bWVudD86IHN0cmluZztcbiAgY29ycz86IEFycmF5PHtcbiAgICBhbGxvd2VkT3JpZ2luczogc3RyaW5nW107XG4gICAgYWxsb3dlZE1ldGhvZHM6IHN0cmluZ1tdO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNSZWFkUzNQcm9wcyBleHRlbmRzIEJhc2VTM1Byb3BzIHtcbiAgYnVja2V0VHlwZTogXCJwdWJsaWNSZWFkXCI7XG59XG5cbmV4cG9ydCB0eXBlIElTM1Byb3BzID0gUHJpdmF0ZVMzUHJvcHMgfCBXZWJzaXRlUzNQcm9wcyB8IFB1YmxpY1JlYWRTM1Byb3BzO1xuXG5leHBvcnQgY2xhc3MgU3RvcmFnZUZhY3Rvcnkge1xuICBzdGF0aWMgYnVpbGQ8VCBleHRlbmRzIElTM1Byb3BzPihpZDogc3RyaW5nLCBwcm9wczogVCkge1xuICAgIHJldHVybiAoYXBwOiBBcHAsIHNjb3BlOiBDb25zdHJ1Y3QpID0+IHtcbiAgICAgIHJldHVybiBuZXcgUzNTdG9yYWdlKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFMzU3RvcmFnZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgc2NvcGU6IENvbnN0cnVjdDtcblxuICBwcml2YXRlIGJ1Y2tldDogUzNCdWNrZXQgfCBTM1dlYnNpdGVCdWNrZXQgfCBTM1B1YmxpY1JlYWRCdWNrZXQ7XG4gIHByaXZhdGUgYnVja2V0VHlwZTogUzNCdWNrZXRUeXBlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJUzNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMuc2NvcGUgPSBzY29wZTtcbiAgICB0aGlzLmJ1Y2tldFR5cGUgPSBwcm9wcy5idWNrZXRUeXBlO1xuXG4gICAgdGhpcy5hZGRTM0J1Y2tldChwcm9wcyk7XG4gIH1cblxuICBhZGRTM0J1Y2tldChwcm9wczogSVMzUHJvcHMpIHtcbiAgICBzd2l0Y2ggKHByb3BzLmJ1Y2tldFR5cGUpIHtcbiAgICAgIGNhc2UgXCJwcml2YXRlXCI6XG4gICAgICAgIHRoaXMuYWRkUHJpdmF0ZUJ1Y2tldChwcm9wcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIndlYnNpdGVcIjpcbiAgICAgICAgdGhpcy5hZGRXZWJzaXRlQnVja2V0KHByb3BzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwicHVibGljUmVhZFwiOlxuICAgICAgICB0aGlzLmFkZFB1YmxpY1JlYWRCdWNrZXQocHJvcHMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIEV4aGF1c3RpdmVuZXNzIGNoZWNrXG4gICAgICAgIGNvbnN0IF9leGhhdXN0aXZlOiBuZXZlciA9IHByb3BzO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFVuc3VwcG9ydGVkIFMzIGJ1Y2tldCB0eXBlICR7KHByb3BzIGFzIGFueSkuYnVja2V0VHlwZX1gXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRQcml2YXRlQnVja2V0KHByb3BzOiBQcml2YXRlUzNQcm9wcykge1xuICAgIHRoaXMuYnVja2V0ID0gbmV3IFMzQnVja2V0KHRoaXMsIGAke3RoaXMuaWR9QnVja2V0YCwge1xuICAgICAgYmFja3VwVmF1bHRUaWVyOiBwcm9wcy5iYWNrdXBWYXVsdFRpZXIsXG4gICAgICB2ZXJzaW9uZWQ6IHByb3BzLnZlcnNpb25lZCxcbiAgICAgIGVuY3J5cHRpb246IHByb3BzLmVuY3J5cHRpb24gYXMgYW55LFxuICAgICAgZW5jcnlwdGlvbktleTogcHJvcHMua21zS2V5QXJuID8gdW5kZWZpbmVkIDogdW5kZWZpbmVkLCAvLyBLTVMga2V5IGhhbmRsaW5nXG4gICAgICBwdWJsaWNSZWFkQWNjZXNzOiBwcm9wcy5wdWJsaWNSZWFkQWNjZXNzXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZFdlYnNpdGVCdWNrZXQocHJvcHM6IFdlYnNpdGVTM1Byb3BzKSB7XG4gICAgdGhpcy5idWNrZXQgPSBuZXcgUzNXZWJzaXRlQnVja2V0KHRoaXMsIGAke3RoaXMuaWR9QnVja2V0YCwge1xuICAgICAgYmFja3VwVmF1bHRUaWVyOiBwcm9wcy5iYWNrdXBWYXVsdFRpZXIsXG4gICAgICB2ZXJzaW9uZWQ6IHByb3BzLnZlcnNpb25lZCxcbiAgICAgIGVuY3J5cHRpb246IHByb3BzLmVuY3J5cHRpb24gYXMgYW55LFxuICAgICAgd2Vic2l0ZUluZGV4RG9jdW1lbnQ6IHByb3BzLndlYnNpdGVJbmRleERvY3VtZW50LFxuICAgICAgd2Vic2l0ZUVycm9yRG9jdW1lbnQ6IHByb3BzLndlYnNpdGVFcnJvckRvY3VtZW50LFxuICAgICAgY29yczogcHJvcHMuY29ycyBhcyBhbnlcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkUHVibGljUmVhZEJ1Y2tldChwcm9wczogUHVibGljUmVhZFMzUHJvcHMpIHtcbiAgICB0aGlzLmJ1Y2tldCA9IG5ldyBTM1B1YmxpY1JlYWRCdWNrZXQodGhpcywgYCR7dGhpcy5pZH1CdWNrZXRgLCB7XG4gICAgICBiYWNrdXBWYXVsdFRpZXI6IHByb3BzLmJhY2t1cFZhdWx0VGllcixcbiAgICAgIHZlcnNpb25lZDogcHJvcHMudmVyc2lvbmVkLFxuICAgICAgZW5jcnlwdGlvbjogcHJvcHMuZW5jcnlwdGlvbiBhcyBhbnlcbiAgICB9KTtcbiAgfVxuXG4gIGdldEJ1Y2tldCgpOiBJQnVja2V0IHtcbiAgICByZXR1cm4gdGhpcy5idWNrZXQ7XG4gIH1cblxuICBnZXRCdWNrZXROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYnVja2V0LmJ1Y2tldE5hbWU7XG4gIH1cblxuICBnZXRCdWNrZXRBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5idWNrZXQuYnVja2V0QXJuO1xuICB9XG5cbiAgZ2V0QnVja2V0VHlwZSgpOiBTM0J1Y2tldFR5cGUge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldFR5cGU7XG4gIH1cbn1cbiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3Mvc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFJdkMseURBS3FDO0FBZ0NyQyxNQUFhLGNBQWM7SUFDekIsTUFBTSxDQUFDLEtBQUssQ0FBcUIsRUFBVSxFQUFFLEtBQVE7UUFDbkQsT0FBTyxDQUFDLEdBQVEsRUFBRSxLQUFnQixFQUFFLEVBQUU7WUFDcEMsT0FBTyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQU5ELHdDQU1DO0FBRUQsTUFBYSxTQUFVLFNBQVEsc0JBQVM7SUFPdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFlO1FBQ3ZELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFFbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWU7UUFDekIsUUFBUSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDekIsS0FBSyxTQUFTO2dCQUNaLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0IsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdCLE1BQU07WUFDUixLQUFLLFlBQVk7Z0JBQ2YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoQyxNQUFNO1lBQ1IsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDUix1QkFBdUI7Z0JBQ3ZCLE1BQU0sV0FBVyxHQUFVLEtBQUssQ0FBQztnQkFDakMsTUFBTSxJQUFJLEtBQUssQ0FDYiw4QkFBK0IsS0FBYSxDQUFDLFVBQVUsRUFBRSxDQUMxRCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsS0FBcUI7UUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGtCQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFO1lBQ25ELGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFpQjtZQUNuQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsbUJBQW1CO1lBQzNFLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQXFCO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSx5QkFBZSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRTtZQUMxRCxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBaUI7WUFDbkMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQjtZQUNoRCxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CO1lBQ2hELElBQUksRUFBRSxLQUFLLENBQUMsSUFBVztTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBd0I7UUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLDRCQUFrQixDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRTtZQUM3RCxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBaUI7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUFqRkQsOEJBaUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IHR5cGUgSUJ1Y2tldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcblxuaW1wb3J0IHR5cGUgQXBwIGZyb20gXCIuLi8uLi9hcHBcIjtcbmltcG9ydCB7XG4gIFMzQnVja2V0LFxuICBTM1dlYnNpdGVCdWNrZXQsXG4gIFMzUHVibGljUmVhZEJ1Y2tldCxcbiAgdHlwZSBCYWNrdXBWYXVsdFRpZXJcbn0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3Mvc3RvcmFnZVwiO1xuXG50eXBlIFMzQnVja2V0VHlwZSA9IFwicHJpdmF0ZVwiIHwgXCJ3ZWJzaXRlXCIgfCBcInB1YmxpY1JlYWRcIjtcblxudHlwZSBCYXNlUzNQcm9wcyA9IHtcbiAgYmFja3VwVmF1bHRUaWVyPzogQmFja3VwVmF1bHRUaWVyO1xuICB2ZXJzaW9uZWQ/OiBib29sZWFuO1xuICBlbmNyeXB0aW9uPzogXCJBRVMyNTZcIiB8IFwiS01TXCI7XG4gIGttc0tleUFybj86IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpdmF0ZVMzUHJvcHMgZXh0ZW5kcyBCYXNlUzNQcm9wcyB7XG4gIGJ1Y2tldFR5cGU6IFwicHJpdmF0ZVwiO1xuICBwdWJsaWNSZWFkQWNjZXNzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXZWJzaXRlUzNQcm9wcyBleHRlbmRzIEJhc2VTM1Byb3BzIHtcbiAgYnVja2V0VHlwZTogXCJ3ZWJzaXRlXCI7XG4gIHdlYnNpdGVJbmRleERvY3VtZW50Pzogc3RyaW5nO1xuICB3ZWJzaXRlRXJyb3JEb2N1bWVudD86IHN0cmluZztcbiAgY29ycz86IEFycmF5PHtcbiAgICBhbGxvd2VkT3JpZ2luczogc3RyaW5nW107XG4gICAgYWxsb3dlZE1ldGhvZHM6IHN0cmluZ1tdO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNSZWFkUzNQcm9wcyBleHRlbmRzIEJhc2VTM1Byb3BzIHtcbiAgYnVja2V0VHlwZTogXCJwdWJsaWNSZWFkXCI7XG59XG5cbmV4cG9ydCB0eXBlIElTM1Byb3BzID0gUHJpdmF0ZVMzUHJvcHMgfCBXZWJzaXRlUzNQcm9wcyB8IFB1YmxpY1JlYWRTM1Byb3BzO1xuXG5leHBvcnQgY2xhc3MgU3RvcmFnZUZhY3Rvcnkge1xuICBzdGF0aWMgYnVpbGQ8VCBleHRlbmRzIElTM1Byb3BzPihpZDogc3RyaW5nLCBwcm9wczogVCkge1xuICAgIHJldHVybiAoYXBwOiBBcHAsIHNjb3BlOiBDb25zdHJ1Y3QpID0+IHtcbiAgICAgIHJldHVybiBuZXcgUzNTdG9yYWdlKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFMzU3RvcmFnZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgc2NvcGU6IENvbnN0cnVjdDtcblxuICBwcml2YXRlIGJ1Y2tldDogUzNCdWNrZXQgfCBTM1dlYnNpdGVCdWNrZXQgfCBTM1B1YmxpY1JlYWRCdWNrZXQ7XG4gIHByaXZhdGUgYnVja2V0VHlwZTogUzNCdWNrZXRUeXBlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJUzNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMuc2NvcGUgPSBzY29wZTtcbiAgICB0aGlzLmJ1Y2tldFR5cGUgPSBwcm9wcy5idWNrZXRUeXBlO1xuXG4gICAgdGhpcy5hZGRTM0J1Y2tldChwcm9wcyk7XG4gIH1cblxuICBhZGRTM0J1Y2tldChwcm9wczogSVMzUHJvcHMpIHtcbiAgICBzd2l0Y2ggKHByb3BzLmJ1Y2tldFR5cGUpIHtcbiAgICAgIGNhc2UgXCJwcml2YXRlXCI6XG4gICAgICAgIHRoaXMuYWRkUHJpdmF0ZUJ1Y2tldChwcm9wcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIndlYnNpdGVcIjpcbiAgICAgICAgdGhpcy5hZGRXZWJzaXRlQnVja2V0KHByb3BzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwicHVibGljUmVhZFwiOlxuICAgICAgICB0aGlzLmFkZFB1YmxpY1JlYWRCdWNrZXQocHJvcHMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgLy8gRXhoYXVzdGl2ZW5lc3MgY2hlY2tcbiAgICAgICAgY29uc3QgX2V4aGF1c3RpdmU6IG5ldmVyID0gcHJvcHM7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVW5zdXBwb3J0ZWQgUzMgYnVja2V0IHR5cGUgJHsocHJvcHMgYXMgYW55KS5idWNrZXRUeXBlfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZFByaXZhdGVCdWNrZXQocHJvcHM6IFByaXZhdGVTM1Byb3BzKSB7XG4gICAgdGhpcy5idWNrZXQgPSBuZXcgUzNCdWNrZXQodGhpcywgYCR7dGhpcy5pZH1CdWNrZXRgLCB7XG4gICAgICBiYWNrdXBWYXVsdFRpZXI6IHByb3BzLmJhY2t1cFZhdWx0VGllcixcbiAgICAgIHZlcnNpb25lZDogcHJvcHMudmVyc2lvbmVkLFxuICAgICAgZW5jcnlwdGlvbjogcHJvcHMuZW5jcnlwdGlvbiBhcyBhbnksXG4gICAgICBlbmNyeXB0aW9uS2V5OiBwcm9wcy5rbXNLZXlBcm4gPyB1bmRlZmluZWQgOiB1bmRlZmluZWQsIC8vIEtNUyBrZXkgaGFuZGxpbmdcbiAgICAgIHB1YmxpY1JlYWRBY2Nlc3M6IHByb3BzLnB1YmxpY1JlYWRBY2Nlc3NcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkV2Vic2l0ZUJ1Y2tldChwcm9wczogV2Vic2l0ZVMzUHJvcHMpIHtcbiAgICB0aGlzLmJ1Y2tldCA9IG5ldyBTM1dlYnNpdGVCdWNrZXQodGhpcywgYCR7dGhpcy5pZH1CdWNrZXRgLCB7XG4gICAgICBiYWNrdXBWYXVsdFRpZXI6IHByb3BzLmJhY2t1cFZhdWx0VGllcixcbiAgICAgIHZlcnNpb25lZDogcHJvcHMudmVyc2lvbmVkLFxuICAgICAgZW5jcnlwdGlvbjogcHJvcHMuZW5jcnlwdGlvbiBhcyBhbnksXG4gICAgICB3ZWJzaXRlSW5kZXhEb2N1bWVudDogcHJvcHMud2Vic2l0ZUluZGV4RG9jdW1lbnQsXG4gICAgICB3ZWJzaXRlRXJyb3JEb2N1bWVudDogcHJvcHMud2Vic2l0ZUVycm9yRG9jdW1lbnQsXG4gICAgICBjb3JzOiBwcm9wcy5jb3JzIGFzIGFueVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRQdWJsaWNSZWFkQnVja2V0KHByb3BzOiBQdWJsaWNSZWFkUzNQcm9wcykge1xuICAgIHRoaXMuYnVja2V0ID0gbmV3IFMzUHVibGljUmVhZEJ1Y2tldCh0aGlzLCBgJHt0aGlzLmlkfUJ1Y2tldGAsIHtcbiAgICAgIGJhY2t1cFZhdWx0VGllcjogcHJvcHMuYmFja3VwVmF1bHRUaWVyLFxuICAgICAgdmVyc2lvbmVkOiBwcm9wcy52ZXJzaW9uZWQsXG4gICAgICBlbmNyeXB0aW9uOiBwcm9wcy5lbmNyeXB0aW9uIGFzIGFueVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0QnVja2V0KCk6IElCdWNrZXQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldDtcbiAgfVxuXG4gIGdldEJ1Y2tldE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5idWNrZXQuYnVja2V0TmFtZTtcbiAgfVxuXG4gIGdldEJ1Y2tldEFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5idWNrZXRBcm47XG4gIH1cblxuICBnZXRCdWNrZXRUeXBlKCk6IFMzQnVja2V0VHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuYnVja2V0VHlwZTtcbiAgfVxufVxuIl19
@@ -29,11 +29,11 @@ class SubdomainHostedZone extends aws_cdk_lib_1.Stack {
29
29
  parentHostedZoneName: props.parentHostedZoneName
30
30
  });
31
31
  new aws_cdk_lib_1.CfnOutput(this, `${props.delegatedZone.split(".").join("")}HostedZoneId`, {
32
- key: "HostedZoneId",
32
+ key: `${props.delegatedZone.split(".").join("")}HostedZoneId`,
33
33
  value: delegatedHostedZone.hostedZoneId,
34
34
  exportName: `${props.delegatedZone.split(".").join("")}HostedZoneId`
35
35
  });
36
36
  }
37
37
  }
38
38
  exports.SubdomainHostedZone = SubdomainHostedZone;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViZG9tYWluSG9zdGVkWm9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3Mvc3ViZG9tYWluSG9zdGVkWm9uZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBbUQ7QUFDbkQsNkNBQStDO0FBQy9DLGlEQUErQztBQUMvQywyREFBb0Q7QUFDcEQsbUNBQTRCO0FBUTVCLE1BQWEsbUJBQW9CLFNBQVEsbUJBQUs7SUFDNUMsWUFBWSxFQUFVLEVBQUUsS0FBK0I7UUFDckQsS0FBSyxDQUFDLGFBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU3QixvQkFBb0I7UUFDcEIsTUFBTSxpQkFBaUIsR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDakQsT0FBTyxFQUFFLElBQUEsc0JBQVksRUFBQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7WUFDOUMsTUFBTSxFQUFFLEVBQUU7WUFDVixRQUFRLEVBQUUsTUFBTTtZQUNoQixZQUFZLEVBQUUsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUMvQyxHQUFHLEVBQ0gsQ0FBQyxDQUNGLHdCQUF3QjtZQUN6QixPQUFPLEVBQUUsS0FBSztTQUNmLENBQUMsQ0FBQztRQUVILDRCQUE0QjtRQUM1QixNQUFNLHdCQUF3QixHQUFHLFVBQUksQ0FBQyxXQUFXLENBQy9DLElBQUksRUFDSiwwQkFBMEIsRUFDMUIsaUJBQWlCLENBQ2xCLENBQUM7UUFFRixhQUFhO1FBQ2IsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQ2hELElBQUksRUFDSixHQUFHLEtBQUssQ0FBQyxhQUFhLFlBQVksRUFDbEM7WUFDRSxRQUFRLEVBQUUsS0FBSyxDQUFDLGFBQWE7U0FDOUIsQ0FDRixDQUFDO1FBRUYsSUFBSSxPQUFPLENBQUMsZ0NBQWdDLENBQzFDLElBQUksRUFDSixHQUFHLEtBQUssQ0FBQyxhQUFhLGdCQUFnQixFQUN0QztZQUNFLGNBQWMsRUFBRSx3QkFBd0I7WUFDeEMsYUFBYSxFQUFFLG1CQUFtQjtZQUNsQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CO1NBQ2pELENBQ0YsQ0FBQztRQUVGLElBQUksdUJBQVMsQ0FDWCxJQUFJLEVBQ0osR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFDeEQ7WUFDRSxHQUFHLEVBQUUsY0FBYztZQUNuQixLQUFLLEVBQUUsbUJBQW1CLENBQUMsWUFBWTtZQUN2QyxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWM7U0FDckUsQ0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBcERELGtEQW9EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJvdXRlNTMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQgeyBDZm5PdXRwdXQsIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBSb2xlIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvaWFtXCI7XG5pbXBvcnQgZ2V0QWNjb3VudElkIGZyb20gXCIuLi8uLi91dGlscy9nZXRBY2NvdW50SWRcIjtcbmltcG9ydCBBcHAgZnJvbSBcIi4uLy4uL2FwcFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIHN1YmRvbWFpbkhvc3RlZFpvbmVQcm9wcyB7XG4gIGRlbGVnYXRlZFpvbmU6IHN0cmluZztcbiAgcGFyZW50SG9zdGVkWm9uZU5hbWU6IHN0cmluZztcbiAgcGFyZW50QWNjb3VudE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFN1YmRvbWFpbkhvc3RlZFpvbmUgZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKGlkOiBzdHJpbmcsIHByb3BzOiBzdWJkb21haW5Ib3N0ZWRab25lUHJvcHMpIHtcbiAgICBzdXBlcihBcHAuZ2V0SW5zdGFuY2UoKSwgaWQpO1xuXG4gICAgLy8gRGVsZWdhdGlvblJvbGVBcm5cbiAgICBjb25zdCBkZWxlZ2F0aW9uUm9sZUFybiA9IFN0YWNrLm9mKHRoaXMpLmZvcm1hdEFybih7XG4gICAgICBhY2NvdW50OiBnZXRBY2NvdW50SWQocHJvcHMucGFyZW50QWNjb3VudE5hbWUpLFxuICAgICAgcmVnaW9uOiBcIlwiLFxuICAgICAgcmVzb3VyY2U6IFwicm9sZVwiLFxuICAgICAgcmVzb3VyY2VOYW1lOiBgJHtwcm9wcy5wYXJlbnRIb3N0ZWRab25lTmFtZS5zcGxpdChcbiAgICAgICAgXCIuXCIsXG4gICAgICAgIDFcbiAgICAgICl9RGVsZWdhdGVIb3N0ZWRab25lUm9sZWAsXG4gICAgICBzZXJ2aWNlOiBcImlhbVwiXG4gICAgfSk7XG5cbiAgICAvLyBEZWxlZ2F0ZSBIb3N0ZWQgWm9uZSBSb2xlXG4gICAgY29uc3QgaG9zdGVkWm9uZURlbGVnYXRpb25Sb2xlID0gUm9sZS5mcm9tUm9sZUFybihcbiAgICAgIHRoaXMsXG4gICAgICBcImhvc3RlZFpvbmVEZWxlZ2F0aW9uUm9sZVwiLFxuICAgICAgZGVsZWdhdGlvblJvbGVBcm5cbiAgICApO1xuXG4gICAgLy8gU3ViZG9tYWluc1xuICAgIGNvbnN0IGRlbGVnYXRlZEhvc3RlZFpvbmUgPSBuZXcgcm91dGU1My5Ib3N0ZWRab25lKFxuICAgICAgdGhpcyxcbiAgICAgIGAke3Byb3BzLmRlbGVnYXRlZFpvbmV9SG9zdGVkWm9uZWAsXG4gICAgICB7XG4gICAgICAgIHpvbmVOYW1lOiBwcm9wcy5kZWxlZ2F0ZWRab25lXG4gICAgICB9XG4gICAgKTtcblxuICAgIG5ldyByb3V0ZTUzLkNyb3NzQWNjb3VudFpvbmVEZWxlZ2F0aW9uUmVjb3JkKFxuICAgICAgdGhpcyxcbiAgICAgIGAke3Byb3BzLmRlbGVnYXRlZFpvbmV9RGVsZWdhdGlvblJvbGVgLFxuICAgICAge1xuICAgICAgICBkZWxlZ2F0aW9uUm9sZTogaG9zdGVkWm9uZURlbGVnYXRpb25Sb2xlLFxuICAgICAgICBkZWxlZ2F0ZWRab25lOiBkZWxlZ2F0ZWRIb3N0ZWRab25lLFxuICAgICAgICBwYXJlbnRIb3N0ZWRab25lTmFtZTogcHJvcHMucGFyZW50SG9zdGVkWm9uZU5hbWVcbiAgICAgIH1cbiAgICApO1xuXG4gICAgbmV3IENmbk91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBgJHtwcm9wcy5kZWxlZ2F0ZWRab25lLnNwbGl0KFwiLlwiKS5qb2luKFwiXCIpfUhvc3RlZFpvbmVJZGAsXG4gICAgICB7XG4gICAgICAgIGtleTogXCJIb3N0ZWRab25lSWRcIixcbiAgICAgICAgdmFsdWU6IGRlbGVnYXRlZEhvc3RlZFpvbmUuaG9zdGVkWm9uZUlkLFxuICAgICAgICBleHBvcnROYW1lOiBgJHtwcm9wcy5kZWxlZ2F0ZWRab25lLnNwbGl0KFwiLlwiKS5qb2luKFwiXCIpfUhvc3RlZFpvbmVJZGBcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViZG9tYWluSG9zdGVkWm9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3Mvc3ViZG9tYWluSG9zdGVkWm9uZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBbUQ7QUFDbkQsNkNBQStDO0FBQy9DLGlEQUErQztBQUMvQywyREFBb0Q7QUFDcEQsbUNBQTRCO0FBUTVCLE1BQWEsbUJBQW9CLFNBQVEsbUJBQUs7SUFDNUMsWUFBWSxFQUFVLEVBQUUsS0FBK0I7UUFDckQsS0FBSyxDQUFDLGFBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU3QixvQkFBb0I7UUFDcEIsTUFBTSxpQkFBaUIsR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDakQsT0FBTyxFQUFFLElBQUEsc0JBQVksRUFBQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7WUFDOUMsTUFBTSxFQUFFLEVBQUU7WUFDVixRQUFRLEVBQUUsTUFBTTtZQUNoQixZQUFZLEVBQUUsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUMvQyxHQUFHLEVBQ0gsQ0FBQyxDQUNGLHdCQUF3QjtZQUN6QixPQUFPLEVBQUUsS0FBSztTQUNmLENBQUMsQ0FBQztRQUVILDRCQUE0QjtRQUM1QixNQUFNLHdCQUF3QixHQUFHLFVBQUksQ0FBQyxXQUFXLENBQy9DLElBQUksRUFDSiwwQkFBMEIsRUFDMUIsaUJBQWlCLENBQ2xCLENBQUM7UUFFRixhQUFhO1FBQ2IsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQ2hELElBQUksRUFDSixHQUFHLEtBQUssQ0FBQyxhQUFhLFlBQVksRUFDbEM7WUFDRSxRQUFRLEVBQUUsS0FBSyxDQUFDLGFBQWE7U0FDOUIsQ0FDRixDQUFDO1FBRUYsSUFBSSxPQUFPLENBQUMsZ0NBQWdDLENBQzFDLElBQUksRUFDSixHQUFHLEtBQUssQ0FBQyxhQUFhLGdCQUFnQixFQUN0QztZQUNFLGNBQWMsRUFBRSx3QkFBd0I7WUFDeEMsYUFBYSxFQUFFLG1CQUFtQjtZQUNsQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CO1NBQ2pELENBQ0YsQ0FBQztRQUVGLElBQUksdUJBQVMsQ0FDWCxJQUFJLEVBQ0osR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFDeEQ7WUFDRSxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWM7WUFDN0QsS0FBSyxFQUFFLG1CQUFtQixDQUFDLFlBQVk7WUFDdkMsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjO1NBQ3JFLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXBERCxrREFvREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyByb3V0ZTUzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHsgQ2ZuT3V0cHV0LCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUm9sZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2lhbVwiO1xuaW1wb3J0IGdldEFjY291bnRJZCBmcm9tIFwiLi4vLi4vdXRpbHMvZ2V0QWNjb3VudElkXCI7XG5pbXBvcnQgQXBwIGZyb20gXCIuLi8uLi9hcHBcIjtcblxuZXhwb3J0IGludGVyZmFjZSBzdWJkb21haW5Ib3N0ZWRab25lUHJvcHMge1xuICBkZWxlZ2F0ZWRab25lOiBzdHJpbmc7XG4gIHBhcmVudEhvc3RlZFpvbmVOYW1lOiBzdHJpbmc7XG4gIHBhcmVudEFjY291bnROYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBTdWJkb21haW5Ib3N0ZWRab25lIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCBwcm9wczogc3ViZG9tYWluSG9zdGVkWm9uZVByb3BzKSB7XG4gICAgc3VwZXIoQXBwLmdldEluc3RhbmNlKCksIGlkKTtcblxuICAgIC8vIERlbGVnYXRpb25Sb2xlQXJuXG4gICAgY29uc3QgZGVsZWdhdGlvblJvbGVBcm4gPSBTdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgYWNjb3VudDogZ2V0QWNjb3VudElkKHByb3BzLnBhcmVudEFjY291bnROYW1lKSxcbiAgICAgIHJlZ2lvbjogXCJcIixcbiAgICAgIHJlc291cmNlOiBcInJvbGVcIixcbiAgICAgIHJlc291cmNlTmFtZTogYCR7cHJvcHMucGFyZW50SG9zdGVkWm9uZU5hbWUuc3BsaXQoXG4gICAgICAgIFwiLlwiLFxuICAgICAgICAxXG4gICAgICApfURlbGVnYXRlSG9zdGVkWm9uZVJvbGVgLFxuICAgICAgc2VydmljZTogXCJpYW1cIlxuICAgIH0pO1xuXG4gICAgLy8gRGVsZWdhdGUgSG9zdGVkIFpvbmUgUm9sZVxuICAgIGNvbnN0IGhvc3RlZFpvbmVEZWxlZ2F0aW9uUm9sZSA9IFJvbGUuZnJvbVJvbGVBcm4oXG4gICAgICB0aGlzLFxuICAgICAgXCJob3N0ZWRab25lRGVsZWdhdGlvblJvbGVcIixcbiAgICAgIGRlbGVnYXRpb25Sb2xlQXJuXG4gICAgKTtcblxuICAgIC8vIFN1YmRvbWFpbnNcbiAgICBjb25zdCBkZWxlZ2F0ZWRIb3N0ZWRab25lID0gbmV3IHJvdXRlNTMuSG9zdGVkWm9uZShcbiAgICAgIHRoaXMsXG4gICAgICBgJHtwcm9wcy5kZWxlZ2F0ZWRab25lfUhvc3RlZFpvbmVgLFxuICAgICAge1xuICAgICAgICB6b25lTmFtZTogcHJvcHMuZGVsZWdhdGVkWm9uZVxuICAgICAgfVxuICAgICk7XG5cbiAgICBuZXcgcm91dGU1My5Dcm9zc0FjY291bnRab25lRGVsZWdhdGlvblJlY29yZChcbiAgICAgIHRoaXMsXG4gICAgICBgJHtwcm9wcy5kZWxlZ2F0ZWRab25lfURlbGVnYXRpb25Sb2xlYCxcbiAgICAgIHtcbiAgICAgICAgZGVsZWdhdGlvblJvbGU6IGhvc3RlZFpvbmVEZWxlZ2F0aW9uUm9sZSxcbiAgICAgICAgZGVsZWdhdGVkWm9uZTogZGVsZWdhdGVkSG9zdGVkWm9uZSxcbiAgICAgICAgcGFyZW50SG9zdGVkWm9uZU5hbWU6IHByb3BzLnBhcmVudEhvc3RlZFpvbmVOYW1lXG4gICAgICB9XG4gICAgKTtcblxuICAgIG5ldyBDZm5PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgYCR7cHJvcHMuZGVsZWdhdGVkWm9uZS5zcGxpdChcIi5cIikuam9pbihcIlwiKX1Ib3N0ZWRab25lSWRgLFxuICAgICAge1xuICAgICAgICBrZXk6IGAke3Byb3BzLmRlbGVnYXRlZFpvbmUuc3BsaXQoXCIuXCIpLmpvaW4oXCJcIil9SG9zdGVkWm9uZUlkYCxcbiAgICAgICAgdmFsdWU6IGRlbGVnYXRlZEhvc3RlZFpvbmUuaG9zdGVkWm9uZUlkLFxuICAgICAgICBleHBvcnROYW1lOiBgJHtwcm9wcy5kZWxlZ2F0ZWRab25lLnNwbGl0KFwiLlwiKS5qb2luKFwiXCIpfUhvc3RlZFpvbmVJZGBcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { Role } from "aws-cdk-lib/aws-iam";
2
+ import { type Construct } from "constructs";
3
+ export interface AuditRoleConfig {
4
+ /**
5
+ * The AWS account ID of the Fjall webapp that will assume this role
6
+ */
7
+ webappAccountId: string;
8
+ /**
9
+ * The application name to scope the role's permissions to
10
+ */
11
+ appName: string;
12
+ /**
13
+ * External ID for additional security when assuming the role
14
+ */
15
+ externalId: string;
16
+ /**
17
+ * Optional role name prefix. Defaults to "FjallAudit"
18
+ */
19
+ roleNamePrefix?: string;
20
+ /**
21
+ * Optional IAM path for the role. Defaults to "/"
22
+ */
23
+ rolePath?: string;
24
+ }
25
+ /**
26
+ * Factory to build a cross-account audit IAM role that allows the Fjall webapp
27
+ * to use CloudQuery for comprehensive read-only auditing of AWS resources.
28
+ */
29
+ export declare class AuditRoleFactory {
30
+ static build(id: string, config: AuditRoleConfig): (app: Construct, scope: Construct) => Role;
31
+ }
32
+ export default AuditRoleFactory;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuditRoleFactory = void 0;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
6
+ /**
7
+ * Factory to build a cross-account audit IAM role that allows the Fjall webapp
8
+ * to use CloudQuery for comprehensive read-only auditing of AWS resources.
9
+ */
10
+ class AuditRoleFactory {
11
+ static build(id, config) {
12
+ return (_app, scope) => {
13
+ const role = new aws_iam_1.Role(scope, id, {
14
+ roleName: `${config.roleNamePrefix || "FjallAudit"}-${config.appName}`,
15
+ path: config.rolePath || "/",
16
+ assumedBy: new aws_iam_1.AccountPrincipal(config.webappAccountId),
17
+ description: `Cross-account audit role for CloudQuery access to application: ${config.appName}`,
18
+ externalIds: [config.externalId],
19
+ managedPolicies: [
20
+ // AWS managed policy for comprehensive read-only access
21
+ aws_iam_1.ManagedPolicy.fromAwsManagedPolicyName("ReadOnlyAccess"),
22
+ // AWS managed policy for security auditing
23
+ aws_iam_1.ManagedPolicy.fromAwsManagedPolicyName("SecurityAudit")
24
+ ]
25
+ });
26
+ // Export the role ARN so it can be retrieved after deployment
27
+ new aws_cdk_lib_1.CfnOutput(scope, `${id}Arn`, {
28
+ value: role.roleArn,
29
+ description: `ARN of the audit role for ${config.appName}`,
30
+ exportName: `${config.appName}-AuditRoleArn`
31
+ });
32
+ // Export the external ID so it can be retrieved after deployment
33
+ new aws_cdk_lib_1.CfnOutput(scope, `${id}ExternalId`, {
34
+ value: config.externalId,
35
+ description: `External ID for the audit role for ${config.appName}`,
36
+ exportName: `${config.appName}-AuditRoleExternalId`
37
+ });
38
+ return role;
39
+ };
40
+ }
41
+ }
42
+ exports.AuditRoleFactory = AuditRoleFactory;
43
+ exports.default = AuditRoleFactory;
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXRSb2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvYXVkaXQvYXVkaXRSb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF3QztBQUN4QyxpREFBNEU7QUE4QjVFOzs7R0FHRztBQUNILE1BQWEsZ0JBQWdCO0lBQ3BCLE1BQU0sQ0FBQyxLQUFLLENBQ2pCLEVBQVUsRUFDVixNQUF1QjtRQUV2QixPQUFPLENBQUMsSUFBZSxFQUFFLEtBQWdCLEVBQUUsRUFBRTtZQUMzQyxNQUFNLElBQUksR0FBRyxJQUFJLGNBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO2dCQUMvQixRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUMsY0FBYyxJQUFJLFlBQVksSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO2dCQUN0RSxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSxHQUFHO2dCQUM1QixTQUFTLEVBQUUsSUFBSSwwQkFBZ0IsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO2dCQUN2RCxXQUFXLEVBQUUsa0VBQWtFLE1BQU0sQ0FBQyxPQUFPLEVBQUU7Z0JBQy9GLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7Z0JBQ2hDLGVBQWUsRUFBRTtvQkFDZix3REFBd0Q7b0JBQ3hELHVCQUFhLENBQUMsd0JBQXdCLENBQUMsZ0JBQWdCLENBQUM7b0JBQ3hELDJDQUEyQztvQkFDM0MsdUJBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQUM7aUJBQ3hEO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsOERBQThEO1lBQzlELElBQUksdUJBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRTtnQkFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNuQixXQUFXLEVBQUUsNkJBQTZCLE1BQU0sQ0FBQyxPQUFPLEVBQUU7Z0JBQzFELFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLGVBQWU7YUFDN0MsQ0FBQyxDQUFDO1lBRUgsaUVBQWlFO1lBQ2pFLElBQUksdUJBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRTtnQkFDdEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxVQUFVO2dCQUN4QixXQUFXLEVBQUUsc0NBQXNDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7Z0JBQ25FLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLHNCQUFzQjthQUNwRCxDQUFDLENBQUM7WUFFSCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXJDRCw0Q0FxQ0M7QUFFRCxrQkFBZSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk91dHB1dCB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUm9sZSwgQWNjb3VudFByaW5jaXBhbCwgTWFuYWdlZFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyB0eXBlIENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXVkaXRSb2xlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBBV1MgYWNjb3VudCBJRCBvZiB0aGUgRmphbGwgd2ViYXBwIHRoYXQgd2lsbCBhc3N1bWUgdGhpcyByb2xlXG4gICAqL1xuICB3ZWJhcHBBY2NvdW50SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFwcGxpY2F0aW9uIG5hbWUgdG8gc2NvcGUgdGhlIHJvbGUncyBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgYXBwTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHRlcm5hbCBJRCBmb3IgYWRkaXRpb25hbCBzZWN1cml0eSB3aGVuIGFzc3VtaW5nIHRoZSByb2xlXG4gICAqL1xuICBleHRlcm5hbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHJvbGUgbmFtZSBwcmVmaXguIERlZmF1bHRzIHRvIFwiRmphbGxBdWRpdFwiXG4gICAqL1xuICByb2xlTmFtZVByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgSUFNIHBhdGggZm9yIHRoZSByb2xlLiBEZWZhdWx0cyB0byBcIi9cIlxuICAgKi9cbiAgcm9sZVBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRmFjdG9yeSB0byBidWlsZCBhIGNyb3NzLWFjY291bnQgYXVkaXQgSUFNIHJvbGUgdGhhdCBhbGxvd3MgdGhlIEZqYWxsIHdlYmFwcFxuICogdG8gdXNlIENsb3VkUXVlcnkgZm9yIGNvbXByZWhlbnNpdmUgcmVhZC1vbmx5IGF1ZGl0aW5nIG9mIEFXUyByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdWRpdFJvbGVGYWN0b3J5IHtcbiAgcHVibGljIHN0YXRpYyBidWlsZChcbiAgICBpZDogc3RyaW5nLFxuICAgIGNvbmZpZzogQXVkaXRSb2xlQ29uZmlnXG4gICk6IChhcHA6IENvbnN0cnVjdCwgc2NvcGU6IENvbnN0cnVjdCkgPT4gUm9sZSB7XG4gICAgcmV0dXJuIChfYXBwOiBDb25zdHJ1Y3QsIHNjb3BlOiBDb25zdHJ1Y3QpID0+IHtcbiAgICAgIGNvbnN0IHJvbGUgPSBuZXcgUm9sZShzY29wZSwgaWQsIHtcbiAgICAgICAgcm9sZU5hbWU6IGAke2NvbmZpZy5yb2xlTmFtZVByZWZpeCB8fCBcIkZqYWxsQXVkaXRcIn0tJHtjb25maWcuYXBwTmFtZX1gLFxuICAgICAgICBwYXRoOiBjb25maWcucm9sZVBhdGggfHwgXCIvXCIsXG4gICAgICAgIGFzc3VtZWRCeTogbmV3IEFjY291bnRQcmluY2lwYWwoY29uZmlnLndlYmFwcEFjY291bnRJZCksXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgQ3Jvc3MtYWNjb3VudCBhdWRpdCByb2xlIGZvciBDbG91ZFF1ZXJ5IGFjY2VzcyB0byBhcHBsaWNhdGlvbjogJHtjb25maWcuYXBwTmFtZX1gLFxuICAgICAgICBleHRlcm5hbElkczogW2NvbmZpZy5leHRlcm5hbElkXSxcbiAgICAgICAgbWFuYWdlZFBvbGljaWVzOiBbXG4gICAgICAgICAgLy8gQVdTIG1hbmFnZWQgcG9saWN5IGZvciBjb21wcmVoZW5zaXZlIHJlYWQtb25seSBhY2Nlc3NcbiAgICAgICAgICBNYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcIlJlYWRPbmx5QWNjZXNzXCIpLFxuICAgICAgICAgIC8vIEFXUyBtYW5hZ2VkIHBvbGljeSBmb3Igc2VjdXJpdHkgYXVkaXRpbmdcbiAgICAgICAgICBNYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcIlNlY3VyaXR5QXVkaXRcIilcbiAgICAgICAgXVxuICAgICAgfSk7XG5cbiAgICAgIC8vIEV4cG9ydCB0aGUgcm9sZSBBUk4gc28gaXQgY2FuIGJlIHJldHJpZXZlZCBhZnRlciBkZXBsb3ltZW50XG4gICAgICBuZXcgQ2ZuT3V0cHV0KHNjb3BlLCBgJHtpZH1Bcm5gLCB7XG4gICAgICAgIHZhbHVlOiByb2xlLnJvbGVBcm4sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgQVJOIG9mIHRoZSBhdWRpdCByb2xlIGZvciAke2NvbmZpZy5hcHBOYW1lfWAsXG4gICAgICAgIGV4cG9ydE5hbWU6IGAke2NvbmZpZy5hcHBOYW1lfS1BdWRpdFJvbGVBcm5gXG4gICAgICB9KTtcblxuICAgICAgLy8gRXhwb3J0IHRoZSBleHRlcm5hbCBJRCBzbyBpdCBjYW4gYmUgcmV0cmlldmVkIGFmdGVyIGRlcGxveW1lbnRcbiAgICAgIG5ldyBDZm5PdXRwdXQoc2NvcGUsIGAke2lkfUV4dGVybmFsSWRgLCB7XG4gICAgICAgIHZhbHVlOiBjb25maWcuZXh0ZXJuYWxJZCxcbiAgICAgICAgZGVzY3JpcHRpb246IGBFeHRlcm5hbCBJRCBmb3IgdGhlIGF1ZGl0IHJvbGUgZm9yICR7Y29uZmlnLmFwcE5hbWV9YCxcbiAgICAgICAgZXhwb3J0TmFtZTogYCR7Y29uZmlnLmFwcE5hbWV9LUF1ZGl0Um9sZUV4dGVybmFsSWRgXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHJvbGU7XG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBdWRpdFJvbGVGYWN0b3J5O1xuIl19
@@ -21,12 +21,11 @@ class BackupPlan extends constructs_1.Construct {
21
21
  resources: [aws_backup_1.BackupResource.fromTag(tagKey, props.tagValue)],
22
22
  role: this.createBackupRole(props)
23
23
  });
24
- // Export plan ARN
25
- const planNamePascal = props.planName.charAt(0).toUpperCase() + props.planName.slice(1);
24
+ // Export plan ARN (wrapper handles sanitisation)
26
25
  this.planArn = new aws_cdk_lib_1.CfnOutput(this, `${props.planName}PlanArn`, {
27
26
  key: `${props.planName}PlanArn`,
28
27
  value: this.plan.backupPlanArn,
29
- exportName: `${planNamePascal}BackupPlanArn`
28
+ exportName: `${props.planName}BackupPlanArn`
30
29
  });
31
30
  }
32
31
  createBackupRole(props) {
@@ -63,4 +62,4 @@ class BackupPlan extends constructs_1.Construct {
63
62
  }
64
63
  }
65
64
  exports.BackupPlan = BackupPlan;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3VwUGxhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2JhY2t1cC9iYWNrdXBQbGFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF1QztBQUN2Qyw2Q0FBd0M7QUFDeEMsdURBS2dDO0FBQ2hDLDJDQUEyQztBQVczQyxNQUFhLFVBQVcsU0FBUSxzQkFBUztJQUt2QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSw2QkFBNkIsQ0FBQztRQUU3RCx5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLHVCQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsTUFBTSxFQUFFO1lBQ2xELGNBQWMsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUM5QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLO1lBQ3BDLGVBQWUsRUFBRSxLQUFLLENBQUMsS0FBSztTQUM3QixDQUFDLENBQUM7UUFFSCw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLDRCQUFlLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsV0FBVyxFQUFFO1lBQ3ZFLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNyQixTQUFTLEVBQUUsQ0FBQywyQkFBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNELElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1NBQ25DLENBQUMsQ0FBQztRQUVILGtCQUFrQjtRQUNsQixNQUFNLGNBQWMsR0FDbEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsU0FBUyxFQUFFO1lBQzdELEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLFNBQVM7WUFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUM5QixVQUFVLEVBQUUsR0FBRyxjQUFjLGVBQWU7U0FDN0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQXNCO1FBQzdDLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxZQUFZLEVBQUU7WUFDN0QsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDO1lBQzNELFdBQVcsRUFBRSxtQkFBbUIsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNoRCxlQUFlLEVBQUU7Z0JBQ2YsdUJBQXVCO2dCQUN2QixHQUFHLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUN4QyxrREFBa0QsQ0FDbkQ7Z0JBQ0QsR0FBRyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FDeEMsb0RBQW9ELENBQ3JEO2dCQUNELG9CQUFvQjtnQkFDcEIsR0FBRyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FDeEMsdUNBQXVDLENBQ3hDO2dCQUNELEdBQUcsQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQ3hDLHdDQUF3QyxDQUN6QzthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsQ0FDZCxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztZQUN4QixPQUFPLEVBQUU7Z0JBQ1Asc0JBQXNCO2dCQUN0Qix3Q0FBd0M7Z0JBQ3hDLG9DQUFvQztnQkFDcEMseUJBQXlCO2dCQUN6Qix3QkFBd0I7Z0JBQ3hCLG1DQUFtQzthQUNwQztZQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUNqQixDQUFDLENBQ0gsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBVSxFQUFFLEtBQXNCO1FBQzdDLE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUU7WUFDMUIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQS9FRCxnQ0ErRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ2ZuT3V0cHV0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBCYWNrdXBQbGFuIGFzIFBsYW4sXG4gIEJhY2t1cFNlbGVjdGlvbixcbiAgQmFja3VwUmVzb3VyY2UsXG4gIHR5cGUgQmFja3VwUGxhblJ1bGVcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1iYWNrdXBcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgdHlwZSBCYWNrdXBWYXVsdCB9IGZyb20gXCIuL2JhY2t1cFZhdWx0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFja3VwUGxhblByb3BzIHtcbiAgcGxhbk5hbWU6IHN0cmluZztcbiAgcnVsZXM6IEJhY2t1cFBsYW5SdWxlW107XG4gIGJhY2t1cFZhdWx0OiBCYWNrdXBWYXVsdDtcbiAgdGFnVmFsdWU6IHN0cmluZztcbiAgdGFnS2V5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQmFja3VwUGxhbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBwbGFuOiBQbGFuO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uOiBCYWNrdXBTZWxlY3Rpb247XG4gIHB1YmxpYyByZWFkb25seSBwbGFuQXJuOiBDZm5PdXRwdXQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEJhY2t1cFBsYW5Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB0YWdLZXkgPSBwcm9wcy50YWdLZXkgfHwgXCJmamFsbDpkaXNhc3RlclJlY292ZXJ5OnRpZXJcIjtcblxuICAgIC8vIENyZWF0ZSBiYWNrdXAgcGxhbiB3aXRoIHByb3ZpZGVkIHJ1bGVzXG4gICAgdGhpcy5wbGFuID0gbmV3IFBsYW4odGhpcywgYCR7cHJvcHMucGxhbk5hbWV9UGxhbmAsIHtcbiAgICAgIGJhY2t1cFBsYW5OYW1lOiBwcm9wcy5wbGFuTmFtZSxcbiAgICAgIGJhY2t1cFZhdWx0OiBwcm9wcy5iYWNrdXBWYXVsdC52YXVsdCxcbiAgICAgIGJhY2t1cFBsYW5SdWxlczogcHJvcHMucnVsZXNcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSB0YWctYmFzZWQgc2VsZWN0aW9uXG4gICAgdGhpcy5zZWxlY3Rpb24gPSBuZXcgQmFja3VwU2VsZWN0aW9uKHRoaXMsIGAke3Byb3BzLnBsYW5OYW1lfVNlbGVjdGlvbmAsIHtcbiAgICAgIGJhY2t1cFBsYW46IHRoaXMucGxhbixcbiAgICAgIHJlc291cmNlczogW0JhY2t1cFJlc291cmNlLmZyb21UYWcodGFnS2V5LCBwcm9wcy50YWdWYWx1ZSldLFxuICAgICAgcm9sZTogdGhpcy5jcmVhdGVCYWNrdXBSb2xlKHByb3BzKVxuICAgIH0pO1xuXG4gICAgLy8gRXhwb3J0IHBsYW4gQVJOXG4gICAgY29uc3QgcGxhbk5hbWVQYXNjYWwgPVxuICAgICAgcHJvcHMucGxhbk5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwcm9wcy5wbGFuTmFtZS5zbGljZSgxKTtcblxuICAgIHRoaXMucGxhbkFybiA9IG5ldyBDZm5PdXRwdXQodGhpcywgYCR7cHJvcHMucGxhbk5hbWV9UGxhbkFybmAsIHtcbiAgICAgIGtleTogYCR7cHJvcHMucGxhbk5hbWV9UGxhbkFybmAsXG4gICAgICB2YWx1ZTogdGhpcy5wbGFuLmJhY2t1cFBsYW5Bcm4sXG4gICAgICBleHBvcnROYW1lOiBgJHtwbGFuTmFtZVBhc2NhbH1CYWNrdXBQbGFuQXJuYFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVCYWNrdXBSb2xlKHByb3BzOiBCYWNrdXBQbGFuUHJvcHMpOiBpYW0uUm9sZSB7XG4gICAgY29uc3Qgcm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCBgJHtwcm9wcy5wbGFuTmFtZX1CYWNrdXBSb2xlYCwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJiYWNrdXAuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBgQmFja3VwIHJvbGUgZm9yICR7cHJvcHMucGxhbk5hbWV9YCxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICAvLyBDb3JlIGJhY2t1cCBwb2xpY2llc1xuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXG4gICAgICAgICAgXCJzZXJ2aWNlLXJvbGUvQVdTQmFja3VwU2VydmljZVJvbGVQb2xpY3lGb3JCYWNrdXBcIlxuICAgICAgICApLFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXG4gICAgICAgICAgXCJzZXJ2aWNlLXJvbGUvQVdTQmFja3VwU2VydmljZVJvbGVQb2xpY3lGb3JSZXN0b3Jlc1wiXG4gICAgICAgICksXG4gICAgICAgIC8vIFMzIGJhY2t1cCBzdXBwb3J0XG4gICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcbiAgICAgICAgICBcIkFXU0JhY2t1cFNlcnZpY2VSb2xlUG9saWN5Rm9yUzNCYWNrdXBcIlxuICAgICAgICApLFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXG4gICAgICAgICAgXCJBV1NCYWNrdXBTZXJ2aWNlUm9sZVBvbGljeUZvclMzUmVzdG9yZVwiXG4gICAgICAgIClcbiAgICAgIF1cbiAgICB9KTtcblxuICAgIHJvbGUuYWRkVG9Qb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIFwicmRzOk1vZGlmeURCSW5zdGFuY2VcIixcbiAgICAgICAgICBcInJkczpEZXNjcmliZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzXCIsXG4gICAgICAgICAgXCJyZHM6UmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lXCIsXG4gICAgICAgICAgXCJyZHM6RGVzY3JpYmVEQkluc3RhbmNlc1wiLFxuICAgICAgICAgIFwicmRzOkRlc2NyaWJlREJDbHVzdGVyc1wiLFxuICAgICAgICAgIFwicmRzOlJlc3RvcmVEQkNsdXN0ZXJUb1BvaW50SW5UaW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICB9KVxuICAgICk7XG4gICAgcmV0dXJuIHJvbGU7XG4gIH1cblxuICBzdGF0aWMgYnVpbGQoaWQ6IHN0cmluZywgcHJvcHM6IEJhY2t1cFBsYW5Qcm9wcykge1xuICAgIHJldHVybiAoc2NvcGU6IENvbnN0cnVjdCkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBCYWNrdXBQbGFuKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3VwUGxhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL2JhY2t1cC9iYWNrdXBQbGFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF1QztBQUN2Qyw2Q0FBd0M7QUFDeEMsdURBS2dDO0FBQ2hDLDJDQUEyQztBQVczQyxNQUFhLFVBQVcsU0FBUSxzQkFBUztJQUt2QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSw2QkFBNkIsQ0FBQztRQUU3RCx5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLHVCQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsTUFBTSxFQUFFO1lBQ2xELGNBQWMsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUM5QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLO1lBQ3BDLGVBQWUsRUFBRSxLQUFLLENBQUMsS0FBSztTQUM3QixDQUFDLENBQUM7UUFFSCw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLDRCQUFlLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsV0FBVyxFQUFFO1lBQ3ZFLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNyQixTQUFTLEVBQUUsQ0FBQywyQkFBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNELElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1NBQ25DLENBQUMsQ0FBQztRQUVILGlEQUFpRDtRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxTQUFTLEVBQUU7WUFDN0QsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsU0FBUztZQUMvQixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO1lBQzlCLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLGVBQWU7U0FDN0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQXNCO1FBQzdDLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxZQUFZLEVBQUU7WUFDN0QsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDO1lBQzNELFdBQVcsRUFBRSxtQkFBbUIsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNoRCxlQUFlLEVBQUU7Z0JBQ2YsdUJBQXVCO2dCQUN2QixHQUFHLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUN4QyxrREFBa0QsQ0FDbkQ7Z0JBQ0QsR0FBRyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FDeEMsb0RBQW9ELENBQ3JEO2dCQUNELG9CQUFvQjtnQkFDcEIsR0FBRyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FDeEMsdUNBQXVDLENBQ3hDO2dCQUNELEdBQUcsQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQ3hDLHdDQUF3QyxDQUN6QzthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsQ0FDZCxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztZQUN4QixPQUFPLEVBQUU7Z0JBQ1Asc0JBQXNCO2dCQUN0Qix3Q0FBd0M7Z0JBQ3hDLG9DQUFvQztnQkFDcEMseUJBQXlCO2dCQUN6Qix3QkFBd0I7Z0JBQ3hCLG1DQUFtQzthQUNwQztZQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUNqQixDQUFDLENBQ0gsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBVSxFQUFFLEtBQXNCO1FBQzdDLE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUU7WUFDMUIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTVFRCxnQ0E0RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ2ZuT3V0cHV0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBCYWNrdXBQbGFuIGFzIFBsYW4sXG4gIEJhY2t1cFNlbGVjdGlvbixcbiAgQmFja3VwUmVzb3VyY2UsXG4gIHR5cGUgQmFja3VwUGxhblJ1bGVcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1iYWNrdXBcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgdHlwZSBCYWNrdXBWYXVsdCB9IGZyb20gXCIuL2JhY2t1cFZhdWx0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFja3VwUGxhblByb3BzIHtcbiAgcGxhbk5hbWU6IHN0cmluZztcbiAgcnVsZXM6IEJhY2t1cFBsYW5SdWxlW107XG4gIGJhY2t1cFZhdWx0OiBCYWNrdXBWYXVsdDtcbiAgdGFnVmFsdWU6IHN0cmluZztcbiAgdGFnS2V5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQmFja3VwUGxhbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBwbGFuOiBQbGFuO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0aW9uOiBCYWNrdXBTZWxlY3Rpb247XG4gIHB1YmxpYyByZWFkb25seSBwbGFuQXJuOiBDZm5PdXRwdXQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEJhY2t1cFBsYW5Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB0YWdLZXkgPSBwcm9wcy50YWdLZXkgfHwgXCJmamFsbDpkaXNhc3RlclJlY292ZXJ5OnRpZXJcIjtcblxuICAgIC8vIENyZWF0ZSBiYWNrdXAgcGxhbiB3aXRoIHByb3ZpZGVkIHJ1bGVzXG4gICAgdGhpcy5wbGFuID0gbmV3IFBsYW4odGhpcywgYCR7cHJvcHMucGxhbk5hbWV9UGxhbmAsIHtcbiAgICAgIGJhY2t1cFBsYW5OYW1lOiBwcm9wcy5wbGFuTmFtZSxcbiAgICAgIGJhY2t1cFZhdWx0OiBwcm9wcy5iYWNrdXBWYXVsdC52YXVsdCxcbiAgICAgIGJhY2t1cFBsYW5SdWxlczogcHJvcHMucnVsZXNcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSB0YWctYmFzZWQgc2VsZWN0aW9uXG4gICAgdGhpcy5zZWxlY3Rpb24gPSBuZXcgQmFja3VwU2VsZWN0aW9uKHRoaXMsIGAke3Byb3BzLnBsYW5OYW1lfVNlbGVjdGlvbmAsIHtcbiAgICAgIGJhY2t1cFBsYW46IHRoaXMucGxhbixcbiAgICAgIHJlc291cmNlczogW0JhY2t1cFJlc291cmNlLmZyb21UYWcodGFnS2V5LCBwcm9wcy50YWdWYWx1ZSldLFxuICAgICAgcm9sZTogdGhpcy5jcmVhdGVCYWNrdXBSb2xlKHByb3BzKVxuICAgIH0pO1xuXG4gICAgLy8gRXhwb3J0IHBsYW4gQVJOICh3cmFwcGVyIGhhbmRsZXMgc2FuaXRpc2F0aW9uKVxuICAgIHRoaXMucGxhbkFybiA9IG5ldyBDZm5PdXRwdXQodGhpcywgYCR7cHJvcHMucGxhbk5hbWV9UGxhbkFybmAsIHtcbiAgICAgIGtleTogYCR7cHJvcHMucGxhbk5hbWV9UGxhbkFybmAsXG4gICAgICB2YWx1ZTogdGhpcy5wbGFuLmJhY2t1cFBsYW5Bcm4sXG4gICAgICBleHBvcnROYW1lOiBgJHtwcm9wcy5wbGFuTmFtZX1CYWNrdXBQbGFuQXJuYFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVCYWNrdXBSb2xlKHByb3BzOiBCYWNrdXBQbGFuUHJvcHMpOiBpYW0uUm9sZSB7XG4gICAgY29uc3Qgcm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCBgJHtwcm9wcy5wbGFuTmFtZX1CYWNrdXBSb2xlYCwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJiYWNrdXAuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBgQmFja3VwIHJvbGUgZm9yICR7cHJvcHMucGxhbk5hbWV9YCxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICAvLyBDb3JlIGJhY2t1cCBwb2xpY2llc1xuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXG4gICAgICAgICAgXCJzZXJ2aWNlLXJvbGUvQVdTQmFja3VwU2VydmljZVJvbGVQb2xpY3lGb3JCYWNrdXBcIlxuICAgICAgICApLFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXG4gICAgICAgICAgXCJzZXJ2aWNlLXJvbGUvQVdTQmFja3VwU2VydmljZVJvbGVQb2xpY3lGb3JSZXN0b3Jlc1wiXG4gICAgICAgICksXG4gICAgICAgIC8vIFMzIGJhY2t1cCBzdXBwb3J0XG4gICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcbiAgICAgICAgICBcIkFXU0JhY2t1cFNlcnZpY2VSb2xlUG9saWN5Rm9yUzNCYWNrdXBcIlxuICAgICAgICApLFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXG4gICAgICAgICAgXCJBV1NCYWNrdXBTZXJ2aWNlUm9sZVBvbGljeUZvclMzUmVzdG9yZVwiXG4gICAgICAgIClcbiAgICAgIF1cbiAgICB9KTtcblxuICAgIHJvbGUuYWRkVG9Qb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIFwicmRzOk1vZGlmeURCSW5zdGFuY2VcIixcbiAgICAgICAgICBcInJkczpEZXNjcmliZURCSW5zdGFuY2VBdXRvbWF0ZWRCYWNrdXBzXCIsXG4gICAgICAgICAgXCJyZHM6UmVzdG9yZURCSW5zdGFuY2VUb1BvaW50SW5UaW1lXCIsXG4gICAgICAgICAgXCJyZHM6RGVzY3JpYmVEQkluc3RhbmNlc1wiLFxuICAgICAgICAgIFwicmRzOkRlc2NyaWJlREJDbHVzdGVyc1wiLFxuICAgICAgICAgIFwicmRzOlJlc3RvcmVEQkNsdXN0ZXJUb1BvaW50SW5UaW1lXCJcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICB9KVxuICAgICk7XG4gICAgcmV0dXJuIHJvbGU7XG4gIH1cblxuICBzdGF0aWMgYnVpbGQoaWQ6IHN0cmluZywgcHJvcHM6IEJhY2t1cFBsYW5Qcm9wcykge1xuICAgIHJldHVybiAoc2NvcGU6IENvbnN0cnVjdCkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBCYWNrdXBQbGFuKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -20,16 +20,15 @@ class BackupVault extends constructs_1.Construct {
20
20
  lockConfiguration: props.lockConfiguration,
21
21
  removalPolicy: props.removalPolicy || aws_cdk_lib_1.RemovalPolicy.RETAIN
22
22
  });
23
- const vaultNamePascal = props.vaultName.charAt(0).toUpperCase() + props.vaultName.slice(1);
24
23
  this.vaultArn = new aws_cdk_lib_1.CfnOutput(this, `${props.vaultName}VaultArn`, {
25
24
  key: `${props.vaultName}VaultArn`,
26
25
  value: this.vault.backupVaultArn,
27
- exportName: `${vaultNamePascal}Arn`
26
+ exportName: `${props.vaultName}Arn`
28
27
  });
29
28
  this.vaultName = new aws_cdk_lib_1.CfnOutput(this, `${props.vaultName}VaultName`, {
30
29
  key: `${props.vaultName}VaultName`,
31
30
  value: this.vault.backupVaultName,
32
- exportName: `${vaultNamePascal}Name`
31
+ exportName: `${props.vaultName}Name`
33
32
  });
34
33
  }
35
34
  // Factory method following existing patterns
@@ -40,4 +39,4 @@ class BackupVault extends constructs_1.Construct {
40
39
  }
41
40
  }
42
41
  exports.BackupVault = BackupVault;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3VwVmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9iYWNrdXAvYmFja3VwVmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBQ3ZDLDZDQUF1RDtBQUN2RCx1REFHZ0M7QUFFaEMsd0NBQW9EO0FBVXBELE1BQWEsV0FBWSxTQUFRLHNCQUFTO0lBS3hDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUI7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGFBQWEsR0FDakIsS0FBSyxDQUFDLGFBQWE7WUFDbkIsSUFBSSx3QkFBa0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxLQUFLLEVBQUU7Z0JBQ3BELFdBQVcsRUFBRSxtQ0FBbUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtnQkFDakUsU0FBUyxFQUFFLG1CQUFtQixLQUFLLENBQUMsU0FBUyxFQUFFO2FBQ2hELENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSx3QkFBSyxDQUFDLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLE9BQU8sRUFBRTtZQUN0RCxlQUFlLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDaEMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHO1lBQ2hDLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQzFDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYSxJQUFJLDJCQUFhLENBQUMsTUFBTTtTQUMzRCxDQUFDLENBQUM7UUFFSCxNQUFNLGVBQWUsR0FDbkIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFNBQVMsVUFBVSxFQUFFO1lBQ2hFLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLFVBQVU7WUFDakMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYztZQUNoQyxVQUFVLEVBQUUsR0FBRyxlQUFlLEtBQUs7U0FDcEMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFNBQVMsV0FBVyxFQUFFO1lBQ2xFLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLFdBQVc7WUFDbEMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZTtZQUNqQyxVQUFVLEVBQUUsR0FBRyxlQUFlLE1BQU07U0FDckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDZDQUE2QztJQUM3QyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQVUsRUFBRSxLQUF1QjtRQUM5QyxPQUFPLENBQUMsS0FBZ0IsRUFBRSxFQUFFO1lBQzFCLE9BQU8sSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE3Q0Qsa0NBNkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IENmbk91dHB1dCwgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgQmFja3VwVmF1bHQgYXMgVmF1bHQsXG4gIHR5cGUgTG9ja0NvbmZpZ3VyYXRpb25cbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1iYWNrdXBcIjtcbmltcG9ydCB7IHR5cGUgUG9saWN5RG9jdW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ3VzdG9tZXJNYW5hZ2VkS2V5IH0gZnJvbSBcIi4uL3NlY3JldHMva21zXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFja3VwVmF1bHRQcm9wcyB7XG4gIHZhdWx0TmFtZTogc3RyaW5nO1xuICBlbmNyeXB0aW9uS2V5PzogQ3VzdG9tZXJNYW5hZ2VkS2V5O1xuICBhY2Nlc3NQb2xpY3k/OiBQb2xpY3lEb2N1bWVudDtcbiAgbG9ja0NvbmZpZ3VyYXRpb24/OiBMb2NrQ29uZmlndXJhdGlvbjtcbiAgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG59XG5cbmV4cG9ydCBjbGFzcyBCYWNrdXBWYXVsdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSB2YXVsdDogVmF1bHQ7XG4gIHB1YmxpYyByZWFkb25seSB2YXVsdEFybjogQ2ZuT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgdmF1bHROYW1lOiBDZm5PdXRwdXQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEJhY2t1cFZhdWx0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZW5jcnlwdGlvbktleSA9XG4gICAgICBwcm9wcy5lbmNyeXB0aW9uS2V5IHx8XG4gICAgICBuZXcgQ3VzdG9tZXJNYW5hZ2VkS2V5KHRoaXMsIGAke3Byb3BzLnZhdWx0TmFtZX1LZXlgLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBgRW5jcnlwdGlvbiBrZXkgZm9yIGJhY2t1cCB2YXVsdCAke3Byb3BzLnZhdWx0TmFtZX1gLFxuICAgICAgICBhbGlhc05hbWU6IGBjbWsvYmFja3VwVmF1bHQvJHtwcm9wcy52YXVsdE5hbWV9YFxuICAgICAgfSk7XG5cbiAgICB0aGlzLnZhdWx0ID0gbmV3IFZhdWx0KHRoaXMsIGAke3Byb3BzLnZhdWx0TmFtZX1WYXVsdGAsIHtcbiAgICAgIGJhY2t1cFZhdWx0TmFtZTogcHJvcHMudmF1bHROYW1lLFxuICAgICAgZW5jcnlwdGlvbktleTogZW5jcnlwdGlvbktleS5rZXksXG4gICAgICBhY2Nlc3NQb2xpY3k6IHByb3BzLmFjY2Vzc1BvbGljeSxcbiAgICAgIGxvY2tDb25maWd1cmF0aW9uOiBwcm9wcy5sb2NrQ29uZmlndXJhdGlvbixcbiAgICAgIHJlbW92YWxQb2xpY3k6IHByb3BzLnJlbW92YWxQb2xpY3kgfHwgUmVtb3ZhbFBvbGljeS5SRVRBSU5cbiAgICB9KTtcblxuICAgIGNvbnN0IHZhdWx0TmFtZVBhc2NhbCA9XG4gICAgICBwcm9wcy52YXVsdE5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwcm9wcy52YXVsdE5hbWUuc2xpY2UoMSk7XG5cbiAgICB0aGlzLnZhdWx0QXJuID0gbmV3IENmbk91dHB1dCh0aGlzLCBgJHtwcm9wcy52YXVsdE5hbWV9VmF1bHRBcm5gLCB7XG4gICAgICBrZXk6IGAke3Byb3BzLnZhdWx0TmFtZX1WYXVsdEFybmAsXG4gICAgICB2YWx1ZTogdGhpcy52YXVsdC5iYWNrdXBWYXVsdEFybixcbiAgICAgIGV4cG9ydE5hbWU6IGAke3ZhdWx0TmFtZVBhc2NhbH1Bcm5gXG4gICAgfSk7XG5cbiAgICB0aGlzLnZhdWx0TmFtZSA9IG5ldyBDZm5PdXRwdXQodGhpcywgYCR7cHJvcHMudmF1bHROYW1lfVZhdWx0TmFtZWAsIHtcbiAgICAgIGtleTogYCR7cHJvcHMudmF1bHROYW1lfVZhdWx0TmFtZWAsXG4gICAgICB2YWx1ZTogdGhpcy52YXVsdC5iYWNrdXBWYXVsdE5hbWUsXG4gICAgICBleHBvcnROYW1lOiBgJHt2YXVsdE5hbWVQYXNjYWx9TmFtZWBcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEZhY3RvcnkgbWV0aG9kIGZvbGxvd2luZyBleGlzdGluZyBwYXR0ZXJuc1xuICBzdGF0aWMgYnVpbGQoaWQ6IHN0cmluZywgcHJvcHM6IEJhY2t1cFZhdWx0UHJvcHMpIHtcbiAgICByZXR1cm4gKHNjb3BlOiBDb25zdHJ1Y3QpID0+IHtcbiAgICAgIHJldHVybiBuZXcgQmFja3VwVmF1bHQoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgfTtcbiAgfVxufVxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3VwVmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9iYWNrdXAvYmFja3VwVmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBQ3ZDLDZDQUF1RDtBQUN2RCx1REFHZ0M7QUFFaEMsd0NBQW9EO0FBVXBELE1BQWEsV0FBWSxTQUFRLHNCQUFTO0lBS3hDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUI7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGFBQWEsR0FDakIsS0FBSyxDQUFDLGFBQWE7WUFDbkIsSUFBSSx3QkFBa0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxLQUFLLEVBQUU7Z0JBQ3BELFdBQVcsRUFBRSxtQ0FBbUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtnQkFDakUsU0FBUyxFQUFFLG1CQUFtQixLQUFLLENBQUMsU0FBUyxFQUFFO2FBQ2hELENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSx3QkFBSyxDQUFDLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLE9BQU8sRUFBRTtZQUN0RCxlQUFlLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDaEMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHO1lBQ2hDLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQzFDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYSxJQUFJLDJCQUFhLENBQUMsTUFBTTtTQUMzRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxVQUFVLEVBQUU7WUFDaEUsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLFNBQVMsVUFBVTtZQUNqQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjO1lBQ2hDLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLEtBQUs7U0FDcEMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFNBQVMsV0FBVyxFQUFFO1lBQ2xFLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLFdBQVc7WUFDbEMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZTtZQUNqQyxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxNQUFNO1NBQ3JDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCw2Q0FBNkM7SUFDN0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFVLEVBQUUsS0FBdUI7UUFDOUMsT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBRTtZQUMxQixPQUFPLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBMUNELGtDQTBDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBDZm5PdXRwdXQsIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7XG4gIEJhY2t1cFZhdWx0IGFzIFZhdWx0LFxuICB0eXBlIExvY2tDb25maWd1cmF0aW9uXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYmFja3VwXCI7XG5pbXBvcnQgeyB0eXBlIFBvbGljeURvY3VtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IEN1c3RvbWVyTWFuYWdlZEtleSB9IGZyb20gXCIuLi9zZWNyZXRzL2ttc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhY2t1cFZhdWx0UHJvcHMge1xuICB2YXVsdE5hbWU6IHN0cmluZztcbiAgZW5jcnlwdGlvbktleT86IEN1c3RvbWVyTWFuYWdlZEtleTtcbiAgYWNjZXNzUG9saWN5PzogUG9saWN5RG9jdW1lbnQ7XG4gIGxvY2tDb25maWd1cmF0aW9uPzogTG9ja0NvbmZpZ3VyYXRpb247XG4gIHJlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5O1xufVxuXG5leHBvcnQgY2xhc3MgQmFja3VwVmF1bHQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgdmF1bHQ6IFZhdWx0O1xuICBwdWJsaWMgcmVhZG9ubHkgdmF1bHRBcm46IENmbk91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHZhdWx0TmFtZTogQ2ZuT3V0cHV0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCYWNrdXBWYXVsdFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGVuY3J5cHRpb25LZXkgPVxuICAgICAgcHJvcHMuZW5jcnlwdGlvbktleSB8fFxuICAgICAgbmV3IEN1c3RvbWVyTWFuYWdlZEtleSh0aGlzLCBgJHtwcm9wcy52YXVsdE5hbWV9S2V5YCwge1xuICAgICAgICBkZXNjcmlwdGlvbjogYEVuY3J5cHRpb24ga2V5IGZvciBiYWNrdXAgdmF1bHQgJHtwcm9wcy52YXVsdE5hbWV9YCxcbiAgICAgICAgYWxpYXNOYW1lOiBgY21rL2JhY2t1cFZhdWx0LyR7cHJvcHMudmF1bHROYW1lfWBcbiAgICAgIH0pO1xuXG4gICAgdGhpcy52YXVsdCA9IG5ldyBWYXVsdCh0aGlzLCBgJHtwcm9wcy52YXVsdE5hbWV9VmF1bHRgLCB7XG4gICAgICBiYWNrdXBWYXVsdE5hbWU6IHByb3BzLnZhdWx0TmFtZSxcbiAgICAgIGVuY3J5cHRpb25LZXk6IGVuY3J5cHRpb25LZXkua2V5LFxuICAgICAgYWNjZXNzUG9saWN5OiBwcm9wcy5hY2Nlc3NQb2xpY3ksXG4gICAgICBsb2NrQ29uZmlndXJhdGlvbjogcHJvcHMubG9ja0NvbmZpZ3VyYXRpb24sXG4gICAgICByZW1vdmFsUG9saWN5OiBwcm9wcy5yZW1vdmFsUG9saWN5IHx8IFJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAgfSk7XG5cbiAgICB0aGlzLnZhdWx0QXJuID0gbmV3IENmbk91dHB1dCh0aGlzLCBgJHtwcm9wcy52YXVsdE5hbWV9VmF1bHRBcm5gLCB7XG4gICAgICBrZXk6IGAke3Byb3BzLnZhdWx0TmFtZX1WYXVsdEFybmAsXG4gICAgICB2YWx1ZTogdGhpcy52YXVsdC5iYWNrdXBWYXVsdEFybixcbiAgICAgIGV4cG9ydE5hbWU6IGAke3Byb3BzLnZhdWx0TmFtZX1Bcm5gXG4gICAgfSk7XG5cbiAgICB0aGlzLnZhdWx0TmFtZSA9IG5ldyBDZm5PdXRwdXQodGhpcywgYCR7cHJvcHMudmF1bHROYW1lfVZhdWx0TmFtZWAsIHtcbiAgICAgIGtleTogYCR7cHJvcHMudmF1bHROYW1lfVZhdWx0TmFtZWAsXG4gICAgICB2YWx1ZTogdGhpcy52YXVsdC5iYWNrdXBWYXVsdE5hbWUsXG4gICAgICBleHBvcnROYW1lOiBgJHtwcm9wcy52YXVsdE5hbWV9TmFtZWBcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEZhY3RvcnkgbWV0aG9kIGZvbGxvd2luZyBleGlzdGluZyBwYXR0ZXJuc1xuICBzdGF0aWMgYnVpbGQoaWQ6IHN0cmluZywgcHJvcHM6IEJhY2t1cFZhdWx0UHJvcHMpIHtcbiAgICByZXR1cm4gKHNjb3BlOiBDb25zdHJ1Y3QpID0+IHtcbiAgICAgIHJldHVybiBuZXcgQmFja3VwVmF1bHQoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgfTtcbiAgfVxufVxuIl19
@@ -49,7 +49,6 @@ class AwsStack {
49
49
  };
50
50
  return stackProps;
51
51
  }
52
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
52
  isConnectable(arg) {
54
53
  return arg.connections;
55
54
  }
@@ -106,4 +105,4 @@ class AwsStack {
106
105
  }
107
106
  exports.AwsStack = AwsStack;
108
107
  exports.default = AwsStack;
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzU3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9iYXNlL2F3c1N0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFxRDtBQUNyRCxpREFBOEQ7QUFDOUQsMkNBQXVDO0FBRXZDLHNDQUErQjtBQUMvQixpREFBaUQ7QUFvQmpELE1BQWEsUUFBUTtJQVNuQixZQUNFLEVBQVUsRUFDVixZQUFvQyxFQUNwQyxLQUFxQjtRQVhQLGNBQVMsR0FFckIsRUFBRSxDQUFDO1FBV0wseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFekMsa0NBQWtDO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxZQUFvQztRQUMxRCxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU87UUFFMUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDaEMsS0FBSyxNQUFNLFVBQVUsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsRUFBVSxFQUFFLEtBQXFCO1FBQ25ELE9BQU8sSUFBSSxtQkFBSyxDQUFDLGFBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JF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QUFhO1FBRWIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztRQUU5QixNQUFNLFlBQVksR0FDaEIsSUFBSSxZQUFZLHNCQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1RCxNQUFNLFVBQVUsR0FBRyxFQUFFLFlBQVksc0JBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUN0RSxPQUFPLElBQUksQ0FBQztRQUVkLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pELFlBQVksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUV6RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQXhKRCw0QkF3SkM7QUFDRCxrQkFBZSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjaywgdHlwZSBTdGFja1Byb3BzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyB0eXBlIElDb25uZWN0YWJsZSwgUG9ydCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgQXBwIGZyb20gXCIuLi8uLi8uLi9hcHBcIjtcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrQnVpbGRlciB7XG4gIGFkZENvbnN0cnVjdChyZXNvdXJjZTogQ29uc3RydWN0KTogU3RhY2tCdWlsZGVyO1xuICBhZGRSZXNvdXJjZShmbjogKHN0YWNrQnVpbGRlcjogU3RhY2tCdWlsZGVyKSA9PiBDb25zdHJ1Y3QpOiBTdGFja0J1aWxkZXI7XG5cbiAgYWRkTmV0d29yayhyZXNvdXJjZTogQ29uc3RydWN0KTogU3RhY2tCdWlsZGVyO1xuICBhZGROZXR3b3JrKGZuOiAoc3RhY2tCdWlsZGVyOiBTdGFja0J1aWxkZXIpID0+IENvbnN0cnVjdCk6IFN0YWNrQnVpbGRlcjtcbiAgYWRkTmV0d29yayhyZXNvdXJjZTogQ29uc3RydWN0IHwgc3RyaW5nKTogU3RhY2tCdWlsZGVyO1xuXG4gIGdldFN0YWNrKCk6IFN0YWNrO1xuICBnZXROZXR3b3JrKCk6IENvbnN0cnVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBd3NTdGFja1Byb3BzIHtcbiAgcmVhZG9ubHkgYWNjb3VudElkPzogc3RyaW5nO1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG4gIGFjY291bnROYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQXdzU3RhY2sgaW1wbGVtZW50cyBTdGFja0J1aWxkZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2VzOiB7XG4gICAgW2tleTogc3RyaW5nXTogQ29uc3RydWN0O1xuICB9ID0ge307XG5cbiAgcHJpdmF0ZSBzdGFjazogU3RhY2s7XG4gIHByaXZhdGUgbmV0d29yazogQ29uc3RydWN0O1xuICBwcml2YXRlIGNvbnRhaW5lclJlZ2lzdHJ5OiBSZXBvc2l0b3J5O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgZGVwZW5kZW5jaWVzPzogQXdzU3RhY2sgfCBBd3NTdGFja1tdLFxuICAgIHByb3BzPzogQXdzU3RhY2tQcm9wc1xuICApIHtcbiAgICAvLyBDcmVhdGUgaW5uZXIgQ0RLIFN0YWNrXG4gICAgdGhpcy5zdGFjayA9IHRoaXMuZ2V0Q2RrU3RhY2soaWQsIHByb3BzKTtcblxuICAgIC8vIFJlZ2lzdGVyIGFsbCBzdGFjayBkZXBlbmRlbmNpZXNcbiAgICB0aGlzLmFkZERlcGVuZGVuY2llcyhkZXBlbmRlbmNpZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGREZXBlbmRlbmNpZXMoZGVwZW5kZW5jaWVzPzogQXdzU3RhY2sgfCBBd3NTdGFja1tdKSB7XG4gICAgaWYgKCFkZXBlbmRlbmNpZXMpIHJldHVybjtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGRlcGVuZGVuY2llcykpIHtcbiAgICAgIGZvciAoY29uc3QgZGVwZW5kZW5jeSBvZiBkZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgdGhpcy5zdGFjay5hZGREZXBlbmRlbmN5KGRlcGVuZGVuY3kuZ2V0U3RhY2soKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhY2suYWRkRGVwZW5kZW5jeShkZXBlbmRlbmNpZXMuZ2V0U3RhY2soKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDZGtTdGFjayhpZDogc3RyaW5nLCBwcm9wcz86IEF3c1N0YWNrUHJvcHMpIHtcbiAgICByZXR1cm4gbmV3IFN0YWNrKEFwcC5nZXRJbnN0YW5jZSgpLCBpZCwgdGhpcy5nZXRTdGFja1Byb3BzKHByb3BzKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFN0YWNrUHJvcHMoXG4gICAgcHJvcHM6IEF3c1N0YWNrUHJvcHMgfCB1bmRlZmluZWRcbiAgKTogU3RhY2tQcm9wcyB8IHVuZGVmaW5lZCB7XG4gICAgLy8gSWYgbm8gZXhwbGljaXQgcHJvcHMgYXJlIHByb3ZpZGVkLCBmYWxsIGJhY2sgdG8gdGhlIGFjY291bnQvcmVnaW9uIHRoYXRcbiAgICAvLyBDREsgcmVzb2x2ZWQgZm9yIHRoaXMgcnVuLiBUaGlzIGFsbG93cyBjb250ZXh0IGxvb2stdXBzIChlLmcuXG4gICAgLy8gVnBjLmZyb21Mb29rdXApIHRvIHdvcmsgd2l0aG91dCBldmVyeSBzdGFjayBoYXZpbmcgdG8gYmUgY3JlYXRlZCB3aXRoXG4gICAgLy8gZXhwbGljaXQgZW52IHNldHRpbmdzLlxuXG4gICAgaWYgKCFwcm9wcykge1xuICAgICAgY29uc3QgYWNjb3VudCA9IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX0FDQ09VTlQ7XG4gICAgICBjb25zdCByZWdpb24gPSBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9SRUdJT047XG5cbiAgICAgIGlmIChhY2NvdW50ICYmIHJlZ2lvbikge1xuICAgICAgICByZXR1cm4geyBlbnY6IHsgYWNjb3VudCwgcmVnaW9uIH0gfSBhcyBTdGFja1Byb3BzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhY2tQcm9wczogU3RhY2tQcm9wcyA9IHtcbiAgICAgIGVudjpcbiAgICAgICAgcHJvcHMuYWNjb3VudElkICYmIHByb3BzLnJlZ2lvblxuICAgICAgICAgID8geyBhY2NvdW50OiBwcm9wcy5hY2NvdW50SWQsIHJlZ2lvbjogcHJvcHMucmVnaW9uIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgIH07XG5cbiAgICByZXR1cm4gc3RhY2tQcm9wcztcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHByaXZhdGUgaXNDb25uZWN0YWJsZShhcmc6IGFueSk6IGFyZyBpcyBJQ29ubmVjdGFibGUge1xuICAgIHJldHVybiBhcmcuY29ubmVjdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgYWRkQ29uc3RydWN0KGNvbnN0cnVjdDogQ29uc3RydWN0KTogQXdzU3RhY2sge1xuICAgIHRoaXMucmVzb3VyY2VzW2NvbnN0cnVjdC5ub2RlLmlkXSA9IGNvbnN0cnVjdDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIEBkZXByZWNhdGVkIC0gdXNlIGFkZENvbnN0cnVjdCBpbnN0ZWFkXG4gIHB1YmxpYyBhZGRSZXNvdXJjZShmbjogKHN0YWNrQnVpbGRlcjogU3RhY2tCdWlsZGVyKSA9PiBDb25zdHJ1Y3QpOiBBd3NTdGFjayB7XG4gICAgY29uc3QgcmVzb3VyY2UgPSBmbih0aGlzKTtcbiAgICB0aGlzLnJlc291cmNlc1tyZXNvdXJjZS5ub2RlLmlkXSA9IHJlc291cmNlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGFkZE5ldHdvcmsocmVzb3VyY2U6IENvbnN0cnVjdCk6IEF3c1N0YWNrO1xuICBwdWJsaWMgYWRkTmV0d29yayhcbiAgICByZXNvdXJjZTogKHN0YWNrQnVpbGRlcjogU3RhY2tCdWlsZGVyKSA9PiBDb25zdHJ1Y3RcbiAgKTogQXdzU3RhY2s7XG4gIHB1YmxpYyBhZGROZXR3b3JrKFxuICAgIHJlc291cmNlOiBDb25zdHJ1Y3QgfCAoKHN0YWNrQnVpbGRlcjogU3RhY2tCdWlsZGVyKSA9PiBDb25zdHJ1Y3QpXG4gICk6IEF3c1N0YWNrIHtcbiAgICBjb25zdCByZXNvdXJjZUFjdHVhbCA9XG4gICAgICByZXNvdXJjZSBpbnN0YW5jZW9mIENvbnN0cnVjdCA/IHJlc291cmNlIDogcmVzb3VyY2UodGhpcyk7XG4gICAgdGhpcy5yZXNvdXJjZXNbcmVzb3VyY2VBY3R1YWwubm9kZS5pZF0gPSByZXNvdXJjZUFjdHVhbDtcbiAgICB0aGlzLm5ldHdvcmsgPSByZXNvdXJjZUFjdHVhbDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBhZGRDb250YWluZXJSZWdpc3RyeShyZXNvdXJjZTogUmVwb3NpdG9yeSk6IEF3c1N0YWNrO1xuICBwdWJsaWMgYWRkQ29udGFpbmVyUmVnaXN0cnkoXG4gICAgcmVzb3VyY2U6IChzdGFja0J1aWxkZXI6IFN0YWNrQnVpbGRlcikgPT4gUmVwb3NpdG9yeVxuICApOiBBd3NTdGFjaztcbiAgcHVibGljIGFkZENvbnRhaW5lclJlZ2lzdHJ5KFxuICAgIHJlc291cmNlOiBSZXBvc2l0b3J5IHwgKChzdGFja0J1aWxkZXI6IFN0YWNrQnVpbGRlcikgPT4gUmVwb3NpdG9yeSlcbiAgKTogQXdzU3RhY2sge1xuICAgIGNvbnN0IHJlc291cmNlQWN0dWFsID1cbiAgICAgIHJlc291cmNlIGluc3RhbmNlb2YgUmVwb3NpdG9yeSA/IHJlc291cmNlIDogcmVzb3VyY2UodGhpcyk7XG4gICAgdGhpcy5yZXNvdXJjZXNbcmVzb3VyY2VBY3R1YWwubm9kZS5pZF0gPSByZXNvdXJjZUFjdHVhbDtcbiAgICB0aGlzLmNvbnRhaW5lclJlZ2lzdHJ5ID0gcmVzb3VyY2VBY3R1YWw7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RhY2soKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2s7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RhY2tOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnN0YWNrLnN0YWNrTmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROZXR3b3JrKCkge1xuICAgIHJldHVybiB0aGlzLm5ldHdvcms7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udGFpbmVyUmVnaXN0cnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyUmVnaXN0cnk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVzb3VyY2UoaWRlbnRpZmllcjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzW2lkZW50aWZpZXJdO1xuICB9XG5cbiAgcHVibGljIGNvbm5lY3QoXG4gICAgZnJvbTogQ29uc3RydWN0IHwgc3RyaW5nLFxuICAgIHRvOiBDb25zdHJ1Y3QgfCBzdHJpbmcsXG4gICAgcG9ydD86IG51bWJlclxuICApIHtcbiAgICBpZiAoIWZyb20gfHwgIXRvKSByZXR1cm4gdGhpcztcblxuICAgIGNvbnN0IGZyb21SZXNvdXJjZSA9XG4gICAgICBmcm9tIGluc3RhbmNlb2YgQ29uc3RydWN0ID8gZnJvbSA6IHRoaXMuZ2V0UmVzb3VyY2UoZnJvbSk7XG4gICAgY29uc3QgdG9SZXNvdXJjZSA9IHRvIGluc3RhbmNlb2YgQ29uc3RydWN0ID8gdG8gOiB0aGlzLmdldFJlc291cmNlKHRvKTtcblxuICAgIGlmICghZnJvbVJlc291cmNlIHx8ICF0b1Jlc291cmNlKSByZXR1cm4gdGhpcztcblxuICAgIGlmICghdGhpcy5pc0Nvbm5lY3RhYmxlKGZyb21SZXNvdXJjZSkgfHwgIXRoaXMuaXNDb25uZWN0YWJsZSh0b1Jlc291cmNlKSlcbiAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgY29uc3QgcG9ydEFjdHVhbCA9IHBvcnQgPyBQb3J0LnRjcChwb3J0KSA6IFBvcnQuYWxsVGNwKCk7XG4gICAgZnJvbVJlc291cmNlLmNvbm5lY3Rpb25zLmFsbG93VG8odG9SZXNvdXJjZSwgcG9ydEFjdHVhbCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuZXhwb3J0IGRlZmF1bHQgQXdzU3RhY2s7XG4iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzU3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9iYXNlL2F3c1N0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFxRDtBQUNyRCxpREFBOEQ7QUFDOUQsMkNBQXVDO0FBRXZDLHNDQUErQjtBQUMvQixpREFBaUQ7QUFvQmpELE1BQWEsUUFBUTtJQVNuQixZQUNFLEVBQVUsRUFDVixZQUFvQyxFQUNwQyxLQUFxQjtRQVhQLGNBQVMsR0FFckIsRUFBRSxDQUFDO1FBV0wseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFekMsa0NBQWtDO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxZQUFvQztRQUMxRCxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU87UUFFMUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDaEMsS0FBSyxNQUFNLFVBQVUsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsRUFBVSxFQUFFLEtBQXFCO1FBQ25ELE9BQU8sSUFBSSxtQkFBSyxDQUFDLGFBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JF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LENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTlCLE1BQU0sWUFBWSxHQUNoQixJQUFJLFlBQVksc0JBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELE1BQU0sVUFBVSxHQUFHLEVBQUUsWUFBWSxzQkFBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFdkUsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPLElBQUksQ0FBQztRQUU5QyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1lBQ3RFLE9BQU8sSUFBSSxDQUFDO1FBRWQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekQsWUFBWSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXpELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBdkpELDRCQXVKQztBQUNELGtCQUFlLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrLCB0eXBlIFN0YWNrUHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IHR5cGUgSUNvbm5lY3RhYmxlLCBQb3J0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCBBcHAgZnJvbSBcIi4uLy4uLy4uL2FwcFwiO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tCdWlsZGVyIHtcbiAgYWRkQ29uc3RydWN0KHJlc291cmNlOiBDb25zdHJ1Y3QpOiBTdGFja0J1aWxkZXI7XG4gIGFkZFJlc291cmNlKGZuOiAoc3RhY2tCdWlsZGVyOiBTdGFja0J1aWxkZXIpID0+IENvbnN0cnVjdCk6IFN0YWNrQnVpbGRlcjtcblxuICBhZGROZXR3b3JrKHJlc291cmNlOiBDb25zdHJ1Y3QpOiBTdGFja0J1aWxkZXI7XG4gIGFkZE5ldHdvcmsoZm46IChzdGFja0J1aWxkZXI6IFN0YWNrQnVpbGRlcikgPT4gQ29uc3RydWN0KTogU3RhY2tCdWlsZGVyO1xuICBhZGROZXR3b3JrKHJlc291cmNlOiBDb25zdHJ1Y3QgfCBzdHJpbmcpOiBTdGFja0J1aWxkZXI7XG5cbiAgZ2V0U3RhY2soKTogU3RhY2s7XG4gIGdldE5ldHdvcmsoKTogQ29uc3RydWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF3c1N0YWNrUHJvcHMge1xuICByZWFkb25seSBhY2NvdW50SWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcbiAgYWNjb3VudE5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBBd3NTdGFjayBpbXBsZW1lbnRzIFN0YWNrQnVpbGRlciB7XG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZXM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBDb25zdHJ1Y3Q7XG4gIH0gPSB7fTtcblxuICBwcml2YXRlIHN0YWNrOiBTdGFjaztcbiAgcHJpdmF0ZSBuZXR3b3JrOiBDb25zdHJ1Y3Q7XG4gIHByaXZhdGUgY29udGFpbmVyUmVnaXN0cnk6IFJlcG9zaXRvcnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBkZXBlbmRlbmNpZXM/OiBBd3NTdGFjayB8IEF3c1N0YWNrW10sXG4gICAgcHJvcHM/OiBBd3NTdGFja1Byb3BzXG4gICkge1xuICAgIC8vIENyZWF0ZSBpbm5lciBDREsgU3RhY2tcbiAgICB0aGlzLnN0YWNrID0gdGhpcy5nZXRDZGtTdGFjayhpZCwgcHJvcHMpO1xuXG4gICAgLy8gUmVnaXN0ZXIgYWxsIHN0YWNrIGRlcGVuZGVuY2llc1xuICAgIHRoaXMuYWRkRGVwZW5kZW5jaWVzKGRlcGVuZGVuY2llcyk7XG4gIH1cblxuICBwcml2YXRlIGFkZERlcGVuZGVuY2llcyhkZXBlbmRlbmNpZXM/OiBBd3NTdGFjayB8IEF3c1N0YWNrW10pIHtcbiAgICBpZiAoIWRlcGVuZGVuY2llcykgcmV0dXJuO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGVwZW5kZW5jaWVzKSkge1xuICAgICAgZm9yIChjb25zdCBkZXBlbmRlbmN5IG9mIGRlcGVuZGVuY2llcykge1xuICAgICAgICB0aGlzLnN0YWNrLmFkZERlcGVuZGVuY3koZGVwZW5kZW5jeS5nZXRTdGFjaygpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGFjay5hZGREZXBlbmRlbmN5KGRlcGVuZGVuY2llcy5nZXRTdGFjaygpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldENka1N0YWNrKGlkOiBzdHJpbmcsIHByb3BzPzogQXdzU3RhY2tQcm9wcykge1xuICAgIHJldHVybiBuZXcgU3RhY2soQXBwLmdldEluc3RhbmNlKCksIGlkLCB0aGlzLmdldFN0YWNrUHJvcHMocHJvcHMpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RhY2tQcm9wcyhcbiAgICBwcm9wczogQXdzU3RhY2tQcm9wcyB8IHVuZGVmaW5lZFxuICApOiBTdGFja1Byb3BzIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBJZiBubyBleHBsaWNpdCBwcm9wcyBhcmUgcHJvdmlkZWQsIGZhbGwgYmFjayB0byB0aGUgYWNjb3VudC9yZWdpb24gdGhhdFxuICAgIC8vIENESyByZXNvbHZlZCBmb3IgdGhpcyBydW4uIFRoaXMgYWxsb3dzIGNvbnRleHQgbG9vay11cHMgKGUuZy5cbiAgICAvLyBWcGMuZnJvbUxvb2t1cCkgdG8gd29yayB3aXRob3V0IGV2ZXJ5IHN0YWNrIGhhdmluZyB0byBiZSBjcmVhdGVkIHdpdGhcbiAgICAvLyBleHBsaWNpdCBlbnYgc2V0dGluZ3MuXG5cbiAgICBpZiAoIXByb3BzKSB7XG4gICAgICBjb25zdCBhY2NvdW50ID0gcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVDtcbiAgICAgIGNvbnN0IHJlZ2lvbiA9IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTjtcblxuICAgICAgaWYgKGFjY291bnQgJiYgcmVnaW9uKSB7XG4gICAgICAgIHJldHVybiB7IGVudjogeyBhY2NvdW50LCByZWdpb24gfSB9IGFzIFN0YWNrUHJvcHM7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFja1Byb3BzOiBTdGFja1Byb3BzID0ge1xuICAgICAgZW52OlxuICAgICAgICBwcm9wcy5hY2NvdW50SWQgJiYgcHJvcHMucmVnaW9uXG4gICAgICAgICAgPyB7IGFjY291bnQ6IHByb3BzLmFjY291bnRJZCwgcmVnaW9uOiBwcm9wcy5yZWdpb24gfVxuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgfTtcblxuICAgIHJldHVybiBzdGFja1Byb3BzO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0Nvbm5lY3RhYmxlKGFyZzogYW55KTogYXJnIGlzIElDb25uZWN0YWJsZSB7XG4gICAgcmV0dXJuIGFyZy5jb25uZWN0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBhZGRDb25zdHJ1Y3QoY29uc3RydWN0OiBDb25zdHJ1Y3QpOiBBd3NTdGFjayB7XG4gICAgdGhpcy5yZXNvdXJjZXNbY29uc3RydWN0Lm5vZGUuaWRdID0gY29uc3RydWN0O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gQGRlcHJlY2F0ZWQgLSB1c2UgYWRkQ29uc3RydWN0IGluc3RlYWRcbiAgcHVibGljIGFkZFJlc291cmNlKGZuOiAoc3RhY2tCdWlsZGVyOiBTdGFja0J1aWxkZXIpID0+IENvbnN0cnVjdCk6IEF3c1N0YWNrIHtcbiAgICBjb25zdCByZXNvdXJjZSA9IGZuKHRoaXMpO1xuICAgIHRoaXMucmVzb3VyY2VzW3Jlc291cmNlLm5vZGUuaWRdID0gcmVzb3VyY2U7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgYWRkTmV0d29yayhyZXNvdXJjZTogQ29uc3RydWN0KTogQXdzU3RhY2s7XG4gIHB1YmxpYyBhZGROZXR3b3JrKFxuICAgIHJlc291cmNlOiAoc3RhY2tCdWlsZGVyOiBTdGFja0J1aWxkZXIpID0+IENvbnN0cnVjdFxuICApOiBBd3NTdGFjaztcbiAgcHVibGljIGFkZE5ldHdvcmsoXG4gICAgcmVzb3VyY2U6IENvbnN0cnVjdCB8ICgoc3RhY2tCdWlsZGVyOiBTdGFja0J1aWxkZXIpID0+IENvbnN0cnVjdClcbiAgKTogQXdzU3RhY2sge1xuICAgIGNvbnN0IHJlc291cmNlQWN0dWFsID1cbiAgICAgIHJlc291cmNlIGluc3RhbmNlb2YgQ29uc3RydWN0ID8gcmVzb3VyY2UgOiByZXNvdXJjZSh0aGlzKTtcbiAgICB0aGlzLnJlc291cmNlc1tyZXNvdXJjZUFjdHVhbC5ub2RlLmlkXSA9IHJlc291cmNlQWN0dWFsO1xuICAgIHRoaXMubmV0d29yayA9IHJlc291cmNlQWN0dWFsO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGFkZENvbnRhaW5lclJlZ2lzdHJ5KHJlc291cmNlOiBSZXBvc2l0b3J5KTogQXdzU3RhY2s7XG4gIHB1YmxpYyBhZGRDb250YWluZXJSZWdpc3RyeShcbiAgICByZXNvdXJjZTogKHN0YWNrQnVpbGRlcjogU3RhY2tCdWlsZGVyKSA9PiBSZXBvc2l0b3J5XG4gICk6IEF3c1N0YWNrO1xuICBwdWJsaWMgYWRkQ29udGFpbmVyUmVnaXN0cnkoXG4gICAgcmVzb3VyY2U6IFJlcG9zaXRvcnkgfCAoKHN0YWNrQnVpbGRlcjogU3RhY2tCdWlsZGVyKSA9PiBSZXBvc2l0b3J5KVxuICApOiBBd3NTdGFjayB7XG4gICAgY29uc3QgcmVzb3VyY2VBY3R1YWwgPVxuICAgICAgcmVzb3VyY2UgaW5zdGFuY2VvZiBSZXBvc2l0b3J5ID8gcmVzb3VyY2UgOiByZXNvdXJjZSh0aGlzKTtcbiAgICB0aGlzLnJlc291cmNlc1tyZXNvdXJjZUFjdHVhbC5ub2RlLmlkXSA9IHJlc291cmNlQWN0dWFsO1xuICAgIHRoaXMuY29udGFpbmVyUmVnaXN0cnkgPSByZXNvdXJjZUFjdHVhbDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdGFjaygpIHtcbiAgICByZXR1cm4gdGhpcy5zdGFjaztcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdGFja05hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2suc3RhY2tOYW1lO1xuICB9XG5cbiAgcHVibGljIGdldE5ldHdvcmsoKSB7XG4gICAgcmV0dXJuIHRoaXMubmV0d29yaztcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb250YWluZXJSZWdpc3RyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWluZXJSZWdpc3RyeTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZXNvdXJjZShpZGVudGlmaWVyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXNbaWRlbnRpZmllcl07XG4gIH1cblxuICBwdWJsaWMgY29ubmVjdChcbiAgICBmcm9tOiBDb25zdHJ1Y3QgfCBzdHJpbmcsXG4gICAgdG86IENvbnN0cnVjdCB8IHN0cmluZyxcbiAgICBwb3J0PzogbnVtYmVyXG4gICkge1xuICAgIGlmICghZnJvbSB8fCAhdG8pIHJldHVybiB0aGlzO1xuXG4gICAgY29uc3QgZnJvbVJlc291cmNlID1cbiAgICAgIGZyb20gaW5zdGFuY2VvZiBDb25zdHJ1Y3QgPyBmcm9tIDogdGhpcy5nZXRSZXNvdXJjZShmcm9tKTtcbiAgICBjb25zdCB0b1Jlc291cmNlID0gdG8gaW5zdGFuY2VvZiBDb25zdHJ1Y3QgPyB0byA6IHRoaXMuZ2V0UmVzb3VyY2UodG8pO1xuXG4gICAgaWYgKCFmcm9tUmVzb3VyY2UgfHwgIXRvUmVzb3VyY2UpIHJldHVybiB0aGlzO1xuXG4gICAgaWYgKCF0aGlzLmlzQ29ubmVjdGFibGUoZnJvbVJlc291cmNlKSB8fCAhdGhpcy5pc0Nvbm5lY3RhYmxlKHRvUmVzb3VyY2UpKVxuICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICBjb25zdCBwb3J0QWN0dWFsID0gcG9ydCA/IFBvcnQudGNwKHBvcnQpIDogUG9ydC5hbGxUY3AoKTtcbiAgICBmcm9tUmVzb3VyY2UuY29ubmVjdGlvbnMuYWxsb3dUbyh0b1Jlc291cmNlLCBwb3J0QWN0dWFsKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG5leHBvcnQgZGVmYXVsdCBBd3NTdGFjaztcbiJdfQ==
@@ -0,0 +1,65 @@
1
+ import { Construct } from "constructs";
2
+ import { Distribution, type ICachePolicy } from "aws-cdk-lib/aws-cloudfront";
3
+ import { type IBucket } from "aws-cdk-lib/aws-s3";
4
+ import { type IApplicationLoadBalancer } from "aws-cdk-lib/aws-elasticloadbalancingv2";
5
+ import { type ICertificate } from "aws-cdk-lib/aws-certificatemanager";
6
+ export type CachePolicyPreset = "CACHING_OPTIMIZED" | "CACHING_DISABLED" | "CACHING_OPTIMIZED_FOR_UNCOMPRESSED_OBJECTS";
7
+ export interface S3OriginConfig {
8
+ type: "s3";
9
+ bucket: IBucket;
10
+ originPath?: string;
11
+ }
12
+ export interface AlbOriginConfig {
13
+ type: "alb";
14
+ loadBalancer: IApplicationLoadBalancer;
15
+ protocolPolicy?: "HTTP_ONLY" | "HTTPS_ONLY" | "MATCH_VIEWER";
16
+ httpPort?: number;
17
+ httpsPort?: number;
18
+ }
19
+ export interface HttpOriginConfig {
20
+ type: "http";
21
+ domainName: string;
22
+ originPath?: string;
23
+ protocolPolicy?: "HTTP_ONLY" | "HTTPS_ONLY" | "MATCH_VIEWER";
24
+ httpPort?: number;
25
+ httpsPort?: number;
26
+ }
27
+ export type CdnOriginConfig = S3OriginConfig | AlbOriginConfig | HttpOriginConfig;
28
+ export interface CdnBehaviour {
29
+ pathPattern: string;
30
+ origin: CdnOriginConfig;
31
+ cachePolicy?: CachePolicyPreset | ICachePolicy;
32
+ allowedMethods?: "GET_HEAD" | "GET_HEAD_OPTIONS" | "ALL";
33
+ }
34
+ export interface CloudFrontDistributionProps {
35
+ defaultOrigin: CdnOriginConfig;
36
+ defaultCachePolicy?: CachePolicyPreset | ICachePolicy;
37
+ behaviours?: CdnBehaviour[];
38
+ domainNames?: string[];
39
+ certificate?: ICertificate;
40
+ comment?: string;
41
+ enableLogging?: boolean;
42
+ logBucket?: IBucket;
43
+ priceClass?: "PriceClass_100" | "PriceClass_200" | "PriceClass_All";
44
+ }
45
+ export declare class CloudFrontDistribution extends Construct {
46
+ readonly id: string;
47
+ private distribution;
48
+ constructor(scope: Construct, id: string, props: CloudFrontDistributionProps);
49
+ private createOrigin;
50
+ private resolveCachePolicy;
51
+ private resolveAllowedMethods;
52
+ private resolveOriginProtocolPolicy;
53
+ /**
54
+ * Get the CloudFront distribution domain name.
55
+ */
56
+ getDistributionDomainName(): string;
57
+ /**
58
+ * Get the CloudFront distribution ID.
59
+ */
60
+ getDistributionId(): string;
61
+ /**
62
+ * Get the underlying CDK Distribution construct.
63
+ */
64
+ getDistribution(): Distribution;
65
+ }