@fjall/components-infrastructure 0.1.10 → 0.1.11

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 (118) hide show
  1. package/dist/lib/app.d.ts +2 -1
  2. package/dist/lib/app.js +4 -2
  3. package/dist/lib/config/aws/accountId.d.ts +6 -0
  4. package/dist/lib/config/aws/accountId.js +33 -0
  5. package/dist/lib/config/aws/cloudTrail.d.ts +10 -0
  6. package/dist/lib/config/aws/cloudTrail.js +22 -0
  7. package/dist/lib/config/aws/costAllocationTags.d.ts +2 -3
  8. package/dist/lib/config/aws/costAllocationTags.js +6 -5
  9. package/dist/lib/config/aws/ecrDefaultImage.d.ts +11 -0
  10. package/dist/lib/config/aws/ecrDefaultImage.js +127 -0
  11. package/dist/lib/config/aws/eventBus.d.ts +7 -0
  12. package/dist/lib/config/aws/eventBus.js +24 -0
  13. package/dist/lib/config/aws/identityCenter.d.ts +11 -3
  14. package/dist/lib/config/aws/identityCenter.js +24 -29
  15. package/dist/lib/config/aws/identityCenterUser.d.ts +16 -0
  16. package/dist/lib/config/aws/identityCenterUser.js +125 -0
  17. package/dist/lib/config/aws/index.d.ts +8 -4
  18. package/dist/lib/config/aws/index.js +9 -5
  19. package/dist/lib/config/aws/ipam.d.ts +2 -2
  20. package/dist/lib/config/aws/ipam.js +25 -7
  21. package/dist/lib/config/aws/ipamDelegateAdmin.d.ts +4 -5
  22. package/dist/lib/config/aws/ipamDelegateAdmin.js +9 -13
  23. package/dist/lib/config/aws/ipamPoolId.d.ts +9 -0
  24. package/dist/lib/config/aws/ipamPoolId.js +36 -0
  25. package/dist/lib/config/aws/organisation.d.ts +28 -0
  26. package/dist/lib/config/aws/organisation.js +142 -0
  27. package/dist/lib/config/aws/organisationId.d.ts +4 -2
  28. package/dist/lib/config/aws/organisationId.js +13 -7
  29. package/dist/lib/config/aws/ramSharing.d.ts +4 -0
  30. package/dist/lib/config/aws/ramSharing.js +35 -0
  31. package/dist/lib/patterns/aws/basicApp.d.ts +2 -2
  32. package/dist/lib/patterns/aws/basicApp.js +15 -15
  33. package/dist/lib/patterns/aws/buildkite.d.ts +3 -3
  34. package/dist/lib/patterns/aws/buildkite.js +9 -7
  35. package/dist/lib/patterns/aws/freeTierApp.d.ts +46 -0
  36. package/dist/lib/patterns/aws/freeTierApp.js +95 -0
  37. package/dist/lib/patterns/aws/hostedZone.d.ts +11 -0
  38. package/dist/lib/patterns/aws/hostedZone.js +73 -0
  39. package/dist/lib/patterns/aws/index.d.ts +3 -0
  40. package/dist/lib/patterns/aws/index.js +4 -1
  41. package/dist/lib/patterns/aws/managedAccount.d.ts +13 -0
  42. package/dist/lib/patterns/aws/managedAccount.js +39 -0
  43. package/dist/lib/patterns/aws/managedOrganisation.d.ts +9 -21
  44. package/dist/lib/patterns/aws/managedOrganisation.js +33 -147
  45. package/dist/lib/patterns/aws/managedPlatform.d.ts +13 -0
  46. package/dist/lib/patterns/aws/managedPlatform.js +22 -0
  47. package/dist/lib/patterns/aws/spotInstanceApp.d.ts +46 -0
  48. package/dist/lib/patterns/aws/spotInstanceApp.js +95 -0
  49. package/dist/lib/patterns/aws/subdomainHostedZone.d.ts +9 -0
  50. package/dist/lib/patterns/aws/subdomainHostedZone.js +39 -0
  51. package/dist/lib/resources/aws/compute/ecs.d.ts +2 -4
  52. package/dist/lib/resources/aws/compute/ecs.js +10 -6
  53. package/dist/lib/resources/aws/compute/ecsFreeTier.d.ts +76 -0
  54. package/dist/lib/resources/aws/compute/ecsFreeTier.js +352 -0
  55. package/dist/lib/resources/aws/compute/ecsSpot.d.ts +76 -0
  56. package/dist/lib/resources/aws/compute/ecsSpot.js +334 -0
  57. package/dist/lib/resources/aws/compute/index.d.ts +2 -0
  58. package/dist/lib/resources/aws/compute/index.js +19 -0
  59. package/dist/lib/resources/aws/compute/lambda.d.ts +7 -7
  60. package/dist/lib/resources/aws/compute/lambda.js +8 -7
  61. package/dist/lib/resources/aws/database/database.d.ts +16 -0
  62. package/dist/lib/resources/aws/database/database.js +30 -0
  63. package/dist/lib/resources/aws/database/databaseFreeTier.d.ts +17 -0
  64. package/dist/lib/resources/aws/database/databaseFreeTier.js +31 -0
  65. package/dist/lib/resources/aws/database/databaseInstance.d.ts +17 -0
  66. package/dist/lib/resources/aws/database/databaseInstance.js +32 -0
  67. package/dist/lib/resources/aws/database/index.d.ts +2 -0
  68. package/dist/lib/resources/aws/database/index.js +19 -0
  69. package/dist/lib/resources/aws/database/rds.d.ts +23 -0
  70. package/dist/lib/resources/aws/database/rds.js +130 -0
  71. package/dist/lib/resources/aws/database/rdsFreeTier.d.ts +36 -0
  72. package/dist/lib/resources/aws/database/rdsFreeTier.js +80 -0
  73. package/dist/lib/resources/aws/database/rdsInstance.d.ts +42 -0
  74. package/dist/lib/resources/aws/database/rdsInstance.js +173 -0
  75. package/dist/lib/resources/aws/logging/cloudTrail.d.ts +18 -0
  76. package/dist/lib/resources/aws/logging/cloudTrail.js +46 -0
  77. package/dist/lib/resources/aws/logging/logGroup.d.ts +3 -3
  78. package/dist/lib/resources/aws/logging/logGroup.js +3 -3
  79. package/dist/lib/resources/aws/networking/index.d.ts +1 -1
  80. package/dist/lib/resources/aws/networking/index.js +2 -2
  81. package/dist/lib/resources/aws/networking/ipamPool.d.ts +16 -3
  82. package/dist/lib/resources/aws/networking/ipamPool.js +75 -6
  83. package/dist/lib/resources/aws/networking/vpc.d.ts +29 -0
  84. package/dist/lib/resources/aws/networking/vpc.js +64 -0
  85. package/dist/lib/resources/aws/secrets/alias.d.ts +5 -0
  86. package/dist/lib/resources/aws/secrets/alias.js +13 -0
  87. package/dist/lib/resources/aws/secrets/index.d.ts +5 -0
  88. package/dist/lib/resources/aws/secrets/index.js +22 -0
  89. package/dist/lib/resources/aws/secrets/kms.d.ts +14 -0
  90. package/dist/lib/resources/aws/secrets/kms.js +34 -0
  91. package/dist/lib/resources/aws/secrets/parameter.d.ts +26 -0
  92. package/dist/lib/resources/aws/secrets/parameter.js +100 -0
  93. package/dist/lib/resources/aws/secrets/secret.d.ts +24 -0
  94. package/dist/lib/resources/aws/secrets/secret.js +53 -0
  95. package/dist/lib/resources/aws/storage/ecr.d.ts +12 -0
  96. package/dist/lib/resources/aws/storage/ecr.js +31 -0
  97. package/dist/lib/resources/aws/storage/index.d.ts +2 -0
  98. package/dist/lib/resources/aws/storage/index.js +19 -0
  99. package/dist/lib/resources/aws/storage/s3.d.ts +11 -0
  100. package/dist/lib/resources/aws/storage/s3.js +44 -0
  101. package/dist/lib/resources/aws/utilities/codeBuild.d.ts +15 -0
  102. package/dist/lib/resources/aws/utilities/codeBuild.js +28 -0
  103. package/dist/lib/resources/aws/utilities/customResource.js +2 -2
  104. package/dist/lib/types.d.ts +3 -0
  105. package/dist/lib/types.js +3 -0
  106. package/dist/lib/utils/capitalizeString.d.ts +1 -0
  107. package/dist/lib/utils/capitalizeString.js +8 -0
  108. package/dist/lib/utils/getAccountId.d.ts +1 -1
  109. package/dist/lib/utils/getAccountId.js +3 -2
  110. package/dist/lib/utils/getCidr.d.ts +8 -0
  111. package/dist/lib/utils/getCidr.js +42 -0
  112. package/dist/lib/utils/getConfig.d.ts +3 -2
  113. package/dist/lib/utils/getConfig.js +20 -6
  114. package/dist/lib/utils/stripAndCamelCase.d.ts +1 -0
  115. package/dist/lib/utils/stripAndCamelCase.js +17 -0
  116. package/dist/lib/utils/usersConfig.d.ts +7 -0
  117. package/dist/lib/utils/usersConfig.js +18 -0
  118. package/package.json +2 -2
@@ -0,0 +1,14 @@
1
+ import { Alias, Key } from "aws-cdk-lib/aws-kms";
2
+ import { Construct } from "constructs";
3
+ import { KeyValue } from "../../../types";
4
+ interface CustomerManagedKeyProps {
5
+ description?: string;
6
+ aliasName?: string;
7
+ tags: KeyValue;
8
+ }
9
+ export declare class CustomerManagedKey extends Construct {
10
+ readonly key: Key;
11
+ readonly alias: Alias;
12
+ constructor(scope: Construct, id: string, props: CustomerManagedKeyProps);
13
+ }
14
+ export {};
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomerManagedKey = void 0;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const aws_kms_1 = require("aws-cdk-lib/aws-kms");
6
+ const constructs_1 = require("constructs");
7
+ const tagResource_1 = require("../../../utils/tagResource");
8
+ class CustomerManagedKey extends constructs_1.Construct {
9
+ constructor(scope, id, props) {
10
+ super(scope, id);
11
+ this.key = new aws_kms_1.Key(this, `${id}Key`, {
12
+ description: props.description || `${id} KMS Key`,
13
+ removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY
14
+ });
15
+ new aws_cdk_lib_1.CfnOutput(this, `${id}KeyArn`, {
16
+ key: `${id}Arn`,
17
+ value: this.key.keyArn,
18
+ exportName: `${id}KeyArn`
19
+ });
20
+ (0, tagResource_1.default)(this.key, props.tags);
21
+ this.alias = new aws_kms_1.Alias(this, `${id}KeyAlias`, {
22
+ aliasName: props.aliasName || `cmk/${id}`,
23
+ targetKey: this.key
24
+ });
25
+ new aws_cdk_lib_1.CfnOutput(this, `${id}KeyAliasArn`, {
26
+ key: `${id}AliasArn`,
27
+ value: this.alias.aliasArn,
28
+ exportName: `${id}KeyAliasArn`
29
+ });
30
+ (0, tagResource_1.default)(this.alias, props.tags);
31
+ }
32
+ }
33
+ exports.CustomerManagedKey = CustomerManagedKey;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc2VjcmV0cy9rbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVEO0FBQ3ZELGlEQUFpRDtBQUNqRCwyQ0FBdUM7QUFDdkMsNERBQXFEO0FBU3JELE1BQWEsa0JBQW1CLFNBQVEsc0JBQVM7SUFJL0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE4QjtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxhQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDbkMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxFQUFFLFVBQVU7WUFDakQsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztTQUNyQyxDQUFDLENBQUM7UUFDSCxJQUFJLHVCQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUU7WUFDakMsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLO1lBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTTtZQUN0QixVQUFVLEVBQUUsR0FBRyxFQUFFLFFBQVE7U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsSUFBQSxxQkFBVyxFQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxlQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7WUFDNUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksT0FBTyxFQUFFLEVBQUU7WUFDekMsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ3BCLENBQUMsQ0FBQztRQUNILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRTtZQUN0QyxHQUFHLEVBQUUsR0FBRyxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUMxQixVQUFVLEVBQUUsR0FBRyxFQUFFLGFBQWE7U0FDL0IsQ0FBQyxDQUFDO1FBQ0gsSUFBQSxxQkFBVyxFQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQTdCRCxnREE2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEFsaWFzLCBLZXkgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWttc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB0YWdSZXNvdXJjZSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvdGFnUmVzb3VyY2VcIjtcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSBcIi4uLy4uLy4uL3R5cGVzXCI7XG5cbmludGVyZmFjZSBDdXN0b21lck1hbmFnZWRLZXlQcm9wcyB7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBhbGlhc05hbWU/OiBzdHJpbmc7XG4gIHRhZ3M6IEtleVZhbHVlO1xufVxuXG5leHBvcnQgY2xhc3MgQ3VzdG9tZXJNYW5hZ2VkS2V5IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGtleTogS2V5O1xuICBwdWJsaWMgcmVhZG9ubHkgYWxpYXM6IEFsaWFzO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDdXN0b21lck1hbmFnZWRLZXlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmtleSA9IG5ldyBLZXkodGhpcywgYCR7aWR9S2V5YCwge1xuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uIHx8IGAke2lkfSBLTVMgS2V5YCxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWVxuICAgIH0pO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYCR7aWR9S2V5QXJuYCwge1xuICAgICAga2V5OiBgJHtpZH1Bcm5gLFxuICAgICAgdmFsdWU6IHRoaXMua2V5LmtleUFybixcbiAgICAgIGV4cG9ydE5hbWU6IGAke2lkfUtleUFybmBcbiAgICB9KTtcbiAgICB0YWdSZXNvdXJjZSh0aGlzLmtleSwgcHJvcHMudGFncyk7XG5cbiAgICB0aGlzLmFsaWFzID0gbmV3IEFsaWFzKHRoaXMsIGAke2lkfUtleUFsaWFzYCwge1xuICAgICAgYWxpYXNOYW1lOiBwcm9wcy5hbGlhc05hbWUgfHwgYGNtay8ke2lkfWAsXG4gICAgICB0YXJnZXRLZXk6IHRoaXMua2V5XG4gICAgfSk7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCBgJHtpZH1LZXlBbGlhc0FybmAsIHtcbiAgICAgIGtleTogYCR7aWR9QWxpYXNBcm5gLFxuICAgICAgdmFsdWU6IHRoaXMuYWxpYXMuYWxpYXNBcm4sXG4gICAgICBleHBvcnROYW1lOiBgJHtpZH1LZXlBbGlhc0FybmBcbiAgICB9KTtcbiAgICB0YWdSZXNvdXJjZSh0aGlzLmFsaWFzLCBwcm9wcy50YWdzKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,26 @@
1
+ import { aws_ssm as ssm } from "aws-cdk-lib";
2
+ import { Construct } from "constructs";
3
+ import { KeyValue } from "../../../types";
4
+ import { CustomerManagedKey } from "./";
5
+ import { AwsCustomResource } from "../utilities/awsCustomResource";
6
+ export declare class StringParameter extends ssm.StringParameter {
7
+ constructor(scope: Construct, id: string, props: ssm.StringParameterProps);
8
+ }
9
+ interface SecureStringParameterProps {
10
+ accountId: string;
11
+ aliasName?: string;
12
+ description?: string;
13
+ name: string;
14
+ overwrite?: boolean;
15
+ region: string;
16
+ tags: KeyValue;
17
+ value?: string;
18
+ cmk?: CustomerManagedKey;
19
+ }
20
+ export declare class SecureStringParameter extends Construct {
21
+ readonly cmk: CustomerManagedKey;
22
+ readonly name: string;
23
+ readonly parameter: AwsCustomResource;
24
+ constructor(scope: Construct, id: string, props: SecureStringParameterProps);
25
+ }
26
+ export {};
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SecureStringParameter = exports.StringParameter = void 0;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
6
+ const custom_resources_1 = require("aws-cdk-lib/custom-resources");
7
+ const constructs_1 = require("constructs");
8
+ const _1 = require("./");
9
+ const awsCustomResource_1 = require("../utilities/awsCustomResource");
10
+ class StringParameter extends aws_cdk_lib_1.aws_ssm.StringParameter {
11
+ constructor(scope, id, props) {
12
+ super(scope, id, {
13
+ ...props,
14
+ description: props.description || `${id} SSM Parameter`,
15
+ tier: aws_cdk_lib_1.aws_ssm.ParameterTier.INTELLIGENT_TIERING
16
+ });
17
+ }
18
+ }
19
+ exports.StringParameter = StringParameter;
20
+ class SecureStringParameter extends constructs_1.Construct {
21
+ constructor(scope, id, props) {
22
+ super(scope, id);
23
+ this.name = props.name;
24
+ if (props.cmk) {
25
+ this.cmk = props.cmk;
26
+ }
27
+ else {
28
+ this.cmk = new _1.CustomerManagedKey(this, `${id}Key`, {
29
+ description: props.description || `${id} KMS Key`,
30
+ aliasName: props.aliasName,
31
+ tags: props.tags
32
+ });
33
+ }
34
+ this.parameter = new awsCustomResource_1.AwsCustomResource(this, `${id}SecureStringParameter`, {
35
+ resourceType: "Custom::SecureStringParameter",
36
+ functionName: `${id}SecureStringParameter`,
37
+ onCreate: {
38
+ service: "@aws-sdk/client-ssm",
39
+ action: "PutParameter",
40
+ parameters: {
41
+ Name: props.name,
42
+ Description: props.description || `${id} secure parameter`,
43
+ Value: props.value || process.env.CDK_SECURE_STRING || "placeholderValue",
44
+ Type: "SecureString",
45
+ KeyId: this.cmk.alias.keyId
46
+ // TODO: Add tags to the parameter
47
+ },
48
+ physicalResourceId: custom_resources_1.PhysicalResourceId.of("createSecureStringParameter")
49
+ },
50
+ onUpdate: {
51
+ service: "@aws-sdk/client-ssm",
52
+ action: "PutParameter",
53
+ parameters: {
54
+ Name: props.name,
55
+ Description: props.description || `${id} secure parameter`,
56
+ Value: props.value ||
57
+ `process.env.CDK_SECURE_STRING_${id}` ||
58
+ "placeholderValue",
59
+ Overwrite: props.overwrite,
60
+ Type: "SecureString",
61
+ KeyId: this.cmk.alias.keyId
62
+ // TODO: Add tags to the parameter
63
+ },
64
+ physicalResourceId: custom_resources_1.PhysicalResourceId.of("updateSecureStringParameter")
65
+ },
66
+ onDelete: {
67
+ service: "@aws-sdk/client-ssm",
68
+ action: "DeleteParameter",
69
+ parameters: {
70
+ Name: props.name
71
+ }
72
+ },
73
+ policy: custom_resources_1.AwsCustomResourcePolicy.fromStatements([
74
+ new aws_iam_1.PolicyStatement({
75
+ actions: ["kms:Encrypt"],
76
+ resources: [
77
+ `arn:aws:kms:${props.region}:${props.accountId}:key/${this.cmk.key.keyId}`
78
+ ]
79
+ }),
80
+ new aws_iam_1.PolicyStatement({
81
+ actions: [
82
+ "ssm:DeleteParameter",
83
+ "ssm:PutParameter",
84
+ "ssm:AddTagsToResource",
85
+ "logs:DeleteRetentionPolicy",
86
+ "logs:PutRetentionPolicy"
87
+ ],
88
+ resources: [
89
+ `arn:aws:ssm:${props.region}:${props.accountId}:parameter${props.name}`
90
+ ]
91
+ })
92
+ ])
93
+ });
94
+ if (!props.cmk) {
95
+ this.parameter.node.addDependency(this.cmk);
96
+ }
97
+ }
98
+ }
99
+ exports.SecureStringParameter = SecureStringParameter;
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc2VjcmV0cy9wYXJhbWV0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTZDO0FBQzdDLGlEQUFzRDtBQUN0RCxtRUFHc0M7QUFDdEMsMkNBQXVDO0FBRXZDLHlCQUF3QztBQUN4QyxzRUFBbUU7QUFFbkUsTUFBYSxlQUFnQixTQUFRLHFCQUFHLENBQUMsZUFBZTtJQUN0RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQStCO1FBQ3ZFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxFQUFFLGdCQUFnQjtZQUN2RCxJQUFJLEVBQUUscUJBQUcsQ0FBQyxhQUFhLENBQUMsbUJBQW1CO1NBQzVDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVJELDBDQVFDO0FBY0QsTUFBYSxxQkFBc0IsU0FBUSxzQkFBUztJQUtsRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlDO1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBRXZCLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUN0QjthQUFNO1lBQ0wsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLHFCQUFrQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFO2dCQUNsRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxHQUFHLEVBQUUsVUFBVTtnQkFDakQsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO2dCQUMxQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7YUFDakIsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUkscUNBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSx1QkFBdUIsRUFBRTtZQUN6RSxZQUFZLEVBQUUsK0JBQStCO1lBQzdDLFlBQVksRUFBRSxHQUFHLEVBQUUsdUJBQXVCO1lBQzFDLFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixNQUFNLEVBQUUsY0FBYztnQkFDdEIsVUFBVSxFQUFFO29CQUNWLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtvQkFDaEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxFQUFFLG1CQUFtQjtvQkFDMUQsS0FBSyxFQUNILEtBQUssQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxrQkFBa0I7b0JBQ3BFLElBQUksRUFBRSxjQUFjO29CQUNwQixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSztvQkFDM0Isa0NBQWtDO2lCQUNuQztnQkFDRCxrQkFBa0IsRUFBRSxxQ0FBa0IsQ0FBQyxFQUFFLENBQUMsNkJBQTZCLENBQUM7YUFDekU7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsTUFBTSxFQUFFLGNBQWM7Z0JBQ3RCLFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7b0JBQ2hCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLEdBQUcsRUFBRSxtQkFBbUI7b0JBQzFELEtBQUssRUFDSCxLQUFLLENBQUMsS0FBSzt3QkFDWCxpQ0FBaUMsRUFBRSxFQUFFO3dCQUNyQyxrQkFBa0I7b0JBQ3BCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztvQkFDMUIsSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLO29CQUMzQixrQ0FBa0M7aUJBQ25DO2dCQUNELGtCQUFrQixFQUFFLHFDQUFrQixDQUFDLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQzthQUN6RTtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixNQUFNLEVBQUUsaUJBQWlCO2dCQUN6QixVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2lCQUNqQjthQUNGO1lBQ0QsTUFBTSxFQUFFLDBDQUF1QixDQUFDLGNBQWMsQ0FBQztnQkFDN0MsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLFNBQVMsRUFBRTt3QkFDVCxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsUUFBUSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUU7cUJBQzNFO2lCQUNGLENBQUM7Z0JBQ0YsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUU7d0JBQ1AscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3dCQUM1Qix5QkFBeUI7cUJBQzFCO29CQUNELFNBQVMsRUFBRTt3QkFDVCxlQUFlLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsYUFBYSxLQUFLLENBQUMsSUFBSSxFQUFFO3FCQUN4RTtpQkFDRixDQUFDO2FBQ0gsQ0FBQztTQUNILENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUM7Q0FDRjtBQXZGRCxzREF1RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3Nfc3NtIGFzIHNzbSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7XG4gIEF3c0N1c3RvbVJlc291cmNlUG9saWN5LFxuICBQaHlzaWNhbFJlc291cmNlSWRcbn0gZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gXCIuLi8uLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgQ3VzdG9tZXJNYW5hZ2VkS2V5IH0gZnJvbSBcIi4vXCI7XG5pbXBvcnQgeyBBd3NDdXN0b21SZXNvdXJjZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2VcIjtcblxuZXhwb3J0IGNsYXNzIFN0cmluZ1BhcmFtZXRlciBleHRlbmRzIHNzbS5TdHJpbmdQYXJhbWV0ZXIge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogc3NtLlN0cmluZ1BhcmFtZXRlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbiB8fCBgJHtpZH0gU1NNIFBhcmFtZXRlcmAsXG4gICAgICB0aWVyOiBzc20uUGFyYW1ldGVyVGllci5JTlRFTExJR0VOVF9USUVSSU5HXG4gICAgfSk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIFNlY3VyZVN0cmluZ1BhcmFtZXRlclByb3BzIHtcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIGFsaWFzTmFtZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgb3ZlcndyaXRlPzogYm9vbGVhbjtcbiAgcmVnaW9uOiBzdHJpbmc7XG4gIHRhZ3M6IEtleVZhbHVlO1xuICB2YWx1ZT86IHN0cmluZztcbiAgY21rPzogQ3VzdG9tZXJNYW5hZ2VkS2V5O1xufVxuXG5leHBvcnQgY2xhc3MgU2VjdXJlU3RyaW5nUGFyYW1ldGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGNtazogQ3VzdG9tZXJNYW5hZ2VkS2V5O1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVyOiBBd3NDdXN0b21SZXNvdXJjZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VjdXJlU3RyaW5nUGFyYW1ldGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5uYW1lID0gcHJvcHMubmFtZTtcblxuICAgIGlmIChwcm9wcy5jbWspIHtcbiAgICAgIHRoaXMuY21rID0gcHJvcHMuY21rO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNtayA9IG5ldyBDdXN0b21lck1hbmFnZWRLZXkodGhpcywgYCR7aWR9S2V5YCwge1xuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24gfHwgYCR7aWR9IEtNUyBLZXlgLFxuICAgICAgICBhbGlhc05hbWU6IHByb3BzLmFsaWFzTmFtZSxcbiAgICAgICAgdGFnczogcHJvcHMudGFnc1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5wYXJhbWV0ZXIgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgYCR7aWR9U2VjdXJlU3RyaW5nUGFyYW1ldGVyYCwge1xuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6U2VjdXJlU3RyaW5nUGFyYW1ldGVyXCIsXG4gICAgICBmdW5jdGlvbk5hbWU6IGAke2lkfVNlY3VyZVN0cmluZ1BhcmFtZXRlcmAsXG4gICAgICBvbkNyZWF0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkBhd3Mtc2RrL2NsaWVudC1zc21cIixcbiAgICAgICAgYWN0aW9uOiBcIlB1dFBhcmFtZXRlclwiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgTmFtZTogcHJvcHMubmFtZSxcbiAgICAgICAgICBEZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24gfHwgYCR7aWR9IHNlY3VyZSBwYXJhbWV0ZXJgLFxuICAgICAgICAgIFZhbHVlOlxuICAgICAgICAgICAgcHJvcHMudmFsdWUgfHwgcHJvY2Vzcy5lbnYuQ0RLX1NFQ1VSRV9TVFJJTkcgfHwgXCJwbGFjZWhvbGRlclZhbHVlXCIsXG4gICAgICAgICAgVHlwZTogXCJTZWN1cmVTdHJpbmdcIixcbiAgICAgICAgICBLZXlJZDogdGhpcy5jbWsuYWxpYXMua2V5SWRcbiAgICAgICAgICAvLyBUT0RPOiBBZGQgdGFncyB0byB0aGUgcGFyYW1ldGVyXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFwiY3JlYXRlU2VjdXJlU3RyaW5nUGFyYW1ldGVyXCIpXG4gICAgICB9LFxuICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgc2VydmljZTogXCJAYXdzLXNkay9jbGllbnQtc3NtXCIsXG4gICAgICAgIGFjdGlvbjogXCJQdXRQYXJhbWV0ZXJcIixcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIE5hbWU6IHByb3BzLm5hbWUsXG4gICAgICAgICAgRGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uIHx8IGAke2lkfSBzZWN1cmUgcGFyYW1ldGVyYCxcbiAgICAgICAgICBWYWx1ZTpcbiAgICAgICAgICAgIHByb3BzLnZhbHVlIHx8XG4gICAgICAgICAgICBgcHJvY2Vzcy5lbnYuQ0RLX1NFQ1VSRV9TVFJJTkdfJHtpZH1gIHx8XG4gICAgICAgICAgICBcInBsYWNlaG9sZGVyVmFsdWVcIixcbiAgICAgICAgICBPdmVyd3JpdGU6IHByb3BzLm92ZXJ3cml0ZSxcbiAgICAgICAgICBUeXBlOiBcIlNlY3VyZVN0cmluZ1wiLFxuICAgICAgICAgIEtleUlkOiB0aGlzLmNtay5hbGlhcy5rZXlJZFxuICAgICAgICAgIC8vIFRPRE86IEFkZCB0YWdzIHRvIHRoZSBwYXJhbWV0ZXJcbiAgICAgICAgfSxcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoXCJ1cGRhdGVTZWN1cmVTdHJpbmdQYXJhbWV0ZXJcIilcbiAgICAgIH0sXG4gICAgICBvbkRlbGV0ZToge1xuICAgICAgICBzZXJ2aWNlOiBcIkBhd3Mtc2RrL2NsaWVudC1zc21cIixcbiAgICAgICAgYWN0aW9uOiBcIkRlbGV0ZVBhcmFtZXRlclwiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgTmFtZTogcHJvcHMubmFtZVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFtcImttczpFbmNyeXB0XCJdLFxuICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgYGFybjphd3M6a21zOiR7cHJvcHMucmVnaW9ufToke3Byb3BzLmFjY291bnRJZH06a2V5LyR7dGhpcy5jbWsua2V5LmtleUlkfWBcbiAgICAgICAgICBdXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICBcInNzbTpEZWxldGVQYXJhbWV0ZXJcIixcbiAgICAgICAgICAgIFwic3NtOlB1dFBhcmFtZXRlclwiLFxuICAgICAgICAgICAgXCJzc206QWRkVGFnc1RvUmVzb3VyY2VcIixcbiAgICAgICAgICAgIFwibG9nczpEZWxldGVSZXRlbnRpb25Qb2xpY3lcIixcbiAgICAgICAgICAgIFwibG9nczpQdXRSZXRlbnRpb25Qb2xpY3lcIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICBgYXJuOmF3czpzc206JHtwcm9wcy5yZWdpb259OiR7cHJvcHMuYWNjb3VudElkfTpwYXJhbWV0ZXIke3Byb3BzLm5hbWV9YFxuICAgICAgICAgIF1cbiAgICAgICAgfSlcbiAgICAgIF0pXG4gICAgfSk7XG5cbiAgICBpZiAoIXByb3BzLmNtaykge1xuICAgICAgdGhpcy5wYXJhbWV0ZXIubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMuY21rKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { SecretValue } from "aws-cdk-lib";
2
+ import { Secret as CdkSecret, SecretStringGenerator } from "aws-cdk-lib/aws-secretsmanager";
3
+ import { Construct } from "constructs";
4
+ import { StackBuilder } from "../awsStack";
5
+ import { CustomerManagedKey } from "./kms";
6
+ import { KeyValue } from "../../../types";
7
+ interface SecretProps {
8
+ secretName: string;
9
+ secretObjectValue?: {
10
+ [key: string]: SecretValue;
11
+ };
12
+ secretStringValue?: string;
13
+ description?: string;
14
+ aliasName?: string;
15
+ generateSecretString?: SecretStringGenerator;
16
+ tags: KeyValue;
17
+ }
18
+ export declare class Secret extends Construct {
19
+ readonly secret: CdkSecret;
20
+ readonly secretsCustomerManagedKey: CustomerManagedKey;
21
+ constructor(scope: Construct, id: string, props: SecretProps);
22
+ static build(id: string, props: SecretProps): (sb: StackBuilder) => Construct;
23
+ }
24
+ export {};
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Secret = void 0;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const aws_secretsmanager_1 = require("aws-cdk-lib/aws-secretsmanager");
6
+ const constructs_1 = require("constructs");
7
+ const tagResource_1 = require("../../../utils/tagResource");
8
+ const kms_1 = require("./kms");
9
+ class Secret extends constructs_1.Construct {
10
+ constructor(scope, id, props) {
11
+ super(scope, id);
12
+ this.secretsCustomerManagedKey = new kms_1.CustomerManagedKey(this, `${id}CustomerManagedKey`, {
13
+ aliasName: `cmk/${id}`,
14
+ tags: props.tags
15
+ });
16
+ /**
17
+ * If a secretStringValue is provided, use it to create the secret.
18
+ */
19
+ const secretStringValue = props.secretStringValue
20
+ ? {
21
+ secretStringValue: aws_cdk_lib_1.SecretValue.unsafePlainText(props.secretStringValue || "")
22
+ }
23
+ : {};
24
+ /**
25
+ * If a generateSecretString is provided, use it to create the secret.
26
+ * If a secretStringValue is provided, ignore the generateSecretString.
27
+ */
28
+ const generateSecretString = !props.secretStringValue && props.generateSecretString
29
+ ? { generateSecretString: props.generateSecretString }
30
+ : {};
31
+ // Construct the base options for CdkSecret
32
+ const secretOptions = {
33
+ secretName: props.secretName,
34
+ secretObjectValue: props.secretObjectValue,
35
+ encryptionKey: this.secretsCustomerManagedKey.key,
36
+ description: props.description,
37
+ ...secretStringValue,
38
+ ...generateSecretString
39
+ };
40
+ this.secret = new aws_secretsmanager_1.Secret(this, `${id}Secret`, secretOptions);
41
+ (0, tagResource_1.default)(this.secret, props.tags);
42
+ }
43
+ static build(id, props) {
44
+ return (sb) => {
45
+ const newProps = {
46
+ ...props
47
+ };
48
+ return new this(sb.getStack(), id, newProps);
49
+ };
50
+ }
51
+ }
52
+ exports.Secret = Secret;
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc2VjcmV0cy9zZWNyZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTBDO0FBQzFDLHVFQUd3QztBQUN4QywyQ0FBdUM7QUFDdkMsNERBQXFEO0FBRXJELCtCQUEyQztBQWUzQyxNQUFhLE1BQU8sU0FBUSxzQkFBUztJQUluQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWtCO1FBQzFELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksd0JBQWtCLENBQ3JELElBQUksRUFDSixHQUFHLEVBQUUsb0JBQW9CLEVBQ3pCO1lBQ0UsU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3RCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtTQUNqQixDQUNGLENBQUM7UUFFRjs7V0FFRztRQUNILE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLGlCQUFpQjtZQUMvQyxDQUFDLENBQUM7Z0JBQ0UsaUJBQWlCLEVBQUUseUJBQVcsQ0FBQyxlQUFlLENBQzVDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQzlCO2FBQ0Y7WUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVA7OztXQUdHO1FBQ0gsTUFBTSxvQkFBb0IsR0FDeEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLElBQUksS0FBSyxDQUFDLG9CQUFvQjtZQUNwRCxDQUFDLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CLEVBQUU7WUFDdEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVULDJDQUEyQztRQUMzQyxNQUFNLGFBQWEsR0FBRztZQUNwQixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtZQUMxQyxhQUFhLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUc7WUFDakQsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLEdBQUcsaUJBQWlCO1lBQ3BCLEdBQUcsb0JBQW9CO1NBQ3hCLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksMkJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUVoRSxJQUFBLHFCQUFXLEVBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQ1YsRUFBVSxFQUNWLEtBQWtCO1FBRWxCLE9BQU8sQ0FBQyxFQUFnQixFQUFFLEVBQUU7WUFDMUIsTUFBTSxRQUFRLEdBQWdCO2dCQUM1QixHQUFHLEtBQUs7YUFDVCxDQUFDO1lBQ0YsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTlERCx3QkE4REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWNyZXRWYWx1ZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgU2VjcmV0IGFzIENka1NlY3JldCxcbiAgU2VjcmV0U3RyaW5nR2VuZXJhdG9yXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgdGFnUmVzb3VyY2UgZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3RhZ1Jlc291cmNlXCI7XG5pbXBvcnQgeyBTdGFja0J1aWxkZXIgfSBmcm9tIFwiLi4vYXdzU3RhY2tcIjtcbmltcG9ydCB7IEN1c3RvbWVyTWFuYWdlZEtleSB9IGZyb20gXCIuL2ttc1wiO1xuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vdHlwZXNcIjtcblxuaW50ZXJmYWNlIFNlY3JldFByb3BzIHtcbiAgc2VjcmV0TmFtZTogc3RyaW5nO1xuICBzZWNyZXRPYmplY3RWYWx1ZT86IHtcbiAgICBba2V5OiBzdHJpbmddOiBTZWNyZXRWYWx1ZTtcbiAgfTtcbiAgc2VjcmV0U3RyaW5nVmFsdWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBhbGlhc05hbWU/OiBzdHJpbmc7XG4gIGdlbmVyYXRlU2VjcmV0U3RyaW5nPzogU2VjcmV0U3RyaW5nR2VuZXJhdG9yO1xuICB0YWdzOiBLZXlWYWx1ZTtcbn1cblxuZXhwb3J0IGNsYXNzIFNlY3JldCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBzZWNyZXQ6IENka1NlY3JldDtcbiAgcHVibGljIHJlYWRvbmx5IHNlY3JldHNDdXN0b21lck1hbmFnZWRLZXk6IEN1c3RvbWVyTWFuYWdlZEtleTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VjcmV0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5zZWNyZXRzQ3VzdG9tZXJNYW5hZ2VkS2V5ID0gbmV3IEN1c3RvbWVyTWFuYWdlZEtleShcbiAgICAgIHRoaXMsXG4gICAgICBgJHtpZH1DdXN0b21lck1hbmFnZWRLZXlgLFxuICAgICAge1xuICAgICAgICBhbGlhc05hbWU6IGBjbWsvJHtpZH1gLFxuICAgICAgICB0YWdzOiBwcm9wcy50YWdzXG4gICAgICB9XG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIElmIGEgc2VjcmV0U3RyaW5nVmFsdWUgaXMgcHJvdmlkZWQsIHVzZSBpdCB0byBjcmVhdGUgdGhlIHNlY3JldC5cbiAgICAgKi9cbiAgICBjb25zdCBzZWNyZXRTdHJpbmdWYWx1ZSA9IHByb3BzLnNlY3JldFN0cmluZ1ZhbHVlXG4gICAgICA/IHtcbiAgICAgICAgICBzZWNyZXRTdHJpbmdWYWx1ZTogU2VjcmV0VmFsdWUudW5zYWZlUGxhaW5UZXh0KFxuICAgICAgICAgICAgcHJvcHMuc2VjcmV0U3RyaW5nVmFsdWUgfHwgXCJcIlxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgOiB7fTtcblxuICAgIC8qKlxuICAgICAqIElmIGEgZ2VuZXJhdGVTZWNyZXRTdHJpbmcgaXMgcHJvdmlkZWQsIHVzZSBpdCB0byBjcmVhdGUgdGhlIHNlY3JldC5cbiAgICAgKiBJZiBhIHNlY3JldFN0cmluZ1ZhbHVlIGlzIHByb3ZpZGVkLCBpZ25vcmUgdGhlIGdlbmVyYXRlU2VjcmV0U3RyaW5nLlxuICAgICAqL1xuICAgIGNvbnN0IGdlbmVyYXRlU2VjcmV0U3RyaW5nID1cbiAgICAgICFwcm9wcy5zZWNyZXRTdHJpbmdWYWx1ZSAmJiBwcm9wcy5nZW5lcmF0ZVNlY3JldFN0cmluZ1xuICAgICAgICA/IHsgZ2VuZXJhdGVTZWNyZXRTdHJpbmc6IHByb3BzLmdlbmVyYXRlU2VjcmV0U3RyaW5nIH1cbiAgICAgICAgOiB7fTtcblxuICAgIC8vIENvbnN0cnVjdCB0aGUgYmFzZSBvcHRpb25zIGZvciBDZGtTZWNyZXRcbiAgICBjb25zdCBzZWNyZXRPcHRpb25zID0ge1xuICAgICAgc2VjcmV0TmFtZTogcHJvcHMuc2VjcmV0TmFtZSxcbiAgICAgIHNlY3JldE9iamVjdFZhbHVlOiBwcm9wcy5zZWNyZXRPYmplY3RWYWx1ZSxcbiAgICAgIGVuY3J5cHRpb25LZXk6IHRoaXMuc2VjcmV0c0N1c3RvbWVyTWFuYWdlZEtleS5rZXksXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAuLi5zZWNyZXRTdHJpbmdWYWx1ZSxcbiAgICAgIC4uLmdlbmVyYXRlU2VjcmV0U3RyaW5nXG4gICAgfTtcblxuICAgIHRoaXMuc2VjcmV0ID0gbmV3IENka1NlY3JldCh0aGlzLCBgJHtpZH1TZWNyZXRgLCBzZWNyZXRPcHRpb25zKTtcblxuICAgIHRhZ1Jlc291cmNlKHRoaXMuc2VjcmV0LCBwcm9wcy50YWdzKTtcbiAgfVxuXG4gIHN0YXRpYyBidWlsZChcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBTZWNyZXRQcm9wc1xuICApOiAoc2I6IFN0YWNrQnVpbGRlcikgPT4gQ29uc3RydWN0IHtcbiAgICByZXR1cm4gKHNiOiBTdGFja0J1aWxkZXIpID0+IHtcbiAgICAgIGNvbnN0IG5ld1Byb3BzOiBTZWNyZXRQcm9wcyA9IHtcbiAgICAgICAgLi4ucHJvcHNcbiAgICAgIH07XG4gICAgICByZXR1cm4gbmV3IHRoaXMoc2IuZ2V0U3RhY2soKSwgaWQsIG5ld1Byb3BzKTtcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { Construct } from "constructs";
2
+ import { Repository, RepositoryProps } from "aws-cdk-lib/aws-ecr";
3
+ import { StackBuilder } from "../awsStack";
4
+ interface EcrProps {
5
+ }
6
+ export declare class Ecr extends Repository {
7
+ private outputs;
8
+ constructor(scope: Construct, id: string, props?: EcrProps);
9
+ static getRepositoryProps(props?: EcrProps): RepositoryProps;
10
+ static build(id: string, props?: EcrProps): (scope: StackBuilder) => Ecr;
11
+ }
12
+ export {};
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Ecr = void 0;
4
+ const aws_ecr_1 = require("aws-cdk-lib/aws-ecr");
5
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
6
+ class Ecr extends aws_ecr_1.Repository {
7
+ constructor(scope, id, props) {
8
+ super(scope, id, Ecr.getRepositoryProps(props));
9
+ this.outputs = [];
10
+ this.outputs.push(new aws_cdk_lib_1.CfnOutput(this, "ecrRepository", {
11
+ key: "RepositoryName",
12
+ value: this.repositoryName,
13
+ exportName: `${id}RepositoryName`
14
+ }));
15
+ }
16
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
+ static getRepositoryProps(props) {
18
+ // todo: lifeCycleRules
19
+ // todo: Encryption & EncryptionKey (default is AWS managed KMS key)
20
+ return {
21
+ imageScanOnPush: true,
22
+ imageTagMutability: aws_ecr_1.TagMutability.MUTABLE,
23
+ removalPolicy: aws_cdk_lib_1.RemovalPolicy.RETAIN
24
+ };
25
+ }
26
+ static build(id, props) {
27
+ return (scope) => new Ecr(scope.getStack(), id, props);
28
+ }
29
+ }
30
+ exports.Ecr = Ecr;
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc3RvcmFnZS9lY3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaURBSTZCO0FBQzdCLDZDQUF1RDtBQU12RCxNQUFhLEdBQUksU0FBUSxvQkFBVTtJQUdqQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdCO1FBQ3hELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBSDFDLFlBQU8sR0FBZ0IsRUFBRSxDQUFDO1FBS2hDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ25DLEdBQUcsRUFBRSxnQkFBZ0I7WUFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQzFCLFVBQVUsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCO1NBQ2xDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELDZEQUE2RDtJQUM3RCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBZ0I7UUFDeEMsdUJBQXVCO1FBQ3ZCLG9FQUFvRTtRQUNwRSxPQUFPO1lBQ0wsZUFBZSxFQUFFLElBQUk7WUFDckIsa0JBQWtCLEVBQUUsdUJBQWEsQ0FBQyxPQUFPO1lBQ3pDLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE1BQU07U0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQVUsRUFBRSxLQUFnQjtRQUN2QyxPQUFPLENBQUMsS0FBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RSxDQUFDO0NBQ0Y7QUE3QkQsa0JBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIFJlcG9zaXRvcnksXG4gIFJlcG9zaXRvcnlQcm9wcyxcbiAgVGFnTXV0YWJpbGl0eVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjclwiO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSwgQ2ZuT3V0cHV0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbmltcG9ydCB7IFN0YWNrQnVpbGRlciB9IGZyb20gXCIuLi9hd3NTdGFja1wiO1xuXG5pbnRlcmZhY2UgRWNyUHJvcHMge31cblxuZXhwb3J0IGNsYXNzIEVjciBleHRlbmRzIFJlcG9zaXRvcnkge1xuICBwcml2YXRlIG91dHB1dHM6IENmbk91dHB1dFtdID0gW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBFY3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgRWNyLmdldFJlcG9zaXRvcnlQcm9wcyhwcm9wcykpO1xuXG4gICAgdGhpcy5vdXRwdXRzLnB1c2goXG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiZWNyUmVwb3NpdG9yeVwiLCB7XG4gICAgICAgIGtleTogXCJSZXBvc2l0b3J5TmFtZVwiLFxuICAgICAgICB2YWx1ZTogdGhpcy5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgZXhwb3J0TmFtZTogYCR7aWR9UmVwb3NpdG9yeU5hbWVgXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHN0YXRpYyBnZXRSZXBvc2l0b3J5UHJvcHMocHJvcHM/OiBFY3JQcm9wcyk6IFJlcG9zaXRvcnlQcm9wcyB7XG4gICAgLy8gdG9kbzogbGlmZUN5Y2xlUnVsZXNcbiAgICAvLyB0b2RvOiBFbmNyeXB0aW9uICYgRW5jcnlwdGlvbktleSAoZGVmYXVsdCBpcyBBV1MgbWFuYWdlZCBLTVMga2V5KVxuICAgIHJldHVybiB7XG4gICAgICBpbWFnZVNjYW5PblB1c2g6IHRydWUsXG4gICAgICBpbWFnZVRhZ011dGFiaWxpdHk6IFRhZ011dGFiaWxpdHkuTVVUQUJMRSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBidWlsZChpZDogc3RyaW5nLCBwcm9wcz86IEVjclByb3BzKTogKHNjb3BlOiBTdGFja0J1aWxkZXIpID0+IEVjciB7XG4gICAgcmV0dXJuIChzY29wZTogU3RhY2tCdWlsZGVyKSA9PiBuZXcgRWNyKHNjb3BlLmdldFN0YWNrKCksIGlkLCBwcm9wcyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from "./s3";
2
+ export * from "./ecr";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./s3"), exports);
18
+ __exportStar(require("./ecr"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9zdG9yYWdlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBcUI7QUFDckIsd0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vczNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VjclwiO1xuIl19
@@ -0,0 +1,11 @@
1
+ import { Bucket, BucketProps } from "aws-cdk-lib/aws-s3";
2
+ import { Construct } from "constructs";
3
+ export declare class S3Bucket extends Bucket {
4
+ constructor(scope: Construct, id: string, props?: BucketProps);
5
+ }
6
+ export declare class S3WebsiteBucket extends S3Bucket {
7
+ constructor(scope: Construct, id: string, props?: BucketProps);
8
+ }
9
+ export declare class S3PublicReadBucket extends S3Bucket {
10
+ constructor(scope: Construct, id: string, props?: BucketProps);
11
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.S3PublicReadBucket = exports.S3WebsiteBucket = exports.S3Bucket = void 0;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const aws_s3_1 = require("aws-cdk-lib/aws-s3");
6
+ class S3Bucket extends aws_s3_1.Bucket {
7
+ constructor(scope, id, props) {
8
+ super(scope, id, {
9
+ ...props,
10
+ autoDeleteObjects: true,
11
+ enforceSSL: true,
12
+ removalPolicy: props?.removalPolicy || aws_cdk_lib_1.RemovalPolicy.DESTROY,
13
+ versioned: true
14
+ });
15
+ }
16
+ }
17
+ exports.S3Bucket = S3Bucket;
18
+ class S3WebsiteBucket extends S3Bucket {
19
+ constructor(scope, id, props) {
20
+ super(scope, id, {
21
+ ...props,
22
+ websiteErrorDocument: "error.html",
23
+ websiteIndexDocument: "index.html",
24
+ publicReadAccess: true
25
+ });
26
+ }
27
+ }
28
+ exports.S3WebsiteBucket = S3WebsiteBucket;
29
+ class S3PublicReadBucket extends S3Bucket {
30
+ constructor(scope, id, props) {
31
+ super(scope, id, {
32
+ ...props,
33
+ publicReadAccess: true,
34
+ blockPublicAccess: new aws_s3_1.BlockPublicAccess({
35
+ blockPublicAcls: false,
36
+ blockPublicPolicy: false,
37
+ ignorePublicAcls: false,
38
+ restrictPublicBuckets: false
39
+ })
40
+ });
41
+ }
42
+ }
43
+ exports.S3PublicReadBucket = S3PublicReadBucket;
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9zdG9yYWdlL3MzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUE0QztBQUM1QywrQ0FBNEU7QUFHNUUsTUFBYSxRQUFTLFNBQVEsZUFBTTtJQUNsQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1CO1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixVQUFVLEVBQUUsSUFBSTtZQUNoQixhQUFhLEVBQUUsS0FBSyxFQUFFLGFBQWEsSUFBSSwyQkFBYSxDQUFDLE9BQU87WUFDNUQsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBVkQsNEJBVUM7QUFFRCxNQUFhLGVBQWdCLFNBQVEsUUFBUTtJQUMzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1CO1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1Isb0JBQW9CLEVBQUUsWUFBWTtZQUNsQyxvQkFBb0IsRUFBRSxZQUFZO1lBQ2xDLGdCQUFnQixFQUFFLElBQUk7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBVEQsMENBU0M7QUFFRCxNQUFhLGtCQUFtQixTQUFRLFFBQVE7SUFDOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFtQjtRQUMzRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsaUJBQWlCLEVBQUUsSUFBSSwwQkFBaUIsQ0FBQztnQkFDdkMsZUFBZSxFQUFFLEtBQUs7Z0JBQ3RCLGlCQUFpQixFQUFFLEtBQUs7Z0JBQ3hCLGdCQUFnQixFQUFFLEtBQUs7Z0JBQ3ZCLHFCQUFxQixFQUFFLEtBQUs7YUFDN0IsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWJELGdEQWFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQmxvY2tQdWJsaWNBY2Nlc3MsIEJ1Y2tldCwgQnVja2V0UHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgY2xhc3MgUzNCdWNrZXQgZXh0ZW5kcyBCdWNrZXQge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IEJ1Y2tldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgICAgZW5mb3JjZVNTTDogdHJ1ZSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IHByb3BzPy5yZW1vdmFsUG9saWN5IHx8IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIHZlcnNpb25lZDogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTM1dlYnNpdGVCdWNrZXQgZXh0ZW5kcyBTM0J1Y2tldCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQnVja2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgd2Vic2l0ZUVycm9yRG9jdW1lbnQ6IFwiZXJyb3IuaHRtbFwiLFxuICAgICAgd2Vic2l0ZUluZGV4RG9jdW1lbnQ6IFwiaW5kZXguaHRtbFwiLFxuICAgICAgcHVibGljUmVhZEFjY2VzczogdHJ1ZVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTM1B1YmxpY1JlYWRCdWNrZXQgZXh0ZW5kcyBTM0J1Y2tldCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQnVja2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcHVibGljUmVhZEFjY2VzczogdHJ1ZSxcbiAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBuZXcgQmxvY2tQdWJsaWNBY2Nlc3Moe1xuICAgICAgICBibG9ja1B1YmxpY0FjbHM6IGZhbHNlLFxuICAgICAgICBibG9ja1B1YmxpY1BvbGljeTogZmFsc2UsXG4gICAgICAgIGlnbm9yZVB1YmxpY0FjbHM6IGZhbHNlLFxuICAgICAgICByZXN0cmljdFB1YmxpY0J1Y2tldHM6IGZhbHNlXG4gICAgICB9KVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ import { Stack } from "aws-cdk-lib";
2
+ import { Project, ProjectProps } from "aws-cdk-lib/aws-codebuild";
3
+ import { Construct } from "constructs";
4
+ import { KeyValue } from "../../../types";
5
+ interface CodeBuildProps extends ProjectProps {
6
+ tags: KeyValue;
7
+ }
8
+ export declare class CodeBuildProject extends Construct {
9
+ readonly project: Project;
10
+ constructor(scope: Construct, id: string, props: CodeBuildProps);
11
+ }
12
+ export declare class CodeBuildProjectStack extends Stack {
13
+ constructor(scope: Construct, id: string, props: CodeBuildProps);
14
+ }
15
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodeBuildProjectStack = exports.CodeBuildProject = void 0;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const aws_codebuild_1 = require("aws-cdk-lib/aws-codebuild");
6
+ const constructs_1 = require("constructs");
7
+ const tagResource_1 = require("../../../utils/tagResource");
8
+ class CodeBuildProject extends constructs_1.Construct {
9
+ constructor(scope, id, props) {
10
+ super(scope, id);
11
+ this.project = new aws_codebuild_1.Project(this, id, {
12
+ ...props,
13
+ description: props.description || `Code build project for ${id}`
14
+ });
15
+ (0, tagResource_1.default)(this.project, props.tags);
16
+ }
17
+ }
18
+ exports.CodeBuildProject = CodeBuildProject;
19
+ class CodeBuildProjectStack extends aws_cdk_lib_1.Stack {
20
+ constructor(scope, id, props) {
21
+ super(scope, id);
22
+ new CodeBuildProject(this, id, {
23
+ ...props
24
+ });
25
+ }
26
+ }
27
+ exports.CodeBuildProjectStack = CodeBuildProjectStack;
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZUJ1aWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvdXRpbGl0aWVzL2NvZGVCdWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBb0M7QUFDcEMsNkRBQWtFO0FBQ2xFLDJDQUF1QztBQUN2Qyw0REFBcUQ7QUFPckQsTUFBYSxnQkFBaUIsU0FBUSxzQkFBUztJQUc3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFCO1FBQzdELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLHVCQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUNuQyxHQUFHLEtBQUs7WUFDUixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSwwQkFBMEIsRUFBRSxFQUFFO1NBQ2pFLENBQUMsQ0FBQztRQUNILElBQUEscUJBQVcsRUFBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUFaRCw0Q0FZQztBQUVELE1BQWEscUJBQXNCLFNBQVEsbUJBQUs7SUFDOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUM3QixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFSRCxzREFRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBQcm9qZWN0LCBQcm9qZWN0UHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZFwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB0YWdSZXNvdXJjZSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvdGFnUmVzb3VyY2VcIjtcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSBcIi4uLy4uLy4uL3R5cGVzXCI7XG5cbmludGVyZmFjZSBDb2RlQnVpbGRQcm9wcyBleHRlbmRzIFByb2plY3RQcm9wcyB7XG4gIHRhZ3M6IEtleVZhbHVlO1xufVxuXG5leHBvcnQgY2xhc3MgQ29kZUJ1aWxkUHJvamVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBQcm9qZWN0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDb2RlQnVpbGRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnByb2plY3QgPSBuZXcgUHJvamVjdCh0aGlzLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24gfHwgYENvZGUgYnVpbGQgcHJvamVjdCBmb3IgJHtpZH1gXG4gICAgfSk7XG4gICAgdGFnUmVzb3VyY2UodGhpcy5wcm9qZWN0LCBwcm9wcy50YWdzKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29kZUJ1aWxkUHJvamVjdFN0YWNrIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29kZUJ1aWxkUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IENvZGVCdWlsZFByb2plY3QodGhpcywgaWQsIHtcbiAgICAgIC4uLnByb3BzXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -9,7 +9,7 @@ const lambda_1 = require("../compute/lambda");
9
9
  class CustomResource extends constructs_1.Construct {
10
10
  constructor(scope, id, props) {
11
11
  super(scope, id);
12
- const lambdaFunction = new lambda_1.singletonFunction(this, `${id}Lambda`, {
12
+ const lambdaFunction = new lambda_1.SingletonFunction(this, `${id}Lambda`, {
13
13
  code: aws_lambda_1.Code.fromAsset(props.codePath, props.assetOptions),
14
14
  handler: `${id}.handler`,
15
15
  runtime: props.runtime,
@@ -29,4 +29,4 @@ class CustomResource extends constructs_1.Construct {
29
29
  }
30
30
  }
31
31
  exports.CustomResource = CustomResource;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tUmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvY3VzdG9tUmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVGO0FBQ3ZGLG1FQUF3RDtBQUV4RCx1REFBdUQ7QUFDdkQsMkNBQXVDO0FBRXZDLDhDQUFzRDtBQWdCdEQsTUFBYSxjQUFlLFNBQVEsc0JBQVM7SUFHM0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sY0FBYyxHQUFHLElBQUksMEJBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUU7WUFDOUQsSUFBSSxFQUFFLGlCQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUN4RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVU7WUFDeEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3RCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxHQUFHLEVBQUUsU0FBUztZQUM1RCxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWUsSUFBSSxHQUFHLEVBQUUseUJBQXlCO1lBQ3hFLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtTQUNqQyxDQUNGLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxJQUFJLDJCQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7WUFDakQsY0FBYyxFQUFFLGNBQWM7WUFDOUIsWUFBWSxFQUFFLHNCQUFRLENBQUMsYUFBYSxDQUFDLFFBQVE7U0FDaEQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsSUFBSSw0QkFBYyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1lBQ3ZELFlBQVksRUFBRSxRQUFRLENBQUMsWUFBWTtZQUNuQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7U0FDL0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pELENBQUM7Q0FDRjtBQTVCRCx3Q0E0QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21SZXNvdXJjZSBhcyBjdXN0b21SZXNvdXJjZSwgYXdzX2xvZ3MsIEFzc2V0T3B0aW9ucyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgUG9saWN5RG9jdW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ29kZSwgUnVudGltZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgeyBzaW5nbGV0b25GdW5jdGlvbiB9IGZyb20gXCIuLi9jb21wdXRlL2xhbWJkYVwiO1xuXG5cbmludGVyZmFjZSBDdXN0b21SZXNvdXJjZVByb3BzIHtcbiAgcnVudGltZTogUnVudGltZTtcbiAgcm9sZURlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsYW1iZGFEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgaW5saW5lUG9saWN5OiB7XG4gICAgW25hbWU6IHN0cmluZ106IFBvbGljeURvY3VtZW50O1xuICB9O1xuICBwcm9wZXJ0aWVzPzoge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZzsgLy8gVXNlZCB0byBiZSBgW2tleTogc3RyaW5nXTogYW55YCwgdGhpcyBjb3VsZCBicmVha1xuICB9O1xuICBjb2RlUGF0aDogc3RyaW5nO1xuICBhc3NldE9wdGlvbnM/OiBBc3NldE9wdGlvbnNcbn1cbmV4cG9ydCBjbGFzcyBDdXN0b21SZXNvdXJjZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSByZXNwb25zZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDdXN0b21SZXNvdXJjZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGxhbWJkYUZ1bmN0aW9uID0gbmV3IHNpbmdsZXRvbkZ1bmN0aW9uKHRoaXMsIGAke2lkfUxhbWJkYWAsIHtcbiAgICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQocHJvcHMuY29kZVBhdGgsIHByb3BzLmFzc2V0T3B0aW9ucyksXG4gICAgICAgIGhhbmRsZXI6IGAke2lkfS5oYW5kbGVyYCxcbiAgICAgICAgcnVudGltZTogcHJvcHMucnVudGltZSxcbiAgICAgICAgbGFtYmRhRGVzY3JpcHRpb246IHByb3BzLmxhbWJkYURlc2NyaXB0aW9uIHx8IGAke2lkfSBsYW1iZGFgLFxuICAgICAgICByb2xlRGVzY3JpcHRpb246IHByb3BzLnJvbGVEZXNjcmlwdGlvbiB8fCBgJHtpZH0gY3VzdG9tIHJlc291cmNlIGxhbWJkYWAsXG4gICAgICAgIGlubGluZVBvbGljeTogcHJvcHMuaW5saW5lUG9saWN5XG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFByb3ZpZGVyKHRoaXMsIGAke2lkfVByb3ZpZGVyYCwge1xuICAgICAgICBvbkV2ZW50SGFuZGxlcjogbGFtYmRhRnVuY3Rpb24sXG4gICAgICAgIGxvZ1JldGVudGlvbjogYXdzX2xvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfWUVBUlxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgY3VzdG9tUmVzb3VyY2UodGhpcywgYCR7aWR9UmVzb3VyY2VgLCB7XG4gICAgICAgIHNlcnZpY2VUb2tlbjogcHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgICBwcm9wZXJ0aWVzOiBwcm9wcy5wcm9wZXJ0aWVzXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc3BvbnNlID0gcmVzb3VyY2UuZ2V0QXR0KFwiUmVzcG9uc2VcIikudG9TdHJpbmcoKTtcbiAgfVxufVxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tUmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvY3VzdG9tUmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBSXFCO0FBQ3JCLG1FQUF3RDtBQUV4RCx1REFBdUQ7QUFDdkQsMkNBQXVDO0FBRXZDLDhDQUFzRDtBQWV0RCxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQUczQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxjQUFjLEdBQUcsSUFBSSwwQkFBaUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRTtZQUNoRSxJQUFJLEVBQUUsaUJBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3hELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVTtZQUN4QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEdBQUcsRUFBRSxTQUFTO1lBQzVELGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZSxJQUFJLEdBQUcsRUFBRSx5QkFBeUI7WUFDeEUsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1NBQ2pDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLElBQUksMkJBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRTtZQUNuRCxjQUFjLEVBQUUsY0FBYztZQUM5QixZQUFZLEVBQUUsc0JBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUTtTQUM5QyxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7WUFDekQsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQ25DLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtTQUM3QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBM0JELHdDQTJCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEN1c3RvbVJlc291cmNlIGFzIGN1c3RvbVJlc291cmNlLFxuICBhd3NfbG9ncyxcbiAgQXNzZXRPcHRpb25zXG59IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgUG9saWN5RG9jdW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ29kZSwgUnVudGltZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgeyBTaW5nbGV0b25GdW5jdGlvbiB9IGZyb20gXCIuLi9jb21wdXRlL2xhbWJkYVwiO1xuXG5pbnRlcmZhY2UgQ3VzdG9tUmVzb3VyY2VQcm9wcyB7XG4gIHJ1bnRpbWU6IFJ1bnRpbWU7XG4gIHJvbGVEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgbGFtYmRhRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGlubGluZVBvbGljeToge1xuICAgIFtuYW1lOiBzdHJpbmddOiBQb2xpY3lEb2N1bWVudDtcbiAgfTtcbiAgcHJvcGVydGllcz86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7IC8vIFVzZWQgdG8gYmUgYFtrZXk6IHN0cmluZ106IGFueWAsIHRoaXMgY291bGQgYnJlYWtcbiAgfTtcbiAgY29kZVBhdGg6IHN0cmluZztcbiAgYXNzZXRPcHRpb25zPzogQXNzZXRPcHRpb25zO1xufVxuZXhwb3J0IGNsYXNzIEN1c3RvbVJlc291cmNlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHJlc3BvbnNlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEN1c3RvbVJlc291cmNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgbGFtYmRhRnVuY3Rpb24gPSBuZXcgU2luZ2xldG9uRnVuY3Rpb24odGhpcywgYCR7aWR9TGFtYmRhYCwge1xuICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQocHJvcHMuY29kZVBhdGgsIHByb3BzLmFzc2V0T3B0aW9ucyksXG4gICAgICBoYW5kbGVyOiBgJHtpZH0uaGFuZGxlcmAsXG4gICAgICBydW50aW1lOiBwcm9wcy5ydW50aW1lLFxuICAgICAgbGFtYmRhRGVzY3JpcHRpb246IHByb3BzLmxhbWJkYURlc2NyaXB0aW9uIHx8IGAke2lkfSBsYW1iZGFgLFxuICAgICAgcm9sZURlc2NyaXB0aW9uOiBwcm9wcy5yb2xlRGVzY3JpcHRpb24gfHwgYCR7aWR9IGN1c3RvbSByZXNvdXJjZSBsYW1iZGFgLFxuICAgICAgaW5saW5lUG9saWN5OiBwcm9wcy5pbmxpbmVQb2xpY3lcbiAgICB9KTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFByb3ZpZGVyKHRoaXMsIGAke2lkfVByb3ZpZGVyYCwge1xuICAgICAgb25FdmVudEhhbmRsZXI6IGxhbWJkYUZ1bmN0aW9uLFxuICAgICAgbG9nUmV0ZW50aW9uOiBhd3NfbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9ZRUFSXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBjdXN0b21SZXNvdXJjZSh0aGlzLCBgJHtpZH1SZXNvdXJjZWAsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogcHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczogcHJvcHMucHJvcGVydGllc1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZXNwb25zZSA9IHJlc291cmNlLmdldEF0dChcIlJlc3BvbnNlXCIpLnRvU3RyaW5nKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export interface KeyValue {
2
+ [key: string]: string;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgS2V5VmFsdWUge1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ export declare function capitalizeString(string: string): string;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.capitalizeString = void 0;
4
+ function capitalizeString(string) {
5
+ return String(string).charAt(0).toUpperCase() + String(string).slice(1);
6
+ }
7
+ exports.capitalizeString = capitalizeString;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwaXRhbGl6ZVN0cmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlscy9jYXBpdGFsaXplU3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQWdCLGdCQUFnQixDQUFDLE1BQWM7SUFDN0MsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUZELDRDQUVDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxpemVTdHJpbmcoc3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gU3RyaW5nKHN0cmluZykuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBTdHJpbmcoc3RyaW5nKS5zbGljZSgxKTtcbn1cbiJdfQ==
@@ -1 +1 @@
1
- export default function getAccountId(environment: string): null | string;
1
+ export default function getAccountId(environment: string): string;
@@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const getConfig_1 = require("./getConfig");
4
4
  function getAccountId(environment) {
5
5
  const config = (0, getConfig_1.getEnviornmentConfig)(environment);
6
+ // TODO: need to fix how we handle this in the VPC module
6
7
  if (!config || !config.account)
7
- return null;
8
+ return "error";
8
9
  return config.account;
9
10
  }
10
11
  exports.default = getAccountId;
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QWNjb3VudElkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL2dldEFjY291bnRJZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUFtRDtBQUVuRCxTQUF3QixZQUFZLENBQUMsV0FBbUI7SUFDdEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxnQ0FBb0IsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87UUFBRSxPQUFPLElBQUksQ0FBQztJQUU1QyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQztBQUxELCtCQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0RW52aW9ybm1lbnRDb25maWcgfSBmcm9tIFwiLi9nZXRDb25maWdcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0QWNjb3VudElkKGVudmlyb25tZW50OiBzdHJpbmcpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgY29uZmlnID0gZ2V0RW52aW9ybm1lbnRDb25maWcoZW52aXJvbm1lbnQpO1xuICBpZiAoIWNvbmZpZyB8fCAhY29uZmlnLmFjY291bnQpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiBjb25maWcuYWNjb3VudDtcbn1cbiJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QWNjb3VudElkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL2dldEFjY291bnRJZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUFtRDtBQUVuRCxTQUF3QixZQUFZLENBQUMsV0FBbUI7SUFDdEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxnQ0FBb0IsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUNqRCx5REFBeUQ7SUFDekQsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1FBQUUsT0FBTyxPQUFPLENBQUM7SUFFL0MsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUM7QUFORCwrQkFNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEVudmlvcm5tZW50Q29uZmlnIH0gZnJvbSBcIi4vZ2V0Q29uZmlnXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEFjY291bnRJZChlbnZpcm9ubWVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgY29uZmlnID0gZ2V0RW52aW9ybm1lbnRDb25maWcoZW52aXJvbm1lbnQpO1xuICAvLyBUT0RPOiBuZWVkIHRvIGZpeCBob3cgd2UgaGFuZGxlIHRoaXMgaW4gdGhlIFZQQyBtb2R1bGVcbiAgaWYgKCFjb25maWcgfHwgIWNvbmZpZy5hY2NvdW50KSByZXR1cm4gXCJlcnJvclwiO1xuXG4gIHJldHVybiBjb25maWcuYWNjb3VudDtcbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export default class CidrBlock {
2
+ private cidrBlock;
3
+ private configFile;
4
+ constructor();
5
+ writeState(): void;
6
+ getCidrBlock(): string;
7
+ updateState(cidrBlock: string, status: boolean): void;
8
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs = require("fs");
4
+ class CidrBlock {
5
+ constructor() {
6
+ this.configFile = ".fjall/.cidr-config.json";
7
+ // Ensure .fjall directory exists
8
+ fs.mkdirSync(".fjall", { recursive: true });
9
+ // Import config, or create it if it doesn't exist
10
+ if (fs.existsSync(this.configFile)) {
11
+ const configString = fs.readFileSync(this.configFile, "utf-8");
12
+ this.cidrBlock = JSON.parse(configString);
13
+ }
14
+ else {
15
+ this.cidrBlock = {};
16
+ for (let i = 1; i <= 255; i++) {
17
+ this.cidrBlock[`${i}.0.0.0/8`] = true;
18
+ }
19
+ const configString = JSON.stringify(this.cidrBlock, null, 2);
20
+ fs.writeFileSync(this.configFile, configString);
21
+ }
22
+ }
23
+ writeState() {
24
+ // JSON-ify config and write to file
25
+ const configString = JSON.stringify(this.cidrBlock, null, 2);
26
+ fs.writeFileSync(this.configFile, configString);
27
+ }
28
+ getCidrBlock() {
29
+ for (const key in this.cidrBlock) {
30
+ if (this.cidrBlock[key]) {
31
+ return key;
32
+ }
33
+ }
34
+ return "0.0.0.0/8";
35
+ }
36
+ updateState(cidrBlock, status) {
37
+ this.cidrBlock[cidrBlock] = status;
38
+ this.writeState();
39
+ }
40
+ }
41
+ exports.default = CidrBlock;
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2lkci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlscy9nZXRDaWRyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUJBQXlCO0FBTXpCLE1BQXFCLFNBQVM7SUFJNUI7UUFGUSxlQUFVLEdBQUcsMEJBQTBCLENBQUM7UUFHOUMsaUNBQWlDO1FBQ2pDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFNUMsa0RBQWtEO1FBQ2xELElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbEMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMzQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQ3ZDO1lBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3RCxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLG9DQUFvQztRQUNwQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdELEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsWUFBWTtRQUNWLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZCLE9BQU8sR0FBRyxDQUFDO2FBQ1o7U0FDRjtRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXLENBQUMsU0FBaUIsRUFBRSxNQUFlO1FBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUF6Q0QsNEJBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5cbmludGVyZmFjZSBjaWRyVGFibGUge1xuICBba2V5OiBzdHJpbmddOiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDaWRyQmxvY2sge1xuICBwcml2YXRlIGNpZHJCbG9jazogY2lkclRhYmxlO1xuICBwcml2YXRlIGNvbmZpZ0ZpbGUgPSBcIi5mamFsbC8uY2lkci1jb25maWcuanNvblwiO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIEVuc3VyZSAuZmphbGwgZGlyZWN0b3J5IGV4aXN0c1xuICAgIGZzLm1rZGlyU3luYyhcIi5mamFsbFwiLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIC8vIEltcG9ydCBjb25maWcsIG9yIGNyZWF0ZSBpdCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgaWYgKGZzLmV4aXN0c1N5bmModGhpcy5jb25maWdGaWxlKSkge1xuICAgICAgY29uc3QgY29uZmlnU3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHRoaXMuY29uZmlnRmlsZSwgXCJ1dGYtOFwiKTtcbiAgICAgIHRoaXMuY2lkckJsb2NrID0gSlNPTi5wYXJzZShjb25maWdTdHJpbmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNpZHJCbG9jayA9IHt9O1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gMjU1OyBpKyspIHtcbiAgICAgICAgdGhpcy5jaWRyQmxvY2tbYCR7aX0uMC4wLjAvOGBdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvbmZpZ1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuY2lkckJsb2NrLCBudWxsLCAyKTtcbiAgICAgIGZzLndyaXRlRmlsZVN5bmModGhpcy5jb25maWdGaWxlLCBjb25maWdTdHJpbmcpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlU3RhdGUoKSB7XG4gICAgLy8gSlNPTi1pZnkgY29uZmlnIGFuZCB3cml0ZSB0byBmaWxlXG4gICAgY29uc3QgY29uZmlnU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGhpcy5jaWRyQmxvY2ssIG51bGwsIDIpO1xuICAgIGZzLndyaXRlRmlsZVN5bmModGhpcy5jb25maWdGaWxlLCBjb25maWdTdHJpbmcpO1xuICB9XG5cbiAgZ2V0Q2lkckJsb2NrKCkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuY2lkckJsb2NrKSB7XG4gICAgICBpZiAodGhpcy5jaWRyQmxvY2tba2V5XSkge1xuICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gXCIwLjAuMC4wLzhcIjtcbiAgfVxuXG4gIHVwZGF0ZVN0YXRlKGNpZHJCbG9jazogc3RyaW5nLCBzdGF0dXM6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNpZHJCbG9ja1tjaWRyQmxvY2tdID0gc3RhdHVzO1xuICAgIHRoaXMud3JpdGVTdGF0ZSgpO1xuICB9XG59XG4iXX0=
@@ -1,7 +1,8 @@
1
1
  interface Config {
2
2
  environment: string;
3
- account?: string;
4
- region?: string;
3
+ account: string;
4
+ accountName: string;
5
+ region: string;
5
6
  }
6
7
  export declare function getEnviornmentConfig(environment: string): Config;
7
8
  export declare function getConfig(): Config;