@incloodsolutions/devkit 0.0.3 → 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 (226) hide show
  1. package/README.md +180 -41
  2. package/dist/{aws/cdk/constructs/api-gateway-v2-construct.cjs → aws-cdk/constructs/api-gateway-v2.cjs} +2 -2
  3. package/dist/aws-cdk/constructs/api-gateway-v2.cjs.map +1 -0
  4. package/dist/{aws/cdk/constructs/api-gateway-v2-construct.d.ts → aws-cdk/constructs/api-gateway-v2.d.cts} +2 -1
  5. package/dist/{aws/cdk/constructs/api-gateway-v2-construct.d.cts → aws-cdk/constructs/api-gateway-v2.d.ts} +2 -1
  6. package/dist/{aws/cdk/constructs/api-gateway-v2-construct.js → aws-cdk/constructs/api-gateway-v2.js} +2 -2
  7. package/dist/aws-cdk/constructs/api-gateway-v2.js.map +1 -0
  8. package/dist/{aws/cdk/constructs/api-gateway-websocket-construct.cjs → aws-cdk/constructs/api-gateway-websocket.cjs} +18 -6
  9. package/dist/aws-cdk/constructs/api-gateway-websocket.cjs.map +1 -0
  10. package/dist/{aws/cdk/constructs/api-gateway-websocket-construct.d.ts → aws-cdk/constructs/api-gateway-websocket.d.cts} +2 -1
  11. package/dist/{aws/cdk/constructs/api-gateway-websocket-construct.d.cts → aws-cdk/constructs/api-gateway-websocket.d.ts} +2 -1
  12. package/dist/{aws/cdk/constructs/api-gateway-websocket-construct.js → aws-cdk/constructs/api-gateway-websocket.js} +18 -6
  13. package/dist/aws-cdk/constructs/api-gateway-websocket.js.map +1 -0
  14. package/dist/{aws/cdk/constructs/api-gateway-construct.cjs → aws-cdk/constructs/api-gateway.cjs} +6 -3
  15. package/dist/aws-cdk/constructs/api-gateway.cjs.map +1 -0
  16. package/dist/{aws/cdk/constructs/api-gateway-construct.d.ts → aws-cdk/constructs/api-gateway.d.cts} +2 -1
  17. package/dist/{aws/cdk/constructs/api-gateway-construct.d.cts → aws-cdk/constructs/api-gateway.d.ts} +2 -1
  18. package/dist/{aws/cdk/constructs/api-gateway-construct.js → aws-cdk/constructs/api-gateway.js} +6 -3
  19. package/dist/aws-cdk/constructs/api-gateway.js.map +1 -0
  20. package/dist/{aws/cdk/constructs/cloudfront-construct.cjs → aws-cdk/constructs/cloudfront.cjs} +2 -2
  21. package/dist/aws-cdk/constructs/cloudfront.cjs.map +1 -0
  22. package/dist/{aws/cdk/constructs/cloudfront-construct.d.ts → aws-cdk/constructs/cloudfront.d.cts} +2 -1
  23. package/dist/{aws/cdk/constructs/cloudfront-construct.d.cts → aws-cdk/constructs/cloudfront.d.ts} +2 -1
  24. package/dist/{aws/cdk/constructs/cloudfront-construct.js → aws-cdk/constructs/cloudfront.js} +2 -2
  25. package/dist/aws-cdk/constructs/cloudfront.js.map +1 -0
  26. package/dist/{aws/cdk/constructs/cloudwatch-construct.cjs → aws-cdk/constructs/cloudwatch.cjs} +2 -2
  27. package/dist/aws-cdk/constructs/cloudwatch.cjs.map +1 -0
  28. package/dist/{aws/cdk/constructs/cloudwatch-construct.d.ts → aws-cdk/constructs/cloudwatch.d.cts} +2 -1
  29. package/dist/{aws/cdk/constructs/cloudwatch-construct.d.cts → aws-cdk/constructs/cloudwatch.d.ts} +2 -1
  30. package/dist/{aws/cdk/constructs/cloudwatch-construct.js → aws-cdk/constructs/cloudwatch.js} +2 -2
  31. package/dist/aws-cdk/constructs/cloudwatch.js.map +1 -0
  32. package/dist/{aws/cdk/constructs/dynamo-db-construct.cjs → aws-cdk/constructs/dynamo-db.cjs} +2 -2
  33. package/dist/aws-cdk/constructs/dynamo-db.cjs.map +1 -0
  34. package/dist/{aws/cdk/constructs/dynamo-db-construct.d.ts → aws-cdk/constructs/dynamo-db.d.cts} +2 -1
  35. package/dist/{aws/cdk/constructs/dynamo-db-construct.d.cts → aws-cdk/constructs/dynamo-db.d.ts} +2 -1
  36. package/dist/{aws/cdk/constructs/dynamo-db-construct.js → aws-cdk/constructs/dynamo-db.js} +2 -2
  37. package/dist/aws-cdk/constructs/dynamo-db.js.map +1 -0
  38. package/dist/{aws/cdk/constructs/event-bridge-construct.cjs → aws-cdk/constructs/event-bridge.cjs} +2 -2
  39. package/dist/aws-cdk/constructs/event-bridge.cjs.map +1 -0
  40. package/dist/{aws/cdk/constructs/event-bridge-construct.d.ts → aws-cdk/constructs/event-bridge.d.cts} +2 -1
  41. package/dist/{aws/cdk/constructs/event-bridge-construct.d.cts → aws-cdk/constructs/event-bridge.d.ts} +2 -1
  42. package/dist/{aws/cdk/constructs/event-bridge-construct.js → aws-cdk/constructs/event-bridge.js} +2 -2
  43. package/dist/aws-cdk/constructs/event-bridge.js.map +1 -0
  44. package/dist/{aws/cdk/constructs/lambda-authorizer-v2-construct.cjs → aws-cdk/constructs/lambda-authorizer-v2.cjs} +6 -3
  45. package/dist/aws-cdk/constructs/lambda-authorizer-v2.cjs.map +1 -0
  46. package/dist/{aws/cdk/constructs/lambda-authorizer-v2-construct.d.ts → aws-cdk/constructs/lambda-authorizer-v2.d.cts} +2 -1
  47. package/dist/{aws/cdk/constructs/lambda-authorizer-v2-construct.d.cts → aws-cdk/constructs/lambda-authorizer-v2.d.ts} +2 -1
  48. package/dist/{aws/cdk/constructs/lambda-authorizer-v2-construct.js → aws-cdk/constructs/lambda-authorizer-v2.js} +6 -3
  49. package/dist/aws-cdk/constructs/lambda-authorizer-v2.js.map +1 -0
  50. package/dist/{aws/cdk/constructs/lambda-authorizer-construct.cjs → aws-cdk/constructs/lambda-authorizer.cjs} +2 -2
  51. package/dist/aws-cdk/constructs/lambda-authorizer.cjs.map +1 -0
  52. package/dist/{aws/cdk/constructs/lambda-authorizer-construct.d.cts → aws-cdk/constructs/lambda-authorizer.d.cts} +2 -1
  53. package/dist/{aws/cdk/constructs/lambda-authorizer-construct.d.ts → aws-cdk/constructs/lambda-authorizer.d.ts} +2 -1
  54. package/dist/{aws/cdk/constructs/lambda-authorizer-construct.js → aws-cdk/constructs/lambda-authorizer.js} +2 -2
  55. package/dist/aws-cdk/constructs/lambda-authorizer.js.map +1 -0
  56. package/dist/{aws/cdk/constructs/lambda-layer-construct.cjs → aws-cdk/constructs/lambda-layer.cjs} +3 -6
  57. package/dist/aws-cdk/constructs/lambda-layer.cjs.map +1 -0
  58. package/dist/{aws/cdk/constructs/lambda-layer-construct.d.ts → aws-cdk/constructs/lambda-layer.d.cts} +2 -1
  59. package/dist/{aws/cdk/constructs/lambda-layer-construct.d.cts → aws-cdk/constructs/lambda-layer.d.ts} +2 -1
  60. package/dist/{aws/cdk/constructs/lambda-layer-construct.js → aws-cdk/constructs/lambda-layer.js} +3 -6
  61. package/dist/aws-cdk/constructs/lambda-layer.js.map +1 -0
  62. package/dist/{aws/cdk/constructs/lambda-construct.cjs → aws-cdk/constructs/lambda.cjs} +4 -4
  63. package/dist/aws-cdk/constructs/lambda.cjs.map +1 -0
  64. package/dist/{aws/cdk/constructs/lambda-construct.d.ts → aws-cdk/constructs/lambda.d.cts} +2 -1
  65. package/dist/{aws/cdk/constructs/lambda-construct.d.cts → aws-cdk/constructs/lambda.d.ts} +2 -1
  66. package/dist/{aws/cdk/constructs/lambda-construct.js → aws-cdk/constructs/lambda.js} +4 -4
  67. package/dist/aws-cdk/constructs/lambda.js.map +1 -0
  68. package/dist/{aws/cdk/constructs/role-policy-construct.cjs → aws-cdk/constructs/role-policy.cjs} +2 -2
  69. package/dist/aws-cdk/constructs/role-policy.cjs.map +1 -0
  70. package/dist/{aws/cdk/constructs/role-policy-construct.d.ts → aws-cdk/constructs/role-policy.d.cts} +2 -1
  71. package/dist/{aws/cdk/constructs/role-policy-construct.d.cts → aws-cdk/constructs/role-policy.d.ts} +2 -1
  72. package/dist/{aws/cdk/constructs/role-policy-construct.js → aws-cdk/constructs/role-policy.js} +2 -2
  73. package/dist/aws-cdk/constructs/role-policy.js.map +1 -0
  74. package/dist/aws-cdk/constructs/route53.cjs +79 -0
  75. package/dist/aws-cdk/constructs/route53.cjs.map +1 -0
  76. package/dist/aws-cdk/constructs/route53.d.cts +95 -0
  77. package/dist/aws-cdk/constructs/route53.d.ts +95 -0
  78. package/dist/aws-cdk/constructs/route53.js +77 -0
  79. package/dist/aws-cdk/constructs/route53.js.map +1 -0
  80. package/dist/{aws/cdk/constructs/s3-deployment-construct.cjs → aws-cdk/constructs/s3-deployment.cjs} +20 -11
  81. package/dist/aws-cdk/constructs/s3-deployment.cjs.map +1 -0
  82. package/dist/{aws/cdk/constructs/s3-deployment-construct.d.ts → aws-cdk/constructs/s3-deployment.d.cts} +2 -1
  83. package/dist/{aws/cdk/constructs/s3-deployment-construct.d.cts → aws-cdk/constructs/s3-deployment.d.ts} +2 -1
  84. package/dist/{aws/cdk/constructs/s3-deployment-construct.js → aws-cdk/constructs/s3-deployment.js} +20 -11
  85. package/dist/aws-cdk/constructs/s3-deployment.js.map +1 -0
  86. package/dist/{aws/cdk/constructs/s3-construct.cjs → aws-cdk/constructs/s3.cjs} +2 -2
  87. package/dist/aws-cdk/constructs/s3.cjs.map +1 -0
  88. package/dist/{aws/cdk/constructs/s3-construct.d.ts → aws-cdk/constructs/s3.d.cts} +2 -1
  89. package/dist/{aws/cdk/constructs/s3-construct.d.cts → aws-cdk/constructs/s3.d.ts} +2 -1
  90. package/dist/{aws/cdk/constructs/s3-construct.js → aws-cdk/constructs/s3.js} +2 -2
  91. package/dist/aws-cdk/constructs/s3.js.map +1 -0
  92. package/dist/{aws/cdk/constructs/sns-construct.cjs → aws-cdk/constructs/sns.cjs} +2 -2
  93. package/dist/aws-cdk/constructs/sns.cjs.map +1 -0
  94. package/dist/{aws/cdk/constructs/sns-construct.d.ts → aws-cdk/constructs/sns.d.cts} +2 -1
  95. package/dist/{aws/cdk/constructs/sns-construct.d.cts → aws-cdk/constructs/sns.d.ts} +2 -1
  96. package/dist/{aws/cdk/constructs/sns-construct.js → aws-cdk/constructs/sns.js} +2 -2
  97. package/dist/aws-cdk/constructs/sns.js.map +1 -0
  98. package/dist/{aws/cdk/constructs/sqs-construct.cjs → aws-cdk/constructs/sqs.cjs} +2 -2
  99. package/dist/aws-cdk/constructs/sqs.cjs.map +1 -0
  100. package/dist/{aws/cdk/constructs/sqs-construct.d.ts → aws-cdk/constructs/sqs.d.cts} +2 -1
  101. package/dist/{aws/cdk/constructs/sqs-construct.d.cts → aws-cdk/constructs/sqs.d.ts} +2 -1
  102. package/dist/{aws/cdk/constructs/sqs-construct.js → aws-cdk/constructs/sqs.js} +2 -2
  103. package/dist/aws-cdk/constructs/sqs.js.map +1 -0
  104. package/dist/{aws/cdk/constructs/vpc-construct.cjs → aws-cdk/constructs/vpc.cjs} +2 -2
  105. package/dist/aws-cdk/constructs/vpc.cjs.map +1 -0
  106. package/dist/{aws/cdk/constructs/vpc-construct.d.ts → aws-cdk/constructs/vpc.d.cts} +2 -1
  107. package/dist/{aws/cdk/constructs/vpc-construct.d.cts → aws-cdk/constructs/vpc.d.ts} +2 -1
  108. package/dist/{aws/cdk/constructs/vpc-construct.js → aws-cdk/constructs/vpc.js} +2 -2
  109. package/dist/aws-cdk/constructs/vpc.js.map +1 -0
  110. package/dist/aws-cdk/stacks/lambda-api.cjs +252 -0
  111. package/dist/aws-cdk/stacks/lambda-api.cjs.map +1 -0
  112. package/dist/aws-cdk/stacks/lambda-api.d.cts +16 -0
  113. package/dist/aws-cdk/stacks/lambda-api.d.ts +16 -0
  114. package/dist/aws-cdk/stacks/lambda-api.js +250 -0
  115. package/dist/aws-cdk/stacks/lambda-api.js.map +1 -0
  116. package/dist/aws-cdk/stacks/lambda-sns.cjs +211 -0
  117. package/dist/aws-cdk/stacks/lambda-sns.cjs.map +1 -0
  118. package/dist/aws-cdk/stacks/lambda-sns.d.cts +17 -0
  119. package/dist/aws-cdk/stacks/lambda-sns.d.ts +17 -0
  120. package/dist/aws-cdk/stacks/lambda-sns.js +209 -0
  121. package/dist/aws-cdk/stacks/lambda-sns.js.map +1 -0
  122. package/dist/aws-cdk/stacks/lambda-sqs.cjs +220 -0
  123. package/dist/aws-cdk/stacks/lambda-sqs.cjs.map +1 -0
  124. package/dist/aws-cdk/stacks/lambda-sqs.d.cts +18 -0
  125. package/dist/aws-cdk/stacks/lambda-sqs.d.ts +18 -0
  126. package/dist/aws-cdk/stacks/lambda-sqs.js +218 -0
  127. package/dist/aws-cdk/stacks/lambda-sqs.js.map +1 -0
  128. package/dist/aws-types.cjs +4 -0
  129. package/dist/aws-types.cjs.map +1 -0
  130. package/dist/aws-types.d.cts +55 -0
  131. package/dist/aws-types.d.ts +55 -0
  132. package/dist/aws-types.js +3 -0
  133. package/dist/aws-types.js.map +1 -0
  134. package/dist/{aws/cdk/constructs/index.cjs → aws.cjs} +244 -23
  135. package/dist/aws.cjs.map +1 -0
  136. package/dist/aws.d.cts +40 -0
  137. package/dist/aws.d.ts +40 -0
  138. package/dist/{aws/index.js → aws.js} +243 -26
  139. package/dist/aws.js.map +1 -0
  140. package/dist/index.cjs +242 -21
  141. package/dist/index.cjs.map +1 -1
  142. package/dist/index.d.cts +24 -18
  143. package/dist/index.d.ts +24 -18
  144. package/dist/index.js +241 -24
  145. package/dist/index.js.map +1 -1
  146. package/package.json +160 -25
  147. package/dist/aws/cdk/constructs/api-gateway-construct.cjs.map +0 -1
  148. package/dist/aws/cdk/constructs/api-gateway-construct.js.map +0 -1
  149. package/dist/aws/cdk/constructs/api-gateway-v2-construct.cjs.map +0 -1
  150. package/dist/aws/cdk/constructs/api-gateway-v2-construct.js.map +0 -1
  151. package/dist/aws/cdk/constructs/api-gateway-websocket-construct.cjs.map +0 -1
  152. package/dist/aws/cdk/constructs/api-gateway-websocket-construct.js.map +0 -1
  153. package/dist/aws/cdk/constructs/cloudfront-construct.cjs.map +0 -1
  154. package/dist/aws/cdk/constructs/cloudfront-construct.js.map +0 -1
  155. package/dist/aws/cdk/constructs/cloudwatch-construct.cjs.map +0 -1
  156. package/dist/aws/cdk/constructs/cloudwatch-construct.js.map +0 -1
  157. package/dist/aws/cdk/constructs/dynamo-db-construct.cjs.map +0 -1
  158. package/dist/aws/cdk/constructs/dynamo-db-construct.js.map +0 -1
  159. package/dist/aws/cdk/constructs/event-bridge-construct.cjs.map +0 -1
  160. package/dist/aws/cdk/constructs/event-bridge-construct.js.map +0 -1
  161. package/dist/aws/cdk/constructs/index.cjs.map +0 -1
  162. package/dist/aws/cdk/constructs/index.d.cts +0 -34
  163. package/dist/aws/cdk/constructs/index.d.ts +0 -34
  164. package/dist/aws/cdk/constructs/index.js +0 -863
  165. package/dist/aws/cdk/constructs/index.js.map +0 -1
  166. package/dist/aws/cdk/constructs/lambda-authorizer-construct.cjs.map +0 -1
  167. package/dist/aws/cdk/constructs/lambda-authorizer-construct.js.map +0 -1
  168. package/dist/aws/cdk/constructs/lambda-authorizer-v2-construct.cjs.map +0 -1
  169. package/dist/aws/cdk/constructs/lambda-authorizer-v2-construct.js.map +0 -1
  170. package/dist/aws/cdk/constructs/lambda-construct.cjs.map +0 -1
  171. package/dist/aws/cdk/constructs/lambda-construct.js.map +0 -1
  172. package/dist/aws/cdk/constructs/lambda-layer-construct.cjs.map +0 -1
  173. package/dist/aws/cdk/constructs/lambda-layer-construct.js.map +0 -1
  174. package/dist/aws/cdk/constructs/role-policy-construct.cjs.map +0 -1
  175. package/dist/aws/cdk/constructs/role-policy-construct.js.map +0 -1
  176. package/dist/aws/cdk/constructs/s3-construct.cjs.map +0 -1
  177. package/dist/aws/cdk/constructs/s3-construct.js.map +0 -1
  178. package/dist/aws/cdk/constructs/s3-deployment-construct.cjs.map +0 -1
  179. package/dist/aws/cdk/constructs/s3-deployment-construct.js.map +0 -1
  180. package/dist/aws/cdk/constructs/sns-construct.cjs.map +0 -1
  181. package/dist/aws/cdk/constructs/sns-construct.js.map +0 -1
  182. package/dist/aws/cdk/constructs/sqs-construct.cjs.map +0 -1
  183. package/dist/aws/cdk/constructs/sqs-construct.js.map +0 -1
  184. package/dist/aws/cdk/constructs/vpc-construct.cjs.map +0 -1
  185. package/dist/aws/cdk/constructs/vpc-construct.js.map +0 -1
  186. package/dist/aws/cdk/index.cjs +0 -881
  187. package/dist/aws/cdk/index.cjs.map +0 -1
  188. package/dist/aws/cdk/index.d.cts +0 -34
  189. package/dist/aws/cdk/index.d.ts +0 -34
  190. package/dist/aws/cdk/index.js +0 -863
  191. package/dist/aws/cdk/index.js.map +0 -1
  192. package/dist/aws/cli/index.cjs +0 -4
  193. package/dist/aws/cli/index.cjs.map +0 -1
  194. package/dist/aws/cli/index.d.cts +0 -2
  195. package/dist/aws/cli/index.d.ts +0 -2
  196. package/dist/aws/cli/index.js +0 -3
  197. package/dist/aws/cli/index.js.map +0 -1
  198. package/dist/aws/index.cjs +0 -881
  199. package/dist/aws/index.cjs.map +0 -1
  200. package/dist/aws/index.d.cts +0 -34
  201. package/dist/aws/index.d.ts +0 -34
  202. package/dist/aws/index.js.map +0 -1
  203. package/dist/aws/types/index.cjs +0 -4
  204. package/dist/aws/types/index.cjs.map +0 -1
  205. package/dist/aws/types/index.d.cts +0 -18
  206. package/dist/aws/types/index.d.ts +0 -18
  207. package/dist/aws/types/index.js +0 -3
  208. package/dist/aws/types/index.js.map +0 -1
  209. package/dist/lint/index.cjs +0 -4
  210. package/dist/lint/index.cjs.map +0 -1
  211. package/dist/lint/index.d.cts +0 -2
  212. package/dist/lint/index.d.ts +0 -2
  213. package/dist/lint/index.js +0 -3
  214. package/dist/lint/index.js.map +0 -1
  215. package/dist/prettier/index.cjs +0 -4
  216. package/dist/prettier/index.cjs.map +0 -1
  217. package/dist/prettier/index.d.cts +0 -2
  218. package/dist/prettier/index.d.ts +0 -2
  219. package/dist/prettier/index.js +0 -3
  220. package/dist/prettier/index.js.map +0 -1
  221. package/dist/utility/index.cjs +0 -4
  222. package/dist/utility/index.cjs.map +0 -1
  223. package/dist/utility/index.d.cts +0 -2
  224. package/dist/utility/index.d.ts +0 -2
  225. package/dist/utility/index.js +0 -3
  226. package/dist/utility/index.js.map +0 -1
@@ -1,7 +1,8 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { Distribution, DistributionProps } from 'aws-cdk-lib/aws-cloudfront';
3
- import { IBaseCdkConstructProps } from '../../types/index.js';
3
+ import { IBaseCdkConstructProps } from '../../aws-types.cjs';
4
4
  import '@incloodsolutions/toolkit';
5
+ import 'aws-cdk-lib';
5
6
 
6
7
  /**
7
8
  * Props for BaseCloudfrontConstruct
@@ -1,7 +1,8 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { Distribution, DistributionProps } from 'aws-cdk-lib/aws-cloudfront';
3
- import { IBaseCdkConstructProps } from '../../types/index.cjs';
3
+ import { IBaseCdkConstructProps } from '../../aws-types.js';
4
4
  import '@incloodsolutions/toolkit';
5
+ import 'aws-cdk-lib';
5
6
 
6
7
  /**
7
8
  * Props for BaseCloudfrontConstruct
@@ -62,5 +62,5 @@ var BaseCloudfrontConstruct = class extends Construct {
62
62
  };
63
63
 
64
64
  export { BaseCloudfrontConstruct };
65
- //# sourceMappingURL=cloudfront-construct.js.map
66
- //# sourceMappingURL=cloudfront-construct.js.map
65
+ //# sourceMappingURL=cloudfront.js.map
66
+ //# sourceMappingURL=cloudfront.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/aws/cdk/constructs/cloudfront-construct.ts"],"names":[],"mappings":";;;;;;AAgCO,IAAM,uBAAA,GAAN,cAAsC,SAAA,CAAU;AAAA,EAhCvD;AAgCuD,IAAA,MAAA,CAAA,IAAA,EAAA,yBAAA,CAAA;AAAA;AAAA;AAAA,EAE7C,YAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,WAAA,CAAY,KAAA,EAAkB,EAAA,EAAY,KAAA,EAAkC;AAC3E,IAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAEf,IAAA,IAAA,CAAK,YAAA,GAAe,IAAI,YAAA,CAAa,IAAA,EAAM,EAAA,EAAI;AAAA,MAC9C,GAAG,MAAM,OAAA,EAAS,iBAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMlB,eAAA,EAAiB;AAAA,QAChB,GAAG,KAAA,CAAM,OAAA,EAAS,iBAAA,EAAmB,eAAA;AAAA,QACrC,sBACC,KAAA,CAAM,OAAA,EAAS,iBAAA,EAAmB,eAAA,EAC/B,wBAAwB,oBAAA,CAAqB;AAAA,OAClD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQA,cAAA,EAAgB;AAAA,QACf,GAAI,KAAA,CAAM,OAAA,EAAS,iBAAA,EAAmB,kBAAkB,EAAC;AAAA;AAAA,QAGzD;AAAA,UACC,UAAA,EAAY,GAAA;AAAA,UACZ,kBAAA,EAAoB,GAAA;AAAA,UACpB,gBAAA,EAAkB,aAAA;AAAA,UAClB,GAAA,EAAK,QAAA,CAAS,IAAA,CAAK,CAAC;AAAA,SACrB;AAAA;AAAA,QAGA;AAAA,UACC,UAAA,EAAY,GAAA;AAAA,UACZ,kBAAA,EAAoB,GAAA;AAAA,UACpB,gBAAA,EAAkB,aAAA;AAAA,UAClB,GAAA,EAAK,QAAA,CAAS,IAAA,CAAK,CAAC;AAAA,SACrB;AAAA;AAAA,QAGA;AAAA,UACC,UAAA,EAAY,GAAA;AAAA,UACZ,kBAAA,EAAoB,GAAA;AAAA,UACpB,gBAAA,EAAkB,aAAA;AAAA,UAClB,GAAA,EAAK,QAAA,CAAS,IAAA,CAAK,CAAC;AAAA;AACrB;AACD,KACA,CAAA;AAAA,EACF;AACD","file":"cloudfront.js","sourcesContent":["import { Construct } from 'constructs';\nimport { Duration } from 'aws-cdk-lib';\nimport {\n\tDistribution,\n\tDistributionProps,\n\tViewerProtocolPolicy,\n} from 'aws-cdk-lib/aws-cloudfront';\n\nimport { IBaseCdkConstructProps } from '../../types';\n\n/**\n * Props for BaseCloudfrontConstruct\n *\n * Provides configuration for creating a CloudFront distribution\n * with optional overrides for default behaviour and error handling.\n */\ninterface ICloudfrontConstructProps extends Omit<\n\tIBaseCdkConstructProps<{\n\t\t/** Partial configuration for the CloudFront distribution */\n\t\treadonly cloudfrontOptions: Partial<DistributionProps>;\n\t}>,\n\t'appName' | 'stage' | 'stackName'\n> {}\n\n/**\n * CDK construct for CloudFront distribution\n *\n * Responsibilities:\n * - Creates a CloudFront distribution with configurable options\n * - Enforces HTTPS redirection by default\n * - Adds fallback error responses for SPA routing (400, 403, 404 → index.html)\n */\nexport class BaseCloudfrontConstruct extends Construct {\n\t/** The created CloudFront distribution instance */\n\treadonly distribution: Distribution;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for CloudFront distribution\n\t */\n\tconstructor(scope: Construct, id: string, props: ICloudfrontConstructProps) {\n\t\tsuper(scope, id);\n\n\t\tthis.distribution = new Distribution(this, id, {\n\t\t\t...props.options?.cloudfrontOptions,\n\n\t\t\t/**\n\t\t\t * Default behaviour configuration\n\t\t\t * Enforces HTTPS if not explicitly defined\n\t\t\t */\n\t\t\tdefaultBehavior: {\n\t\t\t\t...props.options?.cloudfrontOptions?.defaultBehavior,\n\t\t\t\tviewerProtocolPolicy:\n\t\t\t\t\tprops.options?.cloudfrontOptions?.defaultBehavior\n\t\t\t\t\t\t?.viewerProtocolPolicy || ViewerProtocolPolicy.REDIRECT_TO_HTTPS,\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Error response configuration\n\t\t\t *\n\t\t\t * Adds SPA-friendly fallbacks:\n\t\t\t * - 400, 403, 404 responses are redirected to index.html\n\t\t\t */\n\t\t\terrorResponses: [\n\t\t\t\t...(props.options?.cloudfrontOptions?.errorResponses || []),\n\n\t\t\t\t/** Handle 400 errors */\n\t\t\t\t{\n\t\t\t\t\thttpStatus: 400,\n\t\t\t\t\tresponseHttpStatus: 200,\n\t\t\t\t\tresponsePagePath: '/index.html',\n\t\t\t\t\tttl: Duration.days(1),\n\t\t\t\t},\n\n\t\t\t\t/** Handle 403 errors */\n\t\t\t\t{\n\t\t\t\t\thttpStatus: 403,\n\t\t\t\t\tresponseHttpStatus: 200,\n\t\t\t\t\tresponsePagePath: '/index.html',\n\t\t\t\t\tttl: Duration.days(1),\n\t\t\t\t},\n\n\t\t\t\t/** Handle 404 errors */\n\t\t\t\t{\n\t\t\t\t\thttpStatus: 404,\n\t\t\t\t\tresponseHttpStatus: 200,\n\t\t\t\t\tresponsePagePath: '/index.html',\n\t\t\t\t\tttl: Duration.days(1),\n\t\t\t\t},\n\t\t\t],\n\t\t});\n\t}\n}\n"]}
@@ -39,5 +39,5 @@ var BaseCloudwatchLogGroupConstruct = class extends constructs.Construct {
39
39
  };
40
40
 
41
41
  exports.BaseCloudwatchLogGroupConstruct = BaseCloudwatchLogGroupConstruct;
42
- //# sourceMappingURL=cloudwatch-construct.cjs.map
43
- //# sourceMappingURL=cloudwatch-construct.cjs.map
42
+ //# sourceMappingURL=cloudwatch.cjs.map
43
+ //# sourceMappingURL=cloudwatch.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/aws/cdk/constructs/cloudwatch-construct.ts"],"names":["Construct","LogGroup","RemovalPolicy","RetentionDays","CfnOutput"],"mappings":";;;;;;;;AA4BO,IAAM,+BAAA,GAAN,cAA8CA,oBAAA,CAAU;AAAA,EA5B/D;AA4B+D,IAAA,MAAA,CAAA,IAAA,EAAA,iCAAA,CAAA;AAAA;AAAA;AAAA,EAErD,QAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,WAAA,CAAY,KAAA,EAAkB,EAAA,EAAY,KAAA,EAAgC;AACzE,IAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAEf,IAAA,IAAA,CAAK,QAAA,GAAW,IAAIC,gBAAA,CAAS,IAAA,EAAM,EAAA,EAAI;AAAA,MACtC,GAAG,MAAM,OAAA,EAAS,eAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMlB,aAAA,EACC,KAAA,EAAO,OAAA,EAAS,eAAA,EAAiB,iBAAiBC,uBAAA,CAAc,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMjE,SAAA,EACC,KAAA,EAAO,OAAA,EAAS,eAAA,EAAiB,aAAaC,qBAAA,CAAc;AAAA,KAC7D,CAAA;AAKD,IAAA,IAAIC,mBAAA,CAAU,MAAM,eAAA,EAAiB;AAAA,MACpC,KAAA,EAAO,KAAK,QAAA,CAAS;AAAA,KACrB,CAAA;AAAA,EACF;AACD","file":"cloudwatch.cjs","sourcesContent":["import { Construct } from 'constructs';\nimport { CfnOutput, RemovalPolicy } from 'aws-cdk-lib';\nimport { LogGroup, LogGroupProps, RetentionDays } from 'aws-cdk-lib/aws-logs';\n\nimport { IBaseCdkConstructProps } from '../../types';\n\n/**\n * Props for BaseCloudwatchLogGroupConstruct\n *\n * Provides configuration for creating a CloudWatch Log Group\n * with optional overrides for retention and removal policy.\n */\ninterface ILogGroupConstructProps extends Omit<\n\tIBaseCdkConstructProps<{\n\t\t/** Log Group configuration options */\n\t\treadonly logGroupOptions: LogGroupProps;\n\t}>,\n\t'appName' | 'stage' | 'stackName'\n> {}\n\n/**\n * CDK construct for CloudWatch Log Group\n *\n * Responsibilities:\n * - Creates a log group with configurable options\n * - Applies default removal policy and retention if not provided\n * - Exposes the log group ARN as a CloudFormation output\n */\nexport class BaseCloudwatchLogGroupConstruct extends Construct {\n\t/** The created CloudWatch Log Group instance */\n\treadonly logGroup: LogGroup;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for the log group\n\t */\n\tconstructor(scope: Construct, id: string, props: ILogGroupConstructProps) {\n\t\tsuper(scope, id);\n\n\t\tthis.logGroup = new LogGroup(this, id, {\n\t\t\t...props.options?.logGroupOptions,\n\n\t\t\t/**\n\t\t\t * Removal policy applied to the log group\n\t\t\t * Defaults to DESTROY when not explicitly defined\n\t\t\t */\n\t\t\tremovalPolicy:\n\t\t\t\tprops?.options?.logGroupOptions?.removalPolicy || RemovalPolicy.DESTROY,\n\n\t\t\t/**\n\t\t\t * Log retention period\n\t\t\t * Defaults to INFINITE when not explicitly defined\n\t\t\t */\n\t\t\tretention:\n\t\t\t\tprops?.options?.logGroupOptions?.retention || RetentionDays.INFINITE,\n\t\t});\n\n\t\t/**\n\t\t * CloudFormation output exposing the Log Group ARN\n\t\t */\n\t\tnew CfnOutput(this, 'CloudwatchArn', {\n\t\t\tvalue: this.logGroup.logGroupArn,\n\t\t});\n\t}\n}\n"]}
@@ -1,7 +1,8 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { LogGroup, LogGroupProps } from 'aws-cdk-lib/aws-logs';
3
- import { IBaseCdkConstructProps } from '../../types/index.js';
3
+ import { IBaseCdkConstructProps } from '../../aws-types.cjs';
4
4
  import '@incloodsolutions/toolkit';
5
+ import 'aws-cdk-lib';
5
6
 
6
7
  /**
7
8
  * Props for BaseCloudwatchLogGroupConstruct
@@ -1,7 +1,8 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { LogGroup, LogGroupProps } from 'aws-cdk-lib/aws-logs';
3
- import { IBaseCdkConstructProps } from '../../types/index.cjs';
3
+ import { IBaseCdkConstructProps } from '../../aws-types.js';
4
4
  import '@incloodsolutions/toolkit';
5
+ import 'aws-cdk-lib';
5
6
 
6
7
  /**
7
8
  * Props for BaseCloudwatchLogGroupConstruct
@@ -37,5 +37,5 @@ var BaseCloudwatchLogGroupConstruct = class extends Construct {
37
37
  };
38
38
 
39
39
  export { BaseCloudwatchLogGroupConstruct };
40
- //# sourceMappingURL=cloudwatch-construct.js.map
41
- //# sourceMappingURL=cloudwatch-construct.js.map
40
+ //# sourceMappingURL=cloudwatch.js.map
41
+ //# sourceMappingURL=cloudwatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/aws/cdk/constructs/cloudwatch-construct.ts"],"names":[],"mappings":";;;;;;AA4BO,IAAM,+BAAA,GAAN,cAA8C,SAAA,CAAU;AAAA,EA5B/D;AA4B+D,IAAA,MAAA,CAAA,IAAA,EAAA,iCAAA,CAAA;AAAA;AAAA;AAAA,EAErD,QAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,WAAA,CAAY,KAAA,EAAkB,EAAA,EAAY,KAAA,EAAgC;AACzE,IAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAEf,IAAA,IAAA,CAAK,QAAA,GAAW,IAAI,QAAA,CAAS,IAAA,EAAM,EAAA,EAAI;AAAA,MACtC,GAAG,MAAM,OAAA,EAAS,eAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMlB,aAAA,EACC,KAAA,EAAO,OAAA,EAAS,eAAA,EAAiB,iBAAiB,aAAA,CAAc,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMjE,SAAA,EACC,KAAA,EAAO,OAAA,EAAS,eAAA,EAAiB,aAAa,aAAA,CAAc;AAAA,KAC7D,CAAA;AAKD,IAAA,IAAI,SAAA,CAAU,MAAM,eAAA,EAAiB;AAAA,MACpC,KAAA,EAAO,KAAK,QAAA,CAAS;AAAA,KACrB,CAAA;AAAA,EACF;AACD","file":"cloudwatch.js","sourcesContent":["import { Construct } from 'constructs';\nimport { CfnOutput, RemovalPolicy } from 'aws-cdk-lib';\nimport { LogGroup, LogGroupProps, RetentionDays } from 'aws-cdk-lib/aws-logs';\n\nimport { IBaseCdkConstructProps } from '../../types';\n\n/**\n * Props for BaseCloudwatchLogGroupConstruct\n *\n * Provides configuration for creating a CloudWatch Log Group\n * with optional overrides for retention and removal policy.\n */\ninterface ILogGroupConstructProps extends Omit<\n\tIBaseCdkConstructProps<{\n\t\t/** Log Group configuration options */\n\t\treadonly logGroupOptions: LogGroupProps;\n\t}>,\n\t'appName' | 'stage' | 'stackName'\n> {}\n\n/**\n * CDK construct for CloudWatch Log Group\n *\n * Responsibilities:\n * - Creates a log group with configurable options\n * - Applies default removal policy and retention if not provided\n * - Exposes the log group ARN as a CloudFormation output\n */\nexport class BaseCloudwatchLogGroupConstruct extends Construct {\n\t/** The created CloudWatch Log Group instance */\n\treadonly logGroup: LogGroup;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for the log group\n\t */\n\tconstructor(scope: Construct, id: string, props: ILogGroupConstructProps) {\n\t\tsuper(scope, id);\n\n\t\tthis.logGroup = new LogGroup(this, id, {\n\t\t\t...props.options?.logGroupOptions,\n\n\t\t\t/**\n\t\t\t * Removal policy applied to the log group\n\t\t\t * Defaults to DESTROY when not explicitly defined\n\t\t\t */\n\t\t\tremovalPolicy:\n\t\t\t\tprops?.options?.logGroupOptions?.removalPolicy || RemovalPolicy.DESTROY,\n\n\t\t\t/**\n\t\t\t * Log retention period\n\t\t\t * Defaults to INFINITE when not explicitly defined\n\t\t\t */\n\t\t\tretention:\n\t\t\t\tprops?.options?.logGroupOptions?.retention || RetentionDays.INFINITE,\n\t\t});\n\n\t\t/**\n\t\t * CloudFormation output exposing the Log Group ARN\n\t\t */\n\t\tnew CfnOutput(this, 'CloudwatchArn', {\n\t\t\tvalue: this.logGroup.logGroupArn,\n\t\t});\n\t}\n}\n"]}
@@ -109,5 +109,5 @@ var BaseDynamoDBConstruct = class _BaseDynamoDBConstruct extends constructs.Cons
109
109
  };
110
110
 
111
111
  exports.BaseDynamoDBConstruct = BaseDynamoDBConstruct;
112
- //# sourceMappingURL=dynamo-db-construct.cjs.map
113
- //# sourceMappingURL=dynamo-db-construct.cjs.map
112
+ //# sourceMappingURL=dynamo-db.cjs.map
113
+ //# sourceMappingURL=dynamo-db.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/aws/cdk/constructs/dynamo-db-construct.ts"],"names":["Construct","Table","printLog","BillingMode","CfnOutput"],"mappings":"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","file":"dynamo-db.cjs","sourcesContent":["import { Construct } from 'constructs';\nimport { CfnOutput } from 'aws-cdk-lib';\nimport {\n\tBillingMode,\n\tGlobalSecondaryIndexProps,\n\tITable,\n\tLocalSecondaryIndexProps,\n\tTable,\n\tTableAttributes,\n\tTableProps,\n} from 'aws-cdk-lib/aws-dynamodb';\n\nimport { printLog } from '@incloodsolutions/toolkit';\n\nimport { IBaseCdkConstructProps, IBaseConstruct } from '../../types';\n\n/**\n * Props for BaseDynamoDBConstruct\n *\n * Provides configuration for:\n * - Creating a new DynamoDB table\n * - Importing an existing table (by name, ARN, or attributes)\n * - Defining Global Secondary Indexes (GSI) and Local Secondary Indexes (LSI)\n */\ninterface IDynamoDBConstructProps extends Omit<\n\tIBaseCdkConstructProps<{\n\t\t/** Configuration for creating a new table */\n\t\treadonly tableOptions?: TableProps;\n\n\t\t/** Import an existing table by ARN */\n\t\treadonly fromExistingTableArn?: string;\n\n\t\t/** Import an existing table by name */\n\t\treadonly fromExistingTableName?: string;\n\n\t\t/** Import an existing table using attributes */\n\t\treadonly fromExistingTableAttributes?: TableAttributes;\n\n\t\t/** Global Secondary Index definitions */\n\t\treadonly globalSecondaryIndexes?: GlobalSecondaryIndexProps[];\n\n\t\t/** Local Secondary Index definitions */\n\t\treadonly localSecondaryIndexes?: LocalSecondaryIndexProps[];\n\t}>,\n\t'appName' | 'stackName'\n> {}\n\n/**\n * CDK construct for DynamoDB table management\n *\n * Responsibilities:\n * - Creates a new DynamoDB table or imports an existing one\n * - Applies default billing mode and deletion protection\n * - Attaches optional GSIs and LSIs\n * - Exposes table ARN as a CloudFormation output\n */\nexport class BaseDynamoDBConstruct extends Construct implements IBaseConstruct {\n\t/** Newly created DynamoDB table (null if importing existing table) */\n\treadonly table: Table;\n\n\t/** Imported DynamoDB table reference (null if creating new table) */\n\treadonly existingTable: ITable;\n\n\t/** Enables debug logging */\n\tenableDebug = false;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for table creation or import\n\t */\n\tconstructor(scope: Construct, id: string, props: IDynamoDBConstructProps) {\n\t\tsuper(scope, id);\n\n\t\tthis.enableDebug = props?.enableDebug;\n\n\t\t/**\n\t\t * Import table by name\n\t\t */\n\t\tif (props.options?.fromExistingTableName) {\n\t\t\tthis.table = null;\n\n\t\t\tthis.existingTable = Table.fromTableName(\n\t\t\t\tthis,\n\t\t\t\t`${id}-RefName`,\n\t\t\t\tprops.options.fromExistingTableName,\n\t\t\t);\n\n\t\t\tif (this.enableDebug) {\n\t\t\t\tprintLog(\n\t\t\t\t\tBaseDynamoDBConstruct.name,\n\t\t\t\t\t`Created Dynamo-DB table from existing using name ${props.options?.fromExistingTableName}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Import table by ARN\n\t\t\t */\n\t\t} else if (props.options?.fromExistingTableArn) {\n\t\t\tthis.table = null;\n\n\t\t\tthis.existingTable = Table.fromTableArn(\n\t\t\t\tthis,\n\t\t\t\t`${id}-RefArn`,\n\t\t\t\tprops.options.fromExistingTableArn,\n\t\t\t);\n\n\t\t\tif (this.enableDebug) {\n\t\t\t\tprintLog(\n\t\t\t\t\tBaseDynamoDBConstruct.name,\n\t\t\t\t\t`Created Dynamo-DB table from existing using ARN`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Import table using attributes\n\t\t\t */\n\t\t} else if (props.options?.fromExistingTableAttributes) {\n\t\t\tthis.table = null;\n\n\t\t\tthis.existingTable = Table.fromTableAttributes(\n\t\t\t\tthis,\n\t\t\t\t`${id}-RefAttributes`,\n\t\t\t\tprops.options.fromExistingTableAttributes,\n\t\t\t);\n\n\t\t\tif (this.enableDebug) {\n\t\t\t\tprintLog(\n\t\t\t\t\tBaseDynamoDBConstruct.name,\n\t\t\t\t\t`Created Dynamo-DB table from existing attributes`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Create new table\n\t\t\t */\n\t\t} else {\n\t\t\tthis.existingTable = null;\n\n\t\t\tthis.table = new Table(this, id, {\n\t\t\t\t...props.options?.tableOptions,\n\n\t\t\t\t/**\n\t\t\t\t * Billing mode defaults to PAY_PER_REQUEST if not provided\n\t\t\t\t */\n\t\t\t\tbillingMode:\n\t\t\t\t\tprops.options?.tableOptions?.billingMode ||\n\t\t\t\t\tBillingMode.PAY_PER_REQUEST,\n\n\t\t\t\t/**\n\t\t\t\t * Deletion protection:\n\t\t\t\t * - Uses explicit value if provided\n\t\t\t\t * - Defaults to true in production stage\n\t\t\t\t */\n\t\t\t\tdeletionProtection:\n\t\t\t\t\tprops.options?.tableOptions?.deletionProtection === true ||\n\t\t\t\t\tprops.options?.tableOptions?.deletionProtection === false\n\t\t\t\t\t\t? props.options.tableOptions.deletionProtection\n\t\t\t\t\t\t: props.stage === 'production',\n\t\t\t});\n\n\t\t\t/**\n\t\t\t * Attach Global Secondary Indexes (GSI)\n\t\t\t */\n\t\t\tif (props.options?.globalSecondaryIndexes?.length) {\n\t\t\t\tprops.options.globalSecondaryIndexes.forEach((globalIndex) => {\n\t\t\t\t\tthis.table.addGlobalSecondaryIndex(globalIndex);\n\n\t\t\t\t\tif (this.enableDebug) {\n\t\t\t\t\t\tprintLog(\n\t\t\t\t\t\t\tBaseDynamoDBConstruct.name,\n\t\t\t\t\t\t\t`Added GSI: ${globalIndex.indexName}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Attach Local Secondary Indexes (LSI)\n\t\t\t */\n\t\t\tif (props.options?.localSecondaryIndexes?.length) {\n\t\t\t\tprops.options.localSecondaryIndexes.forEach((localIndex) => {\n\t\t\t\t\tthis.table.addLocalSecondaryIndex(localIndex);\n\n\t\t\t\t\tif (this.enableDebug) {\n\t\t\t\t\t\tprintLog(\n\t\t\t\t\t\t\tBaseDynamoDBConstruct.name,\n\t\t\t\t\t\t\t`Added LSI: ${localIndex.indexName}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * CloudFormation output exposing the table ARN\n\t\t * Resolves to either created or imported table\n\t\t */\n\t\tnew CfnOutput(this, 'DynamoDbArn', {\n\t\t\tvalue:\n\t\t\t\tprops.options?.fromExistingTableName ||\n\t\t\t\tprops.options?.fromExistingTableArn\n\t\t\t\t\t? this.existingTable.tableArn\n\t\t\t\t\t: this.table.tableArn,\n\t\t});\n\t}\n}\n"]}
@@ -1,7 +1,8 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { Table, ITable, TableProps, TableAttributes, GlobalSecondaryIndexProps, LocalSecondaryIndexProps } from 'aws-cdk-lib/aws-dynamodb';
3
- import { IBaseConstruct, IBaseCdkConstructProps } from '../../types/index.js';
3
+ import { IBaseConstruct, IBaseCdkConstructProps } from '../../aws-types.cjs';
4
4
  import '@incloodsolutions/toolkit';
5
+ import 'aws-cdk-lib';
5
6
 
6
7
  /**
7
8
  * Props for BaseDynamoDBConstruct
@@ -1,7 +1,8 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { Table, ITable, TableProps, TableAttributes, GlobalSecondaryIndexProps, LocalSecondaryIndexProps } from 'aws-cdk-lib/aws-dynamodb';
3
- import { IBaseConstruct, IBaseCdkConstructProps } from '../../types/index.cjs';
3
+ import { IBaseConstruct, IBaseCdkConstructProps } from '../../aws-types.js';
4
4
  import '@incloodsolutions/toolkit';
5
+ import 'aws-cdk-lib';
5
6
 
6
7
  /**
7
8
  * Props for BaseDynamoDBConstruct
@@ -107,5 +107,5 @@ var BaseDynamoDBConstruct = class _BaseDynamoDBConstruct extends Construct {
107
107
  };
108
108
 
109
109
  export { BaseDynamoDBConstruct };
110
- //# sourceMappingURL=dynamo-db-construct.js.map
111
- //# sourceMappingURL=dynamo-db-construct.js.map
110
+ //# sourceMappingURL=dynamo-db.js.map
111
+ //# sourceMappingURL=dynamo-db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/aws/cdk/constructs/dynamo-db-construct.ts"],"names":[],"mappings":"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","file":"dynamo-db.js","sourcesContent":["import { Construct } from 'constructs';\nimport { CfnOutput } from 'aws-cdk-lib';\nimport {\n\tBillingMode,\n\tGlobalSecondaryIndexProps,\n\tITable,\n\tLocalSecondaryIndexProps,\n\tTable,\n\tTableAttributes,\n\tTableProps,\n} from 'aws-cdk-lib/aws-dynamodb';\n\nimport { printLog } from '@incloodsolutions/toolkit';\n\nimport { IBaseCdkConstructProps, IBaseConstruct } from '../../types';\n\n/**\n * Props for BaseDynamoDBConstruct\n *\n * Provides configuration for:\n * - Creating a new DynamoDB table\n * - Importing an existing table (by name, ARN, or attributes)\n * - Defining Global Secondary Indexes (GSI) and Local Secondary Indexes (LSI)\n */\ninterface IDynamoDBConstructProps extends Omit<\n\tIBaseCdkConstructProps<{\n\t\t/** Configuration for creating a new table */\n\t\treadonly tableOptions?: TableProps;\n\n\t\t/** Import an existing table by ARN */\n\t\treadonly fromExistingTableArn?: string;\n\n\t\t/** Import an existing table by name */\n\t\treadonly fromExistingTableName?: string;\n\n\t\t/** Import an existing table using attributes */\n\t\treadonly fromExistingTableAttributes?: TableAttributes;\n\n\t\t/** Global Secondary Index definitions */\n\t\treadonly globalSecondaryIndexes?: GlobalSecondaryIndexProps[];\n\n\t\t/** Local Secondary Index definitions */\n\t\treadonly localSecondaryIndexes?: LocalSecondaryIndexProps[];\n\t}>,\n\t'appName' | 'stackName'\n> {}\n\n/**\n * CDK construct for DynamoDB table management\n *\n * Responsibilities:\n * - Creates a new DynamoDB table or imports an existing one\n * - Applies default billing mode and deletion protection\n * - Attaches optional GSIs and LSIs\n * - Exposes table ARN as a CloudFormation output\n */\nexport class BaseDynamoDBConstruct extends Construct implements IBaseConstruct {\n\t/** Newly created DynamoDB table (null if importing existing table) */\n\treadonly table: Table;\n\n\t/** Imported DynamoDB table reference (null if creating new table) */\n\treadonly existingTable: ITable;\n\n\t/** Enables debug logging */\n\tenableDebug = false;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for table creation or import\n\t */\n\tconstructor(scope: Construct, id: string, props: IDynamoDBConstructProps) {\n\t\tsuper(scope, id);\n\n\t\tthis.enableDebug = props?.enableDebug;\n\n\t\t/**\n\t\t * Import table by name\n\t\t */\n\t\tif (props.options?.fromExistingTableName) {\n\t\t\tthis.table = null;\n\n\t\t\tthis.existingTable = Table.fromTableName(\n\t\t\t\tthis,\n\t\t\t\t`${id}-RefName`,\n\t\t\t\tprops.options.fromExistingTableName,\n\t\t\t);\n\n\t\t\tif (this.enableDebug) {\n\t\t\t\tprintLog(\n\t\t\t\t\tBaseDynamoDBConstruct.name,\n\t\t\t\t\t`Created Dynamo-DB table from existing using name ${props.options?.fromExistingTableName}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Import table by ARN\n\t\t\t */\n\t\t} else if (props.options?.fromExistingTableArn) {\n\t\t\tthis.table = null;\n\n\t\t\tthis.existingTable = Table.fromTableArn(\n\t\t\t\tthis,\n\t\t\t\t`${id}-RefArn`,\n\t\t\t\tprops.options.fromExistingTableArn,\n\t\t\t);\n\n\t\t\tif (this.enableDebug) {\n\t\t\t\tprintLog(\n\t\t\t\t\tBaseDynamoDBConstruct.name,\n\t\t\t\t\t`Created Dynamo-DB table from existing using ARN`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Import table using attributes\n\t\t\t */\n\t\t} else if (props.options?.fromExistingTableAttributes) {\n\t\t\tthis.table = null;\n\n\t\t\tthis.existingTable = Table.fromTableAttributes(\n\t\t\t\tthis,\n\t\t\t\t`${id}-RefAttributes`,\n\t\t\t\tprops.options.fromExistingTableAttributes,\n\t\t\t);\n\n\t\t\tif (this.enableDebug) {\n\t\t\t\tprintLog(\n\t\t\t\t\tBaseDynamoDBConstruct.name,\n\t\t\t\t\t`Created Dynamo-DB table from existing attributes`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Create new table\n\t\t\t */\n\t\t} else {\n\t\t\tthis.existingTable = null;\n\n\t\t\tthis.table = new Table(this, id, {\n\t\t\t\t...props.options?.tableOptions,\n\n\t\t\t\t/**\n\t\t\t\t * Billing mode defaults to PAY_PER_REQUEST if not provided\n\t\t\t\t */\n\t\t\t\tbillingMode:\n\t\t\t\t\tprops.options?.tableOptions?.billingMode ||\n\t\t\t\t\tBillingMode.PAY_PER_REQUEST,\n\n\t\t\t\t/**\n\t\t\t\t * Deletion protection:\n\t\t\t\t * - Uses explicit value if provided\n\t\t\t\t * - Defaults to true in production stage\n\t\t\t\t */\n\t\t\t\tdeletionProtection:\n\t\t\t\t\tprops.options?.tableOptions?.deletionProtection === true ||\n\t\t\t\t\tprops.options?.tableOptions?.deletionProtection === false\n\t\t\t\t\t\t? props.options.tableOptions.deletionProtection\n\t\t\t\t\t\t: props.stage === 'production',\n\t\t\t});\n\n\t\t\t/**\n\t\t\t * Attach Global Secondary Indexes (GSI)\n\t\t\t */\n\t\t\tif (props.options?.globalSecondaryIndexes?.length) {\n\t\t\t\tprops.options.globalSecondaryIndexes.forEach((globalIndex) => {\n\t\t\t\t\tthis.table.addGlobalSecondaryIndex(globalIndex);\n\n\t\t\t\t\tif (this.enableDebug) {\n\t\t\t\t\t\tprintLog(\n\t\t\t\t\t\t\tBaseDynamoDBConstruct.name,\n\t\t\t\t\t\t\t`Added GSI: ${globalIndex.indexName}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Attach Local Secondary Indexes (LSI)\n\t\t\t */\n\t\t\tif (props.options?.localSecondaryIndexes?.length) {\n\t\t\t\tprops.options.localSecondaryIndexes.forEach((localIndex) => {\n\t\t\t\t\tthis.table.addLocalSecondaryIndex(localIndex);\n\n\t\t\t\t\tif (this.enableDebug) {\n\t\t\t\t\t\tprintLog(\n\t\t\t\t\t\t\tBaseDynamoDBConstruct.name,\n\t\t\t\t\t\t\t`Added LSI: ${localIndex.indexName}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * CloudFormation output exposing the table ARN\n\t\t * Resolves to either created or imported table\n\t\t */\n\t\tnew CfnOutput(this, 'DynamoDbArn', {\n\t\t\tvalue:\n\t\t\t\tprops.options?.fromExistingTableName ||\n\t\t\t\tprops.options?.fromExistingTableArn\n\t\t\t\t\t? this.existingTable.tableArn\n\t\t\t\t\t: this.table.tableArn,\n\t\t});\n\t}\n}\n"]}
@@ -43,5 +43,5 @@ var BaseEventBridgeConstruct = class extends constructs.Construct {
43
43
  };
44
44
 
45
45
  exports.BaseEventBridgeConstruct = BaseEventBridgeConstruct;
46
- //# sourceMappingURL=event-bridge-construct.cjs.map
47
- //# sourceMappingURL=event-bridge-construct.cjs.map
46
+ //# sourceMappingURL=event-bridge.cjs.map
47
+ //# sourceMappingURL=event-bridge.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/aws/cdk/constructs/event-bridge-construct.ts"],"names":["Construct","Rule","LambdaFunction","RemovalPolicy","CfnOutput"],"mappings":";;;;;;;;;AAmCO,IAAM,wBAAA,GAAN,cAAuCA,oBAAA,CAAU;AAAA,EAnCxD;AAmCwD,IAAA,MAAA,CAAA,IAAA,EAAA,0BAAA,CAAA;AAAA;AAAA;AAAA,EAE9C,aAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,WAAA,CAAY,KAAA,EAAkB,EAAA,EAAY,KAAA,EAAmC;AAC5E,IAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAEf,IAAA,IAAA,CAAK,aAAA,GAAgB,IAAIC,cAAA,CAAK,IAAA,EAAM,EAAA,EAAI;AAAA,MACvC,GAAG,MAAM,OAAA,EAAS,kBAAA;AAAA;AAAA,MAGlB,WAAA,EACC,KAAA,EAAO,OAAA,EAAS,kBAAA,EAAoB,WAAA,IACpC;AAAA,KACD,CAAA;AAKD,IAAA,IAAI,KAAA,CAAM,OAAA,EAAS,eAAA,EAAiB,MAAA,EAAQ;AAC3C,MAAA,KAAA,CAAM,OAAA,CAAQ,eAAA,CAAgB,OAAA,CAAQ,CAAC,cAAA,KAAmB;AACzD,QAAA,IAAA,CAAK,aAAA,CAAc,SAAA;AAAA;AAAA;AAAA;AAAA,UAIlB,IAAIC,gCAAe,cAAc;AAAA,SAClC;AAAA,MACD,CAAC,CAAA;AAAA,IACF;AAKA,IAAA,IAAA,CAAK,aAAA,CAAc,kBAAA,CAAmBC,uBAAA,CAAc,OAAO,CAAA;AAK3D,IAAA,IAAIC,mBAAA,CAAU,MAAM,gBAAA,EAAkB;AAAA,MACrC,KAAA,EAAO,KAAK,aAAA,CAAc;AAAA,KAC1B,CAAA;AAAA,EACF;AACD","file":"event-bridge.cjs","sourcesContent":["import { Construct } from 'constructs';\nimport { Function } from 'aws-cdk-lib/aws-lambda';\nimport { CfnOutput, RemovalPolicy } from 'aws-cdk-lib';\nimport { Rule, RuleProps } from 'aws-cdk-lib/aws-events';\nimport { LambdaFunction } from 'aws-cdk-lib/aws-events-targets';\n\nimport { IBaseCdkConstructProps } from '../../types';\n\n/**\n * Props for BaseEventBridgeConstruct\n *\n * Provides configuration for:\n * - EventBridge rule creation\n * - Target Lambda functions\n */\ninterface IEventBridgeConstructProps extends Omit<\n\tIBaseCdkConstructProps<{\n\t\t/** Lambda functions to be triggered by the rule */\n\t\treadonly targetFunctions: Function[];\n\n\t\t/** EventBridge rule configuration */\n\t\treadonly eventBridgeOptions: RuleProps;\n\t}>,\n\t'appName' | 'stage' | 'stackName'\n> {}\n\n/**\n * CDK construct for EventBridge rule\n *\n * Responsibilities:\n * - Creates an EventBridge rule with configurable options\n * - Attaches one or more Lambda targets\n * - Applies a removal policy\n * - Exposes the rule ARN as a CloudFormation output\n */\nexport class BaseEventBridgeConstruct extends Construct {\n\t/** The created EventBridge rule instance */\n\treadonly eventSchedule: Rule;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for rule and target functions\n\t */\n\tconstructor(scope: Construct, id: string, props: IEventBridgeConstructProps) {\n\t\tsuper(scope, id);\n\n\t\tthis.eventSchedule = new Rule(this, id, {\n\t\t\t...props.options?.eventBridgeOptions,\n\n\t\t\t/** Default description if not explicitly provided */\n\t\t\tdescription:\n\t\t\t\tprops?.options?.eventBridgeOptions?.description ||\n\t\t\t\t'An Event-bridge rule',\n\t\t});\n\n\t\t/**\n\t\t * Attach Lambda targets to the rule\n\t\t */\n\t\tif (props.options?.targetFunctions?.length) {\n\t\t\tprops.options.targetFunctions.forEach((targetFunction) => {\n\t\t\t\tthis.eventSchedule.addTarget(\n\t\t\t\t\t/**\n\t\t\t\t\t * Lambda target integration\n\t\t\t\t\t */\n\t\t\t\t\tnew LambdaFunction(targetFunction),\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Apply removal policy (useful for non-production environments)\n\t\t */\n\t\tthis.eventSchedule.applyRemovalPolicy(RemovalPolicy.DESTROY);\n\n\t\t/**\n\t\t * CloudFormation output exposing the rule ARN\n\t\t */\n\t\tnew CfnOutput(this, 'EventBridgeArn', {\n\t\t\tvalue: this.eventSchedule.ruleArn,\n\t\t});\n\t}\n}\n"]}
@@ -1,8 +1,9 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { Function } from 'aws-cdk-lib/aws-lambda';
3
3
  import { Rule, RuleProps } from 'aws-cdk-lib/aws-events';
4
- import { IBaseCdkConstructProps } from '../../types/index.js';
4
+ import { IBaseCdkConstructProps } from '../../aws-types.cjs';
5
5
  import '@incloodsolutions/toolkit';
6
+ import 'aws-cdk-lib';
6
7
 
7
8
  /**
8
9
  * Props for BaseEventBridgeConstruct
@@ -1,8 +1,9 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { Function } from 'aws-cdk-lib/aws-lambda';
3
3
  import { Rule, RuleProps } from 'aws-cdk-lib/aws-events';
4
- import { IBaseCdkConstructProps } from '../../types/index.cjs';
4
+ import { IBaseCdkConstructProps } from '../../aws-types.js';
5
5
  import '@incloodsolutions/toolkit';
6
+ import 'aws-cdk-lib';
6
7
 
7
8
  /**
8
9
  * Props for BaseEventBridgeConstruct
@@ -41,5 +41,5 @@ var BaseEventBridgeConstruct = class extends Construct {
41
41
  };
42
42
 
43
43
  export { BaseEventBridgeConstruct };
44
- //# sourceMappingURL=event-bridge-construct.js.map
45
- //# sourceMappingURL=event-bridge-construct.js.map
44
+ //# sourceMappingURL=event-bridge.js.map
45
+ //# sourceMappingURL=event-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/aws/cdk/constructs/event-bridge-construct.ts"],"names":[],"mappings":";;;;;;;AAmCO,IAAM,wBAAA,GAAN,cAAuC,SAAA,CAAU;AAAA,EAnCxD;AAmCwD,IAAA,MAAA,CAAA,IAAA,EAAA,0BAAA,CAAA;AAAA;AAAA;AAAA,EAE9C,aAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,WAAA,CAAY,KAAA,EAAkB,EAAA,EAAY,KAAA,EAAmC;AAC5E,IAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAEf,IAAA,IAAA,CAAK,aAAA,GAAgB,IAAI,IAAA,CAAK,IAAA,EAAM,EAAA,EAAI;AAAA,MACvC,GAAG,MAAM,OAAA,EAAS,kBAAA;AAAA;AAAA,MAGlB,WAAA,EACC,KAAA,EAAO,OAAA,EAAS,kBAAA,EAAoB,WAAA,IACpC;AAAA,KACD,CAAA;AAKD,IAAA,IAAI,KAAA,CAAM,OAAA,EAAS,eAAA,EAAiB,MAAA,EAAQ;AAC3C,MAAA,KAAA,CAAM,OAAA,CAAQ,eAAA,CAAgB,OAAA,CAAQ,CAAC,cAAA,KAAmB;AACzD,QAAA,IAAA,CAAK,aAAA,CAAc,SAAA;AAAA;AAAA;AAAA;AAAA,UAIlB,IAAI,eAAe,cAAc;AAAA,SAClC;AAAA,MACD,CAAC,CAAA;AAAA,IACF;AAKA,IAAA,IAAA,CAAK,aAAA,CAAc,kBAAA,CAAmB,aAAA,CAAc,OAAO,CAAA;AAK3D,IAAA,IAAI,SAAA,CAAU,MAAM,gBAAA,EAAkB;AAAA,MACrC,KAAA,EAAO,KAAK,aAAA,CAAc;AAAA,KAC1B,CAAA;AAAA,EACF;AACD","file":"event-bridge.js","sourcesContent":["import { Construct } from 'constructs';\nimport { Function } from 'aws-cdk-lib/aws-lambda';\nimport { CfnOutput, RemovalPolicy } from 'aws-cdk-lib';\nimport { Rule, RuleProps } from 'aws-cdk-lib/aws-events';\nimport { LambdaFunction } from 'aws-cdk-lib/aws-events-targets';\n\nimport { IBaseCdkConstructProps } from '../../types';\n\n/**\n * Props for BaseEventBridgeConstruct\n *\n * Provides configuration for:\n * - EventBridge rule creation\n * - Target Lambda functions\n */\ninterface IEventBridgeConstructProps extends Omit<\n\tIBaseCdkConstructProps<{\n\t\t/** Lambda functions to be triggered by the rule */\n\t\treadonly targetFunctions: Function[];\n\n\t\t/** EventBridge rule configuration */\n\t\treadonly eventBridgeOptions: RuleProps;\n\t}>,\n\t'appName' | 'stage' | 'stackName'\n> {}\n\n/**\n * CDK construct for EventBridge rule\n *\n * Responsibilities:\n * - Creates an EventBridge rule with configurable options\n * - Attaches one or more Lambda targets\n * - Applies a removal policy\n * - Exposes the rule ARN as a CloudFormation output\n */\nexport class BaseEventBridgeConstruct extends Construct {\n\t/** The created EventBridge rule instance */\n\treadonly eventSchedule: Rule;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for rule and target functions\n\t */\n\tconstructor(scope: Construct, id: string, props: IEventBridgeConstructProps) {\n\t\tsuper(scope, id);\n\n\t\tthis.eventSchedule = new Rule(this, id, {\n\t\t\t...props.options?.eventBridgeOptions,\n\n\t\t\t/** Default description if not explicitly provided */\n\t\t\tdescription:\n\t\t\t\tprops?.options?.eventBridgeOptions?.description ||\n\t\t\t\t'An Event-bridge rule',\n\t\t});\n\n\t\t/**\n\t\t * Attach Lambda targets to the rule\n\t\t */\n\t\tif (props.options?.targetFunctions?.length) {\n\t\t\tprops.options.targetFunctions.forEach((targetFunction) => {\n\t\t\t\tthis.eventSchedule.addTarget(\n\t\t\t\t\t/**\n\t\t\t\t\t * Lambda target integration\n\t\t\t\t\t */\n\t\t\t\t\tnew LambdaFunction(targetFunction),\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Apply removal policy (useful for non-production environments)\n\t\t */\n\t\tthis.eventSchedule.applyRemovalPolicy(RemovalPolicy.DESTROY);\n\n\t\t/**\n\t\t * CloudFormation output exposing the rule ARN\n\t\t */\n\t\tnew CfnOutput(this, 'EventBridgeArn', {\n\t\t\tvalue: this.eventSchedule.ruleArn,\n\t\t});\n\t}\n}\n"]}
@@ -34,7 +34,10 @@ var BaseLambdaAuthoriserV2Construct = class extends constructs.Construct {
34
34
  * Supported response types for the authorizer
35
35
  * Defaults to IAM and SIMPLE responses
36
36
  */
37
- responseTypes: props?.options?.authorizerOptions?.responseTypes || [awsApigatewayv2Authorizers.HttpLambdaResponseType.IAM, awsApigatewayv2Authorizers.HttpLambdaResponseType.SIMPLE]
37
+ responseTypes: props?.options?.authorizerOptions?.responseTypes || [
38
+ awsApigatewayv2Authorizers.HttpLambdaResponseType.IAM,
39
+ awsApigatewayv2Authorizers.HttpLambdaResponseType.SIMPLE
40
+ ]
38
41
  });
39
42
  new awsCdkLib.CfnOutput(this, "LambdaAuthorizerV2_ID", {
40
43
  value: this.authoriser.authorizerId
@@ -43,5 +46,5 @@ var BaseLambdaAuthoriserV2Construct = class extends constructs.Construct {
43
46
  };
44
47
 
45
48
  exports.BaseLambdaAuthoriserV2Construct = BaseLambdaAuthoriserV2Construct;
46
- //# sourceMappingURL=lambda-authorizer-v2-construct.cjs.map
47
- //# sourceMappingURL=lambda-authorizer-v2-construct.cjs.map
49
+ //# sourceMappingURL=lambda-authorizer-v2.cjs.map
50
+ //# sourceMappingURL=lambda-authorizer-v2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/aws/cdk/constructs/lambda-authorizer-v2-construct.ts"],"names":["Construct","HttpLambdaAuthorizer","HttpLambdaResponseType","CfnOutput"],"mappings":";;;;;;;;AA0CO,IAAM,+BAAA,GAAN,cAA8CA,oBAAA,CAAU;AAAA,EA1C/D;AA0C+D,IAAA,MAAA,CAAA,IAAA,EAAA,iCAAA,CAAA;AAAA;AAAA;AAAA,EAErD,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,WAAA,CACC,KAAA,EACA,EAAA,EACA,KAAA,EACC;AACD,IAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAEf,IAAA,IAAA,CAAK,UAAA,GAAa,IAAIC,+CAAA,CAAqB,EAAA,EAAI,MAAM,eAAA,EAAiB;AAAA,MACrE,GAAG,OAAO,OAAA,EAAS,iBAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMnB,cAAA,EAAgB;AAAA,QACf,wBAAA;AAAA,QACA,+BAAA;AAAA,QACA,GAAG,KAAA,EAAO,OAAA,EAAS,iBAAA,EAAmB;AAAA,OACvC;AAAA;AAAA;AAAA;AAAA;AAAA,MAMA,aAAA,EAAe,KAAA,EAAO,OAAA,EAAS,iBAAA,EAAmB,aAAA,IAAiB;AAAA,QAClEC,iDAAA,CAAuB,GAAA;AAAA,QACvBA,iDAAA,CAAuB;AAAA;AACxB,KACA,CAAA;AAKD,IAAA,IAAIC,mBAAA,CAAU,MAAM,uBAAA,EAAyB;AAAA,MAC5C,KAAA,EAAO,KAAK,UAAA,CAAW;AAAA,KACvB,CAAA;AAAA,EACF;AACD","file":"lambda-authorizer-v2.cjs","sourcesContent":["import { Construct } from 'constructs';\nimport { CfnOutput } from 'aws-cdk-lib';\nimport { Function } from 'aws-cdk-lib/aws-lambda';\nimport {\n\tHttpLambdaAuthorizer,\n\tHttpLambdaAuthorizerProps,\n\tHttpLambdaResponseType,\n} from 'aws-cdk-lib/aws-apigatewayv2-authorizers';\n\nimport { IBaseCdkConstructProps } from '../../types';\n\n/**\n * Props for BaseLambdaAuthoriserV2Construct\n *\n * Provides configuration for:\n * - HTTP API Lambda authorizer (API Gateway v2)\n * - Authorizer behaviour and identity sources\n */\ninterface ILambdaAuthoriserV2ConstructProps extends Omit<\n\tIBaseCdkConstructProps<{\n\t\t/** HTTP Lambda authorizer configuration options */\n\t\treadonly authorizerOptions: HttpLambdaAuthorizerProps;\n\t}>,\n\t'appName' | 'stage' | 'stackName'\n> {\n\t/**\n\t * Lambda function used as the authorizer handler\n\t *\n\t * This function is invoked to validate incoming HTTP requests\n\t */\n\treadonly handlerFunction: Function;\n}\n\n/**\n * CDK construct for Lambda Authorizer (API Gateway v2 - HTTP API)\n *\n * Responsibilities:\n * - Creates an HTTP Lambda authorizer\n * - Applies default identity sources (Cookie and Authorization headers)\n * - Supports multiple response types (IAM and SIMPLE by default)\n * - Exposes the authorizer ID as a CloudFormation output\n */\nexport class BaseLambdaAuthoriserV2Construct extends Construct {\n\t/** The created HTTP Lambda Authorizer instance */\n\treadonly authoriser: HttpLambdaAuthorizer;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for authorizer and handler function\n\t */\n\tconstructor(\n\t\tscope: Construct,\n\t\tid: string,\n\t\tprops: ILambdaAuthoriserV2ConstructProps,\n\t) {\n\t\tsuper(scope, id);\n\n\t\tthis.authoriser = new HttpLambdaAuthorizer(id, props.handlerFunction, {\n\t\t\t...props?.options?.authorizerOptions,\n\n\t\t\t/**\n\t\t\t * Identity sources used to extract credentials from incoming requests\n\t\t\t * Defaults to Cookie and Authorization headers\n\t\t\t */\n\t\t\tidentitySource: [\n\t\t\t\t'$request.header.Cookie',\n\t\t\t\t'$request.header.Authorization',\n\t\t\t\t...props?.options?.authorizerOptions?.identitySource,\n\t\t\t],\n\n\t\t\t/**\n\t\t\t * Supported response types for the authorizer\n\t\t\t * Defaults to IAM and SIMPLE responses\n\t\t\t */\n\t\t\tresponseTypes: props?.options?.authorizerOptions?.responseTypes || [\n\t\t\t\tHttpLambdaResponseType.IAM,\n\t\t\t\tHttpLambdaResponseType.SIMPLE,\n\t\t\t],\n\t\t});\n\n\t\t/**\n\t\t * CloudFormation output exposing the authorizer ID\n\t\t */\n\t\tnew CfnOutput(this, 'LambdaAuthorizerV2_ID', {\n\t\t\tvalue: this.authoriser.authorizerId,\n\t\t});\n\t}\n}\n"]}
@@ -1,8 +1,9 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { Function } from 'aws-cdk-lib/aws-lambda';
3
3
  import { HttpLambdaAuthorizer, HttpLambdaAuthorizerProps } from 'aws-cdk-lib/aws-apigatewayv2-authorizers';
4
- import { IBaseCdkConstructProps } from '../../types/index.js';
4
+ import { IBaseCdkConstructProps } from '../../aws-types.cjs';
5
5
  import '@incloodsolutions/toolkit';
6
+ import 'aws-cdk-lib';
6
7
 
7
8
  /**
8
9
  * Props for BaseLambdaAuthoriserV2Construct
@@ -1,8 +1,9 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { Function } from 'aws-cdk-lib/aws-lambda';
3
3
  import { HttpLambdaAuthorizer, HttpLambdaAuthorizerProps } from 'aws-cdk-lib/aws-apigatewayv2-authorizers';
4
- import { IBaseCdkConstructProps } from '../../types/index.cjs';
4
+ import { IBaseCdkConstructProps } from '../../aws-types.js';
5
5
  import '@incloodsolutions/toolkit';
6
+ import 'aws-cdk-lib';
6
7
 
7
8
  /**
8
9
  * Props for BaseLambdaAuthoriserV2Construct
@@ -32,7 +32,10 @@ var BaseLambdaAuthoriserV2Construct = class extends Construct {
32
32
  * Supported response types for the authorizer
33
33
  * Defaults to IAM and SIMPLE responses
34
34
  */
35
- responseTypes: props?.options?.authorizerOptions?.responseTypes || [HttpLambdaResponseType.IAM, HttpLambdaResponseType.SIMPLE]
35
+ responseTypes: props?.options?.authorizerOptions?.responseTypes || [
36
+ HttpLambdaResponseType.IAM,
37
+ HttpLambdaResponseType.SIMPLE
38
+ ]
36
39
  });
37
40
  new CfnOutput(this, "LambdaAuthorizerV2_ID", {
38
41
  value: this.authoriser.authorizerId
@@ -41,5 +44,5 @@ var BaseLambdaAuthoriserV2Construct = class extends Construct {
41
44
  };
42
45
 
43
46
  export { BaseLambdaAuthoriserV2Construct };
44
- //# sourceMappingURL=lambda-authorizer-v2-construct.js.map
45
- //# sourceMappingURL=lambda-authorizer-v2-construct.js.map
47
+ //# sourceMappingURL=lambda-authorizer-v2.js.map
48
+ //# sourceMappingURL=lambda-authorizer-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/aws/cdk/constructs/lambda-authorizer-v2-construct.ts"],"names":[],"mappings":";;;;;;AA0CO,IAAM,+BAAA,GAAN,cAA8C,SAAA,CAAU;AAAA,EA1C/D;AA0C+D,IAAA,MAAA,CAAA,IAAA,EAAA,iCAAA,CAAA;AAAA;AAAA;AAAA,EAErD,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,WAAA,CACC,KAAA,EACA,EAAA,EACA,KAAA,EACC;AACD,IAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAEf,IAAA,IAAA,CAAK,UAAA,GAAa,IAAI,oBAAA,CAAqB,EAAA,EAAI,MAAM,eAAA,EAAiB;AAAA,MACrE,GAAG,OAAO,OAAA,EAAS,iBAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMnB,cAAA,EAAgB;AAAA,QACf,wBAAA;AAAA,QACA,+BAAA;AAAA,QACA,GAAG,KAAA,EAAO,OAAA,EAAS,iBAAA,EAAmB;AAAA,OACvC;AAAA;AAAA;AAAA;AAAA;AAAA,MAMA,aAAA,EAAe,KAAA,EAAO,OAAA,EAAS,iBAAA,EAAmB,aAAA,IAAiB;AAAA,QAClE,sBAAA,CAAuB,GAAA;AAAA,QACvB,sBAAA,CAAuB;AAAA;AACxB,KACA,CAAA;AAKD,IAAA,IAAI,SAAA,CAAU,MAAM,uBAAA,EAAyB;AAAA,MAC5C,KAAA,EAAO,KAAK,UAAA,CAAW;AAAA,KACvB,CAAA;AAAA,EACF;AACD","file":"lambda-authorizer-v2.js","sourcesContent":["import { Construct } from 'constructs';\nimport { CfnOutput } from 'aws-cdk-lib';\nimport { Function } from 'aws-cdk-lib/aws-lambda';\nimport {\n\tHttpLambdaAuthorizer,\n\tHttpLambdaAuthorizerProps,\n\tHttpLambdaResponseType,\n} from 'aws-cdk-lib/aws-apigatewayv2-authorizers';\n\nimport { IBaseCdkConstructProps } from '../../types';\n\n/**\n * Props for BaseLambdaAuthoriserV2Construct\n *\n * Provides configuration for:\n * - HTTP API Lambda authorizer (API Gateway v2)\n * - Authorizer behaviour and identity sources\n */\ninterface ILambdaAuthoriserV2ConstructProps extends Omit<\n\tIBaseCdkConstructProps<{\n\t\t/** HTTP Lambda authorizer configuration options */\n\t\treadonly authorizerOptions: HttpLambdaAuthorizerProps;\n\t}>,\n\t'appName' | 'stage' | 'stackName'\n> {\n\t/**\n\t * Lambda function used as the authorizer handler\n\t *\n\t * This function is invoked to validate incoming HTTP requests\n\t */\n\treadonly handlerFunction: Function;\n}\n\n/**\n * CDK construct for Lambda Authorizer (API Gateway v2 - HTTP API)\n *\n * Responsibilities:\n * - Creates an HTTP Lambda authorizer\n * - Applies default identity sources (Cookie and Authorization headers)\n * - Supports multiple response types (IAM and SIMPLE by default)\n * - Exposes the authorizer ID as a CloudFormation output\n */\nexport class BaseLambdaAuthoriserV2Construct extends Construct {\n\t/** The created HTTP Lambda Authorizer instance */\n\treadonly authoriser: HttpLambdaAuthorizer;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for authorizer and handler function\n\t */\n\tconstructor(\n\t\tscope: Construct,\n\t\tid: string,\n\t\tprops: ILambdaAuthoriserV2ConstructProps,\n\t) {\n\t\tsuper(scope, id);\n\n\t\tthis.authoriser = new HttpLambdaAuthorizer(id, props.handlerFunction, {\n\t\t\t...props?.options?.authorizerOptions,\n\n\t\t\t/**\n\t\t\t * Identity sources used to extract credentials from incoming requests\n\t\t\t * Defaults to Cookie and Authorization headers\n\t\t\t */\n\t\t\tidentitySource: [\n\t\t\t\t'$request.header.Cookie',\n\t\t\t\t'$request.header.Authorization',\n\t\t\t\t...props?.options?.authorizerOptions?.identitySource,\n\t\t\t],\n\n\t\t\t/**\n\t\t\t * Supported response types for the authorizer\n\t\t\t * Defaults to IAM and SIMPLE responses\n\t\t\t */\n\t\t\tresponseTypes: props?.options?.authorizerOptions?.responseTypes || [\n\t\t\t\tHttpLambdaResponseType.IAM,\n\t\t\t\tHttpLambdaResponseType.SIMPLE,\n\t\t\t],\n\t\t});\n\n\t\t/**\n\t\t * CloudFormation output exposing the authorizer ID\n\t\t */\n\t\tnew CfnOutput(this, 'LambdaAuthorizerV2_ID', {\n\t\t\tvalue: this.authoriser.authorizerId,\n\t\t});\n\t}\n}\n"]}
@@ -33,5 +33,5 @@ var BaseLambdaAuthoriserConstruct = class extends constructs.Construct {
33
33
  };
34
34
 
35
35
  exports.BaseLambdaAuthoriserConstruct = BaseLambdaAuthoriserConstruct;
36
- //# sourceMappingURL=lambda-authorizer-construct.cjs.map
37
- //# sourceMappingURL=lambda-authorizer-construct.cjs.map
36
+ //# sourceMappingURL=lambda-authorizer.cjs.map
37
+ //# sourceMappingURL=lambda-authorizer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/aws/cdk/constructs/lambda-authorizer-construct.ts"],"names":["Construct","TokenAuthorizer","CfnOutput"],"mappings":";;;;;;;;AAwCO,IAAM,6BAAA,GAAN,cAA4CA,oBAAA,CAAU;AAAA,EAxC7D;AAwC6D,IAAA,MAAA,CAAA,IAAA,EAAA,+BAAA,CAAA;AAAA;AAAA;AAAA,EAEnD,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,WAAA,CACC,KAAA,EACA,EAAA,EACA,KAAA,EACC;AACD,IAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAEf,IAAA,IAAA,CAAK,UAAA,GAAa,IAAIC,6BAAA,CAAgB,IAAA,EAAM,EAAA,EAAI;AAAA,MAC/C,GAAG,MAAM,OAAA,EAAS,iBAAA;AAAA;AAAA;AAAA;AAAA,MAKlB,SAAS,KAAA,CAAM;AAAA,KACf,CAAA;AAKD,IAAA,IAAIC,mBAAA,CAAU,MAAM,qBAAA,EAAuB;AAAA,MAC1C,KAAA,EAAO,KAAK,UAAA,CAAW;AAAA,KACvB,CAAA;AAAA,EACF;AACD","file":"lambda-authorizer.cjs","sourcesContent":["import { Construct } from 'constructs';\nimport { CfnOutput } from 'aws-cdk-lib';\nimport { Function } from 'aws-cdk-lib/aws-lambda';\nimport {\n\tTokenAuthorizer,\n\tTokenAuthorizerProps,\n} from 'aws-cdk-lib/aws-apigateway';\n\nimport { IBaseCdkConstructProps } from '../../types';\n\n/**\n * Props for BaseLambdaAuthoriserConstruct\n *\n * Provides configuration for:\n * - Lambda token authorizer\n * - Authorizer behaviour and settings\n */\ninterface ILambdaAuthoriserConstructProps extends Omit<\n\tIBaseCdkConstructProps<{\n\t\t/** Token authorizer configuration options */\n\t\treadonly authorizerOptions: TokenAuthorizerProps;\n\t}>,\n\t'appName' | 'stage' | 'stackName'\n> {\n\t/**\n\t * Lambda function used as the authorizer handler\n\t *\n\t * This function is invoked to validate incoming requests\n\t */\n\treadonly handlerFunction: Function;\n}\n\n/**\n * CDK construct for Lambda Token Authorizer (API Gateway v1)\n *\n * Responsibilities:\n * - Creates a Token Authorizer backed by a Lambda function\n * - Applies optional configuration overrides\n * - Exposes the authorizer ARN as a CloudFormation output\n */\nexport class BaseLambdaAuthoriserConstruct extends Construct {\n\t/** The created Token Authorizer instance */\n\treadonly authoriser: TokenAuthorizer;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for authorizer and handler function\n\t */\n\tconstructor(\n\t\tscope: Construct,\n\t\tid: string,\n\t\tprops: ILambdaAuthoriserConstructProps,\n\t) {\n\t\tsuper(scope, id);\n\n\t\tthis.authoriser = new TokenAuthorizer(this, id, {\n\t\t\t...props.options?.authorizerOptions,\n\n\t\t\t/**\n\t\t\t * Lambda handler responsible for request authorization\n\t\t\t */\n\t\t\thandler: props.handlerFunction,\n\t\t});\n\n\t\t/**\n\t\t * CloudFormation output exposing the authorizer ARN\n\t\t */\n\t\tnew CfnOutput(this, 'LambdaAuthorizerArn', {\n\t\t\tvalue: this.authoriser.authorizerArn,\n\t\t});\n\t}\n}\n"]}
@@ -1,8 +1,9 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { Function } from 'aws-cdk-lib/aws-lambda';
3
3
  import { TokenAuthorizer, TokenAuthorizerProps } from 'aws-cdk-lib/aws-apigateway';
4
- import { IBaseCdkConstructProps } from '../../types/index.cjs';
4
+ import { IBaseCdkConstructProps } from '../../aws-types.cjs';
5
5
  import '@incloodsolutions/toolkit';
6
+ import 'aws-cdk-lib';
6
7
 
7
8
  /**
8
9
  * Props for BaseLambdaAuthoriserConstruct
@@ -1,8 +1,9 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { Function } from 'aws-cdk-lib/aws-lambda';
3
3
  import { TokenAuthorizer, TokenAuthorizerProps } from 'aws-cdk-lib/aws-apigateway';
4
- import { IBaseCdkConstructProps } from '../../types/index.js';
4
+ import { IBaseCdkConstructProps } from '../../aws-types.js';
5
5
  import '@incloodsolutions/toolkit';
6
+ import 'aws-cdk-lib';
6
7
 
7
8
  /**
8
9
  * Props for BaseLambdaAuthoriserConstruct
@@ -31,5 +31,5 @@ var BaseLambdaAuthoriserConstruct = class extends Construct {
31
31
  };
32
32
 
33
33
  export { BaseLambdaAuthoriserConstruct };
34
- //# sourceMappingURL=lambda-authorizer-construct.js.map
35
- //# sourceMappingURL=lambda-authorizer-construct.js.map
34
+ //# sourceMappingURL=lambda-authorizer.js.map
35
+ //# sourceMappingURL=lambda-authorizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/aws/cdk/constructs/lambda-authorizer-construct.ts"],"names":[],"mappings":";;;;;;AAwCO,IAAM,6BAAA,GAAN,cAA4C,SAAA,CAAU;AAAA,EAxC7D;AAwC6D,IAAA,MAAA,CAAA,IAAA,EAAA,+BAAA,CAAA;AAAA;AAAA;AAAA,EAEnD,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,WAAA,CACC,KAAA,EACA,EAAA,EACA,KAAA,EACC;AACD,IAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAEf,IAAA,IAAA,CAAK,UAAA,GAAa,IAAI,eAAA,CAAgB,IAAA,EAAM,EAAA,EAAI;AAAA,MAC/C,GAAG,MAAM,OAAA,EAAS,iBAAA;AAAA;AAAA;AAAA;AAAA,MAKlB,SAAS,KAAA,CAAM;AAAA,KACf,CAAA;AAKD,IAAA,IAAI,SAAA,CAAU,MAAM,qBAAA,EAAuB;AAAA,MAC1C,KAAA,EAAO,KAAK,UAAA,CAAW;AAAA,KACvB,CAAA;AAAA,EACF;AACD","file":"lambda-authorizer.js","sourcesContent":["import { Construct } from 'constructs';\nimport { CfnOutput } from 'aws-cdk-lib';\nimport { Function } from 'aws-cdk-lib/aws-lambda';\nimport {\n\tTokenAuthorizer,\n\tTokenAuthorizerProps,\n} from 'aws-cdk-lib/aws-apigateway';\n\nimport { IBaseCdkConstructProps } from '../../types';\n\n/**\n * Props for BaseLambdaAuthoriserConstruct\n *\n * Provides configuration for:\n * - Lambda token authorizer\n * - Authorizer behaviour and settings\n */\ninterface ILambdaAuthoriserConstructProps extends Omit<\n\tIBaseCdkConstructProps<{\n\t\t/** Token authorizer configuration options */\n\t\treadonly authorizerOptions: TokenAuthorizerProps;\n\t}>,\n\t'appName' | 'stage' | 'stackName'\n> {\n\t/**\n\t * Lambda function used as the authorizer handler\n\t *\n\t * This function is invoked to validate incoming requests\n\t */\n\treadonly handlerFunction: Function;\n}\n\n/**\n * CDK construct for Lambda Token Authorizer (API Gateway v1)\n *\n * Responsibilities:\n * - Creates a Token Authorizer backed by a Lambda function\n * - Applies optional configuration overrides\n * - Exposes the authorizer ARN as a CloudFormation output\n */\nexport class BaseLambdaAuthoriserConstruct extends Construct {\n\t/** The created Token Authorizer instance */\n\treadonly authoriser: TokenAuthorizer;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for authorizer and handler function\n\t */\n\tconstructor(\n\t\tscope: Construct,\n\t\tid: string,\n\t\tprops: ILambdaAuthoriserConstructProps,\n\t) {\n\t\tsuper(scope, id);\n\n\t\tthis.authoriser = new TokenAuthorizer(this, id, {\n\t\t\t...props.options?.authorizerOptions,\n\n\t\t\t/**\n\t\t\t * Lambda handler responsible for request authorization\n\t\t\t */\n\t\t\thandler: props.handlerFunction,\n\t\t});\n\n\t\t/**\n\t\t * CloudFormation output exposing the authorizer ARN\n\t\t */\n\t\tnew CfnOutput(this, 'LambdaAuthorizerArn', {\n\t\t\tvalue: this.authoriser.authorizerArn,\n\t\t});\n\t}\n}\n"]}
@@ -47,10 +47,7 @@ var BaseLambdaLayerConstruct = class extends constructs.Construct {
47
47
  /**
48
48
  * Supported CPU architectures
49
49
  */
50
- compatibleArchitectures: [
51
- awsLambda.Architecture.ARM_64,
52
- awsLambda.Architecture.X86_64
53
- ],
50
+ compatibleArchitectures: [awsLambda.Architecture.ARM_64, awsLambda.Architecture.X86_64],
54
51
  /**
55
52
  * Supported runtimes
56
53
  */
@@ -68,5 +65,5 @@ var BaseLambdaLayerConstruct = class extends constructs.Construct {
68
65
  };
69
66
 
70
67
  exports.BaseLambdaLayerConstruct = BaseLambdaLayerConstruct;
71
- //# sourceMappingURL=lambda-layer-construct.cjs.map
72
- //# sourceMappingURL=lambda-layer-construct.cjs.map
68
+ //# sourceMappingURL=lambda-layer.cjs.map
69
+ //# sourceMappingURL=lambda-layer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/aws/cdk/constructs/lambda-layer-construct.ts"],"names":["Construct","LayerVersion","Code","Architecture","Runtime","CfnOutput"],"mappings":";;;;;;;;AAsDO,IAAM,wBAAA,GAAN,cAAuCA,oBAAA,CAAU;AAAA,EAtDxD;AAsDwD,IAAA,MAAA,CAAA,IAAA,EAAA,0BAAA,CAAA;AAAA;AAAA;AAAA,EAE9C,KAAA;AAAA;AAAA,EAGA,aAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,WAAA,CACC,KAAA,EACA,EAAA,EACA,KAAA,EACC;AACD,IAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAKf,IAAA,IAAI,KAAA,EAAO,SAAS,oBAAA,EAAsB;AACzC,MAAA,IAAA,CAAK,gBAAgBC,sBAAA,CAAa,mBAAA;AAAA,QACjC,IAAA;AAAA,QACA,GAAG,EAAE,CAAA,IAAA,CAAA;AAAA,QACL,OAAO,OAAA,EAAS;AAAA,OACjB;AAAA,IAKD,CAAA,MAAA,IAAW,KAAA,EAAO,OAAA,EAAS,0BAAA,EAA4B;AACtD,MAAA,IAAA,CAAK,gBAAgBA,sBAAA,CAAa,0BAAA;AAAA,QACjC,IAAA;AAAA,QACA,GAAG,EAAE,CAAA,UAAA,CAAA;AAAA,QACL,OAAO,OAAA,EAAS;AAAA,OACjB;AAAA,IAKD,CAAA,MAAO;AACN,MAAA,IAAA,CAAK,KAAA,GAAQ,IAAIA,sBAAA,CAAa,IAAA,EAAM,EAAA,EAAI;AAAA,QACvC,GAAG,MAAM,OAAA,EAAS,YAAA;AAAA;AAAA;AAAA;AAAA,QAKlB,MACC,KAAA,EAAO,OAAA,EAAS,cAAc,IAAA,IAAQC,cAAA,CAAK,UAAU,cAAc,CAAA;AAAA;AAAA;AAAA;AAAA,QAKpE,WAAA,EACC,KAAA,EAAO,OAAA,EAAS,YAAA,EAAc,WAAA,IAC9B,4EAAA;AAAA;AAAA;AAAA;AAAA,QAKD,uBAAA,EAAyB,CAACC,sBAAA,CAAa,MAAA,EAAQA,uBAAa,MAAM,CAAA;AAAA;AAAA;AAAA;AAAA,QAKlE,kBAAA,EAAoB;AAAA,UACnBC,iBAAA,CAAQ,WAAA;AAAA,UACRA,iBAAA,CAAQ,WAAA;AAAA,UACRA,iBAAA,CAAQ;AAAA;AACT,OACqB,CAAA;AAAA,IACvB;AAMA,IAAA,IAAIC,mBAAA,CAAU,MAAM,gBAAA,EAAkB;AAAA,MACrC,KAAA,EACC,KAAA,CAAM,OAAA,EAAS,oBAAA,IACf,KAAA,CAAM,OAAA,EAAS,0BAAA,GACZ,IAAA,CAAK,aAAA,CAAc,eAAA,GACnB,IAAA,CAAK,KAAA,CAAM;AAAA,KACf,CAAA;AAAA,EACF;AACD","file":"lambda-layer.cjs","sourcesContent":["import { Construct } from 'constructs';\nimport { CfnOutput } from 'aws-cdk-lib';\nimport {\n\tArchitecture,\n\tCode,\n\tILayerVersion,\n\tLayerVersion,\n\tLayerVersionProps,\n\tRuntime,\n} from 'aws-cdk-lib/aws-lambda';\n\nimport { IBaseCdkConstructProps } from '../../types';\n\n/**\n * Props for BaseLambdaLayerConstruct\n *\n * Provides configuration for:\n * - Creating a new Lambda Layer\n * - Importing an existing layer by ARN or attributes\n */\ninterface ILambdaLayerConstructProps extends Omit<\n\tIBaseCdkConstructProps<{\n\t\t/**\n\t\t * Configuration for creating a new Lambda layer\n\t\t *\n\t\t * Note:\n\t\t * - `layerVersionName` is required\n\t\t * - `compatibleArchitectures` is managed internally\n\t\t */\n\t\treadonly layerOptions?: Partial<\n\t\t\tOmit<LayerVersionProps, 'layerVersionName' | 'compatibleArchitectures'>\n\t\t> &\n\t\t\tRequired<Pick<LayerVersionProps, 'layerVersionName'>>;\n\n\t\t/** Import an existing layer by ARN */\n\t\treadonly fromExistingLayerArn?: string;\n\n\t\t/** Import an existing layer using attributes */\n\t\treadonly fromExistingLayerAttribute?: {\n\t\t\treadonly layerVersionArn: string;\n\t\t\treadonly compatibleRuntimes?: Runtime[];\n\t\t};\n\t}>,\n\t'appName' | 'stage' | 'stackName'\n> {}\n\n/**\n * CDK construct for Lambda Layer\n *\n * Responsibilities:\n * - Creates a new Lambda layer or imports an existing one\n * - Applies default runtime and architecture compatibility\n * - Exposes the layer ARN as a CloudFormation output\n */\nexport class BaseLambdaLayerConstruct extends Construct {\n\t/** Newly created Lambda Layer (null if importing existing layer) */\n\treadonly layer: LayerVersion;\n\n\t/** Imported Lambda Layer reference (null if creating new layer) */\n\treadonly existingLayer: ILayerVersion;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for layer creation or import\n\t */\n\tconstructor(\n\t\tscope: Construct,\n\t\tid: string,\n\t\tprops?: ILambdaLayerConstructProps,\n\t) {\n\t\tsuper(scope, id);\n\n\t\t/**\n\t\t * Import layer by ARN\n\t\t */\n\t\tif (props?.options?.fromExistingLayerArn) {\n\t\t\tthis.existingLayer = LayerVersion.fromLayerVersionArn(\n\t\t\t\tthis,\n\t\t\t\t`${id}-Arn`,\n\t\t\t\tprops?.options?.fromExistingLayerArn,\n\t\t\t);\n\n\t\t\t/**\n\t\t\t * Import layer using attributes\n\t\t\t */\n\t\t} else if (props?.options?.fromExistingLayerAttribute) {\n\t\t\tthis.existingLayer = LayerVersion.fromLayerVersionAttributes(\n\t\t\t\tthis,\n\t\t\t\t`${id}-Attribute`,\n\t\t\t\tprops?.options?.fromExistingLayerAttribute,\n\t\t\t);\n\n\t\t\t/**\n\t\t\t * Create new Lambda layer\n\t\t\t */\n\t\t} else {\n\t\t\tthis.layer = new LayerVersion(this, id, {\n\t\t\t\t...props.options?.layerOptions,\n\n\t\t\t\t/**\n\t\t\t\t * Default layer code asset\n\t\t\t\t */\n\t\t\t\tcode:\n\t\t\t\t\tprops?.options?.layerOptions?.code || Code.fromAsset('./dist-layer'),\n\n\t\t\t\t/**\n\t\t\t\t * Layer description\n\t\t\t\t */\n\t\t\t\tdescription:\n\t\t\t\t\tprops?.options?.layerOptions?.description ||\n\t\t\t\t\t'Lambda Layer written in NodeJS, NestJS, NodeJS-express, serverless-express',\n\n\t\t\t\t/**\n\t\t\t\t * Supported CPU architectures\n\t\t\t\t */\n\t\t\t\tcompatibleArchitectures: [Architecture.ARM_64, Architecture.X86_64],\n\n\t\t\t\t/**\n\t\t\t\t * Supported runtimes\n\t\t\t\t */\n\t\t\t\tcompatibleRuntimes: [\n\t\t\t\t\tRuntime.NODEJS_22_X,\n\t\t\t\t\tRuntime.NODEJS_24_X,\n\t\t\t\t\tRuntime.NODEJS_LATEST,\n\t\t\t\t],\n\t\t\t} as LayerVersionProps);\n\t\t}\n\n\t\t/**\n\t\t * CloudFormation output exposing the layer ARN\n\t\t * Resolves to either created or imported layer\n\t\t */\n\t\tnew CfnOutput(this, 'LambdaLayerArn', {\n\t\t\tvalue:\n\t\t\t\tprops.options?.fromExistingLayerArn ||\n\t\t\t\tprops.options?.fromExistingLayerAttribute\n\t\t\t\t\t? this.existingLayer.layerVersionArn\n\t\t\t\t\t: this.layer.layerVersionArn,\n\t\t});\n\t}\n}\n"]}
@@ -1,7 +1,8 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { LayerVersion, ILayerVersion, LayerVersionProps, Runtime } from 'aws-cdk-lib/aws-lambda';
3
- import { IBaseCdkConstructProps } from '../../types/index.js';
3
+ import { IBaseCdkConstructProps } from '../../aws-types.cjs';
4
4
  import '@incloodsolutions/toolkit';
5
+ import 'aws-cdk-lib';
5
6
 
6
7
  /**
7
8
  * Props for BaseLambdaLayerConstruct
@@ -1,7 +1,8 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { LayerVersion, ILayerVersion, LayerVersionProps, Runtime } from 'aws-cdk-lib/aws-lambda';
3
- import { IBaseCdkConstructProps } from '../../types/index.cjs';
3
+ import { IBaseCdkConstructProps } from '../../aws-types.js';
4
4
  import '@incloodsolutions/toolkit';
5
+ import 'aws-cdk-lib';
5
6
 
6
7
  /**
7
8
  * Props for BaseLambdaLayerConstruct
@@ -45,10 +45,7 @@ var BaseLambdaLayerConstruct = class extends Construct {
45
45
  /**
46
46
  * Supported CPU architectures
47
47
  */
48
- compatibleArchitectures: [
49
- Architecture.ARM_64,
50
- Architecture.X86_64
51
- ],
48
+ compatibleArchitectures: [Architecture.ARM_64, Architecture.X86_64],
52
49
  /**
53
50
  * Supported runtimes
54
51
  */
@@ -66,5 +63,5 @@ var BaseLambdaLayerConstruct = class extends Construct {
66
63
  };
67
64
 
68
65
  export { BaseLambdaLayerConstruct };
69
- //# sourceMappingURL=lambda-layer-construct.js.map
70
- //# sourceMappingURL=lambda-layer-construct.js.map
66
+ //# sourceMappingURL=lambda-layer.js.map
67
+ //# sourceMappingURL=lambda-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/aws/cdk/constructs/lambda-layer-construct.ts"],"names":[],"mappings":";;;;;;AAsDO,IAAM,wBAAA,GAAN,cAAuC,SAAA,CAAU;AAAA,EAtDxD;AAsDwD,IAAA,MAAA,CAAA,IAAA,EAAA,0BAAA,CAAA;AAAA;AAAA;AAAA,EAE9C,KAAA;AAAA;AAAA,EAGA,aAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,WAAA,CACC,KAAA,EACA,EAAA,EACA,KAAA,EACC;AACD,IAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAKf,IAAA,IAAI,KAAA,EAAO,SAAS,oBAAA,EAAsB;AACzC,MAAA,IAAA,CAAK,gBAAgB,YAAA,CAAa,mBAAA;AAAA,QACjC,IAAA;AAAA,QACA,GAAG,EAAE,CAAA,IAAA,CAAA;AAAA,QACL,OAAO,OAAA,EAAS;AAAA,OACjB;AAAA,IAKD,CAAA,MAAA,IAAW,KAAA,EAAO,OAAA,EAAS,0BAAA,EAA4B;AACtD,MAAA,IAAA,CAAK,gBAAgB,YAAA,CAAa,0BAAA;AAAA,QACjC,IAAA;AAAA,QACA,GAAG,EAAE,CAAA,UAAA,CAAA;AAAA,QACL,OAAO,OAAA,EAAS;AAAA,OACjB;AAAA,IAKD,CAAA,MAAO;AACN,MAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,YAAA,CAAa,IAAA,EAAM,EAAA,EAAI;AAAA,QACvC,GAAG,MAAM,OAAA,EAAS,YAAA;AAAA;AAAA;AAAA;AAAA,QAKlB,MACC,KAAA,EAAO,OAAA,EAAS,cAAc,IAAA,IAAQ,IAAA,CAAK,UAAU,cAAc,CAAA;AAAA;AAAA;AAAA;AAAA,QAKpE,WAAA,EACC,KAAA,EAAO,OAAA,EAAS,YAAA,EAAc,WAAA,IAC9B,4EAAA;AAAA;AAAA;AAAA;AAAA,QAKD,uBAAA,EAAyB,CAAC,YAAA,CAAa,MAAA,EAAQ,aAAa,MAAM,CAAA;AAAA;AAAA;AAAA;AAAA,QAKlE,kBAAA,EAAoB;AAAA,UACnB,OAAA,CAAQ,WAAA;AAAA,UACR,OAAA,CAAQ,WAAA;AAAA,UACR,OAAA,CAAQ;AAAA;AACT,OACqB,CAAA;AAAA,IACvB;AAMA,IAAA,IAAI,SAAA,CAAU,MAAM,gBAAA,EAAkB;AAAA,MACrC,KAAA,EACC,KAAA,CAAM,OAAA,EAAS,oBAAA,IACf,KAAA,CAAM,OAAA,EAAS,0BAAA,GACZ,IAAA,CAAK,aAAA,CAAc,eAAA,GACnB,IAAA,CAAK,KAAA,CAAM;AAAA,KACf,CAAA;AAAA,EACF;AACD","file":"lambda-layer.js","sourcesContent":["import { Construct } from 'constructs';\nimport { CfnOutput } from 'aws-cdk-lib';\nimport {\n\tArchitecture,\n\tCode,\n\tILayerVersion,\n\tLayerVersion,\n\tLayerVersionProps,\n\tRuntime,\n} from 'aws-cdk-lib/aws-lambda';\n\nimport { IBaseCdkConstructProps } from '../../types';\n\n/**\n * Props for BaseLambdaLayerConstruct\n *\n * Provides configuration for:\n * - Creating a new Lambda Layer\n * - Importing an existing layer by ARN or attributes\n */\ninterface ILambdaLayerConstructProps extends Omit<\n\tIBaseCdkConstructProps<{\n\t\t/**\n\t\t * Configuration for creating a new Lambda layer\n\t\t *\n\t\t * Note:\n\t\t * - `layerVersionName` is required\n\t\t * - `compatibleArchitectures` is managed internally\n\t\t */\n\t\treadonly layerOptions?: Partial<\n\t\t\tOmit<LayerVersionProps, 'layerVersionName' | 'compatibleArchitectures'>\n\t\t> &\n\t\t\tRequired<Pick<LayerVersionProps, 'layerVersionName'>>;\n\n\t\t/** Import an existing layer by ARN */\n\t\treadonly fromExistingLayerArn?: string;\n\n\t\t/** Import an existing layer using attributes */\n\t\treadonly fromExistingLayerAttribute?: {\n\t\t\treadonly layerVersionArn: string;\n\t\t\treadonly compatibleRuntimes?: Runtime[];\n\t\t};\n\t}>,\n\t'appName' | 'stage' | 'stackName'\n> {}\n\n/**\n * CDK construct for Lambda Layer\n *\n * Responsibilities:\n * - Creates a new Lambda layer or imports an existing one\n * - Applies default runtime and architecture compatibility\n * - Exposes the layer ARN as a CloudFormation output\n */\nexport class BaseLambdaLayerConstruct extends Construct {\n\t/** Newly created Lambda Layer (null if importing existing layer) */\n\treadonly layer: LayerVersion;\n\n\t/** Imported Lambda Layer reference (null if creating new layer) */\n\treadonly existingLayer: ILayerVersion;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for layer creation or import\n\t */\n\tconstructor(\n\t\tscope: Construct,\n\t\tid: string,\n\t\tprops?: ILambdaLayerConstructProps,\n\t) {\n\t\tsuper(scope, id);\n\n\t\t/**\n\t\t * Import layer by ARN\n\t\t */\n\t\tif (props?.options?.fromExistingLayerArn) {\n\t\t\tthis.existingLayer = LayerVersion.fromLayerVersionArn(\n\t\t\t\tthis,\n\t\t\t\t`${id}-Arn`,\n\t\t\t\tprops?.options?.fromExistingLayerArn,\n\t\t\t);\n\n\t\t\t/**\n\t\t\t * Import layer using attributes\n\t\t\t */\n\t\t} else if (props?.options?.fromExistingLayerAttribute) {\n\t\t\tthis.existingLayer = LayerVersion.fromLayerVersionAttributes(\n\t\t\t\tthis,\n\t\t\t\t`${id}-Attribute`,\n\t\t\t\tprops?.options?.fromExistingLayerAttribute,\n\t\t\t);\n\n\t\t\t/**\n\t\t\t * Create new Lambda layer\n\t\t\t */\n\t\t} else {\n\t\t\tthis.layer = new LayerVersion(this, id, {\n\t\t\t\t...props.options?.layerOptions,\n\n\t\t\t\t/**\n\t\t\t\t * Default layer code asset\n\t\t\t\t */\n\t\t\t\tcode:\n\t\t\t\t\tprops?.options?.layerOptions?.code || Code.fromAsset('./dist-layer'),\n\n\t\t\t\t/**\n\t\t\t\t * Layer description\n\t\t\t\t */\n\t\t\t\tdescription:\n\t\t\t\t\tprops?.options?.layerOptions?.description ||\n\t\t\t\t\t'Lambda Layer written in NodeJS, NestJS, NodeJS-express, serverless-express',\n\n\t\t\t\t/**\n\t\t\t\t * Supported CPU architectures\n\t\t\t\t */\n\t\t\t\tcompatibleArchitectures: [Architecture.ARM_64, Architecture.X86_64],\n\n\t\t\t\t/**\n\t\t\t\t * Supported runtimes\n\t\t\t\t */\n\t\t\t\tcompatibleRuntimes: [\n\t\t\t\t\tRuntime.NODEJS_22_X,\n\t\t\t\t\tRuntime.NODEJS_24_X,\n\t\t\t\t\tRuntime.NODEJS_LATEST,\n\t\t\t\t],\n\t\t\t} as LayerVersionProps);\n\t\t}\n\n\t\t/**\n\t\t * CloudFormation output exposing the layer ARN\n\t\t * Resolves to either created or imported layer\n\t\t */\n\t\tnew CfnOutput(this, 'LambdaLayerArn', {\n\t\t\tvalue:\n\t\t\t\tprops.options?.fromExistingLayerArn ||\n\t\t\t\tprops.options?.fromExistingLayerAttribute\n\t\t\t\t\t? this.existingLayer.layerVersionArn\n\t\t\t\t\t: this.layer.layerVersionArn,\n\t\t});\n\t}\n}\n"]}
@@ -31,9 +31,9 @@ var BaseLambdaConstruct = class extends constructs.Construct {
31
31
  ...props?.options?.lambdaOptions,
32
32
  /**
33
33
  * Lambda function name
34
- * Defaults to "<stackName>-handler" if not provided
34
+ * Defaults to "<stackName>" if not provided
35
35
  */
36
- functionName: `${props?.options?.lambdaOptions?.functionName || props?.stackName}-handler`,
36
+ functionName: `${props?.options?.lambdaOptions?.functionName || props?.stackName}`,
37
37
  /**
38
38
  * Function description
39
39
  */
@@ -78,5 +78,5 @@ var BaseLambdaConstruct = class extends constructs.Construct {
78
78
  };
79
79
 
80
80
  exports.BaseLambdaConstruct = BaseLambdaConstruct;
81
- //# sourceMappingURL=lambda-construct.cjs.map
82
- //# sourceMappingURL=lambda-construct.cjs.map
81
+ //# sourceMappingURL=lambda.cjs.map
82
+ //# sourceMappingURL=lambda.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/aws/cdk/constructs/lambda-construct.ts"],"names":["Construct","detectDuplicateProperties","Function","Runtime","Duration","AppEnvironmentEnum","Architecture","Code","CfnOutput"],"mappings":";;;;;;;;;AAwCO,IAAM,mBAAA,GAAN,cAAkCA,oBAAA,CAAU;AAAA,EAxCnD;AAwCmD,IAAA,MAAA,CAAA,IAAA,EAAA,qBAAA,CAAA;AAAA;AAAA;AAAA,EAEzC,QAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,WAAA,CAAY,KAAA,EAAkB,EAAA,EAAY,KAAA,EAA8B;AACvE,IAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAUf,IAAA,MAAM,WAAA,GAAc;AAAA,MACnB,GAAG,KAAA,CAAM,OAAA,EAAS,aAAA,EAAe,WAAA;AAAA,MACjC,UAAU,KAAA,CAAM,KAAA;AAAA,MAChB,YAAA,EAAc,sBAAA;AAAA,MACd,mCAAA,EAAqC;AAAA,KACtC;AAKA,IAAAC,iCAAA,CAA0B,EAAE,IAAA,EAAM,WAAA,EAAa,CAAA;AAE/C,IAAA,IAAA,CAAK,QAAA,GAAW,IAAIC,kBAAA,CAAS,IAAA,EAAM,EAAA,EAAI;AAAA,MACtC,GAAG,OAAO,OAAA,EAAS,aAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMnB,cAAc,CAAA,EAAG,KAAA,EAAO,SAAS,aAAA,EAAe,YAAA,IAAgB,OAAO,SAAS,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA,MAKhF,WAAA,EACC,KAAA,EAAO,OAAA,EAAS,aAAA,EAAe,WAAA,IAAe,mBAAA;AAAA;AAAA;AAAA;AAAA,MAK/C,OAAA,EAAS,KAAA,EAAO,OAAA,EAAS,aAAA,EAAe,OAAA,IAAW,gBAAA;AAAA;AAAA;AAAA;AAAA,MAKnD,OAAA,EAAS,KAAA,EAAO,OAAA,EAAS,aAAA,EAAe,WAAWC,iBAAA,CAAQ,WAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAO3D,OAAA,EACC,KAAA,EAAO,OAAA,EAAS,aAAA,EAAe,WAC/BC,kBAAA,CAAS,OAAA;AAAA,QACR,KAAA,CAAM,KAAA,KAAUC,0BAAA,CAAmB,UAAA,GAAa,EAAA,GAAK;AAAA,OACtD;AAAA;AAAA;AAAA;AAAA,MAKD,UAAA,EAAY,KAAA,EAAO,OAAA,EAAS,aAAA,EAAe,UAAA,IAAc,IAAA;AAAA;AAAA;AAAA;AAAA,MAKzD,YAAA,EACC,KAAA,EAAO,OAAA,EAAS,aAAA,EAAe,gBAAgBC,sBAAA,CAAa,MAAA;AAAA;AAAA;AAAA;AAAA,MAK7D,MAAM,KAAA,EAAO,OAAA,EAAS,eAAe,IAAA,IAAQC,cAAA,CAAK,UAAU,MAAM,CAAA;AAAA;AAAA;AAAA;AAAA,MAKlE;AAAA,KACA,CAAA;AAKD,IAAA,IAAIC,mBAAA,CAAU,MAAM,mBAAA,EAAqB;AAAA,MACxC,KAAA,EAAO,KAAK,QAAA,CAAS;AAAA,KACrB,CAAA;AAAA,EACF;AACD","file":"lambda.cjs","sourcesContent":["import { Construct } from 'constructs';\nimport { CfnOutput, Duration } from 'aws-cdk-lib';\nimport {\n\tArchitecture,\n\tCode,\n\tFunction,\n\tFunctionProps,\n\tRuntime,\n} from 'aws-cdk-lib/aws-lambda';\n\nimport {\n\tdetectDuplicateProperties,\n\tAppEnvironmentEnum,\n} from '@incloodsolutions/toolkit';\n\nimport { IBaseCdkConstructProps } from '../../types';\n\n/**\n * Props for BaseLambdaConstruct\n *\n * Provides configuration for creating a Lambda function\n * with optional overrides for runtime, memory, timeout, and environment.\n */\ninterface ILambdaConstructProps extends Omit<\n\tIBaseCdkConstructProps<{\n\t\t/** Partial Lambda configuration options */\n\t\treadonly lambdaOptions: Partial<FunctionProps>;\n\t}>,\n\t'appName'\n> {}\n\n/**\n * CDK construct for AWS Lambda function\n *\n * Responsibilities:\n * - Creates a Lambda function with sensible defaults\n * - Merges and validates environment variables\n * - Applies stage-based configuration (e.g. timeout)\n * - Exposes the function ARN as a CloudFormation output\n */\nexport class BaseLambdaConstruct extends Construct {\n\t/** The created Lambda function instance */\n\treadonly function: Function;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for Lambda function\n\t */\n\tconstructor(scope: Construct, id: string, props: ILambdaConstructProps) {\n\t\tsuper(scope, id);\n\n\t\t/**\n\t\t * Environment variables for the Lambda function\n\t\t *\n\t\t * Includes:\n\t\t * - User-defined variables\n\t\t * - NODE_ENV derived from stage\n\t\t * - Node.js runtime optimisations\n\t\t */\n\t\tconst environment = {\n\t\t\t...props.options?.lambdaOptions?.environment,\n\t\t\tNODE_ENV: props.stage,\n\t\t\tNODE_OPTIONS: '--enable-source-maps',\n\t\t\tAWS_NODEJS_CONNECTION_REUSE_ENABLED: '1',\n\t\t};\n\n\t\t/**\n\t\t * Validate environment variables for duplicate keys\n\t\t */\n\t\tdetectDuplicateProperties({ data: environment });\n\n\t\tthis.function = new Function(this, id, {\n\t\t\t...props?.options?.lambdaOptions,\n\n\t\t\t/**\n\t\t\t * Lambda function name\n\t\t\t * Defaults to \"<stackName>\" if not provided\n\t\t\t */\n\t\t\tfunctionName: `${props?.options?.lambdaOptions?.functionName || props?.stackName}`,\n\n\t\t\t/**\n\t\t\t * Function description\n\t\t\t */\n\t\t\tdescription:\n\t\t\t\tprops?.options?.lambdaOptions?.description || 'A lambda function',\n\n\t\t\t/**\n\t\t\t * Entry handler for the Lambda function\n\t\t\t */\n\t\t\thandler: props?.options?.lambdaOptions?.handler || 'lambda.handler',\n\n\t\t\t/**\n\t\t\t * Runtime environment\n\t\t\t */\n\t\t\truntime: props?.options?.lambdaOptions?.runtime || Runtime.NODEJS_24_X,\n\n\t\t\t/**\n\t\t\t * Execution timeout\n\t\t\t * - 30 seconds in production\n\t\t\t * - 15 seconds otherwise\n\t\t\t */\n\t\t\ttimeout:\n\t\t\t\tprops?.options?.lambdaOptions?.timeout ||\n\t\t\t\tDuration.seconds(\n\t\t\t\t\tprops.stage === AppEnvironmentEnum.PRODUCTION ? 30 : 15,\n\t\t\t\t),\n\n\t\t\t/**\n\t\t\t * Memory allocation (in MB)\n\t\t\t */\n\t\t\tmemorySize: props?.options?.lambdaOptions?.memorySize || 1024,\n\n\t\t\t/**\n\t\t\t * CPU architecture\n\t\t\t */\n\t\t\tarchitecture:\n\t\t\t\tprops?.options?.lambdaOptions?.architecture || Architecture.ARM_64,\n\n\t\t\t/**\n\t\t\t * Lambda deployment package source\n\t\t\t */\n\t\t\tcode: props?.options?.lambdaOptions?.code || Code.fromAsset('dist'),\n\n\t\t\t/**\n\t\t\t * Final merged environment variables\n\t\t\t */\n\t\t\tenvironment,\n\t\t});\n\n\t\t/**\n\t\t * CloudFormation output exposing the Lambda function ARN\n\t\t */\n\t\tnew CfnOutput(this, 'LambdaFunctionArn', {\n\t\t\tvalue: this.function.functionArn,\n\t\t});\n\t}\n}\n"]}
@@ -1,7 +1,8 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { Function, FunctionProps } from 'aws-cdk-lib/aws-lambda';
3
- import { IBaseCdkConstructProps } from '../../types/index.js';
3
+ import { IBaseCdkConstructProps } from '../../aws-types.cjs';
4
4
  import '@incloodsolutions/toolkit';
5
+ import 'aws-cdk-lib';
5
6
 
6
7
  /**
7
8
  * Props for BaseLambdaConstruct
@@ -1,7 +1,8 @@
1
1
  import { Construct } from 'constructs';
2
2
  import { Function, FunctionProps } from 'aws-cdk-lib/aws-lambda';
3
- import { IBaseCdkConstructProps } from '../../types/index.cjs';
3
+ import { IBaseCdkConstructProps } from '../../aws-types.js';
4
4
  import '@incloodsolutions/toolkit';
5
+ import 'aws-cdk-lib';
5
6
 
6
7
  /**
7
8
  * Props for BaseLambdaConstruct
@@ -29,9 +29,9 @@ var BaseLambdaConstruct = class extends Construct {
29
29
  ...props?.options?.lambdaOptions,
30
30
  /**
31
31
  * Lambda function name
32
- * Defaults to "<stackName>-handler" if not provided
32
+ * Defaults to "<stackName>" if not provided
33
33
  */
34
- functionName: `${props?.options?.lambdaOptions?.functionName || props?.stackName}-handler`,
34
+ functionName: `${props?.options?.lambdaOptions?.functionName || props?.stackName}`,
35
35
  /**
36
36
  * Function description
37
37
  */
@@ -76,5 +76,5 @@ var BaseLambdaConstruct = class extends Construct {
76
76
  };
77
77
 
78
78
  export { BaseLambdaConstruct };
79
- //# sourceMappingURL=lambda-construct.js.map
80
- //# sourceMappingURL=lambda-construct.js.map
79
+ //# sourceMappingURL=lambda.js.map
80
+ //# sourceMappingURL=lambda.js.map