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
@@ -1,4 +1,5 @@
1
1
  import * as workers from "@distilled.cloud/cloudflare/workers";
2
+ import * as wfp from "@distilled.cloud/cloudflare/workers-for-platforms";
2
3
  import * as zones from "@distilled.cloud/cloudflare/zones";
3
4
  import * as Data from "effect/Data";
4
5
  import * as Effect from "effect/Effect";
@@ -11,7 +12,6 @@ import * as crypto from "node:crypto";
11
12
  import { Unowned } from "../../AdoptPolicy.js";
12
13
  import * as Artifacts from "../../Artifacts.js";
13
14
  import { hashDirectory } from "../../Command/Memo.js";
14
- import * as Bundle from "../../Bundle/Bundle.js";
15
15
  import { isResolved } from "../../Diff.js";
16
16
  import * as ProviderLayer from "../../Local/ProviderLayer.js";
17
17
  import * as Provider from "../../Provider.js";
@@ -30,6 +30,95 @@ import { isWorkerLoader } from "./WorkerLoader.js";
30
30
  import { createWorkerName } from "./WorkerName.js";
31
31
  class MissingDurableObjects extends Data.TaggedError("MissingDurableObjects") {
32
32
  }
33
+ /**
34
+ * Resolve the Workers for Platforms dispatch-namespace *name* from a resolved
35
+ * `namespace` prop or persisted attribute. The engine resolves a passed
36
+ * {@link DispatchNamespace} resource to its Attributes object (see
37
+ * `Input.Resolve` / Plan.ts), so the value is either the namespace name
38
+ * string, that attributes object, or `undefined` for a regular Worker.
39
+ *
40
+ * @internal
41
+ */
42
+ export const resolveNamespaceName = (namespace) => {
43
+ if (namespace == null)
44
+ return undefined;
45
+ if (typeof namespace === "string")
46
+ return namespace;
47
+ return namespace.name;
48
+ };
49
+ // Workers for Platforms "user workers" live inside a dispatch namespace and
50
+ // use a parallel family of script endpoints (`/workers/dispatch/namespaces/
51
+ // :namespace/scripts/...`). The request/response shapes are identical to the
52
+ // account-level Workers API for everything the provider touches, so these
53
+ // helpers route by `dispatchNamespace` and the call sites stay agnostic.
54
+ /**
55
+ * Read a script's combined settings, routing to the dispatch-namespace
56
+ * endpoint when `dispatchNamespace` is set. The two response shapes are
57
+ * structurally identical for the fields the provider consumes (`bindings`,
58
+ * `tags`, `logpush`), so the WFP response is surfaced as the workers shape.
59
+ *
60
+ * @internal
61
+ */
62
+ const getScriptSettings = (accountId, scriptName, dispatchNamespace) =>
63
+ // `Effect.gen` (rather than a ternary) so the two branches unify into a
64
+ // single `Effect<Settings, WorkersErr | WfpErr>` instead of a *union* of
65
+ // Effects, which `.pipe`/`catchTag` at the call sites can't consume.
66
+ Effect.gen(function* () {
67
+ if (dispatchNamespace) {
68
+ const settings = yield* wfp.getDispatchNamespaceScriptSetting({
69
+ accountId,
70
+ dispatchNamespace,
71
+ scriptName,
72
+ });
73
+ // The dispatch-namespace settings response is structurally identical to
74
+ // the account-level one for the fields the provider reads.
75
+ return settings;
76
+ }
77
+ return yield* workers.getScriptScriptAndVersionSetting({
78
+ accountId,
79
+ scriptName,
80
+ });
81
+ });
82
+ /**
83
+ * Upsert a Worker script, routing to the dispatch-namespace endpoint when
84
+ * `dispatchNamespace` is set. The metadata/files contract is identical.
85
+ *
86
+ * @internal
87
+ */
88
+ const putWorkerScript = (params) => Effect.gen(function* () {
89
+ if (params.dispatchNamespace) {
90
+ return yield* wfp.putDispatchNamespaceScript({
91
+ accountId: params.accountId,
92
+ dispatchNamespace: params.dispatchNamespace,
93
+ scriptName: params.scriptName,
94
+ metadata: params.metadata,
95
+ files: params.files,
96
+ });
97
+ }
98
+ return yield* workers.putScript({
99
+ accountId: params.accountId,
100
+ scriptName: params.scriptName,
101
+ metadata: params.metadata,
102
+ files: params.files,
103
+ });
104
+ });
105
+ /**
106
+ * Delete a Worker script, routing to the dispatch-namespace endpoint when
107
+ * `dispatchNamespace` is set.
108
+ *
109
+ * @internal
110
+ */
111
+ const deleteWorkerScript = (accountId, scriptName, dispatchNamespace) => Effect.gen(function* () {
112
+ if (dispatchNamespace) {
113
+ return yield* wfp.deleteDispatchNamespaceScript({
114
+ accountId,
115
+ dispatchNamespace,
116
+ scriptName,
117
+ force: true,
118
+ });
119
+ }
120
+ return yield* workers.deleteScript({ accountId, scriptName, force: true });
121
+ });
33
122
  /**
34
123
  * Normalize a Worker's persisted `domains` state to `https://<hostname>`
35
124
  * strings. Alchemy <= beta.44 stored each custom domain as a
@@ -276,14 +365,9 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
276
365
  binding.scriptName === workerName)
277
366
  ? [binding.className]
278
367
  : []) ?? []));
279
- const getWorkerSettingsWithDurableObjects = Effect.fn(function* (scriptName, expectedClassNames) {
368
+ const getWorkerSettingsWithDurableObjects = Effect.fn(function* (scriptName, expectedClassNames, dispatchNamespace) {
280
369
  const { accountId } = yield* yield* CloudflareEnvironment;
281
- return yield* workers
282
- .getScriptScriptAndVersionSetting({
283
- accountId,
284
- scriptName,
285
- })
286
- .pipe(Effect.map((settings) => {
370
+ return yield* getScriptSettings(accountId, scriptName, dispatchNamespace).pipe(Effect.map((settings) => {
287
371
  const namespaces = getDurableObjects(settings.bindings);
288
372
  const missing = expectedClassNames.filter((className) => !namespaces[className]);
289
373
  if (missing.length > 0) {
@@ -306,7 +390,9 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
306
390
  // propagates. All three are eventual-consistency blips.
307
391
  while: (error) => error._tag === "MissingDurableObjects" ||
308
392
  error._tag === "WorkerHasNoVersions" ||
309
- error._tag === "WorkerNotFound",
393
+ error._tag === "WorkerNotFound" ||
394
+ error._tag === "DispatchNamespaceScriptNotFound" ||
395
+ error._tag === "DispatchNamespaceNotFound",
310
396
  schedule: Schedule.exponential(100).pipe(Schedule.both(Schedule.recurs(20))),
311
397
  }));
312
398
  });
@@ -348,7 +434,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
348
434
  // (~0.5s), which is only needed for vite-based workers at build time —
349
435
  // not for every Worker definition at module-load time.
350
436
  const Vite = yield* Effect.promise(() => import("./Vite.js"));
351
- const { assetsDirectory, serverBundle } = yield* Vite.viteBuild(props.vite?.rootDir, Object.fromEntries((yield* Effect.all(Object.entries(props.env ?? {}).map(Effect.fn(function* ([key, value]) {
437
+ const { clientDirectory, serverBundle } = yield* Vite.viteBuild(props.vite?.rootDir, Object.fromEntries((yield* Effect.all(Object.entries(props.env ?? {}).map(Effect.fn(function* ([key, value]) {
352
438
  return [
353
439
  key,
354
440
  typeof value === "string"
@@ -369,23 +455,22 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
369
455
  })))).filter(([_, value]) => value !== undefined)), {
370
456
  compatibilityDate: compatibility.date,
371
457
  compatibilityFlags: compatibility.flags,
458
+ viteEnvironments: props.vite?.viteEnvironments,
372
459
  });
373
- if (!assetsDirectory && !serverBundle) {
374
- return yield* Effect.die(new Error("Vite build produced neither server nor client output"));
375
- }
376
460
  const [assets, bundle] = yield* Effect.all([
377
- assetsDirectory
461
+ clientDirectory
378
462
  ? readAssets({
379
463
  ...(props.assets && typeof props.assets !== "string"
380
464
  ? props.assets
381
465
  : undefined),
382
- directory: assetsDirectory,
466
+ directory: path.resolve(props.vite?.rootDir ?? process.cwd(), clientDirectory),
383
467
  })
384
- : Effect.succeed(undefined),
385
- serverBundle
386
- ? Bundle.bundleOutputFromRolldownOutputBundle(serverBundle)
387
- : Effect.succeed(undefined),
468
+ : Effect.undefined,
469
+ serverBundle,
388
470
  ], { concurrency: "unbounded" });
471
+ if (!assets && !bundle) {
472
+ return yield* Effect.die(new Error("Vite build produced neither assets nor server output"));
473
+ }
389
474
  return { assets, bundle };
390
475
  });
391
476
  const prepareAssetsAndBundle = (id, props, opts = {}) => Effect.gen(function* () {
@@ -451,6 +536,11 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
451
536
  const putWorker = Effect.fn(function* (id, news, bindings, olds, output, session, existingSettings) {
452
537
  const { accountId } = yield* yield* CloudflareEnvironment;
453
538
  const name = yield* createWorkerName(id, news.name);
539
+ // When set, this Worker is a Workers for Platforms "user worker"
540
+ // uploaded into a dispatch namespace rather than a routable
541
+ // account-level script. The put/settings calls switch endpoints and
542
+ // the subdomain / custom-domain / cron reconciliation is skipped.
543
+ const dispatchNamespace = resolveNamespaceName(news?.namespace);
454
544
  yield* Effect.logInfo(`Cloudflare Worker ${olds ? "update" : "create"}: preparing bundle for ${name}`);
455
545
  // If the caller handed us a precomputed asset hash that matches
456
546
  // what we previously stored, we can skip walking the directory
@@ -623,7 +713,24 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
623
713
  const newSqliteClasses = [];
624
714
  const renamedClasses = [];
625
715
  for (const binding of currentDoBindings) {
626
- const previousClassName = oldDoClassNameByLogicalId[binding.logicalId];
716
+ let previousClassName = oldDoClassNameByLogicalId[binding.logicalId];
717
+ if (!previousClassName) {
718
+ // No `alchemy:do:` tag maps this logical id to a class — the
719
+ // worker was created outside Alchemy (raw API / Wrangler) or
720
+ // before these tags existed. Fall back to matching the observed
721
+ // cloud binding by binding name so adoption reuses the existing
722
+ // class instead of asking Cloudflare to create one that already
723
+ // exists (which fails the migration). This is the "first deploy
724
+ // must match the existing class name" path; once we write the
725
+ // `alchemy:do:` tag, subsequent renames are driven by logical id.
726
+ const observed = oldBindings.find((old) => old.type === "durable_object_namespace" &&
727
+ "className" in old &&
728
+ old.className &&
729
+ old.name === binding.bindingName);
730
+ if (observed && "className" in observed && observed.className) {
731
+ previousClassName = observed.className;
732
+ }
733
+ }
627
734
  if (!previousClassName) {
628
735
  // Default all new Durable Object classes to SQLite. Cloudflare
629
736
  // recommends SQLite for new namespaces, and container-backed
@@ -695,14 +802,13 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
695
802
  tailConsumers: undefined,
696
803
  usageModel: undefined,
697
804
  };
698
- const worker = yield* workers
699
- .putScript({
805
+ const worker = yield* putWorkerScript({
700
806
  accountId,
701
807
  scriptName: name,
808
+ dispatchNamespace,
702
809
  metadata,
703
810
  files: bundle.files,
704
- })
705
- .pipe(Effect.catch((err) => {
811
+ }).pipe(Effect.catch((err) => {
706
812
  // When adopting a Worker managed by Wrangler (or after a previous
707
813
  // deploy with mismatched migrations), the old_tag precondition
708
814
  // fails. The only way to discover the actual tag is through the
@@ -713,9 +819,10 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
713
819
  : err);
714
820
  const expectedTag = msg.match(/when expected tag is ['"]?([^'"]+)['"]?/)?.[1];
715
821
  if (expectedTag) {
716
- return workers.putScript({
822
+ return putWorkerScript({
717
823
  accountId,
718
824
  scriptName: name,
825
+ dispatchNamespace,
719
826
  metadata: {
720
827
  ...metadata,
721
828
  migrations: {
@@ -727,9 +834,28 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
727
834
  files: bundle.files,
728
835
  });
729
836
  }
837
+ // @effect-diagnostics-next-line anyUnknownInErrorContext:off
730
838
  return Effect.fail(err);
731
839
  }));
732
- const { settings, durableObjectNamespaces } = yield* getWorkerSettingsWithDurableObjects(name, expectedDurableObjectClassNames);
840
+ const { settings, durableObjectNamespaces } = yield* getWorkerSettingsWithDurableObjects(name, expectedDurableObjectClassNames, dispatchNamespace);
841
+ // Workers for Platforms user workers are invoked via dynamic dispatch,
842
+ // never routed directly — they have no workers.dev subdomain, custom
843
+ // domains, or cron triggers. Skip all of that reconciliation.
844
+ if (dispatchNamespace) {
845
+ return {
846
+ workerId: worker.id ?? name,
847
+ workerName: name,
848
+ namespace: dispatchNamespace,
849
+ logpush: worker.logpush ?? undefined,
850
+ url: undefined,
851
+ tags: settings.tags ?? metadata.tags,
852
+ durableObjectNamespaces,
853
+ accountId,
854
+ domains: [],
855
+ crons: [],
856
+ hash,
857
+ };
858
+ }
733
859
  // Reconcile workers.dev subdomain against observed cloud state.
734
860
  // We can't diff `news.url` against `olds.url` here because both
735
861
  // default to `undefined` (meaning "enable") — that comparison
@@ -782,6 +908,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
782
908
  return {
783
909
  workerId: worker.id ?? name,
784
910
  workerName: name,
911
+ namespace: undefined,
785
912
  logpush: worker.logpush ?? undefined,
786
913
  url: domains[0],
787
914
  tags: settings.tags ?? metadata.tags,
@@ -879,6 +1006,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
879
1006
  accountId,
880
1007
  workerId: script.id,
881
1008
  workerName: script.id,
1009
+ namespace: undefined,
882
1010
  logpush: script.logpush ?? undefined,
883
1011
  url: undefined,
884
1012
  tags: script.tags ?? undefined,
@@ -896,6 +1024,14 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
896
1024
  if ((output?.accountId ?? accountId) !== accountId) {
897
1025
  return { action: "replace" };
898
1026
  }
1027
+ // An account-level script and a dispatch-namespace ("user worker")
1028
+ // script are distinct cloud resources; moving a Worker into, out of,
1029
+ // or between namespaces requires a replacement.
1030
+ const newNamespace = resolveNamespaceName(news.namespace);
1031
+ const oldNamespace = output?.namespace ?? resolveNamespaceName(olds?.namespace);
1032
+ if (newNamespace !== oldNamespace) {
1033
+ return { action: "replace" };
1034
+ }
899
1035
  const workerName = yield* createWorkerName(id, news.name);
900
1036
  const oldWorkerName = output?.workerName
901
1037
  ? output.workerName
@@ -988,6 +1124,30 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
988
1124
  precreate: Effect.fn(function* ({ id, news, session }) {
989
1125
  const { accountId } = yield* yield* CloudflareEnvironment;
990
1126
  const name = yield* createWorkerName(id, news.name);
1127
+ // A Workers for Platforms user worker can't be pre-created: precreate
1128
+ // runs on raw, *unresolved* props (so resources in a dependency cycle
1129
+ // can signal early), meaning a `namespace` that references the
1130
+ // namespace resource is still an unresolved Output here, and the
1131
+ // namespace itself may not be deployed yet. There's also nothing to
1132
+ // pre-create — a user worker is dispatched to by name, never bound to
1133
+ // circularly. Return a stub; `reconcile` performs the real upload
1134
+ // once props resolve and the namespace exists.
1135
+ if (news.namespace != null) {
1136
+ yield* Effect.logInfo(`Cloudflare Worker precreate: skipping stub for dispatch-namespace worker ${name}`);
1137
+ return {
1138
+ workerId: name,
1139
+ workerName: name,
1140
+ namespace: typeof news.namespace === "string" ? news.namespace : undefined,
1141
+ logpush: undefined,
1142
+ url: undefined,
1143
+ tags: undefined,
1144
+ durableObjectNamespaces: {},
1145
+ accountId,
1146
+ domains: [],
1147
+ crons: [],
1148
+ };
1149
+ }
1150
+ const dispatchNamespace = resolveNamespaceName(news.namespace);
991
1151
  const exportMap = news.exports ?? {};
992
1152
  const durableObjects = Object.keys(exportMap)
993
1153
  .filter((logicalId) => isDurableObjectExport(exportMap[logicalId]))
@@ -1005,16 +1165,14 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
1005
1165
  ]));
1006
1166
  yield* Effect.logInfo(`Cloudflare Worker precreate: starting ${name}`);
1007
1167
  yield* Effect.logInfo(`Cloudflare Worker precreate: durable objects ${JSON.stringify(durableObjects)}`);
1008
- const existingSettings = yield* workers
1009
- .getScriptScriptAndVersionSetting({
1010
- accountId,
1011
- scriptName: name,
1012
- })
1013
- .pipe(
1168
+ const existingSettings = yield* getScriptSettings(accountId, name, dispatchNamespace).pipe(
1014
1169
  // A freshly pre-created stub can briefly report "has no
1015
1170
  // versions" before its first version registers — treat it the
1016
- // same as a missing worker (nothing to adopt yet).
1017
- Effect.catchTag("WorkerNotFound", () => Effect.succeed(undefined)), Effect.catchTag("WorkerHasNoVersions", () => Effect.succeed(undefined)));
1171
+ // same as a missing worker (nothing to adopt yet). For a user
1172
+ // worker the dispatch-namespace endpoints report a missing
1173
+ // script as `DispatchNamespaceScriptNotFound` (and a missing
1174
+ // namespace as `DispatchNamespaceNotFound`).
1175
+ Effect.catchTag("WorkerNotFound", () => Effect.succeed(undefined)), Effect.catchTag("WorkerHasNoVersions", () => Effect.succeed(undefined)), Effect.catchTag("DispatchNamespaceScriptNotFound", () => Effect.succeed(undefined)), Effect.catchTag("DispatchNamespaceNotFound", () => Effect.succeed(undefined)));
1018
1176
  let durableObjectNamespaces = getDurableObjects(existingSettings?.bindings);
1019
1177
  if (existingSettings) {
1020
1178
  // Engine has already cleared this resource for write via
@@ -1028,10 +1186,10 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
1028
1186
  const placeholderScript = `${doClasses.length > 0 ? 'import { DurableObject } from "cloudflare:workers";\n\n' : ""}export default { fetch() { return new Response("Alchemy worker is being deployed...") } };\n${doClasses
1029
1187
  .map((className) => `export class ${className} extends DurableObject {}`)
1030
1188
  .join("\n")}`;
1031
- yield* workers
1032
- .putScript({
1189
+ yield* putWorkerScript({
1033
1190
  accountId,
1034
1191
  scriptName: name,
1192
+ dispatchNamespace,
1035
1193
  metadata: {
1036
1194
  mainModule,
1037
1195
  bindings: doClasses.length > 0
@@ -1068,8 +1226,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
1068
1226
  type: "application/javascript+module",
1069
1227
  }),
1070
1228
  ],
1071
- })
1072
- .pipe(
1229
+ }).pipe(
1073
1230
  // Cloudflare's PUT /workers/scripts/{name} intermittently
1074
1231
  // returns code 10002 / "An unknown error has occurred" on the
1075
1232
  // first put for a fresh worker name. Surfaced as the shared
@@ -1084,16 +1241,17 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
1084
1241
  }));
1085
1242
  if (doClasses.length > 0) {
1086
1243
  ({ durableObjectNamespaces } =
1087
- yield* getWorkerSettingsWithDurableObjects(name, doClasses));
1244
+ yield* getWorkerSettingsWithDurableObjects(name, doClasses, dispatchNamespace));
1088
1245
  }
1089
1246
  }
1090
1247
  if (existingSettings && doClasses.length > 0) {
1091
1248
  ({ durableObjectNamespaces } =
1092
- yield* getWorkerSettingsWithDurableObjects(name, doClasses));
1249
+ yield* getWorkerSettingsWithDurableObjects(name, doClasses, dispatchNamespace));
1093
1250
  }
1094
1251
  return {
1095
1252
  workerId: name,
1096
1253
  workerName: name,
1254
+ namespace: dispatchNamespace,
1097
1255
  logpush: existingSettings?.logpush ?? undefined,
1098
1256
  url: undefined,
1099
1257
  tags: existingSettings?.tags ?? tags,
@@ -1106,7 +1264,30 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
1106
1264
  read: Effect.fn(function* ({ id, output, olds }) {
1107
1265
  const { accountId } = yield* yield* CloudflareEnvironment;
1108
1266
  const workerName = output?.workerName ?? (yield* createWorkerName(id, olds?.name));
1267
+ const dispatchNamespace = output?.namespace ?? resolveNamespaceName(olds?.namespace);
1109
1268
  yield* Effect.logInfo(`Cloudflare Worker read: checking ${workerName}`);
1269
+ // Workers for Platforms user workers have no subdomain, custom
1270
+ // domains, or cron triggers — read only the script settings from
1271
+ // the dispatch-namespace endpoint.
1272
+ if (dispatchNamespace) {
1273
+ const settings = yield* getScriptSettings(accountId, workerName, dispatchNamespace);
1274
+ yield* Effect.logInfo(`Cloudflare Worker read: found ${workerName} in dispatch namespace ${dispatchNamespace}`);
1275
+ const attrs = {
1276
+ accountId,
1277
+ workerId: workerName,
1278
+ workerName,
1279
+ namespace: dispatchNamespace,
1280
+ logpush: settings.logpush ?? undefined,
1281
+ url: undefined,
1282
+ tags: settings.tags ?? undefined,
1283
+ durableObjectNamespaces: getDurableObjects(settings.bindings),
1284
+ domains: [],
1285
+ crons: [],
1286
+ };
1287
+ return hasAlchemyWorkerTags(id, settings.tags ?? [])
1288
+ ? attrs
1289
+ : Unowned(attrs);
1290
+ }
1110
1291
  // We deliberately don't call `listScripts({ accountId })` here:
1111
1292
  // it pulls every Worker on the account back through a strict
1112
1293
  // schema decode, and a single existing Worker the schema doesn't
@@ -1156,6 +1337,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
1156
1337
  accountId,
1157
1338
  workerId: workerName,
1158
1339
  workerName,
1340
+ namespace: undefined,
1159
1341
  logpush: settings.logpush ?? undefined,
1160
1342
  url: domains[0],
1161
1343
  tags: settings.tags ?? undefined,
@@ -1175,7 +1357,9 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
1175
1357
  }, (effect) => effect.pipe(
1176
1358
  // A worker that exists but hasn't registered a version yet reads
1177
1359
  // as "not deployed" — fall through to (re)create like NotFound.
1178
- Effect.catchTag("WorkerNotFound", () => Effect.succeed(undefined)), Effect.catchTag("WorkerHasNoVersions", () => Effect.succeed(undefined)))),
1360
+ // The dispatch-namespace endpoints report the same conditions as
1361
+ // `DispatchNamespaceScriptNotFound` / `DispatchNamespaceNotFound`.
1362
+ Effect.catchTag("WorkerNotFound", () => Effect.succeed(undefined)), Effect.catchTag("WorkerHasNoVersions", () => Effect.succeed(undefined)), Effect.catchTag("DispatchNamespaceScriptNotFound", () => Effect.succeed(undefined)), Effect.catchTag("DispatchNamespaceNotFound", () => Effect.succeed(undefined)))),
1179
1363
  reconcile: Effect.fn(function* ({ id, news, olds, bindings, output, session, }) {
1180
1364
  const { accountId } = yield* yield* CloudflareEnvironment;
1181
1365
  const name = output?.workerName ?? (yield* createWorkerName(id, news.name));
@@ -1185,28 +1369,35 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
1185
1369
  }));
1186
1370
  yield* Effect.logInfo(`Cloudflare Worker reconcile: starting ${name}`);
1187
1371
  yield* Effect.logInfo(`Cloudflare Worker reconcile: durable objects ${JSON.stringify(durableObjects)}`);
1372
+ const dispatchNamespace = resolveNamespaceName(news.namespace);
1188
1373
  // Observe — fetch the script's current settings if it already exists.
1189
1374
  // `putWorker` is a true upsert against the Cloudflare API; the
1190
1375
  // existing settings inform asset/migration decisions and let the
1191
1376
  // reconciler converge whether the worker is brand-new, adopted, or
1192
1377
  // an in-place update.
1193
- const existingSettings = yield* workers
1194
- .getScriptScriptAndVersionSetting({
1195
- accountId,
1196
- scriptName: name,
1197
- })
1198
- .pipe(
1378
+ const existingSettings = yield* getScriptSettings(accountId, name, dispatchNamespace).pipe(
1199
1379
  // After a pre-create stub (or under a busy account right after
1200
1380
  // the first upload) the settings read can race the script
1201
1381
  // registry and 404 with "has no versions". Treat it as "no
1202
1382
  // existing settings" so reconcile proceeds to upload/converge.
1203
- Effect.catchTag("WorkerNotFound", () => Effect.succeed(undefined)), Effect.catchTag("WorkerHasNoVersions", () => Effect.succeed(undefined)));
1383
+ // The dispatch-namespace endpoints raise
1384
+ // `DispatchNamespaceScriptNotFound` / `DispatchNamespaceNotFound`.
1385
+ Effect.catchTag("WorkerNotFound", () => Effect.succeed(undefined)), Effect.catchTag("WorkerHasNoVersions", () => Effect.succeed(undefined)), Effect.catchTag("DispatchNamespaceScriptNotFound", () => Effect.succeed(undefined)), Effect.catchTag("DispatchNamespaceNotFound", () => Effect.succeed(undefined)));
1204
1386
  yield* Effect.logInfo(`Cloudflare Worker reconcile: existing durable object tags ${JSON.stringify((existingSettings?.tags ?? []).filter((tag) => tag.startsWith("alchemy:do:")))}`);
1205
1387
  yield* Effect.logInfo(`Cloudflare Worker reconcile: previous durable object tags ${JSON.stringify((output?.tags ?? []).filter((tag) => tag.startsWith("alchemy:do:")))}`);
1206
1388
  return yield* putWorker(id, news, bindings, olds, output, session, existingSettings);
1207
1389
  }),
1208
1390
  delete: Effect.fn(function* ({ output }) {
1209
1391
  yield* Effect.logInfo(`Cloudflare Worker delete: deleting ${output.workerName}`);
1392
+ // Workers for Platforms user workers have no custom domains; delete
1393
+ // the script straight out of its dispatch namespace.
1394
+ if (output.namespace) {
1395
+ yield* deleteWorkerScript(output.accountId, output.workerName, output.namespace).pipe(Effect.catchTag([
1396
+ "DispatchNamespaceScriptNotFound",
1397
+ "DispatchNamespaceNotFound",
1398
+ ], () => Effect.void));
1399
+ return;
1400
+ }
1210
1401
  // Look up live domain IDs rather than trusting persisted state.
1211
1402
  // We no longer track `{ id, zoneId }` on the output; fetching
1212
1403
  // straight from Cloudflare handles both the normal case and
@@ -1229,18 +1420,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
1229
1420
  ]
1230
1421
  : []), { concurrency: "unbounded" });
1231
1422
  }
1232
- yield* workers
1233
- .deleteScript({
1234
- accountId: output.accountId,
1235
- scriptName: output.workerName,
1236
- // Force teardown of queue consumers, durable object classes, and
1237
- // service bindings hanging off this worker. Without `force`, those
1238
- // conditions raise QueueConsumerConflict / ServiceBindingConflict
1239
- // and leave the script in CF. Alchemy is the source of truth for
1240
- // the worker, so we want a hard delete on teardown.
1241
- force: true,
1242
- })
1243
- .pipe(Effect.catchTag("WorkerNotFound", () => Effect.void));
1423
+ yield* deleteWorkerScript(output.accountId, output.workerName, undefined).pipe(Effect.catchTag("WorkerNotFound", () => Effect.void));
1244
1424
  }),
1245
1425
  tail: ({ output }) => telemetry.tailScript({
1246
1426
  accountId: output.accountId,