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
@@ -113,8 +113,10 @@ export interface PostgresRoleAttributes {
113
113
  database: string;
114
114
  /** The Postgres database name inside the branch. */
115
115
  databaseName: string;
116
- /** Parsed connection components ready to feed into Cloudflare Hyperdrive. */
116
+ /** Parsed direct (port 5432) connection components ready to feed into Cloudflare Hyperdrive. */
117
117
  origin: PostgresOrigin;
118
+ /** Parsed pooled (PSBouncer, port 6432) connection components, e.g. for a Hyperdrive `dev` origin. */
119
+ pooledOrigin: PostgresOrigin;
118
120
  /** Direct connection URL for the database (Redacted). */
119
121
  connectionUrl: Redacted.Redacted<string>;
120
122
  /** Pooled connection URL via PSBouncer (port 6432, Redacted). */
@@ -532,6 +534,14 @@ const buildAttributes = (
532
534
  user: role.username,
533
535
  password,
534
536
  },
537
+ pooledOrigin: {
538
+ scheme: "postgres",
539
+ host: role.access_host_url,
540
+ port: 6432,
541
+ database: role.database_name,
542
+ user: role.username,
543
+ password,
544
+ },
535
545
  branch: context.branch,
536
546
  ttl: role.ttl,
537
547
  };
package/src/Platform.ts CHANGED
@@ -1,3 +1,5 @@
1
+ /** @effect-diagnostics anyUnknownInErrorContext:off */
2
+
1
3
  import type { NodeServices } from "@effect/platform-node/NodeServices";
2
4
  import * as ConfigError from "effect/Config";
3
5
  import * as ConfigProvider from "effect/ConfigProvider";
@@ -11,6 +13,7 @@ import type { Scope } from "effect/Scope";
11
13
  import type * as Stream from "effect/Stream";
12
14
  import type { HttpClient } from "effect/unstable/http/HttpClient";
13
15
  import type { HttpServerRequest } from "effect/unstable/http/HttpServerRequest";
16
+ import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
14
17
  import type { Dependencies } from "./Dependencies.ts";
15
18
  import type { ExecutionContext } from "./ExecutionContext.ts";
16
19
  import type { HttpEffect } from "./Http.ts";
@@ -28,6 +31,7 @@ import {
28
31
  type BaseRuntimeContext,
29
32
  } from "./RuntimeContext.ts";
30
33
  import { Self } from "./Self.ts";
34
+ import { ServerHost, type ProcessContext } from "./Server/Process.ts";
31
35
  import type { Stack, StackServices } from "./Stack.ts";
32
36
  import type { Stage } from "./Stage.ts";
33
37
  import { effectClass } from "./Util/effect.ts";
@@ -242,7 +246,12 @@ export const Platform = <
242
246
  type: R["Type"],
243
247
  hooks: {
244
248
  createRuntimeContext: (id: string) => BaseRuntimeContext;
245
- onCreate?: (resource: R, props: any) => Effect.Effect<void>;
249
+ // `onCreate` runs inside the resource-construction context, which already
250
+ // carries the Stack's providers — so the hook may yield child resources
251
+ // (e.g. an async Worker registering a `WorkflowResource` for a bound
252
+ // Workflow). Allow an ambient requirement (`any`) rather than forcing
253
+ // `never`; it is discharged by the surrounding provider context.
254
+ onCreate?: (resource: R, props: any) => Effect.Effect<void, never, any>;
246
255
  },
247
256
  methods?: { [key: string]: any },
248
257
  ): any => {
@@ -372,17 +381,34 @@ export const Platform = <
372
381
  );
373
382
 
374
383
  yield* impl.pipe(
375
- Effect.flatMap((impl) =>
376
- impl?.fetch
377
- ? // Hand the full impl to `serve` so the runtime can
378
- // expose any non-handler methods on the impl shape
379
- // (e.g. RPC methods on a Cloudflare Worker) alongside
380
- // the standard `fetch` handler.
381
- (runtimeContext.serve?.(impl.fetch, {
382
- shape: impl as Record<string, unknown>,
383
- }) ?? Effect.die("No serve handler"))
384
- : Effect.void,
385
- ),
384
+ Effect.flatMap((impl) => {
385
+ if (!impl) return Effect.void;
386
+ const shape = impl as Record<string, unknown>;
387
+ // Serve when there's a `fetch` handler OR any RPC shape
388
+ // methods. A pure-RPC impl (methods, no `fetch`) still needs
389
+ // the server to boot — hand `serveRpc` a default 404 fallback
390
+ // so `/__rpc__/*` is dispatched to the shape methods and
391
+ // everything else 404s.
392
+ // May be an `HttpEffect` or an Effect resolving to one (the
393
+ // `Main.fetch` shape); `serve` accepts both.
394
+ const fetch = shape.fetch as any;
395
+ const hasRpcMethods = Object.keys(shape).some(
396
+ (key) => key !== "fetch",
397
+ );
398
+ if (!fetch && !hasRpcMethods) return Effect.void;
399
+ // Hand the full impl to `serve` so the runtime can expose any
400
+ // non-handler methods on the impl shape (RPC methods)
401
+ // alongside the standard `fetch` handler.
402
+ return (
403
+ runtimeContext.serve?.(
404
+ fetch ??
405
+ Effect.succeed(
406
+ HttpServerResponse.text("Not Found", { status: 404 }),
407
+ ),
408
+ { shape },
409
+ ) ?? Effect.die("No serve handler")
410
+ );
411
+ }),
386
412
  Effect.provide(
387
413
  Layer.effect(
388
414
  ConfigProvider.ConfigProvider,
@@ -432,6 +458,18 @@ export const Platform = <
432
458
  Layer.succeed(Platform.Platform, runtimeContext),
433
459
  Layer.succeed(PlatformContext, runtimeContext),
434
460
  Layer.succeed(RuntimeContext, runtimeContext),
461
+ // Host contexts (EC2 instances, ECS tasks, processes)
462
+ // carry a `run` for registering long-running loops.
463
+ // Expose it as `ServerHost` so an inline program can
464
+ // `yield* ServerHost` during plan/deploy without the
465
+ // caller providing the layer itself.
466
+ "run" in runtimeContext &&
467
+ typeof (runtimeContext as { run?: unknown }).run ===
468
+ "function"
469
+ ? Layer.succeed(ServerHost, {
470
+ run: (runtimeContext as ProcessContext).run,
471
+ })
472
+ : Layer.empty,
435
473
  Layer.succeed(resource.Self, instance),
436
474
  Layer.succeed(Platform.Self, instance),
437
475
  Layer.succeed(Self, instance),
package/src/Provider.ts CHANGED
@@ -276,7 +276,7 @@ export const effect = <
276
276
  >
277
277
  > =>
278
278
  // @ts-expect-error
279
- Layer.effect(Provider(cls.Type), eff);
279
+ Layer.effect(Provider(cls.Type), eff) as any;
280
280
 
281
281
  export const succeed = <
282
282
  R extends ResourceLike,
package/src/Resource.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Effectable from "effect/Effectable";
3
+ import * as Layer from "effect/Layer";
3
4
  import * as Option from "effect/Option";
4
5
  import type { Pipeable } from "effect/Pipeable";
5
6
  import { AdoptPolicy } from "./AdoptPolicy.ts";
@@ -283,9 +284,14 @@ export function Resource<R extends ResourceLike>(
283
284
  : new Output.PropExpr<any, string>(Output.of(Resource), prop),
284
285
  })) as R;
285
286
  Resource.Props = Effect.isEffect(props)
286
- ? yield* props.pipe(
287
- Effect.provideService(Self, Resource),
288
- Effect.provideService(Self(type), Resource),
287
+ ? // @effect-diagnostics-next-line anyUnknownInErrorContext:off
288
+ yield* props.pipe(
289
+ Effect.provide(
290
+ Layer.mergeAll(
291
+ Layer.succeed(Self, Resource),
292
+ Layer.succeed(Self(type), Resource),
293
+ ),
294
+ ),
289
295
  )
290
296
  : props;
291
297
  return Resource;
package/src/Rpc.ts CHANGED
@@ -18,7 +18,7 @@ export type Rpc<Shape> = {
18
18
 
19
19
  /**
20
20
  * Recover the user's RPC `Shape` from any of the forms a caller might pass
21
- * to {@link toPromiseApi}:
21
+ * to {@link toRpcAsync}:
22
22
  *
23
23
  * - the Worker class value's type, e.g. `typeof Backend`, which extends
24
24
  * `Effect.Effect<Worker & Rpc<Shape>, …>`
@@ -1,3 +1,4 @@
1
+ import * as Config from "effect/Config";
1
2
  import * as Context from "effect/Context";
2
3
  import * as Effect from "effect/Effect";
3
4
  import { FileSystem } from "effect/FileSystem";
@@ -5,6 +6,9 @@ import type { Path } from "effect/Path";
5
6
  import type { Stdio } from "effect/Stdio";
6
7
  import type { Terminal } from "effect/Terminal";
7
8
  import type { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner";
9
+ import type { HttpEffect } from "../Http.ts";
10
+ import * as Http from "../Http.ts";
11
+ import * as Output from "../Output.ts";
8
12
  import type { BaseRuntimeContext } from "../RuntimeContext.ts";
9
13
 
10
14
  export type ProcessServices =
@@ -22,9 +26,86 @@ export interface ProcessContext extends BaseRuntimeContext {
22
26
 
23
27
  /**
24
28
  * Long-running host loop registration (`run`). Provided by `Platform` when the
25
- * execution context implements {@link ProcessContext}.
29
+ * execution context implements {@link ProcessContext} (i.e. carries `run`).
30
+ *
31
+ * `Platform` wires this automatically for every host runtime context that
32
+ * implements `run` (EC2 instances, ECS tasks, processes), so an inline program
33
+ * can `yield* ServerHost` and call `host.run(...)` during plan/deploy without
34
+ * the caller providing the layer itself.
26
35
  */
27
36
  export class ServerHost extends Context.Service<
28
37
  ServerHost,
29
38
  Pick<ProcessContext, "run">
30
39
  >()("Alchemy::ServerHost") {}
40
+
41
+ /**
42
+ * Deploy-time / plan-time host context for platforms that bundle a long-lived
43
+ * program. It collects background work registered via `run` and HTTP handlers
44
+ * registered via `serve` into a single `exports.program` effect that the
45
+ * generated container/instance entrypoint runs.
46
+ */
47
+ export interface HostRuntimeContext extends ProcessContext {
48
+ serve: <Req = never>(
49
+ handler: HttpEffect<Req> | Effect.Effect<HttpEffect<Req>>,
50
+ options?: { shape?: Record<string, unknown> },
51
+ ) => Effect.Effect<void, never, Req>;
52
+ exports: Effect.Effect<{
53
+ readonly program: Effect.Effect<void, never, any>;
54
+ }>;
55
+ }
56
+
57
+ /**
58
+ * Build a {@link HostRuntimeContext} for a hosted platform of the given
59
+ * resource `type`. Both `run` (background loops) and `serve` (HTTP handlers)
60
+ * append to a single list of runners; `exports.program` runs them all
61
+ * concurrently. This is the shared host context used by `AWS.EC2.Instance` and
62
+ * `AWS.ECS.Task`.
63
+ */
64
+ export const createHostRuntimeContext =
65
+ (type: string) =>
66
+ (id: string): HostRuntimeContext => {
67
+ const runners: Effect.Effect<void, never, any>[] = [];
68
+ const env: Record<string, any> = {};
69
+
70
+ return {
71
+ Type: type,
72
+ id,
73
+ env,
74
+ set: (bindingId: string, output: Output.Output) =>
75
+ Effect.sync(() => {
76
+ const key = bindingId.replaceAll(/[^a-zA-Z0-9]/g, "_");
77
+ env[key] = output.pipe(Output.map((value) => JSON.stringify(value)));
78
+ return key;
79
+ }),
80
+ get: <T>(key: string) =>
81
+ Config.string(key).pipe(
82
+ Effect.flatMap((value) =>
83
+ Effect.try({
84
+ try: () => JSON.parse(value) as T,
85
+ catch: (error) => error as Error,
86
+ }),
87
+ ),
88
+ Effect.catch((cause) =>
89
+ Effect.die(
90
+ new Error(`Failed to get environment variable: ${key}`, {
91
+ cause,
92
+ }),
93
+ ),
94
+ ),
95
+ ),
96
+ run: (effect: Effect.Effect<void, never, any>) =>
97
+ Effect.sync(() => {
98
+ runners.push(effect);
99
+ }),
100
+ serve: ((handler) =>
101
+ Effect.sync(() => {
102
+ // Register the HTTP handler as a runner. At container runtime the
103
+ // ambient `HttpServer` (if provided) serves it; `Http.serve` is a
104
+ // no-op when no server is bound, so this never crashes plan/deploy.
105
+ runners.push(Http.serve(handler as HttpEffect<any>));
106
+ })) as HostRuntimeContext["serve"],
107
+ exports: Effect.sync(() => ({
108
+ program: Effect.all(runners, { concurrency: "unbounded" }),
109
+ })),
110
+ } satisfies HostRuntimeContext;
111
+ };
package/src/Stack.ts CHANGED
@@ -48,7 +48,8 @@ export type ProviderServices =
48
48
  | ProviderCollectionLike
49
49
  | Provider<any>
50
50
  | EnvironmentLike
51
- | CredentialsLike;
51
+ | CredentialsLike
52
+ | DockerLike;
52
53
 
53
54
  // tagged type to allow types like AWSEnvironment/AWS Region to bubble through
54
55
  export interface EnvironmentLike {
@@ -60,6 +61,10 @@ export interface CredentialsLike {
60
61
  readonly kind: "Credentials";
61
62
  }
62
63
 
64
+ export interface DockerLike {
65
+ readonly key: "@alchemy/Docker";
66
+ }
67
+
63
68
  export type StackEffect<A, Err = never, Req = never> = Effect.Effect<
64
69
  A,
65
70
  Err,
@@ -352,10 +357,13 @@ export const evalStack = <A, B, StackErr, Err, Req>(
352
357
  Effect.serviceOption(AuthProviders).pipe(
353
358
  Effect.map(Option.getOrElse(() => ({}))),
354
359
  ),
360
+ ).pipe(
361
+ Layer.provideMerge(Layer.succeed(Stage, options.stage)),
362
+ Layer.provideMerge(
363
+ Layer.provideMerge(alchemy({ dev: options.dev }), platform),
364
+ ),
355
365
  ),
356
366
  ),
357
- Effect.provide(Layer.succeed(Stage, options.stage)),
358
- Effect.provide(Layer.provideMerge(alchemy({ dev: options.dev }), platform)),
359
367
  );
360
368
 
361
369
  return options.scope === undefined
package/src/Tags.ts CHANGED
@@ -48,6 +48,18 @@ export const createInternalTags = Effect.fn(function* (id: string) {
48
48
  };
49
49
  });
50
50
 
51
+ /**
52
+ * Strips the internal `alchemy::*` ownership tags from a tag/label map, leaving
53
+ * only the user-facing entries. Useful when diffing observed cloud state (which
54
+ * carries the internal branding) against the user's desired tags.
55
+ */
56
+ export const stripInternalTags = (
57
+ tags: Record<string, string> | null | undefined,
58
+ ): Record<string, string> =>
59
+ Object.fromEntries(
60
+ Object.entries(tags ?? {}).filter(([key]) => !key.startsWith("alchemy::")),
61
+ );
62
+
51
63
  /**
52
64
  * Creates AWS-compatible tag filters for finding resources by alchemy tags.
53
65
  * Use with AWS describe APIs that accept Filter parameters.
@@ -36,10 +36,9 @@ export interface TelemetryAttributes {
36
36
  }
37
37
 
38
38
  const tryRead = (path: string): Effect.Effect<string | null> =>
39
- Effect.tryPromise({
40
- try: () => fs.readFile(path, "utf-8").then((s) => s.trim()),
41
- catch: () => null as never,
42
- }).pipe(Effect.catch(() => Effect.succeed(null)));
39
+ Effect.tryPromise(() =>
40
+ fs.readFile(path, "utf-8").then((s) => s.trim()),
41
+ ).pipe(Effect.orElseSucceed(() => null));
43
42
 
44
43
  const sha256Hex = (input: string): string =>
45
44
  crypto.createHash("sha256").update(input).digest("hex");
@@ -146,18 +145,16 @@ export const isTelemetryDisabled: Effect.Effect<boolean> = Effect.gen(
146
145
  * Persists an opt-out so future invocations skip telemetry without needing
147
146
  * an env var.
148
147
  */
149
- export const setTelemetryDisabled: Effect.Effect<void> = Effect.tryPromise({
150
- try: async () => {
148
+ export const setTelemetryDisabled: Effect.Effect<void> = Effect.tryPromise(
149
+ async () => {
151
150
  await fs.mkdir(ALCHEMY_DIR, { recursive: true });
152
151
  await fs.writeFile(DISABLED_PATH, "true");
153
152
  },
154
- catch: () => null as never,
155
- }).pipe(Effect.catch(() => Effect.void));
153
+ ).pipe(Effect.ignore);
156
154
 
157
- export const setTelemetryEnabled: Effect.Effect<void> = Effect.tryPromise({
158
- try: () => fs.rm(DISABLED_PATH, { force: true }),
159
- catch: () => null as never,
160
- }).pipe(Effect.catch(() => Effect.void));
155
+ export const setTelemetryEnabled: Effect.Effect<void> = Effect.tryPromise(() =>
156
+ fs.rm(DISABLED_PATH, { force: true }),
157
+ ).pipe(Effect.ignore);
161
158
 
162
159
  const collectAttributesUncached: Effect.Effect<TelemetryAttributes> =
163
160
  Effect.gen(function* () {
package/src/Test/Bun.ts CHANGED
@@ -1,3 +1,5 @@
1
+ /** @effect-diagnostics anyUnknownInErrorContext:off */
2
+
1
3
  import bun from "bun:test";
2
4
  import * as Effect from "effect/Effect";
3
5
  import * as Exit from "effect/Exit";
package/src/Test/Core.ts CHANGED
@@ -1,3 +1,5 @@
1
+ /** @effect-diagnostics anyUnknownInErrorContext:off */
2
+
1
3
  import { ConfigProvider } from "effect/ConfigProvider";
2
4
  import * as Effect from "effect/Effect";
3
5
  import * as Layer from "effect/Layer";
@@ -144,15 +146,18 @@ export const withProviders = <A, E, R, ROut>(
144
146
  stackName: string,
145
147
  ): Effect.Effect<A, E, Exclude<R, ROut | Stack | Stage>> =>
146
148
  effect.pipe(
147
- Effect.provide(options.providers as Layer.Layer<any, never, any>),
148
149
  Effect.provide(
149
- Layer.succeed(Stack, {
150
- name: stackName,
151
- stage: options.stage ?? "test",
152
- resources: {},
153
- bindings: {},
154
- actions: {},
155
- }),
150
+ (options.providers as Layer.Layer<any, never, any>).pipe(
151
+ Layer.provideMerge(
152
+ Layer.succeed(Stack, {
153
+ name: stackName,
154
+ stage: options.stage ?? "test",
155
+ resources: {},
156
+ bindings: {},
157
+ actions: {},
158
+ }),
159
+ ),
160
+ ),
156
161
  ),
157
162
  Effect.provide(Layer.succeed(Stage, options.stage ?? "test")),
158
163
  ) as Effect.Effect<A, E, Exclude<R, ROut | Stack | Stage>>;
@@ -1,3 +1,4 @@
1
+ /** @effect-diagnostics anyUnknownInErrorContext:off */
1
2
  import { it } from "@effect/vitest";
2
3
  import * as Effect from "effect/Effect";
3
4
  import * as Exit from "effect/Exit";
@@ -64,7 +64,7 @@ export const isYieldableEffect = (
64
64
  value: unknown,
65
65
  ): value is Effect.Effect<unknown, unknown, unknown> =>
66
66
  Effect.isEffect(value) &&
67
- typeof (value as { [Symbol.iterator]?: unknown })[Symbol.iterator] ===
67
+ typeof (value as any as { [Symbol.iterator]?: unknown })[Symbol.iterator] ===
68
68
  "function";
69
69
 
70
70
  export type YieldableEffectLike<A = unknown, E = unknown, R = unknown> =
@@ -1,3 +1,4 @@
1
+ /** @effect-diagnostics anyUnknownInErrorContext:off */
1
2
  import * as Effect from "effect/Effect";
2
3
 
3
4
  type Op =
@@ -1,75 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as FileSystem from "effect/FileSystem";
3
- import * as Path from "effect/Path";
4
- declare const DockerCommandError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
5
- readonly _tag: "DockerCommandError";
6
- } & Readonly<A>;
7
- export declare class DockerCommandError extends DockerCommandError_base<{
8
- readonly command: string;
9
- readonly stderr: string;
10
- readonly exitCode: number;
11
- readonly message: string;
12
- }> {
13
- }
14
- export interface RegistryAuth {
15
- readonly username: string;
16
- readonly password: string;
17
- /**
18
- * Registry host only (no `https://`, no path), e.g. `123456789.dkr.ecr.us-east-1.amazonaws.com`.
19
- */
20
- readonly server: string;
21
- }
22
- export interface DockerBuildOptions {
23
- /** Image reference passed to `docker build -t`. */
24
- readonly tag: string;
25
- /** Build context directory (`.` argument to `docker build`). */
26
- readonly context: string;
27
- readonly platform?: string;
28
- readonly target?: string;
29
- readonly buildArgs?: Record<string, string>;
30
- /** Appended to `docker build` before the final context path. */
31
- readonly extraArgs?: ReadonlyArray<string>;
32
- readonly env?: Record<string, string | undefined>;
33
- }
34
- export declare const materializeDockerfile: (dockerfile: string, dir: string) => Effect.Effect<string, import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path>;
35
- export declare const writeContextFiles: (dir: string, files: readonly {
36
- readonly path: string;
37
- readonly content: string | Uint8Array;
38
- }[]) => Effect.Effect<void, import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path>;
39
- export declare const runDockerCommand: (args: readonly string[], options?: {
40
- cwd?: string;
41
- env?: Record<string, string | undefined>;
42
- /** Passed to the process stdin (e.g. for `docker login --password-stdin`). */
43
- stdin?: string;
44
- } | undefined) => Effect.Effect<{
45
- stdout: string;
46
- stderr: string;
47
- }, DockerCommandError, import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/Scope").Scope>;
48
- /**
49
- * Run `docker build` with standard flags from {@link DockerBuildOptions}.
50
- */
51
- export declare const dockerBuild: (options: DockerBuildOptions) => Effect.Effect<void, DockerCommandError, import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/Scope").Scope>;
52
- /**
53
- * Get the image ID (content-addressable digest) of a locally-built image.
54
- */
55
- export declare const getDockerImageId: (tag: string) => Effect.Effect<string, DockerCommandError, import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/Scope").Scope>;
56
- /**
57
- * Tag a local image with a new reference.
58
- */
59
- export declare const dockerTag: (source: string, target: string) => Effect.Effect<void, DockerCommandError, import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/Scope").Scope>;
60
- /**
61
- * Log in to a registry using `docker login --password-stdin` (no password on argv).
62
- */
63
- export declare const dockerLogin: (auth: RegistryAuth, options?: {
64
- env?: Record<string, string | undefined>;
65
- } | undefined) => Effect.Effect<void, DockerCommandError, import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/Scope").Scope>;
66
- /**
67
- * Push an image ref. When `auth` is set, uses an isolated `DOCKER_CONFIG`
68
- * directory so concurrent deploys do not race on global docker credentials.
69
- */
70
- export declare const pushImage: (imageRef: string, auth?: RegistryAuth | undefined) => Effect.Effect<{
71
- stdout: string;
72
- stderr: string;
73
- } | undefined, DockerCommandError | import("effect/PlatformError").PlatformError, import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | FileSystem.FileSystem | Path.Path | import("effect/Scope").Scope>;
74
- export {};
75
- //# sourceMappingURL=Docker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Docker.d.ts","sourceRoot":"","sources":["../../src/Bundle/Docker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;;;;AAKpC,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;CAAG;AAEL,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,gEAAgE;IAChE,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACnD;AAED,eAAO,MAAM,qBAAqB,6IAUhC,CAAC;AAEH,eAAO,MAAM,iBAAiB;mBAGX,MAAM;sBACH,MAAM,GAAG,UAAU;4GAcvC,CAAC;AAEH,eAAO,MAAM,gBAAgB;UAGnB,MAAM;UACN,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,8EAA8E;YACtE,MAAM;;;;gIA8ChB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,oLAmBtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,sKAQ3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,uLAEpB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW;UAEJ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;mKASpD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS;;;+NAyCpB,CAAC"}
@@ -1,148 +0,0 @@
1
- import * as Data from "effect/Data";
2
- import * as Effect from "effect/Effect";
3
- import * as FileSystem from "effect/FileSystem";
4
- import * as Path from "effect/Path";
5
- import * as Stream from "effect/Stream";
6
- import { ChildProcess } from "effect/unstable/process";
7
- import { exec } from "../Util/exec.js";
8
- export class DockerCommandError extends Data.TaggedError("DockerCommandError") {
9
- }
10
- export const materializeDockerfile = Effect.fn(function* (dockerfile, dir) {
11
- const fs = yield* FileSystem.FileSystem;
12
- const path = yield* Path.Path;
13
- yield* fs.makeDirectory(dir, { recursive: true });
14
- const target = path.join(dir, "Dockerfile");
15
- yield* fs.writeFileString(target, dockerfile);
16
- return target;
17
- });
18
- export const writeContextFiles = Effect.fn(function* (dir, files) {
19
- const fs = yield* FileSystem.FileSystem;
20
- const path = yield* Path.Path;
21
- for (const file of files) {
22
- const fullPath = path.join(dir, file.path);
23
- yield* fs.makeDirectory(path.dirname(fullPath), { recursive: true });
24
- if (typeof file.content === "string") {
25
- yield* fs.writeFileString(fullPath, file.content);
26
- }
27
- else {
28
- yield* fs.writeFile(fullPath, file.content);
29
- }
30
- }
31
- });
32
- export const runDockerCommand = Effect.fn(function* (args, options) {
33
- const command = `docker ${args.join(" ")}`;
34
- const env = { ...process.env, ...options?.env };
35
- const commandOptions = {
36
- env,
37
- ...(options?.stdin !== undefined
38
- ? {
39
- stdin: Stream.succeed(new TextEncoder().encode(options.stdin)),
40
- }
41
- : {}),
42
- };
43
- const child = options?.cwd
44
- ? ChildProcess.setCwd(ChildProcess.make("docker", args, commandOptions), options.cwd)
45
- : ChildProcess.make("docker", args, commandOptions);
46
- const { stdout, stderr, exitCode } = yield* exec(child).pipe(Effect.catch((e) => Effect.fail(new DockerCommandError({
47
- command,
48
- stderr: e instanceof Error ? e.message : String(e),
49
- exitCode: 1,
50
- message: e instanceof Error ? e.message : String(e),
51
- }))));
52
- if (exitCode !== 0) {
53
- return yield* Effect.fail(new DockerCommandError({
54
- command,
55
- stderr,
56
- exitCode,
57
- message: `Docker command failed (${exitCode}): ${command}\n${stderr}`.trim(),
58
- }));
59
- }
60
- return { stdout, stderr };
61
- });
62
- /**
63
- * Run `docker build` with standard flags from {@link DockerBuildOptions}.
64
- */
65
- export const dockerBuild = Effect.fn(function* (options) {
66
- const args = ["build", "-t", options.tag];
67
- if (options.platform) {
68
- args.push("--platform", options.platform);
69
- }
70
- if (options.target) {
71
- args.push("--target", options.target);
72
- }
73
- if (options.buildArgs) {
74
- for (const [k, v] of Object.entries(options.buildArgs)) {
75
- args.push("--build-arg", `${k}=${v}`);
76
- }
77
- }
78
- if (options.extraArgs?.length) {
79
- args.push(...options.extraArgs);
80
- }
81
- args.push(options.context);
82
- yield* runDockerCommand(args, { env: options.env });
83
- });
84
- /**
85
- * Get the image ID (content-addressable digest) of a locally-built image.
86
- */
87
- export const getDockerImageId = Effect.fn(function* (tag) {
88
- const { stdout } = yield* runDockerCommand([
89
- "inspect",
90
- "--format",
91
- "{{.Id}}",
92
- tag,
93
- ]);
94
- return stdout.trim();
95
- });
96
- /**
97
- * Tag a local image with a new reference.
98
- */
99
- export const dockerTag = Effect.fn(function* (source, target) {
100
- yield* runDockerCommand(["tag", source, target]);
101
- });
102
- /**
103
- * Log in to a registry using `docker login --password-stdin` (no password on argv).
104
- */
105
- export const dockerLogin = Effect.fn(function* (auth, options) {
106
- yield* runDockerCommand(["login", "-u", auth.username, "--password-stdin", auth.server], {
107
- env: options?.env,
108
- stdin: auth.password,
109
- });
110
- });
111
- /**
112
- * Push an image ref. When `auth` is set, uses an isolated `DOCKER_CONFIG`
113
- * directory so concurrent deploys do not race on global docker credentials.
114
- */
115
- export const pushImage = Effect.fn(function* (imageRef, auth) {
116
- if (auth) {
117
- const fs = yield* FileSystem.FileSystem;
118
- const path = yield* Path.Path;
119
- const configDir = yield* fs.makeTempDirectory({
120
- prefix: "alchemy-docker-",
121
- });
122
- // Write the registry credentials directly into an isolated docker config
123
- // as a plaintext `auths` entry and skip `docker login` entirely.
124
- //
125
- // `docker login` is the wrong tool here: on macOS Docker Desktop it routes
126
- // through the shared `osxkeychain`/`desktop` credential helper *regardless*
127
- // of an isolated DOCKER_CONFIG, so concurrent deploys either race the system
128
- // keychain (`The specified item already exists in the keychain (-25299)`) or
129
- // land the credential in the helper — leaving this isolated config without
130
- // an `auths` entry, so the subsequent `docker push` fails with "no basic
131
- // auth credentials". Embedding the base64 `auth` inline (the same thing
132
- // `docker login` would write when no credsStore is configured) makes each
133
- // deploy fully self-contained: no credential helper, no keychain, no login
134
- // race. Only `push` reads this config; `build`/`pull`/`tag` keep using the
135
- // global docker config (buildx builders, `docker context`, etc. intact).
136
- const token = yield* Effect.sync(() => Buffer.from(`${auth.username}:${auth.password}`).toString("base64"));
137
- const config = JSON.stringify({
138
- auths: { [auth.server]: { auth: token } },
139
- });
140
- yield* fs.writeFileString(path.join(configDir, "config.json"), config);
141
- const env = { ...process.env, DOCKER_CONFIG: configDir };
142
- return yield* runDockerCommand(["push", imageRef], { env }).pipe(Effect.ensuring(fs
143
- .remove(configDir, { recursive: true })
144
- .pipe(Effect.catch(() => Effect.void))));
145
- }
146
- yield* runDockerCommand(["push", imageRef]);
147
- });
148
- //# sourceMappingURL=Docker.js.map