alchemy-effect 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. package/bin/alchemy-effect.js +55038 -8
  2. package/bin/alchemy-effect.js.map +1 -1
  3. package/bin/alchemy-effect.ts +266 -10
  4. package/lib/$.d.ts +5 -0
  5. package/lib/$.d.ts.map +1 -0
  6. package/lib/$.js +9 -0
  7. package/lib/$.js.map +1 -0
  8. package/lib/app.d.ts +4 -17
  9. package/lib/app.d.ts.map +1 -1
  10. package/lib/app.js +0 -20
  11. package/lib/app.js.map +1 -1
  12. package/lib/apply.d.ts +14 -74
  13. package/lib/apply.d.ts.map +1 -1
  14. package/lib/apply.js +62 -57
  15. package/lib/apply.js.map +1 -1
  16. package/lib/assert-never.d.ts +12 -0
  17. package/lib/assert-never.d.ts.map +1 -0
  18. package/lib/assert-never.js +11 -0
  19. package/lib/assert-never.js.map +1 -0
  20. package/lib/aws/account.d.ts +10 -1
  21. package/lib/aws/account.d.ts.map +1 -1
  22. package/lib/aws/account.js +18 -3
  23. package/lib/aws/account.js.map +1 -1
  24. package/lib/aws/client.d.ts.map +1 -1
  25. package/lib/aws/client.js +0 -1
  26. package/lib/aws/client.js.map +1 -1
  27. package/lib/aws/config.d.ts +15 -0
  28. package/lib/aws/config.d.ts.map +1 -0
  29. package/lib/aws/config.js +1 -0
  30. package/lib/aws/config.js.map +1 -0
  31. package/lib/aws/credentials.d.ts +10 -0
  32. package/lib/aws/credentials.d.ts.map +1 -1
  33. package/lib/aws/credentials.js +73 -47
  34. package/lib/aws/credentials.js.map +1 -1
  35. package/lib/aws/dynamodb/client.d.ts +1 -1
  36. package/lib/aws/dynamodb/client.d.ts.map +1 -1
  37. package/lib/aws/dynamodb/index.d.ts +2 -1
  38. package/lib/aws/dynamodb/index.d.ts.map +1 -1
  39. package/lib/aws/dynamodb/index.js +1 -2
  40. package/lib/aws/dynamodb/index.js.map +1 -1
  41. package/lib/aws/dynamodb/secondary-index.d.ts +5 -4
  42. package/lib/aws/dynamodb/secondary-index.d.ts.map +1 -1
  43. package/lib/aws/dynamodb/table.d.ts +23 -20
  44. package/lib/aws/dynamodb/table.d.ts.map +1 -1
  45. package/lib/aws/dynamodb/table.get-item.d.ts +8 -6
  46. package/lib/aws/dynamodb/table.get-item.d.ts.map +1 -1
  47. package/lib/aws/dynamodb/table.get-item.js +4 -2
  48. package/lib/aws/dynamodb/table.get-item.js.map +1 -1
  49. package/lib/aws/dynamodb/table.js.map +1 -1
  50. package/lib/aws/dynamodb/table.provider.d.ts +3 -4
  51. package/lib/aws/dynamodb/table.provider.d.ts.map +1 -1
  52. package/lib/aws/dynamodb/table.provider.js +17 -29
  53. package/lib/aws/dynamodb/table.provider.js.map +1 -1
  54. package/lib/aws/ec2/client.d.ts +1 -1
  55. package/lib/aws/ec2/client.d.ts.map +1 -1
  56. package/lib/aws/ec2/index.d.ts +3 -0
  57. package/lib/aws/ec2/index.d.ts.map +1 -1
  58. package/lib/aws/ec2/index.js +3 -0
  59. package/lib/aws/ec2/index.js.map +1 -1
  60. package/lib/aws/ec2/subnet.d.ts +175 -0
  61. package/lib/aws/ec2/subnet.d.ts.map +1 -0
  62. package/lib/aws/ec2/subnet.js +4 -0
  63. package/lib/aws/ec2/subnet.js.map +1 -0
  64. package/lib/aws/ec2/subnet.provider.d.ts +4 -0
  65. package/lib/aws/ec2/subnet.provider.d.ts.map +1 -0
  66. package/lib/aws/ec2/subnet.provider.js +250 -0
  67. package/lib/aws/ec2/subnet.provider.js.map +1 -0
  68. package/lib/aws/ec2/vpc.d.ts +12 -8
  69. package/lib/aws/ec2/vpc.d.ts.map +1 -1
  70. package/lib/aws/ec2/vpc.js +1 -0
  71. package/lib/aws/ec2/vpc.js.map +1 -1
  72. package/lib/aws/ec2/vpc.provider.d.ts +3 -4
  73. package/lib/aws/ec2/vpc.provider.d.ts.map +1 -1
  74. package/lib/aws/ec2/vpc.provider.js +11 -26
  75. package/lib/aws/ec2/vpc.provider.js.map +1 -1
  76. package/lib/aws/index.d.ts +16 -19
  77. package/lib/aws/index.d.ts.map +1 -1
  78. package/lib/aws/index.js +7 -10
  79. package/lib/aws/index.js.map +1 -1
  80. package/lib/aws/lambda/consume.d.ts +10 -11
  81. package/lib/aws/lambda/consume.d.ts.map +1 -1
  82. package/lib/aws/lambda/consume.js +3 -3
  83. package/lib/aws/lambda/consume.js.map +1 -1
  84. package/lib/aws/lambda/function.d.ts +7 -7
  85. package/lib/aws/lambda/function.d.ts.map +1 -1
  86. package/lib/aws/lambda/function.handler.d.ts +1 -1
  87. package/lib/aws/lambda/function.handler.d.ts.map +1 -1
  88. package/lib/aws/lambda/function.handler.js.map +1 -1
  89. package/lib/aws/lambda/function.invoke.d.ts +6 -4
  90. package/lib/aws/lambda/function.invoke.d.ts.map +1 -1
  91. package/lib/aws/lambda/function.invoke.js +3 -1
  92. package/lib/aws/lambda/function.invoke.js.map +1 -1
  93. package/lib/aws/lambda/function.js +1 -1
  94. package/lib/aws/lambda/function.js.map +1 -1
  95. package/lib/aws/lambda/function.provider.d.ts +5 -4
  96. package/lib/aws/lambda/function.provider.d.ts.map +1 -1
  97. package/lib/aws/lambda/function.provider.js +16 -14
  98. package/lib/aws/lambda/function.provider.js.map +1 -1
  99. package/lib/aws/lambda/index.d.ts +1 -0
  100. package/lib/aws/lambda/index.d.ts.map +1 -1
  101. package/lib/aws/lambda/index.js +1 -0
  102. package/lib/aws/lambda/index.js.map +1 -1
  103. package/lib/aws/lambda/serve.d.ts +2 -4
  104. package/lib/aws/lambda/serve.d.ts.map +1 -1
  105. package/lib/aws/profile.d.ts +2 -2
  106. package/lib/aws/profile.d.ts.map +1 -1
  107. package/lib/aws/profile.js +1 -1
  108. package/lib/aws/profile.js.map +1 -1
  109. package/lib/aws/region.d.ts +14 -2
  110. package/lib/aws/region.d.ts.map +1 -1
  111. package/lib/aws/region.js +26 -1
  112. package/lib/aws/region.js.map +1 -1
  113. package/lib/aws/sqs/client.d.ts +1 -1
  114. package/lib/aws/sqs/client.d.ts.map +1 -1
  115. package/lib/aws/sqs/index.d.ts +1 -0
  116. package/lib/aws/sqs/index.d.ts.map +1 -1
  117. package/lib/aws/sqs/index.js +1 -0
  118. package/lib/aws/sqs/index.js.map +1 -1
  119. package/lib/aws/sqs/queue.consume.d.ts +1 -1
  120. package/lib/aws/sqs/queue.consume.d.ts.map +1 -1
  121. package/lib/aws/sqs/queue.consume.js +0 -1
  122. package/lib/aws/sqs/queue.consume.js.map +1 -1
  123. package/lib/aws/sqs/queue.d.ts +6 -4
  124. package/lib/aws/sqs/queue.d.ts.map +1 -1
  125. package/lib/aws/sqs/queue.event-source.d.ts +8 -6
  126. package/lib/aws/sqs/queue.event-source.d.ts.map +1 -1
  127. package/lib/aws/sqs/queue.event-source.js +26 -44
  128. package/lib/aws/sqs/queue.event-source.js.map +1 -1
  129. package/lib/aws/sqs/queue.js +1 -1
  130. package/lib/aws/sqs/queue.js.map +1 -1
  131. package/lib/aws/sqs/queue.provider.d.ts +4 -4
  132. package/lib/aws/sqs/queue.provider.d.ts.map +1 -1
  133. package/lib/aws/sqs/queue.provider.js +3 -3
  134. package/lib/aws/sqs/queue.provider.js.map +1 -1
  135. package/lib/aws/sqs/queue.send-message.d.ts +7 -5
  136. package/lib/aws/sqs/queue.send-message.d.ts.map +1 -1
  137. package/lib/aws/sqs/queue.send-message.js +4 -2
  138. package/lib/aws/sqs/queue.send-message.js.map +1 -1
  139. package/lib/binding.d.ts +12 -12
  140. package/lib/binding.d.ts.map +1 -1
  141. package/lib/binding.js.map +1 -1
  142. package/lib/cli/components/ApprovePlan.d.ts +2 -2
  143. package/lib/cli/components/ApprovePlan.d.ts.map +1 -1
  144. package/lib/cli/components/ApprovePlan.js.map +1 -1
  145. package/lib/cli/components/Plan.d.ts +2 -2
  146. package/lib/cli/components/Plan.d.ts.map +1 -1
  147. package/lib/cli/components/Plan.js.map +1 -1
  148. package/lib/cli/components/PlanProgress.d.ts +8 -4
  149. package/lib/cli/components/PlanProgress.d.ts.map +1 -1
  150. package/lib/cli/components/PlanProgress.js +11 -1
  151. package/lib/cli/components/PlanProgress.js.map +1 -1
  152. package/lib/cli/index.d.ts +265 -224
  153. package/lib/cli/index.d.ts.map +1 -1
  154. package/lib/cli/index.js +57 -65
  155. package/lib/cli/index.js.map +1 -1
  156. package/lib/cli/ink-service.d.ts +4 -0
  157. package/lib/cli/ink-service.d.ts.map +1 -0
  158. package/lib/cli/ink-service.js +43 -0
  159. package/lib/cli/ink-service.js.map +1 -0
  160. package/lib/cli/service.d.ts +21 -0
  161. package/lib/cli/service.d.ts.map +1 -0
  162. package/lib/cli/service.js +5 -0
  163. package/lib/cli/service.js.map +1 -0
  164. package/lib/cloudflare/account.d.ts +10 -0
  165. package/lib/cloudflare/account.d.ts.map +1 -0
  166. package/lib/cloudflare/account.js +24 -0
  167. package/lib/cloudflare/account.js.map +1 -0
  168. package/lib/cloudflare/api.d.ts +7 -7
  169. package/lib/cloudflare/api.d.ts.map +1 -1
  170. package/lib/cloudflare/api.js +18 -17
  171. package/lib/cloudflare/api.js.map +1 -1
  172. package/lib/cloudflare/config.d.ts +9 -0
  173. package/lib/cloudflare/config.d.ts.map +1 -0
  174. package/lib/cloudflare/config.js +1 -0
  175. package/lib/cloudflare/config.js.map +1 -0
  176. package/lib/cloudflare/index.d.ts +3 -1
  177. package/lib/cloudflare/index.d.ts.map +1 -1
  178. package/lib/cloudflare/index.js +3 -0
  179. package/lib/cloudflare/index.js.map +1 -1
  180. package/lib/cloudflare/kv/namespace.binding.d.ts +5 -3
  181. package/lib/cloudflare/kv/namespace.binding.d.ts.map +1 -1
  182. package/lib/cloudflare/kv/namespace.binding.js +1 -1
  183. package/lib/cloudflare/kv/namespace.binding.js.map +1 -1
  184. package/lib/cloudflare/kv/namespace.d.ts +3 -2
  185. package/lib/cloudflare/kv/namespace.d.ts.map +1 -1
  186. package/lib/cloudflare/kv/namespace.js.map +1 -1
  187. package/lib/cloudflare/kv/namespace.provider.d.ts +3 -2
  188. package/lib/cloudflare/kv/namespace.provider.d.ts.map +1 -1
  189. package/lib/cloudflare/kv/namespace.provider.js +8 -7
  190. package/lib/cloudflare/kv/namespace.provider.js.map +1 -1
  191. package/lib/cloudflare/live.d.ts +5 -5
  192. package/lib/cloudflare/live.d.ts.map +1 -1
  193. package/lib/cloudflare/live.js +5 -8
  194. package/lib/cloudflare/live.js.map +1 -1
  195. package/lib/cloudflare/r2/bucket.binding.d.ts +5 -3
  196. package/lib/cloudflare/r2/bucket.binding.d.ts.map +1 -1
  197. package/lib/cloudflare/r2/bucket.binding.js +1 -1
  198. package/lib/cloudflare/r2/bucket.binding.js.map +1 -1
  199. package/lib/cloudflare/r2/bucket.d.ts +3 -2
  200. package/lib/cloudflare/r2/bucket.d.ts.map +1 -1
  201. package/lib/cloudflare/r2/bucket.js.map +1 -1
  202. package/lib/cloudflare/r2/bucket.provider.d.ts +3 -2
  203. package/lib/cloudflare/r2/bucket.provider.d.ts.map +1 -1
  204. package/lib/cloudflare/r2/bucket.provider.js +8 -7
  205. package/lib/cloudflare/r2/bucket.provider.js.map +1 -1
  206. package/lib/cloudflare/worker/assets.fetch.d.ts +3 -2
  207. package/lib/cloudflare/worker/assets.fetch.d.ts.map +1 -1
  208. package/lib/cloudflare/worker/assets.fetch.js +2 -1
  209. package/lib/cloudflare/worker/assets.fetch.js.map +1 -1
  210. package/lib/cloudflare/worker/assets.provider.d.ts +1 -1
  211. package/lib/cloudflare/worker/assets.provider.d.ts.map +1 -1
  212. package/lib/cloudflare/worker/index.d.ts +0 -1
  213. package/lib/cloudflare/worker/index.d.ts.map +1 -1
  214. package/lib/cloudflare/worker/worker.d.ts +5 -6
  215. package/lib/cloudflare/worker/worker.d.ts.map +1 -1
  216. package/lib/cloudflare/worker/worker.handler.d.ts +1 -1
  217. package/lib/cloudflare/worker/worker.handler.d.ts.map +1 -1
  218. package/lib/cloudflare/worker/worker.handler.js.map +1 -1
  219. package/lib/cloudflare/worker/worker.js.map +1 -1
  220. package/lib/cloudflare/worker/worker.provider.d.ts +3 -2
  221. package/lib/cloudflare/worker/worker.provider.d.ts.map +1 -1
  222. package/lib/cloudflare/worker/worker.provider.js +7 -6
  223. package/lib/cloudflare/worker/worker.provider.js.map +1 -1
  224. package/lib/cloudflare/worker/worker.serve.d.ts +7 -7
  225. package/lib/cloudflare/worker/worker.serve.d.ts.map +1 -1
  226. package/lib/cloudflare/worker/worker.serve.js.map +1 -1
  227. package/lib/data.d.ts +3 -0
  228. package/lib/data.d.ts.map +1 -0
  229. package/lib/data.js +8 -0
  230. package/lib/data.js.map +1 -0
  231. package/lib/destroy.d.ts +1 -1
  232. package/lib/destroy.d.ts.map +1 -1
  233. package/lib/destroy.js +1 -4
  234. package/lib/destroy.js.map +1 -1
  235. package/lib/diff.d.ts +16 -0
  236. package/lib/diff.d.ts.map +1 -0
  237. package/lib/diff.js +9 -0
  238. package/lib/diff.js.map +1 -0
  239. package/lib/env.d.ts +5 -0
  240. package/lib/env.d.ts.map +1 -1
  241. package/lib/env.js +15 -29
  242. package/lib/env.js.map +1 -1
  243. package/lib/exports.d.ts +9 -0
  244. package/lib/exports.d.ts.map +1 -0
  245. package/lib/exports.js +13 -0
  246. package/lib/exports.js.map +1 -0
  247. package/lib/index.d.ts +10 -2
  248. package/lib/index.d.ts.map +1 -1
  249. package/lib/index.js +10 -5
  250. package/lib/index.js.map +1 -1
  251. package/lib/input.d.ts +32 -0
  252. package/lib/input.d.ts.map +1 -0
  253. package/lib/input.js +1 -0
  254. package/lib/input.js.map +1 -0
  255. package/lib/output.d.ts +143 -0
  256. package/lib/output.d.ts.map +1 -0
  257. package/lib/output.js +269 -0
  258. package/lib/output.js.map +1 -0
  259. package/lib/plan.d.ts +47 -28
  260. package/lib/plan.d.ts.map +1 -1
  261. package/lib/plan.js +257 -151
  262. package/lib/plan.js.map +1 -1
  263. package/lib/policy.d.ts +3 -4
  264. package/lib/policy.d.ts.map +1 -1
  265. package/lib/policy.js +0 -1
  266. package/lib/policy.js.map +1 -1
  267. package/lib/provider.d.ts +14 -16
  268. package/lib/provider.d.ts.map +1 -1
  269. package/lib/ref.d.ts +14 -0
  270. package/lib/ref.d.ts.map +1 -0
  271. package/lib/ref.js +21 -0
  272. package/lib/ref.js.map +1 -0
  273. package/lib/resource.d.ts +11 -6
  274. package/lib/resource.d.ts.map +1 -1
  275. package/lib/resource.js.map +1 -1
  276. package/lib/runtime.d.ts +7 -6
  277. package/lib/runtime.d.ts.map +1 -1
  278. package/lib/runtime.js.map +1 -1
  279. package/lib/service.d.ts +9 -6
  280. package/lib/service.d.ts.map +1 -1
  281. package/lib/service.js.map +1 -1
  282. package/lib/stack.d.ts +60 -0
  283. package/lib/stack.d.ts.map +1 -0
  284. package/lib/stack.js +11 -0
  285. package/lib/stack.js.map +1 -0
  286. package/lib/stage.d.ts +39 -0
  287. package/lib/stage.d.ts.map +1 -0
  288. package/lib/stage.js +32 -0
  289. package/lib/stage.js.map +1 -0
  290. package/lib/state.d.ts +51 -10
  291. package/lib/state.d.ts.map +1 -1
  292. package/lib/state.js +30 -29
  293. package/lib/state.js.map +1 -1
  294. package/lib/test.d.ts +25 -4
  295. package/lib/test.d.ts.map +1 -1
  296. package/lib/test.js +54 -14
  297. package/lib/test.js.map +1 -1
  298. package/lib/tsconfig.test.tsbuildinfo +1 -1
  299. package/lib/type.d.ts +3 -0
  300. package/lib/type.d.ts.map +1 -1
  301. package/lib/unknown.d.ts +4 -0
  302. package/lib/unknown.d.ts.map +1 -0
  303. package/lib/unknown.js +4 -0
  304. package/lib/unknown.js.map +1 -0
  305. package/lib/user.d.ts +3 -0
  306. package/lib/user.d.ts.map +1 -0
  307. package/lib/user.js +3 -0
  308. package/lib/user.js.map +1 -0
  309. package/lib/util.d.ts +6 -0
  310. package/lib/util.d.ts.map +1 -0
  311. package/lib/util.js +9 -0
  312. package/lib/util.js.map +1 -0
  313. package/package.json +18 -12
  314. package/src/$.ts +17 -0
  315. package/src/app.ts +3 -32
  316. package/src/apply.ts +429 -441
  317. package/src/assert-never.ts +18 -0
  318. package/src/aws/account.ts +23 -3
  319. package/src/aws/client.ts +0 -1
  320. package/src/aws/config.ts +16 -0
  321. package/src/aws/credentials.ts +212 -177
  322. package/src/aws/dynamodb/index.ts +3 -3
  323. package/src/aws/dynamodb/table.get-item.ts +5 -9
  324. package/src/aws/dynamodb/table.provider.ts +35 -39
  325. package/src/aws/dynamodb/table.ts +29 -84
  326. package/src/aws/ec2/index.ts +4 -0
  327. package/src/aws/ec2/subnet.provider.ts +358 -0
  328. package/src/aws/ec2/subnet.ts +213 -0
  329. package/src/aws/ec2/vpc.provider.ts +20 -36
  330. package/src/aws/ec2/vpc.ts +19 -8
  331. package/src/aws/index.ts +46 -40
  332. package/src/aws/lambda/consume.ts +8 -7
  333. package/src/aws/lambda/function.handler.ts +1 -1
  334. package/src/aws/lambda/function.invoke.ts +6 -2
  335. package/src/aws/lambda/function.provider.ts +28 -21
  336. package/src/aws/lambda/function.ts +7 -4
  337. package/src/aws/lambda/index.ts +2 -0
  338. package/src/aws/profile.ts +1 -4
  339. package/src/aws/region.ts +42 -3
  340. package/src/aws/sqs/index.ts +2 -0
  341. package/src/aws/sqs/queue.consume.ts +1 -1
  342. package/src/aws/sqs/queue.event-source.ts +29 -55
  343. package/src/aws/sqs/queue.provider.ts +11 -4
  344. package/src/aws/sqs/queue.send-message.ts +5 -8
  345. package/src/aws/sqs/queue.ts +9 -4
  346. package/src/binding.ts +19 -19
  347. package/src/cli/components/ApprovePlan.tsx +2 -2
  348. package/src/cli/components/Plan.tsx +3 -2
  349. package/src/cli/components/PlanProgress.tsx +32 -14
  350. package/src/cli/index.ts +2 -6
  351. package/src/cli/ink-service.tsx +61 -0
  352. package/src/cli/service.ts +23 -0
  353. package/src/cloudflare/account.ts +37 -0
  354. package/src/cloudflare/api.ts +33 -29
  355. package/src/cloudflare/config.ts +7 -0
  356. package/src/cloudflare/index.ts +3 -1
  357. package/src/cloudflare/kv/namespace.binding.ts +3 -1
  358. package/src/cloudflare/kv/namespace.provider.ts +9 -8
  359. package/src/cloudflare/kv/namespace.ts +3 -2
  360. package/src/cloudflare/live.ts +11 -17
  361. package/src/cloudflare/r2/bucket.binding.ts +3 -1
  362. package/src/cloudflare/r2/bucket.provider.ts +9 -8
  363. package/src/cloudflare/r2/bucket.ts +8 -2
  364. package/src/cloudflare/worker/assets.fetch.ts +3 -1
  365. package/src/cloudflare/worker/assets.provider.ts +1 -1
  366. package/src/cloudflare/worker/index.ts +0 -2
  367. package/src/cloudflare/worker/worker.handler.ts +1 -1
  368. package/src/cloudflare/worker/worker.provider.ts +16 -13
  369. package/src/cloudflare/worker/worker.serve.ts +5 -2
  370. package/src/cloudflare/worker/worker.ts +4 -3
  371. package/src/data.ts +18 -0
  372. package/src/destroy.ts +1 -5
  373. package/src/diff.ts +30 -0
  374. package/src/env.ts +20 -32
  375. package/src/exports.ts +21 -0
  376. package/src/index.ts +10 -5
  377. package/src/input.ts +81 -0
  378. package/src/output.ts +518 -0
  379. package/src/plan.ts +380 -192
  380. package/src/policy.ts +3 -5
  381. package/src/provider.ts +25 -23
  382. package/src/ref.ts +48 -0
  383. package/src/resource.ts +20 -6
  384. package/src/runtime.ts +15 -8
  385. package/src/service.ts +11 -7
  386. package/src/stack.ts +116 -0
  387. package/src/stage.ts +85 -0
  388. package/src/state.ts +138 -60
  389. package/src/test.ts +117 -16
  390. package/src/type.ts +4 -0
  391. package/src/unknown.ts +6 -0
  392. package/src/user.ts +4 -0
  393. package/src/util.ts +21 -0
  394. package/lib/approve.d.ts +0 -15
  395. package/lib/approve.d.ts.map +0 -1
  396. package/lib/approve.js +0 -7
  397. package/lib/approve.js.map +0 -1
  398. package/lib/cli/approve.d.ts +0 -4
  399. package/lib/cli/approve.d.ts.map +0 -1
  400. package/lib/cli/approve.js +0 -18
  401. package/lib/cli/approve.js.map +0 -1
  402. package/lib/cli/clack.d.ts +0 -14
  403. package/lib/cli/clack.d.ts.map +0 -1
  404. package/lib/cli/clack.js +0 -12
  405. package/lib/cli/clack.js.map +0 -1
  406. package/lib/cli/main.d.ts +0 -2
  407. package/lib/cli/main.d.ts.map +0 -1
  408. package/lib/cli/main.js +0 -1
  409. package/lib/cli/main.js.map +0 -1
  410. package/lib/cli/plan.d.ts +0 -13
  411. package/lib/cli/plan.d.ts.map +0 -1
  412. package/lib/cli/plan.js +0 -1
  413. package/lib/cli/plan.js.map +0 -1
  414. package/lib/cli/progress.d.ts +0 -7
  415. package/lib/cli/progress.d.ts.map +0 -1
  416. package/lib/cli/progress.js +0 -30
  417. package/lib/cli/progress.js.map +0 -1
  418. package/lib/cli/spinner.d.ts +0 -2
  419. package/lib/cli/spinner.d.ts.map +0 -1
  420. package/lib/cli/spinner.js +0 -13
  421. package/lib/cli/spinner.js.map +0 -1
  422. package/src/approve.ts +0 -13
  423. package/src/cli/approve.tsx +0 -30
  424. package/src/cli/clack.ts +0 -22
  425. package/src/cli/main.ts +0 -0
  426. package/src/cli/plan.ts +0 -16
  427. package/src/cli/progress.tsx +0 -46
  428. package/src/cli/spinner.ts +0 -14
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,53 +1,51 @@
1
1
  import * as Context from "effect/Context";
2
2
  import type * as Effect from "effect/Effect";
3
- import type { ScopedPlanStatusSession } from "./apply.ts";
3
+ import type { Diff } from "./diff.ts";
4
+ import type { Input } from "./input.ts";
4
5
  import type { Resource } from "./resource.ts";
5
6
  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
- };
7
+ import type { Service } from "./service.ts";
8
+ import type { ScopedPlanStatusSession } from "./cli/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[];
12
+ type Props<Res extends Resource> = Input.ResolveOpaque<Res["props"]>;
15
13
  export interface ProviderService<Res extends Resource = Resource> {
16
14
  read?(input: {
17
15
  id: string;
18
- olds: Res["props"] | undefined;
16
+ olds: Props<Res> | undefined;
19
17
  output: Res["attr"] | undefined;
20
18
  session: ScopedPlanStatusSession;
21
19
  bindings: BindingData<Res>;
22
20
  }): Effect.Effect<Res["attr"] | undefined, any, never>;
23
21
  diff?(input: {
24
22
  id: string;
25
- olds: Res["props"];
23
+ olds: Props<Res>;
26
24
  news: Res["props"];
27
25
  output: Res["attr"];
28
26
  }): Effect.Effect<Diff | void, never, never>;
29
27
  precreate?(input: {
30
28
  id: string;
31
- news: Res["props"];
29
+ news: Props<Res>;
32
30
  session: ScopedPlanStatusSession;
33
31
  }): Effect.Effect<Res["attr"], any, never>;
34
32
  create(input: {
35
33
  id: string;
36
- news: Res["props"];
34
+ news: Props<Res>;
37
35
  session: ScopedPlanStatusSession;
38
36
  bindings: BindingData<Res>;
39
37
  }): Effect.Effect<Res["attr"], any, never>;
40
38
  update(input: {
41
39
  id: string;
42
- news: Res["props"];
43
- olds: Res["props"];
40
+ news: Props<Res>;
41
+ olds: Props<Res>;
44
42
  output: Res["attr"];
45
43
  session: ScopedPlanStatusSession;
46
44
  bindings: BindingData<Res>;
47
45
  }): Effect.Effect<Res["attr"], any, never>;
48
46
  delete(input: {
49
47
  id: string;
50
- olds: Res["props"];
48
+ olds: Props<Res>;
51
49
  output: Res["attr"];
52
50
  session: ScopedPlanStatusSession;
53
51
  bindings: BindingData<Res>;
@@ -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":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,QAAQ,GAAG,OAAO,CACpD,SAAQ,OAAO,CAAC,QAAQ,CACtB,QAAQ,CAAC,CAAC,CAAC,EACX,CAAC,CAAC,MAAM,CAAC,EACT,eAAe,CAAC,GAAG,CAAC,CAMrB;CAAG;AAEN,KAAK,WAAW,CAAC,GAAG,SAAS,QAAQ,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GAC5D,GAAG,CAAC,SAAS,CAAC,EAAE,GAChB,GAAG,EAAE,CAAC;AAEV,KAAK,KAAK,CAAC,GAAG,SAAS,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAErE,MAAM,WAAW,eAAe,CAAC,GAAG,SAAS,QAAQ,GAAG,QAAQ;IAM9D,IAAI,CAAC,CAAC,KAAK,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;QAE7B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QAChC,OAAO,EAAE,uBAAuB,CAAC;QACjC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;KAC5B,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,KAAK,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAGjB,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;KACrB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,SAAS,CAAC,CAAC,KAAK,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,EAAE,uBAAuB,CAAC;KAClC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,EAAE,uBAAuB,CAAC;QACjC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;KAC5B,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,EAAE,uBAAuB,CAAC;QACjC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;KAC5B,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,EAAE,uBAAuB,CAAC;QACjC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;KAC5B,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;CACrC"}
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,19 +1,23 @@
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>>;
20
+ tag: Provider<R>;
17
21
  effect<Err, Req>(eff: Effect<ProviderService<R>, Err, Req>): Layer.Layer<Provider<R>, Err, Req>;
18
22
  succeed(service: ProviderService<R>): Layer.Layer<Provider<R>>;
19
23
  }
@@ -22,6 +26,7 @@ export declare const Resource: <Ctor extends (id: string, props: any) => Resourc
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":"AACA,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,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE7D,MAAM,WAAW,SAAS,CACxB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,EAAE,SAAS,MAAM,GAAG,MAAM,EAC1B,KAAK,GAAG,OAAO,EACf,KAAK,GAAG,OAAO,EACf,IAAI,GAAG,OAAO;IAEd,EAAE,EAAE,EAAE,CAAC;IACP,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,wBAAwB;IACxB,IAAI,EAAE,KAAK,CAAC;CACb;AAED,MAAM,WAAW,QAAQ,CACvB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,EAAE,SAAS,MAAM,GAAG,MAAM,EAC1B,KAAK,GAAG,OAAO,EACf,KAAK,GAAG,OAAO,EACf,IAAI,GAAG,OAAO,CACd,SAAQ,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;IAC/C,QAAQ,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC;IACxE,EAAE,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IAChD,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjB,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;YAuBlB,UAAU,CAAC,IAAI,CAAC,GAAG;QACzB,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;KAC1B;UAJK,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC;;;;;CAW7B,CAAC"}
@@ -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;AAuCF,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"}
package/lib/stage.d.ts ADDED
@@ -0,0 +1,39 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ import type { StackName, StackRef, Stack, StackResources } from "./stack.ts";
4
+ export interface StageConfig {
5
+ /**
6
+ * Whether to retain the stage when destroying the stack.
7
+ *
8
+ * @default - true if the current stage starts with "prod"
9
+ */
10
+ retain?: boolean;
11
+ /**
12
+ * Whether to adopt resources that already exist during the created phase.
13
+ *
14
+ * @default false
15
+ */
16
+ adopt?: boolean;
17
+ }
18
+ declare const Stage_base: Context.TagClass<Stage, "Stage", string>;
19
+ export declare class Stage extends Stage_base {
20
+ }
21
+ export type Stages<Req = never, Err = never> = {
22
+ config: (stage: string) => StageConfig | Effect.Effect<StageConfig, Err, Req>;
23
+ ref<S extends Stack>(name: StackName<S>): StackRefs<S>;
24
+ };
25
+ export declare const defineStages: <Req = never, Err = never>(config: (stage: string) => StageConfig | Effect.Effect<StageConfig, Err, Req>) => Stages<Req, Err>;
26
+ export interface StackRefBuilders {
27
+ [stage: string]: string | ((...args: any[]) => string);
28
+ }
29
+ export type StackRefs<S extends Stack> = {
30
+ [stage in string]: StackRef<StackResources<S>>;
31
+ } & {
32
+ as<Builders extends StackRefBuilders>(stages?: Builders): {
33
+ [stage in Exclude<string, keyof Builders>]: StackRef<StackResources<S>>;
34
+ } & {
35
+ [builder in keyof Builders]: Builders[builder] extends string ? StackRef<StackResources<S>> : Builders[builder] extends (...args: infer Args) => any ? (...args: Args) => StackRef<StackResources<S>> : never;
36
+ };
37
+ };
38
+ export {};
39
+ //# sourceMappingURL=stage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../src/stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG7E,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;;AAED,qBAAa,KAAM,SAAQ,UAAqC;CAAG;AAEnE,MAAM,MAAM,MAAM,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI;IAC7C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9E,GAAG,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;CACxD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,EACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,KAC5E,MAAM,CAAC,GAAG,EAAE,GAAG,CAkChB,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;CACxD;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,KAAK,IAAI;KACtC,KAAK,IAAI,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;CAC/C,GAAG;IACF,EAAE,CAAC,QAAQ,SAAS,gBAAgB,EAClC,MAAM,CAAC,EAAE,QAAQ,GAChB;SACA,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,QAAQ,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;KACxE,GAAG;SACD,OAAO,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,MAAM,GACzD,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAC3B,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,GAAG,GACpD,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAC9C,KAAK;KACZ,CAAC;CACH,CAAC"}
package/lib/stage.js ADDED
@@ -0,0 +1,32 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ import { ref } from "./ref.js";
4
+ export class Stage extends Context.Tag("Stage")() {
5
+ }
6
+ export const defineStages = (config) => ({
7
+ config,
8
+ ref: (stack) => {
9
+ const proxy = (get) => new Proxy({}, { get: (_, id) => get(id) });
10
+ const proxyStage = (stage) => proxy((resourceId) => ref({
11
+ stack,
12
+ stage,
13
+ resourceId,
14
+ }));
15
+ return proxy((stage) => stage == "as"
16
+ ? (builders) => proxy((stage) => {
17
+ if (stage in builders) {
18
+ const builder = builders[stage];
19
+ return typeof builder === "string"
20
+ ? proxyStage(stage)
21
+ : (...args) => proxyStage(builder(...args));
22
+ }
23
+ return proxyStage(stage);
24
+ })
25
+ : proxy((resourceId) => ref({
26
+ stack,
27
+ stage,
28
+ resourceId,
29
+ })));
30
+ },
31
+ });
32
+ //# sourceMappingURL=stage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage.js","sourceRoot":"","sources":["../src/stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAkB/B,MAAM,OAAO,KAAM,SAAQ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAiB;CAAG;AAOnE,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,MAA6E,EAC3D,EAAE,CAAC,CAAC;IACtB,MAAM;IACN,GAAG,EAAE,CAAkB,KAA4B,EAAgB,EAAE;QACnE,MAAM,KAAK,GAAG,CAAC,GAAwB,EAAE,EAAE,CACzC,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAU,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE,CACnC,KAAK,CAAC,CAAC,UAAkB,EAAE,EAAE,CAC3B,GAAG,CAAC;YACF,KAAK;YACL,KAAK;YACL,UAAU;SACX,CAAC,CACH,CAAC;QACJ,OAAO,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,KAAK,IAAI,IAAI;YACX,CAAC,CAAC,CAAC,QAA0B,EAAE,EAAE,CAC7B,KAAK,CAAC,CAAC,KAAa,EAAE,EAAE;gBACtB,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;oBACtB,MAAM,OAAO,GAAG,QAAQ,CAAC,KAA8B,CAAC,CAAC;oBACzD,OAAO,OAAO,OAAO,KAAK,QAAQ;wBAChC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;wBACnB,CAAC,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;gBACvD,CAAC;gBACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC,CAAC;YACN,CAAC,CAAC,KAAK,CAAC,CAAC,UAAkB,EAAE,EAAE,CAC3B,GAAG,CAAC;gBACF,KAAK;gBACL,KAAK;gBACL,UAAU;aACX,CAAC,CACH,CACU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}