alchemy 2.0.0-beta.59 → 2.0.0-beta.60

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 (697) hide show
  1. package/README.md +1 -1
  2. package/bin/exec.js +684 -758
  3. package/bin/exec.js.map +1 -1
  4. package/lib/AWS/AuthProvider.d.ts.map +1 -1
  5. package/lib/AWS/AuthProvider.js +22 -9
  6. package/lib/AWS/AuthProvider.js.map +1 -1
  7. package/lib/AWS/AutoScaling/LaunchTemplate.d.ts +1 -1
  8. package/lib/AWS/AutoScaling/LaunchTemplate.js +1 -1
  9. package/lib/AWS/CloudWatch/Dashboard.d.ts.map +1 -1
  10. package/lib/AWS/CloudWatch/Dashboard.js +4 -1
  11. package/lib/AWS/CloudWatch/Dashboard.js.map +1 -1
  12. package/lib/AWS/Credentials.d.ts +58 -2
  13. package/lib/AWS/Credentials.d.ts.map +1 -1
  14. package/lib/AWS/Credentials.js +124 -2
  15. package/lib/AWS/Credentials.js.map +1 -1
  16. package/lib/AWS/EC2/Image.d.ts.map +1 -1
  17. package/lib/AWS/EC2/Image.js +4 -1
  18. package/lib/AWS/EC2/Image.js.map +1 -1
  19. package/lib/AWS/EC2/Instance.d.ts +4 -3
  20. package/lib/AWS/EC2/Instance.d.ts.map +1 -1
  21. package/lib/AWS/EC2/Instance.js +4 -2
  22. package/lib/AWS/EC2/Instance.js.map +1 -1
  23. package/lib/AWS/EC2/KeyPair.d.ts +87 -0
  24. package/lib/AWS/EC2/KeyPair.d.ts.map +1 -0
  25. package/lib/AWS/EC2/KeyPair.js +198 -0
  26. package/lib/AWS/EC2/KeyPair.js.map +1 -0
  27. package/lib/AWS/EC2/NetworkAcl.d.ts.map +1 -1
  28. package/lib/AWS/EC2/NetworkAcl.js +4 -1
  29. package/lib/AWS/EC2/NetworkAcl.js.map +1 -1
  30. package/lib/AWS/EC2/SecurityGroup.d.ts.map +1 -1
  31. package/lib/AWS/EC2/SecurityGroup.js +4 -1
  32. package/lib/AWS/EC2/SecurityGroup.js.map +1 -1
  33. package/lib/AWS/EC2/SecurityGroupRule.d.ts.map +1 -1
  34. package/lib/AWS/EC2/SecurityGroupRule.js +14 -7
  35. package/lib/AWS/EC2/SecurityGroupRule.js.map +1 -1
  36. package/lib/AWS/EC2/Subnet.d.ts.map +1 -1
  37. package/lib/AWS/EC2/Subnet.js +29 -5
  38. package/lib/AWS/EC2/Subnet.js.map +1 -1
  39. package/lib/AWS/EC2/hosted.d.ts +8 -10
  40. package/lib/AWS/EC2/hosted.d.ts.map +1 -1
  41. package/lib/AWS/EC2/hosted.js +81 -67
  42. package/lib/AWS/EC2/hosted.js.map +1 -1
  43. package/lib/AWS/EC2/index.d.ts +1 -0
  44. package/lib/AWS/EC2/index.d.ts.map +1 -1
  45. package/lib/AWS/EC2/index.js +1 -0
  46. package/lib/AWS/EC2/index.js.map +1 -1
  47. package/lib/AWS/ECS/Task.d.ts +8 -8
  48. package/lib/AWS/ECS/Task.d.ts.map +1 -1
  49. package/lib/AWS/ECS/Task.js +82 -56
  50. package/lib/AWS/ECS/Task.js.map +1 -1
  51. package/lib/AWS/IAM/Role.d.ts +19 -4
  52. package/lib/AWS/IAM/Role.d.ts.map +1 -1
  53. package/lib/AWS/IAM/Role.js +81 -16
  54. package/lib/AWS/IAM/Role.js.map +1 -1
  55. package/lib/AWS/Lambda/CreateAuthToken.d.ts +28 -0
  56. package/lib/AWS/Lambda/CreateAuthToken.d.ts.map +1 -0
  57. package/lib/AWS/Lambda/CreateAuthToken.js +3 -0
  58. package/lib/AWS/Lambda/CreateAuthToken.js.map +1 -0
  59. package/lib/AWS/Lambda/CreateAuthTokenHttp.d.ts +3 -0
  60. package/lib/AWS/Lambda/CreateAuthTokenHttp.d.ts.map +1 -0
  61. package/lib/AWS/Lambda/CreateAuthTokenHttp.js +11 -0
  62. package/lib/AWS/Lambda/CreateAuthTokenHttp.js.map +1 -0
  63. package/lib/AWS/Lambda/CreateShellAuthToken.d.ts +27 -0
  64. package/lib/AWS/Lambda/CreateShellAuthToken.d.ts.map +1 -0
  65. package/lib/AWS/Lambda/CreateShellAuthToken.js +3 -0
  66. package/lib/AWS/Lambda/CreateShellAuthToken.js.map +1 -0
  67. package/lib/AWS/Lambda/CreateShellAuthTokenHttp.d.ts +3 -0
  68. package/lib/AWS/Lambda/CreateShellAuthTokenHttp.d.ts.map +1 -0
  69. package/lib/AWS/Lambda/CreateShellAuthTokenHttp.js +11 -0
  70. package/lib/AWS/Lambda/CreateShellAuthTokenHttp.js.map +1 -0
  71. package/lib/AWS/Lambda/DeleteMicrovmImageVersion.d.ts +18 -0
  72. package/lib/AWS/Lambda/DeleteMicrovmImageVersion.d.ts.map +1 -0
  73. package/lib/AWS/Lambda/DeleteMicrovmImageVersion.js +3 -0
  74. package/lib/AWS/Lambda/DeleteMicrovmImageVersion.js.map +1 -0
  75. package/lib/AWS/Lambda/DeleteMicrovmImageVersionHttp.d.ts +3 -0
  76. package/lib/AWS/Lambda/DeleteMicrovmImageVersionHttp.d.ts.map +1 -0
  77. package/lib/AWS/Lambda/DeleteMicrovmImageVersionHttp.js +12 -0
  78. package/lib/AWS/Lambda/DeleteMicrovmImageVersionHttp.js.map +1 -0
  79. package/lib/AWS/Lambda/Function.d.ts +4 -2
  80. package/lib/AWS/Lambda/Function.d.ts.map +1 -1
  81. package/lib/AWS/Lambda/Function.js +10 -5
  82. package/lib/AWS/Lambda/Function.js.map +1 -1
  83. package/lib/AWS/Lambda/GetMicrovm.d.ts +23 -0
  84. package/lib/AWS/Lambda/GetMicrovm.d.ts.map +1 -0
  85. package/lib/AWS/Lambda/GetMicrovm.js +3 -0
  86. package/lib/AWS/Lambda/GetMicrovm.js.map +1 -0
  87. package/lib/AWS/Lambda/GetMicrovmHttp.d.ts +3 -0
  88. package/lib/AWS/Lambda/GetMicrovmHttp.d.ts.map +1 -0
  89. package/lib/AWS/Lambda/GetMicrovmHttp.js +13 -0
  90. package/lib/AWS/Lambda/GetMicrovmHttp.js.map +1 -0
  91. package/lib/AWS/Lambda/GetMicrovmImage.d.ts +23 -0
  92. package/lib/AWS/Lambda/GetMicrovmImage.d.ts.map +1 -0
  93. package/lib/AWS/Lambda/GetMicrovmImage.js +3 -0
  94. package/lib/AWS/Lambda/GetMicrovmImage.js.map +1 -0
  95. package/lib/AWS/Lambda/GetMicrovmImageBuild.d.ts +18 -0
  96. package/lib/AWS/Lambda/GetMicrovmImageBuild.d.ts.map +1 -0
  97. package/lib/AWS/Lambda/GetMicrovmImageBuild.js +3 -0
  98. package/lib/AWS/Lambda/GetMicrovmImageBuild.js.map +1 -0
  99. package/lib/AWS/Lambda/GetMicrovmImageBuildHttp.d.ts +3 -0
  100. package/lib/AWS/Lambda/GetMicrovmImageBuildHttp.d.ts.map +1 -0
  101. package/lib/AWS/Lambda/GetMicrovmImageBuildHttp.js +12 -0
  102. package/lib/AWS/Lambda/GetMicrovmImageBuildHttp.js.map +1 -0
  103. package/lib/AWS/Lambda/GetMicrovmImageHttp.d.ts +3 -0
  104. package/lib/AWS/Lambda/GetMicrovmImageHttp.d.ts.map +1 -0
  105. package/lib/AWS/Lambda/GetMicrovmImageHttp.js +12 -0
  106. package/lib/AWS/Lambda/GetMicrovmImageHttp.js.map +1 -0
  107. package/lib/AWS/Lambda/GetMicrovmImageVersion.d.ts +18 -0
  108. package/lib/AWS/Lambda/GetMicrovmImageVersion.d.ts.map +1 -0
  109. package/lib/AWS/Lambda/GetMicrovmImageVersion.js +3 -0
  110. package/lib/AWS/Lambda/GetMicrovmImageVersion.js.map +1 -0
  111. package/lib/AWS/Lambda/GetMicrovmImageVersionHttp.d.ts +3 -0
  112. package/lib/AWS/Lambda/GetMicrovmImageVersionHttp.d.ts.map +1 -0
  113. package/lib/AWS/Lambda/GetMicrovmImageVersionHttp.js +12 -0
  114. package/lib/AWS/Lambda/GetMicrovmImageVersionHttp.js.map +1 -0
  115. package/lib/AWS/Lambda/ListManagedMicrovmImageVersions.d.ts +17 -0
  116. package/lib/AWS/Lambda/ListManagedMicrovmImageVersions.d.ts.map +1 -0
  117. package/lib/AWS/Lambda/ListManagedMicrovmImageVersions.js +3 -0
  118. package/lib/AWS/Lambda/ListManagedMicrovmImageVersions.js.map +1 -0
  119. package/lib/AWS/Lambda/ListManagedMicrovmImageVersionsHttp.d.ts +3 -0
  120. package/lib/AWS/Lambda/ListManagedMicrovmImageVersionsHttp.d.ts.map +1 -0
  121. package/lib/AWS/Lambda/ListManagedMicrovmImageVersionsHttp.js +10 -0
  122. package/lib/AWS/Lambda/ListManagedMicrovmImageVersionsHttp.js.map +1 -0
  123. package/lib/AWS/Lambda/ListManagedMicrovmImages.d.ts +17 -0
  124. package/lib/AWS/Lambda/ListManagedMicrovmImages.d.ts.map +1 -0
  125. package/lib/AWS/Lambda/ListManagedMicrovmImages.js +3 -0
  126. package/lib/AWS/Lambda/ListManagedMicrovmImages.js.map +1 -0
  127. package/lib/AWS/Lambda/ListManagedMicrovmImagesHttp.d.ts +3 -0
  128. package/lib/AWS/Lambda/ListManagedMicrovmImagesHttp.d.ts.map +1 -0
  129. package/lib/AWS/Lambda/ListManagedMicrovmImagesHttp.js +10 -0
  130. package/lib/AWS/Lambda/ListManagedMicrovmImagesHttp.js.map +1 -0
  131. package/lib/AWS/Lambda/ListMicrovmImageBuilds.d.ts +19 -0
  132. package/lib/AWS/Lambda/ListMicrovmImageBuilds.d.ts.map +1 -0
  133. package/lib/AWS/Lambda/ListMicrovmImageBuilds.js +3 -0
  134. package/lib/AWS/Lambda/ListMicrovmImageBuilds.js.map +1 -0
  135. package/lib/AWS/Lambda/ListMicrovmImageBuildsHttp.d.ts +3 -0
  136. package/lib/AWS/Lambda/ListMicrovmImageBuildsHttp.d.ts.map +1 -0
  137. package/lib/AWS/Lambda/ListMicrovmImageBuildsHttp.js +12 -0
  138. package/lib/AWS/Lambda/ListMicrovmImageBuildsHttp.js.map +1 -0
  139. package/lib/AWS/Lambda/ListMicrovmImageVersions.d.ts +18 -0
  140. package/lib/AWS/Lambda/ListMicrovmImageVersions.d.ts.map +1 -0
  141. package/lib/AWS/Lambda/ListMicrovmImageVersions.js +3 -0
  142. package/lib/AWS/Lambda/ListMicrovmImageVersions.js.map +1 -0
  143. package/lib/AWS/Lambda/ListMicrovmImageVersionsHttp.d.ts +3 -0
  144. package/lib/AWS/Lambda/ListMicrovmImageVersionsHttp.d.ts.map +1 -0
  145. package/lib/AWS/Lambda/ListMicrovmImageVersionsHttp.js +12 -0
  146. package/lib/AWS/Lambda/ListMicrovmImageVersionsHttp.js.map +1 -0
  147. package/lib/AWS/Lambda/ListMicrovms.d.ts +23 -0
  148. package/lib/AWS/Lambda/ListMicrovms.d.ts.map +1 -0
  149. package/lib/AWS/Lambda/ListMicrovms.js +3 -0
  150. package/lib/AWS/Lambda/ListMicrovms.js.map +1 -0
  151. package/lib/AWS/Lambda/ListMicrovmsHttp.d.ts +3 -0
  152. package/lib/AWS/Lambda/ListMicrovmsHttp.d.ts.map +1 -0
  153. package/lib/AWS/Lambda/ListMicrovmsHttp.js +12 -0
  154. package/lib/AWS/Lambda/ListMicrovmsHttp.js.map +1 -0
  155. package/lib/AWS/Lambda/MicrovmBinding.d.ts +61 -0
  156. package/lib/AWS/Lambda/MicrovmBinding.d.ts.map +1 -0
  157. package/lib/AWS/Lambda/MicrovmBinding.js +279 -0
  158. package/lib/AWS/Lambda/MicrovmBinding.js.map +1 -0
  159. package/lib/AWS/Lambda/MicrovmBundle.d.ts +62 -0
  160. package/lib/AWS/Lambda/MicrovmBundle.d.ts.map +1 -0
  161. package/lib/AWS/Lambda/MicrovmBundle.js +197 -0
  162. package/lib/AWS/Lambda/MicrovmBundle.js.map +1 -0
  163. package/lib/AWS/Lambda/MicrovmImage.d.ts +488 -0
  164. package/lib/AWS/Lambda/MicrovmImage.d.ts.map +1 -0
  165. package/lib/AWS/Lambda/MicrovmImage.js +381 -0
  166. package/lib/AWS/Lambda/MicrovmImage.js.map +1 -0
  167. package/lib/AWS/Lambda/MicrovmProvider.d.ts +7 -0
  168. package/lib/AWS/Lambda/MicrovmProvider.d.ts.map +1 -0
  169. package/lib/AWS/Lambda/MicrovmProvider.js +384 -0
  170. package/lib/AWS/Lambda/MicrovmProvider.js.map +1 -0
  171. package/lib/AWS/Lambda/MicrovmRpc.d.ts +50 -0
  172. package/lib/AWS/Lambda/MicrovmRpc.d.ts.map +1 -0
  173. package/lib/AWS/Lambda/MicrovmRpc.js +50 -0
  174. package/lib/AWS/Lambda/MicrovmRpc.js.map +1 -0
  175. package/lib/AWS/Lambda/MicrovmRuntimeContext.d.ts +9 -0
  176. package/lib/AWS/Lambda/MicrovmRuntimeContext.d.ts.map +1 -0
  177. package/lib/AWS/Lambda/MicrovmRuntimeContext.js +67 -0
  178. package/lib/AWS/Lambda/MicrovmRuntimeContext.js.map +1 -0
  179. package/lib/AWS/Lambda/NetworkConnector.d.ts +142 -0
  180. package/lib/AWS/Lambda/NetworkConnector.d.ts.map +1 -0
  181. package/lib/AWS/Lambda/NetworkConnector.js +283 -0
  182. package/lib/AWS/Lambda/NetworkConnector.js.map +1 -0
  183. package/lib/AWS/Lambda/QueueEventSource.d.ts.map +1 -1
  184. package/lib/AWS/Lambda/QueueEventSource.js +1 -0
  185. package/lib/AWS/Lambda/QueueEventSource.js.map +1 -1
  186. package/lib/AWS/Lambda/ResumeMicrovm.d.ts +23 -0
  187. package/lib/AWS/Lambda/ResumeMicrovm.d.ts.map +1 -0
  188. package/lib/AWS/Lambda/ResumeMicrovm.js +3 -0
  189. package/lib/AWS/Lambda/ResumeMicrovm.js.map +1 -0
  190. package/lib/AWS/Lambda/ResumeMicrovmHttp.d.ts +3 -0
  191. package/lib/AWS/Lambda/ResumeMicrovmHttp.d.ts.map +1 -0
  192. package/lib/AWS/Lambda/ResumeMicrovmHttp.js +11 -0
  193. package/lib/AWS/Lambda/ResumeMicrovmHttp.js.map +1 -0
  194. package/lib/AWS/Lambda/RunMicrovm.d.ts +33 -0
  195. package/lib/AWS/Lambda/RunMicrovm.d.ts.map +1 -0
  196. package/lib/AWS/Lambda/RunMicrovm.js +3 -0
  197. package/lib/AWS/Lambda/RunMicrovm.js.map +1 -0
  198. package/lib/AWS/Lambda/RunMicrovmHttp.d.ts +3 -0
  199. package/lib/AWS/Lambda/RunMicrovmHttp.d.ts.map +1 -0
  200. package/lib/AWS/Lambda/RunMicrovmHttp.js +13 -0
  201. package/lib/AWS/Lambda/RunMicrovmHttp.js.map +1 -0
  202. package/lib/AWS/Lambda/SuspendMicrovm.d.ts +23 -0
  203. package/lib/AWS/Lambda/SuspendMicrovm.d.ts.map +1 -0
  204. package/lib/AWS/Lambda/SuspendMicrovm.js +3 -0
  205. package/lib/AWS/Lambda/SuspendMicrovm.js.map +1 -0
  206. package/lib/AWS/Lambda/SuspendMicrovmHttp.d.ts +3 -0
  207. package/lib/AWS/Lambda/SuspendMicrovmHttp.d.ts.map +1 -0
  208. package/lib/AWS/Lambda/SuspendMicrovmHttp.js +11 -0
  209. package/lib/AWS/Lambda/SuspendMicrovmHttp.js.map +1 -0
  210. package/lib/AWS/Lambda/TerminateMicrovm.d.ts +23 -0
  211. package/lib/AWS/Lambda/TerminateMicrovm.d.ts.map +1 -0
  212. package/lib/AWS/Lambda/TerminateMicrovm.js +3 -0
  213. package/lib/AWS/Lambda/TerminateMicrovm.js.map +1 -0
  214. package/lib/AWS/Lambda/TerminateMicrovmHttp.d.ts +3 -0
  215. package/lib/AWS/Lambda/TerminateMicrovmHttp.d.ts.map +1 -0
  216. package/lib/AWS/Lambda/TerminateMicrovmHttp.js +11 -0
  217. package/lib/AWS/Lambda/TerminateMicrovmHttp.js.map +1 -0
  218. package/lib/AWS/Lambda/UpdateMicrovmImageVersion.d.ts +18 -0
  219. package/lib/AWS/Lambda/UpdateMicrovmImageVersion.d.ts.map +1 -0
  220. package/lib/AWS/Lambda/UpdateMicrovmImageVersion.js +3 -0
  221. package/lib/AWS/Lambda/UpdateMicrovmImageVersion.js.map +1 -0
  222. package/lib/AWS/Lambda/UpdateMicrovmImageVersionHttp.d.ts +3 -0
  223. package/lib/AWS/Lambda/UpdateMicrovmImageVersionHttp.d.ts.map +1 -0
  224. package/lib/AWS/Lambda/UpdateMicrovmImageVersionHttp.js +12 -0
  225. package/lib/AWS/Lambda/UpdateMicrovmImageVersionHttp.js.map +1 -0
  226. package/lib/AWS/Lambda/index.d.ts +38 -0
  227. package/lib/AWS/Lambda/index.d.ts.map +1 -1
  228. package/lib/AWS/Lambda/index.js +38 -0
  229. package/lib/AWS/Lambda/index.js.map +1 -1
  230. package/lib/AWS/Providers.d.ts +1 -1
  231. package/lib/AWS/Providers.d.ts.map +1 -1
  232. package/lib/AWS/Providers.js +6 -2
  233. package/lib/AWS/Providers.js.map +1 -1
  234. package/lib/AWS/RDS/DBClusterParameterGroup.d.ts.map +1 -1
  235. package/lib/AWS/RDS/DBClusterParameterGroup.js +4 -1
  236. package/lib/AWS/RDS/DBClusterParameterGroup.js.map +1 -1
  237. package/lib/AWS/RDS/DBParameterGroup.d.ts.map +1 -1
  238. package/lib/AWS/RDS/DBParameterGroup.js +4 -1
  239. package/lib/AWS/RDS/DBParameterGroup.js.map +1 -1
  240. package/lib/AWS/Region.d.ts.map +1 -1
  241. package/lib/AWS/Region.js +6 -1
  242. package/lib/AWS/Region.js.map +1 -1
  243. package/lib/AWS/S3/Bucket.d.ts.map +1 -1
  244. package/lib/AWS/S3/Bucket.js +46 -26
  245. package/lib/AWS/S3/Bucket.js.map +1 -1
  246. package/lib/AlchemyContext.d.ts +7 -0
  247. package/lib/AlchemyContext.d.ts.map +1 -1
  248. package/lib/AlchemyContext.js.map +1 -1
  249. package/lib/Apply.js +2 -2
  250. package/lib/Apply.js.map +1 -1
  251. package/lib/Axiom/Chart.d.ts +9 -1
  252. package/lib/Axiom/Chart.d.ts.map +1 -1
  253. package/lib/Bundle/Bundle.d.ts +1 -0
  254. package/lib/Bundle/Bundle.d.ts.map +1 -1
  255. package/lib/Bundle/Bundle.js +1 -1
  256. package/lib/Bundle/Bundle.js.map +1 -1
  257. package/lib/Bundle/TempRoot.d.ts +9 -0
  258. package/lib/Bundle/TempRoot.d.ts.map +1 -1
  259. package/lib/Bundle/TempRoot.js +22 -0
  260. package/lib/Bundle/TempRoot.js.map +1 -1
  261. package/lib/Bundle/Vite.d.ts +20 -0
  262. package/lib/Bundle/Vite.d.ts.map +1 -0
  263. package/lib/Bundle/Vite.js +130 -0
  264. package/lib/Bundle/Vite.js.map +1 -0
  265. package/lib/Bundle/index.d.ts +0 -1
  266. package/lib/Bundle/index.d.ts.map +1 -1
  267. package/lib/Bundle/index.js +0 -1
  268. package/lib/Bundle/index.js.map +1 -1
  269. package/lib/Cli/Event.d.ts +1 -1
  270. package/lib/Cli/Event.d.ts.map +1 -1
  271. package/lib/Cli/LoggingCli.d.ts.map +1 -1
  272. package/lib/Cli/LoggingCli.js +3 -0
  273. package/lib/Cli/LoggingCli.js.map +1 -1
  274. package/lib/Cli/commands/_shared.d.ts.map +1 -1
  275. package/lib/Cli/commands/_shared.js +7 -1
  276. package/lib/Cli/commands/_shared.js.map +1 -1
  277. package/lib/Cli/commands/cloudflare.d.ts +2 -2
  278. package/lib/Cli/commands/cloudflare.d.ts.map +1 -1
  279. package/lib/Cli/commands/cloudflare.js +21 -2
  280. package/lib/Cli/commands/cloudflare.js.map +1 -1
  281. package/lib/Cli/commands/deploy.d.ts.map +1 -1
  282. package/lib/Cli/commands/deploy.js +4 -1
  283. package/lib/Cli/commands/deploy.js.map +1 -1
  284. package/lib/Cli/tui/components/PlanProgress.js +5 -3
  285. package/lib/Cli/tui/components/PlanProgress.js.map +1 -1
  286. package/lib/Cloudflare/AI/Gateway.d.ts +1 -1
  287. package/lib/Cloudflare/AI/Gateway.js +1 -1
  288. package/lib/Cloudflare/AI/Search.d.ts +1 -1
  289. package/lib/Cloudflare/AI/Search.js +1 -1
  290. package/lib/Cloudflare/AI/SearchInstance.d.ts +1 -1
  291. package/lib/Cloudflare/AI/SearchInstance.js +1 -1
  292. package/lib/Cloudflare/AI/SearchNamespace.d.ts +1 -1
  293. package/lib/Cloudflare/AI/SearchNamespace.js +1 -1
  294. package/lib/Cloudflare/AI/SearchToken.d.ts.map +1 -1
  295. package/lib/Cloudflare/AI/SearchToken.js +6 -1
  296. package/lib/Cloudflare/AI/SearchToken.js.map +1 -1
  297. package/lib/Cloudflare/Access/Application.d.ts.map +1 -1
  298. package/lib/Cloudflare/Access/Application.js +51 -11
  299. package/lib/Cloudflare/Access/Application.js.map +1 -1
  300. package/lib/Cloudflare/Alerting/Webhook.d.ts.map +1 -1
  301. package/lib/Cloudflare/Alerting/Webhook.js +9 -2
  302. package/lib/Cloudflare/Alerting/Webhook.js.map +1 -1
  303. package/lib/Cloudflare/AnalyticsEngine/WriteDataset.d.ts +2 -2
  304. package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts.map +1 -1
  305. package/lib/Cloudflare/ApiToken/AccountApiToken.js +5 -1
  306. package/lib/Cloudflare/ApiToken/AccountApiToken.js.map +1 -1
  307. package/lib/Cloudflare/Auth/AuthProvider.js +1 -1
  308. package/lib/Cloudflare/Auth/AuthProvider.js.map +1 -1
  309. package/lib/Cloudflare/Containers/Container.d.ts +46 -4
  310. package/lib/Cloudflare/Containers/Container.d.ts.map +1 -1
  311. package/lib/Cloudflare/Containers/Container.js +27 -3
  312. package/lib/Cloudflare/Containers/Container.js.map +1 -1
  313. package/lib/Cloudflare/Containers/ContainerApplication.d.ts +25 -19
  314. package/lib/Cloudflare/Containers/ContainerApplication.d.ts.map +1 -1
  315. package/lib/Cloudflare/Containers/ContainerApplication.js.map +1 -1
  316. package/lib/Cloudflare/Containers/ContainerBundle.d.ts +1 -2
  317. package/lib/Cloudflare/Containers/ContainerBundle.d.ts.map +1 -1
  318. package/lib/Cloudflare/Containers/ContainerBundle.js +2 -4
  319. package/lib/Cloudflare/Containers/ContainerBundle.js.map +1 -1
  320. package/lib/Cloudflare/Containers/ContainerPlatform.js +2 -2
  321. package/lib/Cloudflare/Containers/ContainerPlatform.js.map +1 -1
  322. package/lib/Cloudflare/Containers/ContainerProvider.d.ts +2 -1
  323. package/lib/Cloudflare/Containers/ContainerProvider.d.ts.map +1 -1
  324. package/lib/Cloudflare/Containers/ContainerProvider.js +51 -35
  325. package/lib/Cloudflare/Containers/ContainerProvider.js.map +1 -1
  326. package/lib/Cloudflare/Containers/LocalContainerProvider.d.ts +3 -1
  327. package/lib/Cloudflare/Containers/LocalContainerProvider.d.ts.map +1 -1
  328. package/lib/Cloudflare/Containers/LocalContainerProvider.js +11 -4
  329. package/lib/Cloudflare/Containers/LocalContainerProvider.js.map +1 -1
  330. package/lib/Cloudflare/Containers/StartContainer.d.ts.map +1 -1
  331. package/lib/Cloudflare/Containers/StartContainer.js +222 -15
  332. package/lib/Cloudflare/Containers/StartContainer.js.map +1 -1
  333. package/lib/Cloudflare/DNS/ReadDns.d.ts +1 -1
  334. package/lib/Cloudflare/DNS/ReadWriteDns.d.ts +1 -1
  335. package/lib/Cloudflare/DNS/WriteDns.d.ts +1 -1
  336. package/lib/Cloudflare/Flagship/App.d.ts +1 -1
  337. package/lib/Cloudflare/Flagship/App.js +1 -1
  338. package/lib/Cloudflare/Images/Images.d.ts +1 -1
  339. package/lib/Cloudflare/Local.js +2 -1
  340. package/lib/Cloudflare/Local.js.map +1 -1
  341. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  342. package/lib/Cloudflare/Providers.js +2 -1
  343. package/lib/Cloudflare/Providers.js.map +1 -1
  344. package/lib/Cloudflare/Queues/Consumer.d.ts +2 -2
  345. package/lib/Cloudflare/Queues/Consumer.d.ts.map +1 -1
  346. package/lib/Cloudflare/Queues/Consumer.js +21 -13
  347. package/lib/Cloudflare/Queues/Consumer.js.map +1 -1
  348. package/lib/Cloudflare/Queues/Queue.d.ts +1 -1
  349. package/lib/Cloudflare/Queues/Queue.js +1 -1
  350. package/lib/Cloudflare/R2/Bucket.d.ts +2 -2
  351. package/lib/Cloudflare/R2/Bucket.js +2 -2
  352. package/lib/Cloudflare/StateStore/Api.d.ts +4 -1
  353. package/lib/Cloudflare/StateStore/Api.d.ts.map +1 -1
  354. package/lib/Cloudflare/StateStore/Api.js +6 -4
  355. package/lib/Cloudflare/StateStore/Api.js.map +1 -1
  356. package/lib/Cloudflare/StateStore/State.d.ts +28 -2
  357. package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
  358. package/lib/Cloudflare/StateStore/State.js +122 -19
  359. package/lib/Cloudflare/StateStore/State.js.map +1 -1
  360. package/lib/Cloudflare/Website/Vite.d.ts +26 -23
  361. package/lib/Cloudflare/Website/Vite.d.ts.map +1 -1
  362. package/lib/Cloudflare/Website/Vite.js +25 -7
  363. package/lib/Cloudflare/Website/Vite.js.map +1 -1
  364. package/lib/Cloudflare/Workers/Binding.d.ts +1 -1
  365. package/lib/Cloudflare/Workers/Browser.d.ts +1 -1
  366. package/lib/Cloudflare/Workers/DurableObject.d.ts +54 -3
  367. package/lib/Cloudflare/Workers/DurableObject.d.ts.map +1 -1
  368. package/lib/Cloudflare/Workers/DurableObject.js +54 -3
  369. package/lib/Cloudflare/Workers/DurableObject.js.map +1 -1
  370. package/lib/Cloudflare/Workers/InferEnv.d.ts +4 -2
  371. package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
  372. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  373. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +55 -6
  374. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  375. package/lib/Cloudflare/Workers/RpcDurableObject.d.ts +3 -3
  376. package/lib/Cloudflare/Workers/RpcDurableObject.js +3 -3
  377. package/lib/Cloudflare/Workers/RpcWorker.d.ts +4 -4
  378. package/lib/Cloudflare/Workers/RpcWorker.js +4 -4
  379. package/lib/Cloudflare/Workers/ScheduledEvents.js +1 -1
  380. package/lib/Cloudflare/Workers/ScheduledEvents.js.map +1 -1
  381. package/lib/Cloudflare/Workers/VersionMetadata.d.ts +1 -1
  382. package/lib/Cloudflare/Workers/Vite.d.ts +1 -4
  383. package/lib/Cloudflare/Workers/Vite.d.ts.map +1 -1
  384. package/lib/Cloudflare/Workers/Vite.js +19 -38
  385. package/lib/Cloudflare/Workers/Vite.js.map +1 -1
  386. package/lib/Cloudflare/Workers/Worker.d.ts +73 -13
  387. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  388. package/lib/Cloudflare/Workers/Worker.js +9 -9
  389. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  390. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts +2 -1
  391. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
  392. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +31 -0
  393. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
  394. package/lib/Cloudflare/Workers/WorkerBinding.d.ts +7 -1
  395. package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
  396. package/lib/Cloudflare/Workers/WorkerBinding.js.map +1 -1
  397. package/lib/Cloudflare/Workers/WorkerLoader.d.ts +1 -1
  398. package/lib/Cloudflare/Workers/WorkerLoader.js +1 -1
  399. package/lib/Cloudflare/Workers/WorkerProvider.d.ts +10 -0
  400. package/lib/Cloudflare/Workers/WorkerProvider.d.ts.map +1 -1
  401. package/lib/Cloudflare/Workers/WorkerProvider.js +240 -60
  402. package/lib/Cloudflare/Workers/WorkerProvider.js.map +1 -1
  403. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js +1 -1
  404. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js.map +1 -1
  405. package/lib/Cloudflare/WorkersForPlatforms/DispatchNamespace.d.ts +44 -2
  406. package/lib/Cloudflare/WorkersForPlatforms/DispatchNamespace.d.ts.map +1 -1
  407. package/lib/Cloudflare/WorkersForPlatforms/DispatchNamespace.js +44 -2
  408. package/lib/Cloudflare/WorkersForPlatforms/DispatchNamespace.js.map +1 -1
  409. package/lib/Cloudflare/WorkersForPlatforms/Get.d.ts +77 -0
  410. package/lib/Cloudflare/WorkersForPlatforms/Get.d.ts.map +1 -0
  411. package/lib/Cloudflare/WorkersForPlatforms/Get.js +9 -0
  412. package/lib/Cloudflare/WorkersForPlatforms/Get.js.map +1 -0
  413. package/lib/Cloudflare/WorkersForPlatforms/GetBinding.d.ts +9 -0
  414. package/lib/Cloudflare/WorkersForPlatforms/GetBinding.d.ts.map +1 -0
  415. package/lib/Cloudflare/WorkersForPlatforms/GetBinding.js +43 -0
  416. package/lib/Cloudflare/WorkersForPlatforms/GetBinding.js.map +1 -0
  417. package/lib/Cloudflare/WorkersForPlatforms/index.d.ts +2 -0
  418. package/lib/Cloudflare/WorkersForPlatforms/index.d.ts.map +1 -1
  419. package/lib/Cloudflare/WorkersForPlatforms/index.js +2 -0
  420. package/lib/Cloudflare/WorkersForPlatforms/index.js.map +1 -1
  421. package/lib/Cloudflare/Workflows/Workflow.d.ts +107 -1
  422. package/lib/Cloudflare/Workflows/Workflow.d.ts.map +1 -1
  423. package/lib/Cloudflare/Workflows/Workflow.js +93 -6
  424. package/lib/Cloudflare/Workflows/Workflow.js.map +1 -1
  425. package/lib/Command/Build.d.ts.map +1 -1
  426. package/lib/Command/Build.js +24 -1
  427. package/lib/Command/Build.js.map +1 -1
  428. package/lib/Docker/Container.d.ts +156 -0
  429. package/lib/Docker/Container.d.ts.map +1 -0
  430. package/lib/Docker/Container.js +221 -0
  431. package/lib/Docker/Container.js.map +1 -0
  432. package/lib/Docker/Docker.d.ts +199 -0
  433. package/lib/Docker/Docker.d.ts.map +1 -0
  434. package/lib/Docker/Docker.js +224 -0
  435. package/lib/Docker/Docker.js.map +1 -0
  436. package/lib/Docker/Image.d.ts +109 -0
  437. package/lib/Docker/Image.d.ts.map +1 -0
  438. package/lib/Docker/Image.js +150 -0
  439. package/lib/Docker/Image.js.map +1 -0
  440. package/lib/Docker/Network.d.ts +61 -0
  441. package/lib/Docker/Network.d.ts.map +1 -0
  442. package/lib/Docker/Network.js +99 -0
  443. package/lib/Docker/Network.js.map +1 -0
  444. package/lib/Docker/Providers.d.ts +15 -0
  445. package/lib/Docker/Providers.d.ts.map +1 -0
  446. package/lib/Docker/Providers.js +18 -0
  447. package/lib/Docker/Providers.js.map +1 -0
  448. package/lib/Docker/Registry.d.ts +30 -0
  449. package/lib/Docker/Registry.d.ts.map +1 -0
  450. package/lib/Docker/Registry.js +44 -0
  451. package/lib/Docker/Registry.js.map +1 -0
  452. package/lib/Docker/RemoteImage.d.ts +102 -0
  453. package/lib/Docker/RemoteImage.d.ts.map +1 -0
  454. package/lib/Docker/RemoteImage.js +123 -0
  455. package/lib/Docker/RemoteImage.js.map +1 -0
  456. package/lib/Docker/Volume.d.ts +81 -0
  457. package/lib/Docker/Volume.d.ts.map +1 -0
  458. package/lib/Docker/Volume.js +107 -0
  459. package/lib/Docker/Volume.js.map +1 -0
  460. package/lib/Docker/index.d.ts +9 -0
  461. package/lib/Docker/index.d.ts.map +1 -0
  462. package/lib/Docker/index.js +8 -0
  463. package/lib/Docker/index.js.map +1 -0
  464. package/lib/Local/ProviderLayer.d.ts +1 -0
  465. package/lib/Local/ProviderLayer.d.ts.map +1 -1
  466. package/lib/Local/ProviderLayer.js +1 -0
  467. package/lib/Local/ProviderLayer.js.map +1 -1
  468. package/lib/Neon/Branch.d.ts +5 -0
  469. package/lib/Neon/Branch.d.ts.map +1 -1
  470. package/lib/Neon/Branch.js +8 -1
  471. package/lib/Neon/Branch.js.map +1 -1
  472. package/lib/Neon/Project.d.ts +5 -0
  473. package/lib/Neon/Project.d.ts.map +1 -1
  474. package/lib/Neon/Project.js +6 -0
  475. package/lib/Neon/Project.js.map +1 -1
  476. package/lib/Plan.d.ts.map +1 -1
  477. package/lib/Plan.js +3 -1
  478. package/lib/Plan.js.map +1 -1
  479. package/lib/Planetscale/Branch.d.ts +10 -0
  480. package/lib/Planetscale/Branch.d.ts.map +1 -1
  481. package/lib/Planetscale/Branch.js +43 -1
  482. package/lib/Planetscale/Branch.js.map +1 -1
  483. package/lib/Planetscale/Postgres/PostgresBranch.d.ts +5 -0
  484. package/lib/Planetscale/Postgres/PostgresBranch.d.ts.map +1 -1
  485. package/lib/Planetscale/Postgres/PostgresBranch.js.map +1 -1
  486. package/lib/Planetscale/Postgres/PostgresRole.d.ts +3 -1
  487. package/lib/Planetscale/Postgres/PostgresRole.d.ts.map +1 -1
  488. package/lib/Planetscale/Postgres/PostgresRole.js +8 -0
  489. package/lib/Planetscale/Postgres/PostgresRole.js.map +1 -1
  490. package/lib/Planetscale/Util.d.ts +3 -124
  491. package/lib/Planetscale/Util.d.ts.map +1 -1
  492. package/lib/Platform.d.ts +2 -1
  493. package/lib/Platform.d.ts.map +1 -1
  494. package/lib/Platform.js +37 -10
  495. package/lib/Platform.js.map +1 -1
  496. package/lib/Provider.d.ts.map +1 -1
  497. package/lib/Provider.js.map +1 -1
  498. package/lib/Resource.d.ts.map +1 -1
  499. package/lib/Resource.js +3 -1
  500. package/lib/Resource.js.map +1 -1
  501. package/lib/Rpc.d.ts +1 -1
  502. package/lib/Server/Process.d.ts +29 -1
  503. package/lib/Server/Process.d.ts.map +1 -1
  504. package/lib/Server/Process.js +48 -1
  505. package/lib/Server/Process.js.map +1 -1
  506. package/lib/Stack.d.ts +4 -1
  507. package/lib/Stack.d.ts.map +1 -1
  508. package/lib/Stack.js +1 -1
  509. package/lib/Stack.js.map +1 -1
  510. package/lib/State/HttpStateApi.d.ts +10 -10
  511. package/lib/Tags.d.ts +6 -0
  512. package/lib/Tags.d.ts.map +1 -1
  513. package/lib/Tags.js +6 -0
  514. package/lib/Tags.js.map +1 -1
  515. package/lib/Telemetry/Attributes.d.ts.map +1 -1
  516. package/lib/Telemetry/Attributes.js +6 -15
  517. package/lib/Telemetry/Attributes.js.map +1 -1
  518. package/lib/Test/Bun.d.ts +1 -0
  519. package/lib/Test/Bun.d.ts.map +1 -1
  520. package/lib/Test/Bun.js +1 -0
  521. package/lib/Test/Bun.js.map +1 -1
  522. package/lib/Test/Core.d.ts +1 -0
  523. package/lib/Test/Core.d.ts.map +1 -1
  524. package/lib/Test/Core.js +3 -2
  525. package/lib/Test/Core.js.map +1 -1
  526. package/lib/Test/Vitest.d.ts.map +1 -1
  527. package/lib/Test/Vitest.js +1 -0
  528. package/lib/Test/Vitest.js.map +1 -1
  529. package/lib/Util/effect.js.map +1 -1
  530. package/lib/Util/proxy-chain.d.ts +1 -0
  531. package/lib/Util/proxy-chain.d.ts.map +1 -1
  532. package/lib/Util/proxy-chain.js +1 -0
  533. package/lib/Util/proxy-chain.js.map +1 -1
  534. package/package.json +26 -10
  535. package/src/AWS/AuthProvider.ts +32 -17
  536. package/src/AWS/AutoScaling/LaunchTemplate.ts +1 -1
  537. package/src/AWS/CloudWatch/Dashboard.ts +4 -1
  538. package/src/AWS/Credentials.ts +178 -2
  539. package/src/AWS/EC2/Image.ts +4 -1
  540. package/src/AWS/EC2/Instance.ts +9 -6
  541. package/src/AWS/EC2/KeyPair.ts +319 -0
  542. package/src/AWS/EC2/NetworkAcl.ts +4 -1
  543. package/src/AWS/EC2/SecurityGroup.ts +4 -1
  544. package/src/AWS/EC2/SecurityGroupRule.ts +14 -5
  545. package/src/AWS/EC2/Subnet.ts +49 -4
  546. package/src/AWS/EC2/hosted.ts +93 -93
  547. package/src/AWS/EC2/index.ts +1 -0
  548. package/src/AWS/ECS/Task.ts +96 -78
  549. package/src/AWS/IAM/Role.ts +132 -22
  550. package/src/AWS/Lambda/CreateAuthToken.ts +43 -0
  551. package/src/AWS/Lambda/CreateAuthTokenHttp.ts +11 -0
  552. package/src/AWS/Lambda/CreateShellAuthToken.ts +42 -0
  553. package/src/AWS/Lambda/CreateShellAuthTokenHttp.ts +11 -0
  554. package/src/AWS/Lambda/DeleteMicrovmImageVersion.ts +36 -0
  555. package/src/AWS/Lambda/DeleteMicrovmImageVersionHttp.ts +12 -0
  556. package/src/AWS/Lambda/Function.ts +36 -9
  557. package/src/AWS/Lambda/GetMicrovm.ts +32 -0
  558. package/src/AWS/Lambda/GetMicrovmHttp.ts +13 -0
  559. package/src/AWS/Lambda/GetMicrovmImage.ts +40 -0
  560. package/src/AWS/Lambda/GetMicrovmImageBuild.ts +35 -0
  561. package/src/AWS/Lambda/GetMicrovmImageBuildHttp.ts +12 -0
  562. package/src/AWS/Lambda/GetMicrovmImageHttp.ts +12 -0
  563. package/src/AWS/Lambda/GetMicrovmImageVersion.ts +35 -0
  564. package/src/AWS/Lambda/GetMicrovmImageVersionHttp.ts +12 -0
  565. package/src/AWS/Lambda/ListManagedMicrovmImageVersions.ts +31 -0
  566. package/src/AWS/Lambda/ListManagedMicrovmImageVersionsHttp.ts +10 -0
  567. package/src/AWS/Lambda/ListManagedMicrovmImages.ts +31 -0
  568. package/src/AWS/Lambda/ListManagedMicrovmImagesHttp.ts +10 -0
  569. package/src/AWS/Lambda/ListMicrovmImageBuilds.ts +36 -0
  570. package/src/AWS/Lambda/ListMicrovmImageBuildsHttp.ts +12 -0
  571. package/src/AWS/Lambda/ListMicrovmImageVersions.ts +36 -0
  572. package/src/AWS/Lambda/ListMicrovmImageVersionsHttp.ts +12 -0
  573. package/src/AWS/Lambda/ListMicrovms.ts +40 -0
  574. package/src/AWS/Lambda/ListMicrovmsHttp.ts +12 -0
  575. package/src/AWS/Lambda/MicrovmBinding.ts +442 -0
  576. package/src/AWS/Lambda/MicrovmBundle.ts +256 -0
  577. package/src/AWS/Lambda/MicrovmImage.ts +569 -0
  578. package/src/AWS/Lambda/MicrovmProvider.ts +597 -0
  579. package/src/AWS/Lambda/MicrovmRpc.ts +75 -0
  580. package/src/AWS/Lambda/MicrovmRuntimeContext.ts +110 -0
  581. package/src/AWS/Lambda/NetworkConnector.ts +529 -0
  582. package/src/AWS/Lambda/QueueEventSource.ts +1 -0
  583. package/src/AWS/Lambda/ResumeMicrovm.ts +37 -0
  584. package/src/AWS/Lambda/ResumeMicrovmHttp.ts +11 -0
  585. package/src/AWS/Lambda/RunMicrovm.ts +45 -0
  586. package/src/AWS/Lambda/RunMicrovmHttp.ts +13 -0
  587. package/src/AWS/Lambda/SuspendMicrovm.ts +37 -0
  588. package/src/AWS/Lambda/SuspendMicrovmHttp.ts +11 -0
  589. package/src/AWS/Lambda/TerminateMicrovm.ts +38 -0
  590. package/src/AWS/Lambda/TerminateMicrovmHttp.ts +11 -0
  591. package/src/AWS/Lambda/UpdateMicrovmImageVersion.ts +36 -0
  592. package/src/AWS/Lambda/UpdateMicrovmImageVersionHttp.ts +12 -0
  593. package/src/AWS/Lambda/index.ts +38 -0
  594. package/src/AWS/Providers.ts +147 -133
  595. package/src/AWS/RDS/DBClusterParameterGroup.ts +5 -1
  596. package/src/AWS/RDS/DBParameterGroup.ts +5 -1
  597. package/src/AWS/Region.ts +9 -2
  598. package/src/AWS/S3/Bucket.ts +71 -36
  599. package/src/AlchemyContext.ts +7 -0
  600. package/src/Apply.ts +4 -2
  601. package/src/Axiom/Chart.ts +9 -1
  602. package/src/Bundle/Bundle.ts +1 -1
  603. package/src/Bundle/TempRoot.ts +22 -0
  604. package/src/Bundle/Vite.ts +204 -0
  605. package/src/Bundle/index.ts +0 -1
  606. package/src/Cli/Event.ts +1 -0
  607. package/src/Cli/LoggingCli.ts +3 -0
  608. package/src/Cli/commands/_shared.ts +7 -1
  609. package/src/Cli/commands/cloudflare.ts +37 -2
  610. package/src/Cli/commands/deploy.ts +4 -1
  611. package/src/Cli/tui/components/PlanProgress.tsx +5 -3
  612. package/src/Cloudflare/AI/Gateway.ts +1 -1
  613. package/src/Cloudflare/AI/Search.ts +1 -1
  614. package/src/Cloudflare/AI/SearchInstance.ts +1 -1
  615. package/src/Cloudflare/AI/SearchNamespace.ts +1 -1
  616. package/src/Cloudflare/AI/SearchToken.ts +6 -1
  617. package/src/Cloudflare/Access/Application.ts +61 -10
  618. package/src/Cloudflare/Alerting/Webhook.ts +18 -7
  619. package/src/Cloudflare/AnalyticsEngine/WriteDataset.ts +2 -2
  620. package/src/Cloudflare/ApiToken/AccountApiToken.ts +4 -0
  621. package/src/Cloudflare/Auth/AuthProvider.ts +1 -1
  622. package/src/Cloudflare/Containers/Container.ts +43 -4
  623. package/src/Cloudflare/Containers/ContainerApplication.ts +24 -18
  624. package/src/Cloudflare/Containers/ContainerBundle.ts +2 -4
  625. package/src/Cloudflare/Containers/ContainerPlatform.ts +3 -3
  626. package/src/Cloudflare/Containers/ContainerProvider.ts +50 -42
  627. package/src/Cloudflare/Containers/LocalContainerProvider.ts +11 -4
  628. package/src/Cloudflare/Containers/StartContainer.ts +316 -32
  629. package/src/Cloudflare/DNS/ReadDns.ts +1 -1
  630. package/src/Cloudflare/DNS/ReadWriteDns.ts +1 -1
  631. package/src/Cloudflare/DNS/WriteDns.ts +1 -1
  632. package/src/Cloudflare/Flagship/App.ts +1 -1
  633. package/src/Cloudflare/Images/Images.ts +1 -1
  634. package/src/Cloudflare/Local.ts +2 -0
  635. package/src/Cloudflare/Providers.ts +2 -0
  636. package/src/Cloudflare/Queues/Consumer.ts +21 -12
  637. package/src/Cloudflare/Queues/Queue.ts +1 -1
  638. package/src/Cloudflare/R2/Bucket.ts +2 -2
  639. package/src/Cloudflare/StateStore/Api.ts +6 -4
  640. package/src/Cloudflare/StateStore/State.ts +192 -20
  641. package/src/Cloudflare/Website/Vite.ts +29 -24
  642. package/src/Cloudflare/Workers/Binding.ts +1 -1
  643. package/src/Cloudflare/Workers/Browser.ts +1 -1
  644. package/src/Cloudflare/Workers/DurableObject.ts +54 -3
  645. package/src/Cloudflare/Workers/InferEnv.ts +47 -36
  646. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +54 -7
  647. package/src/Cloudflare/Workers/RpcDurableObject.ts +3 -3
  648. package/src/Cloudflare/Workers/RpcWorker.ts +4 -4
  649. package/src/Cloudflare/Workers/ScheduledEvents.ts +1 -1
  650. package/src/Cloudflare/Workers/VersionMetadata.ts +1 -1
  651. package/src/Cloudflare/Workers/Vite.ts +21 -40
  652. package/src/Cloudflare/Workers/Worker.ts +74 -13
  653. package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +30 -0
  654. package/src/Cloudflare/Workers/WorkerBinding.ts +5 -1
  655. package/src/Cloudflare/Workers/WorkerLoader.ts +1 -1
  656. package/src/Cloudflare/Workers/WorkerProvider.ts +470 -200
  657. package/src/Cloudflare/Workers/WorkerRuntimeContext.ts +1 -1
  658. package/src/Cloudflare/WorkersForPlatforms/DispatchNamespace.ts +44 -2
  659. package/src/Cloudflare/WorkersForPlatforms/Get.ts +87 -0
  660. package/src/Cloudflare/WorkersForPlatforms/GetBinding.ts +63 -0
  661. package/src/Cloudflare/WorkersForPlatforms/index.ts +2 -0
  662. package/src/Cloudflare/Workflows/Workflow.ts +207 -78
  663. package/src/Command/Build.ts +32 -1
  664. package/src/Docker/Container.ts +413 -0
  665. package/src/Docker/Docker.ts +564 -0
  666. package/src/Docker/Image.ts +265 -0
  667. package/src/Docker/Network.ts +178 -0
  668. package/src/Docker/Providers.ts +37 -0
  669. package/src/Docker/Registry.ts +63 -0
  670. package/src/Docker/RemoteImage.ts +215 -0
  671. package/src/Docker/Volume.ts +187 -0
  672. package/src/Docker/index.ts +8 -0
  673. package/src/Local/ProviderLayer.ts +2 -0
  674. package/src/Neon/Branch.ts +15 -1
  675. package/src/Neon/Project.ts +13 -0
  676. package/src/Plan.ts +3 -1
  677. package/src/Planetscale/Branch.ts +70 -0
  678. package/src/Planetscale/Postgres/PostgresBranch.ts +6 -0
  679. package/src/Planetscale/Postgres/PostgresRole.ts +11 -1
  680. package/src/Platform.ts +50 -12
  681. package/src/Provider.ts +1 -1
  682. package/src/Resource.ts +9 -3
  683. package/src/Rpc.ts +1 -1
  684. package/src/Server/Process.ts +82 -1
  685. package/src/Stack.ts +11 -3
  686. package/src/Tags.ts +12 -0
  687. package/src/Telemetry/Attributes.ts +9 -12
  688. package/src/Test/Bun.ts +2 -0
  689. package/src/Test/Core.ts +13 -8
  690. package/src/Test/Vitest.ts +1 -0
  691. package/src/Util/effect.ts +1 -1
  692. package/src/Util/proxy-chain.ts +1 -0
  693. package/lib/Bundle/Docker.d.ts +0 -75
  694. package/lib/Bundle/Docker.d.ts.map +0 -1
  695. package/lib/Bundle/Docker.js +0 -148
  696. package/lib/Bundle/Docker.js.map +0 -1
  697. package/src/Bundle/Docker.ts +0 -229
@@ -147,7 +147,7 @@ export const makeWorkerRuntimeContext = (id: string): WorkerRuntimeContext => {
147
147
  // layer the fetch path uses, then envelope-encodes the result so
148
148
  // `Effect.fail` round-trips as `RpcErrorEnvelope` and `Stream` as
149
149
  // `RpcStreamEnvelope` (consumers wrap the binding with
150
- // `toPromiseApi`/`bindWorker` to decode).
150
+ // `toRpcAsync`/`bindWorker` to decode).
151
151
 
152
152
  return {
153
153
  ...exports,
@@ -93,14 +93,56 @@ export type DispatchNamespace = Resource<
93
93
  * ```
94
94
  *
95
95
  * @section Uploading user Workers
96
- * @example Upload a customer script into the namespace
96
+ * @example Upload a customer Worker into the namespace
97
+ * A {@link Cloudflare.Worker} deploys into the namespace as a "user worker"
98
+ * (rather than as a routable account-level script) when its `namespace` prop is
99
+ * set. Reference the namespace by its `name` output so it deploys first.
97
100
  * ```typescript
98
- * const script = yield* Cloudflare.DispatchNamespaceScript("CustomerA", {
101
+ * const namespace = yield* Cloudflare.WorkersForPlatforms.DispatchNamespace("Customers", {});
102
+ *
103
+ * const customerA = yield* Cloudflare.Worker("CustomerA", {
99
104
  * namespace: namespace.name,
100
105
  * script: `export default { fetch() { return new Response("hi"); } }`,
101
106
  * });
102
107
  * ```
103
108
  *
109
+ * @section Dispatching from a platform Worker
110
+ * @example Effect-native binding via `Get`
111
+ * `Cloudflare.WorkersForPlatforms.Get(namespace)` binds the namespace and
112
+ * returns an Effect-native client; `get(name)` resolves a user Worker by script
113
+ * name. Provide {@link GetBinding} on the Worker's runtime layer.
114
+ * ```typescript
115
+ * const dispatch = yield* Cloudflare.WorkersForPlatforms.Get(namespace);
116
+ *
117
+ * return {
118
+ * fetch: Effect.gen(function* () {
119
+ * const request = yield* HttpServerRequest;
120
+ * const userWorker = yield* dispatch.get("CustomerA");
121
+ * return yield* Effect.promise(() => userWorker.fetch(request));
122
+ * }),
123
+ * };
124
+ * ```
125
+ *
126
+ * @example Async binding via `env` + `InferEnv`
127
+ * Passing the namespace on a Worker's `env` binds it as a native
128
+ * `dispatch_namespace` binding; `Cloudflare.InferEnv` types `env.DISPATCH` as
129
+ * the runtime `DispatchNamespace`, so the async handler calls `.get(name)`
130
+ * directly.
131
+ * ```typescript
132
+ * const platform = Cloudflare.Worker("Platform", {
133
+ * main: "./handler.ts",
134
+ * env: { DISPATCH: namespace },
135
+ * });
136
+ * type Env = Cloudflare.InferEnv<typeof platform>;
137
+ *
138
+ * // handler.ts
139
+ * export default {
140
+ * async fetch(request: Request, env: Env) {
141
+ * return env.DISPATCH.get("CustomerA").fetch(request);
142
+ * },
143
+ * };
144
+ * ```
145
+ *
104
146
  * @see https://developers.cloudflare.com/cloudflare-for-platforms/workers-for-platforms/
105
147
  */
106
148
  export const DispatchNamespace = Resource<DispatchNamespace>(TypeId);
@@ -0,0 +1,87 @@
1
+ /// <reference types="@cloudflare/workers-types" />
2
+
3
+ import * as Data from "effect/Data";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Binding from "../../Binding.ts";
6
+ import type { RuntimeContext } from "../../RuntimeContext.ts";
7
+ import type { DispatchNamespace as DispatchNamespaceResource } from "./DispatchNamespace.ts";
8
+
9
+ /**
10
+ * Bind a {@link DispatchNamespace} to a Worker and obtain the Effect-native
11
+ * dynamic-dispatch client (`get`).
12
+ *
13
+ * `Get` is a single identifier that is simultaneously the binding's Context
14
+ * tag, its type, and the callable —
15
+ * `yield* Cloudflare.WorkersForPlatforms.Get(namespace)`.
16
+ *
17
+ * Provide {@link GetBinding} on the Worker's runtime layer to resolve the
18
+ * underlying `dispatch_namespace` binding at request time.
19
+ *
20
+ * @binding
21
+ * @product Workers for Platforms
22
+ * @category Workers & Compute
23
+ *
24
+ * @section Dispatching to user Workers
25
+ * @example Dispatch a request to a customer Worker
26
+ * Bind the namespace during the Worker's init phase, then look up and forward
27
+ * to a user Worker from a request handler.
28
+ * ```typescript
29
+ * const dispatch = yield* Cloudflare.WorkersForPlatforms.Get(namespace);
30
+ *
31
+ * return {
32
+ * fetch: Effect.gen(function* () {
33
+ * const request = yield* HttpServerRequest;
34
+ * const userWorker = yield* dispatch.get("customer-a");
35
+ * return yield* Effect.promise(() => userWorker.fetch(request));
36
+ * }),
37
+ * };
38
+ * ```
39
+ *
40
+ * @see https://developers.cloudflare.com/cloudflare-for-platforms/workers-for-platforms/get-started/dynamic-dispatch/
41
+ */
42
+ export interface Get extends Binding.Service<
43
+ Get,
44
+ "Cloudflare.WorkersForPlatforms.Get",
45
+ (
46
+ namespace: DispatchNamespaceResource,
47
+ ) => Effect.Effect<DispatchNamespaceClient>
48
+ > {}
49
+
50
+ export const Get = Binding.Service<Get>("Cloudflare.WorkersForPlatforms.Get");
51
+
52
+ /** Error raised by dynamic-dispatch runtime operations. */
53
+ export class DispatchNamespaceError extends Data.TaggedError(
54
+ "DispatchNamespaceError",
55
+ )<{
56
+ /** Human-readable runtime error message. */
57
+ message: string;
58
+ /** Original error thrown by the Cloudflare runtime binding. */
59
+ cause: unknown;
60
+ }> {}
61
+
62
+ /**
63
+ * Effect-native client for a Workers for Platforms dispatch-namespace Worker
64
+ * binding.
65
+ *
66
+ * Wraps the runtime `DispatchNamespace` binding so the lookup returns an
67
+ * Effect tagged with {@link DispatchNamespaceError}. Use
68
+ * `Cloudflare.WorkersForPlatforms.Get(namespace)` inside a Worker's init
69
+ * phase.
70
+ */
71
+ export interface DispatchNamespaceClient {
72
+ /** Effect resolving to the raw dispatch-namespace runtime binding. */
73
+ raw: Effect.Effect<DispatchNamespace, never, RuntimeContext>;
74
+ /**
75
+ * Look up a user Worker in the dispatch namespace by script name and obtain
76
+ * a `Fetcher` to send it requests.
77
+ *
78
+ * @param name Name of the user Worker script.
79
+ * @param args Arguments passed to the user Worker script.
80
+ * @param options Options for the dynamic-dispatch invocation.
81
+ */
82
+ get(
83
+ name: string,
84
+ args?: { [key: string]: any },
85
+ options?: DynamicDispatchOptions,
86
+ ): Effect.Effect<Fetcher, DispatchNamespaceError, RuntimeContext>;
87
+ }
@@ -0,0 +1,63 @@
1
+ /// <reference types="@cloudflare/workers-types" />
2
+
3
+ import * as Effect from "effect/Effect";
4
+ import * as Layer from "effect/Layer";
5
+ import { Worker, WorkerEnvironment } from "../Workers/Worker.ts";
6
+ import type { DispatchNamespace as DispatchNamespaceResource } from "./DispatchNamespace.ts";
7
+ import {
8
+ type DispatchNamespaceClient,
9
+ DispatchNamespaceError,
10
+ Get,
11
+ } from "./Get.ts";
12
+
13
+ /**
14
+ * Implementation of the {@link Get} binding that uses a native
15
+ * `dispatch_namespace` Worker binding.
16
+ */
17
+ export const GetBinding = Layer.effect(
18
+ Get,
19
+ Effect.gen(function* () {
20
+ const env = yield* WorkerEnvironment;
21
+ const host = yield* Worker;
22
+
23
+ return Effect.fn(function* (namespace: DispatchNamespaceResource) {
24
+ if (!globalThis.__ALCHEMY_RUNTIME__) {
25
+ yield* host.bind`${namespace}`({
26
+ bindings: [
27
+ {
28
+ type: "dispatch_namespace",
29
+ name: namespace.LogicalId,
30
+ namespace: namespace.name,
31
+ },
32
+ ],
33
+ });
34
+ }
35
+
36
+ const raw = Effect.sync(
37
+ // Lazy — the WorkerEnvironment binding is not populated until runtime.
38
+ () => (env as Record<string, DispatchNamespace>)[namespace.LogicalId]!,
39
+ );
40
+
41
+ const self: DispatchNamespaceClient = {
42
+ raw,
43
+ get: (name, args, options) =>
44
+ raw.pipe(
45
+ Effect.flatMap((ns) =>
46
+ Effect.try({
47
+ try: () => ns.get(name, args, options),
48
+ catch: (error) =>
49
+ new DispatchNamespaceError({
50
+ message:
51
+ error instanceof Error
52
+ ? error.message
53
+ : "Unknown dispatch namespace runtime error",
54
+ cause: error,
55
+ }),
56
+ }),
57
+ ),
58
+ ),
59
+ };
60
+ return self;
61
+ });
62
+ }),
63
+ );
@@ -1 +1,3 @@
1
1
  export * from "./DispatchNamespace.ts";
2
+ export * from "./Get.ts";
3
+ export * from "./GetBinding.ts";
@@ -5,6 +5,7 @@ import * as Effect from "effect/Effect";
5
5
  import * as Stream from "effect/Stream";
6
6
  import { AlchemyContext } from "../../AlchemyContext.ts";
7
7
  import { ExecutionContext } from "../../ExecutionContext.ts";
8
+ import type { Input } from "../../Input.ts";
8
9
  import { ALCHEMY_PHASE } from "../../Phase.ts";
9
10
  import type { PlatformServices } from "../../Platform.ts";
10
11
  import * as Provider from "../../Provider.ts";
@@ -149,6 +150,52 @@ export const isWorkflowExport = (value: unknown): value is WorkflowExport =>
149
150
  "kind" in value &&
150
151
  (value as any).kind === "workflow";
151
152
 
153
+ /**
154
+ * Props for the reference (async) form of {@link Workflow}. Used when binding
155
+ * a Workflow class to a plain async Worker (one without an Effect runtime) via
156
+ * the Worker's `env`. Mirrors `DurableObjectProps`.
157
+ */
158
+ export interface WorkflowRefProps {
159
+ /**
160
+ * Name of the exported `WorkflowEntrypoint` class.
161
+ *
162
+ * @default name
163
+ */
164
+ className?: string;
165
+ /**
166
+ * Worker script that hosts the Workflow class. Omit this when the workflow
167
+ * is hosted by the Worker that declares the binding.
168
+ */
169
+ scriptName?: Input<string>;
170
+ }
171
+
172
+ /**
173
+ * A lightweight reference to a Workflow, produced by the props-only form of
174
+ * {@link Workflow} (`Workflow(name, { className })`). Carries just enough
175
+ * metadata to emit the `workflow` binding for an async Worker and to drive
176
+ * the `putWorkflow` lifecycle. Mirrors `DurableObjectLike`.
177
+ */
178
+ export interface WorkflowLike<Params = unknown> {
179
+ kind: TypeId;
180
+ name: string;
181
+ /** @internal phantom */
182
+ workflowName?: string;
183
+ /** @internal phantom */
184
+ className?: string;
185
+ /** @internal phantom */
186
+ scriptName?: Input<string>;
187
+ /** @internal phantom */
188
+ Params?: Params;
189
+ }
190
+
191
+ /**
192
+ * Type guard for the reference (async) form of a Workflow.
193
+ */
194
+ export const isWorkflowLike = (value: unknown): value is WorkflowLike =>
195
+ typeof value === "object" &&
196
+ value !== null &&
197
+ (value as { kind?: unknown }).kind === TypeId;
198
+
152
199
  /**
153
200
  * Type guard for workflow binding metadata in the Worker binding contract.
154
201
  */
@@ -204,6 +251,10 @@ export interface WorkflowClass extends Effect.Effect<
204
251
  new (_: never): WorkflowImpl<Input, Result>;
205
252
  };
206
253
  };
254
+ <Params = unknown>(
255
+ name: string,
256
+ props?: WorkflowRefProps,
257
+ ): WorkflowLike<Params>;
207
258
  <Input = unknown, Result = unknown, InitReq = never>(
208
259
  name: string,
209
260
  impl: Effect.Effect<WorkflowImpl<Input, Result>, ConfigError, InitReq>,
@@ -244,7 +295,7 @@ export class WorkflowScope extends Context.Service<
244
295
  * ```
245
296
  *
246
297
  * @resource
247
- * @product Workers
298
+ * @product Workflows
248
299
  * @category Workers & Compute
249
300
  *
250
301
  * @section Defining a Workflow
@@ -346,6 +397,70 @@ export class WorkflowScope extends Context.Service<
346
397
  * };
347
398
  * ```
348
399
  *
400
+ * @section Binding in an Async Worker
401
+ * When using an Async Worker (plain `async fetch` handler, no Effect
402
+ * runtime), declare Workflows in the `env` prop of the Worker resource.
403
+ * Pass a `Workflow` reference with a `className` matching the exported
404
+ * `WorkflowEntrypoint` subclass in your worker source file. If `className`
405
+ * is omitted, it defaults to the binding name. Use `Cloudflare.InferEnv`
406
+ * to get a fully typed `env` object that includes the workflow binding.
407
+ *
408
+ * @example Declaring a Workflow binding in the stack
409
+ * ```typescript
410
+ * // alchemy.run.ts
411
+ * export type WorkerEnv = Cloudflare.InferEnv<typeof Worker>;
412
+ *
413
+ * export const Worker = Cloudflare.Worker("Worker", {
414
+ * main: "./src/worker.ts",
415
+ * env: {
416
+ * MY_WORKFLOW: Cloudflare.Workflow<{ value: string }>("MyWorkflow", {
417
+ * className: "MyWorkflow",
418
+ * }),
419
+ * },
420
+ * });
421
+ * ```
422
+ *
423
+ * @example Using the Workflow from a plain async handler
424
+ * ```typescript
425
+ * // src/worker.ts
426
+ * import { WorkflowEntrypoint, type WorkflowEvent, type WorkflowStep } from "cloudflare:workers";
427
+ * import type { WorkerEnv } from "../alchemy.run.ts";
428
+ *
429
+ * export class MyWorkflow extends WorkflowEntrypoint<WorkerEnv, { value: string }> {
430
+ * async run(event: Readonly<WorkflowEvent<{ value: string }>>, step: WorkflowStep) {
431
+ * return await step.do("greet", async () => `Hello, ${event.payload.value}!`);
432
+ * }
433
+ * }
434
+ *
435
+ * export default {
436
+ * async fetch(request: Request, env: WorkerEnv) {
437
+ * const instance = await env.MY_WORKFLOW.create({ params: { value: "world" } });
438
+ * return Response.json({ instanceId: instance.id });
439
+ * },
440
+ * };
441
+ * ```
442
+ *
443
+ * @section Cross-Script Binding in an Async Worker
444
+ * Async Workers can also bind to a Workflow hosted by another Worker
445
+ * script. The host Worker declares and exports the `WorkflowEntrypoint`
446
+ * class. The consumer Worker declares a `Workflow` with `scriptName` set
447
+ * to the host Worker's script name. Cross-script references are bindings
448
+ * only — Alchemy does not drive `putWorkflow` for the foreign class, so
449
+ * deploy the host first.
450
+ *
451
+ * @example Consumer Worker binds to the host script
452
+ * ```typescript
453
+ * const consumer = yield* Cloudflare.Worker("Consumer", {
454
+ * main: "./src/consumer.ts",
455
+ * env: {
456
+ * MY_WORKFLOW: Cloudflare.Workflow("MyWorkflow", {
457
+ * className: "MyWorkflow",
458
+ * scriptName: host.workerName,
459
+ * }),
460
+ * },
461
+ * });
462
+ * ```
463
+ *
349
464
  * @section Testing Workflows
350
465
  * Workflows run asynchronously, so tests start an instance and
351
466
  * poll until it reaches a terminal status. A simple recipe with
@@ -381,91 +496,105 @@ export class WorkflowScope extends Context.Service<
381
496
  * ```
382
497
  */
383
498
  export const Workflow: WorkflowClass = taggedFunction(WorkflowScope, ((
384
- ...args: [] | [name: string, impl: Effect.Effect<WorkflowImpl<any, any>>]
385
- ) =>
386
- args.length === 0
387
- ? Workflow
388
- : effectClass(
389
- Effect.gen(function* () {
390
- const [name, impl] = args;
391
- const worker = yield* Worker;
392
-
393
- // Add the workflow binding to the Worker metadata
394
- yield* worker.bind`${name}`({
395
- bindings: [
396
- {
397
- type: "workflow",
398
- name,
399
- workflowName: name,
400
- className: name,
401
- },
402
- ],
403
- });
499
+ ...args:
500
+ | []
501
+ | [name: string, impl: Effect.Effect<WorkflowImpl<any, any>>]
502
+ | [name: string, props?: WorkflowRefProps]
503
+ ) => {
504
+ if (args.length === 0) {
505
+ return Workflow;
506
+ }
507
+ const [name, second] = args;
508
+ if (!Effect.isEffect(second)) {
509
+ // Props-only (async) reference form: returns a plain `WorkflowLike` that an
510
+ // async Worker binds via `env`. `WorkerAsyncBindings` emits the `workflow`
511
+ // binding and drives `putWorkflow` for locally-hosted workflows.
512
+ const props = second as WorkflowRefProps | undefined;
513
+ return {
514
+ kind: TypeId,
515
+ name,
516
+ workflowName: name,
517
+ className: props?.className ?? name,
518
+ scriptName: props?.scriptName,
519
+ } satisfies WorkflowLike;
520
+ }
521
+ const impl = second;
522
+ return effectClass(
523
+ Effect.gen(function* () {
524
+ const worker = yield* Worker;
404
525
 
405
- // Create the Workflow API resource (putWorkflow / deleteWorkflow)
406
- yield* WorkflowResource(name, {
526
+ // Add the workflow binding to the Worker metadata
527
+ yield* worker.bind`${name}`({
528
+ bindings: [
529
+ {
530
+ type: "workflow",
531
+ name,
407
532
  workflowName: name,
408
533
  className: name,
409
- scriptName: worker.workerName,
410
- });
411
-
412
- const services =
413
- yield* Effect.context<Effect.Services<typeof impl>>();
414
-
415
- const binding = yield* Effect.all([
416
- WorkerEnvironment,
417
- ALCHEMY_PHASE,
418
- ]).pipe(
419
- Effect.flatMap(([env, phase]) => {
420
- if (env === undefined || phase === "plan") {
421
- return Effect.succeed(undefined as any);
422
- }
423
- const wf = env[name];
424
- if (!wf) {
425
- return Effect.die(
426
- new Error(`Workflow '${name}' not found in env`),
427
- );
428
- }
429
- return Effect.succeed(wf);
430
- }),
431
- );
534
+ },
535
+ ],
536
+ });
432
537
 
433
- const self: WorkflowHandle<any, any> = {
434
- Type: TypeId,
435
- name,
436
- create: (input: unknown) =>
437
- Effect.tryPromise(() => binding.create({ params: input })).pipe(
438
- Effect.map(wrapInstance),
439
- Effect.orDie,
440
- ),
441
- get: (instanceId: string) =>
442
- Effect.tryPromise(() => binding.get(instanceId)).pipe(
443
- Effect.map(wrapInstance),
444
- Effect.orDie,
445
- ),
446
- };
538
+ // Create the Workflow API resource (putWorkflow / deleteWorkflow)
539
+ yield* WorkflowResource(name, {
540
+ workflowName: name,
541
+ className: name,
542
+ scriptName: worker.workerName,
543
+ });
447
544
 
448
- const fn = yield* impl.pipe(
449
- Effect.provideService(WorkflowScope, self as any),
450
- );
545
+ const services = yield* Effect.context<Effect.Services<typeof impl>>();
451
546
 
452
- yield* worker.export(name, {
453
- kind: "workflow",
454
- make: (env: unknown) =>
455
- Effect.succeed(((input: unknown) =>
456
- fn(input).pipe(
457
- Effect.provideService(
458
- WorkerEnvironment,
459
- env as Record<string, any>,
460
- ),
461
- )) as WorkflowImpl<any, any>).pipe(
462
- Effect.provideContext(services),
547
+ const binding = yield* Effect.all([
548
+ WorkerEnvironment,
549
+ ALCHEMY_PHASE,
550
+ ]).pipe(
551
+ Effect.flatMap(([env, phase]) => {
552
+ if (env === undefined || phase === "plan") {
553
+ return Effect.succeed(undefined as any);
554
+ }
555
+ const wf = env[name];
556
+ if (!wf) {
557
+ return Effect.die(new Error(`Workflow '${name}' not found in env`));
558
+ }
559
+ return Effect.succeed(wf);
560
+ }),
561
+ );
562
+
563
+ const self: WorkflowHandle<any, any> = {
564
+ Type: TypeId,
565
+ name,
566
+ create: (input: unknown) =>
567
+ Effect.tryPromise(() => binding.create({ params: input })).pipe(
568
+ Effect.map(wrapInstance),
569
+ Effect.orDie,
570
+ ),
571
+ get: (instanceId: string) =>
572
+ Effect.tryPromise(() => binding.get(instanceId)).pipe(
573
+ Effect.map(wrapInstance),
574
+ Effect.orDie,
575
+ ),
576
+ };
577
+
578
+ const fn = yield* impl.pipe(
579
+ Effect.provideService(WorkflowScope, self as any),
580
+ );
581
+
582
+ yield* worker.export(name, {
583
+ kind: "workflow",
584
+ make: (env: unknown) =>
585
+ Effect.succeed(((input: unknown) =>
586
+ fn(input).pipe(
587
+ Effect.provideService(
588
+ WorkerEnvironment,
589
+ env as Record<string, any>,
463
590
  ),
464
- } satisfies WorkflowExport);
591
+ )) as WorkflowImpl<any, any>).pipe(Effect.provideContext(services)),
592
+ } satisfies WorkflowExport);
465
593
 
466
- return self;
467
- }),
468
- )) as any);
594
+ return self;
595
+ }),
596
+ );
597
+ }) as any);
469
598
 
470
599
  // ---------------------------------------------------------------------------
471
600
  // WorkflowResource -- manages the Cloudflare Workflows API lifecycle
@@ -2,9 +2,11 @@ import * as Effect from "effect/Effect";
2
2
  import * as Equal from "effect/Equal";
3
3
  import * as FileSystem from "effect/FileSystem";
4
4
  import * as Path from "effect/Path";
5
+ import * as Redacted from "effect/Redacted";
5
6
  import { havePropsChanged, isResolved } from "../Diff.ts";
6
7
  import * as Provider from "../Provider.ts";
7
8
  import { Resource } from "../Resource.ts";
9
+ import { sha256Object } from "../Util/sha256.ts";
8
10
  import {
9
11
  CommandError,
10
12
  CommandExecutor,
@@ -109,6 +111,21 @@ export interface Build extends Resource<
109
111
  */
110
112
  export const Build = Resource<Build>("Command.Build");
111
113
 
114
+ /**
115
+ * Resolves `Redacted` env values to their plain string so that a change in a
116
+ * secret's value still busts the memo hash (the hash is one-way, so the secret
117
+ * itself is never recoverable from state).
118
+ */
119
+ const resolveEnv = (env: CommandProps["env"]) =>
120
+ env
121
+ ? Object.fromEntries(
122
+ Object.entries(env).map(([key, value]) => [
123
+ key,
124
+ Redacted.isRedacted(value) ? Redacted.value(value) : value,
125
+ ]),
126
+ )
127
+ : undefined;
128
+
112
129
  export const BuildProvider = () =>
113
130
  Provider.effect(
114
131
  Build,
@@ -135,10 +152,24 @@ export const BuildProvider = () =>
135
152
  ? { input: undefined, output: undefined }
136
153
  : yield* Effect.all(
137
154
  {
155
+ // Fold the resolved command + env into the input hash so
156
+ // two builds that share the same source tree + `outdir`
157
+ // but differ in their command or environment (e.g.
158
+ // per-stage builds baking different `EXPO_PUBLIC_*` /
159
+ // API ids) are never judged reusable. Without this the
160
+ // second build silently reuses the first's stale output.
138
161
  input: hashDirectory({
139
162
  cwd,
140
163
  memo: props.memo === true ? {} : props.memo,
141
- }),
164
+ }).pipe(
165
+ Effect.flatMap((files) =>
166
+ sha256Object({
167
+ files,
168
+ command: props.command,
169
+ env: resolveEnv(props.env),
170
+ }),
171
+ ),
172
+ ),
142
173
  output: hashDirectory({
143
174
  cwd: outdir,
144
175
  memo: {