alchemy 0.22.4 → 0.24.0

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 (179) hide show
  1. package/lib/aws/bucket.d.ts.map +1 -1
  2. package/lib/aws/bucket.js +13 -12
  3. package/lib/aws/bucket.js.map +1 -1
  4. package/lib/aws/control/client.d.ts.map +1 -1
  5. package/lib/aws/control/client.js +5 -3
  6. package/lib/aws/control/client.js.map +1 -1
  7. package/lib/aws/control/properties.d.ts +11 -2
  8. package/lib/aws/control/properties.d.ts.map +1 -1
  9. package/lib/aws/control/properties.js +96 -19
  10. package/lib/aws/control/properties.js.map +1 -1
  11. package/lib/aws/control/resource.d.ts.map +1 -1
  12. package/lib/aws/control/resource.js +13 -4
  13. package/lib/aws/control/resource.js.map +1 -1
  14. package/lib/aws/control/types.d.ts +81069 -0
  15. package/lib/aws/control/types.d.ts.map +1 -0
  16. package/lib/aws/control/types.js +4 -0
  17. package/lib/aws/control/types.js.map +1 -0
  18. package/lib/aws/function.d.ts.map +1 -1
  19. package/lib/aws/function.js +51 -42
  20. package/lib/aws/function.js.map +1 -1
  21. package/lib/aws/index.d.ts +1 -0
  22. package/lib/aws/index.d.ts.map +1 -1
  23. package/lib/aws/index.js +1 -0
  24. package/lib/aws/index.js.map +1 -1
  25. package/lib/aws/policy-attachment.d.ts.map +1 -1
  26. package/lib/aws/policy-attachment.js +5 -4
  27. package/lib/aws/policy-attachment.js.map +1 -1
  28. package/lib/aws/policy.d.ts.map +1 -1
  29. package/lib/aws/policy.js +21 -20
  30. package/lib/aws/policy.js.map +1 -1
  31. package/lib/aws/queue.d.ts.map +1 -1
  32. package/lib/aws/queue.js +19 -15
  33. package/lib/aws/queue.js.map +1 -1
  34. package/lib/aws/retry.d.ts +5 -0
  35. package/lib/aws/retry.d.ts.map +1 -0
  36. package/lib/aws/retry.js +27 -0
  37. package/lib/aws/retry.js.map +1 -0
  38. package/lib/aws/role.d.ts.map +1 -1
  39. package/lib/aws/role.js +31 -30
  40. package/lib/aws/role.js.map +1 -1
  41. package/lib/aws/ses.d.ts.map +1 -1
  42. package/lib/aws/ses.js +27 -26
  43. package/lib/aws/ses.js.map +1 -1
  44. package/lib/aws/ssm-parameter.d.ts +150 -0
  45. package/lib/aws/ssm-parameter.d.ts.map +1 -0
  46. package/lib/aws/ssm-parameter.js +184 -0
  47. package/lib/aws/ssm-parameter.js.map +1 -0
  48. package/lib/aws/table.d.ts.map +1 -1
  49. package/lib/aws/table.js +9 -27
  50. package/lib/aws/table.js.map +1 -1
  51. package/lib/cloudflare/account-id.d.ts +1 -0
  52. package/lib/cloudflare/account-id.d.ts.map +1 -1
  53. package/lib/cloudflare/account-id.js.map +1 -1
  54. package/lib/cloudflare/api.d.ts.map +1 -1
  55. package/lib/cloudflare/api.js +22 -2
  56. package/lib/cloudflare/api.js.map +1 -1
  57. package/lib/cloudflare/bound.d.ts +1 -1
  58. package/lib/cloudflare/bound.d.ts.map +1 -1
  59. package/lib/cloudflare/index.d.ts +2 -1
  60. package/lib/cloudflare/index.d.ts.map +1 -1
  61. package/lib/cloudflare/index.js +2 -1
  62. package/lib/cloudflare/index.js.map +1 -1
  63. package/lib/cloudflare/queue-consumer.d.ts +7 -1
  64. package/lib/cloudflare/queue-consumer.d.ts.map +1 -1
  65. package/lib/cloudflare/queue-consumer.js +14 -0
  66. package/lib/cloudflare/queue-consumer.js.map +1 -1
  67. package/lib/cloudflare/queue.d.ts +27 -0
  68. package/lib/cloudflare/queue.d.ts.map +1 -1
  69. package/lib/cloudflare/queue.js +23 -0
  70. package/lib/cloudflare/queue.js.map +1 -1
  71. package/lib/cloudflare/route.d.ts +7 -0
  72. package/lib/cloudflare/route.d.ts.map +1 -1
  73. package/lib/cloudflare/route.js +44 -2
  74. package/lib/cloudflare/route.js.map +1 -1
  75. package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
  76. package/lib/cloudflare/worker-metadata.js +1 -2
  77. package/lib/cloudflare/worker-metadata.js.map +1 -1
  78. package/lib/cloudflare/worker.d.ts +2 -1
  79. package/lib/cloudflare/worker.d.ts.map +1 -1
  80. package/lib/cloudflare/worker.js +20 -9
  81. package/lib/cloudflare/worker.js.map +1 -1
  82. package/lib/cloudflare/workflow.d.ts +7 -0
  83. package/lib/cloudflare/workflow.d.ts.map +1 -1
  84. package/lib/cloudflare/workflow.js +2 -0
  85. package/lib/cloudflare/workflow.js.map +1 -1
  86. package/lib/cloudflare/wrangler.json.d.ts +1 -0
  87. package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
  88. package/lib/cloudflare/wrangler.json.js +1 -0
  89. package/lib/cloudflare/wrangler.json.js.map +1 -1
  90. package/lib/destroy.js +1 -1
  91. package/lib/destroy.js.map +1 -1
  92. package/lib/dns/godaddy.d.ts.map +1 -1
  93. package/lib/dns/godaddy.js +2 -1
  94. package/lib/dns/godaddy.js.map +1 -1
  95. package/lib/fs/file-system-state-store.d.ts.map +1 -1
  96. package/lib/fs/file-system-state-store.js +14 -2
  97. package/lib/fs/file-system-state-store.js.map +1 -1
  98. package/lib/github/secret.d.ts.map +1 -1
  99. package/lib/github/secret.js +1 -0
  100. package/lib/github/secret.js.map +1 -1
  101. package/lib/neon/api.d.ts.map +1 -1
  102. package/lib/neon/api.js +2 -1
  103. package/lib/neon/api.js.map +1 -1
  104. package/lib/runtime/shims.d.ts +6 -0
  105. package/lib/runtime/shims.d.ts.map +1 -0
  106. package/lib/runtime/shims.js +27 -0
  107. package/lib/runtime/shims.js.map +1 -0
  108. package/lib/sentry/api.d.ts.map +1 -1
  109. package/lib/sentry/api.js +2 -1
  110. package/lib/sentry/api.js.map +1 -1
  111. package/lib/test/bun.d.ts.map +1 -1
  112. package/lib/test/bun.js +1 -7
  113. package/lib/test/bun.js.map +1 -1
  114. package/lib/test/prune.d.ts +2 -1
  115. package/lib/test/prune.d.ts.map +1 -1
  116. package/lib/test/prune.js +29 -5
  117. package/lib/test/prune.js.map +1 -1
  118. package/lib/test/vitest.d.ts +92 -0
  119. package/lib/test/vitest.d.ts.map +1 -0
  120. package/lib/test/vitest.js +94 -0
  121. package/lib/test/vitest.js.map +1 -0
  122. package/lib/upstash/api.d.ts.map +1 -1
  123. package/lib/upstash/api.js +2 -1
  124. package/lib/upstash/api.js.map +1 -1
  125. package/lib/util/retry.js +2 -2
  126. package/lib/util/retry.js.map +1 -1
  127. package/lib/util/safe-fetch.d.ts +2 -0
  128. package/lib/util/safe-fetch.d.ts.map +1 -0
  129. package/lib/util/safe-fetch.js +49 -0
  130. package/lib/util/safe-fetch.js.map +1 -0
  131. package/lib/vercel/api.d.ts.map +1 -1
  132. package/lib/vercel/api.js +2 -1
  133. package/lib/vercel/api.js.map +1 -1
  134. package/lib/web/vitepress/process-front-matter-files.d.ts.map +1 -1
  135. package/lib/web/vitepress/process-front-matter-files.js +11 -7
  136. package/lib/web/vitepress/process-front-matter-files.js.map +1 -1
  137. package/package.json +10 -6
  138. package/src/alchemy.ts +2 -2
  139. package/src/aws/bucket.ts +55 -36
  140. package/src/aws/control/client.ts +13 -13
  141. package/src/aws/control/properties.ts +96 -19
  142. package/src/aws/control/resource.ts +19 -3
  143. package/src/aws/control/types.ts +87235 -0
  144. package/src/aws/function.ts +233 -178
  145. package/src/aws/index.ts +1 -0
  146. package/src/aws/policy-attachment.ts +15 -10
  147. package/src/aws/policy.ts +75 -54
  148. package/src/aws/queue.ts +53 -36
  149. package/src/aws/retry.ts +38 -0
  150. package/src/aws/role.ts +121 -90
  151. package/src/aws/ses.ts +101 -73
  152. package/src/aws/ssm-parameter.ts +315 -0
  153. package/src/aws/table.ts +61 -90
  154. package/src/cloudflare/account-id.ts +2 -0
  155. package/src/cloudflare/api.ts +26 -3
  156. package/src/cloudflare/bound.ts +1 -1
  157. package/src/cloudflare/index.ts +2 -1
  158. package/src/cloudflare/queue-consumer.ts +27 -1
  159. package/src/cloudflare/queue.ts +29 -0
  160. package/src/cloudflare/route.ts +86 -2
  161. package/src/cloudflare/worker-metadata.ts +1 -2
  162. package/src/cloudflare/worker.ts +24 -10
  163. package/src/cloudflare/workflow.ts +8 -0
  164. package/src/cloudflare/wrangler.json.ts +8 -1
  165. package/src/destroy.ts +1 -1
  166. package/src/dns/godaddy.ts +3 -1
  167. package/src/fs/file-system-state-store.ts +16 -2
  168. package/src/github/secret.ts +2 -0
  169. package/src/neon/api.ts +2 -1
  170. package/src/sentry/api.ts +2 -1
  171. package/src/test/bun.ts +1 -7
  172. package/src/test/prune.ts +31 -4
  173. package/src/test/vitest.ts +209 -0
  174. package/src/upstash/api.ts +2 -1
  175. package/src/util/retry.ts +3 -3
  176. package/src/util/safe-fetch.ts +62 -0
  177. package/src/vercel/api.ts +2 -1
  178. package/src/web/vitepress/process-front-matter-files.ts +15 -7
  179. package/src/aws/control/types.d.ts +0 -85129
package/lib/aws/queue.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { CreateQueueCommand, DeleteQueueCommand, GetQueueAttributesCommand, GetQueueUrlCommand, QueueDeletedRecently, QueueDoesNotExist, SQSClient, } from "@aws-sdk/client-sqs";
2
2
  import { Resource } from "../resource.js";
3
+ import { retry } from "./retry.js";
3
4
  /**
4
5
  * AWS SQS Queue Resource
5
6
  *
@@ -50,20 +51,22 @@ export const Queue = Resource("sqs::Queue", async function (_id, props) {
50
51
  if (this.phase === "delete") {
51
52
  try {
52
53
  // Get queue URL first
53
- const urlResponse = await client.send(new GetQueueUrlCommand({
54
+ const urlResponse = await retry(() => client.send(new GetQueueUrlCommand({
54
55
  QueueName: queueName,
55
- }));
56
+ })));
56
57
  // Delete the queue
57
- await client.send(new DeleteQueueCommand({
58
+ await retry(() => client.send(new DeleteQueueCommand({
58
59
  QueueUrl: urlResponse.QueueUrl,
59
- }));
60
+ })));
60
61
  // Wait for queue to be deleted
61
62
  let queueDeleted = false;
62
63
  while (!queueDeleted) {
63
64
  try {
64
- await client.send(new GetQueueUrlCommand({
65
- QueueName: queueName,
66
- }));
65
+ await retry(() => {
66
+ return client.send(new GetQueueUrlCommand({
67
+ QueueName: queueName,
68
+ }));
69
+ });
67
70
  // If we get here, queue still exists
68
71
  await new Promise((resolve) => setTimeout(resolve, 1000));
69
72
  }
@@ -78,6 +81,7 @@ export const Queue = Resource("sqs::Queue", async function (_id, props) {
78
81
  }
79
82
  }
80
83
  catch (error) {
84
+ console.log(error.message);
81
85
  if (!isQueueDoesNotExist(error)) {
82
86
  throw error;
83
87
  }
@@ -122,16 +126,16 @@ export const Queue = Resource("sqs::Queue", async function (_id, props) {
122
126
  : undefined;
123
127
  try {
124
128
  // Create the queue
125
- const createResponse = await client.send(new CreateQueueCommand({
129
+ const createResponse = await retry(() => client.send(new CreateQueueCommand({
126
130
  QueueName: queueName,
127
131
  Attributes: attributes,
128
132
  tags,
129
- }));
133
+ })), (err) => isQueueDeletedRecently(err));
130
134
  // Get queue attributes
131
- const attributesResponse = await client.send(new GetQueueAttributesCommand({
135
+ const attributesResponse = await retry(() => client.send(new GetQueueAttributesCommand({
132
136
  QueueUrl: createResponse.QueueUrl,
133
137
  AttributeNames: ["QueueArn"],
134
- }));
138
+ })));
135
139
  return this({
136
140
  ...props,
137
141
  arn: attributesResponse.Attributes.QueueArn,
@@ -149,16 +153,16 @@ export const Queue = Resource("sqs::Queue", async function (_id, props) {
149
153
  // Wait for 1 second before retrying
150
154
  await new Promise((resolve) => setTimeout(resolve, 1000));
151
155
  // Retry creating the queue
152
- const createResponse = await client.send(new CreateQueueCommand({
156
+ const createResponse = await retry(() => client.send(new CreateQueueCommand({
153
157
  QueueName: queueName,
154
158
  Attributes: attributes,
155
159
  tags,
156
- }));
160
+ })));
157
161
  // Get queue attributes
158
- const attributesResponse = await client.send(new GetQueueAttributesCommand({
162
+ const attributesResponse = await retry(() => client.send(new GetQueueAttributesCommand({
159
163
  QueueUrl: createResponse.QueueUrl,
160
164
  AttributeNames: ["QueueArn"],
161
- }));
165
+ })));
162
166
  return this({
163
167
  ...props,
164
168
  arn: attributesResponse.Attributes.QueueArn,
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/aws/queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/aws/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,GACV,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAuFnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAC3B,YAAY,EACZ,KAAK,WAEH,GAAW,EACX,KAAiB;IAEjB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;IACjC,2EAA2E;IAC3E,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAElC,8CAA8C;IAC9C,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,sBAAsB;YACtB,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CACnC,MAAM,CAAC,IAAI,CACT,IAAI,kBAAkB,CAAC;gBACrB,SAAS,EAAE,SAAS;aACrB,CAAC,CACH,CACF,CAAC;YAEF,mBAAmB;YACnB,MAAM,KAAK,CAAC,GAAG,EAAE,CACf,MAAM,CAAC,IAAI,CACT,IAAI,kBAAkB,CAAC;gBACrB,QAAQ,EAAE,WAAW,CAAC,QAAQ;aAC/B,CAAC,CACH,CACF,CAAC;YAEF,+BAA+B;YAC/B,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,OAAO,CAAC,YAAY,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,MAAM,KAAK,CAAC,GAAG,EAAE;wBACf,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,kBAAkB,CAAC;4BACrB,SAAS,EAAE,SAAS;yBACrB,CAAC,CACH,CAAC;oBACJ,CAAC,CAAC,CAAC;oBACH,qCAAqC;oBACrC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC/B,YAAY,GAAG,IAAI,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACN,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IACD,+BAA+B;IAC/B,MAAM,UAAU,GAA2B,EAAE,CAAC;IAE9C,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC1C,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IACpE,CAAC;IACD,IAAI,KAAK,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;QAC/C,UAAU,CAAC,sBAAsB;YAC/B,KAAK,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC3C,UAAU,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;IACtE,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACrC,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC1D,CAAC;IACD,IAAI,KAAK,CAAC,6BAA6B,KAAK,SAAS,EAAE,CAAC;QACtD,UAAU,CAAC,6BAA6B;YACtC,KAAK,CAAC,6BAA6B,CAAC,QAAQ,EAAE,CAAC;IACnD,CAAC;IAED,2BAA2B;IAC3B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC;QAC9B,IAAI,KAAK,CAAC,yBAAyB,EAAE,CAAC;YACpC,UAAU,CAAC,yBAAyB,GAAG,MAAM,CAAC;QAChD,CAAC;QACD,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAC7B,UAAU,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC;QAC3D,CAAC;QACD,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAC9B,UAAU,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI;QACrB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAC/B,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EACjD,EAAE,CACH;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,CAAC;QACH,mBAAmB;QACnB,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GAAG,EAAE,CACH,MAAM,CAAC,IAAI,CACT,IAAI,kBAAkB,CAAC;YACrB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,UAAU;YACtB,IAAI;SACL,CAAC,CACH,EACH,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,CACrC,CAAC;QAEF,uBAAuB;QACvB,MAAM,kBAAkB,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAC1C,MAAM,CAAC,IAAI,CACT,IAAI,yBAAyB,CAAC;YAC5B,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,cAAc,EAAE,CAAC,UAAU,CAAC;SAC7B,CAAC,CACH,CACF,CAAC;QAEF,OAAO,IAAI,CAAC;YACV,GAAG,KAAK;YACR,GAAG,EAAE,kBAAkB,CAAC,UAAW,CAAC,QAAS;YAC7C,GAAG,EAAE,cAAc,CAAC,QAAS;SAC9B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CACT,UAAU,SAAS,yEAAyE,CAC7F,CAAC;YACF,6CAA6C;YAC7C,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,IAAI,UAAU,GAAG,CAAC,CAAC;YAEnB,OAAO,UAAU,GAAG,UAAU,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,oCAAoC;oBACpC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;oBAE1D,2BAA2B;oBAC3B,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CACtC,MAAM,CAAC,IAAI,CACT,IAAI,kBAAkB,CAAC;wBACrB,SAAS,EAAE,SAAS;wBACpB,UAAU,EAAE,UAAU;wBACtB,IAAI;qBACL,CAAC,CACH,CACF,CAAC;oBAEF,uBAAuB;oBACvB,MAAM,kBAAkB,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAC1C,MAAM,CAAC,IAAI,CACT,IAAI,yBAAyB,CAAC;wBAC5B,QAAQ,EAAE,cAAc,CAAC,QAAQ;wBACjC,cAAc,EAAE,CAAC,UAAU,CAAC;qBAC7B,CAAC,CACH,CACF,CAAC;oBAEF,OAAO,IAAI,CAAC;wBACV,GAAG,KAAK;wBACR,GAAG,EAAE,kBAAkB,CAAC,UAAW,CAAC,QAAS;wBAC7C,GAAG,EAAE,cAAc,CAAC,QAAS;qBAC9B,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,UAAe,EAAE,CAAC;oBACzB,IACE,CAAC,sBAAsB,CAAC,UAAU,CAAC;wBACnC,UAAU,KAAK,UAAU,GAAG,CAAC,EAC7B,CAAC;wBACD,MAAM,UAAU,CAAC;oBACnB,CAAC;oBACD,UAAU,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CACF,CAAC;AAEF,SAAS,mBAAmB,CAAC,KAAU;IACrC,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,mBAAmB;QAClC,KAAK,CAAC,IAAI,KAAK,yCAAyC;QACxD,KAAK,YAAY,iBAAiB,CACnC,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAU;IACxC,OAAO,CACL,KAAK,YAAY,oBAAoB;QACrC,KAAK,CAAC,IAAI,KAAK,6CAA6C;QAC5D,KAAK,CAAC,IAAI,KAAK,sBAAsB,CACtC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Retry function with standardized parameters for AWS throttling
3
+ */
4
+ export declare function retry<T>(operation: () => Promise<T>, extraIsRetryableError?: (error: any) => boolean): Promise<T>;
5
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/aws/retry.ts"],"names":[],"mappings":"AAwBA;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EACrB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,GAC9C,OAAO,CAAC,CAAC,CAAC,CAOZ"}
@@ -0,0 +1,27 @@
1
+ import { withExponentialBackoff } from "../util/retry.js";
2
+ /**
3
+ * Check if an error is retryable (throttling/rate limiting)
4
+ */
5
+ function isRetryableError(error) {
6
+ if (!error)
7
+ return false;
8
+ const errorCode = error.name || error.code || "";
9
+ const errorMessage = error.message || "";
10
+ // Check for common AWS throttling error codes and messages
11
+ return (errorCode === "Throttling" ||
12
+ errorCode === "ThrottlingException" ||
13
+ errorCode === "TooManyRequestsException" ||
14
+ errorCode === "RequestLimitExceeded" ||
15
+ errorMessage.includes("Rate exceeded") ||
16
+ errorMessage.includes("throttling") ||
17
+ errorMessage.includes("Throttling") ||
18
+ errorMessage.includes("Internal server error"));
19
+ }
20
+ /**
21
+ * Retry function with standardized parameters for AWS throttling
22
+ */
23
+ export function retry(operation, extraIsRetryableError) {
24
+ return withExponentialBackoff(operation, (err) => isRetryableError(err) || extraIsRetryableError?.(err) || false, 10, // max attempts
25
+ 1000);
26
+ }
27
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/aws/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAU;IAClC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;IACjD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IAEzC,2DAA2D;IAC3D,OAAO,CACL,SAAS,KAAK,YAAY;QAC1B,SAAS,KAAK,qBAAqB;QACnC,SAAS,KAAK,0BAA0B;QACxC,SAAS,KAAK,sBAAsB;QACpC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;QACtC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC;QACnC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC;QACnC,YAAY,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAC/C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CACnB,SAA2B,EAC3B,qBAA+C;IAE/C,OAAO,sBAAsB,CAC3B,SAAS,EACT,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,qBAAqB,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,EACvE,EAAE,EAAE,eAAe;IACnB,IAAI,CACL,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../src/aws/role.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,gBAAgB,EAAE,cAAc,CAAC;IAEjC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,cAAc,CAAC;KAChC,CAAC,CAAC;IAEH;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,IAAK,SAAQ,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS;IAC5D;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAE,IAAI,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiHG;AACH,eAAO,MAAM,IAAI,yFAGP,OAAO,CAAC,IAAI,CAAC,OACd,MAAM,SACJ,SAAS,KACf,OAAO,CAAC,IAAI,CAAC,CAkRjB,CAAC"}
1
+ {"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../src/aws/role.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,gBAAgB,EAAE,cAAc,CAAC;IAEjC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,cAAc,CAAC;KAChC,CAAC,CAAC;IAEH;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,IAAK,SAAQ,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS;IAC5D;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAE,IAAI,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiHG;AACH,eAAO,MAAM,IAAI,yFAGP,OAAO,CAAC,IAAI,CAAC,OACd,MAAM,SACJ,SAAS,KACf,OAAO,CAAC,IAAI,CAAC,CAgTjB,CAAC"}
package/lib/aws/role.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { AttachRolePolicyCommand, CreateRoleCommand, DeleteRoleCommand, DeleteRolePolicyCommand, DetachRolePolicyCommand, EntityAlreadyExistsException, GetRoleCommand, IAMClient, ListAttachedRolePoliciesCommand, NoSuchEntityException, PutRolePolicyCommand, TagRoleCommand, UpdateAssumeRolePolicyCommand, UpdateRoleCommand, } from "@aws-sdk/client-iam";
2
2
  import { Resource } from "../resource.js";
3
3
  import { ignore } from "../util/ignore.js";
4
+ import { retry } from "./retry.js";
4
5
  /**
5
6
  * AWS IAM Role Resource
6
7
  *
@@ -122,25 +123,25 @@ export const Role = Resource("iam::Role", async function (_id, props) {
122
123
  // Delete any inline policies first
123
124
  if (props.policies) {
124
125
  for (const policy of props.policies) {
125
- await ignore(NoSuchEntityException.name, () => client.send(new DeleteRolePolicyCommand({
126
+ await ignore(NoSuchEntityException.name, () => retry(() => client.send(new DeleteRolePolicyCommand({
126
127
  RoleName: props.roleName,
127
128
  PolicyName: policy.policyName,
128
- })));
129
+ }))));
129
130
  }
130
131
  }
131
132
  // We need to detach managed policies before deleting the role
132
133
  // First, get all attached policies
133
134
  try {
134
- const attachedPoliciesResponse = await client.send(new ListAttachedRolePoliciesCommand({
135
+ const attachedPoliciesResponse = await retry(() => client.send(new ListAttachedRolePoliciesCommand({
135
136
  RoleName: props.roleName,
136
- }));
137
+ })));
137
138
  // Detach all managed policies
138
139
  const attachedPolicies = attachedPoliciesResponse.AttachedPolicies || [];
139
140
  for (const policy of attachedPolicies) {
140
- await ignore(NoSuchEntityException.name, () => client.send(new DetachRolePolicyCommand({
141
+ await ignore(NoSuchEntityException.name, () => retry(() => client.send(new DetachRolePolicyCommand({
141
142
  RoleName: props.roleName,
142
143
  PolicyArn: policy.PolicyArn,
143
- })));
144
+ }))));
144
145
  }
145
146
  }
146
147
  catch (error) {
@@ -150,9 +151,9 @@ export const Role = Resource("iam::Role", async function (_id, props) {
150
151
  // Role doesn't exist, no need to continue with detaching policies
151
152
  }
152
153
  // Try to delete the role, ignoring if it doesn't exist
153
- await ignore(NoSuchEntityException.name, () => client.send(new DeleteRoleCommand({
154
+ await ignore(NoSuchEntityException.name, () => retry(() => client.send(new DeleteRoleCommand({
154
155
  RoleName: props.roleName,
155
- })));
156
+ }))));
156
157
  }
157
158
  catch (error) {
158
159
  // If we get any other error besides NoSuchEntityException, log it but don't fail
@@ -169,7 +170,7 @@ export const Role = Resource("iam::Role", async function (_id, props) {
169
170
  try {
170
171
  if (this.phase === "create") {
171
172
  // Try to create the role
172
- await client.send(new CreateRoleCommand({
173
+ await retry(() => client.send(new CreateRoleCommand({
173
174
  RoleName: props.roleName,
174
175
  AssumeRolePolicyDocument: assumeRolePolicyDocument,
175
176
  Description: props.description,
@@ -190,16 +191,16 @@ export const Role = Resource("iam::Role", async function (_id, props) {
190
191
  Value: this.id,
191
192
  },
192
193
  ],
193
- }));
194
+ })));
194
195
  }
195
196
  }
196
197
  catch (error) {
197
198
  if (error instanceof EntityAlreadyExistsException &&
198
199
  this.phase === "create") {
199
200
  // Check if we were the ones who created it
200
- const existingRole = await client.send(new GetRoleCommand({
201
+ const existingRole = await retry(() => client.send(new GetRoleCommand({
201
202
  RoleName: props.roleName,
202
- }));
203
+ })));
203
204
  const roleTags = existingRole.Role?.Tags?.reduce((acc, tag) => {
204
205
  acc[tag.Key] = tag.Value;
205
206
  return acc;
@@ -214,24 +215,24 @@ export const Role = Resource("iam::Role", async function (_id, props) {
214
215
  }
215
216
  }
216
217
  // Get or update the role
217
- role = await client.send(new GetRoleCommand({
218
+ role = await retry(() => client.send(new GetRoleCommand({
218
219
  RoleName: props.roleName,
219
- }));
220
+ })));
220
221
  // Update assume role policy if it changed
221
222
  if (role.Role?.AssumeRolePolicyDocument !== assumeRolePolicyDocument) {
222
- await client.send(new UpdateAssumeRolePolicyCommand({
223
+ await retry(() => client.send(new UpdateAssumeRolePolicyCommand({
223
224
  RoleName: props.roleName,
224
225
  PolicyDocument: assumeRolePolicyDocument,
225
- }));
226
+ })));
226
227
  }
227
228
  // Update role description and max session duration if they changed
228
229
  if (role.Role?.Description !== props.description ||
229
230
  role.Role?.MaxSessionDuration !== props.maxSessionDuration) {
230
- await client.send(new UpdateRoleCommand({
231
+ await retry(() => client.send(new UpdateRoleCommand({
231
232
  RoleName: props.roleName,
232
233
  Description: props.description,
233
234
  MaxSessionDuration: props.maxSessionDuration,
234
- }));
235
+ })));
235
236
  }
236
237
  // Update tags
237
238
  const newTags = {
@@ -243,20 +244,20 @@ export const Role = Resource("iam::Role", async function (_id, props) {
243
244
  Key,
244
245
  Value,
245
246
  }));
246
- await client.send(new TagRoleCommand({
247
+ await retry(() => client.send(new TagRoleCommand({
247
248
  RoleName: props.roleName,
248
249
  Tags: tags,
249
- }));
250
+ })));
250
251
  // Handle policy changes
251
252
  const previousPolicies = this.phase === "update" ? this.output.policies || [] : [];
252
253
  const currentPolicies = props.policies || [];
253
254
  // Delete policies that were removed
254
255
  for (const oldPolicy of previousPolicies) {
255
256
  if (!currentPolicies.some((p) => p.policyName === oldPolicy.policyName)) {
256
- await ignore(NoSuchEntityException.name, () => client.send(new DeleteRolePolicyCommand({
257
+ await ignore(NoSuchEntityException.name, () => retry(() => client.send(new DeleteRolePolicyCommand({
257
258
  RoleName: props.roleName,
258
259
  PolicyName: oldPolicy.policyName,
259
- })));
260
+ }))));
260
261
  }
261
262
  }
262
263
  // Update or create policies
@@ -265,18 +266,18 @@ export const Role = Resource("iam::Role", async function (_id, props) {
265
266
  if (!oldPolicy ||
266
267
  JSON.stringify(oldPolicy.policyDocument) !==
267
268
  JSON.stringify(policy.policyDocument)) {
268
- await client.send(new PutRolePolicyCommand({
269
+ await retry(() => client.send(new PutRolePolicyCommand({
269
270
  RoleName: props.roleName,
270
271
  PolicyName: policy.policyName,
271
272
  PolicyDocument: JSON.stringify(policy.policyDocument),
272
- }));
273
+ })));
273
274
  }
274
275
  }
275
276
  // Handle managed policy attachments
276
277
  // Get currently attached policies
277
- const attachedPoliciesResponse = await client.send(new ListAttachedRolePoliciesCommand({
278
+ const attachedPoliciesResponse = await retry(() => client.send(new ListAttachedRolePoliciesCommand({
278
279
  RoleName: props.roleName,
279
- }));
280
+ })));
280
281
  const currentAttachedPolicies = attachedPoliciesResponse.AttachedPolicies || [];
281
282
  const currentPolicyArns = currentAttachedPolicies.map((p) => p.PolicyArn);
282
283
  // If we're updating, use an empty array as default when managedPolicyArns is undefined
@@ -285,19 +286,19 @@ export const Role = Resource("iam::Role", async function (_id, props) {
285
286
  // Detach policies that are no longer needed
286
287
  for (const policyArn of currentPolicyArns) {
287
288
  if (!desiredPolicyArns.includes(policyArn)) {
288
- await client.send(new DetachRolePolicyCommand({
289
+ await retry(() => client.send(new DetachRolePolicyCommand({
289
290
  RoleName: props.roleName,
290
291
  PolicyArn: policyArn,
291
- }));
292
+ })));
292
293
  }
293
294
  }
294
295
  // Attach new policies that weren't attached before
295
296
  for (const policyArn of desiredPolicyArns) {
296
297
  if (!currentPolicyArns.includes(policyArn)) {
297
- await client.send(new AttachRolePolicyCommand({
298
+ await retry(() => client.send(new AttachRolePolicyCommand({
298
299
  RoleName: props.roleName,
299
300
  PolicyArn: policyArn,
300
- }));
301
+ })));
301
302
  }
302
303
  }
303
304
  if (!role?.Role) {
@@ -1 +1 @@
1
- {"version":3,"file":"role.js","sourceRoot":"","sources":["../../src/aws/role.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"role.js","sourceRoot":"","sources":["../../src/aws/role.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ses.d.ts","sourceRoot":"","sources":["../../src/aws/ses.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,eAAe,EAUpB,KAAK,iBAAiB,EAEtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAEtC;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAExC;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,GAAI,SAAQ,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ;IACzD;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAEzC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,GAAG,yFAGN,OAAO,CAAC,GAAG,CAAC,OACb,MAAM,SACJ,QAAQ,KACd,OAAO,CAAC,GAAG,CAAC,CA0NhB,CAAC"}
1
+ {"version":3,"file":"ses.d.ts","sourceRoot":"","sources":["../../src/aws/ses.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,eAAe,EAUpB,KAAK,iBAAiB,EAEtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAEtC;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAExC;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,GAAI,SAAQ,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ;IACzD;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAEzC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,GAAG,yFAGN,OAAO,CAAC,GAAG,CAAC,OACb,MAAM,SACJ,QAAQ,KACd,OAAO,CAAC,GAAG,CAAC,CAqPhB,CAAC"}
package/lib/aws/ses.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { CreateConfigurationSetCommand, CreateEmailIdentityCommand, DeleteConfigurationSetCommand, DeleteEmailIdentityCommand, GetConfigurationSetCommand, GetEmailIdentityCommand, NotFoundException, PutConfigurationSetDeliveryOptionsCommand, PutConfigurationSetReputationOptionsCommand, PutConfigurationSetSendingOptionsCommand, PutConfigurationSetSuppressionOptionsCommand, PutConfigurationSetTrackingOptionsCommand, PutEmailIdentityDkimAttributesCommand, SESv2Client, } from "@aws-sdk/client-sesv2";
2
2
  import { Resource } from "../resource.js";
3
3
  import { ignore } from "../util/ignore.js";
4
+ import { retry } from "./retry.js";
4
5
  /**
5
6
  * AWS SES Resource
6
7
  *
@@ -56,15 +57,15 @@ export const SES = Resource("aws::SES", async function (_id, props) {
56
57
  const output = this.output;
57
58
  // Delete configuration set if it exists
58
59
  if (output?.configurationSetName) {
59
- await ignore(NotFoundException.name, () => client.send(new DeleteConfigurationSetCommand({
60
+ await ignore(NotFoundException.name, () => retry(() => client.send(new DeleteConfigurationSetCommand({
60
61
  ConfigurationSetName: output.configurationSetName,
61
- })));
62
+ }))));
62
63
  }
63
64
  // Delete email identity if it exists
64
65
  if (output?.emailIdentity) {
65
- await ignore(NotFoundException.name, () => client.send(new DeleteEmailIdentityCommand({
66
+ await ignore(NotFoundException.name, () => retry(() => client.send(new DeleteEmailIdentityCommand({
66
67
  EmailIdentity: output.emailIdentity,
67
- })));
68
+ }))));
68
69
  }
69
70
  // Return empty output for delete
70
71
  return this.destroy();
@@ -79,9 +80,9 @@ export const SES = Resource("aws::SES", async function (_id, props) {
79
80
  // Check if configuration set exists
80
81
  let configSetExists = false;
81
82
  try {
82
- await client.send(new GetConfigurationSetCommand({
83
+ await retry(() => client.send(new GetConfigurationSetCommand({
83
84
  ConfigurationSetName: props.configurationSetName,
84
- }));
85
+ })));
85
86
  configSetExists = true;
86
87
  }
87
88
  catch (error) {
@@ -95,42 +96,42 @@ export const SES = Resource("aws::SES", async function (_id, props) {
95
96
  if (configSetExists) {
96
97
  // Update existing configuration set using appropriate update commands
97
98
  if (props.sendingOptions) {
98
- await client.send(new PutConfigurationSetSendingOptionsCommand({
99
+ await retry(() => client.send(new PutConfigurationSetSendingOptionsCommand({
99
100
  ConfigurationSetName: props.configurationSetName,
100
101
  SendingEnabled: props.sendingOptions.SendingEnabled,
101
- }));
102
+ })));
102
103
  }
103
104
  if (props.reputationOptions) {
104
- await client.send(new PutConfigurationSetReputationOptionsCommand({
105
+ await retry(() => client.send(new PutConfigurationSetReputationOptionsCommand({
105
106
  ConfigurationSetName: props.configurationSetName,
106
107
  ReputationMetricsEnabled: props.reputationOptions.ReputationMetricsEnabled,
107
- }));
108
+ })));
108
109
  }
109
110
  if (props.trackingOptions) {
110
- await client.send(new PutConfigurationSetTrackingOptionsCommand({
111
+ await retry(() => client.send(new PutConfigurationSetTrackingOptionsCommand({
111
112
  ConfigurationSetName: props.configurationSetName,
112
113
  CustomRedirectDomain: props.trackingOptions.CustomRedirectDomain,
113
- }));
114
+ })));
114
115
  }
115
116
  if (props.suppressionOptions) {
116
- await client.send(new PutConfigurationSetSuppressionOptionsCommand({
117
+ await retry(() => client.send(new PutConfigurationSetSuppressionOptionsCommand({
117
118
  ConfigurationSetName: props.configurationSetName,
118
119
  SuppressedReasons: props.suppressionOptions.SuppressedReasons,
119
- }));
120
+ })));
120
121
  }
121
122
  if (props.deliveryOptions) {
122
- await client.send(new PutConfigurationSetDeliveryOptionsCommand({
123
+ await retry(() => client.send(new PutConfigurationSetDeliveryOptionsCommand({
123
124
  ConfigurationSetName: props.configurationSetName,
124
125
  TlsPolicy: props.deliveryOptions.TlsPolicy,
125
126
  SendingPoolName: props.deliveryOptions.SendingPoolName,
126
- }));
127
+ })));
127
128
  }
128
129
  // In SESv2, the ARN isn't directly returned in the response
129
130
  configurationSetArn = `arn:aws:ses:${process.env.AWS_REGION}:${process.env.AWS_ACCOUNT_ID}:configuration-set/${props.configurationSetName}`;
130
131
  }
131
132
  else {
132
133
  // Create new configuration set
133
- await client.send(new CreateConfigurationSetCommand({
134
+ await retry(() => client.send(new CreateConfigurationSetCommand({
134
135
  ConfigurationSetName: props.configurationSetName,
135
136
  SendingOptions: props.sendingOptions,
136
137
  ReputationOptions: props.reputationOptions,
@@ -141,7 +142,7 @@ export const SES = Resource("aws::SES", async function (_id, props) {
141
142
  Key,
142
143
  Value,
143
144
  })),
144
- }));
145
+ })));
145
146
  // In SESv2, the ARN isn't directly returned in the response
146
147
  configurationSetArn = `arn:aws:ses:${process.env.AWS_REGION}:${process.env.AWS_ACCOUNT_ID}:configuration-set/${props.configurationSetName}`;
147
148
  }
@@ -151,9 +152,9 @@ export const SES = Resource("aws::SES", async function (_id, props) {
151
152
  // Check if identity exists
152
153
  let getIdentityResult;
153
154
  try {
154
- getIdentityResult = await client.send(new GetEmailIdentityCommand({
155
+ getIdentityResult = await retry(() => client.send(new GetEmailIdentityCommand({
155
156
  EmailIdentity: props.emailIdentity,
156
- }));
157
+ })));
157
158
  }
158
159
  catch (error) {
159
160
  if (error instanceof NotFoundException) {
@@ -165,13 +166,13 @@ export const SES = Resource("aws::SES", async function (_id, props) {
165
166
  }
166
167
  if (!getIdentityResult) {
167
168
  // Create new email identity
168
- const createIdentityResult = await client.send(new CreateEmailIdentityCommand({
169
+ const createIdentityResult = await retry(() => client.send(new CreateEmailIdentityCommand({
169
170
  EmailIdentity: props.emailIdentity,
170
171
  Tags: Object.entries(props.tags || {}).map(([Key, Value]) => ({
171
172
  Key,
172
173
  Value,
173
174
  })),
174
- }));
175
+ })));
175
176
  // If it's an email address, we don't need to explicitly verify in v2
176
177
  // The verification email is automatically sent by SES in v2
177
178
  // Store the identity information
@@ -189,16 +190,16 @@ export const SES = Resource("aws::SES", async function (_id, props) {
189
190
  // Update DKIM settings if requested
190
191
  if (props.enableDkim !== undefined) {
191
192
  if (props.enableDkim) {
192
- await client.send(new PutEmailIdentityDkimAttributesCommand({
193
+ await retry(() => client.send(new PutEmailIdentityDkimAttributesCommand({
193
194
  EmailIdentity: props.emailIdentity,
194
195
  SigningEnabled: true,
195
- }));
196
+ })));
196
197
  // We can check the current status of DKIM
197
198
  dkimVerificationStatus = "PENDING"; // Default to pending
198
199
  // Get the updated identity to check DKIM status
199
- const updatedIdentity = await client.send(new GetEmailIdentityCommand({
200
+ const updatedIdentity = await retry(() => client.send(new GetEmailIdentityCommand({
200
201
  EmailIdentity: props.emailIdentity,
201
- }));
202
+ })));
202
203
  if (updatedIdentity.DkimAttributes?.Status) {
203
204
  dkimVerificationStatus = updatedIdentity.DkimAttributes.Status;
204
205
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ses.js","sourceRoot":"","sources":["../../src/aws/ses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ses.js","sourceRoot":"","sources":["../../src/aws/ses.ts"],"names":[],"mappings":"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"}