alchemy-effect 0.2.0 → 0.3.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 (428) hide show
  1. package/bin/alchemy-effect.js +55038 -8
  2. package/bin/alchemy-effect.js.map +1 -1
  3. package/bin/alchemy-effect.ts +266 -10
  4. package/lib/$.d.ts +5 -0
  5. package/lib/$.d.ts.map +1 -0
  6. package/lib/$.js +9 -0
  7. package/lib/$.js.map +1 -0
  8. package/lib/app.d.ts +4 -17
  9. package/lib/app.d.ts.map +1 -1
  10. package/lib/app.js +0 -20
  11. package/lib/app.js.map +1 -1
  12. package/lib/apply.d.ts +14 -74
  13. package/lib/apply.d.ts.map +1 -1
  14. package/lib/apply.js +62 -57
  15. package/lib/apply.js.map +1 -1
  16. package/lib/assert-never.d.ts +12 -0
  17. package/lib/assert-never.d.ts.map +1 -0
  18. package/lib/assert-never.js +11 -0
  19. package/lib/assert-never.js.map +1 -0
  20. package/lib/aws/account.d.ts +10 -1
  21. package/lib/aws/account.d.ts.map +1 -1
  22. package/lib/aws/account.js +18 -3
  23. package/lib/aws/account.js.map +1 -1
  24. package/lib/aws/client.d.ts.map +1 -1
  25. package/lib/aws/client.js +0 -1
  26. package/lib/aws/client.js.map +1 -1
  27. package/lib/aws/config.d.ts +15 -0
  28. package/lib/aws/config.d.ts.map +1 -0
  29. package/lib/aws/config.js +1 -0
  30. package/lib/aws/config.js.map +1 -0
  31. package/lib/aws/credentials.d.ts +10 -0
  32. package/lib/aws/credentials.d.ts.map +1 -1
  33. package/lib/aws/credentials.js +73 -47
  34. package/lib/aws/credentials.js.map +1 -1
  35. package/lib/aws/dynamodb/client.d.ts +1 -1
  36. package/lib/aws/dynamodb/client.d.ts.map +1 -1
  37. package/lib/aws/dynamodb/index.d.ts +2 -1
  38. package/lib/aws/dynamodb/index.d.ts.map +1 -1
  39. package/lib/aws/dynamodb/index.js +1 -2
  40. package/lib/aws/dynamodb/index.js.map +1 -1
  41. package/lib/aws/dynamodb/secondary-index.d.ts +5 -4
  42. package/lib/aws/dynamodb/secondary-index.d.ts.map +1 -1
  43. package/lib/aws/dynamodb/table.d.ts +23 -20
  44. package/lib/aws/dynamodb/table.d.ts.map +1 -1
  45. package/lib/aws/dynamodb/table.get-item.d.ts +8 -6
  46. package/lib/aws/dynamodb/table.get-item.d.ts.map +1 -1
  47. package/lib/aws/dynamodb/table.get-item.js +4 -2
  48. package/lib/aws/dynamodb/table.get-item.js.map +1 -1
  49. package/lib/aws/dynamodb/table.js.map +1 -1
  50. package/lib/aws/dynamodb/table.provider.d.ts +3 -4
  51. package/lib/aws/dynamodb/table.provider.d.ts.map +1 -1
  52. package/lib/aws/dynamodb/table.provider.js +17 -29
  53. package/lib/aws/dynamodb/table.provider.js.map +1 -1
  54. package/lib/aws/ec2/client.d.ts +1 -1
  55. package/lib/aws/ec2/client.d.ts.map +1 -1
  56. package/lib/aws/ec2/index.d.ts +3 -0
  57. package/lib/aws/ec2/index.d.ts.map +1 -1
  58. package/lib/aws/ec2/index.js +3 -0
  59. package/lib/aws/ec2/index.js.map +1 -1
  60. package/lib/aws/ec2/subnet.d.ts +175 -0
  61. package/lib/aws/ec2/subnet.d.ts.map +1 -0
  62. package/lib/aws/ec2/subnet.js +4 -0
  63. package/lib/aws/ec2/subnet.js.map +1 -0
  64. package/lib/aws/ec2/subnet.provider.d.ts +4 -0
  65. package/lib/aws/ec2/subnet.provider.d.ts.map +1 -0
  66. package/lib/aws/ec2/subnet.provider.js +250 -0
  67. package/lib/aws/ec2/subnet.provider.js.map +1 -0
  68. package/lib/aws/ec2/vpc.d.ts +12 -8
  69. package/lib/aws/ec2/vpc.d.ts.map +1 -1
  70. package/lib/aws/ec2/vpc.js +1 -0
  71. package/lib/aws/ec2/vpc.js.map +1 -1
  72. package/lib/aws/ec2/vpc.provider.d.ts +3 -4
  73. package/lib/aws/ec2/vpc.provider.d.ts.map +1 -1
  74. package/lib/aws/ec2/vpc.provider.js +11 -26
  75. package/lib/aws/ec2/vpc.provider.js.map +1 -1
  76. package/lib/aws/index.d.ts +16 -19
  77. package/lib/aws/index.d.ts.map +1 -1
  78. package/lib/aws/index.js +7 -10
  79. package/lib/aws/index.js.map +1 -1
  80. package/lib/aws/lambda/consume.d.ts +10 -11
  81. package/lib/aws/lambda/consume.d.ts.map +1 -1
  82. package/lib/aws/lambda/consume.js +3 -3
  83. package/lib/aws/lambda/consume.js.map +1 -1
  84. package/lib/aws/lambda/function.d.ts +7 -7
  85. package/lib/aws/lambda/function.d.ts.map +1 -1
  86. package/lib/aws/lambda/function.handler.d.ts +1 -1
  87. package/lib/aws/lambda/function.handler.d.ts.map +1 -1
  88. package/lib/aws/lambda/function.handler.js.map +1 -1
  89. package/lib/aws/lambda/function.invoke.d.ts +6 -4
  90. package/lib/aws/lambda/function.invoke.d.ts.map +1 -1
  91. package/lib/aws/lambda/function.invoke.js +3 -1
  92. package/lib/aws/lambda/function.invoke.js.map +1 -1
  93. package/lib/aws/lambda/function.js +1 -1
  94. package/lib/aws/lambda/function.js.map +1 -1
  95. package/lib/aws/lambda/function.provider.d.ts +5 -4
  96. package/lib/aws/lambda/function.provider.d.ts.map +1 -1
  97. package/lib/aws/lambda/function.provider.js +16 -14
  98. package/lib/aws/lambda/function.provider.js.map +1 -1
  99. package/lib/aws/lambda/index.d.ts +1 -0
  100. package/lib/aws/lambda/index.d.ts.map +1 -1
  101. package/lib/aws/lambda/index.js +1 -0
  102. package/lib/aws/lambda/index.js.map +1 -1
  103. package/lib/aws/lambda/serve.d.ts +2 -4
  104. package/lib/aws/lambda/serve.d.ts.map +1 -1
  105. package/lib/aws/profile.d.ts +2 -2
  106. package/lib/aws/profile.d.ts.map +1 -1
  107. package/lib/aws/profile.js +1 -1
  108. package/lib/aws/profile.js.map +1 -1
  109. package/lib/aws/region.d.ts +14 -2
  110. package/lib/aws/region.d.ts.map +1 -1
  111. package/lib/aws/region.js +26 -1
  112. package/lib/aws/region.js.map +1 -1
  113. package/lib/aws/sqs/client.d.ts +1 -1
  114. package/lib/aws/sqs/client.d.ts.map +1 -1
  115. package/lib/aws/sqs/index.d.ts +1 -0
  116. package/lib/aws/sqs/index.d.ts.map +1 -1
  117. package/lib/aws/sqs/index.js +1 -0
  118. package/lib/aws/sqs/index.js.map +1 -1
  119. package/lib/aws/sqs/queue.consume.d.ts +1 -1
  120. package/lib/aws/sqs/queue.consume.d.ts.map +1 -1
  121. package/lib/aws/sqs/queue.consume.js +0 -1
  122. package/lib/aws/sqs/queue.consume.js.map +1 -1
  123. package/lib/aws/sqs/queue.d.ts +6 -4
  124. package/lib/aws/sqs/queue.d.ts.map +1 -1
  125. package/lib/aws/sqs/queue.event-source.d.ts +8 -6
  126. package/lib/aws/sqs/queue.event-source.d.ts.map +1 -1
  127. package/lib/aws/sqs/queue.event-source.js +26 -44
  128. package/lib/aws/sqs/queue.event-source.js.map +1 -1
  129. package/lib/aws/sqs/queue.js +1 -1
  130. package/lib/aws/sqs/queue.js.map +1 -1
  131. package/lib/aws/sqs/queue.provider.d.ts +4 -4
  132. package/lib/aws/sqs/queue.provider.d.ts.map +1 -1
  133. package/lib/aws/sqs/queue.provider.js +3 -3
  134. package/lib/aws/sqs/queue.provider.js.map +1 -1
  135. package/lib/aws/sqs/queue.send-message.d.ts +7 -5
  136. package/lib/aws/sqs/queue.send-message.d.ts.map +1 -1
  137. package/lib/aws/sqs/queue.send-message.js +4 -2
  138. package/lib/aws/sqs/queue.send-message.js.map +1 -1
  139. package/lib/binding.d.ts +12 -12
  140. package/lib/binding.d.ts.map +1 -1
  141. package/lib/binding.js.map +1 -1
  142. package/lib/cli/components/ApprovePlan.d.ts +2 -2
  143. package/lib/cli/components/ApprovePlan.d.ts.map +1 -1
  144. package/lib/cli/components/ApprovePlan.js.map +1 -1
  145. package/lib/cli/components/Plan.d.ts +2 -2
  146. package/lib/cli/components/Plan.d.ts.map +1 -1
  147. package/lib/cli/components/Plan.js.map +1 -1
  148. package/lib/cli/components/PlanProgress.d.ts +8 -4
  149. package/lib/cli/components/PlanProgress.d.ts.map +1 -1
  150. package/lib/cli/components/PlanProgress.js +11 -1
  151. package/lib/cli/components/PlanProgress.js.map +1 -1
  152. package/lib/cli/index.d.ts +265 -224
  153. package/lib/cli/index.d.ts.map +1 -1
  154. package/lib/cli/index.js +57 -65
  155. package/lib/cli/index.js.map +1 -1
  156. package/lib/cli/ink-service.d.ts +4 -0
  157. package/lib/cli/ink-service.d.ts.map +1 -0
  158. package/lib/cli/ink-service.js +43 -0
  159. package/lib/cli/ink-service.js.map +1 -0
  160. package/lib/cli/service.d.ts +21 -0
  161. package/lib/cli/service.d.ts.map +1 -0
  162. package/lib/cli/service.js +5 -0
  163. package/lib/cli/service.js.map +1 -0
  164. package/lib/cloudflare/account.d.ts +10 -0
  165. package/lib/cloudflare/account.d.ts.map +1 -0
  166. package/lib/cloudflare/account.js +24 -0
  167. package/lib/cloudflare/account.js.map +1 -0
  168. package/lib/cloudflare/api.d.ts +7 -7
  169. package/lib/cloudflare/api.d.ts.map +1 -1
  170. package/lib/cloudflare/api.js +18 -17
  171. package/lib/cloudflare/api.js.map +1 -1
  172. package/lib/cloudflare/config.d.ts +9 -0
  173. package/lib/cloudflare/config.d.ts.map +1 -0
  174. package/lib/cloudflare/config.js +1 -0
  175. package/lib/cloudflare/config.js.map +1 -0
  176. package/lib/cloudflare/index.d.ts +3 -1
  177. package/lib/cloudflare/index.d.ts.map +1 -1
  178. package/lib/cloudflare/index.js +3 -0
  179. package/lib/cloudflare/index.js.map +1 -1
  180. package/lib/cloudflare/kv/namespace.binding.d.ts +5 -3
  181. package/lib/cloudflare/kv/namespace.binding.d.ts.map +1 -1
  182. package/lib/cloudflare/kv/namespace.binding.js +1 -1
  183. package/lib/cloudflare/kv/namespace.binding.js.map +1 -1
  184. package/lib/cloudflare/kv/namespace.d.ts +3 -2
  185. package/lib/cloudflare/kv/namespace.d.ts.map +1 -1
  186. package/lib/cloudflare/kv/namespace.js.map +1 -1
  187. package/lib/cloudflare/kv/namespace.provider.d.ts +3 -2
  188. package/lib/cloudflare/kv/namespace.provider.d.ts.map +1 -1
  189. package/lib/cloudflare/kv/namespace.provider.js +8 -7
  190. package/lib/cloudflare/kv/namespace.provider.js.map +1 -1
  191. package/lib/cloudflare/live.d.ts +5 -5
  192. package/lib/cloudflare/live.d.ts.map +1 -1
  193. package/lib/cloudflare/live.js +5 -8
  194. package/lib/cloudflare/live.js.map +1 -1
  195. package/lib/cloudflare/r2/bucket.binding.d.ts +5 -3
  196. package/lib/cloudflare/r2/bucket.binding.d.ts.map +1 -1
  197. package/lib/cloudflare/r2/bucket.binding.js +1 -1
  198. package/lib/cloudflare/r2/bucket.binding.js.map +1 -1
  199. package/lib/cloudflare/r2/bucket.d.ts +3 -2
  200. package/lib/cloudflare/r2/bucket.d.ts.map +1 -1
  201. package/lib/cloudflare/r2/bucket.js.map +1 -1
  202. package/lib/cloudflare/r2/bucket.provider.d.ts +3 -2
  203. package/lib/cloudflare/r2/bucket.provider.d.ts.map +1 -1
  204. package/lib/cloudflare/r2/bucket.provider.js +8 -7
  205. package/lib/cloudflare/r2/bucket.provider.js.map +1 -1
  206. package/lib/cloudflare/worker/assets.fetch.d.ts +3 -2
  207. package/lib/cloudflare/worker/assets.fetch.d.ts.map +1 -1
  208. package/lib/cloudflare/worker/assets.fetch.js +2 -1
  209. package/lib/cloudflare/worker/assets.fetch.js.map +1 -1
  210. package/lib/cloudflare/worker/assets.provider.d.ts +1 -1
  211. package/lib/cloudflare/worker/assets.provider.d.ts.map +1 -1
  212. package/lib/cloudflare/worker/index.d.ts +0 -1
  213. package/lib/cloudflare/worker/index.d.ts.map +1 -1
  214. package/lib/cloudflare/worker/worker.d.ts +5 -6
  215. package/lib/cloudflare/worker/worker.d.ts.map +1 -1
  216. package/lib/cloudflare/worker/worker.handler.d.ts +1 -1
  217. package/lib/cloudflare/worker/worker.handler.d.ts.map +1 -1
  218. package/lib/cloudflare/worker/worker.handler.js.map +1 -1
  219. package/lib/cloudflare/worker/worker.js.map +1 -1
  220. package/lib/cloudflare/worker/worker.provider.d.ts +3 -2
  221. package/lib/cloudflare/worker/worker.provider.d.ts.map +1 -1
  222. package/lib/cloudflare/worker/worker.provider.js +7 -6
  223. package/lib/cloudflare/worker/worker.provider.js.map +1 -1
  224. package/lib/cloudflare/worker/worker.serve.d.ts +7 -7
  225. package/lib/cloudflare/worker/worker.serve.d.ts.map +1 -1
  226. package/lib/cloudflare/worker/worker.serve.js.map +1 -1
  227. package/lib/data.d.ts +3 -0
  228. package/lib/data.d.ts.map +1 -0
  229. package/lib/data.js +8 -0
  230. package/lib/data.js.map +1 -0
  231. package/lib/destroy.d.ts +1 -1
  232. package/lib/destroy.d.ts.map +1 -1
  233. package/lib/destroy.js +1 -4
  234. package/lib/destroy.js.map +1 -1
  235. package/lib/diff.d.ts +16 -0
  236. package/lib/diff.d.ts.map +1 -0
  237. package/lib/diff.js +9 -0
  238. package/lib/diff.js.map +1 -0
  239. package/lib/env.d.ts +5 -0
  240. package/lib/env.d.ts.map +1 -1
  241. package/lib/env.js +15 -29
  242. package/lib/env.js.map +1 -1
  243. package/lib/exports.d.ts +9 -0
  244. package/lib/exports.d.ts.map +1 -0
  245. package/lib/exports.js +13 -0
  246. package/lib/exports.js.map +1 -0
  247. package/lib/index.d.ts +10 -2
  248. package/lib/index.d.ts.map +1 -1
  249. package/lib/index.js +10 -5
  250. package/lib/index.js.map +1 -1
  251. package/lib/input.d.ts +32 -0
  252. package/lib/input.d.ts.map +1 -0
  253. package/lib/input.js +1 -0
  254. package/lib/input.js.map +1 -0
  255. package/lib/output.d.ts +143 -0
  256. package/lib/output.d.ts.map +1 -0
  257. package/lib/output.js +269 -0
  258. package/lib/output.js.map +1 -0
  259. package/lib/plan.d.ts +47 -28
  260. package/lib/plan.d.ts.map +1 -1
  261. package/lib/plan.js +257 -151
  262. package/lib/plan.js.map +1 -1
  263. package/lib/policy.d.ts +3 -4
  264. package/lib/policy.d.ts.map +1 -1
  265. package/lib/policy.js +0 -1
  266. package/lib/policy.js.map +1 -1
  267. package/lib/provider.d.ts +14 -16
  268. package/lib/provider.d.ts.map +1 -1
  269. package/lib/ref.d.ts +14 -0
  270. package/lib/ref.d.ts.map +1 -0
  271. package/lib/ref.js +21 -0
  272. package/lib/ref.js.map +1 -0
  273. package/lib/resource.d.ts +11 -6
  274. package/lib/resource.d.ts.map +1 -1
  275. package/lib/resource.js.map +1 -1
  276. package/lib/runtime.d.ts +7 -6
  277. package/lib/runtime.d.ts.map +1 -1
  278. package/lib/runtime.js.map +1 -1
  279. package/lib/service.d.ts +9 -6
  280. package/lib/service.d.ts.map +1 -1
  281. package/lib/service.js.map +1 -1
  282. package/lib/stack.d.ts +60 -0
  283. package/lib/stack.d.ts.map +1 -0
  284. package/lib/stack.js +11 -0
  285. package/lib/stack.js.map +1 -0
  286. package/lib/stage.d.ts +39 -0
  287. package/lib/stage.d.ts.map +1 -0
  288. package/lib/stage.js +32 -0
  289. package/lib/stage.js.map +1 -0
  290. package/lib/state.d.ts +51 -10
  291. package/lib/state.d.ts.map +1 -1
  292. package/lib/state.js +30 -29
  293. package/lib/state.js.map +1 -1
  294. package/lib/test.d.ts +25 -4
  295. package/lib/test.d.ts.map +1 -1
  296. package/lib/test.js +54 -14
  297. package/lib/test.js.map +1 -1
  298. package/lib/tsconfig.test.tsbuildinfo +1 -1
  299. package/lib/type.d.ts +3 -0
  300. package/lib/type.d.ts.map +1 -1
  301. package/lib/unknown.d.ts +4 -0
  302. package/lib/unknown.d.ts.map +1 -0
  303. package/lib/unknown.js +4 -0
  304. package/lib/unknown.js.map +1 -0
  305. package/lib/user.d.ts +3 -0
  306. package/lib/user.d.ts.map +1 -0
  307. package/lib/user.js +3 -0
  308. package/lib/user.js.map +1 -0
  309. package/lib/util.d.ts +6 -0
  310. package/lib/util.d.ts.map +1 -0
  311. package/lib/util.js +9 -0
  312. package/lib/util.js.map +1 -0
  313. package/package.json +18 -12
  314. package/src/$.ts +17 -0
  315. package/src/app.ts +3 -32
  316. package/src/apply.ts +429 -441
  317. package/src/assert-never.ts +18 -0
  318. package/src/aws/account.ts +23 -3
  319. package/src/aws/client.ts +0 -1
  320. package/src/aws/config.ts +16 -0
  321. package/src/aws/credentials.ts +212 -177
  322. package/src/aws/dynamodb/index.ts +3 -3
  323. package/src/aws/dynamodb/table.get-item.ts +5 -9
  324. package/src/aws/dynamodb/table.provider.ts +35 -39
  325. package/src/aws/dynamodb/table.ts +29 -84
  326. package/src/aws/ec2/index.ts +4 -0
  327. package/src/aws/ec2/subnet.provider.ts +358 -0
  328. package/src/aws/ec2/subnet.ts +213 -0
  329. package/src/aws/ec2/vpc.provider.ts +20 -36
  330. package/src/aws/ec2/vpc.ts +19 -8
  331. package/src/aws/index.ts +46 -40
  332. package/src/aws/lambda/consume.ts +8 -7
  333. package/src/aws/lambda/function.handler.ts +1 -1
  334. package/src/aws/lambda/function.invoke.ts +6 -2
  335. package/src/aws/lambda/function.provider.ts +28 -21
  336. package/src/aws/lambda/function.ts +7 -4
  337. package/src/aws/lambda/index.ts +2 -0
  338. package/src/aws/profile.ts +1 -4
  339. package/src/aws/region.ts +42 -3
  340. package/src/aws/sqs/index.ts +2 -0
  341. package/src/aws/sqs/queue.consume.ts +1 -1
  342. package/src/aws/sqs/queue.event-source.ts +29 -55
  343. package/src/aws/sqs/queue.provider.ts +11 -4
  344. package/src/aws/sqs/queue.send-message.ts +5 -8
  345. package/src/aws/sqs/queue.ts +9 -4
  346. package/src/binding.ts +19 -19
  347. package/src/cli/components/ApprovePlan.tsx +2 -2
  348. package/src/cli/components/Plan.tsx +3 -2
  349. package/src/cli/components/PlanProgress.tsx +32 -14
  350. package/src/cli/index.ts +2 -6
  351. package/src/cli/ink-service.tsx +61 -0
  352. package/src/cli/service.ts +23 -0
  353. package/src/cloudflare/account.ts +37 -0
  354. package/src/cloudflare/api.ts +33 -29
  355. package/src/cloudflare/config.ts +7 -0
  356. package/src/cloudflare/index.ts +3 -1
  357. package/src/cloudflare/kv/namespace.binding.ts +3 -1
  358. package/src/cloudflare/kv/namespace.provider.ts +9 -8
  359. package/src/cloudflare/kv/namespace.ts +3 -2
  360. package/src/cloudflare/live.ts +11 -17
  361. package/src/cloudflare/r2/bucket.binding.ts +3 -1
  362. package/src/cloudflare/r2/bucket.provider.ts +9 -8
  363. package/src/cloudflare/r2/bucket.ts +8 -2
  364. package/src/cloudflare/worker/assets.fetch.ts +3 -1
  365. package/src/cloudflare/worker/assets.provider.ts +1 -1
  366. package/src/cloudflare/worker/index.ts +0 -2
  367. package/src/cloudflare/worker/worker.handler.ts +1 -1
  368. package/src/cloudflare/worker/worker.provider.ts +16 -13
  369. package/src/cloudflare/worker/worker.serve.ts +5 -2
  370. package/src/cloudflare/worker/worker.ts +4 -3
  371. package/src/data.ts +18 -0
  372. package/src/destroy.ts +1 -5
  373. package/src/diff.ts +30 -0
  374. package/src/env.ts +20 -32
  375. package/src/exports.ts +21 -0
  376. package/src/index.ts +10 -5
  377. package/src/input.ts +81 -0
  378. package/src/output.ts +518 -0
  379. package/src/plan.ts +380 -192
  380. package/src/policy.ts +3 -5
  381. package/src/provider.ts +25 -23
  382. package/src/ref.ts +48 -0
  383. package/src/resource.ts +20 -6
  384. package/src/runtime.ts +15 -8
  385. package/src/service.ts +11 -7
  386. package/src/stack.ts +116 -0
  387. package/src/stage.ts +85 -0
  388. package/src/state.ts +138 -60
  389. package/src/test.ts +117 -16
  390. package/src/type.ts +4 -0
  391. package/src/unknown.ts +6 -0
  392. package/src/user.ts +4 -0
  393. package/src/util.ts +21 -0
  394. package/lib/approve.d.ts +0 -15
  395. package/lib/approve.d.ts.map +0 -1
  396. package/lib/approve.js +0 -7
  397. package/lib/approve.js.map +0 -1
  398. package/lib/cli/approve.d.ts +0 -4
  399. package/lib/cli/approve.d.ts.map +0 -1
  400. package/lib/cli/approve.js +0 -18
  401. package/lib/cli/approve.js.map +0 -1
  402. package/lib/cli/clack.d.ts +0 -14
  403. package/lib/cli/clack.d.ts.map +0 -1
  404. package/lib/cli/clack.js +0 -12
  405. package/lib/cli/clack.js.map +0 -1
  406. package/lib/cli/main.d.ts +0 -2
  407. package/lib/cli/main.d.ts.map +0 -1
  408. package/lib/cli/main.js +0 -1
  409. package/lib/cli/main.js.map +0 -1
  410. package/lib/cli/plan.d.ts +0 -13
  411. package/lib/cli/plan.d.ts.map +0 -1
  412. package/lib/cli/plan.js +0 -1
  413. package/lib/cli/plan.js.map +0 -1
  414. package/lib/cli/progress.d.ts +0 -7
  415. package/lib/cli/progress.d.ts.map +0 -1
  416. package/lib/cli/progress.js +0 -30
  417. package/lib/cli/progress.js.map +0 -1
  418. package/lib/cli/spinner.d.ts +0 -2
  419. package/lib/cli/spinner.d.ts.map +0 -1
  420. package/lib/cli/spinner.js +0 -13
  421. package/lib/cli/spinner.js.map +0 -1
  422. package/src/approve.ts +0 -13
  423. package/src/cli/approve.tsx +0 -30
  424. package/src/cli/clack.ts +0 -22
  425. package/src/cli/main.ts +0 -0
  426. package/src/cli/plan.ts +0 -16
  427. package/src/cli/progress.tsx +0 -46
  428. package/src/cli/spinner.ts +0 -14
@@ -1,22 +1,15 @@
1
- import * as Data from "effect/Data";
2
1
  import * as Effect from "effect/Effect";
3
2
  import * as Layer from "effect/Layer";
4
3
  import * as Schedule from "effect/Schedule";
5
- import { App } from "alchemy-effect";
4
+ import { App } from "../../app.js";
6
5
  import { createTagger, hasTags } from "../../tags.js";
7
- import { Account } from "../account.js";
8
- import { Region } from "../region.js";
9
6
  import { isScalarAttributeType, toAttributeType } from "./attribute-value.js";
10
7
  import { DynamoDBClient } from "./client.js";
11
8
  import { Table, } from "./table.js";
12
9
  // we add an explict type to simplify the Layer type errors because the Table interface has a lot of type args
13
- export const tableProvider = () => Table.provider.effect(
14
- // @ts-expect-error
15
- Effect.gen(function* () {
10
+ export const tableProvider = () => Table.provider.effect(Effect.gen(function* () {
16
11
  const dynamodb = yield* DynamoDBClient;
17
12
  const app = yield* App;
18
- const region = yield* Region;
19
- const accountId = yield* Account;
20
13
  const createTableName = (id, props) => props.tableName ?? `${app.name}-${id}-${app.stage}`;
21
14
  const tagged = yield* createTagger();
22
15
  const toKeySchema = (props) => [
@@ -33,7 +26,7 @@ Effect.gen(function* () {
33
26
  ]
34
27
  : []),
35
28
  ];
36
- const toAttributeDefinitions = (props) => Object.entries(props.attributes)
29
+ const toAttributeDefinitions = (attributes) => Object.entries(attributes)
37
30
  .flatMap(([name, schema]) => {
38
31
  const type = toAttributeType(schema);
39
32
  if (isScalarAttributeType(type)) {
@@ -50,12 +43,13 @@ Effect.gen(function* () {
50
43
  }
51
44
  })
52
45
  .sort((a, b) => a.AttributeName.localeCompare(b.AttributeName));
53
- const toAttributeDefinitionsMap = (props) => Object.fromEntries(toAttributeDefinitions(props).map((def) => [def.AttributeName, def.AttributeType]));
46
+ const toAttributeDefinitionsMap = (attributes) => Object.fromEntries(toAttributeDefinitions(attributes).map((def) => [def.AttributeName, def.AttributeType]));
54
47
  const resolveTableIfOwned = (id, tableName) =>
55
48
  // if it already exists, let's see if it contains tags indicating we (this app+stage) owns it
56
49
  // that would indicate we are in a partial state and can safely take control
57
50
  dynamodb.describeTable({ TableName: tableName }).pipe(Effect.flatMap((r) => dynamodb
58
51
  .listTagsOfResource({
52
+ // oxlint-disable-next-line no-non-null-asserted-optional-chain
59
53
  ResourceArn: r.Table?.TableArn,
60
54
  })
61
55
  .pipe(Effect.map((tags) => [r, tags.Tags]), Effect.flatMap(([r, tags]) => {
@@ -74,29 +68,25 @@ Effect.gen(function* () {
74
68
  schedule: Schedule.exponential(100),
75
69
  }));
76
70
  return {
77
- diff: Effect.fn(function* ({ id, news, olds }) {
78
- const oldTableName = createTableName(id, olds);
79
- const newTableName = createTableName(id, news);
80
- if (oldTableName !== newTableName) {
81
- // TODO(sam): if the name is hard-coded, REPLACE is impossible - we need a suffix
82
- return { action: "replace" };
83
- }
84
- if (olds.partitionKey !== news.partitionKey ||
71
+ diff: Effect.fn(function* ({ news, olds }) {
72
+ if (
73
+ // TODO(sam): if the name is hard-coded, REPLACE is impossible - we need a suffix
74
+ news.tableName !== olds.tableName ||
75
+ olds.partitionKey !== news.partitionKey ||
85
76
  olds.sortKey !== news.sortKey) {
86
77
  return { action: "replace" };
87
78
  }
88
- const oldAttributeDefinitions = toAttributeDefinitionsMap(olds);
89
- const newAttributeDefinitions = toAttributeDefinitionsMap(news);
90
- for (const [name, type] of Object.entries(oldAttributeDefinitions)) {
79
+ const oldAttrs = toAttributeDefinitionsMap(olds.attributes);
80
+ const newAttrs = toAttributeDefinitionsMap(news.attributes);
81
+ for (const [name, type] of Object.entries(oldAttrs)) {
91
82
  // CloudFormation requires that editing an existing AttributeDefinition is a replace
92
- if (newAttributeDefinitions[name] !== type) {
83
+ if (newAttrs[name] !== type) {
93
84
  return { action: "replace" };
94
85
  }
95
86
  }
96
87
  // TODO(sam):
97
88
  // Replacements:
98
89
  // 1. if you change ImportSourceSpecification
99
- return { action: "noop" };
100
90
  }),
101
91
  create: Effect.fn(function* ({ id, news, session }) {
102
92
  const tableName = createTableName(id, news);
@@ -105,7 +95,7 @@ Effect.gen(function* () {
105
95
  TableName: tableName,
106
96
  TableClass: news.tableClass,
107
97
  KeySchema: toKeySchema(news),
108
- AttributeDefinitions: toAttributeDefinitions(news),
98
+ AttributeDefinitions: toAttributeDefinitions(news.attributes),
109
99
  BillingMode: news.billingMode ?? "PAY_PER_REQUEST",
110
100
  SSESpecification: news.sseSpecification,
111
101
  WarmThroughput: news.warmThroughput,
@@ -143,7 +133,7 @@ Effect.gen(function* () {
143
133
  yield* dynamodb.updateTable({
144
134
  TableName: output.tableName,
145
135
  TableClass: news.tableClass,
146
- AttributeDefinitions: toAttributeDefinitions(news),
136
+ AttributeDefinitions: toAttributeDefinitions(news.attributes),
147
137
  BillingMode: news.billingMode ?? "PAY_PER_REQUEST",
148
138
  SSESpecification: news.sseSpecification,
149
139
  WarmThroughput: news.warmThroughput,
@@ -179,10 +169,8 @@ Effect.gen(function* () {
179
169
  while: (e) => e._tag === "ResourceInUseException" ||
180
170
  e._tag === "InternalServerError" ||
181
171
  e._tag === "TimeoutException",
182
- schedule: Schedule.fixed(100),
172
+ schedule: Schedule.exponential(100),
183
173
  }));
184
- class TableStillExists extends Data.TaggedError("TableStillExists") {
185
- }
186
174
  while (true) {
187
175
  const table = yield* dynamodb
188
176
  .describeTable({
@@ -1 +1 @@
1
- {"version":3,"file":"table.provider.js","sourceRoot":"","sources":["../../../src/aws/dynamodb/table.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table.provider.js","sourceRoot":"","sources":["../../../src/aws/dynamodb/table.provider.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,6 @@ declare const EC2Client_base: Context.TagClass<EC2Client, "AWS.EC2.Client", EC2>
7
7
  export declare class EC2Client extends EC2Client_base {
8
8
  }
9
9
  export declare const client: () => Layer.Layer<EC2Client, never, Credentials.Credentials | Region.Region>;
10
- export declare const clientFromEnv: () => Layer.Layer<EC2Client, Region.EnvironmentVariableNotSet, never>;
10
+ export declare const clientFromEnv: () => Layer.Layer<EC2Client, Region.EnvironmentVariableNotSet | import("effect/ConfigError").ConfigError, never>;
11
11
  export {};
12
12
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;;AAEvC,qBAAa,SAAU,SAAQ,cAG5B;CAAG;AAEN,eAAO,MAAM,MAAM,8EAGlB,CAAC;AAEF,eAAO,MAAM,aAAa,uEACqD,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;;AAEvC,qBAAa,SAAU,SAAQ,cAG5B;CAAG;AAEN,eAAO,MAAM,MAAM,8EAGlB,CAAC;AAEF,eAAO,MAAM,aAAa,kHACqD,CAAC"}
@@ -1,4 +1,7 @@
1
1
  export * from "./client.ts";
2
+ export * from "./subnet.provider.ts";
3
+ export * from "./subnet.ts";
2
4
  export * from "./vpc.provider.ts";
3
5
  export * from "./vpc.ts";
6
+ import "../config.ts";
4
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AAEzB,OAAO,cAAc,CAAC"}
@@ -1,4 +1,7 @@
1
1
  export * from "./client.js";
2
+ export * from "./subnet.provider.js";
3
+ export * from "./subnet.js";
2
4
  export * from "./vpc.provider.js";
3
5
  export * from "./vpc.js";
6
+ import "../config.js";
4
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/aws/ec2/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/aws/ec2/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AAEzB,OAAO,cAAc,CAAC"}
@@ -0,0 +1,175 @@
1
+ import type * as EC2 from "itty-aws/ec2";
2
+ import type { Input } from "../../input.ts";
3
+ import { Resource } from "../../resource.ts";
4
+ import type { AccountID } from "../account.ts";
5
+ import type { RegionID } from "../region.ts";
6
+ import type { VpcId } from "./vpc.ts";
7
+ export declare const Subnet: (<const ID extends string, const Props extends SubnetProps>(id: ID, props: Props) => Subnet<ID, Props>) & {
8
+ new (): Subnet<string, SubnetProps> & {
9
+ parent: Subnet<string, SubnetProps>;
10
+ };
11
+ type: "AWS.EC2.Subnet";
12
+ parent: Subnet<string, SubnetProps>;
13
+ provider: import("../../resource.ts").ResourceTags<Subnet<string, SubnetProps>>;
14
+ } & {
15
+ type: "AWS.EC2.Subnet";
16
+ provider: import("../../resource.ts").ResourceTags<Subnet<string, SubnetProps>>;
17
+ };
18
+ export interface Subnet<ID extends string = string, Props extends SubnetProps = SubnetProps> extends Resource<"AWS.EC2.Subnet", ID, Props, SubnetAttrs<Input.Resolve<Props>>, Subnet> {
19
+ }
20
+ export interface SubnetProps {
21
+ /**
22
+ * The VPC to create the subnet in.
23
+ */
24
+ vpcId: Input<VpcId>;
25
+ /**
26
+ * The IPv4 network range for the subnet, in CIDR notation.
27
+ * Required unless using IPAM.
28
+ * @example "10.0.1.0/24"
29
+ */
30
+ cidrBlock?: string;
31
+ /**
32
+ * The IPv6 network range for the subnet, in CIDR notation.
33
+ */
34
+ ipv6CidrBlock?: string;
35
+ /**
36
+ * The Availability Zone for the subnet.
37
+ * @example "us-east-1a"
38
+ */
39
+ availabilityZone?: string;
40
+ /**
41
+ * The ID of the Availability Zone for the subnet.
42
+ */
43
+ availabilityZoneId?: string;
44
+ /**
45
+ * The ID of an IPv4 IPAM pool you want to use for allocating this subnet's CIDR.
46
+ */
47
+ ipv4IpamPoolId?: string;
48
+ /**
49
+ * The netmask length of the IPv4 CIDR you want to allocate to this subnet from an IPAM pool.
50
+ */
51
+ ipv4NetmaskLength?: number;
52
+ /**
53
+ * The ID of an IPv6 IPAM pool which will be used to allocate this subnet an IPv6 CIDR.
54
+ */
55
+ ipv6IpamPoolId?: Input<string>;
56
+ /**
57
+ * The netmask length of the IPv6 CIDR you want to allocate to this subnet from an IPAM pool.
58
+ */
59
+ ipv6NetmaskLength?: number;
60
+ /**
61
+ * Whether instances launched in the subnet get public IPv4 addresses.
62
+ * @default false
63
+ */
64
+ mapPublicIpOnLaunch?: boolean;
65
+ /**
66
+ * Whether instances launched in the subnet get IPv6 addresses.
67
+ * @default false
68
+ */
69
+ assignIpv6AddressOnCreation?: boolean;
70
+ /**
71
+ * Whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return
72
+ * synthetic IPv6 addresses for IPv4-only destinations.
73
+ * @default false
74
+ */
75
+ enableDns64?: boolean;
76
+ /**
77
+ * Whether to enable resource name DNS A record on launch.
78
+ * @default false
79
+ */
80
+ enableResourceNameDnsARecordOnLaunch?: boolean;
81
+ /**
82
+ * Whether to enable resource name DNS AAAA record on launch.
83
+ * @default false
84
+ */
85
+ enableResourceNameDnsAAAARecordOnLaunch?: boolean;
86
+ /**
87
+ * The hostname type for EC2 instances launched into this subnet.
88
+ */
89
+ hostnameType?: EC2.HostnameType;
90
+ /**
91
+ * Tags to assign to the subnet.
92
+ * These will be merged with alchemy auto-tags (alchemy::app, alchemy::stage, alchemy::id).
93
+ */
94
+ tags?: Record<string, Input<string>>;
95
+ }
96
+ export type SubnetId<ID extends string = string> = `subnet-${ID}`;
97
+ export declare const SubnetId: <ID extends string>(id: ID) => ID & SubnetId<ID>;
98
+ export interface SubnetAttrs<Props extends SubnetProps> {
99
+ /**
100
+ * The ID of the VPC the subnet is in.
101
+ */
102
+ vpcId: Props["vpcId"];
103
+ /**
104
+ * The ID of the subnet.
105
+ */
106
+ subnetId: SubnetId;
107
+ /**
108
+ * The Amazon Resource Name (ARN) of the subnet.
109
+ */
110
+ subnetArn: `arn:aws:ec2:${RegionID}:${AccountID}:subnet/${this["subnetId"]}`;
111
+ /**
112
+ * The IPv4 CIDR block for the subnet.
113
+ */
114
+ cidrBlock: string;
115
+ /**
116
+ * The Availability Zone of the subnet.
117
+ */
118
+ availabilityZone: string;
119
+ /**
120
+ * The ID of the Availability Zone of the subnet.
121
+ */
122
+ availabilityZoneId?: string;
123
+ /**
124
+ * The current state of the subnet.
125
+ */
126
+ state: EC2.SubnetState;
127
+ /**
128
+ * The number of available IPv4 addresses in the subnet.
129
+ */
130
+ availableIpAddressCount: number;
131
+ /**
132
+ * Whether instances launched in the subnet get public IPv4 addresses.
133
+ */
134
+ mapPublicIpOnLaunch: boolean;
135
+ /**
136
+ * Whether instances launched in the subnet get IPv6 addresses.
137
+ */
138
+ assignIpv6AddressOnCreation: Props["assignIpv6AddressOnCreation"];
139
+ /**
140
+ * Whether the subnet is the default subnet for the Availability Zone.
141
+ */
142
+ defaultForAz: boolean;
143
+ /**
144
+ * The ID of the AWS account that owns the subnet.
145
+ */
146
+ ownerId?: string;
147
+ /**
148
+ * Information about the IPv6 CIDR blocks associated with the subnet.
149
+ */
150
+ ipv6CidrBlockAssociationSet?: Array<{
151
+ associationId: string;
152
+ ipv6CidrBlock: string;
153
+ ipv6CidrBlockState: {
154
+ state: EC2.SubnetCidrBlockStateCode;
155
+ statusMessage?: string;
156
+ };
157
+ }>;
158
+ /**
159
+ * Whether DNS64 is enabled for the subnet.
160
+ */
161
+ enableDns64?: boolean;
162
+ /**
163
+ * Whether this is an IPv6-only subnet.
164
+ */
165
+ ipv6Native?: boolean;
166
+ /**
167
+ * The private DNS name options on launch.
168
+ */
169
+ privateDnsNameOptionsOnLaunch?: {
170
+ hostnameType?: EC2.HostnameType;
171
+ enableResourceNameDnsARecord?: boolean;
172
+ enableResourceNameDnsAAAARecord?: boolean;
173
+ };
174
+ }
175
+ //# sourceMappingURL=subnet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subnet.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/subnet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Resource } from "../../resource.js";
2
+ export const Subnet = Resource("AWS.EC2.Subnet");
3
+ export const SubnetId = (id) => `subnet-${id}`;
4
+ //# sourceMappingURL=subnet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subnet.js","sourceRoot":"","sources":["../../../src/aws/ec2/subnet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAK7C,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAK3B,gBAAgB,CAAC,CAAC;AA0GrB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAoB,EAAM,EAAqB,EAAE,CACvE,UAAU,EAAE,EAAuB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { EC2Client } from "./client.ts";
2
+ import { Subnet, type SubnetProps } from "./subnet.ts";
3
+ export declare const subnetProvider: () => import("effect/Layer").Layer<import("../../provider.ts").Provider<Subnet<string, SubnetProps>>, never, import("../../app.ts").App | EC2Client>;
4
+ //# sourceMappingURL=subnet.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subnet.provider.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/subnet.provider.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,MAAM,EAEN,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,cAAc,sJAkQxB,CAAC"}
@@ -0,0 +1,250 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Schedule from "effect/Schedule";
3
+ import { somePropsAreDifferent } from "../../diff.js";
4
+ import { createTagger, createTagsList } from "../../tags.js";
5
+ import { EC2Client } from "./client.js";
6
+ import { Subnet, } from "./subnet.js";
7
+ export const subnetProvider = () => Subnet.provider.effect(Effect.gen(function* () {
8
+ const ec2 = yield* EC2Client;
9
+ const tagged = yield* createTagger();
10
+ return {
11
+ diff: Effect.fn(function* ({ news, olds }) {
12
+ if (somePropsAreDifferent(olds, news, [
13
+ "vpcId",
14
+ "cidrBlock",
15
+ "availabilityZone",
16
+ "availabilityZoneId",
17
+ "ipv6CidrBlock",
18
+ "ipv4IpamPoolId",
19
+ "ipv6IpamPoolId",
20
+ ])) {
21
+ return { action: "replace" };
22
+ }
23
+ }),
24
+ create: Effect.fn(function* ({ id, news, session }) {
25
+ // 1. Get VPC ID from the VPC resource
26
+ // TODO(sam): i need to make it possible to pass Resources as input Props to Resources
27
+ const vpcId = news.vpcId;
28
+ // 2. Prepare tags
29
+ const alchemyTags = tagged(id);
30
+ const userTags = news.tags ?? {};
31
+ const allTags = { ...alchemyTags, ...userTags };
32
+ // 3. Call CreateSubnet
33
+ const createResult = yield* ec2
34
+ .createSubnet({
35
+ VpcId: vpcId,
36
+ CidrBlock: news.cidrBlock,
37
+ Ipv6CidrBlock: news.ipv6CidrBlock,
38
+ AvailabilityZone: news.availabilityZone,
39
+ AvailabilityZoneId: news.availabilityZoneId,
40
+ Ipv4IpamPoolId: news.ipv4IpamPoolId,
41
+ Ipv4NetmaskLength: news.ipv4NetmaskLength,
42
+ Ipv6IpamPoolId: news.ipv6IpamPoolId,
43
+ Ipv6NetmaskLength: news.ipv6NetmaskLength,
44
+ Ipv6Native: false, // Explicitly set to false for now
45
+ TagSpecifications: [
46
+ {
47
+ ResourceType: "subnet",
48
+ Tags: createTagsList(allTags),
49
+ },
50
+ ],
51
+ DryRun: false,
52
+ })
53
+ .pipe(Effect.retry({
54
+ // @ts-expect-error - this is unknown to itty-aws
55
+ while: (e) => e._tag === "InvalidVpcID.NotFound",
56
+ schedule: Schedule.exponential(100),
57
+ }));
58
+ const subnetId = createResult.Subnet.SubnetId;
59
+ yield* session.note(`Subnet created: ${subnetId}`);
60
+ // 4. Modify subnet attributes if specified
61
+ if (news.mapPublicIpOnLaunch !== undefined) {
62
+ yield* ec2.modifySubnetAttribute({
63
+ SubnetId: subnetId,
64
+ MapPublicIpOnLaunch: { Value: news.mapPublicIpOnLaunch },
65
+ });
66
+ }
67
+ if (news.assignIpv6AddressOnCreation !== undefined) {
68
+ yield* ec2.modifySubnetAttribute({
69
+ SubnetId: subnetId,
70
+ AssignIpv6AddressOnCreation: {
71
+ Value: news.assignIpv6AddressOnCreation,
72
+ },
73
+ });
74
+ }
75
+ if (news.enableDns64 !== undefined) {
76
+ yield* ec2.modifySubnetAttribute({
77
+ SubnetId: subnetId,
78
+ EnableDns64: { Value: news.enableDns64 },
79
+ });
80
+ }
81
+ if (news.enableResourceNameDnsARecordOnLaunch !== undefined ||
82
+ news.enableResourceNameDnsAAAARecordOnLaunch !== undefined ||
83
+ news.hostnameType !== undefined) {
84
+ yield* ec2.modifySubnetAttribute({
85
+ SubnetId: subnetId,
86
+ PrivateDnsHostnameTypeOnLaunch: news.hostnameType,
87
+ EnableResourceNameDnsARecordOnLaunch: news.enableResourceNameDnsARecordOnLaunch !== undefined
88
+ ? { Value: news.enableResourceNameDnsARecordOnLaunch }
89
+ : undefined,
90
+ EnableResourceNameDnsAAAARecordOnLaunch: news.enableResourceNameDnsAAAARecordOnLaunch !== undefined
91
+ ? { Value: news.enableResourceNameDnsAAAARecordOnLaunch }
92
+ : undefined,
93
+ });
94
+ }
95
+ // 5. Wait for subnet to be available
96
+ const subnet = yield* waitForSubnetAvailable(ec2, subnetId, session);
97
+ // 6. Return attributes
98
+ return {
99
+ subnetId,
100
+ subnetArn: subnet.SubnetArn,
101
+ cidrBlock: subnet.CidrBlock,
102
+ vpcId: news.vpcId,
103
+ availabilityZone: subnet.AvailabilityZone,
104
+ availabilityZoneId: subnet.AvailabilityZoneId,
105
+ state: subnet.State,
106
+ availableIpAddressCount: subnet.AvailableIpAddressCount ?? 0,
107
+ mapPublicIpOnLaunch: subnet.MapPublicIpOnLaunch ?? false,
108
+ assignIpv6AddressOnCreation: subnet.AssignIpv6AddressOnCreation ?? false,
109
+ defaultForAz: subnet.DefaultForAz ?? false,
110
+ ownerId: subnet.OwnerId,
111
+ ipv6CidrBlockAssociationSet: subnet.Ipv6CidrBlockAssociationSet?.map((assoc) => ({
112
+ associationId: assoc.AssociationId,
113
+ ipv6CidrBlock: assoc.Ipv6CidrBlock,
114
+ ipv6CidrBlockState: {
115
+ state: assoc.Ipv6CidrBlockState.State,
116
+ statusMessage: assoc.Ipv6CidrBlockState.StatusMessage,
117
+ },
118
+ })),
119
+ enableDns64: subnet.EnableDns64,
120
+ ipv6Native: subnet.Ipv6Native,
121
+ privateDnsNameOptionsOnLaunch: subnet.PrivateDnsNameOptionsOnLaunch
122
+ ? {
123
+ hostnameType: subnet.PrivateDnsNameOptionsOnLaunch.HostnameType,
124
+ enableResourceNameDnsARecord: subnet.PrivateDnsNameOptionsOnLaunch
125
+ .EnableResourceNameDnsARecord,
126
+ enableResourceNameDnsAAAARecord: subnet.PrivateDnsNameOptionsOnLaunch
127
+ .EnableResourceNameDnsAAAARecord,
128
+ }
129
+ : undefined,
130
+ };
131
+ }),
132
+ update: Effect.fn(function* ({ news, olds, output, session }) {
133
+ const subnetId = output.subnetId;
134
+ // Update MapPublicIpOnLaunch if changed
135
+ if (news.mapPublicIpOnLaunch !== olds.mapPublicIpOnLaunch) {
136
+ yield* ec2.modifySubnetAttribute({
137
+ SubnetId: subnetId,
138
+ MapPublicIpOnLaunch: { Value: news.mapPublicIpOnLaunch ?? false },
139
+ });
140
+ yield* session.note("Updated map public IP on launch");
141
+ }
142
+ // Update AssignIpv6AddressOnCreation if changed
143
+ if (news.assignIpv6AddressOnCreation !==
144
+ olds.assignIpv6AddressOnCreation) {
145
+ yield* ec2.modifySubnetAttribute({
146
+ SubnetId: subnetId,
147
+ AssignIpv6AddressOnCreation: {
148
+ Value: news.assignIpv6AddressOnCreation ?? false,
149
+ },
150
+ });
151
+ yield* session.note("Updated assign IPv6 address on creation");
152
+ }
153
+ // Update EnableDns64 if changed
154
+ if (news.enableDns64 !== olds.enableDns64) {
155
+ yield* ec2.modifySubnetAttribute({
156
+ SubnetId: subnetId,
157
+ EnableDns64: { Value: news.enableDns64 ?? false },
158
+ });
159
+ yield* session.note("Updated DNS64 setting");
160
+ }
161
+ // Update private DNS hostname settings if changed
162
+ if (news.enableResourceNameDnsARecordOnLaunch !==
163
+ olds.enableResourceNameDnsARecordOnLaunch ||
164
+ news.enableResourceNameDnsAAAARecordOnLaunch !==
165
+ olds.enableResourceNameDnsAAAARecordOnLaunch ||
166
+ news.hostnameType !== olds.hostnameType) {
167
+ yield* ec2.modifySubnetAttribute({
168
+ SubnetId: subnetId,
169
+ PrivateDnsHostnameTypeOnLaunch: news.hostnameType,
170
+ EnableResourceNameDnsARecordOnLaunch: news.enableResourceNameDnsARecordOnLaunch !== undefined
171
+ ? { Value: news.enableResourceNameDnsARecordOnLaunch }
172
+ : undefined,
173
+ EnableResourceNameDnsAAAARecordOnLaunch: news.enableResourceNameDnsAAAARecordOnLaunch !== undefined
174
+ ? { Value: news.enableResourceNameDnsAAAARecordOnLaunch }
175
+ : undefined,
176
+ });
177
+ yield* session.note("Updated private DNS hostname settings");
178
+ }
179
+ // Note: Tag updates would go here if we support user tag changes
180
+ return output; // Subnet attributes don't change from these updates
181
+ }),
182
+ delete: Effect.fn(function* ({ output, session }) {
183
+ const subnetId = output.subnetId;
184
+ yield* session.note(`Deleting subnet: ${subnetId}`);
185
+ // 1. Attempt to delete subnet
186
+ yield* ec2
187
+ .deleteSubnet({
188
+ SubnetId: subnetId,
189
+ DryRun: false,
190
+ })
191
+ .pipe(Effect.tapError(Effect.logDebug), Effect.catchTag("InvalidSubnetID.NotFound", () => Effect.void),
192
+ // Retry on dependency violations (resources still being deleted)
193
+ Effect.retry({
194
+ while: (e) => {
195
+ // DependencyViolation means there are still dependent resources
196
+ // This can happen if ENIs/instances are being deleted concurrently
197
+ return (e._tag === "ValidationError" &&
198
+ e.message?.includes("DependencyViolation"));
199
+ },
200
+ schedule: Schedule.exponential(1000, 1.5).pipe(Schedule.intersect(Schedule.recurs(10)), // Try up to 10 times
201
+ Schedule.tapOutput(([, attempt]) => session.note(`Waiting for dependencies to clear... (attempt ${attempt + 1})`))),
202
+ }));
203
+ // 2. Wait for subnet to be fully deleted
204
+ yield* waitForSubnetDeleted(ec2, subnetId, session);
205
+ yield* session.note(`Subnet ${subnetId} deleted successfully`);
206
+ }),
207
+ };
208
+ }));
209
+ /**
210
+ * Wait for subnet to be in available state
211
+ */
212
+ const waitForSubnetAvailable = (ec2, subnetId, session) => Effect.retry(Effect.gen(function* () {
213
+ const result = yield* ec2
214
+ .describeSubnets({ SubnetIds: [subnetId] })
215
+ .pipe(Effect.catchTag("InvalidSubnetID.NotFound", () => Effect.succeed({ Subnets: [] })));
216
+ const subnet = result.Subnets[0];
217
+ if (subnet.State === "available") {
218
+ return subnet;
219
+ }
220
+ // Still pending, fail to trigger retry
221
+ return yield* Effect.fail(new Error("Subnet not yet available"));
222
+ }), {
223
+ schedule: Schedule.fixed(2000).pipe(
224
+ // Check every 2 seconds
225
+ Schedule.intersect(Schedule.recurs(30)), // Max 60 seconds
226
+ Schedule.tapOutput(([, attempt]) => session
227
+ ? session.note(`Waiting for subnet to be available... (${(attempt + 1) * 2}s)`)
228
+ : Effect.void)),
229
+ });
230
+ /**
231
+ * Wait for subnet to be deleted
232
+ */
233
+ const waitForSubnetDeleted = (ec2, subnetId, session) => Effect.gen(function* () {
234
+ yield* Effect.retry(Effect.gen(function* () {
235
+ const result = yield* ec2
236
+ .describeSubnets({ SubnetIds: [subnetId] })
237
+ .pipe(Effect.tapError(Effect.logDebug), Effect.catchTag("InvalidSubnetID.NotFound", () => Effect.succeed({ Subnets: [] })));
238
+ if (!result.Subnets || result.Subnets.length === 0) {
239
+ return; // Successfully deleted
240
+ }
241
+ // Still exists, fail to trigger retry
242
+ return yield* Effect.fail(new Error("Subnet still exists"));
243
+ }), {
244
+ schedule: Schedule.fixed(2000).pipe(
245
+ // Check every 2 seconds
246
+ Schedule.intersect(Schedule.recurs(15)), // Max 30 seconds
247
+ Schedule.tapOutput(([, attempt]) => session.note(`Waiting for subnet deletion... (${(attempt + 1) * 2}s)`))),
248
+ });
249
+ });
250
+ //# sourceMappingURL=subnet.provider.js.map