alchemy 0.12.21 → 0.14.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 (319) hide show
  1. package/lib/ai/client.d.ts.map +1 -1
  2. package/lib/ai/client.js +3 -5
  3. package/lib/ai/client.js.map +1 -1
  4. package/lib/alchemy.d.ts +2 -1
  5. package/lib/alchemy.d.ts.map +1 -1
  6. package/lib/alchemy.js +87 -92
  7. package/lib/alchemy.js.map +1 -1
  8. package/lib/apply.d.ts.map +1 -1
  9. package/lib/apply.js +6 -1
  10. package/lib/apply.js.map +1 -1
  11. package/lib/aws/bucket.d.ts.map +1 -1
  12. package/lib/aws/bucket.js +55 -57
  13. package/lib/aws/bucket.js.map +1 -1
  14. package/lib/aws/function.d.ts.map +1 -1
  15. package/lib/aws/function.js +250 -252
  16. package/lib/aws/function.js.map +1 -1
  17. package/lib/aws/policy-attachment.d.ts.map +1 -1
  18. package/lib/aws/policy-attachment.js +4 -6
  19. package/lib/aws/policy-attachment.js.map +1 -1
  20. package/lib/aws/policy.d.ts.map +1 -1
  21. package/lib/aws/policy.js +63 -65
  22. package/lib/aws/policy.js.map +1 -1
  23. package/lib/aws/queue.js +88 -90
  24. package/lib/aws/queue.js.map +1 -1
  25. package/lib/aws/table.d.ts.map +1 -1
  26. package/lib/aws/table.js +95 -99
  27. package/lib/aws/table.js.map +1 -1
  28. package/lib/cloudflare/account-api-token.d.ts +1 -1
  29. package/lib/cloudflare/account-api-token.d.ts.map +1 -1
  30. package/lib/cloudflare/account-api-token.js +0 -1
  31. package/lib/cloudflare/account-api-token.js.map +1 -1
  32. package/lib/cloudflare/ai-gateway.js.map +1 -1
  33. package/lib/cloudflare/ai.d.ts +1 -1
  34. package/lib/cloudflare/ai.d.ts.map +1 -1
  35. package/lib/cloudflare/ai.js.map +1 -1
  36. package/lib/cloudflare/api.d.ts +5 -5
  37. package/lib/cloudflare/api.d.ts.map +1 -1
  38. package/lib/cloudflare/api.js +52 -15
  39. package/lib/cloudflare/api.js.map +1 -1
  40. package/lib/cloudflare/auth.d.ts +24 -55
  41. package/lib/cloudflare/auth.d.ts.map +1 -1
  42. package/lib/cloudflare/auth.js +15 -72
  43. package/lib/cloudflare/auth.js.map +1 -1
  44. package/lib/cloudflare/bucket.d.ts +2 -2
  45. package/lib/cloudflare/bucket.d.ts.map +1 -1
  46. package/lib/cloudflare/bucket.js +22 -24
  47. package/lib/cloudflare/bucket.js.map +1 -1
  48. package/lib/cloudflare/bundle/alias-plugin.d.ts +6 -0
  49. package/lib/cloudflare/bundle/alias-plugin.d.ts.map +1 -0
  50. package/lib/cloudflare/bundle/alias-plugin.js +36 -0
  51. package/lib/cloudflare/bundle/alias-plugin.js.map +1 -0
  52. package/lib/cloudflare/bundle/build-failures.d.ts +12 -0
  53. package/lib/cloudflare/bundle/build-failures.d.ts.map +1 -0
  54. package/lib/cloudflare/bundle/build-failures.js +45 -0
  55. package/lib/cloudflare/bundle/build-failures.js.map +1 -0
  56. package/lib/cloudflare/bundle/bundle-worker.d.ts +7 -0
  57. package/lib/cloudflare/bundle/bundle-worker.d.ts.map +1 -0
  58. package/lib/cloudflare/bundle/bundle-worker.js +69 -0
  59. package/lib/cloudflare/bundle/bundle-worker.js.map +1 -0
  60. package/lib/cloudflare/bundle/external.d.ts +1 -0
  61. package/lib/cloudflare/bundle/external.d.ts.map +1 -1
  62. package/lib/cloudflare/bundle/external.js +8 -1
  63. package/lib/cloudflare/bundle/external.js.map +1 -1
  64. package/lib/cloudflare/bundle/local-dev-cloudflare-shim.d.ts +1 -1
  65. package/lib/cloudflare/bundle/local-dev-cloudflare-shim.d.ts.map +1 -1
  66. package/lib/cloudflare/bundle/local-dev-cloudflare-shim.js +6 -6
  67. package/lib/cloudflare/bundle/local-dev-cloudflare-shim.js.map +1 -1
  68. package/lib/cloudflare/bundle/nodejs-compat-mode.d.ts +17 -0
  69. package/lib/cloudflare/bundle/nodejs-compat-mode.d.ts.map +1 -0
  70. package/lib/cloudflare/bundle/nodejs-compat-mode.js +27 -0
  71. package/lib/cloudflare/bundle/nodejs-compat-mode.js.map +1 -0
  72. package/lib/cloudflare/bundle/{hybrid-nodejs-compat.d.ts → nodejs-compat.d.ts} +2 -2
  73. package/lib/cloudflare/bundle/nodejs-compat.d.ts.map +1 -0
  74. package/lib/cloudflare/bundle/{hybrid-nodejs-compat.js → nodejs-compat.js} +2 -2
  75. package/lib/cloudflare/bundle/nodejs-compat.js.map +1 -0
  76. package/lib/cloudflare/custom-domain.d.ts.map +1 -1
  77. package/lib/cloudflare/custom-domain.js +3 -5
  78. package/lib/cloudflare/custom-domain.js.map +1 -1
  79. package/lib/cloudflare/d1-database.d.ts +1 -1
  80. package/lib/cloudflare/d1-database.d.ts.map +1 -1
  81. package/lib/cloudflare/d1-database.js +70 -72
  82. package/lib/cloudflare/d1-database.js.map +1 -1
  83. package/lib/cloudflare/d1-migrations.d.ts +1 -1
  84. package/lib/cloudflare/d1-migrations.d.ts.map +1 -1
  85. package/lib/cloudflare/d1-migrations.js +2 -3
  86. package/lib/cloudflare/d1-migrations.js.map +1 -1
  87. package/lib/cloudflare/dns-records.d.ts.map +1 -1
  88. package/lib/cloudflare/dns-records.js +2 -4
  89. package/lib/cloudflare/dns-records.js.map +1 -1
  90. package/lib/cloudflare/kv-namespace.d.ts +1 -1
  91. package/lib/cloudflare/kv-namespace.d.ts.map +1 -1
  92. package/lib/cloudflare/kv-namespace.js +24 -27
  93. package/lib/cloudflare/kv-namespace.js.map +1 -1
  94. package/lib/cloudflare/pipeline.d.ts +1 -1
  95. package/lib/cloudflare/pipeline.d.ts.map +1 -1
  96. package/lib/cloudflare/pipeline.js +32 -34
  97. package/lib/cloudflare/pipeline.js.map +1 -1
  98. package/lib/cloudflare/queue-consumer.d.ts +1 -1
  99. package/lib/cloudflare/queue-consumer.d.ts.map +1 -1
  100. package/lib/cloudflare/queue-consumer.js +27 -33
  101. package/lib/cloudflare/queue-consumer.js.map +1 -1
  102. package/lib/cloudflare/queue.d.ts +1 -1
  103. package/lib/cloudflare/queue.d.ts.map +1 -1
  104. package/lib/cloudflare/queue.js +36 -38
  105. package/lib/cloudflare/queue.js.map +1 -1
  106. package/lib/cloudflare/r2-rest-state-store.js +4 -8
  107. package/lib/cloudflare/r2-rest-state-store.js.map +1 -1
  108. package/lib/cloudflare/types.d.ts.map +1 -1
  109. package/lib/cloudflare/types.js +1 -3
  110. package/lib/cloudflare/types.js.map +1 -1
  111. package/lib/cloudflare/user.d.ts +51 -0
  112. package/lib/cloudflare/user.d.ts.map +1 -0
  113. package/lib/cloudflare/user.js +62 -0
  114. package/lib/cloudflare/user.js.map +1 -0
  115. package/lib/cloudflare/vectorize-index.d.ts.map +1 -1
  116. package/lib/cloudflare/vectorize-index.js +37 -39
  117. package/lib/cloudflare/vectorize-index.js.map +1 -1
  118. package/lib/cloudflare/vectorize-metadata-index.d.ts +1 -1
  119. package/lib/cloudflare/vectorize-metadata-index.d.ts.map +1 -1
  120. package/lib/cloudflare/vectorize-metadata-index.js +10 -13
  121. package/lib/cloudflare/vectorize-metadata-index.js.map +1 -1
  122. package/lib/cloudflare/worker.d.ts +18 -3
  123. package/lib/cloudflare/worker.d.ts.map +1 -1
  124. package/lib/cloudflare/worker.js +11 -54
  125. package/lib/cloudflare/worker.js.map +1 -1
  126. package/lib/cloudflare/workflow.d.ts +1 -1
  127. package/lib/cloudflare/workflow.d.ts.map +1 -1
  128. package/lib/cloudflare/workflow.js.map +1 -1
  129. package/lib/cloudflare/zone.d.ts.map +1 -1
  130. package/lib/cloudflare/zone.js +48 -50
  131. package/lib/cloudflare/zone.js.map +1 -1
  132. package/lib/dns/godaddy.js +1 -1
  133. package/lib/dns/import-dns.js +1 -1
  134. package/lib/dns/import-dns.js.map +1 -1
  135. package/lib/env.js +7 -9
  136. package/lib/env.js.map +1 -1
  137. package/lib/esbuild/bundle.d.ts.map +1 -1
  138. package/lib/esbuild/bundle.js +8 -11
  139. package/lib/esbuild/bundle.js.map +1 -1
  140. package/lib/fs/copy-file.d.ts.map +1 -1
  141. package/lib/fs/copy-file.js +27 -29
  142. package/lib/fs/copy-file.js.map +1 -1
  143. package/lib/fs/file.d.ts +1 -1
  144. package/lib/fs/file.d.ts.map +1 -1
  145. package/lib/fs/file.js +1 -1
  146. package/lib/fs/file.js.map +1 -1
  147. package/lib/fs/folder.d.ts.map +1 -1
  148. package/lib/fs/folder.js +1 -3
  149. package/lib/fs/folder.js.map +1 -1
  150. package/lib/github/client.d.ts.map +1 -1
  151. package/lib/github/client.js +3 -5
  152. package/lib/github/client.js.map +1 -1
  153. package/lib/github/repository-environment.d.ts.map +1 -1
  154. package/lib/github/repository-environment.js +173 -176
  155. package/lib/github/repository-environment.js.map +1 -1
  156. package/lib/github/secret.d.ts.map +1 -1
  157. package/lib/github/secret.js +97 -99
  158. package/lib/github/secret.js.map +1 -1
  159. package/lib/internal/docs/providers.d.ts.map +1 -1
  160. package/lib/internal/docs/providers.js +5 -7
  161. package/lib/internal/docs/providers.js.map +1 -1
  162. package/lib/neon/api.js +1 -2
  163. package/lib/neon/api.js.map +1 -1
  164. package/lib/neon/project.js +2 -2
  165. package/lib/neon/project.js.map +1 -1
  166. package/lib/os/exec.d.ts +5 -0
  167. package/lib/os/exec.d.ts.map +1 -1
  168. package/lib/os/exec.js +88 -56
  169. package/lib/os/exec.js.map +1 -1
  170. package/lib/scope.d.ts +3 -0
  171. package/lib/scope.d.ts.map +1 -1
  172. package/lib/scope.js +10 -3
  173. package/lib/scope.js.map +1 -1
  174. package/lib/secret.d.ts.map +1 -1
  175. package/lib/secret.js +1 -3
  176. package/lib/secret.js.map +1 -1
  177. package/lib/serde.d.ts.map +1 -1
  178. package/lib/serde.js +13 -15
  179. package/lib/serde.js.map +1 -1
  180. package/lib/stripe/price.d.ts.map +1 -1
  181. package/lib/stripe/price.js +69 -73
  182. package/lib/stripe/price.js.map +1 -1
  183. package/lib/stripe/product.d.ts.map +1 -1
  184. package/lib/stripe/product.js +50 -52
  185. package/lib/stripe/product.js.map +1 -1
  186. package/lib/stripe/webhook.d.ts.map +1 -1
  187. package/lib/stripe/webhook.js +51 -53
  188. package/lib/stripe/webhook.js.map +1 -1
  189. package/lib/test/bun.d.ts +1 -1
  190. package/lib/test/bun.d.ts.map +1 -1
  191. package/lib/test/bun.js +3 -8
  192. package/lib/test/bun.js.map +1 -1
  193. package/lib/test/prune.d.ts.map +1 -1
  194. package/lib/test/prune.js.map +1 -1
  195. package/lib/util/dedent.js +4 -4
  196. package/lib/util/dedent.js.map +1 -1
  197. package/lib/web/astro.js +1 -1
  198. package/lib/web/shadcn.js +4 -4
  199. package/lib/web/shadcn.js.map +1 -1
  200. package/lib/web/tailwind.d.ts.map +1 -1
  201. package/lib/web/tailwind.js +0 -1
  202. package/lib/web/tailwind.js.map +1 -1
  203. package/lib/web/vite.js +3 -3
  204. package/lib/web/vitepress/home-page.d.ts.map +1 -1
  205. package/lib/web/vitepress/home-page.js +6 -8
  206. package/lib/web/vitepress/home-page.js.map +1 -1
  207. package/lib/web/vitepress/process-front-matter-files.js +1 -1
  208. package/lib/web/vitepress/process-front-matter-files.js.map +1 -1
  209. package/lib/web/vitepress/vitepress.js +2 -2
  210. package/lib/web/vitepress/vitepress.js.map +1 -1
  211. package/package.json +4 -1
  212. package/src/ai/astro-file.ts +4 -4
  213. package/src/ai/client.ts +4 -5
  214. package/src/ai/css-file.ts +4 -4
  215. package/src/ai/document.ts +3 -3
  216. package/src/ai/html-file.ts +4 -4
  217. package/src/ai/json-file.ts +1 -1
  218. package/src/ai/typescript-file.ts +4 -4
  219. package/src/ai/vue-file.ts +4 -4
  220. package/src/ai/yaml-file.ts +1 -1
  221. package/src/alchemy.ts +111 -104
  222. package/src/apply.ts +13 -6
  223. package/src/aws/bucket.ts +72 -75
  224. package/src/aws/function.ts +296 -297
  225. package/src/aws/oidc/github-oidc-provider.ts +1 -1
  226. package/src/aws/oidc/oidc-provider.ts +15 -15
  227. package/src/aws/policy-attachment.ts +10 -11
  228. package/src/aws/policy.ts +91 -94
  229. package/src/aws/queue.ts +111 -111
  230. package/src/aws/role.ts +24 -24
  231. package/src/aws/ses.ts +17 -17
  232. package/src/aws/table.ts +114 -115
  233. package/src/cloudflare/account-api-token.ts +11 -11
  234. package/src/cloudflare/ai-gateway.ts +4 -4
  235. package/src/cloudflare/ai.ts +1 -1
  236. package/src/cloudflare/api-error.ts +1 -1
  237. package/src/cloudflare/api.ts +70 -25
  238. package/src/cloudflare/assets.ts +4 -4
  239. package/src/cloudflare/auth.ts +49 -164
  240. package/src/cloudflare/bucket.ts +62 -63
  241. package/src/cloudflare/bundle/alias-plugin.ts +48 -0
  242. package/src/cloudflare/bundle/build-failures.ts +55 -0
  243. package/src/cloudflare/bundle/bundle-worker.ts +89 -0
  244. package/src/cloudflare/bundle/external.ts +9 -1
  245. package/src/cloudflare/bundle/local-dev-cloudflare-shim.ts +7 -6
  246. package/src/cloudflare/bundle/nodejs-compat-mode.ts +49 -0
  247. package/src/cloudflare/bundle/{hybrid-nodejs-compat.ts → nodejs-compat.ts} +10 -10
  248. package/src/cloudflare/custom-domain.ts +27 -28
  249. package/src/cloudflare/d1-database.ts +101 -102
  250. package/src/cloudflare/d1-migrations.ts +10 -10
  251. package/src/cloudflare/dns-records.ts +23 -24
  252. package/src/cloudflare/durable-object-namespace.ts +1 -1
  253. package/src/cloudflare/event-source.ts +1 -1
  254. package/src/cloudflare/hyperdrive.ts +3 -3
  255. package/src/cloudflare/kv-namespace.ts +36 -37
  256. package/src/cloudflare/nuxt.ts +1 -1
  257. package/src/cloudflare/permission-groups.ts +7 -7
  258. package/src/cloudflare/pipeline.ts +55 -56
  259. package/src/cloudflare/queue-consumer.ts +46 -53
  260. package/src/cloudflare/queue.ts +56 -57
  261. package/src/cloudflare/r2-rest-state-store.ts +11 -11
  262. package/src/cloudflare/redwood.ts +1 -1
  263. package/src/cloudflare/tanstack-start.ts +1 -1
  264. package/src/cloudflare/types.ts +1 -2
  265. package/src/cloudflare/user.ts +142 -0
  266. package/src/cloudflare/vectorize-index.ts +60 -61
  267. package/src/cloudflare/vectorize-metadata-index.ts +25 -25
  268. package/src/cloudflare/vite.ts +1 -1
  269. package/src/cloudflare/website.ts +3 -3
  270. package/src/cloudflare/worker.ts +83 -108
  271. package/src/cloudflare/workflow.ts +4 -4
  272. package/src/cloudflare/wrangler.json.ts +4 -4
  273. package/src/cloudflare/zone.ts +69 -70
  274. package/src/destroy.ts +4 -4
  275. package/src/dns/godaddy.ts +1 -1
  276. package/src/dns/import-dns.ts +5 -5
  277. package/src/encrypt.ts +6 -6
  278. package/src/env.ts +10 -10
  279. package/src/esbuild/bundle.ts +14 -15
  280. package/src/fs/copy-file.ts +35 -36
  281. package/src/fs/file-system-state-store.ts +4 -4
  282. package/src/fs/file.ts +9 -8
  283. package/src/fs/folder.ts +6 -7
  284. package/src/github/client.ts +15 -14
  285. package/src/github/repository-environment.ts +206 -210
  286. package/src/github/secret.ts +111 -116
  287. package/src/internal/docs/providers.ts +16 -17
  288. package/src/neon/api-error.ts +1 -1
  289. package/src/neon/api.ts +6 -6
  290. package/src/neon/project.ts +18 -17
  291. package/src/os/exec.ts +107 -66
  292. package/src/resource.ts +3 -3
  293. package/src/scope.ts +14 -4
  294. package/src/secret.ts +2 -3
  295. package/src/serde.ts +30 -22
  296. package/src/stripe/price.ts +74 -77
  297. package/src/stripe/product.ts +55 -56
  298. package/src/stripe/webhook.ts +56 -57
  299. package/src/test/bun.ts +9 -13
  300. package/src/test/prune.ts +4 -4
  301. package/src/util/dedent.ts +4 -4
  302. package/src/web/astro.ts +10 -10
  303. package/src/web/shadcn-component.ts +4 -4
  304. package/src/web/shadcn.ts +10 -10
  305. package/src/web/tailwind.ts +2 -3
  306. package/src/web/vite.ts +11 -11
  307. package/src/web/vitepress/config.ts +2 -2
  308. package/src/web/vitepress/custom-theme.ts +7 -7
  309. package/src/web/vitepress/dependencies.ts +4 -4
  310. package/src/web/vitepress/home-page.ts +8 -9
  311. package/src/web/vitepress/process-front-matter-files.ts +5 -5
  312. package/src/web/vitepress/vitepress.ts +7 -7
  313. package/lib/cloudflare/account-id.d.ts +0 -6
  314. package/lib/cloudflare/account-id.d.ts.map +0 -1
  315. package/lib/cloudflare/account-id.js +0 -6
  316. package/lib/cloudflare/account-id.js.map +0 -1
  317. package/lib/cloudflare/bundle/hybrid-nodejs-compat.d.ts.map +0 -1
  318. package/lib/cloudflare/bundle/hybrid-nodejs-compat.js.map +0 -1
  319. package/src/cloudflare/account-id.ts +0 -12
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/aws/policy.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IAE9D;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAE9C;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAEjD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE9B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC;IAEzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,MAAO,SAAQ,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW;IAClE;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,UAAU,EAAE,IAAI,CAAC;IAEjB;;OAEG;IACH,UAAU,EAAE,IAAI,CAAC;IAEjB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,eAAO,MAAM,MAAM,yFAGT,OAAO,CAAC,MAAM,CAAC,MACjB,MAAM,SACH,WAAW,KACjB,OAAO,CAAC,MAAM,CAAC,CA6InB,CAAC"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/aws/policy.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IAE9D;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAE9C;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAEjD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE9B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC;IAEzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,MAAO,SAAQ,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW;IAClE;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,UAAU,EAAE,IAAI,CAAC;IAEjB;;OAEG;IACH,UAAU,EAAE,IAAI,CAAC;IAEjB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,eAAO,MAAM,MAAM,yFAGT,OAAO,CAAC,MAAM,CAAC,MACjB,MAAM,SACH,WAAW,KACjB,OAAO,CAAC,MAAM,CAAC,CA0InB,CAAC"}
package/lib/aws/policy.js CHANGED
@@ -107,81 +107,79 @@ export const Policy = Resource("iam::Policy", async function (id, props) {
107
107
  }
108
108
  return this.destroy();
109
109
  }
110
- else {
111
- try {
112
- // Check if policy exists
113
- const existingPolicy = await client.send(new GetPolicyCommand({
114
- PolicyArn: policyArn,
115
- }));
116
- // Get current policy version
117
- const currentVersion = await client.send(new GetPolicyVersionCommand({
110
+ try {
111
+ // Check if policy exists
112
+ const existingPolicy = await client.send(new GetPolicyCommand({
113
+ PolicyArn: policyArn,
114
+ }));
115
+ // Get current policy version
116
+ const currentVersion = await client.send(new GetPolicyVersionCommand({
117
+ PolicyArn: policyArn,
118
+ VersionId: existingPolicy.Policy.DefaultVersionId,
119
+ }));
120
+ const currentDocument = JSON.parse(decodeURIComponent(currentVersion.PolicyVersion.Document));
121
+ // If policy document changed, create new version
122
+ if (JSON.stringify(currentDocument) !== JSON.stringify(props.document)) {
123
+ // List versions to check if we need to delete old ones
124
+ const versions = await client.send(new ListPolicyVersionsCommand({
118
125
  PolicyArn: policyArn,
119
- VersionId: existingPolicy.Policy.DefaultVersionId,
120
126
  }));
121
- const currentDocument = JSON.parse(decodeURIComponent(currentVersion.PolicyVersion.Document));
122
- // If policy document changed, create new version
123
- if (JSON.stringify(currentDocument) !== JSON.stringify(props.document)) {
124
- // List versions to check if we need to delete old ones
125
- const versions = await client.send(new ListPolicyVersionsCommand({
126
- PolicyArn: policyArn,
127
- }));
128
- // Delete oldest version if we have 5 versions (maximum allowed)
129
- if (versions.Versions?.length === 5) {
130
- const oldestVersion = versions.Versions.sort((a, b) => a.CreateDate.getTime() - b.CreateDate.getTime())[0];
131
- if (!oldestVersion.IsDefaultVersion) {
132
- await client.send(new DeletePolicyVersionCommand({
133
- PolicyArn: policyArn,
134
- VersionId: oldestVersion.VersionId,
135
- }));
136
- }
127
+ // Delete oldest version if we have 5 versions (maximum allowed)
128
+ if (versions.Versions?.length === 5) {
129
+ const oldestVersion = versions.Versions.sort((a, b) => a.CreateDate.getTime() - b.CreateDate.getTime())[0];
130
+ if (!oldestVersion.IsDefaultVersion) {
131
+ await client.send(new DeletePolicyVersionCommand({
132
+ PolicyArn: policyArn,
133
+ VersionId: oldestVersion.VersionId,
134
+ }));
137
135
  }
138
- // Create new version
139
- await client.send(new CreatePolicyVersionCommand({
140
- PolicyArn: policyArn,
141
- PolicyDocument: JSON.stringify(props.document),
142
- SetAsDefault: true,
143
- }));
144
136
  }
145
- const policy = await client.send(new GetPolicyCommand({
137
+ // Create new version
138
+ await client.send(new CreatePolicyVersionCommand({
146
139
  PolicyArn: policyArn,
140
+ PolicyDocument: JSON.stringify(props.document),
141
+ SetAsDefault: true,
142
+ }));
143
+ }
144
+ const policy = await client.send(new GetPolicyCommand({
145
+ PolicyArn: policyArn,
146
+ }));
147
+ return this({
148
+ ...props,
149
+ arn: policy.Policy.Arn,
150
+ defaultVersionId: policy.Policy.DefaultVersionId,
151
+ attachmentCount: policy.Policy.AttachmentCount,
152
+ createDate: policy.Policy.CreateDate,
153
+ updateDate: policy.Policy.UpdateDate,
154
+ isAttachable: policy.Policy.IsAttachable,
155
+ });
156
+ }
157
+ catch (error) {
158
+ if (error.name === "NoSuchEntity") {
159
+ // Create new policy
160
+ const newPolicy = await client.send(new CreatePolicyCommand({
161
+ PolicyName: props.policyName,
162
+ PolicyDocument: JSON.stringify(props.document),
163
+ Description: props.description,
164
+ Path: props.path,
165
+ Tags: props.tags
166
+ ? Object.entries(props.tags).map(([Key, Value]) => ({
167
+ Key,
168
+ Value,
169
+ }))
170
+ : undefined,
147
171
  }));
148
172
  return this({
149
173
  ...props,
150
- arn: policy.Policy.Arn,
151
- defaultVersionId: policy.Policy.DefaultVersionId,
152
- attachmentCount: policy.Policy.AttachmentCount,
153
- createDate: policy.Policy.CreateDate,
154
- updateDate: policy.Policy.UpdateDate,
155
- isAttachable: policy.Policy.IsAttachable,
174
+ arn: newPolicy.Policy.Arn,
175
+ defaultVersionId: newPolicy.Policy.DefaultVersionId,
176
+ attachmentCount: newPolicy.Policy.AttachmentCount,
177
+ createDate: newPolicy.Policy.CreateDate,
178
+ updateDate: newPolicy.Policy.UpdateDate,
179
+ isAttachable: newPolicy.Policy.IsAttachable,
156
180
  });
157
181
  }
158
- catch (error) {
159
- if (error.name === "NoSuchEntity") {
160
- // Create new policy
161
- const newPolicy = await client.send(new CreatePolicyCommand({
162
- PolicyName: props.policyName,
163
- PolicyDocument: JSON.stringify(props.document),
164
- Description: props.description,
165
- Path: props.path,
166
- Tags: props.tags
167
- ? Object.entries(props.tags).map(([Key, Value]) => ({
168
- Key,
169
- Value,
170
- }))
171
- : undefined,
172
- }));
173
- return this({
174
- ...props,
175
- arn: newPolicy.Policy.Arn,
176
- defaultVersionId: newPolicy.Policy.DefaultVersionId,
177
- attachmentCount: newPolicy.Policy.AttachmentCount,
178
- createDate: newPolicy.Policy.CreateDate,
179
- updateDate: newPolicy.Policy.UpdateDate,
180
- isAttachable: newPolicy.Policy.IsAttachable,
181
- });
182
- }
183
- throw error;
184
- }
182
+ throw error;
185
183
  }
186
184
  });
187
185
  //# sourceMappingURL=policy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/aws/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/aws/policy.ts"],"names":[],"mappings":"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"}
package/lib/aws/queue.js CHANGED
@@ -84,114 +84,112 @@ export const Queue = Resource("sqs::Queue", async function (id, props) {
84
84
  }
85
85
  return this.destroy();
86
86
  }
87
- else {
88
- // Create queue with attributes
89
- const attributes = {};
90
- if (props.visibilityTimeout !== undefined) {
91
- attributes["VisibilityTimeout"] = props.visibilityTimeout.toString();
92
- }
93
- if (props.messageRetentionPeriod !== undefined) {
94
- attributes["MessageRetentionPeriod"] =
95
- props.messageRetentionPeriod.toString();
96
- }
97
- if (props.maximumMessageSize !== undefined) {
98
- attributes["MaximumMessageSize"] = props.maximumMessageSize.toString();
99
- }
100
- if (props.delaySeconds !== undefined) {
101
- attributes["DelaySeconds"] = props.delaySeconds.toString();
87
+ // Create queue with attributes
88
+ const attributes = {};
89
+ if (props.visibilityTimeout !== undefined) {
90
+ attributes.VisibilityTimeout = props.visibilityTimeout.toString();
91
+ }
92
+ if (props.messageRetentionPeriod !== undefined) {
93
+ attributes.MessageRetentionPeriod =
94
+ props.messageRetentionPeriod.toString();
95
+ }
96
+ if (props.maximumMessageSize !== undefined) {
97
+ attributes.MaximumMessageSize = props.maximumMessageSize.toString();
98
+ }
99
+ if (props.delaySeconds !== undefined) {
100
+ attributes.DelaySeconds = props.delaySeconds.toString();
101
+ }
102
+ if (props.receiveMessageWaitTimeSeconds !== undefined) {
103
+ attributes.ReceiveMessageWaitTimeSeconds =
104
+ props.receiveMessageWaitTimeSeconds.toString();
105
+ }
106
+ // FIFO specific attributes
107
+ if (props.fifo) {
108
+ attributes.FifoQueue = "true";
109
+ if (props.contentBasedDeduplication) {
110
+ attributes.ContentBasedDeduplication = "true";
102
111
  }
103
- if (props.receiveMessageWaitTimeSeconds !== undefined) {
104
- attributes["ReceiveMessageWaitTimeSeconds"] =
105
- props.receiveMessageWaitTimeSeconds.toString();
112
+ if (props.deduplicationScope) {
113
+ attributes.DeduplicationScope = props.deduplicationScope;
106
114
  }
107
- // FIFO specific attributes
108
- if (props.fifo) {
109
- attributes["FifoQueue"] = "true";
110
- if (props.contentBasedDeduplication) {
111
- attributes["ContentBasedDeduplication"] = "true";
112
- }
113
- if (props.deduplicationScope) {
114
- attributes["DeduplicationScope"] = props.deduplicationScope;
115
- }
116
- if (props.fifoThroughputLimit) {
117
- attributes["FifoThroughputLimit"] = props.fifoThroughputLimit;
118
- }
115
+ if (props.fifoThroughputLimit) {
116
+ attributes.FifoThroughputLimit = props.fifoThroughputLimit;
119
117
  }
120
- // Convert tags to AWS format
121
- const tags = props.tags
122
- ? Object.entries(props.tags).reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})
123
- : undefined;
124
- try {
125
- // Create the queue
126
- const createResponse = await client.send(new CreateQueueCommand({
118
+ }
119
+ // Convert tags to AWS format
120
+ const tags = props.tags
121
+ ? Object.entries(props.tags).reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})
122
+ : undefined;
123
+ try {
124
+ // Create the queue
125
+ const createResponse = await client.send(new CreateQueueCommand({
126
+ QueueName: queueName,
127
+ Attributes: attributes,
128
+ tags,
129
+ }));
130
+ // Get queue attributes
131
+ const attributesResponse = await client.send(new GetQueueAttributesCommand({
132
+ QueueUrl: createResponse.QueueUrl,
133
+ AttributeNames: ["QueueArn"],
134
+ }));
135
+ return this({
136
+ ...props,
137
+ arn: attributesResponse.Attributes.QueueArn,
138
+ url: createResponse.QueueUrl,
139
+ });
140
+ }
141
+ catch (error) {
142
+ if (error.name === "QueueAlreadyExists") {
143
+ // Get existing queue URL
144
+ const urlResponse = await client.send(new GetQueueUrlCommand({
127
145
  QueueName: queueName,
128
- Attributes: attributes,
129
- tags,
130
146
  }));
131
147
  // Get queue attributes
132
148
  const attributesResponse = await client.send(new GetQueueAttributesCommand({
133
- QueueUrl: createResponse.QueueUrl,
149
+ QueueUrl: urlResponse.QueueUrl,
134
150
  AttributeNames: ["QueueArn"],
135
151
  }));
136
152
  return this({
137
153
  ...props,
138
154
  arn: attributesResponse.Attributes.QueueArn,
139
- url: createResponse.QueueUrl,
155
+ url: urlResponse.QueueUrl,
140
156
  });
141
157
  }
142
- catch (error) {
143
- if (error.name === "QueueAlreadyExists") {
144
- // Get existing queue URL
145
- const urlResponse = await client.send(new GetQueueUrlCommand({
146
- QueueName: queueName,
147
- }));
148
- // Get queue attributes
149
- const attributesResponse = await client.send(new GetQueueAttributesCommand({
150
- QueueUrl: urlResponse.QueueUrl,
151
- AttributeNames: ["QueueArn"],
152
- }));
153
- return this({
154
- ...props,
155
- arn: attributesResponse.Attributes.QueueArn,
156
- url: urlResponse.QueueUrl,
157
- });
158
- }
159
- else if (error.name === "QueueDeletedRecently") {
160
- // Queue was recently deleted, wait and retry
161
- const maxRetries = 3;
162
- let retryCount = 0;
163
- while (retryCount < maxRetries) {
164
- try {
165
- // Wait for 60 seconds before retrying
166
- await new Promise((resolve) => setTimeout(resolve, 61000));
167
- // Retry creating the queue
168
- const createResponse = await client.send(new CreateQueueCommand({
169
- QueueName: queueName,
170
- Attributes: attributes,
171
- tags,
172
- }));
173
- // Get queue attributes
174
- const attributesResponse = await client.send(new GetQueueAttributesCommand({
175
- QueueUrl: createResponse.QueueUrl,
176
- AttributeNames: ["QueueArn"],
177
- }));
178
- return this({
179
- ...props,
180
- arn: attributesResponse.Attributes.QueueArn,
181
- url: createResponse.QueueUrl,
182
- });
183
- }
184
- catch (retryError) {
185
- if (retryError.name !== "QueueDeletedRecently" ||
186
- retryCount === maxRetries - 1) {
187
- throw retryError;
188
- }
189
- retryCount++;
158
+ if (error.name === "QueueDeletedRecently") {
159
+ // Queue was recently deleted, wait and retry
160
+ const maxRetries = 3;
161
+ let retryCount = 0;
162
+ while (retryCount < maxRetries) {
163
+ try {
164
+ // Wait for 60 seconds before retrying
165
+ await new Promise((resolve) => setTimeout(resolve, 61000));
166
+ // Retry creating the queue
167
+ const createResponse = await client.send(new CreateQueueCommand({
168
+ QueueName: queueName,
169
+ Attributes: attributes,
170
+ tags,
171
+ }));
172
+ // Get queue attributes
173
+ const attributesResponse = await client.send(new GetQueueAttributesCommand({
174
+ QueueUrl: createResponse.QueueUrl,
175
+ AttributeNames: ["QueueArn"],
176
+ }));
177
+ return this({
178
+ ...props,
179
+ arn: attributesResponse.Attributes.QueueArn,
180
+ url: createResponse.QueueUrl,
181
+ });
182
+ }
183
+ catch (retryError) {
184
+ if (retryError.name !== "QueueDeletedRecently" ||
185
+ retryCount === maxRetries - 1) {
186
+ throw retryError;
190
187
  }
188
+ retryCount++;
191
189
  }
192
190
  }
193
- throw error;
194
191
  }
192
+ throw error;
195
193
  }
196
194
  });
197
195
  //# sourceMappingURL=queue.js.map
@@ -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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/aws/table.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,YAAY,EAAE;QACZ;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QACb;;;WAGG;QACH,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;KACvB,CAAC;IAEF;;;OAGG;IACH,OAAO,CAAC,EAAE;QACR;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QACb;;;WAGG;QACH,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;KACvB,CAAC;IAEF;;;;OAIG;IACH,WAAW,CAAC,EAAE,aAAa,GAAG,iBAAiB,CAAC;IAEhD;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,KAAM,SAAQ,QAAQ,CAAC,eAAe,CAAC,EAAE,UAAU;IAClE;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,KAAK,yFAGR,OAAO,CAAC,KAAK,CAAC,MAChB,MAAM,SACH,UAAU,KAChB,OAAO,CAAC,KAAK,CAAC,CAmLlB,CAAC"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/aws/table.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI1C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,YAAY,EAAE;QACZ;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QACb;;;WAGG;QACH,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;KACvB,CAAC;IAEF;;;OAGG;IACH,OAAO,CAAC,EAAE;QACR;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QACb;;;WAGG;QACH,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;KACvB,CAAC;IAEF;;;;OAIG;IACH,WAAW,CAAC,EAAE,aAAa,GAAG,iBAAiB,CAAC;IAEhD;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,KAAM,SAAQ,QAAQ,CAAC,eAAe,CAAC,EAAE,UAAU;IAClE;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,KAAK,yFAGR,OAAO,CAAC,KAAK,CAAC,MAChB,MAAM,SACH,UAAU,KAChB,OAAO,CAAC,KAAK,CAAC,CAkLlB,CAAC"}
package/lib/aws/table.js CHANGED
@@ -46,8 +46,7 @@ export const Table = Resource("dynamo::Table", async function (id, props) {
46
46
  TableName: props.tableName,
47
47
  })));
48
48
  }, isRetryableError, 10, // Max attempts
49
- 200 // Initial delay in ms
50
- );
49
+ 200);
51
50
  // Wait for table to be deleted
52
51
  let tableDeleted = false;
53
52
  let retryCount = 0;
@@ -77,114 +76,111 @@ export const Table = Resource("dynamo::Table", async function (id, props) {
77
76
  }
78
77
  return this.destroy();
79
78
  }
80
- else {
81
- // Setup for table creation
82
- const attributeDefinitions = [
83
- {
84
- AttributeName: props.partitionKey.name,
85
- AttributeType: props.partitionKey.type,
86
- },
87
- ];
88
- const keySchema = [
89
- {
90
- AttributeName: props.partitionKey.name,
91
- KeyType: "HASH",
92
- },
93
- ];
94
- if (props.sortKey) {
95
- attributeDefinitions.push({
96
- AttributeName: props.sortKey.name,
97
- AttributeType: props.sortKey.type,
98
- });
99
- keySchema.push({
100
- AttributeName: props.sortKey.name,
101
- KeyType: "RANGE",
102
- });
79
+ // Setup for table creation
80
+ const attributeDefinitions = [
81
+ {
82
+ AttributeName: props.partitionKey.name,
83
+ AttributeType: props.partitionKey.type,
84
+ },
85
+ ];
86
+ const keySchema = [
87
+ {
88
+ AttributeName: props.partitionKey.name,
89
+ KeyType: "HASH",
90
+ },
91
+ ];
92
+ if (props.sortKey) {
93
+ attributeDefinitions.push({
94
+ AttributeName: props.sortKey.name,
95
+ AttributeType: props.sortKey.type,
96
+ });
97
+ keySchema.push({
98
+ AttributeName: props.sortKey.name,
99
+ KeyType: "RANGE",
100
+ });
101
+ }
102
+ // Attempt to create the table with exponential backoff for ResourceInUseException
103
+ await withExponentialBackoff(async () => {
104
+ try {
105
+ // First check if table already exists
106
+ const describeResponse = await client.send(new DescribeTableCommand({
107
+ TableName: props.tableName,
108
+ }));
109
+ // If table exists and is ACTIVE, no need to create it
110
+ if (describeResponse.Table?.TableStatus === "ACTIVE") {
111
+ return;
112
+ }
113
+ // If table exists but not ACTIVE, wait for it in the polling loop below
114
+ if (describeResponse.Table) {
115
+ return;
116
+ }
103
117
  }
104
- // Attempt to create the table with exponential backoff for ResourceInUseException
105
- await withExponentialBackoff(async () => {
106
- try {
107
- // First check if table already exists
108
- const describeResponse = await client.send(new DescribeTableCommand({
118
+ catch (error) {
119
+ if (error instanceof ResourceNotFoundException) {
120
+ // Table doesn't exist, try to create it
121
+ await client.send(new CreateTableCommand({
109
122
  TableName: props.tableName,
123
+ AttributeDefinitions: attributeDefinitions,
124
+ KeySchema: keySchema,
125
+ BillingMode: props.billingMode || "PAY_PER_REQUEST",
126
+ ProvisionedThroughput: props.billingMode === "PROVISIONED"
127
+ ? {
128
+ ReadCapacityUnits: props.readCapacity || 5,
129
+ WriteCapacityUnits: props.writeCapacity || 5,
130
+ }
131
+ : undefined,
132
+ Tags: props.tags
133
+ ? Object.entries(props.tags).map(([Key, Value]) => ({
134
+ Key,
135
+ Value,
136
+ }))
137
+ : undefined,
110
138
  }));
111
- // If table exists and is ACTIVE, no need to create it
112
- if (describeResponse.Table?.TableStatus === "ACTIVE") {
113
- return;
114
- }
115
- // If table exists but not ACTIVE, wait for it in the polling loop below
116
- if (describeResponse.Table) {
117
- return;
118
- }
119
139
  }
120
- catch (error) {
121
- if (error instanceof ResourceNotFoundException) {
122
- // Table doesn't exist, try to create it
123
- await client.send(new CreateTableCommand({
124
- TableName: props.tableName,
125
- AttributeDefinitions: attributeDefinitions,
126
- KeySchema: keySchema,
127
- BillingMode: props.billingMode || "PAY_PER_REQUEST",
128
- ProvisionedThroughput: props.billingMode === "PROVISIONED"
129
- ? {
130
- ReadCapacityUnits: props.readCapacity || 5,
131
- WriteCapacityUnits: props.writeCapacity || 5,
132
- }
133
- : undefined,
134
- Tags: props.tags
135
- ? Object.entries(props.tags).map(([Key, Value]) => ({
136
- Key,
137
- Value,
138
- }))
139
- : undefined,
140
- }));
141
- }
142
- else {
143
- throw error;
144
- }
140
+ else {
141
+ throw error;
145
142
  }
146
- }, isRetryableError, 10, // Max attempts
147
- 200 // Initial delay in ms
148
- );
149
- // Wait for table to be active with timeout
150
- let tableActive = false;
151
- let tableDescription;
152
- let retryCount = 0;
153
- const maxRetries = 60; // Wait up to 60 seconds
154
- while (!tableActive && retryCount < maxRetries) {
155
- try {
156
- const response = await client.send(new DescribeTableCommand({
157
- TableName: props.tableName,
158
- }));
159
- tableActive = response.Table?.TableStatus === "ACTIVE";
160
- if (tableActive) {
161
- tableDescription = response.Table;
162
- }
163
- else {
164
- retryCount++;
165
- // Increasing delay for each retry with some jitter
166
- const delay = Math.min(1000 * (1 + 0.1 * Math.random()), 5000);
167
- await new Promise((resolve) => setTimeout(resolve, delay));
168
- }
143
+ }
144
+ }, isRetryableError, 10, // Max attempts
145
+ 200);
146
+ // Wait for table to be active with timeout
147
+ let tableActive = false;
148
+ let tableDescription;
149
+ let retryCount = 0;
150
+ const maxRetries = 60; // Wait up to 60 seconds
151
+ while (!tableActive && retryCount < maxRetries) {
152
+ try {
153
+ const response = await client.send(new DescribeTableCommand({
154
+ TableName: props.tableName,
155
+ }));
156
+ tableActive = response.Table?.TableStatus === "ACTIVE";
157
+ if (tableActive) {
158
+ tableDescription = response.Table;
169
159
  }
170
- catch (error) {
160
+ else {
171
161
  retryCount++;
172
- if (!(error instanceof ResourceNotFoundException)) {
173
- throw error;
174
- }
175
- await new Promise((resolve) => setTimeout(resolve, 1000));
162
+ // Increasing delay for each retry with some jitter
163
+ const delay = Math.min(1000 * (1 + 0.1 * Math.random()), 5000);
164
+ await new Promise((resolve) => setTimeout(resolve, delay));
176
165
  }
177
166
  }
178
- if (!tableActive) {
179
- throw new Error(`Timed out waiting for table ${props.tableName} to become active`);
167
+ catch (error) {
168
+ retryCount++;
169
+ if (!(error instanceof ResourceNotFoundException)) {
170
+ throw error;
171
+ }
172
+ await new Promise((resolve) => setTimeout(resolve, 1000));
180
173
  }
181
- return this({
182
- ...props,
183
- arn: tableDescription.TableArn,
184
- streamArn: tableDescription.LatestStreamArn,
185
- tableId: tableDescription.TableId,
186
- });
187
174
  }
175
+ if (!tableActive) {
176
+ throw new Error(`Timed out waiting for table ${props.tableName} to become active`);
177
+ }
178
+ return this({
179
+ ...props,
180
+ arn: tableDescription.TableArn,
181
+ streamArn: tableDescription.LatestStreamArn,
182
+ tableId: tableDescription.TableId,
183
+ });
188
184
  });
189
185
  const retryableErrors = [
190
186
  "ResourceInUseException",