@incloodsolutions/devkit 0.0.4 → 0.0.5

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 (182) hide show
  1. package/README.md +40 -10
  2. package/dist/aws-cdk/constructs/api-gateway-v2.cjs.map +1 -0
  3. package/dist/aws-cdk/{api-gateway-v2.d.cts → constructs/api-gateway-v2.d.cts} +2 -1
  4. package/dist/aws-cdk/{api-gateway-v2.d.ts → constructs/api-gateway-v2.d.ts} +2 -1
  5. package/dist/aws-cdk/constructs/api-gateway-v2.js.map +1 -0
  6. package/dist/aws-cdk/constructs/api-gateway-websocket.cjs.map +1 -0
  7. package/dist/aws-cdk/{api-gateway-websocket.d.cts → constructs/api-gateway-websocket.d.cts} +2 -1
  8. package/dist/aws-cdk/{api-gateway-websocket.d.ts → constructs/api-gateway-websocket.d.ts} +2 -1
  9. package/dist/aws-cdk/constructs/api-gateway-websocket.js.map +1 -0
  10. package/dist/aws-cdk/constructs/api-gateway.cjs.map +1 -0
  11. package/dist/aws-cdk/{api-gateway.d.cts → constructs/api-gateway.d.cts} +2 -1
  12. package/dist/aws-cdk/{api-gateway.d.ts → constructs/api-gateway.d.ts} +2 -1
  13. package/dist/aws-cdk/constructs/api-gateway.js.map +1 -0
  14. package/dist/aws-cdk/constructs/cloudfront.cjs.map +1 -0
  15. package/dist/aws-cdk/{cloudfront.d.cts → constructs/cloudfront.d.cts} +2 -1
  16. package/dist/aws-cdk/{cloudfront.d.ts → constructs/cloudfront.d.ts} +2 -1
  17. package/dist/aws-cdk/constructs/cloudfront.js.map +1 -0
  18. package/dist/aws-cdk/constructs/cloudwatch.cjs.map +1 -0
  19. package/dist/aws-cdk/{cloudwatch.d.cts → constructs/cloudwatch.d.cts} +2 -1
  20. package/dist/aws-cdk/{cloudwatch.d.ts → constructs/cloudwatch.d.ts} +2 -1
  21. package/dist/aws-cdk/constructs/cloudwatch.js.map +1 -0
  22. package/dist/aws-cdk/constructs/dynamo-db.cjs.map +1 -0
  23. package/dist/aws-cdk/{dynamo-db.d.cts → constructs/dynamo-db.d.cts} +2 -1
  24. package/dist/aws-cdk/{dynamo-db.d.ts → constructs/dynamo-db.d.ts} +2 -1
  25. package/dist/aws-cdk/constructs/dynamo-db.js.map +1 -0
  26. package/dist/aws-cdk/constructs/event-bridge.cjs.map +1 -0
  27. package/dist/aws-cdk/{event-bridge.d.cts → constructs/event-bridge.d.cts} +2 -1
  28. package/dist/aws-cdk/{event-bridge.d.ts → constructs/event-bridge.d.ts} +2 -1
  29. package/dist/aws-cdk/constructs/event-bridge.js.map +1 -0
  30. package/dist/aws-cdk/constructs/lambda-authorizer-v2.cjs.map +1 -0
  31. package/dist/aws-cdk/{lambda-authorizer-v2.d.cts → constructs/lambda-authorizer-v2.d.cts} +2 -1
  32. package/dist/aws-cdk/{lambda-authorizer-v2.d.ts → constructs/lambda-authorizer-v2.d.ts} +2 -1
  33. package/dist/aws-cdk/constructs/lambda-authorizer-v2.js.map +1 -0
  34. package/dist/aws-cdk/constructs/lambda-authorizer.cjs.map +1 -0
  35. package/dist/aws-cdk/{lambda-authorizer.d.cts → constructs/lambda-authorizer.d.cts} +2 -1
  36. package/dist/aws-cdk/{lambda-authorizer.d.ts → constructs/lambda-authorizer.d.ts} +2 -1
  37. package/dist/aws-cdk/constructs/lambda-authorizer.js.map +1 -0
  38. package/dist/aws-cdk/constructs/lambda-layer.cjs.map +1 -0
  39. package/dist/aws-cdk/{lambda-layer.d.cts → constructs/lambda-layer.d.cts} +2 -1
  40. package/dist/aws-cdk/{lambda-layer.d.ts → constructs/lambda-layer.d.ts} +2 -1
  41. package/dist/aws-cdk/constructs/lambda-layer.js.map +1 -0
  42. package/dist/aws-cdk/{lambda.cjs → constructs/lambda.cjs} +2 -2
  43. package/dist/aws-cdk/constructs/lambda.cjs.map +1 -0
  44. package/dist/aws-cdk/{lambda.d.cts → constructs/lambda.d.cts} +2 -1
  45. package/dist/aws-cdk/{lambda.d.ts → constructs/lambda.d.ts} +2 -1
  46. package/dist/aws-cdk/{lambda.js → constructs/lambda.js} +2 -2
  47. package/dist/aws-cdk/constructs/lambda.js.map +1 -0
  48. package/dist/aws-cdk/constructs/role-policy.cjs.map +1 -0
  49. package/dist/aws-cdk/{role-policy.d.cts → constructs/role-policy.d.cts} +2 -1
  50. package/dist/aws-cdk/{role-policy.d.ts → constructs/role-policy.d.ts} +2 -1
  51. package/dist/aws-cdk/constructs/role-policy.js.map +1 -0
  52. package/dist/aws-cdk/constructs/route53.cjs +79 -0
  53. package/dist/aws-cdk/constructs/route53.cjs.map +1 -0
  54. package/dist/aws-cdk/constructs/route53.d.cts +95 -0
  55. package/dist/aws-cdk/constructs/route53.d.ts +95 -0
  56. package/dist/aws-cdk/constructs/route53.js +77 -0
  57. package/dist/aws-cdk/constructs/route53.js.map +1 -0
  58. package/dist/aws-cdk/constructs/s3-deployment.cjs.map +1 -0
  59. package/dist/aws-cdk/{s3-deployment.d.cts → constructs/s3-deployment.d.cts} +2 -1
  60. package/dist/aws-cdk/{s3-deployment.d.ts → constructs/s3-deployment.d.ts} +2 -1
  61. package/dist/aws-cdk/constructs/s3-deployment.js.map +1 -0
  62. package/dist/aws-cdk/constructs/s3.cjs.map +1 -0
  63. package/dist/aws-cdk/{s3.d.cts → constructs/s3.d.cts} +2 -1
  64. package/dist/aws-cdk/{s3.d.ts → constructs/s3.d.ts} +2 -1
  65. package/dist/aws-cdk/constructs/s3.js.map +1 -0
  66. package/dist/aws-cdk/constructs/sns.cjs.map +1 -0
  67. package/dist/aws-cdk/{sns.d.cts → constructs/sns.d.cts} +2 -1
  68. package/dist/aws-cdk/{sns.d.ts → constructs/sns.d.ts} +2 -1
  69. package/dist/aws-cdk/constructs/sns.js.map +1 -0
  70. package/dist/aws-cdk/constructs/sqs.cjs.map +1 -0
  71. package/dist/aws-cdk/{sqs.d.cts → constructs/sqs.d.cts} +2 -1
  72. package/dist/aws-cdk/{sqs.d.ts → constructs/sqs.d.ts} +2 -1
  73. package/dist/aws-cdk/constructs/sqs.js.map +1 -0
  74. package/dist/aws-cdk/constructs/vpc.cjs.map +1 -0
  75. package/dist/aws-cdk/{vpc.d.cts → constructs/vpc.d.cts} +2 -1
  76. package/dist/aws-cdk/{vpc.d.ts → constructs/vpc.d.ts} +2 -1
  77. package/dist/aws-cdk/constructs/vpc.js.map +1 -0
  78. package/dist/aws-cdk/stacks/lambda-api.cjs +252 -0
  79. package/dist/aws-cdk/stacks/lambda-api.cjs.map +1 -0
  80. package/dist/aws-cdk/stacks/lambda-api.d.cts +16 -0
  81. package/dist/aws-cdk/stacks/lambda-api.d.ts +16 -0
  82. package/dist/aws-cdk/stacks/lambda-api.js +250 -0
  83. package/dist/aws-cdk/stacks/lambda-api.js.map +1 -0
  84. package/dist/aws-cdk/stacks/lambda-sns.cjs +211 -0
  85. package/dist/aws-cdk/stacks/lambda-sns.cjs.map +1 -0
  86. package/dist/aws-cdk/stacks/lambda-sns.d.cts +17 -0
  87. package/dist/aws-cdk/stacks/lambda-sns.d.ts +17 -0
  88. package/dist/aws-cdk/stacks/lambda-sns.js +209 -0
  89. package/dist/aws-cdk/stacks/lambda-sns.js.map +1 -0
  90. package/dist/aws-cdk/stacks/lambda-sqs.cjs +220 -0
  91. package/dist/aws-cdk/stacks/lambda-sqs.cjs.map +1 -0
  92. package/dist/aws-cdk/stacks/lambda-sqs.d.cts +18 -0
  93. package/dist/aws-cdk/stacks/lambda-sqs.d.ts +18 -0
  94. package/dist/aws-cdk/stacks/lambda-sqs.js +218 -0
  95. package/dist/aws-cdk/stacks/lambda-sqs.js.map +1 -0
  96. package/dist/aws-types.d.cts +14 -1
  97. package/dist/aws-types.d.ts +14 -1
  98. package/dist/aws.cjs +199 -2
  99. package/dist/aws.cjs.map +1 -1
  100. package/dist/aws.d.cts +25 -19
  101. package/dist/aws.d.ts +25 -19
  102. package/dist/aws.js +198 -5
  103. package/dist/aws.js.map +1 -1
  104. package/dist/index.cjs +199 -2
  105. package/dist/index.cjs.map +1 -1
  106. package/dist/index.d.cts +24 -18
  107. package/dist/index.d.ts +24 -18
  108. package/dist/index.js +198 -5
  109. package/dist/index.js.map +1 -1
  110. package/package.json +130 -152
  111. package/dist/aws-cdk/api-gateway-v2.cjs.map +0 -1
  112. package/dist/aws-cdk/api-gateway-v2.js.map +0 -1
  113. package/dist/aws-cdk/api-gateway-websocket.cjs.map +0 -1
  114. package/dist/aws-cdk/api-gateway-websocket.js.map +0 -1
  115. package/dist/aws-cdk/api-gateway.cjs.map +0 -1
  116. package/dist/aws-cdk/api-gateway.js.map +0 -1
  117. package/dist/aws-cdk/cloudfront.cjs.map +0 -1
  118. package/dist/aws-cdk/cloudfront.js.map +0 -1
  119. package/dist/aws-cdk/cloudwatch.cjs.map +0 -1
  120. package/dist/aws-cdk/cloudwatch.js.map +0 -1
  121. package/dist/aws-cdk/dynamo-db.cjs.map +0 -1
  122. package/dist/aws-cdk/dynamo-db.js.map +0 -1
  123. package/dist/aws-cdk/event-bridge.cjs.map +0 -1
  124. package/dist/aws-cdk/event-bridge.js.map +0 -1
  125. package/dist/aws-cdk/lambda-authorizer-v2.cjs.map +0 -1
  126. package/dist/aws-cdk/lambda-authorizer-v2.js.map +0 -1
  127. package/dist/aws-cdk/lambda-authorizer.cjs.map +0 -1
  128. package/dist/aws-cdk/lambda-authorizer.js.map +0 -1
  129. package/dist/aws-cdk/lambda-layer.cjs.map +0 -1
  130. package/dist/aws-cdk/lambda-layer.js.map +0 -1
  131. package/dist/aws-cdk/lambda.cjs.map +0 -1
  132. package/dist/aws-cdk/lambda.js.map +0 -1
  133. package/dist/aws-cdk/role-policy.cjs.map +0 -1
  134. package/dist/aws-cdk/role-policy.js.map +0 -1
  135. package/dist/aws-cdk/s3-deployment.cjs.map +0 -1
  136. package/dist/aws-cdk/s3-deployment.js.map +0 -1
  137. package/dist/aws-cdk/s3.cjs.map +0 -1
  138. package/dist/aws-cdk/s3.js.map +0 -1
  139. package/dist/aws-cdk/sns.cjs.map +0 -1
  140. package/dist/aws-cdk/sns.js.map +0 -1
  141. package/dist/aws-cdk/sqs.cjs.map +0 -1
  142. package/dist/aws-cdk/sqs.js.map +0 -1
  143. package/dist/aws-cdk/vpc.cjs.map +0 -1
  144. package/dist/aws-cdk/vpc.js.map +0 -1
  145. package/dist/aws-cdk.cjs +0 -905
  146. package/dist/aws-cdk.cjs.map +0 -1
  147. package/dist/aws-cdk.d.cts +0 -34
  148. package/dist/aws-cdk.d.ts +0 -34
  149. package/dist/aws-cdk.js +0 -887
  150. package/dist/aws-cdk.js.map +0 -1
  151. /package/dist/aws-cdk/{api-gateway-v2.cjs → constructs/api-gateway-v2.cjs} +0 -0
  152. /package/dist/aws-cdk/{api-gateway-v2.js → constructs/api-gateway-v2.js} +0 -0
  153. /package/dist/aws-cdk/{api-gateway-websocket.cjs → constructs/api-gateway-websocket.cjs} +0 -0
  154. /package/dist/aws-cdk/{api-gateway-websocket.js → constructs/api-gateway-websocket.js} +0 -0
  155. /package/dist/aws-cdk/{api-gateway.cjs → constructs/api-gateway.cjs} +0 -0
  156. /package/dist/aws-cdk/{api-gateway.js → constructs/api-gateway.js} +0 -0
  157. /package/dist/aws-cdk/{cloudfront.cjs → constructs/cloudfront.cjs} +0 -0
  158. /package/dist/aws-cdk/{cloudfront.js → constructs/cloudfront.js} +0 -0
  159. /package/dist/aws-cdk/{cloudwatch.cjs → constructs/cloudwatch.cjs} +0 -0
  160. /package/dist/aws-cdk/{cloudwatch.js → constructs/cloudwatch.js} +0 -0
  161. /package/dist/aws-cdk/{dynamo-db.cjs → constructs/dynamo-db.cjs} +0 -0
  162. /package/dist/aws-cdk/{dynamo-db.js → constructs/dynamo-db.js} +0 -0
  163. /package/dist/aws-cdk/{event-bridge.cjs → constructs/event-bridge.cjs} +0 -0
  164. /package/dist/aws-cdk/{event-bridge.js → constructs/event-bridge.js} +0 -0
  165. /package/dist/aws-cdk/{lambda-authorizer-v2.cjs → constructs/lambda-authorizer-v2.cjs} +0 -0
  166. /package/dist/aws-cdk/{lambda-authorizer-v2.js → constructs/lambda-authorizer-v2.js} +0 -0
  167. /package/dist/aws-cdk/{lambda-authorizer.cjs → constructs/lambda-authorizer.cjs} +0 -0
  168. /package/dist/aws-cdk/{lambda-authorizer.js → constructs/lambda-authorizer.js} +0 -0
  169. /package/dist/aws-cdk/{lambda-layer.cjs → constructs/lambda-layer.cjs} +0 -0
  170. /package/dist/aws-cdk/{lambda-layer.js → constructs/lambda-layer.js} +0 -0
  171. /package/dist/aws-cdk/{role-policy.cjs → constructs/role-policy.cjs} +0 -0
  172. /package/dist/aws-cdk/{role-policy.js → constructs/role-policy.js} +0 -0
  173. /package/dist/aws-cdk/{s3-deployment.cjs → constructs/s3-deployment.cjs} +0 -0
  174. /package/dist/aws-cdk/{s3-deployment.js → constructs/s3-deployment.js} +0 -0
  175. /package/dist/aws-cdk/{s3.cjs → constructs/s3.cjs} +0 -0
  176. /package/dist/aws-cdk/{s3.js → constructs/s3.js} +0 -0
  177. /package/dist/aws-cdk/{sns.cjs → constructs/sns.cjs} +0 -0
  178. /package/dist/aws-cdk/{sns.js → constructs/sns.js} +0 -0
  179. /package/dist/aws-cdk/{sqs.cjs → constructs/sqs.cjs} +0 -0
  180. /package/dist/aws-cdk/{sqs.js → constructs/sqs.js} +0 -0
  181. /package/dist/aws-cdk/{vpc.cjs → constructs/vpc.cjs} +0 -0
  182. /package/dist/aws-cdk/{vpc.js → constructs/vpc.js} +0 -0
package/dist/index.cjs CHANGED
@@ -14,6 +14,7 @@ var awsEventsTargets = require('aws-cdk-lib/aws-events-targets');
14
14
  var awsApigatewayv2Authorizers = require('aws-cdk-lib/aws-apigatewayv2-authorizers');
15
15
  var awsLambda = require('aws-cdk-lib/aws-lambda');
16
16
  var awsIam = require('aws-cdk-lib/aws-iam');
17
+ var awsRoute53 = require('aws-cdk-lib/aws-route53');
17
18
  var awsS3 = require('aws-cdk-lib/aws-s3');
18
19
  var awsCloudfrontOrigins = require('aws-cdk-lib/aws-cloudfront-origins');
19
20
  var awsS3Deployment = require('aws-cdk-lib/aws-s3-deployment');
@@ -544,9 +545,9 @@ var BaseLambdaConstruct = class extends constructs.Construct {
544
545
  ...props?.options?.lambdaOptions,
545
546
  /**
546
547
  * Lambda function name
547
- * Defaults to "<stackName>-handler" if not provided
548
+ * Defaults to "<stackName>" if not provided
548
549
  */
549
- functionName: `${props?.options?.lambdaOptions?.functionName || props?.stackName}-handler`,
550
+ functionName: `${props?.options?.lambdaOptions?.functionName || props?.stackName}`,
550
551
  /**
551
552
  * Function description
552
553
  */
@@ -687,6 +688,72 @@ var BaseRolePolicyConstruct = class extends constructs.Construct {
687
688
  });
688
689
  }
689
690
  };
691
+ var BaseRoute53Construct = class extends constructs.Construct {
692
+ static {
693
+ __name(this, "BaseRoute53Construct");
694
+ }
695
+ /** The hosted zone this construct created, imported, or looked up */
696
+ hostedZone;
697
+ /**
698
+ * @param scope Parent construct
699
+ * @param id Unique construct identifier
700
+ * @param props Configuration for the hosted zone and its records
701
+ */
702
+ constructor(scope, id, props) {
703
+ super(scope, id);
704
+ const options = props?.options ?? {};
705
+ if (options.hostedZoneOptions) {
706
+ this.hostedZone = new awsRoute53.HostedZone(
707
+ this,
708
+ `${id}-HostedZone`,
709
+ options.hostedZoneOptions
710
+ );
711
+ } else if (options.fromExistingHostedZoneAttributes) {
712
+ this.hostedZone = awsRoute53.HostedZone.fromHostedZoneAttributes(
713
+ this,
714
+ `${id}-HostedZone`,
715
+ options.fromExistingHostedZoneAttributes
716
+ );
717
+ } else if (options.fromLookupOptions) {
718
+ this.hostedZone = awsRoute53.HostedZone.fromLookup(
719
+ this,
720
+ `${id}-HostedZone`,
721
+ options.fromLookupOptions
722
+ );
723
+ } else {
724
+ throw new toolkit.CustomException(
725
+ "BaseRoute53Construct requires one of hostedZoneOptions, fromExistingHostedZoneAttributes, or fromLookupOptions"
726
+ );
727
+ }
728
+ options.aRecords?.forEach((record, index) => {
729
+ new awsRoute53.ARecord(this, `${id}-ARecord-${index}`, {
730
+ ...record,
731
+ zone: this.hostedZone
732
+ });
733
+ });
734
+ options.aaaaRecords?.forEach((record, index) => {
735
+ new awsRoute53.AaaaRecord(this, `${id}-AaaaRecord-${index}`, {
736
+ ...record,
737
+ zone: this.hostedZone
738
+ });
739
+ });
740
+ options.cnameRecords?.forEach((record, index) => {
741
+ new awsRoute53.CnameRecord(this, `${id}-CnameRecord-${index}`, {
742
+ ...record,
743
+ zone: this.hostedZone
744
+ });
745
+ });
746
+ options.txtRecords?.forEach((record, index) => {
747
+ new awsRoute53.TxtRecord(this, `${id}-TxtRecord-${index}`, {
748
+ ...record,
749
+ zone: this.hostedZone
750
+ });
751
+ });
752
+ new awsCdkLib.CfnOutput(this, "Route53HostedZoneId", {
753
+ value: this.hostedZone.hostedZoneId
754
+ });
755
+ }
756
+ };
690
757
  var BaseS3Construct = class extends constructs.Construct {
691
758
  static {
692
759
  __name(this, "BaseS3Construct");
@@ -883,6 +950,132 @@ var BaseVpcConstruct = class extends constructs.Construct {
883
950
  });
884
951
  }
885
952
  };
953
+ var BaseLambdaApiStack = class extends awsCdkLib.Stack {
954
+ static {
955
+ __name(this, "BaseLambdaApiStack");
956
+ }
957
+ constructor(scope, id, props) {
958
+ super(scope, id, props);
959
+ let layers = [];
960
+ if (props?.stackOptions?.layerOptions) {
961
+ if (!props.stackOptions?.layerOptions?.name || !props.stackOptions?.layerOptions?.version) {
962
+ throw new toolkit.CustomException("Invalid layer options provided! Both layer 'name' and 'version' are required.");
963
+ }
964
+ const { existingLayer } = new BaseLambdaLayerConstruct(
965
+ this,
966
+ "layer",
967
+ {
968
+ options: {
969
+ fromExistingLayerArn: `arn:aws:lambda:${props.env?.region}:${props.env?.account}:layer:${props.stackOptions?.layerOptions?.name}:${props.stackOptions?.layerOptions?.version}`
970
+ }
971
+ }
972
+ );
973
+ layers.push(existingLayer);
974
+ }
975
+ const { function: lambdaFunction } = new BaseLambdaConstruct(this, "lambda", {
976
+ stage: props.stackOptions?.stage,
977
+ stackName: props.stackName,
978
+ options: {
979
+ lambdaOptions: { layers }
980
+ }
981
+ });
982
+ new BaseApiGatewayV2Construct(this, "apiGateway", {
983
+ handlerFunctions: [lambdaFunction],
984
+ options: {
985
+ gatewayOptions: {
986
+ apiName: props.stackName,
987
+ corsPreflight: {
988
+ allowOrigins: ["*"]
989
+ }
990
+ },
991
+ routeOptions: [
992
+ {
993
+ path: "/{proxy+}",
994
+ methods: [awsApigatewayv2.HttpMethod.ANY]
995
+ }
996
+ ]
997
+ }
998
+ });
999
+ }
1000
+ };
1001
+ var BaseLambdaSqsStack = class extends awsCdkLib.Stack {
1002
+ static {
1003
+ __name(this, "BaseLambdaSqsStack");
1004
+ }
1005
+ constructor(scope, id, props) {
1006
+ super(scope, id, props);
1007
+ let layers = [];
1008
+ if (props?.stackOptions?.layerOptions) {
1009
+ if (!props.stackOptions?.layerOptions?.name || !props.stackOptions?.layerOptions?.version) {
1010
+ throw new toolkit.CustomException("Invalid layer options provided");
1011
+ }
1012
+ const { existingLayer } = new BaseLambdaLayerConstruct(
1013
+ this,
1014
+ "layer",
1015
+ {
1016
+ options: {
1017
+ fromExistingLayerArn: `arn:aws:lambda:${props.env?.region}:${props.env?.account}:layer:${props.stackOptions?.layerOptions?.name}:${props.stackOptions?.layerOptions?.version}`
1018
+ }
1019
+ }
1020
+ );
1021
+ layers.push(existingLayer);
1022
+ }
1023
+ const { function: lambdaFunction } = new BaseLambdaConstruct(this, "lambda", {
1024
+ stage: props.stackOptions?.stage,
1025
+ stackName: props.stackName,
1026
+ options: {
1027
+ lambdaOptions: { layers }
1028
+ }
1029
+ });
1030
+ new BaseSqsConstruct(this, "sqs", {
1031
+ targetFunctions: [lambdaFunction],
1032
+ options: {
1033
+ eventSourceMappingOptions: {},
1034
+ queueOptions: {}
1035
+ }
1036
+ });
1037
+ }
1038
+ };
1039
+ var BaseLambdaSnsStack = class extends awsCdkLib.Stack {
1040
+ static {
1041
+ __name(this, "BaseLambdaSnsStack");
1042
+ }
1043
+ constructor(scope, id, props) {
1044
+ super(scope, id, props);
1045
+ let layers = [];
1046
+ if (props?.stackOptions?.layerOptions) {
1047
+ if (!props.stackOptions?.layerOptions?.name || !props.stackOptions?.layerOptions?.version) {
1048
+ throw new toolkit.CustomException("Invalid layer options provided");
1049
+ }
1050
+ const { existingLayer } = new BaseLambdaLayerConstruct(
1051
+ this,
1052
+ "layer",
1053
+ {
1054
+ options: {
1055
+ fromExistingLayerArn: `arn:aws:lambda:${props.env?.region}:${props.env?.account}:layer:${props.stackOptions?.layerOptions?.name}:${props.stackOptions?.layerOptions?.version}`
1056
+ }
1057
+ }
1058
+ );
1059
+ layers.push(existingLayer);
1060
+ }
1061
+ const { function: lambdaFunction } = new BaseLambdaConstruct(this, "lambda", {
1062
+ stage: props.stackOptions?.stage,
1063
+ stackName: props.stackName,
1064
+ options: {
1065
+ lambdaOptions: { layers }
1066
+ }
1067
+ });
1068
+ new BaseSnsConstruct(this, "sns", {
1069
+ options: {
1070
+ targetFunctions: [lambdaFunction],
1071
+ topicOptions: {
1072
+ ...props?.stackOptions?.topicOptions,
1073
+ topicName: props?.stackOptions?.topicOptions?.topicName || props.stackName
1074
+ }
1075
+ }
1076
+ });
1077
+ }
1078
+ };
886
1079
 
887
1080
  exports.BaseApiGatewayConstruct = BaseApiGatewayConstruct;
888
1081
  exports.BaseApiGatewayV2Construct = BaseApiGatewayV2Construct;
@@ -891,11 +1084,15 @@ exports.BaseCloudfrontConstruct = BaseCloudfrontConstruct;
891
1084
  exports.BaseCloudwatchLogGroupConstruct = BaseCloudwatchLogGroupConstruct;
892
1085
  exports.BaseDynamoDBConstruct = BaseDynamoDBConstruct;
893
1086
  exports.BaseEventBridgeConstruct = BaseEventBridgeConstruct;
1087
+ exports.BaseLambdaApiStack = BaseLambdaApiStack;
894
1088
  exports.BaseLambdaAuthoriserConstruct = BaseLambdaAuthoriserConstruct;
895
1089
  exports.BaseLambdaAuthoriserV2Construct = BaseLambdaAuthoriserV2Construct;
896
1090
  exports.BaseLambdaConstruct = BaseLambdaConstruct;
897
1091
  exports.BaseLambdaLayerConstruct = BaseLambdaLayerConstruct;
1092
+ exports.BaseLambdaSnsStack = BaseLambdaSnsStack;
1093
+ exports.BaseLambdaSqsStack = BaseLambdaSqsStack;
898
1094
  exports.BaseRolePolicyConstruct = BaseRolePolicyConstruct;
1095
+ exports.BaseRoute53Construct = BaseRoute53Construct;
899
1096
  exports.BaseS3Construct = BaseS3Construct;
900
1097
  exports.BaseS3DeploymentConstruct = BaseS3DeploymentConstruct;
901
1098
  exports.BaseSnsConstruct = BaseSnsConstruct;