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
@@ -1312,7 +1312,9 @@ export const BucketProvider = () =>
1312
1312
  list: () =>
1313
1313
  Effect.gen(function* () {
1314
1314
  const { accountId, region } = yield* AWSEnvironment.current;
1315
- return yield* s3.listBuckets.pages({}).pipe(
1315
+ // S3 only includes `BucketRegion` in the response when the request
1316
+ // carries at least one parameter — hence the explicit MaxBuckets.
1317
+ return yield* s3.listBuckets.pages({ MaxBuckets: 1000 }).pipe(
1316
1318
  Stream.runCollect,
1317
1319
  Effect.map((chunk) =>
1318
1320
  Array.from(chunk).flatMap((page) =>
@@ -1320,15 +1322,21 @@ export const BucketProvider = () =>
1320
1322
  .filter(
1321
1323
  (b): b is s3.Bucket & { Name: string } => b.Name != null,
1322
1324
  )
1323
- .map((b) => ({
1324
- bucketName: b.Name,
1325
- bucketArn: `arn:aws:s3:::${b.Name}` as const,
1326
- bucketDomainName: `${b.Name}.s3.amazonaws.com` as const,
1327
- bucketRegionalDomainName:
1328
- `${b.Name}.s3.${region}.amazonaws.com` as const,
1329
- region,
1330
- accountId,
1331
- })),
1325
+ .map((b) => {
1326
+ // ListBuckets is global — record each bucket's actual
1327
+ // region so later operations (delete) can target it.
1328
+ const bucketRegion = (b.BucketRegion ??
1329
+ region) as RegionID;
1330
+ return {
1331
+ bucketName: b.Name,
1332
+ bucketArn: `arn:aws:s3:::${b.Name}` as const,
1333
+ bucketDomainName: `${b.Name}.s3.amazonaws.com` as const,
1334
+ bucketRegionalDomainName:
1335
+ `${b.Name}.s3.${bucketRegion}.amazonaws.com` as const,
1336
+ region: bucketRegion,
1337
+ accountId,
1338
+ };
1339
+ }),
1332
1340
  ),
1333
1341
  ),
1334
1342
  );
@@ -1512,34 +1520,61 @@ export const BucketProvider = () =>
1512
1520
  }),
1513
1521
  delete: Effect.fn(function* ({ olds = {}, output, session }) {
1514
1522
  yield* Effect.logInfo(
1515
- `S3 Bucket delete: bucket=${output.bucketName} forceDestroy=${olds.forceDestroy ?? false}`,
1523
+ `S3 Bucket delete: bucket=${output.bucketName} forceDestroy=${olds.forceDestroy ?? false} region=${output.region}`,
1516
1524
  );
1517
- // If forceDestroy is enabled, delete all objects first. The bucket
1518
- // may already be gone (deleted out-of-band, or a previous destroy
1519
- // partially succeeded) — treat NoSuchBucket as a no-op so the
1520
- // overall delete still converges.
1521
- if (olds.forceDestroy) {
1522
- yield* session.note(
1523
- `Force destroying bucket: ${output.bucketName} - deleting all objects...`,
1524
- );
1525
- yield* deleteAllObjects(output.bucketName).pipe(
1526
- Effect.catchTag("NoSuchBucket", () => Effect.void),
1527
- );
1528
- }
1525
+ const run = Effect.gen(function* () {
1526
+ // If forceDestroy is enabled, delete all objects first. The bucket
1527
+ // may already be gone (deleted out-of-band, or a previous destroy
1528
+ // partially succeeded) — treat NoSuchBucket as a no-op so the
1529
+ // overall delete still converges.
1530
+ if (olds.forceDestroy) {
1531
+ yield* session.note(
1532
+ `Force destroying bucket: ${output.bucketName} - deleting all objects...`,
1533
+ );
1534
+ yield* deleteAllObjects(output.bucketName).pipe(
1535
+ Effect.catchTag("NoSuchBucket", () => Effect.void),
1536
+ );
1537
+ }
1529
1538
 
1530
- yield* s3
1531
- .deleteBucket({
1532
- Bucket: output.bucketName,
1533
- })
1534
- .pipe(
1535
- Effect.catchTag("NoSuchBucket", () => Effect.void),
1536
- Effect.retry({
1537
- while: (e) => e._tag === "BucketNotEmpty",
1538
- schedule: Schedule.exponential(100).pipe(
1539
- Schedule.both(Schedule.recurs(5)),
1540
- ),
1541
- }),
1542
- );
1539
+ yield* s3
1540
+ .deleteBucket({
1541
+ Bucket: output.bucketName,
1542
+ })
1543
+ .pipe(
1544
+ Effect.catchTag("NoSuchBucket", () => Effect.void),
1545
+ Effect.retry({
1546
+ while: (e) => e._tag === "BucketNotEmpty",
1547
+ schedule: Schedule.exponential(100).pipe(
1548
+ Schedule.both(Schedule.recurs(5)),
1549
+ ),
1550
+ }),
1551
+ );
1552
+ });
1553
+
1554
+ // The bucket may live in a different region than the ambient client
1555
+ // (list enumerates buckets from every region) — target the bucket's
1556
+ // own region to avoid PermanentRedirect. If we still get redirected
1557
+ // (e.g. a stale/missing region attribute), retry once in the region
1558
+ // the redirect reports.
1559
+ yield* (
1560
+ output.region
1561
+ ? run.pipe(
1562
+ Effect.provideService(Region, Effect.succeed(output.region)),
1563
+ )
1564
+ : run
1565
+ ).pipe(
1566
+ Effect.tapError(Effect.logInfo),
1567
+ Effect.catchTag("PermanentRedirect", (e) =>
1568
+ e.BucketRegion
1569
+ ? run.pipe(
1570
+ Effect.provideService(
1571
+ Region,
1572
+ Effect.succeed(e.BucketRegion as RegionID),
1573
+ ),
1574
+ )
1575
+ : Effect.fail(e),
1576
+ ),
1577
+ );
1543
1578
 
1544
1579
  yield* session.note(`Deleted bucket: ${output.bucketName}`);
1545
1580
  }),
@@ -20,6 +20,13 @@ export class AlchemyContext extends EffectContext.Service<
20
20
  * overrides via the `adopt(enabled)` combinator still take precedence.
21
21
  */
22
22
  adopt: boolean;
23
+ /**
24
+ * When `true`, an out-of-date Cloudflare state store is upgraded
25
+ * automatically instead of prompting for confirmation (and the upgrade
26
+ * proceeds even in CI). The CLI's `--yes` flag flows in through this field.
27
+ * @default false
28
+ */
29
+ updateStateStore?: boolean;
23
30
  }
24
31
  >()("alchemy/Context") {}
25
32
 
package/src/Apply.ts CHANGED
@@ -353,7 +353,9 @@ const executePlan = Effect.fn(function* (
353
353
  // Aggregate every collected lifecycle failure into a single parallel Cause
354
354
  // so the apply ends with one combined error containing every distinct
355
355
  // failure / defect that occurred across the concurrent fibers.
356
- yield* Effect.failCause(failures.map((f) => f.cause).reduce(Cause.combine));
356
+ return yield* Effect.failCause(
357
+ failures.map((f) => f.cause).reduce(Cause.combine),
358
+ );
357
359
  }
358
360
  });
359
361
 
@@ -1605,7 +1607,7 @@ const collectGarbage = Effect.fn(function* (
1605
1607
  stage,
1606
1608
  fqn,
1607
1609
  });
1608
- yield* report("deleted");
1610
+ yield* report("retained");
1609
1611
  return;
1610
1612
  }
1611
1613
  yield* commit<DeletingResourceState>({
@@ -64,8 +64,16 @@ export interface LogStreamChart extends BaseChart {
64
64
  readonly type: "LogStream";
65
65
  }
66
66
 
67
- export interface NoteChart extends BaseChart {
67
+ /**
68
+ * A free-form markdown note. Unlike data charts, `Note` has no `query`
69
+ * or `name` — Axiom's payload is strictly `{ id, type, text, variant? }`.
70
+ */
71
+ export interface NoteChart {
72
+ readonly id: string;
68
73
  readonly type: "Note";
74
+ /** Markdown body rendered in the note cell. */
75
+ readonly text: string;
76
+ readonly variant?: "default";
69
77
  }
70
78
 
71
79
  /**
@@ -362,7 +362,7 @@ function builtInPlugins(
362
362
  ];
363
363
  }
364
364
 
365
- function bundleErrorFromUnknown(error: unknown): BundleError {
365
+ export function bundleErrorFromUnknown(error: unknown): BundleError {
366
366
  const message = error instanceof Error ? error.message : String(error);
367
367
  return new BundleError({
368
368
  message,
@@ -2,9 +2,31 @@ import * as Effect from "effect/Effect";
2
2
  import * as FileSystem from "effect/FileSystem";
3
3
  import * as Path from "effect/Path";
4
4
  import * as crypto from "node:crypto";
5
+ import { fileURLToPath } from "node:url";
5
6
  import { Stack } from "../Stack.ts";
6
7
  import { Stage } from "../Stage.ts";
7
8
 
9
+ /**
10
+ * Resolve a bundle entrypoint (`main`) to a real filesystem path.
11
+ *
12
+ * `main` is user-supplied and is very commonly `import.meta.url` — a
13
+ * `file://` URL — which `FileSystem.realPath` cannot `lstat` directly
14
+ * (it would try to stat a literal `file:` path). Convert any `file://`
15
+ * URL to a path first, then resolve to the canonical real path.
16
+ */
17
+ export const resolveMainPath = Effect.fn(function* (main: string) {
18
+ const fs = yield* FileSystem.FileSystem;
19
+ const path = yield* Path.Path;
20
+ const asPath = yield* Effect.sync(() => {
21
+ try {
22
+ return fileURLToPath(main);
23
+ } catch {
24
+ return main;
25
+ }
26
+ });
27
+ return path.resolve(yield* fs.realPath(asPath));
28
+ });
29
+
8
30
  /**
9
31
  * Creates a unique bundle staging directory under the nearest package-local
10
32
  * `.alchemy/tmp` root. Each invocation gets its own directory (via a random
@@ -0,0 +1,204 @@
1
+ import type { NonEmptyArray } from "effect/Array";
2
+ import * as Cause from "effect/Cause";
3
+ import * as Deferred from "effect/Deferred";
4
+ import * as Effect from "effect/Effect";
5
+ import * as FileSystem from "effect/FileSystem";
6
+ import * as Path from "effect/Path";
7
+ import type * as vite from "vite";
8
+ import { sha256 } from "../Util/index.ts";
9
+ import {
10
+ BundleError,
11
+ bundleErrorFromUnknown,
12
+ bundleOutputFromFiles,
13
+ type BundleFile,
14
+ type BundleOutput,
15
+ } from "./Bundle.ts";
16
+
17
+ export interface ViteBuildOutput {
18
+ readonly clientDirectory: string | undefined;
19
+ // This is emitted as an Effect instead of a value so we can process it in parallel with reading the client assets.
20
+ readonly serverBundle: Effect.Effect<BundleOutput | undefined, BundleError>;
21
+ }
22
+
23
+ // `@vitejs/plugin-rsc` writes these modules separately after build completes instead of emitting them as chunks.
24
+ // So, we need to detect them and read them from the file system manually.
25
+ const RSC_MANIFEST = {
26
+ "virtual:vite-rsc/assets-manifest": "__vite_rsc_assets_manifest.js",
27
+ "virtual:vite-rsc/environment-imports": "__vite_rsc_env_imports_manifest.js",
28
+ } as const;
29
+ type RscManifestId = keyof typeof RSC_MANIFEST;
30
+
31
+ /**
32
+ * A Vite plugin that collects the output of the build and makes it available as an Effect.
33
+ * @param entryEnvironment - The environment to use as the entry point for the server bundle. Defaults to "ssr".
34
+ */
35
+ export const viteBuildOutputPlugin = Effect.fn(function* ({
36
+ entryEnvironment = "ssr",
37
+ }: {
38
+ entryEnvironment?: string;
39
+ }) {
40
+ const fs = yield* FileSystem.FileSystem;
41
+ const path = yield* Path.Path;
42
+ let clientDirectory: string | undefined;
43
+ let serverEntry: string | undefined;
44
+ const serverChunks = new Map<
45
+ string,
46
+ Effect.Effect<BundleFile, BundleError>
47
+ >();
48
+ const deferred = yield* Deferred.make<ViteBuildOutput, BundleError>();
49
+
50
+ const plugin: vite.Plugin = {
51
+ name: "alchemy:build-output",
52
+ sharedDuringBuild: true,
53
+ async writeBundle(_, bundle) {
54
+ if (this.environment.name === "client") {
55
+ clientDirectory = path.resolve(
56
+ this.environment.config.root,
57
+ this.environment.config.build.outDir,
58
+ );
59
+ return;
60
+ }
61
+ const files = Object.values(bundle);
62
+ if (this.environment.name === entryEnvironment) {
63
+ const entryChunk = files.find(
64
+ (file) => file.type === "chunk" && file.isEntry,
65
+ );
66
+ if (!entryChunk) {
67
+ throw new Error(
68
+ `Entry chunk not found for environment "${this.environment.name}"`,
69
+ );
70
+ }
71
+ serverEntry = fileName(entryChunk.fileName, this.environment);
72
+ }
73
+ await Promise.all(
74
+ files.map(async (file) => {
75
+ if (file.type === "chunk") {
76
+ file.imports
77
+ .filter(
78
+ (self): self is keyof typeof RSC_MANIFEST =>
79
+ self in RSC_MANIFEST,
80
+ )
81
+ .forEach((id) => {
82
+ // Key by the environment-prefixed path, NOT the bare manifest
83
+ // filename. `@vitejs/plugin-rsc` emits a copy of the same-named
84
+ // manifest into every environment's outDir (e.g. both
85
+ // `dist/rsc/__vite_rsc_assets_manifest.js` and
86
+ // `dist/ssr/__vite_rsc_assets_manifest.js`), and each
87
+ // environment's chunks import their own copy via a relative
88
+ // specifier. Keying by the bare filename collapses them into a
89
+ // single entry, dropping every copy but the last — so the
90
+ // entry worker's `import "../__vite_rsc_assets_manifest.js"`
91
+ // resolves to a module that isn't in the bundle and the
92
+ // deployed Worker fails at startup.
93
+ serverChunks.set(
94
+ fileName(RSC_MANIFEST[id], this.environment),
95
+ readRscManifestChunk(id, this.environment),
96
+ );
97
+ });
98
+ }
99
+ const name = fileName(file.fileName, this.environment);
100
+ const content = file.type === "chunk" ? file.code : file.source;
101
+ serverChunks.set(
102
+ name,
103
+ sha256(content).pipe(
104
+ Effect.map((hash) => ({ path: name, content, hash })),
105
+ ),
106
+ );
107
+ }),
108
+ );
109
+ },
110
+ buildApp: {
111
+ order: "post",
112
+ async handler() {
113
+ Deferred.doneUnsafe(
114
+ deferred,
115
+ Effect.succeed({
116
+ clientDirectory,
117
+ serverBundle: makeServerBundle(),
118
+ }),
119
+ );
120
+ },
121
+ },
122
+ };
123
+
124
+ // The server bundle may include chunks from more than one Vite environment, so we need to prefix them with the environment-specific output directory.
125
+ // Flattening them doesn't work because of relative imports between environments.
126
+ //
127
+ // `build.outDir` can be resolved to an absolute path (e.g. `@vitejs/plugin-rsc`
128
+ // does this), which would leak the build machine's filesystem path into the
129
+ // worker module names and produce non-portable, leading-`/` specifiers that
130
+ // Cloudflare rejects. Normalize it back to a path relative to the project root
131
+ // so module names match the single-environment case (`dist/ssr/worker.js`).
132
+ const fileName = (name: string, environment: vite.Environment) => {
133
+ const outDir = environment.config.build.outDir;
134
+ const relativeOutDir = path.isAbsolute(outDir)
135
+ ? path.relative(environment.config.root, outDir)
136
+ : outDir;
137
+ return `${relativeOutDir}/${name}`;
138
+ };
139
+
140
+ // Manually read the RSC manifest chunk from the file system.
141
+ // This is only safe to run *after* the build has completed.
142
+ const readRscManifestChunk = (
143
+ id: RscManifestId,
144
+ environment: vite.Environment,
145
+ ) => {
146
+ const name = RSC_MANIFEST[id];
147
+ return fs
148
+ .readFile(
149
+ path.resolve(
150
+ environment.config.root,
151
+ environment.config.build.outDir,
152
+ name,
153
+ ),
154
+ )
155
+ .pipe(
156
+ Effect.flatMap((content) =>
157
+ sha256(content).pipe(
158
+ Effect.map(
159
+ (hash): BundleFile => ({
160
+ path: fileName(name, environment),
161
+ content,
162
+ hash,
163
+ }),
164
+ ),
165
+ ),
166
+ ),
167
+ Effect.mapError(bundleErrorFromUnknown),
168
+ );
169
+ };
170
+
171
+ const makeServerBundle = () => {
172
+ if (!serverEntry && !serverChunks.size) return Effect.undefined;
173
+ if (!serverEntry)
174
+ return Effect.die(new Cause.NoSuchElementError("Missing server entry"));
175
+ const filePaths = Array.from(serverChunks.keys()).sort((a, b) =>
176
+ a.localeCompare(b),
177
+ );
178
+ const server: NonEmptyArray<Effect.Effect<BundleFile, BundleError>> = [
179
+ getChunk(serverEntry),
180
+ ];
181
+ for (const filePath of filePaths) {
182
+ if (filePath === serverEntry) continue;
183
+ server.push(getChunk(filePath));
184
+ }
185
+ return Effect.all(server, { concurrency: "unbounded" }).pipe(
186
+ Effect.flatMap(bundleOutputFromFiles),
187
+ );
188
+ };
189
+
190
+ const getChunk = (path: string) => {
191
+ const chunk = serverChunks.get(path);
192
+ if (!chunk) {
193
+ return Effect.die(
194
+ new Cause.NoSuchElementError(`Chunk ${path} not found`),
195
+ );
196
+ }
197
+ return chunk;
198
+ };
199
+
200
+ return {
201
+ plugin,
202
+ output: Deferred.await(deferred),
203
+ };
204
+ });
@@ -1,7 +1,6 @@
1
1
  export * from "./Bundle.ts";
2
2
  export * from "./BundleAnalyzerPlugin.ts";
3
3
  export * from "./InstalledPackages.ts";
4
- export * from "./Docker.ts";
5
4
  export * from "./PurePlugin.ts";
6
5
  export * from "./RawPlugin.ts";
7
6
  export * from "./TempRoot.ts";
package/src/Cli/Event.ts CHANGED
@@ -10,6 +10,7 @@ export type ApplyStatus =
10
10
  | "updated"
11
11
  | "deleting"
12
12
  | "deleted"
13
+ | "retained"
13
14
  | "replacing"
14
15
  | "replaced"
15
16
  // Action lifecycle (see {@link Action})
@@ -35,6 +35,8 @@ const statusColor = (status: ApplyStatus): ((s: string) => string) => {
35
35
  return green;
36
36
  case "deleted":
37
37
  return dim;
38
+ case "retained":
39
+ return dim;
38
40
  case "fail":
39
41
  return red;
40
42
  case "attaching":
@@ -51,6 +53,7 @@ const isTerminal = (status: ApplyStatus): boolean =>
51
53
  status === "created" ||
52
54
  status === "updated" ||
53
55
  status === "deleted" ||
56
+ status === "retained" ||
54
57
  status === "replaced" ||
55
58
  status === "fail";
56
59
 
@@ -9,6 +9,7 @@ import * as S from "effect/Schema";
9
9
  import * as Argument from "effect/unstable/cli/Argument";
10
10
  import * as CliError from "effect/unstable/cli/CliError";
11
11
  import * as Flag from "effect/unstable/cli/Flag";
12
+ import { pathToFileURL } from "node:url";
12
13
 
13
14
  import {
14
15
  type AuthProvider,
@@ -301,7 +302,12 @@ export const printProfile = Effect.fn(function* (
301
302
 
302
303
  export const importStack = Effect.fn(function* (main: string) {
303
304
  const path = yield* Path.Path;
304
- const url = import.meta.resolve(path.resolve(main));
305
+ // Build a `file://` URL from the absolute path. `import.meta.resolve` expects a
306
+ // module specifier / URL, not a raw filesystem path: on Windows an absolute
307
+ // path like `D:\stack.ts` is not a valid specifier and fails to resolve, so the
308
+ // CLI cannot load the user's stack. `pathToFileURL` produces a valid URL on
309
+ // every platform.
310
+ const url = pathToFileURL(path.resolve(main)).href;
305
311
  const module = yield* Effect.promise(() => import(url));
306
312
  const stackEffect = module.default as ReturnType<
307
313
  ReturnType<typeof Stack.make>
@@ -20,7 +20,10 @@ import * as CloudflareEnvironment from "../../Cloudflare/CloudflareEnvironment.t
20
20
  import * as CloudflareCredentials from "../../Cloudflare/Credentials.ts";
21
21
  import { CloudflareLogs } from "../../Cloudflare/Logs.ts";
22
22
  import { STATE_STORE_SCRIPT_NAME } from "../../Cloudflare/StateStore/Api.ts";
23
- import { bootstrap as bootstrapCloudflare } from "../../Cloudflare/StateStore/State.ts";
23
+ import {
24
+ bootstrap as bootstrapCloudflare,
25
+ teardownStateStore,
26
+ } from "../../Cloudflare/StateStore/State.ts";
24
27
  import * as Clank from "../../Util/Clank.ts";
25
28
  import { loadConfigProvider } from "../../Util/ConfigProvider.ts";
26
29
  import { fileLogger } from "../../Util/FileLogger.ts";
@@ -116,6 +119,33 @@ const bootstrapCommand = Command.make(
116
119
  ),
117
120
  );
118
121
 
122
+ const teardownCommand = Command.make(
123
+ "teardown",
124
+ {
125
+ envFile,
126
+ profile,
127
+ workerName: cloudflareWorkerName,
128
+ },
129
+ instrumentCommand(
130
+ "cloudflare.teardown",
131
+ (a: { profile: string; workerName: string | undefined }) => ({
132
+ "alchemy.profile": a.profile,
133
+ "alchemy.worker_name": a.workerName ?? "",
134
+ }),
135
+ )(
136
+ Effect.fn(function* ({ envFile, profile, workerName }) {
137
+ const services = yield* cloudflareLayers(envFile, profile);
138
+ yield* teardownStateStore({
139
+ workerName,
140
+ profile,
141
+ }).pipe(Effect.provide(services));
142
+ }),
143
+ ),
144
+ ).pipe(
145
+ Command.withHidden,
146
+ Command.withDescription("Tear down the cloudflare state store"),
147
+ );
148
+
119
149
  /**
120
150
  * A single resolved Cloudflare token policy in the shape expected by
121
151
  * `POST /user/tokens`.
@@ -606,5 +636,10 @@ const stateCommand = Command.make("state", {}).pipe(
606
636
  );
607
637
 
608
638
  export const cloudflareCommand = Command.make("cloudflare", {}).pipe(
609
- Command.withSubcommands([bootstrapCommand, createTokenCommand, stateCommand]),
639
+ Command.withSubcommands([
640
+ bootstrapCommand,
641
+ teardownCommand,
642
+ createTokenCommand,
643
+ stateCommand,
644
+ ]),
610
645
  );
@@ -89,6 +89,9 @@ export const execStack = Effect.fn(function* ({
89
89
  ...ctx,
90
90
  dev,
91
91
  adopt,
92
+ // `--yes` also auto-accepts (and performs) an out-of-date state
93
+ // store upgrade, instead of prompting.
94
+ updateStateStore: yes,
92
95
  })),
93
96
  ),
94
97
  ),
@@ -174,7 +177,7 @@ export const execStack = Effect.fn(function* ({
174
177
  }
175
178
 
176
179
  if (dev) {
177
- yield* Effect.never;
180
+ return yield* Effect.never;
178
181
  }
179
182
  }
180
183
  }).pipe(Effect.provide(stack.services));
@@ -270,8 +270,8 @@ export function PlanProgress(props: PlanProgressProps): JSX.Element {
270
270
  const icon = taskIcon(row.action, status, spinner);
271
271
  const label =
272
272
  row.action === "delete"
273
- ? status === "deleted"
274
- ? "deleted"
273
+ ? status === "deleted" || status === "retained"
274
+ ? status
275
275
  : "drop"
276
276
  : status === "ran"
277
277
  ? row.action === "noop"
@@ -365,6 +365,8 @@ function statusColor(
365
365
  case "deleting":
366
366
  case "deleted":
367
367
  return "red";
368
+ case "retained":
369
+ return "gray";
368
370
  case "running":
369
371
  case "ran":
370
372
  return "cyan";
@@ -386,7 +388,7 @@ function taskIcon(
386
388
  if (status === "fail") return "✗";
387
389
  if (status === "skipped") return "•";
388
390
  if (status === "ran") return action === "noop" ? "•" : "✓";
389
- if (status === "deleted") return "✓";
391
+ if (status === "deleted" || status === "retained") return "✓";
390
392
  if (action === "delete") return "-";
391
393
  if (action === "noop") return "•";
392
394
  return "λ";
@@ -360,7 +360,7 @@ export const isAiGateway = (value: unknown): value is Gateway =>
360
360
  *
361
361
  * export default class Api extends Cloudflare.Worker<Api>()(
362
362
  * "Api",
363
- * { main: import.meta.filename },
363
+ * { main: import.meta.url },
364
364
  * Effect.gen(function* () {
365
365
  * const aiGateway = yield* Cloudflare.AI.QueryGateway(Gateway);
366
366
  *
@@ -235,7 +235,7 @@ export type Search = SearchInstance & {
235
235
  *
236
236
  * export default class Api extends Cloudflare.Worker<Api>()(
237
237
  * "api",
238
- * { main: import.meta.filename },
238
+ * { main: import.meta.url },
239
239
  * Effect.gen(function* () {
240
240
  * const bucket = yield* Cloudflare.R2.Bucket("docs");
241
241
  * const aiSearch = yield* Cloudflare.AI.Search("docs-search", {
@@ -508,7 +508,7 @@ export type SearchInstance = Resource<
508
508
  *
509
509
  * export default class Api extends Cloudflare.Worker<Api>()(
510
510
  * "api",
511
- * { main: import.meta.filename },
511
+ * { main: import.meta.url },
512
512
  * Effect.gen(function* () {
513
513
  * const bucket = yield* Cloudflare.R2.Bucket("docs", {});
514
514
  * const instance = yield* Cloudflare.AI.SearchInstance("docs-search", {
@@ -131,7 +131,7 @@ export type SearchNamespace = Resource<
131
131
  *
132
132
  * export default class Api extends Cloudflare.Worker<Api>()(
133
133
  * "api",
134
- * { main: import.meta.filename },
134
+ * { main: import.meta.url },
135
135
  * Effect.gen(function* () {
136
136
  * const ns = yield* Cloudflare.AI.QuerySearchNamespace(Docs);
137
137
  *
@@ -187,7 +187,12 @@ export const SearchTokenProvider = () =>
187
187
  name,
188
188
  cfApiId: news.cfApiId as string,
189
189
  cfApiKey: Redacted.value(news.cfApiKey as Redacted.Redacted<string>),
190
- legacy: news.legacy,
190
+ // Cloudflare defaults an omitted `legacy` to `true`, and legacy
191
+ // (account-level instance) tokens cannot be managed via the per-token
192
+ // routes — GET/DELETE `/ai-search/tokens/{id}` return 401, so they can
193
+ // never be read or deleted, leaking on every teardown. Force
194
+ // non-legacy unless the caller explicitly opts in.
195
+ legacy: news.legacy ?? false,
191
196
  };
192
197
 
193
198
  if (!observed) {