alchemy-effect 0.2.0 → 0.4.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 (494) hide show
  1. package/bin/alchemy-effect.js +55354 -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 +15 -75
  13. package/lib/apply.d.ts.map +1 -1
  14. package/lib/apply.js +439 -154
  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 +18 -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 +11 -0
  57. package/lib/aws/ec2/index.d.ts.map +1 -1
  58. package/lib/aws/ec2/index.js +11 -0
  59. package/lib/aws/ec2/index.js.map +1 -1
  60. package/lib/aws/ec2/internet-gateway.d.ts +65 -0
  61. package/lib/aws/ec2/internet-gateway.d.ts.map +1 -0
  62. package/lib/aws/ec2/internet-gateway.js +4 -0
  63. package/lib/aws/ec2/internet-gateway.js.map +1 -0
  64. package/lib/aws/ec2/internet-gateway.provider.d.ts +6 -0
  65. package/lib/aws/ec2/internet-gateway.provider.d.ts.map +1 -0
  66. package/lib/aws/ec2/internet-gateway.provider.js +193 -0
  67. package/lib/aws/ec2/internet-gateway.provider.js.map +1 -0
  68. package/lib/aws/ec2/route-table-association.d.ts +63 -0
  69. package/lib/aws/ec2/route-table-association.d.ts.map +1 -0
  70. package/lib/aws/ec2/route-table-association.js +4 -0
  71. package/lib/aws/ec2/route-table-association.js.map +1 -0
  72. package/lib/aws/ec2/route-table-association.provider.d.ts +4 -0
  73. package/lib/aws/ec2/route-table-association.provider.d.ts.map +1 -0
  74. package/lib/aws/ec2/route-table-association.provider.js +121 -0
  75. package/lib/aws/ec2/route-table-association.provider.js.map +1 -0
  76. package/lib/aws/ec2/route-table.d.ts +159 -0
  77. package/lib/aws/ec2/route-table.d.ts.map +1 -0
  78. package/lib/aws/ec2/route-table.js +4 -0
  79. package/lib/aws/ec2/route-table.js.map +1 -0
  80. package/lib/aws/ec2/route-table.provider.d.ts +6 -0
  81. package/lib/aws/ec2/route-table.provider.d.ts.map +1 -0
  82. package/lib/aws/ec2/route-table.provider.js +213 -0
  83. package/lib/aws/ec2/route-table.provider.js.map +1 -0
  84. package/lib/aws/ec2/route.d.ts +155 -0
  85. package/lib/aws/ec2/route.d.ts.map +1 -0
  86. package/lib/aws/ec2/route.js +3 -0
  87. package/lib/aws/ec2/route.js.map +1 -0
  88. package/lib/aws/ec2/route.provider.d.ts +4 -0
  89. package/lib/aws/ec2/route.provider.d.ts.map +1 -0
  90. package/lib/aws/ec2/route.provider.js +166 -0
  91. package/lib/aws/ec2/route.provider.js.map +1 -0
  92. package/lib/aws/ec2/subnet.d.ts +175 -0
  93. package/lib/aws/ec2/subnet.d.ts.map +1 -0
  94. package/lib/aws/ec2/subnet.js +4 -0
  95. package/lib/aws/ec2/subnet.js.map +1 -0
  96. package/lib/aws/ec2/subnet.provider.d.ts +4 -0
  97. package/lib/aws/ec2/subnet.provider.d.ts.map +1 -0
  98. package/lib/aws/ec2/subnet.provider.js +250 -0
  99. package/lib/aws/ec2/subnet.provider.js.map +1 -0
  100. package/lib/aws/ec2/vpc.d.ts +13 -8
  101. package/lib/aws/ec2/vpc.d.ts.map +1 -1
  102. package/lib/aws/ec2/vpc.js +1 -0
  103. package/lib/aws/ec2/vpc.js.map +1 -1
  104. package/lib/aws/ec2/vpc.provider.d.ts +1 -2
  105. package/lib/aws/ec2/vpc.provider.d.ts.map +1 -1
  106. package/lib/aws/ec2/vpc.provider.js +45 -37
  107. package/lib/aws/ec2/vpc.provider.js.map +1 -1
  108. package/lib/aws/index.d.ts +15 -19
  109. package/lib/aws/index.d.ts.map +1 -1
  110. package/lib/aws/index.js +8 -10
  111. package/lib/aws/index.js.map +1 -1
  112. package/lib/aws/lambda/consume.d.ts +10 -11
  113. package/lib/aws/lambda/consume.d.ts.map +1 -1
  114. package/lib/aws/lambda/consume.js +3 -3
  115. package/lib/aws/lambda/consume.js.map +1 -1
  116. package/lib/aws/lambda/function.d.ts +7 -7
  117. package/lib/aws/lambda/function.d.ts.map +1 -1
  118. package/lib/aws/lambda/function.handler.d.ts +1 -1
  119. package/lib/aws/lambda/function.handler.d.ts.map +1 -1
  120. package/lib/aws/lambda/function.handler.js.map +1 -1
  121. package/lib/aws/lambda/function.invoke.d.ts +6 -4
  122. package/lib/aws/lambda/function.invoke.d.ts.map +1 -1
  123. package/lib/aws/lambda/function.invoke.js +3 -1
  124. package/lib/aws/lambda/function.invoke.js.map +1 -1
  125. package/lib/aws/lambda/function.js +1 -1
  126. package/lib/aws/lambda/function.js.map +1 -1
  127. package/lib/aws/lambda/function.provider.d.ts +3 -2
  128. package/lib/aws/lambda/function.provider.d.ts.map +1 -1
  129. package/lib/aws/lambda/function.provider.js +28 -25
  130. package/lib/aws/lambda/function.provider.js.map +1 -1
  131. package/lib/aws/lambda/index.d.ts +1 -0
  132. package/lib/aws/lambda/index.d.ts.map +1 -1
  133. package/lib/aws/lambda/index.js +1 -0
  134. package/lib/aws/lambda/index.js.map +1 -1
  135. package/lib/aws/lambda/serve.d.ts +2 -4
  136. package/lib/aws/lambda/serve.d.ts.map +1 -1
  137. package/lib/aws/profile.d.ts +2 -2
  138. package/lib/aws/profile.d.ts.map +1 -1
  139. package/lib/aws/profile.js +1 -1
  140. package/lib/aws/profile.js.map +1 -1
  141. package/lib/aws/region.d.ts +14 -2
  142. package/lib/aws/region.d.ts.map +1 -1
  143. package/lib/aws/region.js +26 -1
  144. package/lib/aws/region.js.map +1 -1
  145. package/lib/aws/sqs/client.d.ts +1 -1
  146. package/lib/aws/sqs/client.d.ts.map +1 -1
  147. package/lib/aws/sqs/index.d.ts +1 -0
  148. package/lib/aws/sqs/index.d.ts.map +1 -1
  149. package/lib/aws/sqs/index.js +1 -0
  150. package/lib/aws/sqs/index.js.map +1 -1
  151. package/lib/aws/sqs/queue.consume.d.ts +1 -1
  152. package/lib/aws/sqs/queue.consume.d.ts.map +1 -1
  153. package/lib/aws/sqs/queue.consume.js +0 -1
  154. package/lib/aws/sqs/queue.consume.js.map +1 -1
  155. package/lib/aws/sqs/queue.d.ts +6 -4
  156. package/lib/aws/sqs/queue.d.ts.map +1 -1
  157. package/lib/aws/sqs/queue.event-source.d.ts +8 -6
  158. package/lib/aws/sqs/queue.event-source.d.ts.map +1 -1
  159. package/lib/aws/sqs/queue.event-source.js +26 -44
  160. package/lib/aws/sqs/queue.event-source.js.map +1 -1
  161. package/lib/aws/sqs/queue.js +1 -1
  162. package/lib/aws/sqs/queue.js.map +1 -1
  163. package/lib/aws/sqs/queue.provider.d.ts +2 -2
  164. package/lib/aws/sqs/queue.provider.d.ts.map +1 -1
  165. package/lib/aws/sqs/queue.provider.js +2 -1
  166. package/lib/aws/sqs/queue.provider.js.map +1 -1
  167. package/lib/aws/sqs/queue.send-message.d.ts +7 -5
  168. package/lib/aws/sqs/queue.send-message.d.ts.map +1 -1
  169. package/lib/aws/sqs/queue.send-message.js +4 -2
  170. package/lib/aws/sqs/queue.send-message.js.map +1 -1
  171. package/lib/binding.d.ts +12 -12
  172. package/lib/binding.d.ts.map +1 -1
  173. package/lib/binding.js.map +1 -1
  174. package/lib/cli/components/ApprovePlan.d.ts +2 -2
  175. package/lib/cli/components/ApprovePlan.d.ts.map +1 -1
  176. package/lib/cli/components/ApprovePlan.js.map +1 -1
  177. package/lib/cli/components/Plan.d.ts +2 -2
  178. package/lib/cli/components/Plan.d.ts.map +1 -1
  179. package/lib/cli/components/Plan.js.map +1 -1
  180. package/lib/cli/components/PlanProgress.d.ts +8 -4
  181. package/lib/cli/components/PlanProgress.d.ts.map +1 -1
  182. package/lib/cli/components/PlanProgress.js +11 -1
  183. package/lib/cli/components/PlanProgress.js.map +1 -1
  184. package/lib/cli/index.d.ts +384 -264
  185. package/lib/cli/index.d.ts.map +1 -1
  186. package/lib/cli/index.js +57 -65
  187. package/lib/cli/index.js.map +1 -1
  188. package/lib/cli/ink-service.d.ts +4 -0
  189. package/lib/cli/ink-service.d.ts.map +1 -0
  190. package/lib/cli/ink-service.js +43 -0
  191. package/lib/cli/ink-service.js.map +1 -0
  192. package/lib/cli/service.d.ts +21 -0
  193. package/lib/cli/service.d.ts.map +1 -0
  194. package/lib/cli/service.js +5 -0
  195. package/lib/cli/service.js.map +1 -0
  196. package/lib/cloudflare/account.d.ts +10 -0
  197. package/lib/cloudflare/account.d.ts.map +1 -0
  198. package/lib/cloudflare/account.js +24 -0
  199. package/lib/cloudflare/account.js.map +1 -0
  200. package/lib/cloudflare/api.d.ts +7 -7
  201. package/lib/cloudflare/api.d.ts.map +1 -1
  202. package/lib/cloudflare/api.js +18 -17
  203. package/lib/cloudflare/api.js.map +1 -1
  204. package/lib/cloudflare/config.d.ts +9 -0
  205. package/lib/cloudflare/config.d.ts.map +1 -0
  206. package/lib/cloudflare/config.js +1 -0
  207. package/lib/cloudflare/config.js.map +1 -0
  208. package/lib/cloudflare/index.d.ts +3 -1
  209. package/lib/cloudflare/index.d.ts.map +1 -1
  210. package/lib/cloudflare/index.js +3 -0
  211. package/lib/cloudflare/index.js.map +1 -1
  212. package/lib/cloudflare/kv/namespace.binding.d.ts +5 -3
  213. package/lib/cloudflare/kv/namespace.binding.d.ts.map +1 -1
  214. package/lib/cloudflare/kv/namespace.binding.js +1 -1
  215. package/lib/cloudflare/kv/namespace.binding.js.map +1 -1
  216. package/lib/cloudflare/kv/namespace.client.d.ts +1 -1
  217. package/lib/cloudflare/kv/namespace.d.ts +3 -2
  218. package/lib/cloudflare/kv/namespace.d.ts.map +1 -1
  219. package/lib/cloudflare/kv/namespace.js.map +1 -1
  220. package/lib/cloudflare/kv/namespace.provider.d.ts +3 -2
  221. package/lib/cloudflare/kv/namespace.provider.d.ts.map +1 -1
  222. package/lib/cloudflare/kv/namespace.provider.js +9 -7
  223. package/lib/cloudflare/kv/namespace.provider.js.map +1 -1
  224. package/lib/cloudflare/live.d.ts +5 -5
  225. package/lib/cloudflare/live.d.ts.map +1 -1
  226. package/lib/cloudflare/live.js +5 -8
  227. package/lib/cloudflare/live.js.map +1 -1
  228. package/lib/cloudflare/r2/bucket.binding.d.ts +5 -3
  229. package/lib/cloudflare/r2/bucket.binding.d.ts.map +1 -1
  230. package/lib/cloudflare/r2/bucket.binding.js +1 -1
  231. package/lib/cloudflare/r2/bucket.binding.js.map +1 -1
  232. package/lib/cloudflare/r2/bucket.d.ts +3 -2
  233. package/lib/cloudflare/r2/bucket.d.ts.map +1 -1
  234. package/lib/cloudflare/r2/bucket.js.map +1 -1
  235. package/lib/cloudflare/r2/bucket.provider.d.ts +3 -2
  236. package/lib/cloudflare/r2/bucket.provider.d.ts.map +1 -1
  237. package/lib/cloudflare/r2/bucket.provider.js +14 -8
  238. package/lib/cloudflare/r2/bucket.provider.js.map +1 -1
  239. package/lib/cloudflare/worker/assets.fetch.d.ts +3 -2
  240. package/lib/cloudflare/worker/assets.fetch.d.ts.map +1 -1
  241. package/lib/cloudflare/worker/assets.fetch.js +2 -1
  242. package/lib/cloudflare/worker/assets.fetch.js.map +1 -1
  243. package/lib/cloudflare/worker/assets.provider.d.ts +1 -1
  244. package/lib/cloudflare/worker/assets.provider.d.ts.map +1 -1
  245. package/lib/cloudflare/worker/index.d.ts +0 -1
  246. package/lib/cloudflare/worker/index.d.ts.map +1 -1
  247. package/lib/cloudflare/worker/worker.d.ts +5 -6
  248. package/lib/cloudflare/worker/worker.d.ts.map +1 -1
  249. package/lib/cloudflare/worker/worker.handler.d.ts +1 -1
  250. package/lib/cloudflare/worker/worker.handler.d.ts.map +1 -1
  251. package/lib/cloudflare/worker/worker.handler.js.map +1 -1
  252. package/lib/cloudflare/worker/worker.js.map +1 -1
  253. package/lib/cloudflare/worker/worker.provider.d.ts +3 -2
  254. package/lib/cloudflare/worker/worker.provider.d.ts.map +1 -1
  255. package/lib/cloudflare/worker/worker.provider.js +12 -7
  256. package/lib/cloudflare/worker/worker.provider.js.map +1 -1
  257. package/lib/cloudflare/worker/worker.serve.d.ts +7 -7
  258. package/lib/cloudflare/worker/worker.serve.d.ts.map +1 -1
  259. package/lib/cloudflare/worker/worker.serve.js.map +1 -1
  260. package/lib/data.d.ts +3 -0
  261. package/lib/data.d.ts.map +1 -0
  262. package/lib/data.js +8 -0
  263. package/lib/data.js.map +1 -0
  264. package/lib/destroy.d.ts +1 -1
  265. package/lib/destroy.d.ts.map +1 -1
  266. package/lib/destroy.js +1 -4
  267. package/lib/destroy.js.map +1 -1
  268. package/lib/diff.d.ts +18 -0
  269. package/lib/diff.d.ts.map +1 -0
  270. package/lib/diff.js +22 -0
  271. package/lib/diff.js.map +1 -0
  272. package/lib/env.d.ts +5 -0
  273. package/lib/env.d.ts.map +1 -1
  274. package/lib/env.js +15 -29
  275. package/lib/env.js.map +1 -1
  276. package/lib/event.d.ts +1 -1
  277. package/lib/event.d.ts.map +1 -1
  278. package/lib/exports.d.ts +9 -0
  279. package/lib/exports.d.ts.map +1 -0
  280. package/lib/exports.js +13 -0
  281. package/lib/exports.js.map +1 -0
  282. package/lib/index.d.ts +10 -2
  283. package/lib/index.d.ts.map +1 -1
  284. package/lib/index.js +10 -5
  285. package/lib/index.js.map +1 -1
  286. package/lib/input.d.ts +32 -0
  287. package/lib/input.d.ts.map +1 -0
  288. package/lib/input.js +1 -0
  289. package/lib/input.js.map +1 -0
  290. package/lib/instance-id.d.ts +8 -0
  291. package/lib/instance-id.d.ts.map +1 -0
  292. package/lib/instance-id.js +12 -0
  293. package/lib/instance-id.js.map +1 -0
  294. package/lib/output.d.ts +145 -0
  295. package/lib/output.d.ts.map +1 -0
  296. package/lib/output.js +283 -0
  297. package/lib/output.js.map +1 -0
  298. package/lib/physical-name.d.ts +14 -1
  299. package/lib/physical-name.d.ts.map +1 -1
  300. package/lib/physical-name.js +41 -2
  301. package/lib/physical-name.js.map +1 -1
  302. package/lib/plan.d.ts +84 -58
  303. package/lib/plan.d.ts.map +1 -1
  304. package/lib/plan.js +504 -166
  305. package/lib/plan.js.map +1 -1
  306. package/lib/policy.d.ts +3 -4
  307. package/lib/policy.d.ts.map +1 -1
  308. package/lib/policy.js +0 -1
  309. package/lib/policy.js.map +1 -1
  310. package/lib/provider.d.ts +39 -24
  311. package/lib/provider.d.ts.map +1 -1
  312. package/lib/provider.js +9 -0
  313. package/lib/provider.js.map +1 -1
  314. package/lib/ref.d.ts +14 -0
  315. package/lib/ref.d.ts.map +1 -0
  316. package/lib/ref.js +21 -0
  317. package/lib/ref.js.map +1 -0
  318. package/lib/resource.d.ts +13 -8
  319. package/lib/resource.d.ts.map +1 -1
  320. package/lib/resource.js.map +1 -1
  321. package/lib/runtime.d.ts +7 -6
  322. package/lib/runtime.d.ts.map +1 -1
  323. package/lib/runtime.js.map +1 -1
  324. package/lib/service.d.ts +9 -6
  325. package/lib/service.d.ts.map +1 -1
  326. package/lib/service.js.map +1 -1
  327. package/lib/stack.d.ts +60 -0
  328. package/lib/stack.d.ts.map +1 -0
  329. package/lib/stack.js +11 -0
  330. package/lib/stack.js.map +1 -0
  331. package/lib/stage.d.ts +39 -0
  332. package/lib/stage.d.ts.map +1 -0
  333. package/lib/stage.js +32 -0
  334. package/lib/stage.js.map +1 -0
  335. package/lib/state.d.ts +135 -17
  336. package/lib/state.d.ts.map +1 -1
  337. package/lib/state.js +34 -30
  338. package/lib/state.js.map +1 -1
  339. package/lib/tags.d.ts +15 -0
  340. package/lib/tags.d.ts.map +1 -1
  341. package/lib/tags.js +27 -0
  342. package/lib/tags.js.map +1 -1
  343. package/lib/test.d.ts +25 -4
  344. package/lib/test.d.ts.map +1 -1
  345. package/lib/test.js +54 -14
  346. package/lib/test.js.map +1 -1
  347. package/lib/todo.d.ts +3 -0
  348. package/lib/todo.d.ts.map +1 -0
  349. package/lib/todo.js +3 -0
  350. package/lib/todo.js.map +1 -0
  351. package/lib/tsconfig.test.tsbuildinfo +1 -1
  352. package/lib/type.d.ts +3 -0
  353. package/lib/type.d.ts.map +1 -1
  354. package/lib/unknown.d.ts +4 -0
  355. package/lib/unknown.d.ts.map +1 -0
  356. package/lib/unknown.js +4 -0
  357. package/lib/unknown.js.map +1 -0
  358. package/lib/user.d.ts +3 -0
  359. package/lib/user.d.ts.map +1 -0
  360. package/lib/user.js +3 -0
  361. package/lib/user.js.map +1 -0
  362. package/lib/util.d.ts +6 -0
  363. package/lib/util.d.ts.map +1 -0
  364. package/lib/util.js +9 -0
  365. package/lib/util.js.map +1 -0
  366. package/package.json +18 -12
  367. package/src/$.ts +17 -0
  368. package/src/app.ts +3 -32
  369. package/src/apply.ts +824 -452
  370. package/src/assert-never.ts +18 -0
  371. package/src/aws/account.ts +23 -3
  372. package/src/aws/client.ts +0 -1
  373. package/src/aws/config.ts +16 -0
  374. package/src/aws/credentials.ts +212 -177
  375. package/src/aws/dynamodb/index.ts +3 -3
  376. package/src/aws/dynamodb/table.get-item.ts +5 -9
  377. package/src/aws/dynamodb/table.provider.ts +36 -39
  378. package/src/aws/dynamodb/table.ts +29 -84
  379. package/src/aws/ec2/index.ts +12 -0
  380. package/src/aws/ec2/internet-gateway.provider.ts +316 -0
  381. package/src/aws/ec2/internet-gateway.ts +79 -0
  382. package/src/aws/ec2/route-table-association.provider.ts +214 -0
  383. package/src/aws/ec2/route-table-association.ts +82 -0
  384. package/src/aws/ec2/route-table.provider.ts +306 -0
  385. package/src/aws/ec2/route-table.ts +175 -0
  386. package/src/aws/ec2/route.provider.ts +213 -0
  387. package/src/aws/ec2/route.ts +192 -0
  388. package/src/aws/ec2/subnet.provider.ts +358 -0
  389. package/src/aws/ec2/subnet.ts +213 -0
  390. package/src/aws/ec2/vpc.provider.ts +58 -50
  391. package/src/aws/ec2/vpc.ts +21 -8
  392. package/src/aws/index.ts +49 -40
  393. package/src/aws/lambda/consume.ts +8 -7
  394. package/src/aws/lambda/function.handler.ts +1 -1
  395. package/src/aws/lambda/function.invoke.ts +6 -2
  396. package/src/aws/lambda/function.provider.ts +41 -32
  397. package/src/aws/lambda/function.ts +7 -4
  398. package/src/aws/lambda/index.ts +2 -0
  399. package/src/aws/profile.ts +1 -4
  400. package/src/aws/region.ts +42 -3
  401. package/src/aws/sqs/index.ts +2 -0
  402. package/src/aws/sqs/queue.consume.ts +1 -1
  403. package/src/aws/sqs/queue.event-source.ts +29 -55
  404. package/src/aws/sqs/queue.provider.ts +10 -2
  405. package/src/aws/sqs/queue.send-message.ts +5 -8
  406. package/src/aws/sqs/queue.ts +9 -4
  407. package/src/binding.ts +19 -19
  408. package/src/cli/components/ApprovePlan.tsx +2 -2
  409. package/src/cli/components/Plan.tsx +3 -2
  410. package/src/cli/components/PlanProgress.tsx +32 -14
  411. package/src/cli/index.ts +2 -6
  412. package/src/cli/ink-service.tsx +61 -0
  413. package/src/cli/service.ts +23 -0
  414. package/src/cloudflare/account.ts +37 -0
  415. package/src/cloudflare/api.ts +33 -29
  416. package/src/cloudflare/config.ts +7 -0
  417. package/src/cloudflare/index.ts +3 -1
  418. package/src/cloudflare/kv/namespace.binding.ts +3 -1
  419. package/src/cloudflare/kv/namespace.provider.ts +10 -8
  420. package/src/cloudflare/kv/namespace.ts +3 -2
  421. package/src/cloudflare/live.ts +11 -17
  422. package/src/cloudflare/r2/bucket.binding.ts +3 -1
  423. package/src/cloudflare/r2/bucket.provider.ts +16 -9
  424. package/src/cloudflare/r2/bucket.ts +8 -2
  425. package/src/cloudflare/worker/assets.fetch.ts +3 -1
  426. package/src/cloudflare/worker/assets.provider.ts +1 -1
  427. package/src/cloudflare/worker/index.ts +0 -2
  428. package/src/cloudflare/worker/worker.handler.ts +1 -1
  429. package/src/cloudflare/worker/worker.provider.ts +21 -14
  430. package/src/cloudflare/worker/worker.serve.ts +5 -2
  431. package/src/cloudflare/worker/worker.ts +4 -3
  432. package/src/data.ts +18 -0
  433. package/src/destroy.ts +1 -5
  434. package/src/diff.ts +48 -0
  435. package/src/env.ts +20 -32
  436. package/src/event.ts +6 -0
  437. package/src/exports.ts +21 -0
  438. package/src/index.ts +10 -5
  439. package/src/input.ts +81 -0
  440. package/src/instance-id.ts +16 -0
  441. package/src/output.ts +542 -0
  442. package/src/physical-name.ts +57 -2
  443. package/src/plan.ts +757 -278
  444. package/src/policy.ts +3 -5
  445. package/src/provider.ts +70 -31
  446. package/src/ref.ts +48 -0
  447. package/src/resource.ts +70 -10
  448. package/src/runtime.ts +15 -8
  449. package/src/service.ts +11 -7
  450. package/src/stack.ts +116 -0
  451. package/src/stage.ts +85 -0
  452. package/src/state.ts +269 -76
  453. package/src/tags.ts +31 -0
  454. package/src/test.ts +118 -17
  455. package/src/todo.ts +4 -0
  456. package/src/type.ts +4 -0
  457. package/src/unknown.ts +6 -0
  458. package/src/user.ts +4 -0
  459. package/src/util.ts +21 -0
  460. package/lib/approve.d.ts +0 -15
  461. package/lib/approve.d.ts.map +0 -1
  462. package/lib/approve.js +0 -7
  463. package/lib/approve.js.map +0 -1
  464. package/lib/cli/approve.d.ts +0 -4
  465. package/lib/cli/approve.d.ts.map +0 -1
  466. package/lib/cli/approve.js +0 -18
  467. package/lib/cli/approve.js.map +0 -1
  468. package/lib/cli/clack.d.ts +0 -14
  469. package/lib/cli/clack.d.ts.map +0 -1
  470. package/lib/cli/clack.js +0 -12
  471. package/lib/cli/clack.js.map +0 -1
  472. package/lib/cli/main.d.ts +0 -2
  473. package/lib/cli/main.d.ts.map +0 -1
  474. package/lib/cli/main.js +0 -1
  475. package/lib/cli/main.js.map +0 -1
  476. package/lib/cli/plan.d.ts +0 -13
  477. package/lib/cli/plan.d.ts.map +0 -1
  478. package/lib/cli/plan.js +0 -1
  479. package/lib/cli/plan.js.map +0 -1
  480. package/lib/cli/progress.d.ts +0 -7
  481. package/lib/cli/progress.d.ts.map +0 -1
  482. package/lib/cli/progress.js +0 -30
  483. package/lib/cli/progress.js.map +0 -1
  484. package/lib/cli/spinner.d.ts +0 -2
  485. package/lib/cli/spinner.d.ts.map +0 -1
  486. package/lib/cli/spinner.js +0 -13
  487. package/lib/cli/spinner.js.map +0 -1
  488. package/src/approve.ts +0 -13
  489. package/src/cli/approve.tsx +0 -30
  490. package/src/cli/clack.ts +0 -22
  491. package/src/cli/main.ts +0 -0
  492. package/src/cli/plan.ts +0 -16
  493. package/src/cli/progress.tsx +0 -46
  494. package/src/cli/spinner.ts +0 -14
package/lib/env.js CHANGED
@@ -1,33 +1,19 @@
1
- export const toEnvKey = (id, suffix) => `${replace(toUpper(id))}_${replace(toUpper(suffix))}`;
2
- const toUpper = (str) => str.toUpperCase();
3
- const replace = (str) => str.replace(/-/g, "_");
4
- function _test_both_literals() {
5
- const key = toEnvKey("my-id", "my-suffix");
6
- const _ = "MY_ID_MY_SUFFIX";
1
+ let _env;
2
+ try {
7
3
  // @ts-expect-error
8
- const _err = "MY_ID_MY_SUFFIX2";
4
+ const { env } = await import("cloudflare:workers");
5
+ _env = env;
9
6
  }
10
- function _test_replace_wide_string() {
11
- const ___ = toUpper(undefined);
12
- const id = "my-id";
13
- const key = toEnvKey(id, "my-suffix");
14
- const _ = "MY_ID_MY_SUFFIX";
15
- const _2 = `${id}_MY_SUFFIX`;
16
- // @ts-expect-error
17
- const _err = "MY_ID_MY_SUFFIX2";
18
- // @ts-expect-error
19
- const _err2 = `${id}_MY_SUFFIX2`;
20
- }
21
- function _test_replace_wide_suffix() {
22
- const ___ = toUpper(undefined);
23
- const id = "my-id";
24
- const suffix = "my-suffix";
25
- const key = toEnvKey(id, suffix);
26
- const _ = "MY_ID_MY_SUFFIX";
27
- const _2 = `MY_ID_${suffix}`;
28
- // @ts-expect-error
29
- const _err = "WRONG_PREFIX_MY_SUFFIX";
30
- // @ts-expect-error
31
- const _err2 = `WRONG_PREFIX_${suffix}`;
7
+ catch {
8
+ if (typeof process !== "undefined") {
9
+ _env = process.env;
10
+ }
11
+ else {
12
+ _env = import.meta.env;
13
+ }
32
14
  }
15
+ export const env = _env;
16
+ export const toEnvKey = (id, suffix) => `${replace(toUpper(id))}_${replace(toUpper(suffix))}`;
17
+ export const toUpper = (str) => str.toUpperCase();
18
+ const replace = (str) => str.replace(/-/g, "_");
33
19
  //# sourceMappingURL=env.js.map
package/lib/env.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,EAAM,EACN,MAAc,EACd,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAW,CAAC;AAEpE,MAAM,OAAO,GAAG,CAAyB,GAAM,EAAE,EAAE,CACjD,GAAG,CAAC,WAAW,EAAyC,CAAC;AAE3D,MAAM,OAAO,GAAG,CAAyB,GAAM,EAAE,EAAE,CACjD,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAe,CAAC;AAYvC,SAAS,mBAAmB;IAC1B,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC3C,MAAM,CAAC,GAAe,iBAAiB,CAAC;IACxC,mBAAmB;IACnB,MAAM,IAAI,GAAe,kBAAkB,CAAC;AAC9C,CAAC;AACD,SAAS,yBAAyB;IAChC,MAAM,GAAG,GAAG,OAAO,CAAC,SAAoB,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAW,OAAO,CAAC;IAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACtC,MAAM,CAAC,GAAe,iBAAiB,CAAC;IACxC,MAAM,EAAE,GAAe,GAAG,EAAE,YAAqB,CAAC;IAClD,mBAAmB;IACnB,MAAM,IAAI,GAAe,kBAAkB,CAAC;IAC5C,mBAAmB;IACnB,MAAM,KAAK,GAAe,GAAG,EAAE,aAAsB,CAAC;AACxD,CAAC;AAED,SAAS,yBAAyB;IAChC,MAAM,GAAG,GAAG,OAAO,CAAC,SAAoB,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,OAAO,CAAC;IACnB,MAAM,MAAM,GAAG,WAAqB,CAAC;IACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,GAAe,iBAAiB,CAAC;IACxC,MAAM,EAAE,GAAe,SAAS,MAAM,EAAW,CAAC;IAClD,mBAAmB;IACnB,MAAM,IAAI,GAAe,wBAAwB,CAAC;IAClD,mBAAmB;IACnB,MAAM,KAAK,GAAe,gBAAgB,MAAM,EAAE,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,IAAI,IAAI,CAAC;AACT,IAAI,CAAC;IACH,mBAAmB;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACnD,IAAI,GAAG,GAAG,CAAC;AACb,CAAC;AAAC,MAAM,CAAC;IACP,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IACzB,CAAC;AACH,CAAC;AAMD,MAAM,CAAC,MAAM,GAAG,GAAQ,IAAI,CAAC;AAE7B,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,EAAM,EACN,MAAc,EACd,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAW,CAAC;AAEpE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAyB,GAAM,EAAE,EAAE,CACxD,GAAG,CAAC,WAAW,EAAyC,CAAC;AAE3D,MAAM,OAAO,GAAG,CAAyB,GAAM,EAAE,EAAE,CACjD,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAe,CAAC"}
package/lib/event.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type ApplyStatus = "pending" | "creating" | "created" | "updating" | "updated" | "deleting" | "deleted" | "success" | "fail";
1
+ export type ApplyStatus = "attaching" | "post-attach" | "pending" | "pre-creating" | "creating" | "creating replacement" | "created" | "updating" | "updated" | "deleting" | "deleted" | "replacing" | "replaced" | "success" | "fail";
2
2
  export type ApplyEvent = AnnotateEvent | StatusChangeEvent;
3
3
  export interface AnnotateEvent {
4
4
  kind: "annotate";
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,iBAAiB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,aAAa,GACb,SAAS,GACT,cAAc,GACd,UAAU,GACV,sBAAsB,GACtB,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,WAAW,GACX,UAAU,GACV,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,iBAAiB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,9 @@
1
+ export type * from "./$.ts";
2
+ export type * from "./binding.ts";
3
+ export type * from "./capability.ts";
4
+ export type * from "./policy.ts";
5
+ export type * from "./provider.ts";
6
+ export type * from "./resource.ts";
7
+ export type * from "./runtime.ts";
8
+ export type * from "./service.ts";
9
+ //# sourceMappingURL=exports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAaA,mBAAmB,QAAQ,CAAC;AAC5B,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,iBAAiB,CAAC;AACrC,mBAAmB,aAAa,CAAC;AACjC,mBAAmB,eAAe,CAAC;AACnC,mBAAmB,eAAe,CAAC;AACnC,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,cAAc,CAAC"}
package/lib/exports.js ADDED
@@ -0,0 +1,13 @@
1
+ /*
2
+ This file is used to provide a minimal set of exported types required to solve portability
3
+ issues in sub-modules (e.g. cloudflare/worker).
4
+
5
+ Sub-modules are expected to `export type * from "../../exports.ts";` to ensure that the minimal set of types are exported.
6
+
7
+ This is instead of:
8
+ 1. `export type * from "../../index.ts";` which would export too many types
9
+ 2. `export type * as Alchemy from "../../index.ts";` which creates very long, confusing types.
10
+
11
+ TODO(sam): figure out a way to avoid this entirely
12
+ */
13
+ //# sourceMappingURL=exports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE"}
package/lib/index.d.ts CHANGED
@@ -1,19 +1,27 @@
1
+ export * from "./$.ts";
1
2
  export * from "./app.ts";
2
3
  export * from "./apply.ts";
3
- export * from "./approve.ts";
4
4
  export * from "./binding.ts";
5
5
  export * from "./capability.ts";
6
6
  export * from "./destroy.ts";
7
7
  export * from "./dot-alchemy.ts";
8
- export * from "./env.ts";
8
+ export { env, toEnvKey, type Env } from "./env.ts";
9
9
  export * from "./event.ts";
10
+ export * from "./input.ts";
11
+ export * as Output from "./output.ts";
10
12
  export * from "./phase.ts";
11
13
  export * from "./plan.ts";
12
14
  export * from "./policy.ts";
13
15
  export * from "./provider.ts";
14
16
  export * from "./resource.ts";
15
17
  export * from "./runtime.ts";
18
+ export * from "./ref.ts";
16
19
  export * from "./service.ts";
20
+ export * from "./stack.ts";
17
21
  export * from "./type.ts";
22
+ export * from "./unknown.ts";
23
+ export * from "./stage.ts";
24
+ export * from "./user.ts";
25
+ export { assertDefined } from "./util.ts";
18
26
  export * as State from "./state.ts";
19
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAK1B,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AACnD,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC"}
package/lib/index.js CHANGED
@@ -1,22 +1,27 @@
1
+ export * from "./$.js";
1
2
  export * from "./app.js";
2
3
  export * from "./apply.js";
3
- export * from "./approve.js";
4
4
  export * from "./binding.js";
5
5
  export * from "./capability.js";
6
6
  export * from "./destroy.js";
7
7
  export * from "./dot-alchemy.js";
8
- export * from "./env.js";
8
+ export { env, toEnvKey } from "./env.js";
9
9
  export * from "./event.js";
10
+ export * from "./input.js";
11
+ export * as Output from "./output.js";
10
12
  export * from "./phase.js";
11
13
  export * from "./plan.js";
12
14
  export * from "./policy.js";
13
15
  export * from "./provider.js";
14
16
  export * from "./resource.js";
15
17
  export * from "./runtime.js";
18
+ export * from "./ref.js";
16
19
  export * from "./service.js";
20
+ export * from "./stack.js";
17
21
  export * from "./type.js";
18
- // export * as AWS from "./aws/index.ts";
19
- // export * as CLI from "./cli/index.ts";
20
- // export * as Cloudflare from "./cloudflare/index.ts";
22
+ export * from "./unknown.js";
23
+ export * from "./stage.js";
24
+ export * from "./user.js";
25
+ export { assertDefined } from "./util.js";
21
26
  export * as State from "./state.js";
22
27
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAE1B,yCAAyC;AACzC,yCAAyC;AACzC,uDAAuD;AACvD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAY,MAAM,UAAU,CAAC;AACnD,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC"}
package/lib/input.d.ts ADDED
@@ -0,0 +1,32 @@
1
+ import type * as S from "effect/Schema";
2
+ import type { Primitive } from "./data.ts";
3
+ import type { Output } from "./output.ts";
4
+ export type Function = (...args: any[]) => any;
5
+ export type Constructor = new (...args: any[]) => any;
6
+ export type PolicyLike = {
7
+ kind: "alchemy/Policy";
8
+ };
9
+ export type Input<T> = T | (T extends S.Schema<any> ? never : Output<T, any, any> | (T extends Primitive ? never : T extends any[] ? number extends T["length"] ? Input<T[number]>[] : Inputs<T> : T extends object ? {
10
+ [K in keyof T]: Input<T[K]>;
11
+ } : never));
12
+ export type InputProps<T extends Record<string, any>, Static extends keyof T = never> = {
13
+ [K in keyof T]: K extends Static ? T[K] : Input<T[K]>;
14
+ };
15
+ export declare namespace Input {
16
+ type Resolve<T> = T extends Output<infer U> ? U : T extends Primitive | Constructor | Function | S.Schema<any> | PolicyLike ? T : T extends any[] ? ResolveArray<T> : T extends Record<string, any> ? {
17
+ [k in keyof T]: Input.Resolve<T[k]>;
18
+ } : never;
19
+ type ResolveArray<T extends any[]> = number extends T["length"] ? Resolve<T[number]>[] : ResolveTuple<T>;
20
+ type ResolveTuple<T extends any[], Accum extends any[] = []> = T extends [infer H, ...infer Tail] ? ResolveTuple<Tail, [...Accum, Input.Resolve<H>]> : Accum;
21
+ type ResolveProps<Props extends Record<string, any>> = {
22
+ [k in keyof Props]: Input.Resolve<Props[k]>;
23
+ };
24
+ type ResolveOpaque<T> = true extends IsOut<T> ? ResolveOut<T> : Resolve<T>;
25
+ type IsOut<T> = T extends Output<infer U> ? true : never;
26
+ type ResolveOut<T> = T extends Output<infer U> ? U : never;
27
+ }
28
+ export type Inputs<T extends any[], Out extends any[] = []> = T extends [
29
+ infer H,
30
+ ...infer T
31
+ ] ? Inputs<T, [...Out, Input<H>]> : Out;
32
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"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"}
package/lib/input.js ADDED
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import * as Effect from "effect/Effect";
2
+ /** A 16-byte (128-bit) random hex-encoded string representing an physical instance of a logical resource */
3
+ export type InstanceId = string;
4
+ /**
5
+ * @returns Hex-encoded instance ID (16 random bytes)
6
+ */
7
+ export declare const generateInstanceId: () => Effect.Effect<string, never, never>;
8
+ //# sourceMappingURL=instance-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-id.d.ts","sourceRoot":"","sources":["../src/instance-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,4GAA4G;AAC5G,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,kBAAkB,2CAO3B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import * as Effect from "effect/Effect";
2
+ /**
3
+ * @returns Hex-encoded instance ID (16 random bytes)
4
+ */
5
+ export const generateInstanceId = () => Effect.sync(() => {
6
+ const bytes = new Uint8Array(16);
7
+ crypto.getRandomValues(bytes);
8
+ return Array.from(bytes)
9
+ .map((b) => b.toString(16).padStart(2, "0"))
10
+ .join("");
11
+ });
12
+ //# sourceMappingURL=instance-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-id.js","sourceRoot":"","sources":["../src/instance-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CACrC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC,CAAC"}
@@ -0,0 +1,145 @@
1
+ import * as Effect from "effect/Effect";
2
+ import type { From } from "./policy.ts";
3
+ import { type Ref } from "./ref.ts";
4
+ import type { AnyResource, Resource } from "./resource.ts";
5
+ import * as State from "./state.ts";
6
+ import type { IsAny, UnionToIntersection } from "./util.ts";
7
+ export declare const isOutput: (value: any) => value is Output<any>;
8
+ export declare const of: <R extends Resource>(resource: Ref<R> | R) => Output.Of<R["attr"], From<R>>;
9
+ export declare const ref: <R extends Resource<string, string, any, any>>(resourceId: R["id"], options?: {
10
+ stage?: string;
11
+ stack?: string;
12
+ }) => Output.Of<R["attr"], import("./policy.ts").Instance<R>, never>;
13
+ export interface Output<A = any, Src extends Resource = any, Req = any> {
14
+ readonly kind: string;
15
+ readonly src: Src;
16
+ readonly req: Req;
17
+ apply<B>(fn: (value: A) => B): Output.Of<B, Src, Req>;
18
+ effect<B, Req2>(fn: (value: A) => Effect.Effect<B, never, Req2>): Output.Of<B, Src, Req | Req2>;
19
+ }
20
+ export declare namespace Output {
21
+ type Of<A, Src extends Resource = any, Req = never> = [
22
+ Extract<A, object>
23
+ ] extends [never] ? Output<A, Src, Req> : [Extract<A, any[]>] extends [never] ? Object<{
24
+ [attr in keyof A]: A[attr];
25
+ }, Src, Req> : Array<Extract<A, any[]>, Src, Req>;
26
+ }
27
+ export type Object<A, Src extends Resource, Req = any> = Output<A, Src, Req> & {
28
+ [Prop in keyof Exclude<A, undefined>]-?: Output.Of<Exclude<A, undefined>[Prop] | Extract<A, undefined>, Src, Req>;
29
+ };
30
+ export type Array<A extends any[], Src extends Resource, Req = any> = Output<A, Src, Req> & {
31
+ [i in Extract<keyof A, number>]: Output.Of<A[i], Src, Req>;
32
+ };
33
+ export declare const isExpr: (value: any) => value is Expr<any>;
34
+ export type Expr<A = any, Src extends AnyResource = AnyResource, Req = any> = AllExpr<Expr<A, Src, Req>[]> | ApplyExpr<any, A, Src, Req> | EffectExpr<any, A, Src, Req> | LiteralExpr<A> | PropExpr<A, keyof A, Src, Req> | ResourceExpr<A, Src, Req> | RefExpr<A>;
35
+ export declare abstract class BaseExpr<A = any, Src extends Resource = any, Req = any> implements Output<A, Src, Req> {
36
+ readonly kind: any;
37
+ readonly src: Src;
38
+ readonly req: Req;
39
+ constructor();
40
+ apply<B>(fn: (value: A) => B): Output.Of<B, Src>;
41
+ effect<B, Req2>(fn: (value: A) => Effect.Effect<B, never, Req2>): Output.Of<B, Src, Req | Req2>;
42
+ pipe(...fns: any[]): any;
43
+ toString(): string;
44
+ }
45
+ export declare const isResourceExpr: <Value = any, Src extends AnyResource = AnyResource, Req = any>(node: Expr<Value, Src, Req> | any) => node is ResourceExpr<Value, Src, Req>;
46
+ export declare class ResourceExpr<Value, Src extends AnyResource, Req = never> extends BaseExpr<Value, Src, Req> {
47
+ readonly src: Src;
48
+ readonly stables?: Record<string, any> | undefined;
49
+ readonly kind = "ResourceExpr";
50
+ constructor(src: Src, stables?: Record<string, any> | undefined);
51
+ }
52
+ export declare const isPropExpr: <A = any, Prop extends keyof A = keyof A, Src extends AnyResource = AnyResource, Req = any>(node: any) => node is PropExpr<A, Prop, Src, Req>;
53
+ export declare class PropExpr<A = any, Id extends keyof A = keyof A, Src extends AnyResource = AnyResource, Req = any> extends BaseExpr<A[Id], Src, Req> {
54
+ readonly expr: Expr<A, Src, Req>;
55
+ readonly identifier: Id;
56
+ readonly kind = "PropExpr";
57
+ constructor(expr: Expr<A, Src, Req>, identifier: Id);
58
+ }
59
+ export declare const literal: <A>(value: A) => LiteralExpr<A>;
60
+ export declare const isLiteralExpr: <A = any>(node: any) => node is LiteralExpr<A>;
61
+ export declare class LiteralExpr<A> extends BaseExpr<A, never> {
62
+ readonly value: A;
63
+ readonly kind = "LiteralExpr";
64
+ constructor(value: A);
65
+ }
66
+ export declare const isApplyExpr: <In = any, Out = any, Src extends AnyResource = AnyResource, Req = any>(node: Output<Out, Src, Req>) => node is ApplyExpr<In, Out, Src, Req>;
67
+ export declare class ApplyExpr<A, B, Src extends AnyResource, Req = never> extends BaseExpr<B, Src, Req> {
68
+ readonly expr: Expr<A, Src, Req>;
69
+ readonly f: (value: A) => B;
70
+ readonly kind = "ApplyExpr";
71
+ constructor(expr: Expr<A, Src, Req>, f: (value: A) => B);
72
+ }
73
+ export declare const isEffectExpr: <In = any, Out = any, Src extends AnyResource = AnyResource, Req = any, Req2 = any>(node: any) => node is EffectExpr<In, Out, Src, Req, Req2>;
74
+ export declare class EffectExpr<A, B, Src extends AnyResource, Req = never, Req2 = never> extends BaseExpr<B, Src, Req> {
75
+ readonly expr: Expr<A, Src, Req>;
76
+ readonly f: (value: A) => Effect.Effect<B, never, Req2>;
77
+ readonly kind = "EffectExpr";
78
+ constructor(expr: Expr<A, Src, Req>, f: (value: A) => Effect.Effect<B, never, Req2>);
79
+ }
80
+ export declare const isAllExpr: <Outs extends Expr[] = Expr[]>(node: any) => node is AllExpr<Outs>;
81
+ export declare class AllExpr<Outs extends Expr[]> extends BaseExpr<Outs> {
82
+ readonly outs: Outs;
83
+ readonly kind = "AllExpr";
84
+ constructor(outs: Outs);
85
+ }
86
+ export declare const isRefExpr: <A = any>(node: any) => node is RefExpr<A>;
87
+ export declare class RefExpr<A> extends BaseExpr<A, never, never> {
88
+ readonly stack: string | undefined;
89
+ readonly stage: string | undefined;
90
+ readonly resourceId: string;
91
+ readonly kind = "RefExpr";
92
+ constructor(stack: string | undefined, stage: string | undefined, resourceId: string);
93
+ }
94
+ declare const MissingSourceError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
95
+ readonly _tag: "MissingSourceError";
96
+ } & Readonly<A>;
97
+ export declare class MissingSourceError extends MissingSourceError_base<{
98
+ message: string;
99
+ srcId: string;
100
+ }> {
101
+ }
102
+ declare const InvalidReferenceError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
103
+ readonly _tag: "InvalidReferenceError";
104
+ } & Readonly<A>;
105
+ export declare class InvalidReferenceError extends InvalidReferenceError_base<{
106
+ message: string;
107
+ stack: string;
108
+ stage: string;
109
+ resourceId: string;
110
+ }> {
111
+ }
112
+ export declare const evaluate: <A, Upstream extends AnyResource, Req>(expr: Output<A, Upstream, Req>, upstream: {
113
+ [Id in Upstream["id"]]: Extract<Upstream, {
114
+ id: Id;
115
+ }>["attr"];
116
+ }) => Effect.Effect<A, InvalidReferenceError | MissingSourceError, State.State>;
117
+ export type Upstream<O extends Output<any, any, any>> = O extends Output<infer _V, infer Up, infer _Req> ? {
118
+ [Id in Up["id"]]: Extract<Up, {
119
+ id: Id;
120
+ }>;
121
+ } : never;
122
+ export declare const hasOutputs: (value: any) => value is Output<any, any, any>;
123
+ export declare const upstreamAny: (value: any) => { [ID in string]: Resource; };
124
+ export declare const upstream: <E extends Output<any, AnyResource, any>>(expr: E) => { [Id in keyof Upstream<E>]: Upstream<E>[Id]; };
125
+ export type ResolveUpstream<A> = unknown extends A ? {
126
+ [id: string]: Resource;
127
+ } : A extends undefined | null | boolean | number | string | symbol | bigint ? {} : IsAny<A> extends true ? {} : A extends Output<any, infer Upstream, any> ? {
128
+ [Id in Upstream["id"]]: Extract<Upstream, {
129
+ id: Id;
130
+ }>;
131
+ } : A extends readonly any[] | any[] ? ResolveUpstream<A[number]> : A extends Record<string, any> ? {
132
+ [Id in keyof UnionToIntersection<ResolveUpstream<A[keyof A]>>]: UnionToIntersection<ResolveUpstream<A[keyof A]>>[Id];
133
+ } : {};
134
+ export declare const resolveUpstream: <const A>(value: A) => ResolveUpstream<A>;
135
+ export declare const interpolate: <Args extends any[]>(template: TemplateStringsArray, ...args: Args) => All<Args> extends Output<any, infer Src, infer Req> ? Output<string, Src, Req> : never;
136
+ export declare const all: <Outs extends (Output | Expr)[]>(...outs: Outs) => All<Outs>;
137
+ export type All<Outs extends (Output | Expr)[]> = number extends Outs["length"] ? [Outs[number]] extends [
138
+ Output<infer V, infer Src, infer Req> | Expr<infer V, infer Src, infer Req>
139
+ ] ? Output<V, Src, Req> : never : Tuple<Outs>;
140
+ export type Tuple<Outs extends (Output | Expr)[], Values extends any[] = [], Src extends Resource = never, Req = never> = Outs extends [infer H, ...infer Tail extends (Output | Expr)[]] ? H extends Output<infer V, infer Src2, infer Req2> ? Tuple<Tail, [...Values, V], Src | Src2, Req | Req2> : never : Output<Values, Src, Req>;
141
+ export declare const filter: <Outs extends any[]>(...outs: Outs) => Filter<Outs>;
142
+ export type Filter<Outs extends any[]> = number extends Outs["length"] ? Output<Extract<Outs[number], Output>["value"], Extract<Outs[number], Output>["src"], Extract<Outs[number], Output>["req"]> : FilterTuple<Outs>;
143
+ export type FilterTuple<Outs extends (Output | Expr)[], Values extends any[] = [], Src extends Resource = never> = Outs extends [infer H, ...infer Tail extends (Output | Expr)[]] ? H extends Output<infer V, infer Src2> ? FilterTuple<Tail, [...Values, V], Src | Src2> : FilterTuple<Tail, Values, Src> : Output<Values, Src>;
144
+ export {};
145
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}