alchemy 2.0.0-beta.36 → 2.0.0-beta.38

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 (741) hide show
  1. package/bin/exec.js +646 -104
  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 +29 -13
  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 +228 -4
  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/AnalyticsEngineDataset.d.ts +54 -0
  120. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.d.ts.map +1 -0
  121. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.js +17 -0
  122. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.js.map +1 -0
  123. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.d.ts +37 -0
  124. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.d.ts.map +1 -0
  125. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js +45 -0
  126. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js.map +1 -0
  127. package/lib/Cloudflare/AnalyticsEngine/index.d.ts +3 -0
  128. package/lib/Cloudflare/AnalyticsEngine/index.d.ts.map +1 -0
  129. package/lib/Cloudflare/AnalyticsEngine/index.js +3 -0
  130. package/lib/Cloudflare/AnalyticsEngine/index.js.map +1 -0
  131. package/lib/Cloudflare/Artifacts/ArtifactsBinding.js +1 -1
  132. package/lib/Cloudflare/Artifacts/ArtifactsBinding.js.map +1 -1
  133. package/lib/Cloudflare/CloudflareEnvironment.d.ts +1 -1
  134. package/lib/Cloudflare/Container/Container.js +0 -1
  135. package/lib/Cloudflare/Container/Container.js.map +1 -1
  136. package/lib/Cloudflare/Container/ContainerApplication.d.ts +1 -1
  137. package/lib/Cloudflare/Container/ContainerApplication.d.ts.map +1 -1
  138. package/lib/Cloudflare/Container/ContainerApplication.js +4 -6
  139. package/lib/Cloudflare/Container/ContainerApplication.js.map +1 -1
  140. package/lib/Cloudflare/Container/ContainerBinding.js +2 -2
  141. package/lib/Cloudflare/Container/ContainerBinding.js.map +1 -1
  142. package/lib/Cloudflare/D1/D1Connection.d.ts +47 -3
  143. package/lib/Cloudflare/D1/D1Connection.d.ts.map +1 -1
  144. package/lib/Cloudflare/D1/D1Connection.js +62 -5
  145. package/lib/Cloudflare/D1/D1Connection.js.map +1 -1
  146. package/lib/Cloudflare/D1/D1Database.d.ts +1 -1
  147. package/lib/Cloudflare/D1/D1SqlFile.d.ts +2 -2
  148. package/lib/Cloudflare/Email/EmailAddress.d.ts +45 -0
  149. package/lib/Cloudflare/Email/EmailAddress.d.ts.map +1 -0
  150. package/lib/Cloudflare/Email/EmailAddress.js +99 -0
  151. package/lib/Cloudflare/Email/EmailAddress.js.map +1 -0
  152. package/lib/Cloudflare/Email/EmailRouting.d.ts +42 -0
  153. package/lib/Cloudflare/Email/EmailRouting.d.ts.map +1 -0
  154. package/lib/Cloudflare/Email/EmailRouting.js +89 -0
  155. package/lib/Cloudflare/Email/EmailRouting.js.map +1 -0
  156. package/lib/Cloudflare/Email/EmailRule.d.ts +80 -0
  157. package/lib/Cloudflare/Email/EmailRule.d.ts.map +1 -0
  158. package/lib/Cloudflare/Email/EmailRule.js +110 -0
  159. package/lib/Cloudflare/Email/EmailRule.js.map +1 -0
  160. package/lib/Cloudflare/Email/SendEmail.d.ts +74 -0
  161. package/lib/Cloudflare/Email/SendEmail.d.ts.map +1 -0
  162. package/lib/Cloudflare/Email/SendEmail.js +19 -0
  163. package/lib/Cloudflare/Email/SendEmail.js.map +1 -0
  164. package/lib/Cloudflare/Email/SendEmailBinding.d.ts +64 -0
  165. package/lib/Cloudflare/Email/SendEmailBinding.d.ts.map +1 -0
  166. package/lib/Cloudflare/Email/SendEmailBinding.js +54 -0
  167. package/lib/Cloudflare/Email/SendEmailBinding.js.map +1 -0
  168. package/lib/Cloudflare/Email/index.d.ts +6 -0
  169. package/lib/Cloudflare/Email/index.d.ts.map +1 -0
  170. package/lib/Cloudflare/Email/index.js +6 -0
  171. package/lib/Cloudflare/Email/index.js.map +1 -0
  172. package/lib/Cloudflare/Hyperdrive/Hyperdrive.d.ts +1 -1
  173. package/lib/Cloudflare/Images/ImagesBinding.js +1 -1
  174. package/lib/Cloudflare/Images/ImagesBinding.js.map +1 -1
  175. package/lib/Cloudflare/KV/KVNamespaceBinding.js +1 -1
  176. package/lib/Cloudflare/KV/KVNamespaceBinding.js.map +1 -1
  177. package/lib/Cloudflare/Local/Sidecar.d.ts +1 -1
  178. package/lib/Cloudflare/Local/SidecarHandlers.d.ts +1 -1
  179. package/lib/Cloudflare/Local/SidecarHandlers.js +9 -1
  180. package/lib/Cloudflare/Local/SidecarHandlers.js.map +1 -1
  181. package/lib/Cloudflare/Local/SidecarServer.js +1 -1
  182. package/lib/Cloudflare/Local/SidecarServer.js.map +1 -1
  183. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  184. package/lib/Cloudflare/Providers.js +9 -1
  185. package/lib/Cloudflare/Providers.js.map +1 -1
  186. package/lib/Cloudflare/Queue/QueueBinding.js +1 -1
  187. package/lib/Cloudflare/Queue/QueueBinding.js.map +1 -1
  188. package/lib/Cloudflare/R2/R2Bucket.d.ts.map +1 -1
  189. package/lib/Cloudflare/R2/R2Bucket.js +16 -0
  190. package/lib/Cloudflare/R2/R2Bucket.js.map +1 -1
  191. package/lib/Cloudflare/R2/R2BucketBinding.js +1 -1
  192. package/lib/Cloudflare/R2/R2BucketBinding.js.map +1 -1
  193. package/lib/Cloudflare/SecretsStore/SecretBinding.js +1 -1
  194. package/lib/Cloudflare/SecretsStore/SecretBinding.js.map +1 -1
  195. package/lib/Cloudflare/StateStore/Api.d.ts +7 -2
  196. package/lib/Cloudflare/StateStore/Api.d.ts.map +1 -1
  197. package/lib/Cloudflare/StateStore/Api.js +23 -1
  198. package/lib/Cloudflare/StateStore/Api.js.map +1 -1
  199. package/lib/Cloudflare/StateStore/State.d.ts +2 -2
  200. package/lib/Cloudflare/StateStore/Store.d.ts +16 -1
  201. package/lib/Cloudflare/StateStore/Store.d.ts.map +1 -1
  202. package/lib/Cloudflare/StateStore/Store.js +22 -5
  203. package/lib/Cloudflare/StateStore/Store.js.map +1 -1
  204. package/lib/Cloudflare/Workers/Assets.d.ts +2 -2
  205. package/lib/Cloudflare/Workers/Assets.d.ts.map +1 -1
  206. package/lib/Cloudflare/Workers/Assets.js +5 -4
  207. package/lib/Cloudflare/Workers/Assets.js.map +1 -1
  208. package/lib/Cloudflare/Workers/CronEventSource.d.ts +35 -0
  209. package/lib/Cloudflare/Workers/CronEventSource.d.ts.map +1 -0
  210. package/lib/Cloudflare/Workers/CronEventSource.js +55 -0
  211. package/lib/Cloudflare/Workers/CronEventSource.js.map +1 -0
  212. package/lib/Cloudflare/Workers/InferEnv.d.ts +37 -2
  213. package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
  214. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  215. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +2 -1
  216. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  217. package/lib/Cloudflare/Workers/Rpc.d.ts +76 -3
  218. package/lib/Cloudflare/Workers/Rpc.d.ts.map +1 -1
  219. package/lib/Cloudflare/Workers/Rpc.js +197 -13
  220. package/lib/Cloudflare/Workers/Rpc.js.map +1 -1
  221. package/lib/Cloudflare/Workers/Worker.d.ts +24 -4
  222. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  223. package/lib/Cloudflare/Workers/Worker.js +187 -45
  224. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  225. package/lib/Cloudflare/Workers/WorkerBundle.d.ts +1 -1
  226. package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -1
  227. package/lib/Cloudflare/Workers/WorkerBundle.js +19 -11
  228. package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -1
  229. package/lib/Cloudflare/Workers/WorkerName.d.ts +1 -1
  230. package/lib/Cloudflare/Workers/Workflow.d.ts +50 -47
  231. package/lib/Cloudflare/Workers/Workflow.d.ts.map +1 -1
  232. package/lib/Cloudflare/Workers/Workflow.js +43 -37
  233. package/lib/Cloudflare/Workers/Workflow.js.map +1 -1
  234. package/lib/Cloudflare/Workers/index.d.ts +1 -0
  235. package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
  236. package/lib/Cloudflare/Workers/index.js +1 -0
  237. package/lib/Cloudflare/Workers/index.js.map +1 -1
  238. package/lib/Cloudflare/index.d.ts +2 -0
  239. package/lib/Cloudflare/index.d.ts.map +1 -1
  240. package/lib/Cloudflare/index.js +2 -0
  241. package/lib/Cloudflare/index.js.map +1 -1
  242. package/lib/Construct.d.ts +3 -3
  243. package/lib/Construct.d.ts.map +1 -1
  244. package/lib/Construct.js.map +1 -1
  245. package/lib/Deploy.d.ts +5 -2
  246. package/lib/Deploy.d.ts.map +1 -1
  247. package/lib/Deploy.js +2 -2
  248. package/lib/Deploy.js.map +1 -1
  249. package/lib/Destroy.d.ts +5 -2
  250. package/lib/Destroy.d.ts.map +1 -1
  251. package/lib/Destroy.js +3 -2
  252. package/lib/Destroy.js.map +1 -1
  253. package/lib/Drizzle/Providers.d.ts +1 -1
  254. package/lib/Drizzle/Schema.d.ts +1 -1
  255. package/lib/GitHub/Providers.d.ts +1 -1
  256. package/lib/Http.d.ts +1 -1
  257. package/lib/Http.d.ts.map +1 -1
  258. package/lib/Http.js +1 -1
  259. package/lib/Http.js.map +1 -1
  260. package/lib/Namespace.d.ts.map +1 -1
  261. package/lib/Namespace.js +3 -4
  262. package/lib/Namespace.js.map +1 -1
  263. package/lib/Neon/Branch.d.ts +2 -2
  264. package/lib/Neon/Branch.d.ts.map +1 -1
  265. package/lib/Neon/Branch.js +59 -27
  266. package/lib/Neon/Branch.js.map +1 -1
  267. package/lib/Neon/Credentials.d.ts +2 -2
  268. package/lib/Neon/Credentials.d.ts.map +1 -1
  269. package/lib/Neon/Credentials.js +2 -2
  270. package/lib/Neon/Credentials.js.map +1 -1
  271. package/lib/Neon/NeonEnvironment.d.ts +1 -1
  272. package/lib/Neon/Project.d.ts +25 -1
  273. package/lib/Neon/Project.d.ts.map +1 -1
  274. package/lib/Neon/Project.js +121 -42
  275. package/lib/Neon/Project.js.map +1 -1
  276. package/lib/Neon/Providers.d.ts +1 -1
  277. package/lib/Neon/SqlFile.d.ts +2 -2
  278. package/lib/Output.d.ts +47 -8
  279. package/lib/Output.d.ts.map +1 -1
  280. package/lib/Output.js +106 -7
  281. package/lib/Output.js.map +1 -1
  282. package/lib/PhysicalName.d.ts +1 -1
  283. package/lib/Plan.d.ts +36 -1
  284. package/lib/Plan.d.ts.map +1 -1
  285. package/lib/Plan.js +284 -37
  286. package/lib/Plan.js.map +1 -1
  287. package/lib/Platform.d.ts.map +1 -1
  288. package/lib/Platform.js +22 -9
  289. package/lib/Platform.js.map +1 -1
  290. package/lib/Provider.d.ts +1 -1
  291. package/lib/Provider.d.ts.map +1 -1
  292. package/lib/Provider.js +1 -1
  293. package/lib/Provider.js.map +1 -1
  294. package/lib/Random.d.ts +1 -1
  295. package/lib/Random.d.ts.map +1 -1
  296. package/lib/Random.js +1 -1
  297. package/lib/Random.js.map +1 -1
  298. package/lib/Ref.d.ts +4 -1
  299. package/lib/Ref.d.ts.map +1 -1
  300. package/lib/Ref.js +1 -1
  301. package/lib/Ref.js.map +1 -1
  302. package/lib/Resource.d.ts +8 -0
  303. package/lib/Resource.d.ts.map +1 -1
  304. package/lib/Resource.js +12 -25
  305. package/lib/Resource.js.map +1 -1
  306. package/lib/Runtime.d.ts +24 -0
  307. package/lib/Runtime.d.ts.map +1 -0
  308. package/lib/Runtime.js +31 -0
  309. package/lib/Runtime.js.map +1 -0
  310. package/lib/RuntimeContext.d.ts +3 -1
  311. package/lib/RuntimeContext.d.ts.map +1 -1
  312. package/lib/RuntimeContext.js.map +1 -1
  313. package/lib/Secret.d.ts +50 -0
  314. package/lib/Secret.d.ts.map +1 -0
  315. package/lib/Secret.js +23 -0
  316. package/lib/Secret.js.map +1 -0
  317. package/lib/Serverless/Function.d.ts +9 -1
  318. package/lib/Serverless/Function.d.ts.map +1 -1
  319. package/lib/Sidecar/RpcClient.d.ts +1 -1
  320. package/lib/Sidecar/RpcPaths.d.ts +1 -1
  321. package/lib/Sidecar/RpcServer.d.ts +1 -1
  322. package/lib/Sidecar/RpcServices.d.ts +1 -1
  323. package/lib/Stack.d.ts +20 -6
  324. package/lib/Stack.d.ts.map +1 -1
  325. package/lib/Stack.js +35 -23
  326. package/lib/Stack.js.map +1 -1
  327. package/lib/State/ActionState.d.ts +48 -0
  328. package/lib/State/ActionState.d.ts.map +1 -0
  329. package/lib/State/ActionState.js +1 -0
  330. package/lib/State/ActionState.js.map +1 -0
  331. package/lib/State/HttpStateApi.d.ts +15 -1
  332. package/lib/State/HttpStateApi.d.ts.map +1 -1
  333. package/lib/State/HttpStateApi.js +11 -0
  334. package/lib/State/HttpStateApi.js.map +1 -1
  335. package/lib/State/HttpStateStore.d.ts.map +1 -1
  336. package/lib/State/HttpStateStore.js +12 -1
  337. package/lib/State/HttpStateStore.js.map +1 -1
  338. package/lib/State/InMemoryState.d.ts +2 -2
  339. package/lib/State/InMemoryState.d.ts.map +1 -1
  340. package/lib/State/InMemoryState.js +12 -6
  341. package/lib/State/InMemoryState.js.map +1 -1
  342. package/lib/State/LocalState.d.ts +2 -2
  343. package/lib/State/LocalState.d.ts.map +1 -1
  344. package/lib/State/LocalState.js +11 -2
  345. package/lib/State/LocalState.js.map +1 -1
  346. package/lib/State/ResourceState.d.ts +5 -0
  347. package/lib/State/ResourceState.d.ts.map +1 -1
  348. package/lib/State/State.d.ts +31 -2
  349. package/lib/State/State.d.ts.map +1 -1
  350. package/lib/State/State.js +2 -0
  351. package/lib/State/State.js.map +1 -1
  352. package/lib/State/index.d.ts +1 -0
  353. package/lib/State/index.d.ts.map +1 -1
  354. package/lib/State/index.js +1 -0
  355. package/lib/State/index.js.map +1 -1
  356. package/lib/Test/Bun.d.ts.map +1 -1
  357. package/lib/Test/Bun.js +30 -7
  358. package/lib/Test/Bun.js.map +1 -1
  359. package/lib/Test/Core.d.ts +19 -4
  360. package/lib/Test/Core.d.ts.map +1 -1
  361. package/lib/Test/Core.js +33 -12
  362. package/lib/Test/Core.js.map +1 -1
  363. package/lib/Test/Vitest.d.ts.map +1 -1
  364. package/lib/Test/Vitest.js +24 -5
  365. package/lib/Test/Vitest.js.map +1 -1
  366. package/lib/Util/FileLogger.d.ts +1 -1
  367. package/lib/Util/LocalhostDns.d.ts +14 -10
  368. package/lib/Util/LocalhostDns.d.ts.map +1 -1
  369. package/lib/Util/LocalhostDns.js +27 -36
  370. package/lib/Util/LocalhostDns.js.map +1 -1
  371. package/lib/Util/effect.d.ts +7 -0
  372. package/lib/Util/effect.d.ts.map +1 -1
  373. package/lib/Util/effect.js +10 -4
  374. package/lib/Util/effect.js.map +1 -1
  375. package/lib/Util/exec.d.ts.map +1 -0
  376. package/lib/Util/exec.js.map +1 -0
  377. package/lib/Util/hash.d.ts +8 -0
  378. package/lib/Util/hash.d.ts.map +1 -0
  379. package/lib/Util/hash.js +11 -0
  380. package/lib/Util/hash.js.map +1 -0
  381. package/lib/Util/ignore.d.ts +40 -0
  382. package/lib/Util/ignore.d.ts.map +1 -0
  383. package/lib/Util/ignore.js +591 -0
  384. package/lib/Util/ignore.js.map +1 -0
  385. package/lib/Variable.d.ts +29 -0
  386. package/lib/Variable.d.ts.map +1 -0
  387. package/lib/Variable.js +9 -0
  388. package/lib/Variable.js.map +1 -0
  389. package/lib/index.d.ts +4 -0
  390. package/lib/index.d.ts.map +1 -1
  391. package/lib/index.js +4 -0
  392. package/lib/index.js.map +1 -1
  393. package/lib/tsconfig.test.tsbuildinfo +1 -1
  394. package/package.json +22 -29
  395. package/src/AWS/Credentials.ts +1 -2
  396. package/src/AWS/DynamoDB/Stream.ts +1 -4
  397. package/src/AWS/EC2/hosted.ts +14 -16
  398. package/src/AWS/ECS/Task.ts +14 -16
  399. package/src/AWS/Endpoint.ts +2 -5
  400. package/src/AWS/EventBridge/EventSource.ts +1 -4
  401. package/src/AWS/Kinesis/StreamEventSource.ts +1 -4
  402. package/src/AWS/Lambda/Function.ts +47 -23
  403. package/src/AWS/Providers.ts +22 -3
  404. package/src/AWS/Region.ts +2 -3
  405. package/src/AWS/S3/Bucket.ts +7 -2
  406. package/src/AWS/S3/BucketNotifications.ts +1 -4
  407. package/src/AWS/SNS/TopicEventSource.ts +1 -4
  408. package/src/AWS/SQS/Queue.ts +40 -6
  409. package/src/Action.ts +280 -0
  410. package/src/Apply.ts +359 -24
  411. package/src/Artifacts.ts +2 -4
  412. package/src/Auth/AuthProvider.ts +1 -1
  413. package/src/Auth/Env.ts +12 -20
  414. package/src/Binding.ts +5 -9
  415. package/src/Bundle/Docker.ts +1 -1
  416. package/src/Cli/Event.ts +4 -0
  417. package/src/Cli/NamespaceTree.ts +52 -5
  418. package/src/Cli/commands/_shared.ts +2 -2
  419. package/src/Cli/commands/deploy.ts +1 -1
  420. package/src/Cli/commands/logs.ts +4 -4
  421. package/src/Cli/commands/tail.ts +4 -4
  422. package/src/Cli/tui/components/Plan.tsx +65 -17
  423. package/src/Cli/tui/components/PlanProgress.tsx +142 -32
  424. package/src/Cloudflare/Access.ts +1 -1
  425. package/src/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.ts +82 -0
  426. package/src/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.ts +106 -0
  427. package/src/Cloudflare/AnalyticsEngine/index.ts +2 -0
  428. package/src/Cloudflare/Artifacts/ArtifactsBinding.ts +1 -1
  429. package/src/Cloudflare/Container/Container.ts +1 -1
  430. package/src/Cloudflare/Container/ContainerApplication.ts +4 -6
  431. package/src/Cloudflare/Container/ContainerBinding.ts +2 -2
  432. package/src/Cloudflare/D1/D1Connection.ts +95 -12
  433. package/src/Cloudflare/Email/EmailAddress.ts +155 -0
  434. package/src/Cloudflare/Email/EmailRouting.ts +138 -0
  435. package/src/Cloudflare/Email/EmailRule.ts +210 -0
  436. package/src/Cloudflare/Email/SendEmail.ts +95 -0
  437. package/src/Cloudflare/Email/SendEmailBinding.ts +124 -0
  438. package/src/Cloudflare/Email/index.ts +5 -0
  439. package/src/Cloudflare/Images/ImagesBinding.ts +1 -1
  440. package/src/Cloudflare/KV/KVNamespaceBinding.ts +1 -1
  441. package/src/Cloudflare/Local/SidecarHandlers.ts +9 -1
  442. package/src/Cloudflare/Local/SidecarServer.ts +1 -1
  443. package/src/Cloudflare/Providers.ts +14 -0
  444. package/src/Cloudflare/Queue/QueueBinding.ts +1 -1
  445. package/src/Cloudflare/R2/R2Bucket.ts +31 -0
  446. package/src/Cloudflare/R2/R2BucketBinding.ts +1 -1
  447. package/src/Cloudflare/SecretsStore/SecretBinding.ts +1 -1
  448. package/src/Cloudflare/StateStore/Api.ts +34 -1
  449. package/src/Cloudflare/StateStore/Store.ts +40 -10
  450. package/src/Cloudflare/Workers/Assets.ts +5 -6
  451. package/src/Cloudflare/Workers/CronEventSource.ts +89 -0
  452. package/src/Cloudflare/Workers/InferEnv.ts +94 -20
  453. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +9 -1
  454. package/src/Cloudflare/Workers/Rpc.ts +227 -18
  455. package/src/Cloudflare/Workers/Worker.ts +294 -65
  456. package/src/Cloudflare/Workers/WorkerBundle.ts +19 -11
  457. package/src/Cloudflare/Workers/Workflow.ts +76 -72
  458. package/src/Cloudflare/Workers/index.ts +1 -0
  459. package/src/Cloudflare/index.ts +2 -0
  460. package/src/Construct.ts +3 -7
  461. package/src/Deploy.ts +5 -1
  462. package/src/Destroy.ts +6 -1
  463. package/src/Http.ts +1 -1
  464. package/src/Namespace.ts +4 -4
  465. package/src/Neon/Branch.ts +93 -59
  466. package/src/Neon/Credentials.ts +2 -2
  467. package/src/Neon/Project.ts +193 -64
  468. package/src/Output.ts +129 -18
  469. package/src/Plan.ts +375 -36
  470. package/src/Platform.ts +26 -11
  471. package/src/Provider.ts +8 -3
  472. package/src/Random.ts +1 -1
  473. package/src/Ref.ts +10 -5
  474. package/src/Resource.ts +24 -25
  475. package/src/Runtime.ts +38 -0
  476. package/src/RuntimeContext.ts +1 -0
  477. package/src/Secret.ts +87 -0
  478. package/src/Serverless/Function.ts +10 -1
  479. package/src/Stack.ts +62 -35
  480. package/src/State/ActionState.ts +51 -0
  481. package/src/State/HttpStateApi.ts +21 -0
  482. package/src/State/HttpStateStore.ts +27 -2
  483. package/src/State/InMemoryState.ts +31 -10
  484. package/src/State/LocalState.ts +28 -4
  485. package/src/State/ResourceState.ts +5 -0
  486. package/src/State/State.ts +38 -2
  487. package/src/State/index.ts +1 -0
  488. package/src/Test/Bun.ts +43 -7
  489. package/src/Test/Core.ts +33 -11
  490. package/src/Test/Vitest.ts +33 -4
  491. package/src/Util/LocalhostDns.ts +30 -36
  492. package/src/Util/effect.ts +29 -4
  493. package/src/Util/hash.ts +14 -0
  494. package/src/Util/ignore.ts +815 -0
  495. package/src/Variable.ts +44 -0
  496. package/src/index.ts +9 -0
  497. package/lib/Agent/Agent.d.ts +0 -9
  498. package/lib/Agent/Agent.d.ts.map +0 -1
  499. package/lib/Agent/Agent.js +0 -10
  500. package/lib/Agent/Agent.js.map +0 -1
  501. package/lib/Agent/Aspect.d.ts +0 -51
  502. package/lib/Agent/Aspect.d.ts.map +0 -1
  503. package/lib/Agent/Aspect.js +0 -45
  504. package/lib/Agent/Aspect.js.map +0 -1
  505. package/lib/Agent/AspectGraph.d.ts +0 -45
  506. package/lib/Agent/AspectGraph.d.ts.map +0 -1
  507. package/lib/Agent/AspectGraph.js +0 -39
  508. package/lib/Agent/AspectGraph.js.map +0 -1
  509. package/lib/Agent/ContextPlugin.d.ts +0 -8
  510. package/lib/Agent/ContextPlugin.d.ts.map +0 -1
  511. package/lib/Agent/ContextPlugin.js +0 -3
  512. package/lib/Agent/ContextPlugin.js.map +0 -1
  513. package/lib/Agent/Plugin.d.ts +0 -18
  514. package/lib/Agent/Plugin.d.ts.map +0 -1
  515. package/lib/Agent/Plugin.js +0 -8
  516. package/lib/Agent/Plugin.js.map +0 -1
  517. package/lib/Agent/chat/channel.d.ts +0 -9
  518. package/lib/Agent/chat/channel.d.ts.map +0 -1
  519. package/lib/Agent/chat/channel.js +0 -10
  520. package/lib/Agent/chat/channel.js.map +0 -1
  521. package/lib/Agent/chat/event.d.ts +0 -32
  522. package/lib/Agent/chat/event.d.ts.map +0 -1
  523. package/lib/Agent/chat/event.js +0 -32
  524. package/lib/Agent/chat/event.js.map +0 -1
  525. package/lib/Agent/chat/message.d.ts +0 -22
  526. package/lib/Agent/chat/message.d.ts.map +0 -1
  527. package/lib/Agent/chat/message.js +0 -31
  528. package/lib/Agent/chat/message.js.map +0 -1
  529. package/lib/Agent/chat/service.d.ts +0 -102
  530. package/lib/Agent/chat/service.d.ts.map +0 -1
  531. package/lib/Agent/chat/service.js +0 -79
  532. package/lib/Agent/chat/service.js.map +0 -1
  533. package/lib/Agent/chat/thread.d.ts +0 -13
  534. package/lib/Agent/chat/thread.d.ts.map +0 -1
  535. package/lib/Agent/chat/thread.js +0 -16
  536. package/lib/Agent/chat/thread.js.map +0 -1
  537. package/lib/Agent/coding/bash.d.ts +0 -36
  538. package/lib/Agent/coding/bash.d.ts.map +0 -1
  539. package/lib/Agent/coding/bash.js +0 -170
  540. package/lib/Agent/coding/bash.js.map +0 -1
  541. package/lib/Agent/coding/edit.d.ts +0 -31
  542. package/lib/Agent/coding/edit.d.ts.map +0 -1
  543. package/lib/Agent/coding/edit.js +0 -90
  544. package/lib/Agent/coding/edit.js.map +0 -1
  545. package/lib/Agent/coding/glob.d.ts +0 -23
  546. package/lib/Agent/coding/glob.d.ts.map +0 -1
  547. package/lib/Agent/coding/glob.js +0 -78
  548. package/lib/Agent/coding/glob.js.map +0 -1
  549. package/lib/Agent/coding/grep.d.ts +0 -26
  550. package/lib/Agent/coding/grep.d.ts.map +0 -1
  551. package/lib/Agent/coding/grep.js +0 -105
  552. package/lib/Agent/coding/grep.js.map +0 -1
  553. package/lib/Agent/coding/index.d.ts +0 -8
  554. package/lib/Agent/coding/index.d.ts.map +0 -1
  555. package/lib/Agent/coding/index.js +0 -8
  556. package/lib/Agent/coding/index.js.map +0 -1
  557. package/lib/Agent/coding/read.d.ts +0 -27
  558. package/lib/Agent/coding/read.d.ts.map +0 -1
  559. package/lib/Agent/coding/read.js +0 -89
  560. package/lib/Agent/coding/read.js.map +0 -1
  561. package/lib/Agent/coding/readlints.d.ts +0 -19
  562. package/lib/Agent/coding/readlints.d.ts.map +0 -1
  563. package/lib/Agent/coding/readlints.js +0 -53
  564. package/lib/Agent/coding/readlints.js.map +0 -1
  565. package/lib/Agent/coding/write.d.ts +0 -22
  566. package/lib/Agent/coding/write.d.ts.map +0 -1
  567. package/lib/Agent/coding/write.js +0 -53
  568. package/lib/Agent/coding/write.js.map +0 -1
  569. package/lib/Agent/fs/file.d.ts +0 -12
  570. package/lib/Agent/fs/file.d.ts.map +0 -1
  571. package/lib/Agent/fs/file.js +0 -8
  572. package/lib/Agent/fs/file.js.map +0 -1
  573. package/lib/Agent/fs/folder.d.ts +0 -5
  574. package/lib/Agent/fs/folder.d.ts.map +0 -1
  575. package/lib/Agent/fs/folder.js +0 -3
  576. package/lib/Agent/fs/folder.js.map +0 -1
  577. package/lib/Agent/index.d.ts +0 -9
  578. package/lib/Agent/index.d.ts.map +0 -1
  579. package/lib/Agent/index.js +0 -9
  580. package/lib/Agent/index.js.map +0 -1
  581. package/lib/Agent/llm/error.d.ts +0 -208
  582. package/lib/Agent/llm/error.d.ts.map +0 -1
  583. package/lib/Agent/llm/error.js +0 -209
  584. package/lib/Agent/llm/error.js.map +0 -1
  585. package/lib/Agent/llm/index.d.ts +0 -5
  586. package/lib/Agent/llm/index.d.ts.map +0 -1
  587. package/lib/Agent/llm/index.js +0 -5
  588. package/lib/Agent/llm/index.js.map +0 -1
  589. package/lib/Agent/llm/llm.d.ts +0 -32
  590. package/lib/Agent/llm/llm.d.ts.map +0 -1
  591. package/lib/Agent/llm/llm.js +0 -74
  592. package/lib/Agent/llm/llm.js.map +0 -1
  593. package/lib/Agent/llm/stream-collectors.d.ts +0 -46
  594. package/lib/Agent/llm/stream-collectors.d.ts.map +0 -1
  595. package/lib/Agent/llm/stream-collectors.js +0 -33
  596. package/lib/Agent/llm/stream-collectors.js.map +0 -1
  597. package/lib/Agent/llm/stream-text-part.d.ts +0 -5
  598. package/lib/Agent/llm/stream-text-part.d.ts.map +0 -1
  599. package/lib/Agent/llm/stream-text-part.js +0 -4
  600. package/lib/Agent/llm/stream-text-part.js.map +0 -1
  601. package/lib/Agent/lsp/client.d.ts +0 -122
  602. package/lib/Agent/lsp/client.d.ts.map +0 -1
  603. package/lib/Agent/lsp/client.js +0 -180
  604. package/lib/Agent/lsp/client.js.map +0 -1
  605. package/lib/Agent/lsp/diagnostics.d.ts +0 -16
  606. package/lib/Agent/lsp/diagnostics.d.ts.map +0 -1
  607. package/lib/Agent/lsp/diagnostics.js +0 -48
  608. package/lib/Agent/lsp/diagnostics.js.map +0 -1
  609. package/lib/Agent/lsp/jsonrpc.d.ts +0 -90
  610. package/lib/Agent/lsp/jsonrpc.d.ts.map +0 -1
  611. package/lib/Agent/lsp/jsonrpc.js +0 -178
  612. package/lib/Agent/lsp/jsonrpc.js.map +0 -1
  613. package/lib/Agent/lsp/manager.d.ts +0 -38
  614. package/lib/Agent/lsp/manager.d.ts.map +0 -1
  615. package/lib/Agent/lsp/manager.js +0 -98
  616. package/lib/Agent/lsp/manager.js.map +0 -1
  617. package/lib/Agent/lsp/servers.d.ts +0 -28
  618. package/lib/Agent/lsp/servers.d.ts.map +0 -1
  619. package/lib/Agent/lsp/servers.js +0 -21
  620. package/lib/Agent/lsp/servers.js.map +0 -1
  621. package/lib/Agent/process/driver.d.ts +0 -10
  622. package/lib/Agent/process/driver.d.ts.map +0 -1
  623. package/lib/Agent/process/driver.js +0 -153
  624. package/lib/Agent/process/driver.js.map +0 -1
  625. package/lib/Agent/process/issue-service.d.ts +0 -44
  626. package/lib/Agent/process/issue-service.d.ts.map +0 -1
  627. package/lib/Agent/process/issue-service.js +0 -28
  628. package/lib/Agent/process/issue-service.js.map +0 -1
  629. package/lib/Agent/process/issue-tools.d.ts +0 -28
  630. package/lib/Agent/process/issue-tools.d.ts.map +0 -1
  631. package/lib/Agent/process/issue-tools.js +0 -28
  632. package/lib/Agent/process/issue-tools.js.map +0 -1
  633. package/lib/Agent/process/issue.d.ts +0 -16
  634. package/lib/Agent/process/issue.d.ts.map +0 -1
  635. package/lib/Agent/process/issue.js +0 -17
  636. package/lib/Agent/process/issue.js.map +0 -1
  637. package/lib/Agent/process/organization.d.ts +0 -4
  638. package/lib/Agent/process/organization.d.ts.map +0 -1
  639. package/lib/Agent/process/organization.js +0 -3
  640. package/lib/Agent/process/organization.js.map +0 -1
  641. package/lib/Agent/process/process.d.ts +0 -5
  642. package/lib/Agent/process/process.d.ts.map +0 -1
  643. package/lib/Agent/process/process.js +0 -3
  644. package/lib/Agent/process/process.js.map +0 -1
  645. package/lib/Agent/process/reply.d.ts +0 -16
  646. package/lib/Agent/process/reply.d.ts.map +0 -1
  647. package/lib/Agent/process/reply.js +0 -18
  648. package/lib/Agent/process/reply.js.map +0 -1
  649. package/lib/Agent/process/task.d.ts +0 -25
  650. package/lib/Agent/process/task.d.ts.map +0 -1
  651. package/lib/Agent/process/task.js +0 -26
  652. package/lib/Agent/process/task.js.map +0 -1
  653. package/lib/Agent/tool/index.d.ts +0 -4
  654. package/lib/Agent/tool/index.d.ts.map +0 -1
  655. package/lib/Agent/tool/index.js +0 -4
  656. package/lib/Agent/tool/index.js.map +0 -1
  657. package/lib/Agent/tool/parameter.d.ts +0 -12
  658. package/lib/Agent/tool/parameter.d.ts.map +0 -1
  659. package/lib/Agent/tool/parameter.js +0 -6
  660. package/lib/Agent/tool/parameter.js.map +0 -1
  661. package/lib/Agent/tool/result.d.ts +0 -17
  662. package/lib/Agent/tool/result.d.ts.map +0 -1
  663. package/lib/Agent/tool/result.js +0 -6
  664. package/lib/Agent/tool/result.js.map +0 -1
  665. package/lib/Agent/tool/tool.d.ts +0 -32
  666. package/lib/Agent/tool/tool.d.ts.map +0 -1
  667. package/lib/Agent/tool/tool.js +0 -16
  668. package/lib/Agent/tool/tool.js.map +0 -1
  669. package/lib/Agent/util/command-validator.d.ts +0 -12
  670. package/lib/Agent/util/command-validator.d.ts.map +0 -1
  671. package/lib/Agent/util/command-validator.js +0 -74
  672. package/lib/Agent/util/command-validator.js.map +0 -1
  673. package/lib/Agent/util/exec.d.ts.map +0 -1
  674. package/lib/Agent/util/exec.js.map +0 -1
  675. package/lib/Agent/util/parser.d.ts +0 -5
  676. package/lib/Agent/util/parser.d.ts.map +0 -1
  677. package/lib/Agent/util/parser.js +0 -41
  678. package/lib/Agent/util/parser.js.map +0 -1
  679. package/lib/Agent/util/replace.d.ts +0 -38
  680. package/lib/Agent/util/replace.d.ts.map +0 -1
  681. package/lib/Agent/util/replace.js +0 -458
  682. package/lib/Agent/util/replace.js.map +0 -1
  683. package/lib/Agent/util/ripgrep.d.ts +0 -109
  684. package/lib/Agent/util/ripgrep.d.ts.map +0 -1
  685. package/lib/Agent/util/ripgrep.js +0 -221
  686. package/lib/Agent/util/ripgrep.js.map +0 -1
  687. package/lib/Neon/api.d.ts +0 -258
  688. package/lib/Neon/api.d.ts.map +0 -1
  689. package/lib/Neon/api.js +0 -215
  690. package/lib/Neon/api.js.map +0 -1
  691. package/src/Agent/Agent.ts +0 -26
  692. package/src/Agent/Aspect.ts +0 -173
  693. package/src/Agent/AspectGraph.ts +0 -98
  694. package/src/Agent/ContextPlugin.ts +0 -18
  695. package/src/Agent/Plugin.ts +0 -29
  696. package/src/Agent/chat/channel.ts +0 -26
  697. package/src/Agent/chat/event.ts +0 -43
  698. package/src/Agent/chat/message.ts +0 -35
  699. package/src/Agent/chat/service.ts +0 -133
  700. package/src/Agent/chat/thread.ts +0 -17
  701. package/src/Agent/coding/bash.ts +0 -197
  702. package/src/Agent/coding/edit.ts +0 -152
  703. package/src/Agent/coding/glob.ts +0 -96
  704. package/src/Agent/coding/grep.ts +0 -143
  705. package/src/Agent/coding/index.ts +0 -7
  706. package/src/Agent/coding/read.ts +0 -119
  707. package/src/Agent/coding/readlints.ts +0 -78
  708. package/src/Agent/coding/write.ts +0 -79
  709. package/src/Agent/fs/file.ts +0 -22
  710. package/src/Agent/fs/folder.ts +0 -16
  711. package/src/Agent/index.ts +0 -9
  712. package/src/Agent/llm/error.ts +0 -330
  713. package/src/Agent/llm/index.ts +0 -4
  714. package/src/Agent/llm/llm.ts +0 -131
  715. package/src/Agent/llm/stream-collectors.ts +0 -58
  716. package/src/Agent/llm/stream-text-part.ts +0 -7
  717. package/src/Agent/lsp/client.ts +0 -293
  718. package/src/Agent/lsp/diagnostics.ts +0 -64
  719. package/src/Agent/lsp/jsonrpc.ts +0 -317
  720. package/src/Agent/lsp/manager.ts +0 -213
  721. package/src/Agent/lsp/servers.ts +0 -37
  722. package/src/Agent/process/driver.ts +0 -168
  723. package/src/Agent/process/issue-service.ts +0 -48
  724. package/src/Agent/process/issue-tools.ts +0 -33
  725. package/src/Agent/process/issue.ts +0 -22
  726. package/src/Agent/process/organization.ts +0 -16
  727. package/src/Agent/process/process.ts +0 -16
  728. package/src/Agent/process/reply.ts +0 -21
  729. package/src/Agent/process/task.ts +0 -34
  730. package/src/Agent/tool/index.ts +0 -3
  731. package/src/Agent/tool/parameter.ts +0 -35
  732. package/src/Agent/tool/result.ts +0 -51
  733. package/src/Agent/tool/tool.ts +0 -74
  734. package/src/Agent/util/command-validator.ts +0 -98
  735. package/src/Agent/util/parser.ts +0 -39
  736. package/src/Agent/util/replace.ts +0 -559
  737. package/src/Agent/util/ripgrep.ts +0 -256
  738. package/src/Neon/api.ts +0 -579
  739. /package/lib/{Agent/util → Util}/exec.d.ts +0 -0
  740. /package/lib/{Agent/util → Util}/exec.js +0 -0
  741. /package/src/{Agent/util → Util}/exec.ts +0 -0
@@ -1,5 +1,5 @@
1
- import { Credentials } from "@distilled.cloud/neon/Credentials";
2
1
  import { ConfigError } from "@distilled.cloud/core/errors";
2
+ import { Credentials } from "@distilled.cloud/neon";
3
3
  import * as Config from "effect/Config";
4
4
  import * as Effect from "effect/Effect";
5
5
  import * as Layer from "effect/Layer";
@@ -11,7 +11,7 @@ import {
11
11
  type NeonResolvedCredentials,
12
12
  } from "./AuthProvider.ts";
13
13
 
14
- export { Credentials } from "@distilled.cloud/neon/Credentials";
14
+ export { Credentials } from "@distilled.cloud/neon";
15
15
 
16
16
  const DEFAULT_BASE_URL = "https://console.neon.tech/api/v2";
17
17
 
@@ -1,15 +1,148 @@
1
+ import {
2
+ type CreateProjectOutput,
3
+ deleteProject,
4
+ getConnectionURI,
5
+ getProject,
6
+ getProjectOperation,
7
+ listProjectBranchDatabases,
8
+ listProjectBranches,
9
+ type ListProjectsOutput,
10
+ listProjects,
11
+ createProject as sdkCreateProject,
12
+ updateProject,
13
+ } from "@distilled.cloud/neon";
14
+ import * as Data from "effect/Data";
15
+ import * as Duration from "effect/Duration";
1
16
  import * as Effect from "effect/Effect";
2
17
  import * as Redacted from "effect/Redacted";
18
+ import * as Schedule from "effect/Schedule";
3
19
  import { isResolved } from "../Diff.ts";
4
20
  import { createPhysicalName } from "../PhysicalName.ts";
5
21
  import * as Provider from "../Provider.ts";
6
22
  import { Resource } from "../Resource.ts";
7
- import * as api from "./api.ts";
8
23
  import { applyMigrations, runSql } from "./Migrations.ts";
9
24
  import { parsePostgresOrigin, type PostgresOrigin } from "./PostgresOrigin.ts";
10
25
  import type { Providers } from "./Providers.ts";
11
26
  import { listSqlFiles, readSqlFile } from "./SqlFile.ts";
12
27
 
28
+ type NeonOperationStatus =
29
+ | "scheduling"
30
+ | "running"
31
+ | "finished"
32
+ | "failed"
33
+ | "error"
34
+ | "cancelling"
35
+ | "cancelled"
36
+ | "skipped";
37
+
38
+ export class OperationFailed extends Data.TaggedError("OperationFailed")<{
39
+ operationId: string;
40
+ action: string;
41
+ status: NeonOperationStatus;
42
+ error?: string;
43
+ }> {}
44
+
45
+ class OperationPending extends Data.TaggedError("OperationPending")<{
46
+ operationId: string;
47
+ }> {}
48
+
49
+ const isOperationComplete = (status: NeonOperationStatus): boolean =>
50
+ status === "finished" ||
51
+ status === "failed" ||
52
+ status === "error" ||
53
+ status === "cancelled" ||
54
+ status === "skipped";
55
+
56
+ /**
57
+ * Wait for the given operations to reach a terminal state. Polls every
58
+ * 500ms with exponential backoff up to ~30s per operation.
59
+ */
60
+ export const waitForOperations = (
61
+ operations: ReadonlyArray<{
62
+ readonly id: string;
63
+ readonly project_id: string;
64
+ readonly action: string;
65
+ readonly status: NeonOperationStatus;
66
+ readonly error?: string;
67
+ }>,
68
+ ) =>
69
+ Effect.gen(function* () {
70
+ for (const op of operations) {
71
+ if (isOperationComplete(op.status)) {
72
+ if (op.status === "failed" || op.status === "error") {
73
+ return yield* new OperationFailed({
74
+ operationId: op.id,
75
+ action: op.action,
76
+ status: op.status,
77
+ error: op.error,
78
+ });
79
+ }
80
+ continue;
81
+ }
82
+ yield* getProjectOperation({
83
+ project_id: op.project_id,
84
+ operation_id: op.id,
85
+ }).pipe(
86
+ Effect.flatMap(
87
+ ({
88
+ operation,
89
+ }): Effect.Effect<void, OperationFailed | OperationPending> => {
90
+ const status = operation.status as NeonOperationStatus;
91
+ if (status === "failed" || status === "error") {
92
+ return Effect.fail(
93
+ new OperationFailed({
94
+ operationId: operation.id,
95
+ action: operation.action,
96
+ status,
97
+ error: operation.error,
98
+ }),
99
+ );
100
+ }
101
+ if (!isOperationComplete(status)) {
102
+ return Effect.fail(new OperationPending({ operationId: op.id }));
103
+ }
104
+ return Effect.void;
105
+ },
106
+ ),
107
+ Effect.retry({
108
+ while: (e: unknown) => {
109
+ const tag = (e as { _tag?: string })._tag;
110
+ return (
111
+ tag === "OperationPending" ||
112
+ tag === "TooManyRequests" ||
113
+ tag === "ServiceUnavailable" ||
114
+ tag === "InternalServerError" ||
115
+ tag === "BadGateway" ||
116
+ tag === "GatewayTimeout"
117
+ );
118
+ },
119
+ schedule: Schedule.both(
120
+ Schedule.exponential(Duration.millis(500), 1.5),
121
+ Schedule.recurs(60),
122
+ ),
123
+ }),
124
+ Effect.catchTag("OperationPending", () => Effect.void),
125
+ );
126
+ }
127
+ });
128
+
129
+ const findProjectByName = (name: string) =>
130
+ Effect.gen(function* () {
131
+ const matches: ListProjectsOutput["projects"][number][] = [];
132
+ let cursor: string | undefined;
133
+ do {
134
+ const page = yield* listProjects({
135
+ search: name,
136
+ ...(cursor !== undefined ? { cursor } : {}),
137
+ });
138
+ for (const p of page.projects) {
139
+ if (p.name === name) matches.push(p);
140
+ }
141
+ cursor = page.pagination?.cursor;
142
+ } while (cursor);
143
+ return matches;
144
+ });
145
+
13
146
  export type NeonRegion =
14
147
  | "aws-us-east-1"
15
148
  | "aws-us-east-2"
@@ -184,22 +317,12 @@ export type Project = Resource<
184
317
  */
185
318
  export const Project = Resource<Project>("Neon.Project");
186
319
 
187
- const getRoleName = (creation: api.CreateProjectOutput) =>
320
+ const getRoleName = (creation: CreateProjectOutput) =>
188
321
  creation.roles.find((r) => !r.protected)?.name ?? creation.roles[0]?.name;
189
322
 
190
- const getDatabaseName = (creation: api.CreateProjectOutput) =>
323
+ const getDatabaseName = (creation: CreateProjectOutput) =>
191
324
  creation.databases[0]?.name ?? "neondb";
192
325
 
193
- const buildConnectionUri = (
194
- uri: string,
195
- pooledHost: string,
196
- ): { uri: string; pooled: string } => {
197
- const url = new URL(uri);
198
- const pooledUrl = new URL(uri);
199
- pooledUrl.host = pooledHost;
200
- return { uri: url.toString(), pooled: pooledUrl.toString() };
201
- };
202
-
203
326
  const resolveConnection = (
204
327
  projectId: string,
205
328
  branchId: string,
@@ -207,13 +330,15 @@ const resolveConnection = (
207
330
  roleName: string,
208
331
  ) =>
209
332
  Effect.gen(function* () {
210
- const direct = yield* api.getConnectionUri(projectId, {
333
+ const direct = yield* getConnectionURI({
334
+ project_id: projectId,
211
335
  branch_id: branchId,
212
336
  database_name: databaseName,
213
337
  role_name: roleName,
214
338
  pooled: false,
215
339
  });
216
- const pooled = yield* api.getConnectionUri(projectId, {
340
+ const pooled = yield* getConnectionURI({
341
+ project_id: projectId,
217
342
  branch_id: branchId,
218
343
  database_name: databaseName,
219
344
  role_name: roleName,
@@ -286,7 +411,7 @@ export const ProjectProvider = () =>
286
411
  }),
287
412
  read: Effect.fn(function* ({ id, output, olds }) {
288
413
  if (output?.projectId) {
289
- return yield* api.getProject(output.projectId).pipe(
414
+ return yield* getProject({ project_id: output.projectId }).pipe(
290
415
  Effect.map(({ project }) => ({
291
416
  ...output,
292
417
  projectName: project.name,
@@ -294,25 +419,24 @@ export const ProjectProvider = () =>
294
419
  enableLogicalReplication:
295
420
  project.settings?.enable_logical_replication === true,
296
421
  })),
297
- Effect.catchTag("ProjectNotFound", () =>
298
- Effect.succeed(undefined),
299
- ),
422
+ Effect.catchTag("NotFound", () => Effect.succeed(undefined)),
300
423
  );
301
424
  }
302
425
  const name = yield* createProjectName(id, olds?.name);
303
- const matches = yield* api.findProjectByName(name);
426
+ const matches = yield* findProjectByName(name);
304
427
  const match = matches[0];
305
428
  if (!match) return undefined;
306
- const branches = yield* api.listProjectBranches(match.id, {
429
+ const branches = yield* listProjectBranches({
430
+ project_id: match.id,
307
431
  search: olds?.defaultBranchName ?? "main",
308
432
  });
309
433
  const defaultBranch =
310
434
  branches.branches.find((b) => b.default) ?? branches.branches[0];
311
435
  if (!defaultBranch) return undefined;
312
- const databases = yield* api.listProjectBranchDatabases(
313
- match.id,
314
- defaultBranch.id,
315
- );
436
+ const databases = yield* listProjectBranchDatabases({
437
+ project_id: match.id,
438
+ branch_id: defaultBranch.id,
439
+ });
316
440
  const db = databases.databases[0];
317
441
  if (!db) return undefined;
318
442
  const conn = yield* resolveConnection(
@@ -333,7 +457,7 @@ export const ProjectProvider = () =>
333
457
  connectionUri: conn.uri,
334
458
  pooledConnectionUri: conn.pooled,
335
459
  origin: parsePostgresOrigin(conn.uri),
336
- historyRetentionSeconds: match.history_retention_seconds,
460
+ historyRetentionSeconds: match.history_retention_seconds ?? 86400,
337
461
  enableLogicalReplication:
338
462
  match.settings?.enable_logical_replication === true,
339
463
  migrationsDir: olds?.migrationsDir,
@@ -347,8 +471,9 @@ export const ProjectProvider = () =>
347
471
  // (and let `read` upstream decide adoption); otherwise update
348
472
  // the mutable scalar fields on the existing project.
349
473
  const projectInfo = output
350
- ? yield* api
351
- .updateProject(output.projectId, {
474
+ ? yield* updateProject({
475
+ project_id: output.projectId,
476
+ project: {
352
477
  name: news.name,
353
478
  history_retention_seconds: news.historyRetentionSeconds,
354
479
  settings:
@@ -359,45 +484,47 @@ export const ProjectProvider = () =>
359
484
  news.enableLogicalReplication ?? false,
360
485
  }
361
486
  : undefined,
362
- })
363
- .pipe(
364
- Effect.map((r) => ({
365
- projectId: output.projectId,
366
- projectName: r.project.name,
367
- region: output.region,
368
- pgVersion: output.pgVersion,
369
- defaultBranchId: output.defaultBranchId,
370
- defaultBranchName: output.defaultBranchName,
371
- databaseName: output.databaseName,
372
- roleName: output.roleName,
373
- connectionUri: output.connectionUri,
374
- pooledConnectionUri: output.pooledConnectionUri,
375
- origin: output.origin,
376
- historyRetentionSeconds:
377
- r.project.history_retention_seconds ??
378
- output.historyRetentionSeconds,
379
- enableLogicalReplication:
380
- r.project.settings?.enable_logical_replication === true,
381
- })),
382
- )
487
+ },
488
+ }).pipe(
489
+ Effect.map((r) => ({
490
+ projectId: output.projectId,
491
+ projectName: r.project.name,
492
+ region: output.region,
493
+ pgVersion: output.pgVersion,
494
+ defaultBranchId: output.defaultBranchId,
495
+ defaultBranchName: output.defaultBranchName,
496
+ databaseName: output.databaseName,
497
+ roleName: output.roleName,
498
+ connectionUri: output.connectionUri,
499
+ pooledConnectionUri: output.pooledConnectionUri,
500
+ origin: output.origin,
501
+ historyRetentionSeconds:
502
+ r.project.history_retention_seconds ??
503
+ output.historyRetentionSeconds,
504
+ enableLogicalReplication:
505
+ r.project.settings?.enable_logical_replication === true,
506
+ })),
507
+ )
383
508
  : yield* Effect.gen(function* () {
384
509
  const name = yield* createProjectName(id, news.name);
385
- const created = yield* api.createProject({
386
- name,
387
- region_id: news.region,
388
- pg_version: news.pgVersion,
389
- default_branch: {
390
- name: news.defaultBranchName,
391
- role_name: news.roleName,
392
- database_name: news.databaseName,
510
+ const created = yield* sdkCreateProject({
511
+ project: {
512
+ name,
513
+ region_id: news.region,
514
+ pg_version: news.pgVersion,
515
+ branch: {
516
+ name: news.defaultBranchName,
517
+ role_name: news.roleName,
518
+ database_name: news.databaseName,
519
+ },
520
+ history_retention_seconds: news.historyRetentionSeconds,
521
+ org_id: news.orgId,
522
+ settings: news.enableLogicalReplication
523
+ ? { enable_logical_replication: true }
524
+ : undefined,
393
525
  },
394
- history_retention_seconds: news.historyRetentionSeconds,
395
- org_id: news.orgId,
396
- settings: news.enableLogicalReplication
397
- ? { enable_logical_replication: true }
398
- : undefined,
399
526
  });
400
- yield* api.waitForOperations(created.operations);
527
+ yield* waitForOperations(created.operations);
401
528
 
402
529
  const branchId = created.branch.id;
403
530
  const databaseName = getDatabaseName(created);
@@ -458,7 +585,9 @@ export const ProjectProvider = () =>
458
585
  };
459
586
  }),
460
587
  delete: Effect.fn(function* ({ output }) {
461
- yield* api.deleteProject(output.projectId);
588
+ yield* deleteProject({ project_id: output.projectId }).pipe(
589
+ Effect.catchTag("NotFound", () => Effect.void),
590
+ );
462
591
  }),
463
592
  };
464
593
  }),
package/src/Output.ts CHANGED
@@ -1,11 +1,10 @@
1
1
  import * as Data from "effect/Data";
2
- import type { Yieldable } from "effect/Effect";
3
2
  import * as Effect from "effect/Effect";
4
3
  import { pipe } from "effect/Function";
5
4
  import type { Pipeable } from "effect/Pipeable";
6
5
  import * as Redacted from "effect/Redacted";
7
6
  import { SingleShotGen } from "effect/Utils";
8
- import { getRefMetadata, isRef, ref as stageRef, type Ref } from "./Ref.ts";
7
+ import { getRefMetadata, isRef, type Ref } from "./Ref.ts";
9
8
  import { isResource, type Resource, type ResourceLike } from "./Resource.ts";
10
9
  import { RuntimeContext } from "./RuntimeContext.ts";
11
10
  import { Stack } from "./Stack.ts";
@@ -48,7 +47,7 @@ export interface Output<A = any, Req = any> extends Pipeable {
48
47
  readonly req: Req;
49
48
  /** @internal phantom */
50
49
  [Symbol.iterator](): Iterator<
51
- Yieldable<any, void, never, Req>,
50
+ Effect.Effect<void, never, Req>,
52
51
  Accessor<A>,
53
52
  void
54
53
  >;
@@ -82,9 +81,11 @@ export type Expr<A = any, Req = any> =
82
81
  | ApplyExpr<any, A, Req>
83
82
  | EffectExpr<any, A, Req>
84
83
  | LiteralExpr<A>
84
+ | NamedExpr<A, Req>
85
85
  | PropExpr<A, keyof A, Req>
86
86
  | ResourceExpr<A, Req>
87
- | RefExpr<A>;
87
+ | RefExpr<A>
88
+ | StackRefExpr<A>;
88
89
 
89
90
  export abstract class BaseExpr<A = any, Req = any> implements Output<A, Req> {
90
91
  declare readonly kind: any;
@@ -98,12 +99,12 @@ export abstract class BaseExpr<A = any, Req = any> implements Output<A, Req> {
98
99
  }
99
100
 
100
101
  [Symbol.iterator](): Iterator<
101
- Yieldable<any, void, never, Req>,
102
+ Effect.Effect<void, never, Req>,
102
103
  Accessor<A>,
103
104
  void
104
105
  > {
105
106
  // @ts-expect-error - TODO(sam): fix this (works at runtime, but maybe indicates a bad assumption)
106
- return new SingleShotGen(this);
107
+ return new SingleShotGen(this.asEffect());
107
108
  }
108
109
 
109
110
  asEffect(): any {
@@ -111,7 +112,7 @@ export abstract class BaseExpr<A = any, Req = any> implements Output<A, Req> {
111
112
  }
112
113
 
113
114
  public bind(id: string): any {
114
- return RuntimeContext.asEffect().pipe(
115
+ return RuntimeContext.pipe(
115
116
  Effect.flatMap((ctx) =>
116
117
  Effect.map(ctx.set(id, this), (key) => ctx.get<A>(key)),
117
118
  ),
@@ -255,6 +256,36 @@ export class EffectExpr<A, B, Req = never, Req2 = never> extends BaseExpr<
255
256
  }
256
257
  }
257
258
 
259
+ export const isNamedExpr = <A = any, Req = any>(
260
+ node: any,
261
+ ): node is NamedExpr<A, Req> => node?.kind === "NamedExpr";
262
+
263
+ /**
264
+ * Wraps another `Expr` and overrides its `toString()` / inspect output.
265
+ *
266
+ * `BaseExpr` derives the binding id from `this.toString()`, so
267
+ * wrapping an expression in `NamedExpr` makes that derived id stable and
268
+ * caller-controlled (e.g. an env var name like `"API_KEY"`).
269
+ */
270
+ export class NamedExpr<A, Req = never> extends BaseExpr<A, Req> {
271
+ readonly kind = "NamedExpr";
272
+ constructor(
273
+ public readonly expr: Expr<A, Req>,
274
+ public readonly bindingName: string,
275
+ ) {
276
+ super();
277
+ return proxy(this);
278
+ }
279
+ [inspect](): string {
280
+ return this.bindingName;
281
+ }
282
+ }
283
+
284
+ export const named = <A, Req>(
285
+ expr: Output<A, Req>,
286
+ name: string,
287
+ ): Output<A, Req> => new NamedExpr(expr as Expr<A, Req>, name) as any;
288
+
258
289
  export const all = <Outs extends (Output | Expr)[]>(...outs: Outs) =>
259
290
  new AllExpr(outs as any) as unknown as All<Outs>;
260
291
 
@@ -309,6 +340,48 @@ export class RefExpr<A> extends BaseExpr<A, never> {
309
340
  }
310
341
  }
311
342
 
343
+ export const isStackRefExpr = <A = any>(node: any): node is StackRefExpr<A> =>
344
+ node?.kind === "StackRefExpr";
345
+
346
+ /**
347
+ * A reference to the persisted output of a Stack at `(stack, stage)`.
348
+ *
349
+ * Resolved at evaluation time by reading `state.getOutput({ stack,
350
+ * stage })`. Distinct from {@link RefExpr}, which references a
351
+ * single resource's attributes within a stack/stage. `stage` may be
352
+ * `undefined`, in which case it falls back to the current stage.
353
+ */
354
+ export class StackRefExpr<A> extends BaseExpr<A, never> {
355
+ readonly kind = "StackRefExpr";
356
+ constructor(
357
+ public readonly stack: string,
358
+ public readonly stage: string | undefined,
359
+ ) {
360
+ super();
361
+ return proxy(this);
362
+ }
363
+ [inspect](): string {
364
+ return `stackRef(${this.stack}${
365
+ this.stage ? `, { stage: ${this.stage} }` : ""
366
+ })`;
367
+ }
368
+ }
369
+
370
+ /**
371
+ * Build an `Output<A>` referencing the persisted output of another
372
+ * Stack. The returned Effect resolves to a lazy `Output<A>` whose
373
+ * value is read from the state store at plan/apply time.
374
+ *
375
+ * Returns `Effect<Output<A>>` (not `Output<A>` directly) so that
376
+ * `yield* Output.stackRef(...)` reads ergonomically inside an Effect
377
+ * generator and lines up with `Resource.ref` and `Stack.stage.<name>`.
378
+ */
379
+ export const stackRef = <A>(
380
+ stack: string,
381
+ options: { stage?: string } = {},
382
+ ): Effect.Effect<Output<A, never>> =>
383
+ Effect.succeed(new StackRefExpr<A>(stack, options.stage) as any);
384
+
312
385
  export const filter = <Outs extends any[]>(...outs: Outs) =>
313
386
  outs.filter(isOutput) as unknown as Filter<Outs>;
314
387
 
@@ -353,7 +426,32 @@ function proxy(self: any): any {
353
426
  prop === ExprSymbol || prop === inspect ? true : prop in self,
354
427
  get: (target, prop) =>
355
428
  prop === Symbol.toPrimitive
356
- ? (hint: string) => (hint === "number" ? Number.NaN : self.toString())
429
+ ? (hint: string) => {
430
+ // Any JS-level coercion of an unresolved Output produces a
431
+ // placeholder that *looks* like a real value but isn't:
432
+ //
433
+ // - `string` / `default` hints (`${output}`, `output + ""`,
434
+ // `==` against a primitive) previously fell through to
435
+ // `self.toString()` and returned the inspect form
436
+ // (e.g. "tunnel.tunnelId"). The bogus string flowed
437
+ // into resource props and into the cloud — only
438
+ // surfacing as an opaque downstream error (see PR
439
+ // description for a real Cloudflare DNS landing).
440
+ //
441
+ // - `number` hint (`+output`, `output * 2`,
442
+ // `Math.max(0, output)`) previously returned NaN, which
443
+ // propagates silently through arithmetic and lands as
444
+ // "the API rejected a NaN field" much later.
445
+ //
446
+ // All three hints fail loud at the coercion site with a
447
+ // pointer to the right composition API.
448
+ throw new Error(
449
+ `Cannot coerce Output<${self[inspect]()}> to a ` +
450
+ `${hint === "number" ? "number" : "string"} via JS coercion. ` +
451
+ `Use Output.interpolate\`...\` or Output.map(output, fn) ` +
452
+ `to compose Outputs — the value isn't known until deploy time.`,
453
+ );
454
+ }
357
455
  : prop === ExprSymbol
358
456
  ? self
359
457
  : prop === inspect
@@ -445,6 +543,8 @@ export const evaluate: <A, Req = never>(
445
543
  );
446
544
  } else if (isPropExpr(expr)) {
447
545
  return (yield* evaluate(expr.expr, upstream))?.[expr.identifier];
546
+ } else if (isNamedExpr(expr)) {
547
+ return yield* evaluate(expr.expr, upstream);
448
548
  } else if (isRefExpr(expr)) {
449
549
  const state = yield* State.State;
450
550
  const stack = expr.stack ?? (yield* Stack).name;
@@ -464,7 +564,26 @@ export const evaluate: <A, Req = never>(
464
564
  }),
465
565
  );
466
566
  }
467
- return resource.attr;
567
+ // RefExpr targets persisted resources; tasks aren't cross-stack
568
+ // referenceable. Return the resource's output attrs, otherwise the
569
+ // task's output value, otherwise undefined.
570
+ return (resource as any).attr ?? (resource as any).output;
571
+ } else if (isStackRefExpr(expr)) {
572
+ const state = yield* State.State;
573
+ const stack = expr.stack;
574
+ const stage = expr.stage ?? (yield* Stage);
575
+ const output = yield* state.getOutput({ stack, stage });
576
+ if (output == null) {
577
+ return yield* Effect.fail(
578
+ new InvalidReferenceError({
579
+ message: `Reference to stack '${stack}' at stage '${stage}' not found. Have you deployed stage '${stage}' of '${stack}'?`,
580
+ stack,
581
+ stage,
582
+ resourceId: stack,
583
+ }),
584
+ );
585
+ }
586
+ return output;
468
587
  }
469
588
  }
470
589
  if (Array.isArray(expr)) {
@@ -483,14 +602,6 @@ export const evaluate: <A, Req = never>(
483
602
  return expr;
484
603
  }) as Effect.Effect<any>;
485
604
 
486
- export const ref = <R extends ResourceLike>(
487
- resourceId: R["LogicalId"],
488
- options?: {
489
- stage?: string;
490
- stack?: string;
491
- },
492
- ) => of(stageRef({ id: resourceId, ...options }));
493
-
494
605
  export const hasOutputs = (value: any): value is Output<any, any> =>
495
606
  Object.keys(upstreamAny(value)).length > 0;
496
607
 
@@ -531,7 +642,7 @@ export const upstream = <E extends Output<any, any>>(expr: E): any => {
531
642
  return upstream(expr.expr);
532
643
  } else if (isAllExpr(expr)) {
533
644
  return Object.assign({}, ...expr.outs.map((out) => upstream(out)));
534
- } else if (isEffectExpr(expr) || isApplyExpr(expr)) {
645
+ } else if (isEffectExpr(expr) || isApplyExpr(expr) || isNamedExpr(expr)) {
535
646
  return upstream(expr.expr);
536
647
  } else if (Array.isArray(expr)) {
537
648
  return expr.map(upstream).reduce(toObject, {});