alchemy 0.1.14 → 0.1.16

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 (222) hide show
  1. package/lib/apply.js +1 -1
  2. package/lib/apply.js.map +1 -1
  3. package/lib/destroy.js +9 -3
  4. package/lib/destroy.js.map +1 -1
  5. package/package.json +1 -2
  6. package/src/apply.ts +1 -1
  7. package/src/aws/table.ts +30 -8
  8. package/src/cloudflare/kv-namespace.ts +34 -15
  9. package/src/cloudflare/worker.ts +66 -41
  10. package/src/destroy.ts +15 -10
  11. package/src/utils/retry.ts +1 -0
  12. package/README.md +0 -334
  13. package/lib/$.d.ts +0 -12
  14. package/lib/$.d.ts.map +0 -1
  15. package/lib/$.js +0 -42
  16. package/lib/$.js.map +0 -1
  17. package/lib/alchemize.d.ts +0 -43
  18. package/lib/alchemize.d.ts.map +0 -1
  19. package/lib/alchemize.js +0 -112
  20. package/lib/alchemize.js.map +0 -1
  21. package/lib/apply.d.ts +0 -23
  22. package/lib/aws/account-id.d.ts +0 -5
  23. package/lib/aws/account-id.d.ts.map +0 -1
  24. package/lib/aws/account-id.js +0 -10
  25. package/lib/aws/account-id.js.map +0 -1
  26. package/lib/aws/bucket.d.ts +0 -21
  27. package/lib/aws/bucket.d.ts.map +0 -1
  28. package/lib/aws/bucket.js +0 -114
  29. package/lib/aws/bucket.js.map +0 -1
  30. package/lib/aws/function.d.ts +0 -53
  31. package/lib/aws/function.d.ts.map +0 -1
  32. package/lib/aws/function.js +0 -195
  33. package/lib/aws/function.js.map +0 -1
  34. package/lib/aws/index.d.ts +0 -9
  35. package/lib/aws/index.d.ts.map +0 -1
  36. package/lib/aws/index.js +0 -9
  37. package/lib/aws/index.js.map +0 -1
  38. package/lib/aws/oidc/github-oidc-provider.d.ts +0 -11
  39. package/lib/aws/oidc/github-oidc-provider.d.ts.map +0 -1
  40. package/lib/aws/oidc/github-oidc-provider.js +0 -22
  41. package/lib/aws/oidc/github-oidc-provider.js.map +0 -1
  42. package/lib/aws/oidc/index.d.ts +0 -3
  43. package/lib/aws/oidc/index.d.ts.map +0 -1
  44. package/lib/aws/oidc/index.js +0 -3
  45. package/lib/aws/oidc/index.js.map +0 -1
  46. package/lib/aws/oidc/oidc-provider.d.ts +0 -60
  47. package/lib/aws/oidc/oidc-provider.d.ts.map +0 -1
  48. package/lib/aws/oidc/oidc-provider.js +0 -140
  49. package/lib/aws/oidc/oidc-provider.js.map +0 -1
  50. package/lib/aws/policy.d.ts +0 -46
  51. package/lib/aws/policy.d.ts.map +0 -1
  52. package/lib/aws/policy.js +0 -139
  53. package/lib/aws/policy.js.map +0 -1
  54. package/lib/aws/queue.d.ts +0 -62
  55. package/lib/aws/queue.d.ts.map +0 -1
  56. package/lib/aws/queue.js +0 -167
  57. package/lib/aws/queue.js.map +0 -1
  58. package/lib/aws/role.d.ts +0 -27
  59. package/lib/aws/role.d.ts.map +0 -1
  60. package/lib/aws/role.js +0 -197
  61. package/lib/aws/role.js.map +0 -1
  62. package/lib/aws/ses.d.ts +0 -75
  63. package/lib/aws/ses.d.ts.map +0 -1
  64. package/lib/aws/ses.js +0 -189
  65. package/lib/aws/ses.js.map +0 -1
  66. package/lib/aws/table.d.ts +0 -26
  67. package/lib/aws/table.d.ts.map +0 -1
  68. package/lib/aws/table.js +0 -142
  69. package/lib/aws/table.js.map +0 -1
  70. package/lib/cloudflare/api.d.ts +0 -88
  71. package/lib/cloudflare/api.d.ts.map +0 -1
  72. package/lib/cloudflare/api.js +0 -184
  73. package/lib/cloudflare/api.js.map +0 -1
  74. package/lib/cloudflare/asset-manifest.d.ts +0 -15
  75. package/lib/cloudflare/asset-manifest.d.ts.map +0 -1
  76. package/lib/cloudflare/asset-manifest.js +0 -2
  77. package/lib/cloudflare/asset-manifest.js.map +0 -1
  78. package/lib/cloudflare/auth.d.ts +0 -52
  79. package/lib/cloudflare/auth.d.ts.map +0 -1
  80. package/lib/cloudflare/auth.js +0 -114
  81. package/lib/cloudflare/auth.js.map +0 -1
  82. package/lib/cloudflare/bindings.d.ts +0 -259
  83. package/lib/cloudflare/bindings.d.ts.map +0 -1
  84. package/lib/cloudflare/bindings.js +0 -2
  85. package/lib/cloudflare/bindings.js.map +0 -1
  86. package/lib/cloudflare/durable-object-namespace.d.ts +0 -20
  87. package/lib/cloudflare/durable-object-namespace.d.ts.map +0 -1
  88. package/lib/cloudflare/durable-object-namespace.js +0 -21
  89. package/lib/cloudflare/durable-object-namespace.js.map +0 -1
  90. package/lib/cloudflare/generate-asset-manifest.d.ts +0 -3
  91. package/lib/cloudflare/generate-asset-manifest.d.ts.map +0 -1
  92. package/lib/cloudflare/generate-asset-manifest.js +0 -69
  93. package/lib/cloudflare/generate-asset-manifest.js.map +0 -1
  94. package/lib/cloudflare/index.d.ts +0 -7
  95. package/lib/cloudflare/index.d.ts.map +0 -1
  96. package/lib/cloudflare/index.js +0 -7
  97. package/lib/cloudflare/index.js.map +0 -1
  98. package/lib/cloudflare/kv-namespace.d.ts +0 -64
  99. package/lib/cloudflare/kv-namespace.d.ts.map +0 -1
  100. package/lib/cloudflare/kv-namespace.js +0 -97
  101. package/lib/cloudflare/kv-namespace.js.map +0 -1
  102. package/lib/cloudflare/state.d.ts +0 -83
  103. package/lib/cloudflare/state.d.ts.map +0 -1
  104. package/lib/cloudflare/state.js +0 -109
  105. package/lib/cloudflare/state.js.map +0 -1
  106. package/lib/cloudflare/static-site-router.d.ts +0 -19
  107. package/lib/cloudflare/static-site-router.d.ts.map +0 -1
  108. package/lib/cloudflare/static-site-router.js +0 -110
  109. package/lib/cloudflare/static-site-router.js.map +0 -1
  110. package/lib/cloudflare/static-site.d.ts +0 -166
  111. package/lib/cloudflare/static-site.d.ts.map +0 -1
  112. package/lib/cloudflare/static-site.js +0 -150
  113. package/lib/cloudflare/static-site.js.map +0 -1
  114. package/lib/cloudflare/types.d.ts +0 -52
  115. package/lib/cloudflare/types.d.ts.map +0 -1
  116. package/lib/cloudflare/types.js +0 -21
  117. package/lib/cloudflare/types.js.map +0 -1
  118. package/lib/cloudflare/upload-asset-manifest.d.ts +0 -12
  119. package/lib/cloudflare/upload-asset-manifest.d.ts.map +0 -1
  120. package/lib/cloudflare/upload-asset-manifest.js +0 -55
  121. package/lib/cloudflare/upload-asset-manifest.js.map +0 -1
  122. package/lib/cloudflare/worker-metadata.d.ts +0 -130
  123. package/lib/cloudflare/worker-metadata.d.ts.map +0 -1
  124. package/lib/cloudflare/worker-metadata.js +0 -2
  125. package/lib/cloudflare/worker-metadata.js.map +0 -1
  126. package/lib/cloudflare/worker-migration.d.ts +0 -110
  127. package/lib/cloudflare/worker-migration.d.ts.map +0 -1
  128. package/lib/cloudflare/worker-migration.js +0 -11
  129. package/lib/cloudflare/worker-migration.js.map +0 -1
  130. package/lib/cloudflare/worker.d.ts +0 -108
  131. package/lib/cloudflare/worker.d.ts.map +0 -1
  132. package/lib/cloudflare/worker.js +0 -384
  133. package/lib/cloudflare/worker.js.map +0 -1
  134. package/lib/destroy.d.ts +0 -19
  135. package/lib/error.d.ts +0 -2
  136. package/lib/error.d.ts.map +0 -1
  137. package/lib/error.js +0 -13
  138. package/lib/error.js.map +0 -1
  139. package/lib/esbuild.d.ts +0 -152
  140. package/lib/esbuild.d.ts.map +0 -1
  141. package/lib/esbuild.js +0 -67
  142. package/lib/esbuild.js.map +0 -1
  143. package/lib/fs.d.ts +0 -12
  144. package/lib/fs.d.ts.map +0 -1
  145. package/lib/fs.js +0 -41
  146. package/lib/fs.js.map +0 -1
  147. package/lib/github/client.d.ts +0 -34
  148. package/lib/github/client.d.ts.map +0 -1
  149. package/lib/github/client.js +0 -91
  150. package/lib/github/client.js.map +0 -1
  151. package/lib/github/index.d.ts +0 -2
  152. package/lib/github/index.d.ts.map +0 -1
  153. package/lib/github/index.js +0 -2
  154. package/lib/github/index.js.map +0 -1
  155. package/lib/github/secret.d.ts +0 -46
  156. package/lib/github/secret.d.ts.map +0 -1
  157. package/lib/github/secret.js +0 -103
  158. package/lib/github/secret.js.map +0 -1
  159. package/lib/global.d.ts +0 -16
  160. package/lib/global.d.ts.map +0 -1
  161. package/lib/global.js +0 -42
  162. package/lib/global.js.map +0 -1
  163. package/lib/index.d.ts +0 -10
  164. package/lib/index.d.ts.map +0 -1
  165. package/lib/index.js +0 -9
  166. package/lib/index.js.map +0 -1
  167. package/lib/input.d.ts +0 -6
  168. package/lib/input.d.ts.map +0 -1
  169. package/lib/input.js +0 -2
  170. package/lib/input.js.map +0 -1
  171. package/lib/main.d.ts +0 -3
  172. package/lib/main.d.ts.map +0 -1
  173. package/lib/main.js +0 -32
  174. package/lib/main.js.map +0 -1
  175. package/lib/output.d.ts +0 -24
  176. package/lib/output.d.ts.map +0 -1
  177. package/lib/output.js +0 -23
  178. package/lib/output.js.map +0 -1
  179. package/lib/print.d.ts +0 -7
  180. package/lib/print.d.ts.map +0 -1
  181. package/lib/print.js +0 -10
  182. package/lib/print.js.map +0 -1
  183. package/lib/resource.d.ts +0 -71
  184. package/lib/resource.d.ts.map +0 -1
  185. package/lib/resource.js +0 -276
  186. package/lib/resource.js.map +0 -1
  187. package/lib/scope.d.ts +0 -18
  188. package/lib/scope.d.ts.map +0 -1
  189. package/lib/scope.js +0 -30
  190. package/lib/scope.js.map +0 -1
  191. package/lib/slug.d.ts +0 -2
  192. package/lib/slug.d.ts.map +0 -1
  193. package/lib/slug.js +0 -4
  194. package/lib/slug.js.map +0 -1
  195. package/lib/state.d.ts +0 -40
  196. package/lib/state.d.ts.map +0 -1
  197. package/lib/state.js +0 -73
  198. package/lib/state.js.map +0 -1
  199. package/lib/stripe/index.d.ts +0 -4
  200. package/lib/stripe/index.d.ts.map +0 -1
  201. package/lib/stripe/index.js +0 -4
  202. package/lib/stripe/index.js.map +0 -1
  203. package/lib/stripe/price.d.ts +0 -109
  204. package/lib/stripe/price.d.ts.map +0 -1
  205. package/lib/stripe/price.js +0 -112
  206. package/lib/stripe/price.js.map +0 -1
  207. package/lib/stripe/product.d.ts +0 -86
  208. package/lib/stripe/product.d.ts.map +0 -1
  209. package/lib/stripe/product.js +0 -90
  210. package/lib/stripe/product.js.map +0 -1
  211. package/lib/stripe/webhook.d.ts +0 -73
  212. package/lib/stripe/webhook.d.ts.map +0 -1
  213. package/lib/stripe/webhook.js +0 -94
  214. package/lib/stripe/webhook.js.map +0 -1
  215. package/lib/utils/content-type.d.ts +0 -8
  216. package/lib/utils/content-type.d.ts.map +0 -1
  217. package/lib/utils/content-type.js +0 -41
  218. package/lib/utils/content-type.js.map +0 -1
  219. package/lib/utils/retry.d.ts +0 -13
  220. package/lib/utils/retry.d.ts.map +0 -1
  221. package/lib/utils/retry.js +0 -31
  222. package/lib/utils/retry.js.map +0 -1
package/lib/aws/bucket.js DELETED
@@ -1,114 +0,0 @@
1
- import { CreateBucketCommand, DeleteBucketCommand, GetBucketAclCommand, GetBucketLocationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, HeadBucketCommand, NoSuchBucket, PutBucketTaggingCommand, S3Client, } from "@aws-sdk/client-s3";
2
- import { ignore } from "../error";
3
- import { Resource } from "../resource";
4
- export class Bucket extends Resource("s3::Bucket", async (ctx, props) => {
5
- const client = new S3Client({});
6
- if (ctx.event === "delete") {
7
- await ignore(NoSuchBucket.name, () => client.send(new DeleteBucketCommand({
8
- Bucket: props.bucketName,
9
- })));
10
- return props;
11
- }
12
- else {
13
- try {
14
- // Check if bucket exists
15
- await client.send(new HeadBucketCommand({
16
- Bucket: props.bucketName,
17
- }));
18
- // Update tags if they changed and bucket exists
19
- if (ctx.event === "update" && props.tags) {
20
- await client.send(new PutBucketTaggingCommand({
21
- Bucket: props.bucketName,
22
- Tagging: {
23
- TagSet: Object.entries(props.tags).map(([Key, Value]) => ({
24
- Key,
25
- Value,
26
- })),
27
- },
28
- }));
29
- }
30
- }
31
- catch (error) {
32
- if (error.name === "NotFound") {
33
- // Create bucket if it doesn't exist
34
- await client.send(new CreateBucketCommand({
35
- Bucket: props.bucketName,
36
- // Add tags during creation if specified
37
- ...(props.tags && {
38
- Tagging: {
39
- TagSet: Object.entries(props.tags).map(([Key, Value]) => ({
40
- Key,
41
- Value,
42
- })),
43
- },
44
- }),
45
- }));
46
- }
47
- else {
48
- throw error;
49
- }
50
- }
51
- // Get bucket details
52
- const [locationResponse, versioningResponse, aclResponse] = await Promise.all([
53
- client.send(new GetBucketLocationCommand({ Bucket: props.bucketName })),
54
- client.send(new GetBucketVersioningCommand({ Bucket: props.bucketName })),
55
- client.send(new GetBucketAclCommand({ Bucket: props.bucketName })),
56
- ]);
57
- const region = locationResponse.LocationConstraint || "us-east-1";
58
- // Get tags if they exist
59
- let tags = props.tags;
60
- if (!tags) {
61
- try {
62
- const taggingResponse = await client.send(new GetBucketTaggingCommand({ Bucket: props.bucketName }));
63
- tags = Object.fromEntries(taggingResponse.TagSet?.map(({ Key, Value }) => [Key, Value]) || []);
64
- }
65
- catch (error) {
66
- if (error.name !== "NoSuchTagSet") {
67
- throw error;
68
- }
69
- }
70
- }
71
- const output = {
72
- bucketName: props.bucketName,
73
- id: props.bucketName,
74
- arn: `arn:aws:s3:::${props.bucketName}`,
75
- bucketDomainName: `${props.bucketName}.s3.amazonaws.com`,
76
- bucketRegionalDomainName: `${props.bucketName}.s3.${region}.amazonaws.com`,
77
- region,
78
- hostedZoneId: getHostedZoneId(region),
79
- versioningEnabled: versioningResponse.Status === "Enabled",
80
- acl: aclResponse.Grants?.[0]?.Permission?.toLowerCase(),
81
- ...(tags && { tags }),
82
- };
83
- return output;
84
- }
85
- }) {
86
- }
87
- // Helper function to get S3 hosted zone IDs by region
88
- function getHostedZoneId(region) {
89
- const hostedZoneIds = {
90
- "us-east-1": "Z3AQBSTGFYJSTF",
91
- "us-east-2": "Z2O1EMRO9K5GLX",
92
- "us-west-1": "Z2F56UZL2M1ACD",
93
- "us-west-2": "Z3BJ6K6RIION7M",
94
- "af-south-1": "Z11KHD8FBVPUYU",
95
- "ap-east-1": "ZNB98KWMFR0R6",
96
- "ap-south-1": "Z11RGJOFQNVJUP",
97
- "ap-northeast-1": "Z2M4EHUR26P7ZW",
98
- "ap-northeast-2": "Z3W03O7B5YMIYP",
99
- "ap-northeast-3": "Z2YQB5RD63NC85",
100
- "ap-southeast-1": "Z3O0J2DXBE1FTB",
101
- "ap-southeast-2": "Z1WCIGYICN2BYD",
102
- "ca-central-1": "Z1QDHH18159H29",
103
- "eu-central-1": "Z21DNDUVLTQW6Q",
104
- "eu-west-1": "Z1BKCTXD74EZPE",
105
- "eu-west-2": "Z3GKZC51ZF0DB4",
106
- "eu-west-3": "Z3R1K369G5AVDG",
107
- "eu-north-1": "Z3BAZG2TWCNX0D",
108
- "eu-south-1": "Z30OZKI7KPW7MI",
109
- "me-south-1": "Z1MPMWCPA7YB62",
110
- "sa-east-1": "Z7KQH4QJS55SO",
111
- };
112
- return hostedZoneIds[region] || "Z3AQBSTGFYJSTF"; // Default to us-east-1 if region not found
113
- }
114
- //# sourceMappingURL=bucket.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bucket.js","sourceRoot":"","sources":["../../src/aws/bucket.ts"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- import { Architecture, Runtime } from "@aws-sdk/client-lambda";
2
- export interface FunctionProps {
3
- functionName: string;
4
- zipPath: string;
5
- roleArn: string;
6
- handler?: string;
7
- runtime?: Runtime;
8
- architecture?: Architecture;
9
- description?: string;
10
- timeout?: number;
11
- memorySize?: number;
12
- environment?: Record<string, string>;
13
- tags?: Record<string, string>;
14
- url?: {
15
- authType?: "AWS_IAM" | "NONE";
16
- cors?: {
17
- allowCredentials?: boolean;
18
- allowHeaders?: string[];
19
- allowMethods?: string[];
20
- allowOrigins?: string[];
21
- exposeHeaders?: string[];
22
- maxAge?: number;
23
- };
24
- };
25
- }
26
- export interface FunctionOutput extends FunctionProps {
27
- id: string;
28
- arn: string;
29
- lastModified: string;
30
- version: string;
31
- qualifiedArn: string;
32
- invokeArn: string;
33
- sourceCodeHash: string;
34
- sourceCodeSize: number;
35
- ephemeralStorageSize?: number;
36
- architectures: string[];
37
- masterArn?: string;
38
- revisionId: string;
39
- state?: string;
40
- stateReason?: string;
41
- stateReasonCode?: string;
42
- lastUpdateStatus?: string;
43
- lastUpdateStatusReason?: string;
44
- lastUpdateStatusReasonCode?: string;
45
- packageType: string;
46
- signingProfileVersionArn?: string;
47
- signingJobArn?: string;
48
- }
49
- declare const Function_base: import("../resource").Provider<"lambda::Function", [props: FunctionProps], FunctionOutput>;
50
- export declare class Function extends Function_base {
51
- }
52
- export {};
53
- //# sourceMappingURL=function.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../src/aws/function.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAOZ,OAAO,EAGR,MAAM,wBAAwB,CAAC;AAahC,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,GAAG,CAAC,EAAE;QACJ,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,EAAE;YACL,gBAAgB,CAAC,EAAE,OAAO,CAAC;YAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;YACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;YACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;YACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;YACzB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;;AAED,qBAAa,QAAS,SAAQ,aAyL7B;CAAG"}
@@ -1,195 +0,0 @@
1
- import { Architecture, CreateFunctionCommand, DeleteFunctionCommand, GetFunctionCommand, GetFunctionConfigurationCommand, LambdaClient, ResourceNotFoundException, Runtime, UpdateFunctionCodeCommand, UpdateFunctionConfigurationCommand, } from "@aws-sdk/client-lambda";
2
- import fs from "node:fs";
3
- import path from "node:path";
4
- import { ignore } from "../error";
5
- import { Resource } from "../resource";
6
- async function resolveRegion(client) {
7
- const region = client.config.region;
8
- if (typeof region === "string")
9
- return region;
10
- if (typeof region === "function")
11
- return region();
12
- throw new Error("Could not resolve AWS region");
13
- }
14
- export class Function extends Resource("lambda::Function", async (ctx, props) => {
15
- const client = new LambdaClient({});
16
- const region = await resolveRegion(client);
17
- const code = await zipCode(props.zipPath);
18
- if (ctx.event === "delete") {
19
- await ignore(ResourceNotFoundException.name, () => client.send(new DeleteFunctionCommand({
20
- FunctionName: props.functionName,
21
- })));
22
- // Return a minimal FunctionOutput for deleted state
23
- return {
24
- ...props,
25
- id: props.functionName,
26
- arn: `arn:aws:lambda:${region}:${process.env.AWS_ACCOUNT_ID}:function:${props.functionName}`,
27
- lastModified: new Date().toISOString(),
28
- version: "$LATEST",
29
- qualifiedArn: `arn:aws:lambda:${region}:${process.env.AWS_ACCOUNT_ID}:function:${props.functionName}:$LATEST`,
30
- invokeArn: `arn:aws:apigateway:${region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${region}:${process.env.AWS_ACCOUNT_ID}:function:${props.functionName}/invocations`,
31
- sourceCodeHash: "",
32
- sourceCodeSize: 0,
33
- architectures: props.architecture
34
- ? [props.architecture]
35
- : [Architecture.x86_64],
36
- revisionId: "",
37
- state: "Inactive",
38
- packageType: "Zip",
39
- };
40
- }
41
- else {
42
- try {
43
- // Check if function exists
44
- const func = await client.send(new GetFunctionCommand({
45
- FunctionName: props.functionName,
46
- }));
47
- if (ctx.event === "update") {
48
- // Wait for function to stabilize
49
- await waitForFunctionStabilization(client, props.functionName);
50
- // Update function code
51
- await client.send(new UpdateFunctionCodeCommand({
52
- FunctionName: props.functionName,
53
- ZipFile: code,
54
- }));
55
- // Wait for code update to stabilize
56
- await waitForFunctionStabilization(client, props.functionName);
57
- // Update function configuration
58
- await client.send(new UpdateFunctionConfigurationCommand({
59
- FunctionName: props.functionName,
60
- Handler: props.handler,
61
- Runtime: props.runtime,
62
- Role: props.roleArn,
63
- Description: props.description,
64
- Timeout: props.timeout,
65
- MemorySize: props.memorySize,
66
- Environment: props.environment
67
- ? { Variables: props.environment }
68
- : undefined,
69
- }));
70
- // Wait for configuration update to stabilize
71
- await waitForFunctionStabilization(client, props.functionName);
72
- }
73
- }
74
- catch (error) {
75
- if (error.name === "ResourceNotFoundException") {
76
- // Create function if it doesn't exist
77
- const startTime = Date.now();
78
- let delay = 100; // Start with 100ms delay
79
- while (true) {
80
- try {
81
- await client.send(new CreateFunctionCommand({
82
- FunctionName: props.functionName,
83
- Code: { ZipFile: code },
84
- Handler: props.handler || "index.handler",
85
- Runtime: props.runtime || Runtime.nodejs20x,
86
- Role: props.roleArn,
87
- Description: props.description,
88
- Timeout: props.timeout || 3,
89
- MemorySize: props.memorySize || 128,
90
- Environment: props.environment
91
- ? { Variables: props.environment }
92
- : undefined,
93
- Architectures: props.architecture
94
- ? [props.architecture]
95
- : [Architecture.x86_64],
96
- Tags: props.tags,
97
- }));
98
- break; // Success - exit retry loop
99
- }
100
- catch (createError) {
101
- if (createError.name !== "InvalidParameterValueException" ||
102
- !createError.message?.includes("cannot be assumed by Lambda")) {
103
- throw createError; // Different error - rethrow
104
- }
105
- if (Date.now() - startTime > 10000) {
106
- throw new Error("Timeout waiting for IAM role to be assumable by Lambda after 10s");
107
- }
108
- await new Promise((resolve) => setTimeout(resolve, delay));
109
- delay = Math.min(delay * 2, 1000); // Exponential backoff capped at 1s
110
- }
111
- }
112
- // Wait for function to be active
113
- let isCreating = true;
114
- while (isCreating) {
115
- const config = await client.send(new GetFunctionConfigurationCommand({
116
- FunctionName: props.functionName,
117
- }));
118
- isCreating = config.State === "Pending";
119
- if (isCreating) {
120
- await new Promise((resolve) => setTimeout(resolve, 1000));
121
- }
122
- }
123
- }
124
- else {
125
- throw error;
126
- }
127
- }
128
- // Get complete function details
129
- const [func, config] = await Promise.all([
130
- client.send(new GetFunctionCommand({
131
- FunctionName: props.functionName,
132
- })),
133
- client.send(new GetFunctionConfigurationCommand({
134
- FunctionName: props.functionName,
135
- })),
136
- ]);
137
- const output = {
138
- ...props,
139
- id: props.functionName,
140
- arn: config.FunctionArn,
141
- lastModified: config.LastModified,
142
- version: config.Version,
143
- qualifiedArn: `${config.FunctionArn}:${config.Version}`,
144
- invokeArn: `arn:aws:apigateway:${region}:lambda:path/2015-03-31/functions/${config.FunctionArn}/invocations`,
145
- sourceCodeHash: config.CodeSha256,
146
- sourceCodeSize: config.CodeSize,
147
- ephemeralStorageSize: config.EphemeralStorage?.Size,
148
- architectures: config.Architectures || [],
149
- masterArn: config.MasterArn,
150
- revisionId: config.RevisionId,
151
- state: config.State,
152
- stateReason: config.StateReason,
153
- stateReasonCode: config.StateReasonCode,
154
- lastUpdateStatus: config.LastUpdateStatus,
155
- lastUpdateStatusReason: config.LastUpdateStatusReason,
156
- lastUpdateStatusReasonCode: config.LastUpdateStatusReasonCode,
157
- packageType: config.PackageType,
158
- signingProfileVersionArn: config.SigningProfileVersionArn,
159
- signingJobArn: config.SigningJobArn,
160
- };
161
- return output;
162
- }
163
- }) {
164
- }
165
- // Helper to wait for function to stabilize
166
- async function waitForFunctionStabilization(client, functionName) {
167
- while (true) {
168
- const config = await client.send(new GetFunctionConfigurationCommand({
169
- FunctionName: functionName,
170
- }));
171
- // Check if function is in a stable state
172
- if (config.State === "Active" && config.LastUpdateStatus === "Successful") {
173
- break;
174
- }
175
- // If there's a failure, throw an error
176
- if (config.State === "Failed" || config.LastUpdateStatus === "Failed") {
177
- throw new Error(`Function failed to stabilize: ${config.StateReason || config.LastUpdateStatusReason}`);
178
- }
179
- await new Promise((resolve) => setTimeout(resolve, 1000));
180
- }
181
- }
182
- // Helper to zip the code
183
- async function zipCode(filePath) {
184
- const fileContent = await fs.promises.readFile(filePath);
185
- const fileName = path.basename(filePath);
186
- // Create a zip buffer in memory
187
- const zip = new (await import("jszip")).default();
188
- zip.file(fileName, fileContent);
189
- return zip.generateAsync({
190
- type: "nodebuffer",
191
- compression: "DEFLATE",
192
- platform: "UNIX",
193
- });
194
- }
195
- //# sourceMappingURL=function.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"function.js","sourceRoot":"","sources":["../../src/aws/function.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- export * from "./account-id";
2
- export * from "./bucket";
3
- export * from "./function";
4
- export * from "./policy";
5
- export * from "./queue";
6
- export * from "./role";
7
- export * from "./ses";
8
- export * from "./table";
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
package/lib/aws/index.js DELETED
@@ -1,9 +0,0 @@
1
- export * from "./account-id";
2
- export * from "./bucket";
3
- export * from "./function";
4
- export * from "./policy";
5
- export * from "./queue";
6
- export * from "./role";
7
- export * from "./ses";
8
- export * from "./table";
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
@@ -1,11 +0,0 @@
1
- import type { Input } from "../../input";
2
- import { OIDCProvider, type OIDCProviderProps } from "./oidc-provider";
3
- export interface GitHubOIDCProviderProps extends Omit<OIDCProviderProps, "thumbprint"> {
4
- owner: string;
5
- repository: string;
6
- thumbprint?: string;
7
- }
8
- export declare class GitHubOIDCProvider extends OIDCProvider {
9
- constructor(id: string, props: Input<GitHubOIDCProviderProps>);
10
- }
11
- //# sourceMappingURL=github-oidc-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"github-oidc-provider.d.ts","sourceRoot":"","sources":["../../../src/aws/oidc/github-oidc-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AASvE,MAAM,WAAW,uBACf,SAAQ,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,kBAAmB,SAAQ,YAAY;gBACtC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,uBAAuB,CAAC;CAc9D"}
@@ -1,22 +0,0 @@
1
- import { isOutput } from "../../output";
2
- import { OIDCProvider } from "./oidc-provider";
3
- /**
4
- * Default thumbprint for GitHub's OIDC provider
5
- * This is the certificate thumbprint that GitHub uses to sign OIDC tokens
6
- * @see https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services#adding-the-identity-provider-to-aws
7
- */
8
- const DEFAULT_GITHUB_THUMBPRINT = "6938fd4d98bab03faadb97b34396831e3780aea1";
9
- export class GitHubOIDCProvider extends OIDCProvider {
10
- constructor(id, props) {
11
- super(id, isOutput(props)
12
- ? props.apply((props) => ({
13
- ...props,
14
- thumbprint: props.thumbprint ?? DEFAULT_GITHUB_THUMBPRINT,
15
- }))
16
- : {
17
- ...props,
18
- thumbprint: props.thumbprint ?? DEFAULT_GITHUB_THUMBPRINT,
19
- });
20
- }
21
- }
22
- //# sourceMappingURL=github-oidc-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"github-oidc-provider.js","sourceRoot":"","sources":["../../../src/aws/oidc/github-oidc-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,YAAY,EAA0B,MAAM,iBAAiB,CAAC;AAEvE;;;;GAIG;AACH,MAAM,yBAAyB,GAAG,0CAA0C,CAAC;AAS7E,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAClD,YAAY,EAAU,EAAE,KAAqC;QAC3D,KAAK,CACH,EAAE,EACF,QAAQ,CAA0B,KAAK,CAAC;YACtC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACtB,GAAG,KAAK;gBACR,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,yBAAyB;aAC1D,CAAC,CAAC;YACL,CAAC,CAAE;gBACC,GAAG,KAAK;gBACR,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,yBAAyB;aAC7B,CACnC,CAAC;IACJ,CAAC;CACF"}
@@ -1,3 +0,0 @@
1
- export * from "./github-oidc-provider";
2
- export * from "./oidc-provider";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/aws/oidc/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from "./github-oidc-provider";
2
- export * from "./oidc-provider";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/aws/oidc/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
@@ -1,60 +0,0 @@
1
- /**
2
- * Properties for configuring an AWS OIDC provider for GitHub Actions
3
- */
4
- export interface OIDCProviderProps {
5
- /**
6
- * The GitHub organization or user that owns the repository
7
- */
8
- owner: string;
9
- /**
10
- * The name of the GitHub repository
11
- */
12
- repository: string;
13
- /**
14
- * Optional list of branches to restrict access to
15
- * If not provided, all branches will be allowed
16
- */
17
- branches?: string[];
18
- /**
19
- * Optional list of environments to restrict access to
20
- * If not provided, all environments will be allowed
21
- */
22
- environments?: string[];
23
- /**
24
- * The ARN of the IAM role to be assumed
25
- */
26
- roleArn: string;
27
- /**
28
- * Optional maximum session duration in seconds (default: 3600)
29
- */
30
- maxSessionDuration?: number;
31
- /**
32
- * Thumbprint for the OIDC provider
33
- */
34
- thumbprint: string;
35
- /**
36
- * Optional AWS region (defaults to AWS_REGION environment variable)
37
- */
38
- region?: string;
39
- }
40
- /**
41
- * Output returned after OIDC provider configuration
42
- */
43
- export interface OIDCProviderOutput extends OIDCProviderProps {
44
- /**
45
- * The ARN of the OIDC provider
46
- */
47
- providerArn: string;
48
- /**
49
- * Time at which the provider was created
50
- */
51
- createdAt: number;
52
- }
53
- declare const OIDCProvider_base: import("../../resource").Provider<"aws::OIDCProvider", [props: OIDCProviderProps], OIDCProviderOutput>;
54
- /**
55
- * Resource for configuring AWS OIDC provider for GitHub Actions
56
- */
57
- export declare class OIDCProvider extends OIDCProvider_base {
58
- }
59
- export {};
60
- //# sourceMappingURL=oidc-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oidc-provider.d.ts","sourceRoot":"","sources":["../../../src/aws/oidc/oidc-provider.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;;AAQD;;GAEG;AACH,qBAAa,YAAa,SAAQ,iBAyKjC;CAAG"}