alchemy 2.0.0-beta.37 → 2.0.0-beta.39

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 (640) hide show
  1. package/bin/exec.js +488 -69
  2. package/bin/exec.js.map +1 -1
  3. package/lib/AWS/AutoScaling/LaunchTemplate.d.ts +1 -1
  4. package/lib/AWS/CloudWatch/common.d.ts +1 -1
  5. package/lib/AWS/Credentials.d.ts.map +1 -1
  6. package/lib/AWS/Credentials.js +1 -2
  7. package/lib/AWS/Credentials.js.map +1 -1
  8. package/lib/AWS/DynamoDB/Stream.d.ts.map +1 -1
  9. package/lib/AWS/DynamoDB/Stream.js +1 -1
  10. package/lib/AWS/DynamoDB/Stream.js.map +1 -1
  11. package/lib/AWS/EC2/Instance.d.ts +1 -1
  12. package/lib/AWS/EC2/hosted.d.ts +1 -1
  13. package/lib/AWS/EC2/hosted.d.ts.map +1 -1
  14. package/lib/AWS/EC2/hosted.js +3 -5
  15. package/lib/AWS/EC2/hosted.js.map +1 -1
  16. package/lib/AWS/ECS/Task.d.ts +1 -1
  17. package/lib/AWS/ECS/Task.d.ts.map +1 -1
  18. package/lib/AWS/ECS/Task.js +3 -5
  19. package/lib/AWS/ECS/Task.js.map +1 -1
  20. package/lib/AWS/Endpoint.d.ts.map +1 -1
  21. package/lib/AWS/Endpoint.js +1 -2
  22. package/lib/AWS/Endpoint.js.map +1 -1
  23. package/lib/AWS/Environment.d.ts +2 -2
  24. package/lib/AWS/EventBridge/EventSource.d.ts.map +1 -1
  25. package/lib/AWS/EventBridge/EventSource.js +1 -1
  26. package/lib/AWS/EventBridge/EventSource.js.map +1 -1
  27. package/lib/AWS/Kinesis/StreamEventSource.d.ts.map +1 -1
  28. package/lib/AWS/Kinesis/StreamEventSource.js +1 -1
  29. package/lib/AWS/Kinesis/StreamEventSource.js.map +1 -1
  30. package/lib/AWS/Lambda/BucketEventSource.d.ts +1 -1
  31. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +1 -1
  32. package/lib/AWS/Lambda/Function.d.ts +1 -1
  33. package/lib/AWS/Lambda/Function.d.ts.map +1 -1
  34. package/lib/AWS/Lambda/Function.js +7 -11
  35. package/lib/AWS/Lambda/Function.js.map +1 -1
  36. package/lib/AWS/Lambda/QueueEventSource.d.ts +1 -1
  37. package/lib/AWS/Lambda/StreamEventSource.d.ts +1 -1
  38. package/lib/AWS/Lambda/TableEventSource.d.ts +1 -1
  39. package/lib/AWS/Lambda/TopicEventSource.d.ts +1 -1
  40. package/lib/AWS/Organizations/common.d.ts +1 -1
  41. package/lib/AWS/Providers.d.ts.map +1 -1
  42. package/lib/AWS/Providers.js +21 -3
  43. package/lib/AWS/Providers.js.map +1 -1
  44. package/lib/AWS/Region.d.ts +1 -1
  45. package/lib/AWS/Region.d.ts.map +1 -1
  46. package/lib/AWS/Region.js +2 -3
  47. package/lib/AWS/Region.js.map +1 -1
  48. package/lib/AWS/S3/Bucket.d.ts.map +1 -1
  49. package/lib/AWS/S3/Bucket.js +5 -2
  50. package/lib/AWS/S3/Bucket.js.map +1 -1
  51. package/lib/AWS/S3/BucketNotifications.d.ts.map +1 -1
  52. package/lib/AWS/S3/BucketNotifications.js +1 -1
  53. package/lib/AWS/S3/BucketNotifications.js.map +1 -1
  54. package/lib/AWS/SNS/TopicEventSource.d.ts.map +1 -1
  55. package/lib/AWS/SNS/TopicEventSource.js +1 -1
  56. package/lib/AWS/SNS/TopicEventSource.js.map +1 -1
  57. package/lib/AWS/SQS/Queue.d.ts.map +1 -1
  58. package/lib/AWS/SQS/Queue.js +23 -5
  59. package/lib/AWS/SQS/Queue.js.map +1 -1
  60. package/lib/Action.d.ts +77 -0
  61. package/lib/Action.d.ts.map +1 -0
  62. package/lib/Action.js +89 -0
  63. package/lib/Action.js.map +1 -0
  64. package/lib/AlchemyContext.d.ts +1 -1
  65. package/lib/Apply.d.ts.map +1 -1
  66. package/lib/Apply.js +222 -3
  67. package/lib/Apply.js.map +1 -1
  68. package/lib/Artifacts.d.ts +1 -1
  69. package/lib/Artifacts.d.ts.map +1 -1
  70. package/lib/Artifacts.js +1 -1
  71. package/lib/Artifacts.js.map +1 -1
  72. package/lib/Auth/AuthProvider.js +1 -1
  73. package/lib/Auth/AuthProvider.js.map +1 -1
  74. package/lib/Auth/Env.d.ts.map +1 -1
  75. package/lib/Auth/Env.js +4 -12
  76. package/lib/Auth/Env.js.map +1 -1
  77. package/lib/Binding.d.ts.map +1 -1
  78. package/lib/Binding.js +5 -5
  79. package/lib/Binding.js.map +1 -1
  80. package/lib/Build/Command.d.ts +1 -1
  81. package/lib/Build/Memo.d.ts +1 -1
  82. package/lib/Bundle/Docker.d.ts +3 -3
  83. package/lib/Bundle/Docker.js +1 -1
  84. package/lib/Bundle/Docker.js.map +1 -1
  85. package/lib/Bundle/TempRoot.d.ts +3 -3
  86. package/lib/Cli/Event.d.ts +1 -1
  87. package/lib/Cli/Event.d.ts.map +1 -1
  88. package/lib/Cli/NamespaceTree.d.ts +11 -5
  89. package/lib/Cli/NamespaceTree.d.ts.map +1 -1
  90. package/lib/Cli/NamespaceTree.js +28 -1
  91. package/lib/Cli/NamespaceTree.js.map +1 -1
  92. package/lib/Cli/commands/_shared.d.ts +1 -1
  93. package/lib/Cli/commands/_shared.js +2 -2
  94. package/lib/Cli/commands/_shared.js.map +1 -1
  95. package/lib/Cli/commands/aws.d.ts +1 -1
  96. package/lib/Cli/commands/cloudflare.d.ts +2 -2
  97. package/lib/Cli/commands/cloudflare.d.ts.map +1 -1
  98. package/lib/Cli/commands/deploy.d.ts +9 -9
  99. package/lib/Cli/commands/deploy.js +1 -1
  100. package/lib/Cli/commands/deploy.js.map +1 -1
  101. package/lib/Cli/commands/login.d.ts +1 -1
  102. package/lib/Cli/commands/logs.d.ts +1 -1
  103. package/lib/Cli/commands/logs.js.map +1 -1
  104. package/lib/Cli/commands/profile.d.ts +1 -3
  105. package/lib/Cli/commands/profile.d.ts.map +1 -1
  106. package/lib/Cli/commands/state.d.ts +1 -1
  107. package/lib/Cli/commands/state.d.ts.map +1 -1
  108. package/lib/Cli/commands/tail.d.ts +1 -1
  109. package/lib/Cli/commands/tail.js.map +1 -1
  110. package/lib/Cli/tui/components/Plan.d.ts.map +1 -1
  111. package/lib/Cli/tui/components/Plan.js +27 -13
  112. package/lib/Cli/tui/components/Plan.js.map +1 -1
  113. package/lib/Cli/tui/components/PlanProgress.d.ts +8 -1
  114. package/lib/Cli/tui/components/PlanProgress.d.ts.map +1 -1
  115. package/lib/Cli/tui/components/PlanProgress.js +95 -16
  116. package/lib/Cli/tui/components/PlanProgress.js.map +1 -1
  117. package/lib/Cloudflare/Access.js +0 -1
  118. package/lib/Cloudflare/Access.js.map +1 -1
  119. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js +1 -1
  120. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js.map +1 -1
  121. package/lib/Cloudflare/Artifacts/ArtifactsBinding.js +1 -1
  122. package/lib/Cloudflare/Artifacts/ArtifactsBinding.js.map +1 -1
  123. package/lib/Cloudflare/CloudflareEnvironment.d.ts +1 -1
  124. package/lib/Cloudflare/Container/Container.js +0 -1
  125. package/lib/Cloudflare/Container/Container.js.map +1 -1
  126. package/lib/Cloudflare/Container/ContainerApplication.d.ts +1 -1
  127. package/lib/Cloudflare/Container/ContainerApplication.d.ts.map +1 -1
  128. package/lib/Cloudflare/Container/ContainerApplication.js +4 -6
  129. package/lib/Cloudflare/Container/ContainerApplication.js.map +1 -1
  130. package/lib/Cloudflare/Container/ContainerBinding.js +2 -2
  131. package/lib/Cloudflare/Container/ContainerBinding.js.map +1 -1
  132. package/lib/Cloudflare/D1/D1Database.d.ts +1 -1
  133. package/lib/Cloudflare/D1/D1SqlFile.d.ts +2 -2
  134. package/lib/Cloudflare/Email/EmailAddress.d.ts +45 -0
  135. package/lib/Cloudflare/Email/EmailAddress.d.ts.map +1 -0
  136. package/lib/Cloudflare/Email/EmailAddress.js +99 -0
  137. package/lib/Cloudflare/Email/EmailAddress.js.map +1 -0
  138. package/lib/Cloudflare/Email/EmailRouting.d.ts +42 -0
  139. package/lib/Cloudflare/Email/EmailRouting.d.ts.map +1 -0
  140. package/lib/Cloudflare/Email/EmailRouting.js +89 -0
  141. package/lib/Cloudflare/Email/EmailRouting.js.map +1 -0
  142. package/lib/Cloudflare/Email/EmailRule.d.ts +80 -0
  143. package/lib/Cloudflare/Email/EmailRule.d.ts.map +1 -0
  144. package/lib/Cloudflare/Email/EmailRule.js +110 -0
  145. package/lib/Cloudflare/Email/EmailRule.js.map +1 -0
  146. package/lib/Cloudflare/Email/SendEmail.d.ts +74 -0
  147. package/lib/Cloudflare/Email/SendEmail.d.ts.map +1 -0
  148. package/lib/Cloudflare/Email/SendEmail.js +19 -0
  149. package/lib/Cloudflare/Email/SendEmail.js.map +1 -0
  150. package/lib/Cloudflare/Email/SendEmailBinding.d.ts +64 -0
  151. package/lib/Cloudflare/Email/SendEmailBinding.d.ts.map +1 -0
  152. package/lib/Cloudflare/Email/SendEmailBinding.js +54 -0
  153. package/lib/Cloudflare/Email/SendEmailBinding.js.map +1 -0
  154. package/lib/Cloudflare/Email/index.d.ts +6 -0
  155. package/lib/Cloudflare/Email/index.d.ts.map +1 -0
  156. package/lib/Cloudflare/Email/index.js +6 -0
  157. package/lib/Cloudflare/Email/index.js.map +1 -0
  158. package/lib/Cloudflare/Hyperdrive/Hyperdrive.d.ts +1 -1
  159. package/lib/Cloudflare/Images/ImagesBinding.js +1 -1
  160. package/lib/Cloudflare/Images/ImagesBinding.js.map +1 -1
  161. package/lib/Cloudflare/KV/KVNamespaceBinding.js +1 -1
  162. package/lib/Cloudflare/KV/KVNamespaceBinding.js.map +1 -1
  163. package/lib/Cloudflare/Local/Sidecar.d.ts +1 -1
  164. package/lib/Cloudflare/Local/SidecarHandlers.d.ts +1 -1
  165. package/lib/Cloudflare/Local/SidecarServer.js +1 -1
  166. package/lib/Cloudflare/Local/SidecarServer.js.map +1 -1
  167. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  168. package/lib/Cloudflare/Providers.js +6 -1
  169. package/lib/Cloudflare/Providers.js.map +1 -1
  170. package/lib/Cloudflare/Queue/QueueBinding.js +1 -1
  171. package/lib/Cloudflare/Queue/QueueBinding.js.map +1 -1
  172. package/lib/Cloudflare/R2/R2BucketBinding.js +1 -1
  173. package/lib/Cloudflare/R2/R2BucketBinding.js.map +1 -1
  174. package/lib/Cloudflare/SecretsStore/SecretBinding.js +1 -1
  175. package/lib/Cloudflare/SecretsStore/SecretBinding.js.map +1 -1
  176. package/lib/Cloudflare/StateStore/Api.d.ts +1 -1
  177. package/lib/Cloudflare/StateStore/State.d.ts +2 -2
  178. package/lib/Cloudflare/Workers/Assets.d.ts +2 -2
  179. package/lib/Cloudflare/Workers/Assets.d.ts.map +1 -1
  180. package/lib/Cloudflare/Workers/Assets.js +5 -4
  181. package/lib/Cloudflare/Workers/Assets.js.map +1 -1
  182. package/lib/Cloudflare/Workers/HttpServer.d.ts.map +1 -1
  183. package/lib/Cloudflare/Workers/HttpServer.js +25 -3
  184. package/lib/Cloudflare/Workers/HttpServer.js.map +1 -1
  185. package/lib/Cloudflare/Workers/InferEnv.d.ts +1 -1
  186. package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
  187. package/lib/Cloudflare/Workers/Worker.d.ts +4 -3
  188. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  189. package/lib/Cloudflare/Workers/Worker.js +67 -32
  190. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  191. package/lib/Cloudflare/Workers/WorkerBundle.d.ts +1 -1
  192. package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -1
  193. package/lib/Cloudflare/Workers/WorkerBundle.js +4 -6
  194. package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -1
  195. package/lib/Cloudflare/Workers/WorkerName.d.ts +1 -1
  196. package/lib/Cloudflare/Workers/Workflow.js +2 -2
  197. package/lib/Cloudflare/Workers/Workflow.js.map +1 -1
  198. package/lib/Cloudflare/index.d.ts +1 -0
  199. package/lib/Cloudflare/index.d.ts.map +1 -1
  200. package/lib/Cloudflare/index.js +1 -0
  201. package/lib/Cloudflare/index.js.map +1 -1
  202. package/lib/Construct.d.ts +3 -3
  203. package/lib/Construct.d.ts.map +1 -1
  204. package/lib/Construct.js.map +1 -1
  205. package/lib/Deploy.d.ts +1 -1
  206. package/lib/Destroy.d.ts +1 -1
  207. package/lib/Destroy.d.ts.map +1 -1
  208. package/lib/Destroy.js +1 -0
  209. package/lib/Destroy.js.map +1 -1
  210. package/lib/Drizzle/Providers.d.ts +1 -1
  211. package/lib/Drizzle/Schema.d.ts +1 -1
  212. package/lib/GitHub/Providers.d.ts +1 -1
  213. package/lib/Http.d.ts +1 -1
  214. package/lib/Http.d.ts.map +1 -1
  215. package/lib/Http.js +1 -1
  216. package/lib/Http.js.map +1 -1
  217. package/lib/Namespace.d.ts.map +1 -1
  218. package/lib/Namespace.js +3 -4
  219. package/lib/Namespace.js.map +1 -1
  220. package/lib/Neon/Branch.d.ts +2 -2
  221. package/lib/Neon/Branch.d.ts.map +1 -1
  222. package/lib/Neon/Branch.js +59 -27
  223. package/lib/Neon/Branch.js.map +1 -1
  224. package/lib/Neon/Credentials.d.ts +2 -2
  225. package/lib/Neon/Credentials.d.ts.map +1 -1
  226. package/lib/Neon/Credentials.js +2 -2
  227. package/lib/Neon/Credentials.js.map +1 -1
  228. package/lib/Neon/NeonEnvironment.d.ts +1 -1
  229. package/lib/Neon/Project.d.ts +25 -1
  230. package/lib/Neon/Project.d.ts.map +1 -1
  231. package/lib/Neon/Project.js +121 -42
  232. package/lib/Neon/Project.js.map +1 -1
  233. package/lib/Neon/Providers.d.ts +1 -1
  234. package/lib/Neon/SqlFile.d.ts +2 -2
  235. package/lib/Output.d.ts +3 -4
  236. package/lib/Output.d.ts.map +1 -1
  237. package/lib/Output.js +7 -4
  238. package/lib/Output.js.map +1 -1
  239. package/lib/PhysicalName.d.ts +1 -1
  240. package/lib/Plan.d.ts +36 -1
  241. package/lib/Plan.d.ts.map +1 -1
  242. package/lib/Plan.js +197 -31
  243. package/lib/Plan.js.map +1 -1
  244. package/lib/Platform.js +6 -6
  245. package/lib/Platform.js.map +1 -1
  246. package/lib/Provider.d.ts +1 -1
  247. package/lib/Provider.d.ts.map +1 -1
  248. package/lib/Provider.js +1 -1
  249. package/lib/Provider.js.map +1 -1
  250. package/lib/Random.d.ts +1 -1
  251. package/lib/Random.d.ts.map +1 -1
  252. package/lib/Random.js +1 -1
  253. package/lib/Random.js.map +1 -1
  254. package/lib/Resource.d.ts.map +1 -1
  255. package/lib/Resource.js +2 -25
  256. package/lib/Resource.js.map +1 -1
  257. package/lib/Runtime.d.ts +24 -0
  258. package/lib/Runtime.d.ts.map +1 -0
  259. package/lib/Runtime.js +31 -0
  260. package/lib/Runtime.js.map +1 -0
  261. package/lib/Secret.js +1 -1
  262. package/lib/Secret.js.map +1 -1
  263. package/lib/Sidecar/RpcClient.d.ts +1 -1
  264. package/lib/Sidecar/RpcPaths.d.ts +1 -1
  265. package/lib/Sidecar/RpcServer.d.ts +1 -1
  266. package/lib/Sidecar/RpcServices.d.ts +1 -1
  267. package/lib/Stack.d.ts +7 -2
  268. package/lib/Stack.d.ts.map +1 -1
  269. package/lib/Stack.js +4 -4
  270. package/lib/Stack.js.map +1 -1
  271. package/lib/State/ActionState.d.ts +48 -0
  272. package/lib/State/ActionState.d.ts.map +1 -0
  273. package/lib/State/ActionState.js +1 -0
  274. package/lib/State/ActionState.js.map +1 -0
  275. package/lib/State/HttpStateStore.d.ts.map +1 -1
  276. package/lib/State/HttpStateStore.js +1 -1
  277. package/lib/State/HttpStateStore.js.map +1 -1
  278. package/lib/State/InMemoryState.d.ts.map +1 -1
  279. package/lib/State/InMemoryState.js.map +1 -1
  280. package/lib/State/LocalState.d.ts +2 -2
  281. package/lib/State/ResourceState.d.ts +5 -0
  282. package/lib/State/ResourceState.d.ts.map +1 -1
  283. package/lib/State/State.d.ts +10 -2
  284. package/lib/State/State.d.ts.map +1 -1
  285. package/lib/State/State.js +2 -0
  286. package/lib/State/State.js.map +1 -1
  287. package/lib/State/index.d.ts +1 -0
  288. package/lib/State/index.d.ts.map +1 -1
  289. package/lib/State/index.js +1 -0
  290. package/lib/State/index.js.map +1 -1
  291. package/lib/Test/Core.d.ts +2 -2
  292. package/lib/Test/Core.d.ts.map +1 -1
  293. package/lib/Test/Core.js +4 -1
  294. package/lib/Test/Core.js.map +1 -1
  295. package/lib/Util/FileLogger.d.ts +1 -1
  296. package/lib/Util/effect.js +4 -4
  297. package/lib/Util/effect.js.map +1 -1
  298. package/lib/Util/exec.d.ts.map +1 -0
  299. package/lib/Util/exec.js.map +1 -0
  300. package/lib/Util/hash.d.ts +8 -0
  301. package/lib/Util/hash.d.ts.map +1 -0
  302. package/lib/Util/hash.js +11 -0
  303. package/lib/Util/hash.js.map +1 -0
  304. package/lib/Util/ignore.d.ts +40 -0
  305. package/lib/Util/ignore.d.ts.map +1 -0
  306. package/lib/Util/ignore.js +591 -0
  307. package/lib/Util/ignore.js.map +1 -0
  308. package/lib/index.d.ts +1 -0
  309. package/lib/index.d.ts.map +1 -1
  310. package/lib/index.js +1 -0
  311. package/lib/index.js.map +1 -1
  312. package/lib/tsconfig.test.tsbuildinfo +1 -1
  313. package/package.json +22 -28
  314. package/src/AWS/Credentials.ts +1 -2
  315. package/src/AWS/DynamoDB/Stream.ts +1 -4
  316. package/src/AWS/EC2/hosted.ts +14 -16
  317. package/src/AWS/ECS/Task.ts +14 -16
  318. package/src/AWS/Endpoint.ts +2 -5
  319. package/src/AWS/EventBridge/EventSource.ts +1 -4
  320. package/src/AWS/Kinesis/StreamEventSource.ts +1 -4
  321. package/src/AWS/Lambda/Function.ts +31 -35
  322. package/src/AWS/Providers.ts +22 -3
  323. package/src/AWS/Region.ts +2 -3
  324. package/src/AWS/S3/Bucket.ts +7 -2
  325. package/src/AWS/S3/BucketNotifications.ts +1 -4
  326. package/src/AWS/SNS/TopicEventSource.ts +1 -4
  327. package/src/AWS/SQS/Queue.ts +40 -6
  328. package/src/Action.ts +280 -0
  329. package/src/Apply.ts +351 -23
  330. package/src/Artifacts.ts +2 -4
  331. package/src/Auth/AuthProvider.ts +1 -1
  332. package/src/Auth/Env.ts +12 -20
  333. package/src/Binding.ts +5 -9
  334. package/src/Bundle/Docker.ts +1 -1
  335. package/src/Cli/Event.ts +4 -0
  336. package/src/Cli/NamespaceTree.ts +52 -5
  337. package/src/Cli/commands/_shared.ts +2 -2
  338. package/src/Cli/commands/deploy.ts +1 -1
  339. package/src/Cli/commands/logs.ts +4 -4
  340. package/src/Cli/commands/tail.ts +4 -4
  341. package/src/Cli/tui/components/Plan.tsx +65 -17
  342. package/src/Cli/tui/components/PlanProgress.tsx +142 -32
  343. package/src/Cloudflare/Access.ts +1 -1
  344. package/src/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.ts +1 -1
  345. package/src/Cloudflare/Artifacts/ArtifactsBinding.ts +1 -1
  346. package/src/Cloudflare/Container/Container.ts +1 -1
  347. package/src/Cloudflare/Container/ContainerApplication.ts +4 -6
  348. package/src/Cloudflare/Container/ContainerBinding.ts +2 -2
  349. package/src/Cloudflare/Email/EmailAddress.ts +155 -0
  350. package/src/Cloudflare/Email/EmailRouting.ts +138 -0
  351. package/src/Cloudflare/Email/EmailRule.ts +210 -0
  352. package/src/Cloudflare/Email/SendEmail.ts +95 -0
  353. package/src/Cloudflare/Email/SendEmailBinding.ts +124 -0
  354. package/src/Cloudflare/Email/index.ts +5 -0
  355. package/src/Cloudflare/Images/ImagesBinding.ts +1 -1
  356. package/src/Cloudflare/KV/KVNamespaceBinding.ts +1 -1
  357. package/src/Cloudflare/Local/SidecarServer.ts +1 -1
  358. package/src/Cloudflare/Providers.ts +9 -0
  359. package/src/Cloudflare/Queue/QueueBinding.ts +1 -1
  360. package/src/Cloudflare/R2/R2BucketBinding.ts +1 -1
  361. package/src/Cloudflare/SecretsStore/SecretBinding.ts +1 -1
  362. package/src/Cloudflare/Workers/Assets.ts +5 -6
  363. package/src/Cloudflare/Workers/HttpServer.ts +37 -5
  364. package/src/Cloudflare/Workers/InferEnv.ts +15 -11
  365. package/src/Cloudflare/Workers/Worker.ts +78 -36
  366. package/src/Cloudflare/Workers/WorkerBundle.ts +4 -6
  367. package/src/Cloudflare/Workers/Workflow.ts +2 -2
  368. package/src/Cloudflare/index.ts +1 -0
  369. package/src/Construct.ts +3 -7
  370. package/src/Destroy.ts +1 -0
  371. package/src/Http.ts +1 -1
  372. package/src/Namespace.ts +4 -4
  373. package/src/Neon/Branch.ts +93 -59
  374. package/src/Neon/Credentials.ts +2 -2
  375. package/src/Neon/Project.ts +193 -64
  376. package/src/Output.ts +9 -7
  377. package/src/Plan.ts +303 -53
  378. package/src/Platform.ts +7 -7
  379. package/src/Provider.ts +8 -3
  380. package/src/Random.ts +1 -1
  381. package/src/Resource.ts +2 -25
  382. package/src/Runtime.ts +38 -0
  383. package/src/Secret.ts +1 -1
  384. package/src/Stack.ts +10 -6
  385. package/src/State/ActionState.ts +51 -0
  386. package/src/State/HttpStateStore.ts +6 -2
  387. package/src/State/InMemoryState.ts +3 -3
  388. package/src/State/ResourceState.ts +5 -0
  389. package/src/State/State.ts +17 -2
  390. package/src/State/index.ts +1 -0
  391. package/src/Test/Core.ts +4 -3
  392. package/src/Util/effect.ts +4 -4
  393. package/src/Util/hash.ts +14 -0
  394. package/src/Util/ignore.ts +815 -0
  395. package/src/index.ts +6 -0
  396. package/lib/Agent/Agent.d.ts +0 -9
  397. package/lib/Agent/Agent.d.ts.map +0 -1
  398. package/lib/Agent/Agent.js +0 -10
  399. package/lib/Agent/Agent.js.map +0 -1
  400. package/lib/Agent/Aspect.d.ts +0 -51
  401. package/lib/Agent/Aspect.d.ts.map +0 -1
  402. package/lib/Agent/Aspect.js +0 -45
  403. package/lib/Agent/Aspect.js.map +0 -1
  404. package/lib/Agent/AspectGraph.d.ts +0 -45
  405. package/lib/Agent/AspectGraph.d.ts.map +0 -1
  406. package/lib/Agent/AspectGraph.js +0 -39
  407. package/lib/Agent/AspectGraph.js.map +0 -1
  408. package/lib/Agent/ContextPlugin.d.ts +0 -8
  409. package/lib/Agent/ContextPlugin.d.ts.map +0 -1
  410. package/lib/Agent/ContextPlugin.js +0 -3
  411. package/lib/Agent/ContextPlugin.js.map +0 -1
  412. package/lib/Agent/Plugin.d.ts +0 -18
  413. package/lib/Agent/Plugin.d.ts.map +0 -1
  414. package/lib/Agent/Plugin.js +0 -8
  415. package/lib/Agent/Plugin.js.map +0 -1
  416. package/lib/Agent/chat/channel.d.ts +0 -9
  417. package/lib/Agent/chat/channel.d.ts.map +0 -1
  418. package/lib/Agent/chat/channel.js +0 -10
  419. package/lib/Agent/chat/channel.js.map +0 -1
  420. package/lib/Agent/chat/event.d.ts +0 -32
  421. package/lib/Agent/chat/event.d.ts.map +0 -1
  422. package/lib/Agent/chat/event.js +0 -32
  423. package/lib/Agent/chat/event.js.map +0 -1
  424. package/lib/Agent/chat/message.d.ts +0 -22
  425. package/lib/Agent/chat/message.d.ts.map +0 -1
  426. package/lib/Agent/chat/message.js +0 -31
  427. package/lib/Agent/chat/message.js.map +0 -1
  428. package/lib/Agent/chat/service.d.ts +0 -102
  429. package/lib/Agent/chat/service.d.ts.map +0 -1
  430. package/lib/Agent/chat/service.js +0 -79
  431. package/lib/Agent/chat/service.js.map +0 -1
  432. package/lib/Agent/chat/thread.d.ts +0 -13
  433. package/lib/Agent/chat/thread.d.ts.map +0 -1
  434. package/lib/Agent/chat/thread.js +0 -16
  435. package/lib/Agent/chat/thread.js.map +0 -1
  436. package/lib/Agent/coding/bash.d.ts +0 -36
  437. package/lib/Agent/coding/bash.d.ts.map +0 -1
  438. package/lib/Agent/coding/bash.js +0 -170
  439. package/lib/Agent/coding/bash.js.map +0 -1
  440. package/lib/Agent/coding/edit.d.ts +0 -31
  441. package/lib/Agent/coding/edit.d.ts.map +0 -1
  442. package/lib/Agent/coding/edit.js +0 -90
  443. package/lib/Agent/coding/edit.js.map +0 -1
  444. package/lib/Agent/coding/glob.d.ts +0 -23
  445. package/lib/Agent/coding/glob.d.ts.map +0 -1
  446. package/lib/Agent/coding/glob.js +0 -78
  447. package/lib/Agent/coding/glob.js.map +0 -1
  448. package/lib/Agent/coding/grep.d.ts +0 -26
  449. package/lib/Agent/coding/grep.d.ts.map +0 -1
  450. package/lib/Agent/coding/grep.js +0 -105
  451. package/lib/Agent/coding/grep.js.map +0 -1
  452. package/lib/Agent/coding/index.d.ts +0 -8
  453. package/lib/Agent/coding/index.d.ts.map +0 -1
  454. package/lib/Agent/coding/index.js +0 -8
  455. package/lib/Agent/coding/index.js.map +0 -1
  456. package/lib/Agent/coding/read.d.ts +0 -27
  457. package/lib/Agent/coding/read.d.ts.map +0 -1
  458. package/lib/Agent/coding/read.js +0 -89
  459. package/lib/Agent/coding/read.js.map +0 -1
  460. package/lib/Agent/coding/readlints.d.ts +0 -19
  461. package/lib/Agent/coding/readlints.d.ts.map +0 -1
  462. package/lib/Agent/coding/readlints.js +0 -53
  463. package/lib/Agent/coding/readlints.js.map +0 -1
  464. package/lib/Agent/coding/write.d.ts +0 -22
  465. package/lib/Agent/coding/write.d.ts.map +0 -1
  466. package/lib/Agent/coding/write.js +0 -53
  467. package/lib/Agent/coding/write.js.map +0 -1
  468. package/lib/Agent/fs/file.d.ts +0 -12
  469. package/lib/Agent/fs/file.d.ts.map +0 -1
  470. package/lib/Agent/fs/file.js +0 -8
  471. package/lib/Agent/fs/file.js.map +0 -1
  472. package/lib/Agent/fs/folder.d.ts +0 -5
  473. package/lib/Agent/fs/folder.d.ts.map +0 -1
  474. package/lib/Agent/fs/folder.js +0 -3
  475. package/lib/Agent/fs/folder.js.map +0 -1
  476. package/lib/Agent/index.d.ts +0 -9
  477. package/lib/Agent/index.d.ts.map +0 -1
  478. package/lib/Agent/index.js +0 -9
  479. package/lib/Agent/index.js.map +0 -1
  480. package/lib/Agent/llm/error.d.ts +0 -208
  481. package/lib/Agent/llm/error.d.ts.map +0 -1
  482. package/lib/Agent/llm/error.js +0 -209
  483. package/lib/Agent/llm/error.js.map +0 -1
  484. package/lib/Agent/llm/index.d.ts +0 -5
  485. package/lib/Agent/llm/index.d.ts.map +0 -1
  486. package/lib/Agent/llm/index.js +0 -5
  487. package/lib/Agent/llm/index.js.map +0 -1
  488. package/lib/Agent/llm/llm.d.ts +0 -32
  489. package/lib/Agent/llm/llm.d.ts.map +0 -1
  490. package/lib/Agent/llm/llm.js +0 -74
  491. package/lib/Agent/llm/llm.js.map +0 -1
  492. package/lib/Agent/llm/stream-collectors.d.ts +0 -46
  493. package/lib/Agent/llm/stream-collectors.d.ts.map +0 -1
  494. package/lib/Agent/llm/stream-collectors.js +0 -33
  495. package/lib/Agent/llm/stream-collectors.js.map +0 -1
  496. package/lib/Agent/llm/stream-text-part.d.ts +0 -5
  497. package/lib/Agent/llm/stream-text-part.d.ts.map +0 -1
  498. package/lib/Agent/llm/stream-text-part.js +0 -4
  499. package/lib/Agent/llm/stream-text-part.js.map +0 -1
  500. package/lib/Agent/lsp/client.d.ts +0 -122
  501. package/lib/Agent/lsp/client.d.ts.map +0 -1
  502. package/lib/Agent/lsp/client.js +0 -180
  503. package/lib/Agent/lsp/client.js.map +0 -1
  504. package/lib/Agent/lsp/diagnostics.d.ts +0 -16
  505. package/lib/Agent/lsp/diagnostics.d.ts.map +0 -1
  506. package/lib/Agent/lsp/diagnostics.js +0 -48
  507. package/lib/Agent/lsp/diagnostics.js.map +0 -1
  508. package/lib/Agent/lsp/jsonrpc.d.ts +0 -90
  509. package/lib/Agent/lsp/jsonrpc.d.ts.map +0 -1
  510. package/lib/Agent/lsp/jsonrpc.js +0 -178
  511. package/lib/Agent/lsp/jsonrpc.js.map +0 -1
  512. package/lib/Agent/lsp/manager.d.ts +0 -38
  513. package/lib/Agent/lsp/manager.d.ts.map +0 -1
  514. package/lib/Agent/lsp/manager.js +0 -98
  515. package/lib/Agent/lsp/manager.js.map +0 -1
  516. package/lib/Agent/lsp/servers.d.ts +0 -28
  517. package/lib/Agent/lsp/servers.d.ts.map +0 -1
  518. package/lib/Agent/lsp/servers.js +0 -21
  519. package/lib/Agent/lsp/servers.js.map +0 -1
  520. package/lib/Agent/process/driver.d.ts +0 -10
  521. package/lib/Agent/process/driver.d.ts.map +0 -1
  522. package/lib/Agent/process/driver.js +0 -153
  523. package/lib/Agent/process/driver.js.map +0 -1
  524. package/lib/Agent/process/issue-service.d.ts +0 -44
  525. package/lib/Agent/process/issue-service.d.ts.map +0 -1
  526. package/lib/Agent/process/issue-service.js +0 -28
  527. package/lib/Agent/process/issue-service.js.map +0 -1
  528. package/lib/Agent/process/issue-tools.d.ts +0 -28
  529. package/lib/Agent/process/issue-tools.d.ts.map +0 -1
  530. package/lib/Agent/process/issue-tools.js +0 -28
  531. package/lib/Agent/process/issue-tools.js.map +0 -1
  532. package/lib/Agent/process/issue.d.ts +0 -16
  533. package/lib/Agent/process/issue.d.ts.map +0 -1
  534. package/lib/Agent/process/issue.js +0 -17
  535. package/lib/Agent/process/issue.js.map +0 -1
  536. package/lib/Agent/process/organization.d.ts +0 -4
  537. package/lib/Agent/process/organization.d.ts.map +0 -1
  538. package/lib/Agent/process/organization.js +0 -3
  539. package/lib/Agent/process/organization.js.map +0 -1
  540. package/lib/Agent/process/process.d.ts +0 -5
  541. package/lib/Agent/process/process.d.ts.map +0 -1
  542. package/lib/Agent/process/process.js +0 -3
  543. package/lib/Agent/process/process.js.map +0 -1
  544. package/lib/Agent/process/reply.d.ts +0 -16
  545. package/lib/Agent/process/reply.d.ts.map +0 -1
  546. package/lib/Agent/process/reply.js +0 -18
  547. package/lib/Agent/process/reply.js.map +0 -1
  548. package/lib/Agent/process/task.d.ts +0 -25
  549. package/lib/Agent/process/task.d.ts.map +0 -1
  550. package/lib/Agent/process/task.js +0 -26
  551. package/lib/Agent/process/task.js.map +0 -1
  552. package/lib/Agent/tool/index.d.ts +0 -4
  553. package/lib/Agent/tool/index.d.ts.map +0 -1
  554. package/lib/Agent/tool/index.js +0 -4
  555. package/lib/Agent/tool/index.js.map +0 -1
  556. package/lib/Agent/tool/parameter.d.ts +0 -12
  557. package/lib/Agent/tool/parameter.d.ts.map +0 -1
  558. package/lib/Agent/tool/parameter.js +0 -6
  559. package/lib/Agent/tool/parameter.js.map +0 -1
  560. package/lib/Agent/tool/result.d.ts +0 -17
  561. package/lib/Agent/tool/result.d.ts.map +0 -1
  562. package/lib/Agent/tool/result.js +0 -6
  563. package/lib/Agent/tool/result.js.map +0 -1
  564. package/lib/Agent/tool/tool.d.ts +0 -32
  565. package/lib/Agent/tool/tool.d.ts.map +0 -1
  566. package/lib/Agent/tool/tool.js +0 -16
  567. package/lib/Agent/tool/tool.js.map +0 -1
  568. package/lib/Agent/util/command-validator.d.ts +0 -12
  569. package/lib/Agent/util/command-validator.d.ts.map +0 -1
  570. package/lib/Agent/util/command-validator.js +0 -74
  571. package/lib/Agent/util/command-validator.js.map +0 -1
  572. package/lib/Agent/util/exec.d.ts.map +0 -1
  573. package/lib/Agent/util/exec.js.map +0 -1
  574. package/lib/Agent/util/parser.d.ts +0 -5
  575. package/lib/Agent/util/parser.d.ts.map +0 -1
  576. package/lib/Agent/util/parser.js +0 -41
  577. package/lib/Agent/util/parser.js.map +0 -1
  578. package/lib/Agent/util/replace.d.ts +0 -38
  579. package/lib/Agent/util/replace.d.ts.map +0 -1
  580. package/lib/Agent/util/replace.js +0 -458
  581. package/lib/Agent/util/replace.js.map +0 -1
  582. package/lib/Agent/util/ripgrep.d.ts +0 -109
  583. package/lib/Agent/util/ripgrep.d.ts.map +0 -1
  584. package/lib/Agent/util/ripgrep.js +0 -221
  585. package/lib/Agent/util/ripgrep.js.map +0 -1
  586. package/lib/Neon/api.d.ts +0 -258
  587. package/lib/Neon/api.d.ts.map +0 -1
  588. package/lib/Neon/api.js +0 -215
  589. package/lib/Neon/api.js.map +0 -1
  590. package/src/Agent/Agent.ts +0 -26
  591. package/src/Agent/Aspect.ts +0 -173
  592. package/src/Agent/AspectGraph.ts +0 -98
  593. package/src/Agent/ContextPlugin.ts +0 -18
  594. package/src/Agent/Plugin.ts +0 -29
  595. package/src/Agent/chat/channel.ts +0 -26
  596. package/src/Agent/chat/event.ts +0 -43
  597. package/src/Agent/chat/message.ts +0 -35
  598. package/src/Agent/chat/service.ts +0 -133
  599. package/src/Agent/chat/thread.ts +0 -17
  600. package/src/Agent/coding/bash.ts +0 -197
  601. package/src/Agent/coding/edit.ts +0 -152
  602. package/src/Agent/coding/glob.ts +0 -96
  603. package/src/Agent/coding/grep.ts +0 -143
  604. package/src/Agent/coding/index.ts +0 -7
  605. package/src/Agent/coding/read.ts +0 -119
  606. package/src/Agent/coding/readlints.ts +0 -78
  607. package/src/Agent/coding/write.ts +0 -79
  608. package/src/Agent/fs/file.ts +0 -22
  609. package/src/Agent/fs/folder.ts +0 -16
  610. package/src/Agent/index.ts +0 -9
  611. package/src/Agent/llm/error.ts +0 -330
  612. package/src/Agent/llm/index.ts +0 -4
  613. package/src/Agent/llm/llm.ts +0 -131
  614. package/src/Agent/llm/stream-collectors.ts +0 -58
  615. package/src/Agent/llm/stream-text-part.ts +0 -7
  616. package/src/Agent/lsp/client.ts +0 -293
  617. package/src/Agent/lsp/diagnostics.ts +0 -64
  618. package/src/Agent/lsp/jsonrpc.ts +0 -317
  619. package/src/Agent/lsp/manager.ts +0 -213
  620. package/src/Agent/lsp/servers.ts +0 -37
  621. package/src/Agent/process/driver.ts +0 -168
  622. package/src/Agent/process/issue-service.ts +0 -48
  623. package/src/Agent/process/issue-tools.ts +0 -33
  624. package/src/Agent/process/issue.ts +0 -22
  625. package/src/Agent/process/organization.ts +0 -16
  626. package/src/Agent/process/process.ts +0 -16
  627. package/src/Agent/process/reply.ts +0 -21
  628. package/src/Agent/process/task.ts +0 -34
  629. package/src/Agent/tool/index.ts +0 -3
  630. package/src/Agent/tool/parameter.ts +0 -35
  631. package/src/Agent/tool/result.ts +0 -51
  632. package/src/Agent/tool/tool.ts +0 -74
  633. package/src/Agent/util/command-validator.ts +0 -98
  634. package/src/Agent/util/parser.ts +0 -39
  635. package/src/Agent/util/replace.ts +0 -559
  636. package/src/Agent/util/ripgrep.ts +0 -256
  637. package/src/Neon/api.ts +0 -579
  638. /package/lib/{Agent/util → Util}/exec.d.ts +0 -0
  639. /package/lib/{Agent/util → Util}/exec.js +0 -0
  640. /package/src/{Agent/util → Util}/exec.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../src/AWS/SQS/Queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../src/AWS/SQS/Queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import type { Pipeable } from "effect/Pipeable";
5
+ import type { Input } from "./Input.ts";
6
+ import { type NamespaceNode } from "./Namespace.ts";
7
+ import * as Output from "./Output.ts";
8
+ import { Stack } from "./Stack.ts";
9
+ /**
10
+ * An Action is a node in the dependency graph that runs an Effect with its
11
+ * resolved input during {@link plan}/{@link apply}. It is similar to a
12
+ * Resource but without a Provider lifecycle:
13
+ *
14
+ * - It has a LogicalId and typed Input.
15
+ * - The body Effect is called when input changes (diff) or `--force` is set.
16
+ * - There is no replace/precreate/read/delete: removing an Action from the
17
+ * stack simply drops its persisted state without invoking the body.
18
+ * - Dependencies pulled in by the init Effect surface as `Req` on the
19
+ * call site, exactly like a Resource's provider services.
20
+ *
21
+ * Actions are recorded on {@link Stack.actions} and produce a single output
22
+ * value; `yield*` on the constructor returns `Output<Out>` for use as
23
+ * input to downstream Resources / Actions.
24
+ */
25
+ export interface ActionLike<Type extends string = string, In extends object | undefined = any, Out = any> {
26
+ readonly Kind: "action";
27
+ readonly Namespace: NamespaceNode | undefined;
28
+ readonly FQN: string;
29
+ readonly Type: Type;
30
+ readonly LogicalId: string;
31
+ readonly Input: In;
32
+ /** Resolved runner — populated by the init effect (if any). */
33
+ readonly Run: (input: In) => Effect.Effect<Out, any, any>;
34
+ /** @internal phantom */
35
+ Output: Out;
36
+ }
37
+ export declare const isAction: (value: any) => value is ActionLike;
38
+ /** Body function — runs each time the resolved input changes. */
39
+ export type ActionRunner<In extends object | undefined, Out, Req = any> = (input: In) => Effect.Effect<Out, any, Req>;
40
+ /**
41
+ * Init Effect — declares dependencies via `yield*` and returns the runner.
42
+ * Lets multiple Action definitions share resolved services.
43
+ */
44
+ export type ActionInit<In extends object | undefined, Out, Req> = Effect.Effect<ActionRunner<In, Out, any>, any, Req>;
45
+ export declare function Action<Type extends string, In extends object | undefined, Out, Req = never>(type: Type, initOrRun: ActionRunner<In, Out, Req> | ActionInit<In, Out, Req>): ActionClass<never, Type, In, Out, Req>;
46
+ export declare function Action<Self, In extends object | undefined, Out>(): <Type extends string>(type: Type) => ActionClass<Self, Type, In, Out, Self>;
47
+ export interface ActionClass<Self, Type extends string, In extends object | undefined, Out, Req> {
48
+ readonly Type: Type;
49
+ /**
50
+ * Default form — uses `Type` as the LogicalId. One instance per Action
51
+ * definition (the common case for deploy-time work). Returns the Action's
52
+ * output as `Output<Out>`.
53
+ */
54
+ (input: {
55
+ [k in keyof In]: Input<In[k]>;
56
+ }): Effect.Effect<Output.ToOutput<Out, never>, never, Req | Stack>;
57
+ /**
58
+ * Explicit-id form — register multiple instances of the same Action
59
+ * definition under distinct logical ids.
60
+ */
61
+ (id: string, input: {
62
+ [k in keyof In]: Input<In[k]>;
63
+ }): Effect.Effect<Output.ToOutput<Out, never>, never, Req | Stack>;
64
+ /**
65
+ * Tagged-only: bind an init Effect to this Action's Self tag. Add the
66
+ * returned Layer to the stack's `providers`.
67
+ */
68
+ make: [Self] extends [never] ? never : <R = never>(init: ActionRunner<In, Out, R> | ActionInit<In, Out, R>) => Layer.Layer<Self, never, R>;
69
+ /** Tagged-only: the Context tag holding the resolved runner. */
70
+ readonly Self: [Self] extends [never] ? never : Context.Service<Self, ActionRunner<In, Out, any>>;
71
+ }
72
+ /**
73
+ * Pipeable Action instance used internally by Plan/Apply. Users get an
74
+ * `Output<Out>` from `yield*` and don't normally see this.
75
+ */
76
+ export type Action<Type extends string = string, In extends object | undefined = any, Out = any> = Pipeable & ActionLike<Type, In, Out>;
77
+ //# sourceMappingURL=Action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Action.d.ts","sourceRoot":"","sources":["../src/Action.ts"],"names":[],"mappings":"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"}
package/lib/Action.js ADDED
@@ -0,0 +1,89 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import { toFqn } from "./FQN.js";
5
+ import { CurrentNamespace } from "./Namespace.js";
6
+ import * as Output from "./Output.js";
7
+ import { Stack } from "./Stack.js";
8
+ export const isAction = (value) => typeof value === "object" && value !== null && value?.Kind === "action";
9
+ export function Action(...args) {
10
+ if (args.length === 0) {
11
+ // Tagged form: Action<Self, In, Out>()(type)
12
+ return (type) => makeActionClass(type, undefined);
13
+ }
14
+ // Inline form: Action(type, runnerOrInit)
15
+ const [type, initOrRun] = args;
16
+ return makeActionClass(type, initOrRun);
17
+ }
18
+ const isRunnerEffect = (v) => Effect.isEffect(v);
19
+ const makeActionClass = (type, baked) => {
20
+ // Pre-resolve baked init/runner into a single Effect<Runner, _, Req>. Use
21
+ // Effect.cached so the init's body runs at most once per process — every
22
+ // action instance after the first reuses the resolved runner without paying
23
+ // the init cost (or re-yielding its dependencies).
24
+ let resolveRunner;
25
+ if (baked !== undefined) {
26
+ resolveRunner = isRunnerEffect(baked)
27
+ ? Effect.runSync(Effect.cached(baked))
28
+ : Effect.succeed(baked);
29
+ }
30
+ // Tagged form needs a Context tag so the user can supply the runner
31
+ // through a Layer. Inline form bakes the runner in and skips the tag.
32
+ const SelfTag = baked
33
+ ? undefined
34
+ : Context.Service(`alchemy/Action<${type}>`);
35
+ const constructor = (...args) => {
36
+ const [id, input] = args.length === 1 ? [type, args[0]] : args;
37
+ return Effect.gen(function* () {
38
+ const run = resolveRunner
39
+ ? yield* resolveRunner
40
+ : (yield* SelfTag);
41
+ return yield* registerAction(type, id, input, run);
42
+ });
43
+ };
44
+ const extra = { Type: type };
45
+ if (SelfTag) {
46
+ extra.Self = SelfTag;
47
+ // `.make(initOrRun)` — accepts either a direct runner or an init Effect.
48
+ // For init form we use `Layer.effect` so the init's Req surfaces on the
49
+ // Layer; for runners we use `Layer.succeed`.
50
+ extra.make = (initOrRun) => isRunnerEffect(initOrRun)
51
+ ? Layer.effect(SelfTag, initOrRun)
52
+ : Layer.succeed(SelfTag, initOrRun);
53
+ }
54
+ return Object.assign(constructor, extra);
55
+ };
56
+ const registerAction = (type, id, input, run) => Effect.gen(function* () {
57
+ const stack = yield* Stack;
58
+ const namespace = yield* CurrentNamespace;
59
+ const fqn = toFqn(namespace, id);
60
+ const actions = (stack.actions ??= {});
61
+ const existing = actions[fqn];
62
+ if (existing)
63
+ return Output.of(existing);
64
+ // FQN collision check: actions share the same FQN namespace as resources
65
+ // so the dependency graph stays unified. Rejecting overlaps here makes
66
+ // the constraint obvious at registration time.
67
+ if (stack.resources[fqn]) {
68
+ return yield* Effect.die(new Error(`Action '${fqn}' collides with a Resource of the same logical id`));
69
+ }
70
+ const target = {
71
+ Kind: "action",
72
+ Type: type,
73
+ Namespace: namespace,
74
+ FQN: fqn,
75
+ LogicalId: id,
76
+ Input: input,
77
+ Run: run,
78
+ Output: undefined,
79
+ };
80
+ target.toString = () => `Action<${type}>(${id})`;
81
+ actions[fqn] = target;
82
+ // `yield* Sync({...})` returns `Output<Out>`. The engine writes the
83
+ // materialized value into `tracker[fqn]` during apply; `Output.of(action)`
84
+ // resolves a ResourceExpr by looking up `outputs[fqn]` — which is
85
+ // precisely that materialized value. Property access into the returned
86
+ // Output chains through the standard PropExpr proxy.
87
+ return Output.of(target);
88
+ });
89
+ //# sourceMappingURL=Action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Action.js","sourceRoot":"","sources":["../src/Action.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,6 @@ declare const AlchemyContext_base: EffectContext.ServiceClass<AlchemyContext, "a
20
20
  }>;
21
21
  export declare class AlchemyContext extends AlchemyContext_base {
22
22
  }
23
- export declare const AlchemyContextLive: Layer.Layer<AlchemyContext, import("effect/PlatformError").PlatformError, Path.Path | FileSystem.FileSystem>;
23
+ export declare const AlchemyContextLive: Layer.Layer<AlchemyContext, import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path>;
24
24
  export {};
25
25
  //# sourceMappingURL=AlchemyContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Apply.d.ts","sourceRoot":"","sources":["../src/Apply.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAQ7C,OAAO,EAGL,GAAG,EACJ,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAc,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAG/D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EASL,KAAK,EACL,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,IAAI,EACd,GAAG,GAAG,KAAK,EACX,GAAG,GAAG,KAAK,IACT,MAAM,CAAC,MAAM,CACf;KACG,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/C,EACD,GAAG,EACH,GAAG,CACJ,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,IAAI,IAAI;KACvC,EAAE,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,SAC5C,MAAM,GACN,SAAS,GACT,KAAK,GACL,KAAK,GACL,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;CACrD,CAAC;AA2DF,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,IAAI,EAClC,MAAM,CAAC,KACN,MAAM,CAAC,MAAM,CACd,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAC1B,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,kBAAkB,GAAG,eAAe,EAC1E,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CA8E1B,CAAC"}
1
+ {"version":3,"file":"Apply.d.ts","sourceRoot":"","sources":["../src/Apply.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAQ7C,OAAO,EAGL,GAAG,EACJ,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,IAAI,EAGV,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAaL,KAAK,EACL,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,IAAI,EACd,GAAG,GAAG,KAAK,EACX,GAAG,GAAG,KAAK,IACT,MAAM,CAAC,MAAM,CACf;KACG,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/C,EACD,GAAG,EACH,GAAG,CACJ,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,IAAI,IAAI;KACvC,EAAE,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,SAC5C,MAAM,GACN,SAAS,GACT,KAAK,GACL,KAAK,GACL,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;CACrD,CAAC;AA2DF,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,IAAI,EAClC,MAAM,CAAC,KACN,MAAM,CAAC,MAAM,CACd,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAC1B,MAAM,CAAC,qBAAqB,GAAG,MAAM,CAAC,kBAAkB,GAAG,eAAe,EAC1E,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CA8E1B,CAAC"}
package/lib/Apply.js CHANGED
@@ -14,6 +14,7 @@ import { Stack } from "./Stack.js";
14
14
  import { Stage } from "./Stage.js";
15
15
  import { recordResourceOp } from "./Telemetry/Metrics.js";
16
16
  import { State, StateStoreError, } from "./State/index.js";
17
+ import { hashInput } from "./Util/hash.js";
17
18
  const provideLifecycleScope = (fqn, instanceId) => (effect) => Effect.serviceOption(ArtifactStore).pipe(Effect.map(Option.getOrElse(createArtifactStore)), Effect.flatMap((store) => effect.pipe(Effect.provideService(Artifacts, makeScopedArtifacts(store, fqn)), Effect.provideService(InstanceId, instanceId))));
18
19
  /**
19
20
  * Instruments a single provider lifecycle call with an OTel span
@@ -74,13 +75,30 @@ export const apply = (plan) => Effect.gen(function* () {
74
75
  // downstream resources can resolve stable identifiers without deadlocking.
75
76
  // The actual output lives in the mutable `tracker` map, not in the Deferred.
76
77
  const executePlan = Effect.fnUntraced(function* (plan, tracker, terminalStatuses, session, state, stackName, stage) {
77
- const ready = Object.fromEntries(yield* Effect.all(Object.keys(plan.resources).map((fqn) => Effect.map(Deferred.make(), (d) => [fqn, d]))));
78
+ // Resources and tasks share the same FQN namespace and DAG, so the
79
+ // scheduler tracks them together. Each entry gets a single Deferred that
80
+ // signals "my output is available in `tracker`."
81
+ const allNodes = {
82
+ ...plan.resources,
83
+ ...plan.actions,
84
+ };
85
+ const ready = Object.fromEntries(yield* Effect.all(Object.keys(allNodes).map((fqn) => Effect.map(Deferred.make(), (d) => [fqn, d]))));
86
+ // `readyStable` fires only when a node has reached its TERMINAL output —
87
+ // resources after `reconcile`, tasks after the body completes. Resource
88
+ // precreate stubs do NOT signal `readyStable`, so any consumer that
89
+ // requires stable inputs (e.g. Tasks) waits past the precreate phase.
90
+ const readyStable = Object.fromEntries(yield* Effect.all(Object.keys(allNodes).map((fqn) => Effect.map(Deferred.make(), (d) => [fqn, d]))));
78
91
  const getOutputs = () => Object.fromEntries(Object.entries(tracker).map(([fqn, t]) => [fqn, t.output]));
79
92
  const waitForDeps = (fqns) => Effect.all(fqns
80
93
  .filter((fqn) => fqn in ready)
81
94
  .map((fqn) => Deferred.await(ready[fqn])), { concurrency: "unbounded" });
95
+ const waitForStableDeps = (fqns) => Effect.all(fqns
96
+ .filter((fqn) => fqn in readyStable)
97
+ .map((fqn) => Deferred.await(readyStable[fqn])), { concurrency: "unbounded" });
82
98
  const failures = [];
83
- yield* Effect.all(Object.entries(plan.resources).map(([fqn, node]) => executeNode(fqn, node, tracker, ready, terminalStatuses, session, state, stackName, stage, getOutputs, waitForDeps, failures, plan.cycleMembers.has(fqn))), { concurrency: "unbounded" });
99
+ yield* Effect.all(Object.entries(allNodes).map(([fqn, node]) => node.kind === "action"
100
+ ? executeActionNode(fqn, node, tracker, ready, readyStable, terminalStatuses, session, state, stackName, stage, getOutputs, waitForStableDeps, failures)
101
+ : executeNode(fqn, node, tracker, ready, readyStable, terminalStatuses, session, state, stackName, stage, getOutputs, waitForDeps, failures, plan.cycleMembers.has(fqn))), { concurrency: "unbounded" });
84
102
  if (failures.length > 0) {
85
103
  // Aggregate every collected lifecycle failure into a single parallel Cause
86
104
  // so the apply ends with one combined error containing every distinct
@@ -88,7 +106,7 @@ const executePlan = Effect.fnUntraced(function* (plan, tracker, terminalStatuses
88
106
  yield* Effect.failCause(failures.map((f) => f.cause).reduce(Cause.combine));
89
107
  }
90
108
  });
91
- const executeNode = (fqn, node, tracker, ready, terminalStatuses, session, state, stackName, stage, getOutputs, waitForDeps, failures, inCycle) => Effect.gen(function* () {
109
+ const executeNode = (fqn, node, tracker, ready, readyStable, terminalStatuses, session, state, stackName, stage, getOutputs, waitForDeps, failures, inCycle) => Effect.gen(function* () {
92
110
  const logicalId = node.resource.LogicalId;
93
111
  const namespace = node.resource.Namespace;
94
112
  const commit = (value) => state.set({
@@ -115,12 +133,18 @@ const executeNode = (fqn, node, tracker, ready, terminalStatuses, session, state
115
133
  });
116
134
  });
117
135
  const signalReady = Deferred.succeed(ready[fqn], void 0);
136
+ // Signal only after reconcile completes — never during precreate. Tasks
137
+ // (and any other consumer that calls `waitForStableDeps`) block on this
138
+ // so they observe the resource's final attrs rather than a stub.
139
+ const signalReadyStable = Deferred.succeed(readyStable[fqn], void 0);
118
140
  const storeAndSignal = (t) => Effect.gen(function* () {
119
141
  tracker[fqn] = t;
120
142
  yield* signalReady;
121
143
  });
122
144
  // ── noop ──
123
145
  if (node.action === "noop") {
146
+ // No work to do — the persisted attr is already stable.
147
+ yield* signalReadyStable;
124
148
  yield* storeAndSignal({
125
149
  output: node.state.attr,
126
150
  props: node.state.props,
@@ -286,6 +310,7 @@ const executeNode = (fqn, node, tracker, ready, terminalStatuses, session, state
286
310
  instanceId,
287
311
  };
288
312
  yield* signalReady;
313
+ yield* signalReadyStable;
289
314
  yield* markTerminal("created");
290
315
  return;
291
316
  }
@@ -392,6 +417,7 @@ const executeNode = (fqn, node, tracker, ready, terminalStatuses, session, state
392
417
  // the deferred has already been resolved by the early `storeAndSignal`
393
418
  // above and `signalReady` is a no-op the second time.
394
419
  yield* signalReady;
420
+ yield* signalReadyStable;
395
421
  yield* markTerminal("updated");
396
422
  return;
397
423
  }
@@ -407,6 +433,7 @@ const executeNode = (fqn, node, tracker, ready, terminalStatuses, session, state
407
433
  instanceId,
408
434
  };
409
435
  yield* signalReady;
436
+ yield* signalReadyStable;
410
437
  yield* markTerminal("created");
411
438
  return;
412
439
  }
@@ -522,6 +549,7 @@ const executeNode = (fqn, node, tracker, ready, terminalStatuses, session, state
522
549
  instanceId,
523
550
  };
524
551
  yield* signalReady;
552
+ yield* signalReadyStable;
525
553
  // Keep progress anchored to the live replacement while GC drains the
526
554
  // previous generation(s) in the background.
527
555
  yield* markTerminal("created");
@@ -544,6 +572,7 @@ Effect.gen(function* () {
544
572
  cause,
545
573
  });
546
574
  yield* Deferred.failCause(ready[fqn], cause);
575
+ yield* Deferred.failCause(readyStable[fqn], cause);
547
576
  yield* session.emit({
548
577
  kind: "status-change",
549
578
  id: node.resource.LogicalId,
@@ -558,6 +587,113 @@ Effect.gen(function* () {
558
587
  "alchemy.resource.action": node.action,
559
588
  },
560
589
  }));
590
+ // ── Task execution ─────────────────────────────────────────────────────────
591
+ //
592
+ // Tasks slot into the same scheduler as resources. They have no provider
593
+ // lifecycle — just a single Effect that runs when inputs change (or when
594
+ // `--force` is set). The output value is written to `tracker[fqn].output`
595
+ // so downstream Output evaluation works identically to resource attrs.
596
+ const executeActionNode = (fqn, node, tracker, ready, readyStable, terminalStatuses, session, state, stackName, stage, getOutputs, waitForDeps, failures) => Effect.gen(function* () {
597
+ const task = node.def;
598
+ const logicalId = task.LogicalId;
599
+ const namespace = task.Namespace;
600
+ const commit = (value) => state.set({
601
+ stack: stackName,
602
+ stage,
603
+ fqn,
604
+ value: { ...value, namespace },
605
+ });
606
+ const report = (status) => session.emit({
607
+ kind: "status-change",
608
+ id: logicalId,
609
+ type: task.Type,
610
+ status,
611
+ });
612
+ const signalReady = Deferred.succeed(ready[fqn], void 0);
613
+ const signalReadyStable = Deferred.succeed(readyStable[fqn], void 0);
614
+ if (node.action === "noop") {
615
+ tracker[fqn] = {
616
+ output: node.state.output,
617
+ props: { __input: node.state.input },
618
+ bindings: [],
619
+ instanceId: fqn,
620
+ };
621
+ yield* signalReady;
622
+ yield* signalReadyStable;
623
+ terminalStatuses.set(fqn, {
624
+ id: logicalId,
625
+ type: task.Type,
626
+ status: "skipped",
627
+ });
628
+ return;
629
+ }
630
+ // ── run ──
631
+ // Wait for stable (post-reconcile) upstream attrs — not precreate stubs.
632
+ // This is `waitForStableDeps` at the call site, passed in as the
633
+ // `waitForDeps` parameter here.
634
+ yield* waitForDeps(Object.keys(Output.resolveUpstream(node.input)).filter((f) => f in readyStable));
635
+ const outputs = getOutputs();
636
+ const resolvedInput = (yield* Output.evaluate(node.input, outputs));
637
+ const inputHashValue = yield* hashInput(resolvedInput);
638
+ yield* commit({
639
+ kind: "action",
640
+ status: "running",
641
+ fqn,
642
+ logicalId,
643
+ actionType: task.Type,
644
+ inputHash: inputHashValue,
645
+ input: resolvedInput,
646
+ downstream: node.downstream,
647
+ });
648
+ yield* report("running");
649
+ const result = yield* task.Run(resolvedInput);
650
+ yield* commit({
651
+ kind: "action",
652
+ status: "ran",
653
+ fqn,
654
+ logicalId,
655
+ actionType: task.Type,
656
+ inputHash: inputHashValue,
657
+ input: resolvedInput,
658
+ output: result,
659
+ downstream: node.downstream,
660
+ });
661
+ tracker[fqn] = {
662
+ output: result,
663
+ props: { __input: resolvedInput },
664
+ bindings: [],
665
+ instanceId: fqn,
666
+ };
667
+ yield* signalReady;
668
+ yield* signalReadyStable;
669
+ terminalStatuses.set(fqn, {
670
+ id: logicalId,
671
+ type: task.Type,
672
+ status: "ran",
673
+ });
674
+ }).pipe(Effect.catchCause((cause) => Effect.gen(function* () {
675
+ failures.push({
676
+ fqn,
677
+ logicalId: node.def.LogicalId,
678
+ type: node.def.Type,
679
+ cause,
680
+ });
681
+ yield* Deferred.failCause(ready[fqn], cause);
682
+ yield* Deferred.failCause(readyStable[fqn], cause);
683
+ yield* session.emit({
684
+ kind: "status-change",
685
+ id: node.def.LogicalId,
686
+ type: node.def.Type,
687
+ status: "fail",
688
+ });
689
+ })), Effect.withSpan("apply.action", {
690
+ attributes: {
691
+ "alchemy.action.fqn": fqn,
692
+ "alchemy.action.type": node.def.Type,
693
+ "alchemy.action.logical_id": node.def.LogicalId,
694
+ "alchemy.action.verb": node.action,
695
+ },
696
+ }));
561
697
  // ── Phase 3: imperative convergence loop ───────────────────────────────────
562
698
  //
563
699
  // After the initial concurrent pass, some resources may have been created
@@ -633,6 +769,69 @@ const converge = Effect.fnUntraced(function* (plan, tracker, terminalStatuses, s
633
769
  status: "updated",
634
770
  });
635
771
  }
772
+ // Tasks: re-run when their resolved input drifts vs. the value they
773
+ // last applied with (e.g. an upstream resource produced new attrs in
774
+ // this pass). Skipped (noop) tasks are not re-checked here — their
775
+ // recorded inputHash is authoritative until the next plan.
776
+ for (const [fqn, node] of Object.entries(plan.actions)) {
777
+ if (node.action !== "run")
778
+ continue;
779
+ if (!tracker[fqn])
780
+ continue;
781
+ const outputs = Object.fromEntries(Object.entries(tracker).map(([k, t]) => [k, t.output]));
782
+ const newInput = (yield* Output.evaluate(node.input, outputs));
783
+ const newHash = yield* hashInput(newInput);
784
+ const oldInput = tracker[fqn].props?.__input;
785
+ const oldHash = yield* hashInput(oldInput);
786
+ if (newHash === oldHash)
787
+ continue;
788
+ anyUpdated = true;
789
+ yield* state.set({
790
+ stack: stackName,
791
+ stage,
792
+ fqn,
793
+ value: {
794
+ kind: "action",
795
+ status: "running",
796
+ fqn,
797
+ logicalId: node.def.LogicalId,
798
+ namespace: node.def.Namespace,
799
+ actionType: node.def.Type,
800
+ inputHash: newHash,
801
+ input: newInput,
802
+ downstream: node.downstream,
803
+ },
804
+ });
805
+ const result = yield* node.def.Run(newInput);
806
+ yield* state.set({
807
+ stack: stackName,
808
+ stage,
809
+ fqn,
810
+ value: {
811
+ kind: "action",
812
+ status: "ran",
813
+ fqn,
814
+ logicalId: node.def.LogicalId,
815
+ namespace: node.def.Namespace,
816
+ actionType: node.def.Type,
817
+ inputHash: newHash,
818
+ input: newInput,
819
+ output: result,
820
+ downstream: node.downstream,
821
+ },
822
+ });
823
+ tracker[fqn] = {
824
+ output: result,
825
+ props: { __input: newInput },
826
+ bindings: [],
827
+ instanceId: fqn,
828
+ };
829
+ terminalStatuses.set(fqn, {
830
+ id: node.def.LogicalId,
831
+ type: node.def.Type,
832
+ status: "ran",
833
+ });
834
+ }
636
835
  if (!anyUpdated)
637
836
  break;
638
837
  }
@@ -643,6 +842,26 @@ const collectGarbage = Effect.fnUntraced(function* (plan, session) {
643
842
  const stack = yield* Stack;
644
843
  const stackName = stack.name;
645
844
  const stage = yield* Stage;
845
+ // Task deletions are pure state drops — no body is invoked. Run them in
846
+ // parallel before resource GC; tasks never have provider-side dependencies
847
+ // to wait on.
848
+ yield* Effect.all(Object.entries(plan.actionDeletions ?? {}).map(([fqn, node]) => node === undefined
849
+ ? Effect.void
850
+ : Effect.gen(function* () {
851
+ yield* session.emit({
852
+ kind: "status-change",
853
+ id: node.def.LogicalId,
854
+ type: node.def.Type,
855
+ status: "deleting",
856
+ });
857
+ yield* state.delete({ stack: stackName, stage, fqn });
858
+ yield* session.emit({
859
+ kind: "status-change",
860
+ id: node.def.LogicalId,
861
+ type: node.def.Type,
862
+ status: "deleted",
863
+ });
864
+ })), { concurrency: "unbounded" });
646
865
  const deleteGraph = Effect.fnUntraced(function* (deletionGraph) {
647
866
  const deletions = {};
648
867
  const deleteResource = (node, ancestors = new Set()) => Effect.gen(function* () {