@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.
- package/dist/lib/app.d.ts +39 -2
- package/dist/lib/app.js +85 -4
- package/dist/lib/aspects/resourceInventory.d.ts +41 -0
- package/dist/lib/aspects/resourceInventory.js +56 -0
- package/dist/lib/config/audit.d.ts +18 -0
- package/dist/lib/config/audit.js +22 -0
- package/dist/lib/config/aws/accountId.js +3 -3
- package/dist/lib/config/aws/ecrDefaultImage.js +7 -7
- package/dist/lib/config/aws/identityCenter.js +7 -8
- package/dist/lib/config/aws/identityCenterGroupMembership.js +6 -6
- package/dist/lib/config/aws/ipam.js +3 -3
- package/dist/lib/config/aws/ipamPoolId.js +4 -4
- package/dist/lib/config/aws/organisation.js +2 -3
- package/dist/lib/config/aws/organisationId.js +4 -4
- package/dist/lib/patterns/aws/auditRole.d.ts +44 -0
- package/dist/lib/patterns/aws/auditRole.js +58 -0
- package/dist/lib/patterns/aws/buildkite.js +12 -12
- package/dist/lib/patterns/aws/cdn.d.ts +133 -0
- package/dist/lib/patterns/aws/cdn.js +216 -0
- package/dist/lib/patterns/aws/compute.d.ts +32 -13
- package/dist/lib/patterns/aws/compute.js +24 -14
- package/dist/lib/patterns/aws/database.d.ts +8 -1
- package/dist/lib/patterns/aws/database.js +13 -5
- package/dist/lib/patterns/aws/dynamodb.d.ts +66 -0
- package/dist/lib/patterns/aws/dynamodb.js +106 -0
- package/dist/lib/patterns/aws/hostedZone.js +7 -2
- package/dist/lib/patterns/aws/index.d.ts +1 -0
- package/dist/lib/patterns/aws/index.js +2 -1
- package/dist/lib/patterns/aws/loadBalancer.d.ts +163 -0
- package/dist/lib/patterns/aws/loadBalancer.js +278 -0
- package/dist/lib/patterns/aws/managedAccount.js +3 -4
- package/dist/lib/patterns/aws/queue.d.ts +61 -0
- package/dist/lib/patterns/aws/queue.js +103 -0
- package/dist/lib/patterns/aws/storage.js +3 -2
- package/dist/lib/patterns/aws/subdomainHostedZone.js +2 -2
- package/dist/lib/resources/aws/audit/auditRole.d.ts +32 -0
- package/dist/lib/resources/aws/audit/auditRole.js +44 -0
- package/dist/lib/resources/aws/backup/backupPlan.js +3 -4
- package/dist/lib/resources/aws/backup/backupVault.js +3 -4
- package/dist/lib/resources/aws/base/awsStack.js +1 -2
- package/dist/lib/resources/aws/cdn/cloudFront.d.ts +65 -0
- package/dist/lib/resources/aws/cdn/cloudFront.js +135 -0
- package/dist/lib/resources/aws/cdn/index.d.ts +1 -0
- package/dist/lib/resources/aws/cdn/index.js +18 -0
- package/dist/lib/resources/aws/compute/capacityProviderDrainWaiter.d.ts +20 -0
- package/dist/lib/resources/aws/compute/capacityProviderDrainWaiter.js +180 -0
- package/dist/lib/resources/aws/compute/ecs.d.ts +65 -11
- package/dist/lib/resources/aws/compute/ecs.js +293 -124
- package/dist/lib/resources/aws/compute/ecsFreeTier.d.ts +1 -2
- package/dist/lib/resources/aws/compute/ecsFreeTier.js +1 -4
- package/dist/lib/resources/aws/compute/ecsSpot.d.ts +1 -2
- package/dist/lib/resources/aws/compute/ecsSpot.js +1 -4
- package/dist/lib/resources/aws/compute/lambda.d.ts +10 -1
- package/dist/lib/resources/aws/compute/lambda.js +71 -4
- package/dist/lib/resources/aws/database/database.js +1 -1
- package/dist/lib/resources/aws/database/dynamodb.d.ts +70 -0
- package/dist/lib/resources/aws/database/dynamodb.js +170 -0
- package/dist/lib/resources/aws/database/rdsAurora.d.ts +2 -0
- package/dist/lib/resources/aws/database/rdsAurora.js +9 -6
- package/dist/lib/resources/aws/database/rdsAuroraGlobal.d.ts +2 -0
- package/dist/lib/resources/aws/database/rdsAuroraGlobal.js +9 -8
- package/dist/lib/resources/aws/database/rdsDeletionWaiter.d.ts +33 -0
- package/dist/lib/resources/aws/database/rdsDeletionWaiter.js +74 -0
- package/dist/lib/resources/aws/database/rdsInstance.d.ts +2 -0
- package/dist/lib/resources/aws/database/rdsInstance.js +7 -4
- package/dist/lib/resources/aws/iam/identityCenter/assignment.js +2 -2
- package/dist/lib/resources/aws/iam/identityCenter/attachManagedPolicy.js +1 -1
- package/dist/lib/resources/aws/iam/identityCenter/group.js +1 -1
- package/dist/lib/resources/aws/iam/identityCenter/permissionSet.js +1 -1
- package/dist/lib/resources/aws/logging/cloudTrail.js +1 -1
- package/dist/lib/resources/aws/messaging/index.d.ts +1 -0
- package/dist/lib/resources/aws/messaging/index.js +18 -0
- package/dist/lib/resources/aws/messaging/sqs.d.ts +65 -0
- package/dist/lib/resources/aws/messaging/sqs.js +195 -0
- package/dist/lib/resources/aws/monitoring/monitoringRole.js +2 -3
- package/dist/lib/resources/aws/networking/ipamPool.js +1 -1
- package/dist/lib/resources/aws/networking/vpc.d.ts +1 -0
- package/dist/lib/resources/aws/networking/vpc.js +7 -3
- package/dist/lib/resources/aws/networking/vpcEndpoint.d.ts +20 -0
- package/dist/lib/resources/aws/networking/vpcEndpoint.js +59 -0
- package/dist/lib/resources/aws/networking/vpcEndpoints.d.ts +71 -0
- package/dist/lib/resources/aws/networking/vpcEndpoints.js +125 -0
- package/dist/lib/resources/aws/secrets/secret.js +1 -1
- package/dist/lib/resources/aws/storage/ecr.d.ts +1 -2
- package/dist/lib/resources/aws/storage/ecr.js +2 -2
- package/dist/lib/resources/aws/utilities/cfnOutput.test.d.ts +1 -0
- package/dist/lib/resources/aws/utilities/cfnOutput.test.js +102 -0
- package/dist/lib/resources/aws/utilities/codeBuild.d.ts +1 -2
- package/dist/lib/resources/aws/utilities/codeBuild.js +1 -1
- package/dist/lib/resources/aws/utilities/customResource.d.ts +2 -1
- package/dist/lib/resources/aws/utilities/customResource.js +1 -1
- package/dist/lib/utils/getStackOutput.js +2 -2
- package/dist/lib/utils/sanitizeCfnKey.d.ts +5 -0
- package/dist/lib/utils/sanitizeCfnKey.js +11 -0
- package/dist/lib/utils/tagResource.d.ts +24 -0
- package/dist/lib/utils/tagResource.js +30 -0
- package/package.json +6 -5
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const cfnOutput_js_1 = require("./cfnOutput.js");
|
|
4
|
+
const cdk = require("aws-cdk-lib");
|
|
5
|
+
describe("sanitiseCfnKey", () => {
|
|
6
|
+
it("should convert kebab-case to camelCase", () => {
|
|
7
|
+
expect((0, cfnOutput_js_1.sanitiseCfnKey)("compute-deploy-test")).toBe("computeDeployTest");
|
|
8
|
+
expect((0, cfnOutput_js_1.sanitiseCfnKey)("my-resource-name")).toBe("myResourceName");
|
|
9
|
+
});
|
|
10
|
+
it("should convert dot.separated to camelCase", () => {
|
|
11
|
+
expect((0, cfnOutput_js_1.sanitiseCfnKey)("my.domain.com")).toBe("myDomainCom");
|
|
12
|
+
expect((0, cfnOutput_js_1.sanitiseCfnKey)("api.v2.endpoint")).toBe("apiV2Endpoint");
|
|
13
|
+
});
|
|
14
|
+
it("should convert snake_case to camelCase", () => {
|
|
15
|
+
expect((0, cfnOutput_js_1.sanitiseCfnKey)("my_resource_name")).toBe("myResourceName");
|
|
16
|
+
expect((0, cfnOutput_js_1.sanitiseCfnKey)("database_host_endpoint")).toBe("databaseHostEndpoint");
|
|
17
|
+
});
|
|
18
|
+
it("should remove non-alphanumeric characters", () => {
|
|
19
|
+
expect((0, cfnOutput_js_1.sanitiseCfnKey)("my@resource#name")).toBe("myresourcename");
|
|
20
|
+
expect((0, cfnOutput_js_1.sanitiseCfnKey)("test!value$here")).toBe("testvaluehere");
|
|
21
|
+
});
|
|
22
|
+
it("should preserve camelCase input", () => {
|
|
23
|
+
expect((0, cfnOutput_js_1.sanitiseCfnKey)("myResourceName")).toBe("myresourcename");
|
|
24
|
+
expect((0, cfnOutput_js_1.sanitiseCfnKey)("ecrRepositoryName")).toBe("ecrrepositoryname");
|
|
25
|
+
});
|
|
26
|
+
it("should handle mixed formats", () => {
|
|
27
|
+
expect((0, cfnOutput_js_1.sanitiseCfnKey)("app-name_v2.test")).toBe("appNameV2Test");
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
describe("CfnOutput", () => {
|
|
31
|
+
let app;
|
|
32
|
+
let stack;
|
|
33
|
+
beforeEach(() => {
|
|
34
|
+
app = new cdk.App();
|
|
35
|
+
stack = new cdk.Stack(app, "TestStack");
|
|
36
|
+
});
|
|
37
|
+
describe("export name handling", () => {
|
|
38
|
+
it("should NOT sanitize exportName - must preserve case for cross-stack lookups", () => {
|
|
39
|
+
// This is a regression test for the ECR repository lookup issue.
|
|
40
|
+
// The CLI looks for exports like "app6EcrRepositoryName" and CloudFormation
|
|
41
|
+
// export names are case-sensitive. Sanitizing export names would break lookups.
|
|
42
|
+
const output = new cfnOutput_js_1.CfnOutput(stack, "TestOutput", {
|
|
43
|
+
value: "test-value",
|
|
44
|
+
exportName: "app6EcrRepositoryName"
|
|
45
|
+
});
|
|
46
|
+
// Get the CloudFormation template
|
|
47
|
+
const template = app.synth().getStackByName("TestStack").template;
|
|
48
|
+
const outputs = template.Outputs;
|
|
49
|
+
// Find our output (the key will be sanitized, but we need to check exportName)
|
|
50
|
+
const outputKey = Object.keys(outputs).find((key) => key.toLowerCase().includes("testoutput"));
|
|
51
|
+
expect(outputKey).toBeDefined();
|
|
52
|
+
// The export name must NOT be sanitized - it must be exactly as provided
|
|
53
|
+
expect(outputs[outputKey].Export.Name).toBe("app6EcrRepositoryName");
|
|
54
|
+
});
|
|
55
|
+
it("should preserve PascalCase export names", () => {
|
|
56
|
+
const output = new cfnOutput_js_1.CfnOutput(stack, "MyOutput", {
|
|
57
|
+
value: "test-value",
|
|
58
|
+
exportName: "MyAppDatabaseEndpoint"
|
|
59
|
+
});
|
|
60
|
+
const template = app.synth().getStackByName("TestStack").template;
|
|
61
|
+
const outputs = template.Outputs;
|
|
62
|
+
const outputKey = Object.keys(outputs).find((key) => key.toLowerCase().includes("myoutput"));
|
|
63
|
+
expect(outputs[outputKey].Export.Name).toBe("MyAppDatabaseEndpoint");
|
|
64
|
+
});
|
|
65
|
+
it("should preserve export names with mixed casing", () => {
|
|
66
|
+
const output = new cfnOutput_js_1.CfnOutput(stack, "EcrOutput", {
|
|
67
|
+
value: "test-ecr-arn",
|
|
68
|
+
exportName: "app6EcrRepositoryArn"
|
|
69
|
+
});
|
|
70
|
+
const template = app.synth().getStackByName("TestStack").template;
|
|
71
|
+
const outputs = template.Outputs;
|
|
72
|
+
const outputKey = Object.keys(outputs).find((key) => key.toLowerCase().includes("ecroutput"));
|
|
73
|
+
// Export name must be exactly as provided - CLI depends on this
|
|
74
|
+
expect(outputs[outputKey].Export.Name).toBe("app6EcrRepositoryArn");
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
describe("key sanitization", () => {
|
|
78
|
+
it("should sanitize the output key", () => {
|
|
79
|
+
new cfnOutput_js_1.CfnOutput(stack, "my-output-id", {
|
|
80
|
+
value: "test-value"
|
|
81
|
+
});
|
|
82
|
+
const template = app.synth().getStackByName("TestStack").template;
|
|
83
|
+
const outputs = template.Outputs;
|
|
84
|
+
// Key should be sanitized to camelCase
|
|
85
|
+
expect(outputs["myoutputid"]).toBeDefined();
|
|
86
|
+
});
|
|
87
|
+
it("should sanitize key when explicitly provided", () => {
|
|
88
|
+
new cfnOutput_js_1.CfnOutput(stack, "TestId", {
|
|
89
|
+
value: "test-value",
|
|
90
|
+
key: "my-custom-key"
|
|
91
|
+
});
|
|
92
|
+
const template = app.synth().getStackByName("TestStack").template;
|
|
93
|
+
const outputs = template.Outputs;
|
|
94
|
+
// The custom key should be sanitized
|
|
95
|
+
const outputEntry = Object.values(outputs)[0];
|
|
96
|
+
// Note: The key is set in CloudFormation logical ID, not as a separate property
|
|
97
|
+
// The output should use the sanitized ID
|
|
98
|
+
expect(outputs["testid"]).toBeDefined();
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZuT3V0cHV0LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvY2ZuT3V0cHV0LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBMkQ7QUFDM0QsbUNBQW1DO0FBRW5DLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUU7SUFDOUIsRUFBRSxDQUFDLHdDQUF3QyxFQUFFLEdBQUcsRUFBRTtRQUNoRCxNQUFNLENBQUMsSUFBQSw2QkFBYyxFQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN4RSxNQUFNLENBQUMsSUFBQSw2QkFBYyxFQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywyQ0FBMkMsRUFBRSxHQUFHLEVBQUU7UUFDbkQsTUFBTSxDQUFDLElBQUEsNkJBQWMsRUFBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsSUFBQSw2QkFBYyxFQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFO1FBQ2hELE1BQU0sQ0FBQyxJQUFBLDZCQUFjLEVBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sQ0FBQyxJQUFBLDZCQUFjLEVBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbkQsc0JBQXNCLENBQ3ZCLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywyQ0FBMkMsRUFB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LHdCQUFTLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRTtnQkFDbkMsS0FBSyxFQUFFLFlBQVk7YUFDcEIsQ0FBQyxDQUFDO1lBRUgsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDbEUsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUVqQyx1Q0FBdUM7WUFDdkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLEdBQUcsRUFBRTtZQUN0RCxJQUFJLHdCQUFTLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtnQkFDN0IsS0FBSyxFQUFFLFlBQVk7Z0JBQ25CLEdBQUcsRUFBRSxlQUFlO2FBQ3JCLENBQUMsQ0FBQztZQUVILE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ2xFLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFFakMscUNBQXFDO1lBQ3JDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUM7WUFDckQsZ0ZBQWdGO1lBQ2hGLHlDQUF5QztZQUN6QyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2FuaXRpc2VDZm5LZXksIENmbk91dHB1dCB9IGZyb20gXCIuL2Nmbk91dHB1dC5qc1wiO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG5kZXNjcmliZShcInNhbml0aXNlQ2ZuS2V5XCIsICgpID0+IHtcbiAgaXQoXCJzaG91bGQgY29udmVydCBrZWJhYi1jYXNlIHRvIGNhbWVsQ2FzZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHNhbml0aXNlQ2ZuS2V5KFwiY29tcHV0ZS1kZXBsb3ktdGVzdFwiKSkudG9CZShcImNvbXB1dGVEZXBsb3lUZXN0XCIpO1xuICAgIGV4cGVjdChzYW5pdGlzZUNmbktleShcIm15LXJlc291cmNlLW5hbWVcIikpLnRvQmUoXCJteVJlc291cmNlTmFtZVwiKTtcbiAgfSk7XG5cbiAgaXQoXCJzaG91bGQgY29udmVydCBkb3Quc2VwYXJhdGVkIHRvIGNhbWVsQ2FzZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHNhbml0aXNlQ2ZuS2V5KFwibXkuZG9tYWluLmNvbVwiKSkudG9CZShcIm15RG9tYWluQ29tXCIpO1xuICAgIGV4cGVjdChzYW5pdGlzZUNmbktleShcImFwaS52Mi5lbmRwb2ludFwiKSkudG9CZShcImFwaVYyRW5kcG9pbnRcIik7XG4gIH0pO1xuXG4gIGl0KFwic2hvdWxkIGNvbnZlcnQgc25ha2VfY2FzZSB0byBjYW1lbENhc2VcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChzYW5pdGlzZUNmbktleShcIm15X3Jlc291cmNlX25hbWVcIikpLnRvQmUoXCJteVJlc291cmNlTmFtZVwiKTtcbiAgICBleHBlY3Qoc2FuaXRpc2VDZm5LZXkoXCJkYXRhYmFzZV9ob3N0X2VuZHBvaW50XCIpKS50b0JlKFxuICAgICAgXCJkYXRhYmFzZUhvc3RFbmRwb2ludFwiXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoXCJzaG91bGQgcmVtb3ZlIG5vbi1hbHBoYW51bWVyaWMgY2hhcmFjdGVyc1wiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHNhbml0aXNlQ2ZuS2V5KFwibXlAcmVzb3VyY2UjbmFtZVwiKSkudG9CZShcIm15cmVzb3VyY2VuYW1lXCIpO1xuICAgIGV4cGVjdChzYW5pdGlzZUNmbktleShcInRlc3QhdmFsdWUkaGVyZVwiKSkudG9CZShcInRlc3R2YWx1ZWhlcmVcIik7XG4gIH0pO1xuXG4gIGl0KFwic2hvdWxkIHByZXNlcnZlIGNhbWVsQ2FzZSBpbnB1dFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHNhbml0aXNlQ2ZuS2V5KFwibXlSZXNvdXJjZU5hbWVcIikpLnRvQmUoXCJteXJlc291cmNlbmFtZVwiKTtcbiAgICBleHBlY3Qoc2FuaXRpc2VDZm5LZXkoXCJlY3JSZXBvc2l0b3J5TmFtZVwiKSkudG9CZShcImVjcnJlcG9zaXRvcnluYW1lXCIpO1xuICB9KTtcblxuICBpdChcInNob3VsZCBoYW5kbGUgbWl4ZWQgZm9ybWF0c1wiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHNhbml0aXNlQ2ZuS2V5KFwiYXBwLW5hbWVfdjIudGVzdFwiKSkudG9CZShcImFwcE5hbWVWMlRlc3RcIik7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwiQ2ZuT3V0cHV0XCIsICgpID0+IHtcbiAgbGV0IGFwcDogY2RrLkFwcDtcbiAgbGV0IHN0YWNrOiBjZGsuU3RhY2s7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgYXBwID0gbmV3IGNkay5BcHAoKTtcbiAgICBzdGFjayA9IG5ldyBjZGsuU3RhY2soYXBwLCBcIlRlc3RTdGFja1wiKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJleHBvcnQgbmFtZSBoYW5kbGluZ1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgTk9UIHNhbml0aXplIGV4cG9ydE5hbWUgLSBtdXN0IHByZXNlcnZlIGNhc2UgZm9yIGNyb3NzLXN0YWNrIGxvb2t1cHNcIiwgKCkgPT4ge1xuICAgICAgLy8gVGhpcyBpcyBhIHJlZ3Jlc3Npb24gdGVzdCBmb3IgdGhlIEVDUiByZXBvc2l0b3J5IGxvb2t1cCBpc3N1ZS5cbiAgICAgIC8vIFRoZSBDTEkgbG9va3MgZm9yIGV4cG9ydHMgbGlrZSBcImFwcDZFY3JSZXBvc2l0b3J5TmFtZVwiIGFuZCBDbG91ZEZvcm1hdGlvblxuICAgICAgLy8gZXhwb3J0IG5hbWVzIGFyZSBjYXNlLXNlbnNpdGl2ZS4gU2FuaXRpemluZyBleHBvcnQgbmFtZXMgd291bGQgYnJlYWsgbG9va3Vwcy5cblxuICAgICAgY29uc3Qgb3V0cHV0ID0gbmV3IENmbk91dHB1dChzdGFjaywgXCJUZXN0T3V0cHV0XCIsIHtcbiAgICAgICAgdmFsdWU6IFwidGVzdC12YWx1ZVwiLFxuICAgICAgICBleHBvcnROYW1lOiBcImFwcDZFY3JSZXBvc2l0b3J5TmFtZVwiXG4gICAgICB9KTtcblxuICAgICAgLy8gR2V0IHRoZSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZVxuICAgICAgY29uc3QgdGVtcGxhdGUgPSBhcHAuc3ludGgoKS5nZXRTdGFja0J5TmFtZShcIlRlc3RTdGFja1wiKS50ZW1wbGF0ZTtcbiAgICAgIGNvbnN0IG91dHB1dHMgPSB0ZW1wbGF0ZS5PdXRwdXRzO1xuXG4gICAgICAvLyBGaW5kIG91ciBvdXRwdXQgKHRoZSBrZXkgd2lsbCBiZSBzYW5pdGl6ZWQsIGJ1dCB3ZSBuZWVkIHRvIGNoZWNrIGV4cG9ydE5hbWUpXG4gICAgICBjb25zdCBvdXRwdXRLZXkgPSBPYmplY3Qua2V5cyhvdXRwdXRzKS5maW5kKChrZXkpID0+XG4gICAgICAgIGtleS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwidGVzdG91dHB1dFwiKVxuICAgICAgKTtcbiAgICAgIGV4cGVjdChvdXRwdXRLZXkpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAgIC8vIFRoZSBleHBvcnQgbmFtZSBtdXN0IE5PVCBiZSBzYW5pdGl6ZWQgLSBpdCBtdXN0IGJlIGV4YWN0bHkgYXMgcHJvdmlkZWRcbiAgICAgIGV4cGVjdChvdXRwdXRzW291dHB1dEtleSFdLkV4cG9ydC5OYW1lKS50b0JlKFwiYXBwNkVjclJlcG9zaXRvcnlOYW1lXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgcHJlc2VydmUgUGFzY2FsQ2FzZSBleHBvcnQgbmFtZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgb3V0cHV0ID0gbmV3IENmbk91dHB1dChzdGFjaywgXCJNeU91dHB1dFwiLCB7XG4gICAgICAgIHZhbHVlOiBcInRlc3QtdmFsdWVcIixcbiAgICAgICAgZXhwb3J0TmFtZTogXCJNeUFwcERhdGFiYXNlRW5kcG9pbnRcIlxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHRlbXBsYXRlID0gYXBwLnN5bnRoKCkuZ2V0U3RhY2tCeU5hbWUoXCJUZXN0U3RhY2tcIikudGVtcGxhdGU7XG4gICAgICBjb25zdCBvdXRwdXRzID0gdGVtcGxhdGUuT3V0cHV0cztcbiAgICAgIGNvbnN0IG91dHB1dEtleSA9IE9iamVjdC5rZXlzKG91dHB1dHMpLmZpbmQoKGtleSkgPT5cbiAgICAgICAga2V5LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJteW91dHB1dFwiKVxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KG91dHB1dHNbb3V0cHV0S2V5IV0uRXhwb3J0Lk5hbWUpLnRvQmUoXCJNeUFwcERhdGFiYXNlRW5kcG9pbnRcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBwcmVzZXJ2ZSBleHBvcnQgbmFtZXMgd2l0aCBtaXhlZCBjYXNpbmdcIiwgKCkgPT4ge1xuICAgICAgY29uc3Qgb3V0cHV0ID0gbmV3IENmbk91dHB1dChzdGFjaywgXCJFY3JPdXRwdXRcIiwge1xuICAgICAgICB2YWx1ZTogXCJ0ZXN0LWVjci1hcm5cIixcbiAgICAgICAgZXhwb3J0TmFtZTogXCJhcHA2RWNyUmVwb3NpdG9yeUFyblwiXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgdGVtcGxhdGUgPSBhcHAuc3ludGgoKS5nZXRTdGFja0J5TmFtZShcIlRlc3RTdGFja1wiKS50ZW1wbGF0ZTtcbiAgICAgIGNvbnN0IG91dHB1dHMgPSB0ZW1wbGF0ZS5PdXRwdXRzO1xuICAgICAgY29uc3Qgb3V0cHV0S2V5ID0gT2JqZWN0LmtleXMob3V0cHV0cykuZmluZCgoa2V5KSA9PlxuICAgICAgICBrZXkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcImVjcm91dHB1dFwiKVxuICAgICAgKTtcblxuICAgICAgLy8gRXhwb3J0IG5hbWUgbXVzdCBiZSBleGFjdGx5IGFzIHByb3ZpZGVkIC0gQ0xJIGRlcGVuZHMgb24gdGhpc1xuICAgICAgZXhwZWN0KG91dHB1dHNbb3V0cHV0S2V5IV0uRXhwb3J0Lk5hbWUpLnRvQmUoXCJhcHA2RWNyUmVwb3NpdG9yeUFyblwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJrZXkgc2FuaXRpemF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBzYW5pdGl6ZSB0aGUgb3V0cHV0IGtleVwiLCAoKSA9PiB7XG4gICAgICBuZXcgQ2ZuT3V0cHV0KHN0YWNrLCBcIm15LW91dHB1dC1pZFwiLCB7XG4gICAgICAgIHZhbHVlOiBcInRlc3QtdmFsdWVcIlxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHRlbXBsYXRlID0gYXBwLnN5bnRoKCkuZ2V0U3RhY2tCeU5hbWUoXCJUZXN0U3RhY2tcIikudGVtcGxhdGU7XG4gICAgICBjb25zdCBvdXRwdXRzID0gdGVtcGxhdGUuT3V0cHV0cztcblxuICAgICAgLy8gS2V5IHNob3VsZCBiZSBzYW5pdGl6ZWQgdG8gY2FtZWxDYXNlXG4gICAgICBleHBlY3Qob3V0cHV0c1tcIm15b3V0cHV0aWRcIl0pLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzYW5pdGl6ZSBrZXkgd2hlbiBleHBsaWNpdGx5IHByb3ZpZGVkXCIsICgpID0+IHtcbiAgICAgIG5ldyBDZm5PdXRwdXQoc3RhY2ssIFwiVGVzdElkXCIsIHtcbiAgICAgICAgdmFsdWU6IFwidGVzdC12YWx1ZVwiLFxuICAgICAgICBrZXk6IFwibXktY3VzdG9tLWtleVwiXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgdGVtcGxhdGUgPSBhcHAuc3ludGgoKS5nZXRTdGFja0J5TmFtZShcIlRlc3RTdGFja1wiKS50ZW1wbGF0ZTtcbiAgICAgIGNvbnN0IG91dHB1dHMgPSB0ZW1wbGF0ZS5PdXRwdXRzO1xuXG4gICAgICAvLyBUaGUgY3VzdG9tIGtleSBzaG91bGQgYmUgc2FuaXRpemVkXG4gICAgICBjb25zdCBvdXRwdXRFbnRyeSA9IE9iamVjdC52YWx1ZXMob3V0cHV0cylbMF0gYXMgYW55O1xuICAgICAgLy8gTm90ZTogVGhlIGtleSBpcyBzZXQgaW4gQ2xvdWRGb3JtYXRpb24gbG9naWNhbCBJRCwgbm90IGFzIGEgc2VwYXJhdGUgcHJvcGVydHlcbiAgICAgIC8vIFRoZSBvdXRwdXQgc2hvdWxkIHVzZSB0aGUgc2FuaXRpemVkIElEXG4gICAgICBleHBlY3Qob3V0cHV0c1tcInRlc3RpZFwiXSkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Stack } from "aws-cdk-lib";
|
|
2
2
|
import { Project, type ProjectProps } from "aws-cdk-lib/aws-codebuild";
|
|
3
3
|
import { Construct } from "constructs";
|
|
4
|
-
|
|
5
|
-
}
|
|
4
|
+
type CodeBuildProps = ProjectProps;
|
|
6
5
|
export declare class CodeBuildProject extends Construct {
|
|
7
6
|
readonly project: Project;
|
|
8
7
|
constructor(scope: Construct, id: string, props: CodeBuildProps);
|
|
@@ -23,4 +23,4 @@ class CodeBuildProjectStack extends aws_cdk_lib_1.Stack {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
exports.CodeBuildProjectStack = CodeBuildProjectStack;
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZUJ1aWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvdXRpbGl0aWVzL2NvZGVCdWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBb0M7QUFDcEMsNkRBQXVFO0FBQ3ZFLDJDQUF1QztBQUl2QyxNQUFhLGdCQUFpQixTQUFRLHNCQUFTO0lBRzdDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksdUJBQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ25DLEdBQUcsS0FBSztZQUNSLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLDBCQUEwQixFQUFFLEVBQUU7U0FDakUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBWEQsNENBV0M7QUFFRCxNQUFhLHFCQUFzQixTQUFRLG1CQUFLO0lBQzlDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDN0IsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBUkQsc0RBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUHJvamVjdCwgdHlwZSBQcm9qZWN0UHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZFwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxudHlwZSBDb2RlQnVpbGRQcm9wcyA9IFByb2plY3RQcm9wcztcblxuZXhwb3J0IGNsYXNzIENvZGVCdWlsZFByb2plY3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdDogUHJvamVjdDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29kZUJ1aWxkUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5wcm9qZWN0ID0gbmV3IFByb2plY3QodGhpcywgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uIHx8IGBDb2RlIGJ1aWxkIHByb2plY3QgZm9yICR7aWR9YFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2RlQnVpbGRQcm9qZWN0U3RhY2sgZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDb2RlQnVpbGRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBuZXcgQ29kZUJ1aWxkUHJvamVjdCh0aGlzLCBpZCwge1xuICAgICAgLi4ucHJvcHNcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { CustomResource as customResource
|
|
1
|
+
import { CustomResource as customResource } from "aws-cdk-lib";
|
|
2
|
+
import type { Duration, AssetOptions } from "aws-cdk-lib";
|
|
2
3
|
import { type PolicyStatement } from "aws-cdk-lib/aws-iam";
|
|
3
4
|
import { type Runtime } from "aws-cdk-lib/aws-lambda";
|
|
4
5
|
import { Construct } from "constructs";
|
|
@@ -52,4 +52,4 @@ class CustomResource extends constructs_1.Construct {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
exports.CustomResource = CustomResource;
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tUmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvY3VzdG9tUmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQStEO0FBRS9ELG1FQUF3RDtBQUV4RCx1REFBNEQ7QUFDNUQsMkNBQXVDO0FBRXZDLDhDQUFzRTtBQXVCdEUsTUFBYSxjQUFlLFNBQVEsc0JBQVM7SUFJM0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN6QyxNQUFNLElBQUksS0FBSyxDQUNiLHVFQUF1RSxDQUN4RSxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FDYix5RUFBeUUsQ0FDMUUsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUN4QyxNQUFNLElBQUksR0FBRyxZQUFZO1lBQ3ZCLENBQUMsQ0FBQyxpQkFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxpQkFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RCxNQUFNLE9BQU8sR0FDWCxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0RSxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQztRQUVsRCw2RkFBNkY7UUFDN0YsTUFBTSxjQUFjLEdBQUcsWUFBWTtZQUNqQyxDQUFDLENBQUMsSUFBSSx1QkFBYyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFO2dCQUN0QyxJQUFJO2dCQUNKLE9BQU87Z0JBQ1AsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixPQUFPO2dCQUNQLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxHQUFHLEVBQUUsU0FBUztnQkFDNUQsZUFBZSxFQUNiLEtBQUssQ0FBQyxlQUFlLElBQUksR0FBRyxFQUFFLHlCQUF5QjtnQkFDekQsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO2FBQ2pDLENBQUM7WUFDSixDQUFDLENBQUMsSUFBSSwwQkFBaUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRTtnQkFDekMsSUFBSTtnQkFDSixPQUFPO2dCQUNQLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDdEIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEdBQUcsRUFBRSxTQUFTO2dCQUM1RCxlQUFlLEVBQ2IsS0FBSyxDQUFDLGVBQWUsSUFBSSxHQUFHLEVBQUUseUJBQXlCO2dCQUN6RCxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7YUFDakMsQ0FBQyxDQUFDO1FBRVAsTUFBTSxRQUFRLEdBQUcsSUFBSSwyQkFBUSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1lBQ25ELGNBQWMsRUFBRSxjQUFjO1NBQy9CLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSw0QkFBYyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1lBQ3hELFlBQVksRUFBRSxRQUFRLENBQUMsWUFBWTtZQUNuQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7U0FDN0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0NBQ0Y7QUE1REQsd0NBNERDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UgYXMgY3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB0eXBlIHsgRHVyYXRpb24sIEFzc2V0T3B0aW9ucyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgdHlwZSBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ29kZSwgdHlwZSBSdW50aW1lIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCB7IFNpbmdsZXRvbkZ1bmN0aW9uLCBMYW1iZGFGdW5jdGlvbiB9IGZyb20gXCIuLi9jb21wdXRlL2xhbWJkYVwiO1xuXG5pbnRlcmZhY2UgQ3VzdG9tUmVzb3VyY2VQcm9wcyB7XG4gIHJ1bnRpbWU6IFJ1bnRpbWU7XG4gIHJvbGVEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgbGFtYmRhRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGlubGluZVBvbGljeTogUG9saWN5U3RhdGVtZW50W107XG4gIHByb3BlcnRpZXM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nOyAvLyBVc2VkIHRvIGJlIGBba2V5OiBzdHJpbmddOiBhbnlgLCB0aGlzIGNvdWxkIGJyZWFrXG4gIH07XG5cbiAgLy8gQ29kZSBzb3VyY2VcbiAgY29kZVBhdGg/OiBzdHJpbmc7XG4gIGlubGluZUNvZGU/OiBzdHJpbmc7XG5cbiAgLy8gQXNzZXQgb3B0aW9ucyAob25seSB1c2VkIHdpdGggY29kZVBhdGgpXG4gIGFzc2V0T3B0aW9ucz86IEFzc2V0T3B0aW9ucztcblxuICAvLyBPcHRpb25hbCBvdmVycmlkZXNcbiAgaGFuZGxlcj86IHN0cmluZzsgLy8gRGVmYXVsdDogYCR7aWR9LmhhbmRsZXJgIGZvciBjb2RlUGF0aCwgYGluZGV4LmhhbmRsZXJgIGZvciBpbmxpbmVDb2RlXG4gIHRpbWVvdXQ/OiBEdXJhdGlvbjsgLy8gRGVmYXVsdDogMzAwcyAoNSBtaW51dGVzKVxufVxuXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmVzb3VyY2UgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzcG9uc2U6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBjdXN0b21SZXNvdXJjZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ3VzdG9tUmVzb3VyY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBWYWxpZGF0ZSBleGFjdGx5IG9uZSBjb2RlIHNvdXJjZVxuICAgIGlmICghcHJvcHMuY29kZVBhdGggJiYgIXByb3BzLmlubGluZUNvZGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJDdXN0b21SZXNvdXJjZSByZXF1aXJlcyBlaXRoZXIgY29kZVBhdGggb3IgaW5saW5lQ29kZSB0byBiZSBzcGVjaWZpZWRcIlxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmNvZGVQYXRoICYmIHByb3BzLmlubGluZUNvZGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJDdXN0b21SZXNvdXJjZSByZXF1aXJlcyBleGFjdGx5IG9uZSBvZiBjb2RlUGF0aCBvciBpbmxpbmVDb2RlLCBub3QgYm90aFwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGlzSW5saW5lQ29kZSA9ICEhcHJvcHMuaW5saW5lQ29kZTtcbiAgICBjb25zdCBjb2RlID0gaXNJbmxpbmVDb2RlXG4gICAgICA/IENvZGUuZnJvbUlubGluZShwcm9wcy5pbmxpbmVDb2RlISlcbiAgICAgIDogQ29kZS5mcm9tQXNzZXQocHJvcHMuY29kZVBhdGghLCBwcm9wcy5hc3NldE9wdGlvbnMpO1xuICAgIGNvbnN0IGhhbmRsZXIgPVxuICAgICAgcHJvcHMuaGFuZGxlciA/PyAoaXNJbmxpbmVDb2RlID8gXCJpbmRleC5oYW5kbGVyXCIgOiBgJHtpZH0uaGFuZGxlcmApO1xuICAgIGNvbnN0IHRpbWVvdXQgPSBwcm9wcy50aW1lb3V0Py50b1NlY29uZHMoKSA/PyAzMDA7XG5cbiAgICAvLyBVc2UgTGFtYmRhRnVuY3Rpb24gZm9yIGlubGluZSBjb2RlICh1bmlxdWUgcGVyIHVzZSksIFNpbmdsZXRvbkZ1bmN0aW9uIGZvciBhc3NldHMgKHNoYXJlZClcbiAgICBjb25zdCBsYW1iZGFGdW5jdGlvbiA9IGlzSW5saW5lQ29kZVxuICAgICAgPyBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcywgYCR7aWR9TGFtYmRhYCwge1xuICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgaGFuZGxlcixcbiAgICAgICAgICBydW50aW1lOiBwcm9wcy5ydW50aW1lLFxuICAgICAgICAgIHRpbWVvdXQsXG4gICAgICAgICAgbGFtYmRhRGVzY3JpcHRpb246IHByb3BzLmxhbWJkYURlc2NyaXB0aW9uIHx8IGAke2lkfSBsYW1iZGFgLFxuICAgICAgICAgIHJvbGVEZXNjcmlwdGlvbjpcbiAgICAgICAgICAgIHByb3BzLnJvbGVEZXNjcmlwdGlvbiB8fCBgJHtpZH0gY3VzdG9tIHJlc291cmNlIGxhbWJkYWAsXG4gICAgICAgICAgaW5saW5lUG9saWN5OiBwcm9wcy5pbmxpbmVQb2xpY3lcbiAgICAgICAgfSlcbiAgICAgIDogbmV3IFNpbmdsZXRvbkZ1bmN0aW9uKHRoaXMsIGAke2lkfUxhbWJkYWAsIHtcbiAgICAgICAgICBjb2RlLFxuICAgICAgICAgIGhhbmRsZXIsXG4gICAgICAgICAgcnVudGltZTogcHJvcHMucnVudGltZSxcbiAgICAgICAgICBsYW1iZGFEZXNjcmlwdGlvbjogcHJvcHMubGFtYmRhRGVzY3JpcHRpb24gfHwgYCR7aWR9IGxhbWJkYWAsXG4gICAgICAgICAgcm9sZURlc2NyaXB0aW9uOlxuICAgICAgICAgICAgcHJvcHMucm9sZURlc2NyaXB0aW9uIHx8IGAke2lkfSBjdXN0b20gcmVzb3VyY2UgbGFtYmRhYCxcbiAgICAgICAgICBpbmxpbmVQb2xpY3k6IHByb3BzLmlubGluZVBvbGljeVxuICAgICAgICB9KTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFByb3ZpZGVyKHRoaXMsIGAke2lkfVByb3ZpZGVyYCwge1xuICAgICAgb25FdmVudEhhbmRsZXI6IGxhbWJkYUZ1bmN0aW9uXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGN1c3RvbVJlc291cmNlKHRoaXMsIGAke2lkfVJlc291cmNlYCwge1xuICAgICAgc2VydmljZVRva2VuOiBwcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiBwcm9wcy5wcm9wZXJ0aWVzXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc3BvbnNlID0gdGhpcy5yZXNvdXJjZS5nZXRBdHQoXCJSZXNwb25zZVwiKS50b1N0cmluZygpO1xuICB9XG59XG4iXX0=
|
|
@@ -7,7 +7,7 @@ function getStackOutput(stackname, key) {
|
|
|
7
7
|
try {
|
|
8
8
|
(0, fs_1.accessSync)(path, fs_1.constants.R_OK);
|
|
9
9
|
}
|
|
10
|
-
catch (
|
|
10
|
+
catch (_error) {
|
|
11
11
|
// File does not exist or we do not have permissions to read it
|
|
12
12
|
return undefined;
|
|
13
13
|
}
|
|
@@ -17,4 +17,4 @@ function getStackOutput(stackname, key) {
|
|
|
17
17
|
return value[`${key}`];
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U3RhY2tPdXRwdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvZ2V0U3RhY2tPdXRwdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxpQ0FlQztBQXZCRCwyQkFBeUQ7QUFRekQsU0FBd0IsY0FBYyxDQUFDLFNBQWlCLEVBQUUsR0FBVztJQUNuRSxNQUFNLElBQUksR0FBRyxZQUFZLFNBQVMsT0FBTyxDQUFDO0lBRTFDLElBQUksQ0FBQztRQUNILElBQUEsZUFBVSxFQUFDLElBQUksRUFBRSxjQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUFDLE9BQU8sTUFBTSxFQUFFLENBQUM7UUFDaEIsK0RBQStEO1FBQy9ELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFBLGlCQUFZLEVBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sVUFBVSxHQUFjLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUQsS0FBSyxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDbkQsT0FBTyxLQUFLLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWNjZXNzU3luYywgcmVhZEZpbGVTeW5jLCBjb25zdGFudHMgfSBmcm9tIFwiZnNcIjtcblxuaW50ZXJmYWNlIFN0YWNrSlNPTiB7XG4gIFN0YWNrTmFtZToge1xuICAgIE91dHB1dHM6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0U3RhY2tPdXRwdXQoc3RhY2tuYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nKSB7XG4gIGNvbnN0IHBhdGggPSBgLi9vdXRwdXQvJHtzdGFja25hbWV9Lmpzb25gO1xuXG4gIHRyeSB7XG4gICAgYWNjZXNzU3luYyhwYXRoLCBjb25zdGFudHMuUl9PSyk7XG4gIH0gY2F0Y2ggKF9lcnJvcikge1xuICAgIC8vIEZpbGUgZG9lcyBub3QgZXhpc3Qgb3Igd2UgZG8gbm90IGhhdmUgcGVybWlzc2lvbnMgdG8gcmVhZCBpdFxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBzdGFja091dHB1dEZpbGUgPSByZWFkRmlsZVN5bmMocGF0aCwgXCJ1dGY4XCIpO1xuICBjb25zdCBzdGFja091cHV0OiBTdGFja0pTT04gPSBKU09OLnBhcnNlKHN0YWNrT3V0cHV0RmlsZSk7XG4gIGZvciAoY29uc3QgWywgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHN0YWNrT3VwdXQpKSB7XG4gICAgcmV0dXJuIHZhbHVlW2Ake2tleX1gXTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sanitizeCfnKey = sanitizeCfnKey;
|
|
4
|
+
/**
|
|
5
|
+
* Sanitizes a string to be a valid CloudFormation output key.
|
|
6
|
+
* CloudFormation output names must be alphanumeric only (no hyphens, underscores, or dots).
|
|
7
|
+
*/
|
|
8
|
+
function sanitizeCfnKey(input) {
|
|
9
|
+
return input.replace(/[^a-zA-Z0-9]/g, "");
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FuaXRpemVDZm5LZXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvc2FuaXRpemVDZm5LZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSx3Q0FFQztBQU5EOzs7R0FHRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxLQUFhO0lBQzFDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2FuaXRpemVzIGEgc3RyaW5nIHRvIGJlIGEgdmFsaWQgQ2xvdWRGb3JtYXRpb24gb3V0cHV0IGtleS5cbiAqIENsb3VkRm9ybWF0aW9uIG91dHB1dCBuYW1lcyBtdXN0IGJlIGFscGhhbnVtZXJpYyBvbmx5IChubyBoeXBoZW5zLCB1bmRlcnNjb3Jlcywgb3IgZG90cykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZUNmbktleShpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGlucHV0LnJlcGxhY2UoL1teYS16QS1aMC05XS9nLCBcIlwiKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type IConstruct } from "constructs";
|
|
2
|
+
/**
|
|
3
|
+
* Apply tags directly to a specific resource.
|
|
4
|
+
*
|
|
5
|
+
* This uses CDK's native Tags.of().add() API which:
|
|
6
|
+
* - Properly merges with existing tags from L2 constructs
|
|
7
|
+
* - Works regardless of when it's called during construction
|
|
8
|
+
* - Applies tags to the resource and all its children
|
|
9
|
+
*
|
|
10
|
+
* Use this for resources that need specific tags beyond the standard Fjall tags,
|
|
11
|
+
* like VPC IPAM pool tags or resource-specific metadata.
|
|
12
|
+
*
|
|
13
|
+
* @param resource - The construct to tag
|
|
14
|
+
* @param tags - Key-value pairs of tags to apply
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* // Apply specific tags to a resource
|
|
18
|
+
* tagResource(myVpc, {
|
|
19
|
+
* "fjall:operations:pool": "pool-123"
|
|
20
|
+
* });
|
|
21
|
+
*/
|
|
22
|
+
export default function tagResource(resource: IConstruct, tags: {
|
|
23
|
+
[key: string]: string;
|
|
24
|
+
}): void;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = tagResource;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
/**
|
|
6
|
+
* Apply tags directly to a specific resource.
|
|
7
|
+
*
|
|
8
|
+
* This uses CDK's native Tags.of().add() API which:
|
|
9
|
+
* - Properly merges with existing tags from L2 constructs
|
|
10
|
+
* - Works regardless of when it's called during construction
|
|
11
|
+
* - Applies tags to the resource and all its children
|
|
12
|
+
*
|
|
13
|
+
* Use this for resources that need specific tags beyond the standard Fjall tags,
|
|
14
|
+
* like VPC IPAM pool tags or resource-specific metadata.
|
|
15
|
+
*
|
|
16
|
+
* @param resource - The construct to tag
|
|
17
|
+
* @param tags - Key-value pairs of tags to apply
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* // Apply specific tags to a resource
|
|
21
|
+
* tagResource(myVpc, {
|
|
22
|
+
* "fjall:operations:pool": "pool-123"
|
|
23
|
+
* });
|
|
24
|
+
*/
|
|
25
|
+
function tagResource(resource, tags) {
|
|
26
|
+
Object.entries(tags).forEach(([key, value]) => {
|
|
27
|
+
aws_cdk_lib_1.Tags.of(resource).add(key, value);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnUmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvdGFnUmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF1QkEsOEJBT0M7QUE5QkQsNkNBQW1DO0FBR25DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsU0FBd0IsV0FBVyxDQUNqQyxRQUFvQixFQUNwQixJQUErQjtJQUUvQixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDNUMsa0JBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWdzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyB0eXBlIElDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG4vKipcbiAqIEFwcGx5IHRhZ3MgZGlyZWN0bHkgdG8gYSBzcGVjaWZpYyByZXNvdXJjZS5cbiAqXG4gKiBUaGlzIHVzZXMgQ0RLJ3MgbmF0aXZlIFRhZ3Mub2YoKS5hZGQoKSBBUEkgd2hpY2g6XG4gKiAtIFByb3Blcmx5IG1lcmdlcyB3aXRoIGV4aXN0aW5nIHRhZ3MgZnJvbSBMMiBjb25zdHJ1Y3RzXG4gKiAtIFdvcmtzIHJlZ2FyZGxlc3Mgb2Ygd2hlbiBpdCdzIGNhbGxlZCBkdXJpbmcgY29uc3RydWN0aW9uXG4gKiAtIEFwcGxpZXMgdGFncyB0byB0aGUgcmVzb3VyY2UgYW5kIGFsbCBpdHMgY2hpbGRyZW5cbiAqXG4gKiBVc2UgdGhpcyBmb3IgcmVzb3VyY2VzIHRoYXQgbmVlZCBzcGVjaWZpYyB0YWdzIGJleW9uZCB0aGUgc3RhbmRhcmQgRmphbGwgdGFncyxcbiAqIGxpa2UgVlBDIElQQU0gcG9vbCB0YWdzIG9yIHJlc291cmNlLXNwZWNpZmljIG1ldGFkYXRhLlxuICpcbiAqIEBwYXJhbSByZXNvdXJjZSAtIFRoZSBjb25zdHJ1Y3QgdG8gdGFnXG4gKiBAcGFyYW0gdGFncyAtIEtleS12YWx1ZSBwYWlycyBvZiB0YWdzIHRvIGFwcGx5XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFwcGx5IHNwZWNpZmljIHRhZ3MgdG8gYSByZXNvdXJjZVxuICogdGFnUmVzb3VyY2UobXlWcGMsIHtcbiAqICAgXCJmamFsbDpvcGVyYXRpb25zOnBvb2xcIjogXCJwb29sLTEyM1wiXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdGFnUmVzb3VyY2UoXG4gIHJlc291cmNlOiBJQ29uc3RydWN0LFxuICB0YWdzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4pOiB2b2lkIHtcbiAgT2JqZWN0LmVudHJpZXModGFncykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgVGFncy5vZihyZXNvdXJjZSkuYWRkKGtleSwgdmFsdWUpO1xuICB9KTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fjall/components-infrastructure",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.80.4",
|
|
4
4
|
"bin": {
|
|
5
5
|
"infrastructure": "bin/infrastructure.js"
|
|
6
6
|
},
|
|
@@ -18,8 +18,9 @@
|
|
|
18
18
|
"watch": "tsc -w",
|
|
19
19
|
"test": "jest",
|
|
20
20
|
"cdk": "cdk",
|
|
21
|
-
"
|
|
22
|
-
"format
|
|
21
|
+
"check:scripts": "tsc --project tsconfig.scripts.json",
|
|
22
|
+
"format": "prettier --write \"lib/**/*.{ts,tsx,js,jsx,json}\" \"scripts/**/*.mts\"",
|
|
23
|
+
"format:check": "prettier --check \"lib/**/*.{ts,tsx,js,jsx,json}\" \"scripts/**/*.mts\""
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
26
|
"@types/aws-lambda": "^8.10.109",
|
|
@@ -35,7 +36,7 @@
|
|
|
35
36
|
},
|
|
36
37
|
"dependencies": {
|
|
37
38
|
"@aws-sdk/client-organizations": "^3.716.0",
|
|
38
|
-
"@fjall/util": "^0.
|
|
39
|
+
"@fjall/util": "^0.80.4",
|
|
39
40
|
"@pepperize/cdk-organizations": "^0.7.135",
|
|
40
41
|
"cdk-time-sleep": "^1.0.0",
|
|
41
42
|
"constructs": "^10.0.0",
|
|
@@ -44,7 +45,7 @@
|
|
|
44
45
|
"overrides": {
|
|
45
46
|
"@smithy/core": "2.5.5"
|
|
46
47
|
},
|
|
47
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "7f39b84637d7394d1998b0710312d54db75452fa",
|
|
48
49
|
"peerDependencies": {
|
|
49
50
|
"aws-cdk": "^2.206.0",
|
|
50
51
|
"aws-cdk-lib": "^2.206.0",
|