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
@@ -10,8 +10,10 @@ import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient";
10
10
  import crypto from "node:crypto";
11
11
 
12
12
  import * as Config from "effect/Config";
13
+ import * as Option from "effect/Option";
13
14
  import { isHttpClientError } from "effect/unstable/http/HttpClientError";
14
15
  import { adopt } from "../../AdoptPolicy.ts";
16
+ import { AlchemyContext } from "../../AlchemyContext.ts";
15
17
  import { AuthError } from "../../Auth/AuthProvider.ts";
16
18
  import {
17
19
  CredentialsStore,
@@ -42,7 +44,12 @@ import * as CloudflareEnvironment from "../CloudflareEnvironment.ts";
42
44
  import * as Credentials from "../Credentials.ts";
43
45
  import { EdgeSessionError, createEdgeSession } from "../EdgeSession.ts";
44
46
  import Api, { STATE_STORE_SCRIPT_NAME, STATE_STORE_VERSION } from "./Api.ts";
45
- import { AuthToken, AuthTokenSecretName, TokenValue } from "./Token.ts";
47
+ import {
48
+ AuthToken,
49
+ AuthTokenSecretName,
50
+ EncryptionKeySecretName,
51
+ TokenValue,
52
+ } from "./Token.ts";
46
53
 
47
54
  const CI = Config.boolean("CI").pipe(Config.withDefault(false));
48
55
 
@@ -58,6 +65,12 @@ export const state = () =>
58
65
  const profileName = yield* ALCHEMY_PROFILE;
59
66
  const localStage = `${profileName}_${scriptName}`;
60
67
  const credStore = yield* CredentialsStore;
68
+ // `deploy --yes` flows in here (via AlchemyContext.updateStateStore) to
69
+ // auto-accept an out-of-date state store upgrade instead of prompting.
70
+ // Optional so callers that don't provide AlchemyContext keep the prompt.
71
+ const autoUpdateStateStore =
72
+ Option.getOrUndefined(yield* Effect.serviceOption(AlchemyContext))
73
+ ?.updateStateStore ?? false;
61
74
  const context = yield* Effect.context<Effect.Services<typeof init>>();
62
75
 
63
76
  const init = Effect.gen(function* () {
@@ -84,9 +97,11 @@ export const state = () =>
84
97
  yield* checkStateStoreVersion(url);
85
98
 
86
99
  if (observed === undefined) {
87
- const shouldDeploy = yield* Clank.confirm({
88
- message: `Cloudflare State Store '${scriptName}' is not available. Do you want to deploy it?`,
89
- });
100
+ const shouldDeploy =
101
+ autoUpdateStateStore ||
102
+ (yield* Clank.confirm({
103
+ message: `Cloudflare State Store '${scriptName}' is not available. Do you want to deploy it?`,
104
+ }));
90
105
  if (shouldDeploy) {
91
106
  return yield* bootstrap({
92
107
  workerName: scriptName,
@@ -100,10 +115,32 @@ export const state = () =>
100
115
  const httpState = yield* ensureAccess({ url, authToken });
101
116
  if (matches) {
102
117
  return httpState;
118
+ }
119
+
120
+ // The store is out of date. Upgrade it in place.
121
+ const upgrade = Effect.gen(function* () {
122
+ yield* Clank.info(
123
+ `Cloudflare State Store '${scriptName}' is out of date ` +
124
+ `(expected v${expected}, observed v${observed ?? "unknown"}); upgrading...`,
125
+ );
126
+ const stateStoreOptions = yield* deployStateStore({
127
+ stage: scriptName,
128
+ state: httpState,
129
+ force: false,
130
+ });
131
+ return yield* makeCloudflareStateStore(stateStoreOptions);
132
+ });
133
+
134
+ if (autoUpdateStateStore) {
135
+ // `--yes`: upgrade automatically (also unblocks CI).
136
+ return yield* upgrade;
103
137
  } else if (isCI) {
104
138
  return yield* Effect.die(
105
139
  new AuthError({
106
- message: `Cloudflare State store not found. Run 'alchemy bootstrap cloudflare --profile <your-ci-profile>' to deploy it first.`,
140
+ message:
141
+ `Cloudflare State store is out of date ` +
142
+ `(expected v${expected}, observed v${observed ?? "unknown"}). ` +
143
+ `Run 'alchemy bootstrap cloudflare --profile <your-ci-profile>' to upgrade it first, or pass --yes.`,
107
144
  }),
108
145
  );
109
146
  } else {
@@ -113,12 +150,7 @@ export const state = () =>
113
150
  `(expected v${expected}, observed v${observed ?? "unknown"})`,
114
151
  });
115
152
  if (shouldDeploy) {
116
- const stateStoreOptions = yield* deployStateStore({
117
- stage: scriptName,
118
- state: httpState,
119
- force: false,
120
- });
121
- return yield* makeCloudflareStateStore(stateStoreOptions);
153
+ return yield* upgrade;
122
154
  } else {
123
155
  return yield* Effect.die(new Clank.PromptCancelled());
124
156
  }
@@ -153,17 +185,19 @@ export const state = () =>
153
185
  if (credentials) {
154
186
  return yield* ensureLatest(credentials);
155
187
  }
156
- const workerExists = yield* isStateStoreAvailable(scriptName);
157
- if (workerExists) {
188
+ const { accountId } =
189
+ yield* yield* CloudflareEnvironment.CloudflareEnvironment;
190
+ if (yield* isStateStoreServing(accountId)) {
158
191
  return yield* ensureLatest(
159
192
  yield* loginWithCloudflare(profileName, false),
160
193
  );
194
+ } else if (autoUpdateStateStore) {
195
+ // `--yes`: deploy the missing state store automatically (also in CI).
196
+ return yield* bootstrap();
161
197
  } else if (isCI) {
162
- // TODO(sam): do we want to support bootstrapping the state store from CI?
163
- // for now - just die here
164
198
  return yield* Effect.die(
165
199
  new AuthError({
166
- message: `Cloudflare State store not found. Run 'alchemy bootstrap cloudflare --profile <your-ci-profile>' to deploy it first.`,
200
+ message: `Cloudflare State store not found. Run 'alchemy bootstrap cloudflare --profile <your-ci-profile>' to deploy it first, or pass --yes.`,
167
201
  }),
168
202
  );
169
203
  } else {
@@ -233,9 +267,9 @@ export const bootstrap = (options: BootstrapOptions = {}) =>
233
267
  ),
234
268
  );
235
269
  }
236
-
237
- const workerExists = yield* isStateStoreAvailable(scriptName);
238
- if (workerExists) {
270
+ const { accountId } =
271
+ yield* yield* CloudflareEnvironment.CloudflareEnvironment;
272
+ if (yield* isStateStoreServing(accountId)) {
239
273
  // this is a regular update, let's check if it needs an update and refresh credentials
240
274
  if (!force) {
241
275
  yield* Clank.info(
@@ -283,7 +317,6 @@ export const bootstrap = (options: BootstrapOptions = {}) =>
283
317
  return httpState;
284
318
  }
285
319
  } else {
286
- // fresh deploy - deploy from local for the first time
287
320
  yield* Clank.info(`Deploying Cloudflare State Store '${scriptName}'...`);
288
321
  return yield* deployWithLocalState({
289
322
  scriptName,
@@ -306,6 +339,125 @@ export const bootstrap = (options: BootstrapOptions = {}) =>
306
339
  }),
307
340
  );
308
341
 
342
+ export interface TeardownOptions {
343
+ /** @default "alchemy-state-store" */
344
+ workerName?: string;
345
+ /** @default "default" */
346
+ profile?: string;
347
+ /**
348
+ * Delete the account Secrets Store too, but only once the state-store
349
+ * secrets have been removed and no other secrets remain in it. A store that
350
+ * still holds foreign secrets is left in place.
351
+ * @default true
352
+ */
353
+ deleteEmptySecretsStore?: boolean;
354
+ }
355
+
356
+ /**
357
+ * The inverse of {@link bootstrap}: tear down the Cloudflare-deployed state
358
+ * store. Deletes the state-store Worker and the secrets it created in the
359
+ * account Secrets Store (the bearer token + the encryption key), then deletes
360
+ * the Secrets Store itself if it is left empty, and drops the locally cached
361
+ * state-store credentials for the profile.
362
+ *
363
+ * Idempotent — missing resources are treated as already-gone, so it is safe to
364
+ * re-run. Intended for reclaiming a throwaway account after testing; on a
365
+ * shared account it only removes resources alchemy created.
366
+ */
367
+ export const teardownStateStore = (options: TeardownOptions = {}) =>
368
+ Effect.gen(function* () {
369
+ const profileName = options.profile ?? (yield* ALCHEMY_PROFILE);
370
+ const scriptName = options.workerName ?? STATE_STORE_SCRIPT_NAME;
371
+ const deleteEmptyStore = options.deleteEmptySecretsStore ?? true;
372
+ const { accountId } =
373
+ yield* yield* CloudflareEnvironment.CloudflareEnvironment;
374
+
375
+ yield* annotateAccountHash();
376
+ yield* Effect.annotateCurrentSpan({
377
+ "alchemy.state_store.script_name": scriptName,
378
+ "alchemy.state_store.profile": profileName,
379
+ });
380
+
381
+ // 1. Delete the state-store Worker.
382
+ yield* Clank.info(`Deleting state store worker '${scriptName}'...`);
383
+ yield* workers.deleteScript({ accountId, scriptName, force: true }).pipe(
384
+ Effect.asVoid,
385
+ Effect.catchTag("WorkerNotFound", () =>
386
+ Clank.info(` Worker '${scriptName}' not found (already gone).`),
387
+ ),
388
+ );
389
+
390
+ // 2. Delete the secrets the state store created, plus any now-empty store.
391
+ const ourSecretNames = new Set<string>([
392
+ AuthTokenSecretName,
393
+ EncryptionKeySecretName,
394
+ ]);
395
+ const stores = yield* SecretsStore.listStores({ accountId }).pipe(
396
+ Effect.map((r) => r.result),
397
+ Effect.catchTag("InvalidAccountId", () => Effect.succeed([])),
398
+ );
399
+ for (const store of stores) {
400
+ const secrets = yield* SecretsStore.listStoreSecrets({
401
+ accountId,
402
+ storeId: store.id,
403
+ }).pipe(
404
+ Effect.map((r) => r.result),
405
+ Effect.catchTag(["StoreNotFound", "InvalidAccountId"], () =>
406
+ Effect.succeed([]),
407
+ ),
408
+ );
409
+ const ours = secrets.filter((s) => ourSecretNames.has(s.name));
410
+ for (const secret of ours) {
411
+ yield* Clank.info(`Deleting secret '${secret.name}'...`);
412
+ yield* SecretsStore.deleteStoreSecret({
413
+ accountId,
414
+ storeId: store.id,
415
+ secretId: secret.id,
416
+ }).pipe(
417
+ Effect.asVoid,
418
+ Effect.catchTag(
419
+ ["SecretNotFound", "StoreNotFound", "NotFound", "InvalidAccountId"],
420
+ () => Effect.void,
421
+ ),
422
+ );
423
+ }
424
+ const remaining = secrets.length - ours.length;
425
+ if (deleteEmptyStore && remaining === 0) {
426
+ yield* Clank.info(`Deleting empty secrets store '${store.id}'...`);
427
+ yield* SecretsStore.deleteStore({
428
+ accountId,
429
+ storeId: store.id,
430
+ force: true,
431
+ }).pipe(
432
+ Effect.asVoid,
433
+ Effect.catchTag(
434
+ ["StoreNotFound", "NotFound", "InvalidAccountId"],
435
+ () => Effect.void,
436
+ ),
437
+ );
438
+ } else if (remaining > 0) {
439
+ yield* Clank.info(
440
+ `Secrets store '${store.id}' still has ${remaining} other ` +
441
+ `secret(s); leaving it in place.`,
442
+ );
443
+ }
444
+ }
445
+
446
+ // 3. Drop the locally cached state-store credentials for this profile.
447
+ const credStore = yield* CredentialsStore;
448
+ yield* credStore.delete(profileName, CREDENTIALS_FILE).pipe(Effect.ignore);
449
+
450
+ yield* Clank.success(`Cloudflare State Store '${scriptName}' torn down.`);
451
+ }).pipe(
452
+ Effect.withSpan("state_store.teardown", {
453
+ attributes: {
454
+ "alchemy.state_store.op": "teardown",
455
+ "alchemy.state_store.script_name":
456
+ options.workerName ?? STATE_STORE_SCRIPT_NAME,
457
+ },
458
+ }),
459
+ );
460
+
309
461
  const deployStateStore = ({
310
462
  stage,
311
463
  state,
@@ -619,6 +771,26 @@ const isStateStoreAvailable = (scriptName: string = "alchemy-state-store") =>
619
771
  );
620
772
  });
621
773
 
774
+ /**
775
+ * Does this account have a *functioning* state-store worker,
776
+ * verified by checking the /version endpoint
777
+ *
778
+ */
779
+ const isStateStoreServing = (accountId: string) =>
780
+ Effect.gen(function* () {
781
+ const url = yield* workers.getSubdomain({ accountId }).pipe(
782
+ Effect.map(({ subdomain }) =>
783
+ subdomain
784
+ ? `https://${STATE_STORE_SCRIPT_NAME}.${subdomain}.workers.dev`
785
+ : undefined,
786
+ ),
787
+ Effect.catch(() => Effect.succeed(undefined)),
788
+ );
789
+ if (url === undefined) return false;
790
+ const { observed } = yield* checkStateStoreVersion(url);
791
+ return observed !== undefined;
792
+ });
793
+
622
794
  const makeCloudflareStateStore = Effect.fn(function* ({
623
795
  url,
624
796
  authToken,
@@ -1,5 +1,4 @@
1
1
  import * as Effect from "effect/Effect";
2
- import type { MemoOptions } from "../../Command/Memo.ts";
3
2
  import type { InputProps } from "../../Input.ts";
4
3
  import { effectClass } from "../../Util/effect.ts";
5
4
  import type { Providers } from "../Providers.ts";
@@ -7,26 +6,14 @@ import type { AssetsConfig } from "../Workers/Assets.ts";
7
6
  import {
8
7
  Worker,
9
8
  type NormalizedBindings,
9
+ type ViteOptions,
10
10
  type WorkerAssetsConfig,
11
11
  type WorkerBindingProps,
12
12
  type WorkerProps,
13
13
  } from "../Workers/Worker.ts";
14
- export interface ViteProps<
15
- Bindings extends WorkerBindingProps = {},
16
- > extends Omit<WorkerProps<Bindings>, "vite" | "main" | "assets"> {
17
- /**
18
- * Root directory passed to Vite's `root` option.
19
- * Defaults to the current working directory (`process.cwd()`).
20
- */
21
- rootDir?: string;
22
- /**
23
- * Controls which files are hashed to decide whether a rebuild is needed.
24
- * By default every non-gitignored file in `cwd` is hashed, plus the nearest
25
- * lockfile. Provide explicit globs to narrow the scope.
26
- *
27
- * @see {@link MemoOptions}
28
- */
29
- memo?: MemoOptions;
14
+
15
+ export interface ViteProps<Bindings extends WorkerBindingProps = {}>
16
+ extends Omit<WorkerProps<Bindings>, "vite" | "main" | "assets">, ViteOptions {
30
17
  /**
31
18
  * Optional configuration for static asset routing behavior.
32
19
  * Supports `runWorkerFirst`, `htmlHandling`, `notFoundHandling`, etc.
@@ -60,7 +47,7 @@ export interface ViteProps<
60
47
  * ```
61
48
  *
62
49
  * @section SSR Frameworks
63
- * For SSR frameworks like TanStack Start, SolidStart, or Nuxt, enable
50
+ * For SSR frameworks like TanStack Start or SolidStart, enable
64
51
  * `nodejs_compat` so the server bundle can use Node.js APIs.
65
52
  *
66
53
  * @example TanStack Start
@@ -78,8 +65,27 @@ export interface ViteProps<
78
65
  * compatibility: {
79
66
  * flags: ["nodejs_compat"],
80
67
  * },
81
- * assets: {
82
- * config: { runWorkerFirst: true },
68
+ * assets: { runWorkerFirst: true },
69
+ * });
70
+ * ```
71
+ *
72
+ * @section React Server Components
73
+ * Frameworks that emit more than one server environment (e.g. React
74
+ * Server Components, which split into an `rsc` environment and an `ssr`
75
+ * environment) need `viteEnvironments` to declare which environment
76
+ * produces the deployed Worker entry and which additional server
77
+ * environments to bundle alongside it. The `client` environment is
78
+ * always deployed as static assets.
79
+ *
80
+ * @example React Router with RSC
81
+ * ```typescript
82
+ * const app = yield* Cloudflare.Website.Vite("ReactRouterRSC", {
83
+ * compatibility: {
84
+ * flags: ["nodejs_compat"],
85
+ * },
86
+ * viteEnvironments: {
87
+ * entry: "rsc",
88
+ * children: ["ssr"],
83
89
  * },
84
90
  * });
85
91
  * ```
@@ -95,10 +101,8 @@ export interface ViteProps<
95
101
  * flags: ["nodejs_compat"],
96
102
  * },
97
103
  * assets: {
98
- * config: {
99
- * htmlHandling: "auto-trailing-slash",
100
- * notFoundHandling: "single-page-application",
101
- * },
104
+ * htmlHandling: "auto-trailing-slash",
105
+ * notFoundHandling: "single-page-application",
102
106
  * },
103
107
  * });
104
108
  * ```
@@ -176,6 +180,7 @@ export const Vite: {
176
180
  vite: {
177
181
  rootDir: props?.rootDir,
178
182
  memo: props?.memo,
183
+ viteEnvironments: props?.viteEnvironments,
179
184
  },
180
185
  }),
181
186
  ),
@@ -6,7 +6,7 @@ import type { WorkerBinding } from "./WorkerBinding.ts";
6
6
 
7
7
  /**
8
8
  * A Cloudflare **Worker-only binding** — the plain data value produced by
9
- * calling a {@link Service} (e.g. `Cloudflare.Images.Images({ name })`).
9
+ * calling a {@link Service} (e.g. `Cloudflare.Images.Images(name)`).
10
10
  *
11
11
  * These bindings (`Browser`, `Images`, `VersionMetadata`, `RateLimit`,
12
12
  * `Artifacts.Namespace`, …) have **no backing cloud resource**; they are only
@@ -136,7 +136,7 @@ export interface BrowserClient {
136
136
  *
137
137
  * Cloudflare.Worker(
138
138
  * "BrowserWorker",
139
- * { main: import.meta.filename },
139
+ * { main: import.meta.url },
140
140
  * Effect.gen(function* () {
141
141
  * const browser = yield* Cloudflare.Browser("BROWSER");
142
142
  *
@@ -354,7 +354,7 @@ export class DurableObjectScope extends Context.Service<
354
354
  * // ^^^^^^^ declared as part of WorkerA's public contract
355
355
  * export class WorkerA extends Cloudflare.Worker<WorkerA, {}, Counter>()(
356
356
  * "WorkerA",
357
- * { main: import.meta.filename },
357
+ * { main: import.meta.url },
358
358
  * ) {}
359
359
  *
360
360
  * // WorkerA's Layer also provides the DO's Live implementation.
@@ -374,7 +374,7 @@ export class DurableObjectScope extends Context.Service<
374
374
  *
375
375
  * export default class WorkerB extends Cloudflare.Worker<WorkerB>()(
376
376
  * "WorkerB",
377
- * { main: import.meta.filename },
377
+ * { main: import.meta.url },
378
378
  * Effect.gen(function* () {
379
379
  * // ^^^^^^^^^^^^ scriptName-bound stub of WorkerA's Counter
380
380
  * const counter = yield* Counter.from(WorkerA);
@@ -430,7 +430,7 @@ export class DurableObjectScope extends Context.Service<
430
430
  * // workerC.ts — another host of Counter, isolated from WorkerA
431
431
  * export class WorkerC extends Cloudflare.Worker<WorkerC, {}, Counter>()(
432
432
  * "WorkerC",
433
- * { main: import.meta.filename },
433
+ * { main: import.meta.url },
434
434
  * ) {}
435
435
  *
436
436
  * export default WorkerC.make(
@@ -751,6 +751,57 @@ export class DurableObjectScope extends Context.Service<
751
751
  * },
752
752
  * });
753
753
  * ```
754
+ *
755
+ * @section Adopting an Existing Durable Object
756
+ * When you adopt a Worker that already exists on Cloudflare — created
757
+ * outside Alchemy via Wrangler, the dashboard, or the raw API — its
758
+ * Durable Object classes are adopted along with it. You opt in to the
759
+ * takeover the same way you adopt any foreign resource: with
760
+ * `adopt(true)` (or the `--adopt` CLI flag), since `Worker.read` reports
761
+ * a worker with no Alchemy ownership tags as `Unowned`.
762
+ *
763
+ * Alchemy normally tracks which class backs each binding through an
764
+ * `alchemy:do:<logicalId>:<className>` tag it writes on the script. A
765
+ * foreign worker has no such tag, so on the **adopting deploy** Alchemy
766
+ * falls back to matching your binding to the live class **by binding
767
+ * name**. The class is then reused in place — not recreated — so
768
+ * Cloudflare's migration engine doesn't reject the upload for creating a
769
+ * class that already exists.
770
+ *
771
+ * The consequence is a one-time constraint: **on the adopting deploy the
772
+ * binding's `className` must match the class that already exists on the
773
+ * worker.** You cannot rename the class in the same deploy that adopts
774
+ * it. Once the deploy completes, Alchemy owns the worker and has written
775
+ * the `alchemy:do:` tag, so subsequent renames are driven by logical id
776
+ * and work normally.
777
+ *
778
+ * @example Adopting a worker whose `Counter` class already exists
779
+ * ```typescript
780
+ * // The worker + `Counter` class were created outside Alchemy.
781
+ * // `className` must match the existing class on this first deploy.
782
+ * const worker = yield* Cloudflare.Worker("Worker", {
783
+ * name: "existing-worker",
784
+ * main: "./src/worker.ts",
785
+ * bindings: {
786
+ * Counter: Cloudflare.DurableObject<Counter>("Counter"),
787
+ * },
788
+ * }).pipe(adopt(true));
789
+ * ```
790
+ *
791
+ * @example Renaming the class — only after adoption
792
+ * ```typescript
793
+ * // A SECOND deploy, after the one above. Alchemy now owns the worker
794
+ * // and maps the binding by logical id, so the class can be renamed.
795
+ * const worker = yield* Cloudflare.Worker("Worker", {
796
+ * name: "existing-worker",
797
+ * main: "./src/worker.ts",
798
+ * bindings: {
799
+ * Counter: Cloudflare.DurableObject<Counter>("Counter", {
800
+ * className: "CounterV2",
801
+ * }),
802
+ * },
803
+ * });
804
+ * ```
754
805
  */
755
806
  export const DurableObject: DurableObjectClass = taggedFunction(
756
807
  DurableObjectScope,
@@ -4,6 +4,7 @@ import type * as Effect from "effect/Effect";
4
4
  import type { Redacted } from "effect/Redacted";
5
5
  import type * as Stream from "effect/Stream";
6
6
  import type { Rpc } from "../../Rpc.ts";
7
+ import type { WorkflowLike } from "../Workflows/Workflow.ts";
7
8
  // NOTE: import the service modules directly rather than `import * as Cloudflare
8
9
  // from "../index.ts"`. Importing the whole Cloudflare barrel here creates a
9
10
  // circular re-export when the barrel does `export * from "./Workers/index.ts"`
@@ -20,6 +21,7 @@ import type * as ImagesNs from "../Images/index.ts";
20
21
  import type * as KV from "../KV/index.ts";
21
22
  import type * as Queues from "../Queues/index.ts";
22
23
  import type * as R2 from "../R2/index.ts";
24
+ import type { DispatchNamespace as DispatchNamespaceResource } from "../WorkersForPlatforms/DispatchNamespace.ts";
23
25
  import type { Assets } from "./Assets.ts";
24
26
  import type { BrowserBinding } from "./BrowserBinding.ts";
25
27
  import type { DurableObjectLike } from "./DurableObject.ts";
@@ -53,41 +55,50 @@ export type GetBindingType<T> =
53
55
  ? R2Bucket
54
56
  : T extends KV.Namespace
55
57
  ? KVNamespace
56
- : T extends Queues.Queue
57
- ? Queue<unknown>
58
- : T extends AI.Gateway
59
- ? Ai
60
- : T extends AI.Search
61
- ? AiSearchInstance
62
- : T extends AI.SearchNamespace
63
- ? AiSearchNamespace
64
- : T extends Email.SendEmail
65
- ? SendEmail
66
- : T extends AnalyticsEngine.Dataset
67
- ? AnalyticsEngineDataset
68
- : T extends ArtifactsNs.Namespace
69
- ? Artifacts
70
- : T extends RateLimitBinding
71
- ? RateLimit
72
- : T extends ImagesNs.ImagesBinding
73
- ? ImagesBinding
74
- : T extends BrowserBinding
75
- ? BrowserRun
76
- : T extends HyperdriveNs.Connection
77
- ? Hyperdrive
78
- : T extends VersionMetadataBinding
79
- ? WorkerVersionMetadata
80
- : T extends WorkerLoaderResource
81
- ? WorkerLoader
82
- : T extends DurableObjectLike
83
- ? DurableObjectNamespace<
84
- Exclude<T["Shape"], undefined>
85
- >
86
- : T extends Redacted<any>
87
- ? // redacteds are always stored as secret_text, so are always string
88
- // we JSON.stringify when not a Redacted<string>
89
- string
90
- : T;
58
+ : T extends DispatchNamespaceResource
59
+ ? DispatchNamespace
60
+ : T extends Queues.Queue
61
+ ? Queue<unknown>
62
+ : T extends AI.Gateway
63
+ ? Ai
64
+ : T extends AI.Search
65
+ ? AiSearchInstance
66
+ : T extends AI.SearchNamespace
67
+ ? AiSearchNamespace
68
+ : T extends Email.SendEmail
69
+ ? SendEmail
70
+ : T extends AnalyticsEngine.Dataset
71
+ ? AnalyticsEngineDataset
72
+ : T extends ArtifactsNs.Namespace
73
+ ? Artifacts
74
+ : T extends RateLimitBinding
75
+ ? RateLimit
76
+ : T extends ImagesNs.ImagesBinding
77
+ ? ImagesBinding
78
+ : T extends BrowserBinding
79
+ ? BrowserRun
80
+ : T extends HyperdriveNs.Connection
81
+ ? Hyperdrive
82
+ : T extends VersionMetadataBinding
83
+ ? WorkerVersionMetadata
84
+ : T extends WorkerLoaderResource
85
+ ? WorkerLoader
86
+ : T extends WorkflowLike<
87
+ infer Params
88
+ >
89
+ ? Workflow<Params>
90
+ : T extends DurableObjectLike
91
+ ? DurableObjectNamespace<
92
+ Exclude<
93
+ T["Shape"],
94
+ undefined
95
+ >
96
+ >
97
+ : T extends Redacted<any>
98
+ ? // redacteds are always stored as secret_text, so are always string
99
+ // we JSON.stringify when not a Redacted<string>
100
+ string
101
+ : T;
91
102
 
92
103
  /**
93
104
  * Cloudflare service-binding wire shape for an Effect-native Worker.
@@ -98,7 +109,7 @@ export type GetBindingType<T> =
98
109
  * shape and re-introduced via `Service` so callers get the standard
99
110
  * `(input, init?) => Promise<Response>` signature.
100
111
  *
101
- * Use {@link toPromiseApi} to wrap a binding into a Promise<T>-flavored view
112
+ * Use {@link toRpcAsync} to wrap a binding into a Promise<T>-flavored view
102
113
  * where envelopes are decoded for you.
103
114
  */
104
115
  export type RpcWireShape<Shape> = {