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
@@ -3,6 +3,7 @@ import * as Effect from "effect/Effect";
3
3
  import * as Schedule from "effect/Schedule";
4
4
  import * as Stream from "effect/Stream";
5
5
 
6
+ import { Unowned } from "../../AdoptPolicy.ts";
6
7
  import { createPhysicalName } from "../../PhysicalName.ts";
7
8
  import * as Provider from "../../Provider.ts";
8
9
  import { Resource } from "../../Resource.ts";
@@ -312,25 +313,47 @@ export const ApplicationProvider = () =>
312
313
  }
313
314
  }),
314
315
 
315
- read: Effect.fn(function* ({ output }) {
316
+ read: Effect.fn(function* ({ output, olds }) {
316
317
  const { accountId } = yield* yield* CloudflareEnvironment;
317
318
 
318
- if (!output?.applicationId) return undefined;
319
- const observed = yield* observeById(accountId, output.applicationId);
319
+ // Prefer the persisted physical id. After state loss there is no
320
+ // applicationId to probe, so fall back to matching an existing app
321
+ // by domain — without this the engine plans a blind `create`, and
322
+ // Cloudflare happily creates a second application on the same
323
+ // domain with a fresh `aud`, silently breaking existing JWT
324
+ // validation. Warp apps are excluded from the fallback: they are a
325
+ // per-account singleton that `reconcile` already recovers.
326
+ let observed: ObservedApp | undefined;
327
+ if (output?.applicationId) {
328
+ observed = yield* observeById(accountId, output.applicationId);
329
+ } else if (olds?.type !== "warp" && typeof olds?.domain === "string") {
330
+ observed = yield* findByDomain(accountId, olds.domain);
331
+ } else {
332
+ return undefined;
333
+ }
320
334
  if (!observed?.id || !observed.aud || !observed.type) {
321
335
  return undefined;
322
336
  }
323
- return {
337
+ const domain = observed.domain ?? output?.domain ?? olds?.domain;
338
+ const name = observed.name ?? output?.name;
339
+ if (domain === undefined || name === undefined) {
340
+ return undefined;
341
+ }
342
+ const attrs = {
324
343
  applicationId: observed.id,
325
344
  aud: observed.aud,
326
- domain: observed.domain ?? output.domain,
327
- destinations: observed.destinations ?? output.destinations,
345
+ domain,
346
+ destinations: observed.destinations ?? output?.destinations,
328
347
  type: observed.type,
329
- name: observed.name ?? output.name,
330
- accountId: output.accountId,
331
- createdAt: observed.createdAt ?? output.createdAt,
332
- updatedAt: observed.updatedAt ?? output.updatedAt,
348
+ name,
349
+ accountId: output?.accountId ?? accountId,
350
+ createdAt: observed.createdAt ?? output?.createdAt,
351
+ updatedAt: observed.updatedAt ?? output?.updatedAt,
333
352
  } satisfies ApplicationAttributes;
353
+ // Recovered by id → positively ours. Recovered by domain scan →
354
+ // existence is certain but ownership is not (Access applications
355
+ // carry no alchemy marker), so gate takeover behind `--adopt`.
356
+ return output?.applicationId ? attrs : Unowned(attrs);
334
357
  }),
335
358
 
336
359
  reconcile: Effect.fn(function* ({ id, news, output }) {
@@ -532,6 +555,10 @@ const resolveAllowedIdps = (
532
555
  const findWarpApp = (accountId: string) =>
533
556
  zeroTrust.listAccessApplicationsForAccount.items({ accountId }).pipe(
534
557
  Stream.runCollect,
558
+ // A sibling app mid-teardown can transiently reject the whole
559
+ // enumeration (AccessReferenceNotFound), and Cloudflare 403s when
560
+ // throttling — same transient windows `list` rides out.
561
+ retryTransientAccessError,
535
562
  Effect.map((chunk) =>
536
563
  Array.from(chunk).find(
537
564
  (a) => (a as { type?: string | null }).type === "warp",
@@ -544,6 +571,30 @@ const findWarpApp = (accountId: string) =>
544
571
  ),
545
572
  );
546
573
 
574
+ // Cold-recovery scan for `read` when no applicationId was persisted:
575
+ // match an existing application by its domain (unique per account for
576
+ // non-warp app types).
577
+ const findByDomain = (accountId: string, domain: string) =>
578
+ zeroTrust.listAccessApplicationsForAccount.items({ accountId }).pipe(
579
+ Stream.runCollect,
580
+ // A sibling app mid-teardown can transiently reject the whole
581
+ // enumeration (AccessReferenceNotFound), and Cloudflare 403s when
582
+ // throttling. A missed scan here is worse than a slow one: the engine
583
+ // would plan a blind `create` and either duplicate the app or trip
584
+ // Cloudflare's `application_already_exists` Conflict.
585
+ retryTransientAccessError,
586
+ Effect.map((chunk) =>
587
+ Array.from(chunk).find(
588
+ (a) => (a as { domain?: string | null }).domain === domain,
589
+ ),
590
+ ),
591
+ Effect.map((found) =>
592
+ found === undefined
593
+ ? undefined
594
+ : narrowApp(found as Parameters<typeof narrowApp>[0]),
595
+ ),
596
+ );
597
+
547
598
  const observeById = (accountId: string, appId: string) =>
548
599
  Effect.gen(function* () {
549
600
  const r = yield* zeroTrust
@@ -234,13 +234,24 @@ export const NotificationWebhookProvider = () =>
234
234
  olds?.secret === undefined ? undefined : Redacted.value(olds.secret);
235
235
  const secretChanged = secret !== oldSecret;
236
236
  if (observed.name !== name || observed.url !== url || secretChanged) {
237
- yield* alerting.updateDestinationWebhook({
238
- accountId,
239
- webhookId: observed.id,
240
- name,
241
- url,
242
- secret,
243
- });
237
+ // The update PUT fires the same test POST as create — ride out edge
238
+ // propagation of a just-deployed destination URL the same way.
239
+ yield* alerting
240
+ .updateDestinationWebhook({
241
+ accountId,
242
+ webhookId: observed.id,
243
+ name,
244
+ url,
245
+ secret,
246
+ })
247
+ .pipe(
248
+ Effect.retry({
249
+ while: (e) => e._tag === "WebhookTestFailed",
250
+ schedule: Schedule.exponential("1 second").pipe(
251
+ Schedule.both(Schedule.recurs(5)),
252
+ ),
253
+ }),
254
+ );
244
255
  const fresh = yield* observeWebhook(accountId, observed.id);
245
256
  return toWebhookAttributes(fresh ?? observed, accountId);
246
257
  }
@@ -10,7 +10,7 @@ import type { Dataset as AnalyticsEngineDatasetLike } from "./Dataset.ts";
10
10
  *
11
11
  * `WriteDataset` is a single identifier that is simultaneously the binding's
12
12
  * Context tag, its type, and the callable —
13
- * `yield* Cloudflare.AnalyticsEngineDataset.WriteDataset(dataset)`.
13
+ * `yield* Cloudflare.AnalyticsEngine.WriteDataset(dataset)`.
14
14
  *
15
15
  * @binding
16
16
  * @product Analytics Engine
@@ -18,7 +18,7 @@ import type { Dataset as AnalyticsEngineDatasetLike } from "./Dataset.ts";
18
18
  *
19
19
  * @example Write a data point inside a Worker
20
20
  * ```typescript
21
- * const analytics = yield* Cloudflare.AnalyticsEngineDataset.WriteDataset(Dataset);
21
+ * const analytics = yield* Cloudflare.AnalyticsEngine.WriteDataset(Dataset);
22
22
  * yield* analytics.writeDataPoint({ blobs: ["signup"] });
23
23
  * ```
24
24
  */
@@ -255,6 +255,10 @@ export const AccountApiTokenProvider = () =>
255
255
  // `TokenNotFound`. Either is fine; we just want the resource gone.
256
256
  Effect.catchTag("InvalidRoute", () => Effect.void),
257
257
  Effect.catchTag("TokenNotFound", () => Effect.void),
258
+ // Cloudflare-managed tokens (e.g. "Cloudflare Resource Tagging
259
+ // System") can never be deleted (code 1001). We don't own them, so
260
+ // treat the refusal as a no-op rather than a failure.
261
+ Effect.catchTag("TokenManagedByCloudflare", () => Effect.void),
258
262
  );
259
263
  }),
260
264
  list: Effect.fn(function* () {
@@ -105,7 +105,7 @@ const selectAccount = (accessToken: string) =>
105
105
  const response = yield* list({});
106
106
  const accounts = response.result;
107
107
  if (accounts.length === 0) {
108
- yield* new AuthError({
108
+ return yield* new AuthError({
109
109
  message: "Cloudflare: no accounts found for this credential.",
110
110
  });
111
111
  }
@@ -43,6 +43,45 @@ export class ContainerError extends Data.TaggedError("ContainerError")<{
43
43
  readonly cause?: unknown;
44
44
  }> {}
45
45
 
46
+ /**
47
+ * No container instance could be allocated within the start budget — the
48
+ * account is at its concurrent-instance cap (`maxInstances`) or the platform
49
+ * is still provisioning. Mirrors `@cloudflare/containers`'
50
+ * `NO_CONTAINER_INSTANCE_ERROR` (surfaced as HTTP 503 by native).
51
+ */
52
+ export class NoContainerInstanceError extends Data.TaggedError(
53
+ "NoContainerInstanceError",
54
+ )<{
55
+ readonly message: string;
56
+ readonly cause?: unknown;
57
+ }> {}
58
+
59
+ /**
60
+ * Cloudflare is rate limiting container starts ("too many containers per
61
+ * second"). Mirrors `@cloudflare/containers`' `RATE_LIMITED_ERROR` (HTTP 429).
62
+ * Hammering `start()` while rate limited only prolongs it, so callers should
63
+ * back off rather than retry tightly.
64
+ */
65
+ export class ContainerRateLimitedError extends Data.TaggedError(
66
+ "ContainerRateLimitedError",
67
+ )<{
68
+ readonly message: string;
69
+ readonly cause?: unknown;
70
+ }> {}
71
+
72
+ /**
73
+ * The container instance exited/crashed while we were waiting for its port —
74
+ * the entrypoint failed to bind or died. Mirrors native's "container exited"
75
+ * detection (`!this.container.running` mid-wait); not curable by continuing to
76
+ * poll the same instance.
77
+ */
78
+ export class ContainerCrashedError extends Data.TaggedError(
79
+ "ContainerCrashedError",
80
+ )<{
81
+ readonly message: string;
82
+ readonly cause?: unknown;
83
+ }> {}
84
+
46
85
  export interface ContainerStartupOptions extends cf.ContainerStartupOptions {}
47
86
 
48
87
  /**
@@ -50,7 +89,7 @@ export interface ContainerStartupOptions extends cf.ContainerStartupOptions {}
50
89
  * {@link main} and bakes it in as the container's entrypoint.
51
90
  */
52
91
  export interface EffectfulContainerProps extends ContainerApplicationProps {
53
- /** Entrypoint file for the Effect program, typically `import.meta.filename`. */
92
+ /** Entrypoint file for the Effect program, typically `import.meta.url`. */
54
93
  main: string;
55
94
  }
56
95
  /**
@@ -154,7 +193,7 @@ export type Container<Id extends string = string> = Named<Id> & {
154
193
  * ```typescript
155
194
  * // src/Sandbox.runtime.ts — props are the first argument to `.make()`
156
195
  * export default Sandbox.make(
157
- * { main: import.meta.filename },
196
+ * { main: import.meta.url },
158
197
  * Effect.gen(function* () {
159
198
  * const cp = yield* ChildProcessSpawner;
160
199
  *
@@ -202,7 +241,7 @@ export type Container<Id extends string = string> = Named<Id> & {
202
241
  * >()("Sandbox") {}
203
242
  *
204
243
  * export default Sandbox.make(
205
- * { main: import.meta.filename },
244
+ * { main: import.meta.url },
206
245
  * Effect.gen(function* () {
207
246
  * return Sandbox.of({
208
247
  * ping: () => Effect.succeed("pong"),
@@ -265,7 +304,7 @@ export type Container<Id extends string = string> = Named<Id> & {
265
304
  * ```typescript
266
305
  * export const SandboxLive = Sandbox.make(
267
306
  * Stack.useSync((stack) => ({
268
- * main: import.meta.filename,
307
+ * main: import.meta.url,
269
308
  * instanceType: stack.stage === "prod" ? "standard-1" : "dev",
270
309
  * observability: { logs: { enabled: true } },
271
310
  * })),
@@ -149,13 +149,17 @@ export interface ContainerApplicationProps extends PlatformProps {
149
149
  */
150
150
  dockerfile?: string;
151
151
  /**
152
- * Initial number of instances to maintain.
153
- * @default 1
152
+ * Initial number of instances to maintain. Matches wrangler, which forces
153
+ * this to 0 whenever {@link maxInstances} is set (pure scale-from-zero).
154
+ * @default 0
154
155
  */
155
156
  instances?: number;
156
157
  /**
157
- * Maximum number of instances the application may scale to.
158
- * @default 1
158
+ * Maximum number of instances the application may scale to. Matches
159
+ * wrangler's default of 20. A value of 1 serializes every Durable Object
160
+ * instance through a single container slot, so the default lets containers
161
+ * scale concurrently out of the box.
162
+ * @default 20
159
163
  */
160
164
  maxInstances?: number;
161
165
  /**
@@ -164,8 +168,10 @@ export interface ContainerApplicationProps extends PlatformProps {
164
168
  */
165
169
  schedulingPolicy?: ContainerApplication.SchedulingPolicy;
166
170
  /**
167
- * Instance type for each deployment.
168
- * @default "dev"
171
+ * Instance type for each deployment. Defaults to wrangler's `"lite"` tier
172
+ * (1/16 vCPU, 256 MiB, 2 GB disk) when no explicit {@link vcpu}/{@link memory}/
173
+ * {@link disk} is set. (`"dev"` is wrangler's deprecated alias for `"lite"`.)
174
+ * @default "lite"
169
175
  */
170
176
  instanceType?: ContainerApplication.InstanceType;
171
177
  /**
@@ -285,7 +291,7 @@ export type ContainerShape = Main<ContainerServices>;
285
291
  * import * as Cloudflare from "alchemy/Cloudflare";
286
292
  *
287
293
  * export class Sandbox extends Cloudflare.Container<Sandbox>()("Sandbox", {
288
- * main: import.meta.filename,
294
+ * main: import.meta.url,
289
295
  * }) {}
290
296
  * ```
291
297
  *
@@ -297,7 +303,7 @@ export type ContainerShape = Main<ContainerServices>;
297
303
  * @example Named container with a non-default handler export
298
304
  * ```typescript
299
305
  * export class Worker extends Cloudflare.Container<Worker>()("Worker", {
300
- * main: import.meta.filename,
306
+ * main: import.meta.url,
301
307
  * handler: "runWorker",
302
308
  * name: "background-worker",
303
309
  * }) {}
@@ -346,7 +352,7 @@ export type ContainerShape = Main<ContainerServices>;
346
352
  * @example Node runtime with external native deps
347
353
  * ```typescript
348
354
  * export class ImageApi extends Cloudflare.Container<ImageApi>()("ImageApi", {
349
- * main: import.meta.filename,
355
+ * main: import.meta.url,
350
356
  * runtime: "node",
351
357
  * external: ["sharp"],
352
358
  * autoInstallExternals: true,
@@ -360,7 +366,7 @@ export type ContainerShape = Main<ContainerServices>;
360
366
  * @example Custom Dockerfile base and registry
361
367
  * ```typescript
362
368
  * export class Custom extends Cloudflare.Container<Custom>()("Custom", {
363
- * main: import.meta.filename,
369
+ * main: import.meta.url,
364
370
  * dockerfile: "FROM oven/bun:1\nRUN apt-get update && apt-get install -y ffmpeg",
365
371
  * autoInstallExternals: false,
366
372
  * registryId: "registry.cloudflare.com",
@@ -380,7 +386,7 @@ export type ContainerShape = Main<ContainerServices>;
380
386
  * @example Autoscaling with a larger instance type
381
387
  * ```typescript
382
388
  * export class Sandbox extends Cloudflare.Container<Sandbox>()("Sandbox", {
383
- * main: import.meta.filename,
389
+ * main: import.meta.url,
384
390
  * instanceType: "standard-1",
385
391
  * instances: 1,
386
392
  * maxInstances: 5,
@@ -394,7 +400,7 @@ export type ContainerShape = Main<ContainerServices>;
394
400
  * @example Explicit CPU, memory, and disk overrides
395
401
  * ```typescript
396
402
  * export class Heavy extends Cloudflare.Container<Heavy>()("Heavy", {
397
- * main: import.meta.filename,
403
+ * main: import.meta.url,
398
404
  * vcpu: 2,
399
405
  * memory: "4GB",
400
406
  * disk: { size: "10GB" },
@@ -413,7 +419,7 @@ export type ContainerShape = Main<ContainerServices>;
413
419
  * @example Environment variables, secrets, and a command override
414
420
  * ```typescript
415
421
  * export class Api extends Cloudflare.Container<Api>()("Api", {
416
- * main: import.meta.filename,
422
+ * main: import.meta.url,
417
423
  * environmentVariables: [{ name: "LOG_LEVEL", value: "info" }],
418
424
  * secrets: [{ name: "API_KEY", type: "env", secret: "my-stored-secret" }],
419
425
  * command: ["bun", "run", "start"],
@@ -429,7 +435,7 @@ export type ContainerShape = Main<ContainerServices>;
429
435
  * @example Passing env and selecting runtime exports
430
436
  * ```typescript
431
437
  * export class Job extends Cloudflare.Container<Job>()("Job", {
432
- * main: import.meta.filename,
438
+ * main: import.meta.url,
433
439
  * env: { REGION: "wnam", FEATURE_FLAG: "on" },
434
440
  * exports: ["default"],
435
441
  * }) {}
@@ -446,7 +452,7 @@ export type ContainerShape = Main<ContainerServices>;
446
452
  * @example Ports, network mode, DNS, and a health check
447
453
  * ```typescript
448
454
  * export class Web extends Cloudflare.Container<Web>()("Web", {
449
- * main: import.meta.filename,
455
+ * main: import.meta.url,
450
456
  * ports: [{ name: "http", port: 8080 }],
451
457
  * network: { assignIpv4: "predefined", mode: "public" },
452
458
  * dns: { servers: ["1.1.1.1"], searches: ["internal"] },
@@ -466,7 +472,7 @@ export type ContainerShape = Main<ContainerServices>;
466
472
  * @example Enable logs and grant SSH access
467
473
  * ```typescript
468
474
  * export class Api extends Cloudflare.Container<Api>()("Api", {
469
- * main: import.meta.filename,
475
+ * main: import.meta.url,
470
476
  * observability: { logs: { enabled: true } },
471
477
  * sshPublicKeyIds: ["ssh-key-id-123"],
472
478
  * }) {}
@@ -484,7 +490,7 @@ export type ContainerShape = Main<ContainerServices>;
484
490
  * @example Pin scheduling policy and placement
485
491
  * ```typescript
486
492
  * export class Edge extends Cloudflare.Container<Edge>()("Edge", {
487
- * main: import.meta.filename,
493
+ * main: import.meta.url,
488
494
  * schedulingPolicy: "regional",
489
495
  * constraints: { tier: 1 },
490
496
  * affinities: { colocation: "datacenter" },
@@ -503,7 +509,7 @@ export type ContainerShape = Main<ContainerServices>;
503
509
  * @example Progressive rollout on update
504
510
  * ```typescript
505
511
  * export class Api extends Cloudflare.Container<Api>()("Api", {
506
- * main: import.meta.filename,
512
+ * main: import.meta.url,
507
513
  * instances: 4,
508
514
  * maxInstances: 4,
509
515
  * rollout: { strategy: "rolling", stepPercentage: 25 },
@@ -1,9 +1,8 @@
1
1
  import * as Effect from "effect/Effect";
2
- import * as FileSystem from "effect/FileSystem";
3
2
  import * as Redacted from "effect/Redacted";
4
3
  import type * as rolldown from "rolldown";
5
4
  import * as Bundle from "../../Bundle/Bundle.ts";
6
- import { findCwdForBundle } from "../../Bundle/TempRoot.ts";
5
+ import { findCwdForBundle, resolveMainPath } from "../../Bundle/TempRoot.ts";
7
6
  import * as Output from "../../Output.ts";
8
7
  import { createPhysicalName } from "../../PhysicalName.ts";
9
8
  import { Self } from "../../Self.ts";
@@ -146,11 +145,10 @@ export const bundleContainerProgram = Effect.fn(function* ({
146
145
  external?: string[];
147
146
  outdir?: string;
148
147
  }) {
149
- const fs = yield* FileSystem.FileSystem;
150
148
  const stack = yield* Stack;
151
149
  const virtualEntryPlugin = yield* Bundle.virtualEntryPlugin;
152
150
 
153
- const realMain = yield* fs.realPath(main);
151
+ const realMain = yield* resolveMainPath(main);
154
152
  const cwd = yield* findCwdForBundle(realMain);
155
153
 
156
154
  const buildBundle = Effect.fn(function* (
@@ -5,7 +5,7 @@ import * as Redacted from "effect/Redacted";
5
5
  import { HttpServer, type HttpEffect } from "../../Http.ts";
6
6
  import * as Output from "../../Output.ts";
7
7
  import { Platform } from "../../Platform.ts";
8
- import { type Rpc, serveRpc } from "../../Rpc.ts";
8
+ import { serveRpc, type Rpc } from "../../Rpc.ts";
9
9
  import * as Server from "../../Server/index.ts";
10
10
  import type { Fetcher } from "../Fetcher.ts";
11
11
  import { fromCloudflareFetcher, toCloudflareFetcher } from "../Fetcher.ts";
@@ -53,7 +53,7 @@ export const ContainerPlatform: Platform<
53
53
  );
54
54
  if (httpServer) {
55
55
  yield* httpServer.serve(finalHandler);
56
- yield* Effect.never;
56
+ return yield* Effect.never;
57
57
  } else {
58
58
  // this should only happen at plantime, validate?
59
59
  }
@@ -192,7 +192,7 @@ export const ContainerPlatform: Platform<
192
192
  fromCloudflareFetcher(state.container!.getTcpPort(port)),
193
193
  ),
194
194
  setInactivityTimeout: (durationMs: number | bigint) =>
195
- Effect.sync(() =>
195
+ Effect.promise(() =>
196
196
  state.container!.setInactivityTimeout(durationMs),
197
197
  ),
198
198
  interceptOutboundHttp: (addr: string, binding: Fetcher) =>
@@ -5,17 +5,10 @@ import * as Path from "effect/Path";
5
5
  import * as Schedule from "effect/Schedule";
6
6
  import { Unowned } from "../../AdoptPolicy.ts";
7
7
  import { AlchemyContext } from "../../AlchemyContext.ts";
8
- import { hashDirectory } from "../../Command/Memo.ts";
9
- import {
10
- dockerBuild,
11
- dockerTag,
12
- materializeDockerfile,
13
- pushImage,
14
- runDockerCommand,
15
- writeContextFiles,
16
- } from "../../Bundle/Docker.ts";
17
8
  import { getStableContextDir } from "../../Bundle/TempRoot.ts";
9
+ import { hashDirectory } from "../../Command/Memo.ts";
18
10
  import { deepEqual, isResolved } from "../../Diff.ts";
11
+ import { Docker } from "../../Docker/Docker.ts";
19
12
  import * as Provider from "../../Provider.ts";
20
13
  import { type ResourceBinding } from "../../Resource.ts";
21
14
  import { sha256Object } from "../../Util/sha256.ts";
@@ -65,6 +58,7 @@ export const LiveContainerProvider = () =>
65
58
  const { dotAlchemy } = yield* AlchemyContext;
66
59
  const fs = yield* FileSystem.FileSystem;
67
60
  const path = yield* Path.Path;
61
+ const docker = yield* Docker;
68
62
 
69
63
  const telemetry = yield* CloudflareLogs;
70
64
 
@@ -116,7 +110,17 @@ export const LiveContainerProvider = () =>
116
110
  ) =>
117
111
  normalizeNulls({
118
112
  image: imageRef,
119
- instanceType: props.instanceType,
113
+ // Default to wrangler's instance type ("lite") so containers schedule
114
+ // the same way out of the box. `instance_type` is mutually exclusive
115
+ // with explicit vcpu/memory/disk, so only default it when none are
116
+ // set. ("dev" is wrangler's deprecated alias for "lite".)
117
+ instanceType:
118
+ props.instanceType ??
119
+ (props.vcpu === undefined &&
120
+ props.memory === undefined &&
121
+ props.disk === undefined
122
+ ? "lite"
123
+ : undefined),
120
124
  observability: props.observability,
121
125
  sshPublicKeyIds: props.sshPublicKeyIds,
122
126
  secrets: props.secrets,
@@ -136,6 +140,28 @@ export const LiveContainerProvider = () =>
136
140
  checks: props.checks,
137
141
  }) as ContainerApplication.Configuration;
138
142
 
143
+ // Scaling/placement defaults mirror wrangler's container defaults
144
+ // (`wrangler-dist/cli.js`) so an Alchemy container behaves like a
145
+ // `wrangler deploy`d one without extra config:
146
+ // - max_instances: 20 (`container.max_instances ?? 20`)
147
+ // - instances: 0 (wrangler forces 0 whenever
148
+ // max_instances is set, which we always
149
+ // do — pure scale-from-zero)
150
+ // - scheduling_policy: "default"
151
+ // (wrangler also defaults `constraints.tiers` to `[1, 2]`, but the
152
+ // distilled SDK models constraints as singular `tier`, not the `tiers`
153
+ // array, so we leave constraints untouched — it's a minor placement hint
154
+ // next to the scaling defaults.)
155
+ // A maxInstances default of 1 (the previous value) silently serialised
156
+ // every Durable Object instance through a single container slot, which is
157
+ // the dominant cause of "containers are slow under load".
158
+ const scalingDefaults = (props: ContainerApplicationProps) => ({
159
+ instances: props.instances ?? 0,
160
+ maxInstances: props.maxInstances ?? 20,
161
+ schedulingPolicy: props.schedulingPolicy ?? "default",
162
+ constraints: props.constraints ?? {},
163
+ });
164
+
139
165
  const computeImage = Effect.fn(function* (
140
166
  id: string,
141
167
  props: ContainerApplicationProps,
@@ -226,13 +252,8 @@ export const LiveContainerProvider = () =>
226
252
  if (session) {
227
253
  yield* session.note(`Pulling container image ${build.image}...`);
228
254
  }
229
- yield* runDockerCommand([
230
- "pull",
231
- "--platform",
232
- platform,
233
- build.image,
234
- ]);
235
- yield* dockerTag(build.image, imageRef);
255
+ yield* docker.image.pull(build.image, platform);
256
+ yield* docker.image.tag(build.image, imageRef);
236
257
  } else if (build.kind === "external") {
237
258
  // Build the user's Dockerfile directly against their context dir so
238
259
  // relative `COPY`/`ADD` paths resolve as the author intended.
@@ -242,11 +263,11 @@ export const LiveContainerProvider = () =>
242
263
  if (session) {
243
264
  yield* session.note(`Building container image ${imageRef}...`);
244
265
  }
245
- yield* dockerBuild({
266
+ yield* docker.image.build({
246
267
  tag: imageRef,
247
268
  context: build.context,
248
269
  platform,
249
- extraArgs: ["-f", build.dockerfile],
270
+ file: build.dockerfile,
250
271
  });
251
272
  } else {
252
273
  // Effect-native program: materialize the generated Dockerfile and
@@ -269,19 +290,15 @@ export const LiveContainerProvider = () =>
269
290
  props.external,
270
291
  props.autoInstallExternals,
271
292
  );
272
- yield* materializeDockerfile(finalDockerfile, contextDir);
273
- yield* writeContextFiles(
274
- contextDir,
275
- build.files.map((f, i) => ({
276
- // Keep the entry rename to `index.mjs` so the Dockerfile
277
- // ENTRYPOINT (`ENTRYPOINT ["bun", "/app/index.mjs"]`) stays
278
- // valid; preserve rolldown-assigned fileNames for every other
279
- // chunk so intra-bundle relative imports resolve at runtime.
293
+ yield* docker.materialize({
294
+ context: contextDir,
295
+ dockerfile: finalDockerfile,
296
+ files: build.files.map((f, i) => ({
280
297
  path: i === 0 ? "index.mjs" : f.path,
281
298
  content: f.content,
282
299
  })),
283
- );
284
- yield* dockerBuild({
300
+ });
301
+ yield* docker.image.build({
285
302
  tag: imageRef,
286
303
  context: contextDir,
287
304
  platform,
@@ -312,7 +329,7 @@ export const LiveContainerProvider = () =>
312
329
  );
313
330
  }
314
331
 
315
- yield* pushImage(imageRef, {
332
+ yield* docker.image.push(imageRef, {
316
333
  username,
317
334
  password: credentials.password,
318
335
  server: registryId,
@@ -435,10 +452,7 @@ export const LiveContainerProvider = () =>
435
452
  const application = yield* Containers.createContainerApplication({
436
453
  accountId,
437
454
  name,
438
- instances: news.instances ?? 1,
439
- maxInstances: news.maxInstances ?? 1,
440
- schedulingPolicy: news.schedulingPolicy ?? "default",
441
- constraints: news.constraints ?? {},
455
+ ...scalingDefaults(news),
442
456
  affinities: news.affinities,
443
457
  configuration,
444
458
  durableObjects,
@@ -533,10 +547,7 @@ export const LiveContainerProvider = () =>
533
547
  Containers.updateContainerApplication({
534
548
  accountId,
535
549
  applicationId: existing.applicationId,
536
- instances: news.instances ?? 1,
537
- maxInstances: news.maxInstances ?? 1,
538
- schedulingPolicy: news.schedulingPolicy ?? "default",
539
- constraints: news.constraints ?? {},
550
+ ...scalingDefaults(news),
540
551
  affinities: news.affinities,
541
552
  configuration,
542
553
  }),
@@ -559,10 +570,7 @@ export const LiveContainerProvider = () =>
559
570
  return yield* Containers.createContainerApplication({
560
571
  accountId,
561
572
  name: existing.applicationName,
562
- instances: news.instances ?? 1,
563
- maxInstances: news.maxInstances ?? 1,
564
- schedulingPolicy: news.schedulingPolicy ?? "default",
565
- constraints: news.constraints ?? {},
573
+ ...scalingDefaults(news),
566
574
  affinities: news.affinities,
567
575
  configuration,
568
576
  durableObjects,