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/plan.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
package/lib/policy.d.ts CHANGED
@@ -2,7 +2,7 @@ import * as Effect from "effect/Effect";
2
2
  import * as S from "effect/Schema";
3
3
  import { type AnyBinding, type Bind } from "./binding.ts";
4
4
  import type { Capability } from "./capability.ts";
5
- import type { Runtime } from "./runtime.ts";
5
+ import type { IRuntime, Runtime } from "./runtime.ts";
6
6
  /**
7
7
  * A Policy binds a set of Capbilities (e.g SQS.SendMessage, SQS.Consume, etc.) to a
8
8
  * specific Runtime (e.g. AWS Lambda Function, Cloudflare Worker, etc.).
@@ -12,15 +12,14 @@ import type { Runtime } from "./runtime.ts";
12
12
  *
13
13
  * A Policy is invariant over the set of Capabilities to ensure least-privilege.
14
14
  */
15
- export interface Policy<F extends Runtime, in out Capabilities, Tags = unknown> {
15
+ export interface Policy<F extends IRuntime, in out Capabilities, Tags = unknown> {
16
+ readonly kind: "alchemy/Policy";
16
17
  readonly runtime: F;
17
18
  readonly tags: Tags[];
18
19
  readonly capabilities: Capabilities[];
19
20
  /** Add more Capabilities to a Policy */
20
21
  and<B extends AnyBinding[]>(...bindings: B): Policy<F, B[number]["capability"] | Capabilities, BindingTags<B[number]> | Exclude<Tags, unknown>>;
21
22
  }
22
- export type $<T> = Instance<T>;
23
- export declare const $: typeof Policy;
24
23
  type BindingTags<B extends AnyBinding> = B extends any ? Bind<B["runtime"], B["capability"], Extract<B["tag"], string>> : never;
25
24
  export declare function Policy<F extends Runtime>(): Policy<F, never, never>;
26
25
  export declare function Policy<B extends AnyBinding[]>(...capabilities: B): Policy<B[number]["runtime"], B[number]["capability"], BindingTags<B[number]>>;
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
package/lib/policy.js CHANGED
@@ -2,7 +2,6 @@ import * as Context from "effect/Context";
2
2
  import * as Effect from "effect/Effect";
3
3
  import * as S from "effect/Schema";
4
4
  import {} from "./binding.js";
5
- export const $ = Policy;
6
5
  export function Policy(...bindings) {
7
6
  return {
8
7
  runtime: bindings[0]?.["runtime"],
package/lib/policy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AACnC,OAAO,EAA8B,MAAM,cAAc,CAAC;AAkC1D,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAcxB,MAAM,UAAU,MAAM,CAAC,GAAG,QAAsB;IAC9C,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;QACjC,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QAC/C,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAU,CAAC,EAAE,CAAC;QACtD,QAAQ;QACR,GAAG,EAAE,CAAC,GAAG,EAAgB,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,QAAQ,EAAE,GAAG,EAAE,CAAC;KAIzD,CAAC;AACJ,CAAC;AAED,WAAiB,MAAM;IAMR,YAAK,GAAG,CAAU,GAAG,KAAU,EAAwB,EAAE,CAAC,CAAC;QACtE,KAAK,EAAE,KAAwB;KAChC,CAAC,CAAC;IAEU,WAAI,GAAG,CAIlB,OAAgB,EAChB,SAAoB,EACpB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAA6B,CAAC;IA4BzD,4FAA4F;IAC/E,YAAK,GAAG,GAAS,EAAE,CAAC,SAAU,CAAC;AAC9C,CAAC,EA9CgB,MAAM,KAAN,MAAM,QA8CtB;AAED,8DAA8D;AAC9D,MAAM,CAAC,MAAM,OAAO,GAAG,GAAyB,EAAE,CAChD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAK,CAAC,CAAkC,CAAC"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AACnC,OAAO,EAA8B,MAAM,cAAc,CAAC;AA8C1D,MAAM,UAAU,MAAM,CAAC,GAAG,QAAsB;IAC9C,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;QACjC,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QAC/C,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAU,CAAC,EAAE,CAAC;QACtD,QAAQ;QACR,GAAG,EAAE,CAAC,GAAG,EAAgB,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,QAAQ,EAAE,GAAG,EAAE,CAAC;KAIzD,CAAC;AACJ,CAAC;AAED,WAAiB,MAAM;IAMR,YAAK,GAAG,CAAU,GAAG,KAAU,EAAwB,EAAE,CAAC,CAAC;QACtE,KAAK,EAAE,KAAwB;KAChC,CAAC,CAAC;IAEU,WAAI,GAAG,CAIlB,OAAgB,EAChB,SAAoB,EACpB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAA6B,CAAC;IA4BzD,4FAA4F;IAC/E,YAAK,GAAG,GAAS,EAAE,CAAC,SAAU,CAAC;AAC9C,CAAC,EA9CgB,MAAM,KAAN,MAAM,QA8CtB;AAED,8DAA8D;AAC9D,MAAM,CAAC,MAAM,OAAO,GAAG,GAAyB,EAAE,CAChD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAK,CAAC,CAAkC,CAAC"}
package/lib/provider.d.ts CHANGED
@@ -1,57 +1,72 @@
1
1
  import * as Context from "effect/Context";
2
- import type * as Effect from "effect/Effect";
3
- import type { ScopedPlanStatusSession } from "./apply.ts";
2
+ import * as Effect from "effect/Effect";
3
+ import type { ScopedPlanStatusSession } from "./cli/service.ts";
4
+ import type { Diff } from "./diff.ts";
5
+ import type { Input } from "./input.ts";
4
6
  import type { Resource } from "./resource.ts";
5
7
  import type { Runtime } from "./runtime.ts";
6
- export type Provider<R extends Resource> = Context.TagClass<Provider<R>, R["type"], ProviderService<R>>;
7
- export type Diff = {
8
- action: "update" | "noop";
9
- deleteFirst?: undefined;
10
- } | {
11
- action: "replace";
12
- deleteFirst?: boolean;
13
- };
8
+ import type { Service } from "./service.ts";
9
+ export interface Provider<R extends Resource | Service> extends Context.TagClass<Provider<R>, R["type"], ProviderService<any>> {
10
+ }
14
11
  type BindingData<Res extends Resource> = [Res] extends [Runtime] ? Res["binding"][] : any[];
15
- export interface ProviderService<Res extends Resource = Resource> {
12
+ type Props<Res extends Resource> = Input.ResolveOpaque<Res["props"]>;
13
+ export interface ProviderService<Res extends Resource = Resource, ReadReq = never, DiffReq = never, PrecreateReq = never, CreateReq = never, UpdateReq = never, DeleteReq = never> {
14
+ /**
15
+ * The version of the provider.
16
+ *
17
+ * @default 0
18
+ */
19
+ version?: number;
16
20
  read?(input: {
17
21
  id: string;
18
- olds: Res["props"] | undefined;
22
+ instanceId: string;
23
+ olds: Props<Res> | undefined;
19
24
  output: Res["attr"] | undefined;
20
25
  session: ScopedPlanStatusSession;
21
26
  bindings: BindingData<Res>;
22
- }): Effect.Effect<Res["attr"] | undefined, any, never>;
27
+ }): Effect.Effect<Res["attr"] | undefined, any, ReadReq>;
28
+ /**
29
+ * Properties that are always stable across any update.
30
+ */
31
+ stables?: Extract<keyof Res["attr"], string>[];
23
32
  diff?(input: {
24
33
  id: string;
25
- olds: Res["props"];
34
+ olds: Props<Res>;
35
+ instanceId: string;
26
36
  news: Res["props"];
27
37
  output: Res["attr"];
28
- }): Effect.Effect<Diff | void, never, never>;
38
+ }): Effect.Effect<Diff | void, never, DiffReq>;
29
39
  precreate?(input: {
30
40
  id: string;
31
- news: Res["props"];
41
+ news: Props<Res>;
42
+ instanceId: string;
32
43
  session: ScopedPlanStatusSession;
33
- }): Effect.Effect<Res["attr"], any, never>;
44
+ }): Effect.Effect<Res["attr"], any, PrecreateReq>;
34
45
  create(input: {
35
46
  id: string;
36
- news: Res["props"];
47
+ instanceId: string;
48
+ news: Props<Res>;
37
49
  session: ScopedPlanStatusSession;
38
50
  bindings: BindingData<Res>;
39
- }): Effect.Effect<Res["attr"], any, never>;
51
+ }): Effect.Effect<Res["attr"], any, CreateReq>;
40
52
  update(input: {
41
53
  id: string;
42
- news: Res["props"];
43
- olds: Res["props"];
54
+ instanceId: string;
55
+ news: Props<Res>;
56
+ olds: Props<Res>;
44
57
  output: Res["attr"];
45
58
  session: ScopedPlanStatusSession;
46
59
  bindings: BindingData<Res>;
47
- }): Effect.Effect<Res["attr"], any, never>;
60
+ }): Effect.Effect<Res["attr"], any, UpdateReq>;
48
61
  delete(input: {
49
62
  id: string;
50
- olds: Res["props"];
63
+ instanceId: string;
64
+ olds: Props<Res>;
51
65
  output: Res["attr"];
52
66
  session: ScopedPlanStatusSession;
53
67
  bindings: BindingData<Res>;
54
- }): Effect.Effect<void, any, never>;
68
+ }): Effect.Effect<void, any, DeleteReq>;
55
69
  }
70
+ export declare const getProviderByType: (resourceType: string) => Effect.Effect<ProviderService<Resource<string, string, unknown, unknown, unknown>, never, never, never, never, never, never>, never, never>;
56
71
  export {};
57
72
  //# sourceMappingURL=provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
package/lib/provider.js CHANGED
@@ -1,2 +1,11 @@
1
1
  import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ export const getProviderByType = Effect.fnUntraced(function* (resourceType) {
4
+ const context = yield* Effect.context();
5
+ const provider = context.unsafeMap.get(resourceType);
6
+ if (!provider) {
7
+ return yield* Effect.die(new Error(`Provider not found for ${resourceType}`));
8
+ }
9
+ return provider;
10
+ });
2
11
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAoGxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC1D,YAAoB;IAEpB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAS,CAAC;IAC/C,MAAM,QAAQ,GAAoB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CACpD,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/lib/ref.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import type { Resource, AnyResource } from "./resource.ts";
2
+ export declare const isRef: (s: any) => s is Ref<any>;
3
+ export declare const getRefMetadata: <R extends Resource<string, string, any, any>>(ref: Ref<R>) => RefMetadata<R>;
4
+ export interface Ref<R extends Resource<string, string, any, any> = AnyResource> {
5
+ /** @internal phantom */
6
+ Ref: R;
7
+ }
8
+ export interface RefMetadata<R extends Resource<string, string, any, any>> {
9
+ stack?: string;
10
+ stage?: string;
11
+ resourceId: R["id"];
12
+ }
13
+ export declare const ref: <R extends Resource<string, string, any, any>>({ stack, resourceId, stage, }: RefMetadata<R>) => Ref<R>;
14
+ //# sourceMappingURL=ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../src/ref.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM3D,eAAO,MAAM,KAAK,GAAI,GAAG,GAAG,KAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CACR,CAAC;AAEpC,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EACzE,KAAK,GAAG,CAAC,CAAC,CAAC,KACV,WAAW,CAAC,CAAC,CAA8B,CAAC;AAE/C,MAAM,WAAW,GAAG,CAClB,CAAC,SAAS,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,WAAW;IAE1D,wBAAwB;IACxB,GAAG,EAAE,CAAC,CAAC;CACR;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;CACrB;AAED,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,+BAI/D,WAAW,CAAC,CAAC,CAAC,KAAG,GAAG,CAAC,CAAC,CAiBxB,CAAC"}
package/lib/ref.js ADDED
@@ -0,0 +1,21 @@
1
+ import * as Output from "./output.js";
2
+ // special runtime-only symbol for probing the Ref proxy for its metadata
3
+ const RefMetadata = Symbol.for("alchemy/RefMetadata");
4
+ export const isRef = (s) => s && s[RefMetadata] !== undefined;
5
+ export const getRefMetadata = (ref) => ref[RefMetadata];
6
+ export const ref = ({ stack, resourceId, stage, }) => {
7
+ const ref = new Proxy({}, {
8
+ get: (_, prop) => {
9
+ if (prop === RefMetadata) {
10
+ return {
11
+ stack,
12
+ stage,
13
+ resourceId,
14
+ };
15
+ }
16
+ return Output.of(ref)[prop];
17
+ },
18
+ });
19
+ return ref;
20
+ };
21
+ //# sourceMappingURL=ref.js.map
package/lib/ref.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.js","sourceRoot":"","sources":["../src/ref.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,yEAAyE;AACzE,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAM,EAAiB,EAAE,CAC7C,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC;AAEpC,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,GAAW,EACK,EAAE,CAAE,GAAW,CAAC,WAAW,CAAC,CAAC;AAe/C,MAAM,CAAC,MAAM,GAAG,GAAG,CAA+C,EAChE,KAAK,EACL,UAAU,EACV,KAAK,GACU,EAAU,EAAE;IAC3B,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,EAAE,EACF;QACE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;YACf,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;gBACzB,OAAO;oBACL,KAAK;oBACL,KAAK;oBACL,UAAU;iBACX,CAAC;YACJ,CAAC;YACD,OAAQ,MAAM,CAAC,EAAE,CAAC,GAAG,CAAS,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;KACF,CACQ,CAAC;IACZ,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
package/lib/resource.d.ts CHANGED
@@ -1,27 +1,32 @@
1
- import * as Context from "effect/Context";
2
1
  import type { Effect } from "effect/Effect";
3
2
  import * as Layer from "effect/Layer";
4
3
  import type { Provider, ProviderService } from "./provider.ts";
5
4
  export declare const isResource: (r: any) => r is Resource;
6
- export interface Resource<Type extends string = string, ID extends string = string, Props = unknown, Attrs = unknown> {
5
+ export type AnyResource = Resource<string, string, any, any>;
6
+ export interface IResource<Type extends string = string, ID extends string = string, Props = unknown, Attrs = unknown, Base = unknown> {
7
7
  id: ID;
8
8
  type: Type;
9
+ Props: unknown;
9
10
  props: Props;
11
+ base: Base;
12
+ /** @internal phantom */
10
13
  attr: Attrs;
11
- parent: unknown;
12
- new (): Resource<Type, ID, Props, Attrs>;
13
14
  }
14
- export interface ResourceTags<R extends Resource> {
15
+ export interface Resource<Type extends string = string, ID extends string = string, Props = unknown, Attrs = unknown, Base = unknown> extends IResource<Type, ID, Props, Attrs, Base> {
16
+ new (): Resource<Type, ID, Props, Attrs, Base>;
17
+ }
18
+ export interface ResourceTags<R extends Resource<string, string, any, any>> {
15
19
  of<S extends ProviderService<R>>(service: S): S;
16
- tag: Context.TagClass<Provider<R>, R["type"], ProviderService<R>>;
17
- effect<Err, Req>(eff: Effect<ProviderService<R>, Err, Req>): Layer.Layer<Provider<R>, Err, Req>;
18
- succeed(service: ProviderService<R>): Layer.Layer<Provider<R>>;
20
+ tag: Provider<R>;
21
+ effect<Err, Req, ReadReq = never, DiffReq = never, PrecreateReq = never, CreateReq = never, UpdateReq = never, DeleteReq = never>(eff: Effect<ProviderService<R, ReadReq, DiffReq, PrecreateReq, CreateReq, UpdateReq, DeleteReq>, Err, Req>): Layer.Layer<Provider<R>, Err, Req | ReadReq | DiffReq | PrecreateReq | CreateReq | UpdateReq | DeleteReq>;
22
+ succeed<ReadReq = never, DiffReq = never, PrecreateReq = never, CreateReq = never, UpdateReq = never, DeleteReq = never>(service: ProviderService<R, ReadReq, DiffReq, PrecreateReq, CreateReq, UpdateReq, DeleteReq>): Layer.Layer<Provider<R>, never, ReadReq | DiffReq | PrecreateReq | CreateReq | UpdateReq | DeleteReq>;
19
23
  }
20
24
  export declare const Resource: <Ctor extends (id: string, props: any) => Resource>(type: ReturnType<Ctor>["type"]) => Ctor & {
21
25
  new (): ReturnType<Ctor> & {
22
26
  parent: ReturnType<Ctor>;
23
27
  };
24
28
  type: ReturnType<Ctor>["type"];
29
+ parent: ReturnType<Ctor>;
25
30
  provider: ResourceTags<ReturnType<Ctor>>;
26
31
  } & {
27
32
  type: ReturnType<Ctor>["type"];
@@ -1 +1 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/D,eAAO,MAAM,UAAU,GAAI,GAAG,GAAG,KAAG,CAAC,IAAI,QAIxC,CAAC;AAEF,MAAM,WAAW,QAAQ,CACvB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,EAAE,SAAS,MAAM,GAAG,MAAM,EAC1B,KAAK,GAAG,OAAO,EACf,KAAK,GAAG,OAAO;IAEf,EAAE,EAAE,EAAE,CAAC;IACP,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAEhB,QAAQ,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,QAAQ;IAC9C,EAAE,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IAChD,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,GAAG,EAAE,GAAG,EACb,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GACxC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;CAChE;AAED,eAAO,MAAM,QAAQ,GAAI,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,QAAQ,EACxE,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YAsBlB,UAAU,CAAC,IAAI,CAAC,GAAG;QACzB,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;KAC1B;UAHK,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;;;;;CAWnC,CAAC"}
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAM,EAAiB,EAAE;IAClD,OAAO,CACL,CAAC,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,CACzE,CAAC;AACJ,CAAC,CAAC;AA0BF,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,IAA8B,EAC9B,EAAE;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAmC;QAC/C,GAAG,EAAE,GAAU;QACf,MAAM,EAAE,CACN,GAAwD,EACxD,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;QAC3B,OAAO,EAAE,CAAC,OAA0C,EAAE,EAAE,CACtD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC;QAC7B,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO;KACzB,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAClB,UAAU,EAAU,EAAE,KAAU;QAC9B,OAAO,MAAM,QAAQ;YACnB,MAAM,CAAU,EAAE,GAAG,EAAE,CAAC;YACxB,MAAM,CAAU,IAAI,GAAG,IAAI,CAAC;YAC5B,MAAM,CAAU,KAAK,GAAG,KAAK,CAAC;YAC9B,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC;SACrC,CAAC;IACJ,CAMC,EACD;QACE,IAAI,EAAE,IAAI;QACV,QAAQ;KACT,CACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAM,EAAiB,EAAE;IAClD,OAAO,CACL,CAAC,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,CACzE,CAAC;AACJ,CAAC,CAAC;AAqFF,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,IAA8B,EAC9B,EAAE;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAmC;QAC/C,GAAG,EAAE,GAAU;QACf,MAAM,EAAE,CACN,GAAwD,EACxD,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;QAC3B,OAAO,EAAE,CAAC,OAA0C,EAAE,EAAE,CACtD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC;QAC7B,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO;KACzB,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAClB,UAAU,EAAU,EAAE,KAAU;QAC9B,OAAO,MAAM,QAAQ;YACnB,MAAM,CAAU,EAAE,GAAG,EAAE,CAAC;YACxB,MAAM,CAAU,IAAI,GAAG,IAAI,CAAC;YAC5B,MAAM,CAAU,KAAK,GAAG,KAAK,CAAC;YAC9B,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC;SACrC,CAAC;IACJ,CAOC,EACD;QACE,IAAI,EAAE,IAAI;QACV,QAAQ;KACT,CACF,CAAC;AACJ,CAAC,CAAC"}
package/lib/runtime.d.ts CHANGED
@@ -2,7 +2,7 @@ import type { Types } from "effect";
2
2
  import * as Effect from "effect/Effect";
3
3
  import type { Capability } from "./capability.ts";
4
4
  import type { Policy } from "./policy.ts";
5
- import type { Resource, ResourceTags } from "./resource.ts";
5
+ import type { IResource, Resource, ResourceTags } from "./resource.ts";
6
6
  import type { Service } from "./service.ts";
7
7
  export type RuntimeHandler<Inputs extends any[] = any[], Output = any, Err = any, Req = any> = (...inputs: Inputs) => Effect.Effect<Output, Err, Req>;
8
8
  export declare namespace RuntimeHandler {
@@ -19,21 +19,22 @@ export declare namespace Runtime {
19
19
  };
20
20
  }
21
21
  export type AnyRuntime = Runtime<string>;
22
- export interface RuntimeProps<Run extends Runtime, Req> {
22
+ export interface RuntimeProps<Run extends IRuntime, Req> {
23
23
  bindings: Policy<Run, Extract<Req, Capability>, unknown>;
24
24
  }
25
- export interface Runtime<Type extends string = string, Handler = unknown, Props = unknown> extends Resource<Type, string, Props, unknown> {
25
+ export interface IRuntime<Type extends string = string, Handler = unknown, Props = unknown> extends IResource<Type, string, Props> {
26
26
  type: Type;
27
27
  props: Props;
28
28
  handler: Handler;
29
29
  binding: unknown;
30
30
  /** @internal phantom */
31
31
  capability: unknown;
32
+ }
33
+ export interface Runtime<Type extends string = string, Handler = unknown, Props = unknown> extends IRuntime<Type, Handler, Props>, Resource<Type, string, Props> {
34
+ provider: ResourceTags<this>;
32
35
  <const ID extends string, Inputs extends any[], Output, Err, Req, Handler extends RuntimeHandler<Inputs, Output, Err, Req>>(id: ID, { handle }: {
33
36
  handle: Handler;
34
37
  }): <const Props extends this["props"]>(props: Props) => Service<ID, this, Handler, Props>;
35
38
  }
36
- export declare const Runtime: <const Type extends string>(type: Type) => <Self extends Runtime>() => Self & {
37
- provider: ResourceTags<Self>;
38
- };
39
+ export declare const Runtime: <const Type extends string>(type: Type) => <Self extends Runtime>() => Self;
39
40
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAwEtC,MAAM,CAAC,MAAM,OAAO,GAClB,CAA4B,IAAU,EAAE,EAAE,CAC1C,GAEE,EAAE;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG;QACf,GAAG,EAAE,GAAG;QACR,MAAM,EAAE,CAAC,GAAmD,EAAE,EAAE,CAC9D,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;QACxB,OAAO,EAAE,CAAC,OAA8B,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC;KACzE,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CACxB,CACE,GAAG,IAKE,EACL,EAAE;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACnB,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAY,CAAC;YACvC,OAAO,KAAM,SAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAgB;gBACnD,UAAU,GAAG,GAAG,CAAC;aAClB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;YAC9B,OAAO,CAA8C,KAAY,EAAE,EAAE,CACnE,MAAM,CAAC,MAAM,CACX;gBACE;oBACE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBAC3D,CAAC;aACF,EACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI;gBACJ,EAAE;gBACF,IAAI,EAAE,SAAU;gBAChB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAa,CAAC;gBACtC,KAAK;gBACL,OAAO,EAAE,IAAI;gBACb,4BAA4B;gBAC5B,MAAM,EAAE,IAAI;gBACZ,mBAAmB;gBACnB,QAAQ;aACkC,CAC7C,CAAC;QACN,CAAC;IACH,CAAC,EACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,IAAI;QACV,EAAE,EAAE,SAAoB;QACxB,UAAU,EAAE,SAA0B;QACtC,QAAQ;QACR,QAAQ;YACN,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,GAC5B,IAAI,CAAC,UAAU,EAAE,MAAM;gBACrB,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACtD,CAAC,CAAC,EACN,GAAG,CAAC;QACN,CAAC;KACF,CACiB,CAAC;IACrB,OAAO,IAAW,CAAC;AACrB,CAAC,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAiFtC,MAAM,CAAC,MAAM,OAAO,GAClB,CAA4B,IAAU,EAAE,EAAE,CAC1C,GAA+B,EAAE;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG;QACf,GAAG,EAAE,GAAG;QACR,MAAM,EAAE,CAAC,GAAmD,EAAE,EAAE,CAC9D,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;QACxB,OAAO,EAAE,CAAC,OAA8B,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC;KACzE,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CACxB,CACE,GAAG,IAKE,EACL,EAAE;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACnB,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAY,CAAC;YACvC,OAAO,KAAM,SAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAgB;gBACnD,UAAU,GAAG,GAAG,CAAC;aAClB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;YAC9B,OAAO,CAA8C,KAAY,EAAE,EAAE,CACnE,MAAM,CAAC,MAAM,CACX;gBACE;oBACE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBAC3D,CAAC;aACF,EACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI;gBACJ,EAAE;gBACF,IAAI,EAAE,SAAU;gBAChB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAa,CAAC;gBACtC,KAAK;gBACL,OAAO,EAAE,IAAI;gBACb,4BAA4B;gBAC5B,MAAM,EAAE,IAAI;gBACZ,mBAAmB;gBACnB,QAAQ;aACwC,CACnD,CAAC;QACN,CAAC;IACH,CAAC,EACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,IAAI;QACV,EAAE,EAAE,SAAoB;QACxB,UAAU,EAAE,SAA0B;QACtC,QAAQ;QACR,QAAQ;YACN,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,GAC5B,IAAI,CAAC,UAAU,EAAE,MAAM;gBACrB,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACtD,CAAC,CAAC,EACN,GAAG,CAAC;QACN,CAAC;KACF,CACiB,CAAC;IACrB,OAAO,IAAW,CAAC;AACrB,CAAC,CAAC"}
package/lib/service.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import type { Effect } from "effect/Effect";
2
2
  import type { Capability } from "./capability.ts";
3
- import type { Resource } from "./resource.ts";
4
- import type { Runtime, RuntimeHandler, RuntimeProps } from "./runtime.ts";
5
- export interface IService<ID extends string = string, F extends Runtime = Runtime, Handler extends RuntimeHandler = RuntimeHandler, Props extends RuntimeProps<F, any> = RuntimeProps<F, any>, Attr = (F & {
3
+ import type { IResource } from "./resource.ts";
4
+ import type { IRuntime, RuntimeHandler, RuntimeProps } from "./runtime.ts";
5
+ export interface IService<ID extends string = string, F extends IRuntime = IRuntime, Handler extends RuntimeHandler = RuntimeHandler, Props extends RuntimeProps<F, any> = RuntimeProps<F, any>, Attr = (F & {
6
6
  props: Props;
7
- })["attr"]> extends Resource<F["type"], ID, Props, Attr> {
7
+ })["attr"], Base = unknown> extends IResource<F["type"], ID, Props, Attr, F> {
8
8
  kind: "Service";
9
9
  type: F["type"];
10
10
  id: ID;
@@ -24,10 +24,13 @@ export interface IService<ID extends string = string, F extends Runtime = Runtim
24
24
  attr: Attr;
25
25
  /** @internal phantom type of this resource's parent */
26
26
  parent: unknown;
27
+ new (): Service<ID, F, Handler, Props, Attr, Base>;
27
28
  }
28
- export interface Service<ID extends string = string, F extends Runtime = Runtime, Handler extends RuntimeHandler = RuntimeHandler, Props extends RuntimeProps<F, any> = RuntimeProps<F, any>, Attr = (F & {
29
+ export interface AnyService extends IService {
30
+ }
31
+ export interface Service<ID extends string = string, F extends IRuntime = IRuntime, Handler extends RuntimeHandler = RuntimeHandler, Props extends RuntimeProps<F, any> = RuntimeProps<F, any>, Attr = (F & {
29
32
  props: Props;
30
- })["attr"]> extends IService<ID, F, Handler, Props, Attr>, Resource<F["type"], ID, Props, Attr> {
33
+ })["attr"], Base = unknown> extends IService<ID, F, Handler, Props, Attr, Base> {
31
34
  }
32
35
  export declare const isService: (resource: any) => resource is IService;
33
36
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1E,MAAM,WAAW,QAAQ,CACvB,EAAE,SAAS,MAAM,GAAG,MAAM,EAC1B,CAAC,SAAS,OAAO,GAAG,OAAO,EAC3B,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,KAAK,SAAS,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,EACzD,IAAI,GAAG,CAAC,CAAC,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC,MAAM,CAAC,CACrC,SAAQ,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC;IAC5C,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAChB,EAAE,EAAE,EAAE,CAAC;IACP,OAAO,EAAE,CAAC,CAAC;IACX;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,OAAO,EAAE,MAAM,CACb,CACE,GAAG,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,KAC3B,MAAM,CACT,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EACnC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EACjC,KAAK,CACN,EACD,KAAK,EACL,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CACzD,CAAC;IACF,KAAK,EAAE,KAAK,CAAC;IACb,kEAAkE;IAClE,IAAI,EAAE,IAAI,CAAC;IACX,uDAAuD;IACvD,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,OAAO,CACtB,EAAE,SAAS,MAAM,GAAG,MAAM,EAC1B,CAAC,SAAS,OAAO,GAAG,OAAO,EAC3B,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,KAAK,SAAS,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,EACzD,IAAI,GAAG,CAAC,CAAC,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC,MAAM,CAAC,CACrC,SAAQ,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAC3C,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC;CAAG;AAE3C,eAAO,MAAM,SAAS,GAAI,UAAU,GAAG,KAAG,QAAQ,IAAI,QAErD,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE3E,MAAM,WAAW,QAAQ,CACvB,EAAE,SAAS,MAAM,GAAG,MAAM,EAC1B,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,KAAK,SAAS,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,EACzD,IAAI,GAAG,CAAC,CAAC,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC,MAAM,CAAC,EACrC,IAAI,GAAG,OAAO,CACd,SAAQ,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAChB,EAAE,EAAE,EAAE,CAAC;IACP,OAAO,EAAE,CAAC,CAAC;IACX;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,OAAO,EAAE,MAAM,CACb,CACE,GAAG,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,KAC3B,MAAM,CACT,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EACnC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EACjC,KAAK,CACN,EACD,KAAK,EACL,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CACzD,CAAC;IACF,KAAK,EAAE,KAAK,CAAC;IACb,kEAAkE;IAClE,IAAI,EAAE,IAAI,CAAC;IACX,uDAAuD;IACvD,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,UAAW,SAAQ,QAAQ;CAAG;AAE/C,MAAM,WAAW,OAAO,CACtB,EAAE,SAAS,MAAM,GAAG,MAAM,EAC1B,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAC7B,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,KAAK,SAAS,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,EACzD,IAAI,GAAG,CAAC,CAAC,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC,MAAM,CAAC,EACrC,IAAI,GAAG,OAAO,CACd,SAAQ,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;CAAG;AAExD,eAAO,MAAM,SAAS,GAAI,UAAU,GAAG,KAAG,QAAQ,IAAI,QAErD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAoDA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAa,EAAwB,EAAE;IAC/D,OAAO,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC;AACjD,CAAC,CAAC"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAwDA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAa,EAAwB,EAAE;IAC/D,OAAO,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC;AACjD,CAAC,CAAC"}
package/lib/stack.d.ts ADDED
@@ -0,0 +1,60 @@
1
+ import type { HttpClient } from "@effect/platform/HttpClient";
2
+ import { FileSystem } from "@effect/platform/FileSystem";
3
+ import { Path } from "@effect/platform/Path";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Layer from "effect/Layer";
6
+ import * as App from "./app.ts";
7
+ import { type AppliedPlan } from "./apply.ts";
8
+ import { DotAlchemy } from "./dot-alchemy.ts";
9
+ import type { DerivePlan, Providers, TraverseResources } from "./plan.ts";
10
+ import type { Instance } from "./policy.ts";
11
+ import type { AnyResource } from "./resource.ts";
12
+ import type { AnyService } from "./service.ts";
13
+ import { type StageConfig, type Stages } from "./stage.ts";
14
+ import * as State from "./state.ts";
15
+ import type { Ref } from "./ref.ts";
16
+ import type { CLI } from "./cli/service.ts";
17
+ export declare const defineStack: <const Name extends string, Resources extends (AnyResource | AnyService)[], Req = never, Err = never>(stack: StackConfig<Name, Resources, Req, Err>) => Stack<Name, Instance<Resources[number]>, Req, Err>;
18
+ export type StackConfig<Name extends string, Resources extends (AnyResource | AnyService)[] = (AnyResource | AnyService)[], StagesReq = never, StagesErr = never, TapReq = never, TapErr = never> = {
19
+ name: Name;
20
+ stages: Stages<StagesReq, StagesErr>;
21
+ resources: Resources;
22
+ providers: Layer.Layer<Providers<Instance<Resources[number]>>, any, App.App | FileSystem | Path | DotAlchemy | HttpClient>;
23
+ state?: Layer.Layer<State.State>;
24
+ tap?: (output: StackOutput<Instance<Resources[number]>>) => Effect.Effect<any, TapErr, TapReq>;
25
+ } & (Exclude<NoInfer<StagesReq | TapReq>, BuiltInServices> extends never ? {
26
+ layers?: never;
27
+ } : {
28
+ layers: Layer.Layer<Exclude<StagesReq | TapReq, BuiltInServices>, never, never>;
29
+ });
30
+ export type StackOutput<Resources extends AnyResource | AnyService> = AppliedPlan<DerivePlan<Resources>>;
31
+ export type Stack<Name extends string = string, Resources extends AnyResource | AnyService = any, StagesReq = any, StagesErr = any, TapReq = any, TapErr = any> = {
32
+ name: Name;
33
+ stages: Stages<StagesReq, StagesErr>;
34
+ resources: Resources[];
35
+ providers: Layer.Layer<Providers<Resources>, any, BuiltInServices>;
36
+ state?: Layer.Layer<State.State>;
37
+ cli?: Layer.Layer<CLI>;
38
+ tap?: (output: StackOutput<Resources>) => Effect.Effect<void, TapErr, TapReq>;
39
+ } & (Exclude<StagesReq | TapReq, BuiltInServices> extends never ? {
40
+ layers?: never;
41
+ } : {
42
+ layers: Layer.Layer<Exclude<StagesReq | TapReq, BuiltInServices>, never, never>;
43
+ });
44
+ export type StackName<S extends Stack> = S extends Stack<infer Name, infer _> ? Name : never;
45
+ export type StackResources<S extends Stack> = S extends Stack<infer _, infer Resources> ? Resources : never;
46
+ export type BuiltInServices = App.App | FileSystem | Path | DotAlchemy | HttpClient;
47
+ export interface StackRefConfig<S extends Stack> extends StageConfig {
48
+ stack: S extends Stack<infer Name, any> ? Name : never;
49
+ stage?: string;
50
+ }
51
+ export type StackRef<Resources extends AnyResource | AnyService> = {
52
+ [Id in keyof AsRecord<Resources>]: Ref<AsRecord<Resources>[Id]>;
53
+ };
54
+ type AsRecord<Resources extends AnyResource | AnyService> = {
55
+ [Id in TraverseResources<Resources>["id"]]: Extract<TraverseResources<Resources>, {
56
+ id: Id;
57
+ }>;
58
+ };
59
+ export {};
60
+ //# sourceMappingURL=stack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../src/stack.ts"],"names":[],"mappings":"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"}
package/lib/stack.js ADDED
@@ -0,0 +1,11 @@
1
+ import { FileSystem } from "@effect/platform/FileSystem";
2
+ import { Path } from "@effect/platform/Path";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Layer from "effect/Layer";
5
+ import * as App from "./app.js";
6
+ import {} from "./apply.js";
7
+ import { DotAlchemy } from "./dot-alchemy.js";
8
+ import {} from "./stage.js";
9
+ import * as State from "./state.js";
10
+ export const defineStack = (stack) => stack;
11
+ //# sourceMappingURL=stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.js","sourceRoot":"","sources":["../src/stack.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAoB,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,OAAO,EAAiC,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAIpC,MAAM,CAAC,MAAM,WAAW,GAAG,CAMzB,KAA6C,EACO,EAAE,CAAC,KAAY,CAAC"}