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
@@ -0,0 +1,18 @@
1
+ import type * as microvms from "@distilled.cloud/aws/lambda-microvms";
2
+ import type * as Effect from "effect/Effect";
3
+ import * as Binding from "../../Binding.ts";
4
+ import type { MicrovmImage } from "./MicrovmImage.ts";
5
+ export interface ListMicrovmImageVersionsRequest extends Omit<microvms.ListMicrovmImageVersionsInput, "imageIdentifier"> {
6
+ }
7
+ /**
8
+ * Runtime binding for `ListMicrovmImageVersions`.
9
+ *
10
+ * Bind it to a {@link MicrovmImage} to list the image's versions (the
11
+ * `imageIdentifier` is injected).
12
+ * @binding
13
+ * @section Image Reads
14
+ */
15
+ export interface ListMicrovmImageVersions extends Binding.Service<ListMicrovmImageVersions, "AWS.Lambda.ListMicrovmImageVersions", (image: MicrovmImage) => Effect.Effect<(request: ListMicrovmImageVersionsRequest) => Effect.Effect<microvms.ListMicrovmImageVersionsOutput, microvms.ListMicrovmImageVersionsError>>> {
16
+ }
17
+ export declare const ListMicrovmImageVersions: ListMicrovmImageVersions;
18
+ //# sourceMappingURL=ListMicrovmImageVersions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListMicrovmImageVersions.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/ListMicrovmImageVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,sCAAsC,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,+BAAgC,SAAQ,IAAI,CAC3D,QAAQ,CAAC,6BAA6B,EACtC,iBAAiB,CAClB;CAAG;AAEJ;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAyB,SAAQ,OAAO,CAAC,OAAO,CAC/D,wBAAwB,EACxB,qCAAqC,EACrC,CACE,KAAK,EAAE,YAAY,KAChB,MAAM,CAAC,MAAM,CAChB,CACE,OAAO,EAAE,+BAA+B,KACrC,MAAM,CAAC,MAAM,CAChB,QAAQ,CAAC,8BAA8B,EACvC,QAAQ,CAAC,6BAA6B,CACvC,CACF,CACF;CAAG;AACJ,eAAO,MAAM,wBAAwB,0BAGlC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import * as Binding from "../../Binding.js";
2
+ export const ListMicrovmImageVersions = Binding.Service("AWS.Lambda.ListMicrovmImageVersions");
3
+ //# sourceMappingURL=ListMicrovmImageVersions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListMicrovmImageVersions.js","sourceRoot":"","sources":["../../../src/AWS/Lambda/ListMicrovmImageVersions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AA8B5C,MAAM,CAAC,MAAM,wBAAwB,GACnC,OAAO,CAAC,OAAO,CACb,qCAAqC,CACtC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ListMicrovmImageVersions } from "./ListMicrovmImageVersions.ts";
2
+ export declare const ListMicrovmImageVersionsHttp: import("effect/Layer").Layer<ListMicrovmImageVersions, never, never>;
3
+ //# sourceMappingURL=ListMicrovmImageVersionsHttp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListMicrovmImageVersionsHttp.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/ListMicrovmImageVersionsHttp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,eAAO,MAAM,4BAA4B,sEAOvC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import * as microvms from "@distilled.cloud/aws/lambda-microvms";
2
+ import { ListMicrovmImageVersions } from "./ListMicrovmImageVersions.js";
3
+ import { makeImageBinding } from "./MicrovmBinding.js";
4
+ export const ListMicrovmImageVersionsHttp = makeImageBinding({
5
+ binding: ListMicrovmImageVersions,
6
+ name: "ListMicrovmImageVersions",
7
+ actions: ["lambda:ListMicrovmImageVersions"],
8
+ operation: microvms.listMicrovmImageVersions,
9
+ scope: "image",
10
+ injectImageIdentifier: true,
11
+ });
12
+ //# sourceMappingURL=ListMicrovmImageVersionsHttp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListMicrovmImageVersionsHttp.js","sourceRoot":"","sources":["../../../src/AWS/Lambda/ListMicrovmImageVersionsHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,CAAC,MAAM,4BAA4B,GAAG,gBAAgB,CAAC;IAC3D,OAAO,EAAE,wBAAwB;IACjC,IAAI,EAAE,0BAA0B;IAChC,OAAO,EAAE,CAAC,iCAAiC,CAAC;IAC5C,SAAS,EAAE,QAAQ,CAAC,wBAAwB;IAC5C,KAAK,EAAE,OAAO;IACd,qBAAqB,EAAE,IAAI;CAC5B,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type * as microvms from "@distilled.cloud/aws/lambda-microvms";
2
+ import type * as Effect from "effect/Effect";
3
+ import * as Binding from "../../Binding.ts";
4
+ import type { MicrovmImage } from "./MicrovmImage.ts";
5
+ export interface ListMicrovmsRequest extends Omit<microvms.ListMicrovmsRequest, "imageIdentifier"> {
6
+ }
7
+ /**
8
+ * Runtime binding for `ListMicrovms`.
9
+ *
10
+ * Bind it to a {@link MicrovmImage} to get a callable that lists the MicroVMs
11
+ * launched from that image (the `imageIdentifier` filter is injected).
12
+ * @binding
13
+ * @section Inspecting MicroVMs
14
+ * @example List MicroVMs
15
+ * ```typescript
16
+ * const listMicrovms = yield* AWS.Lambda.ListMicrovms(Sandbox);
17
+ * const { items } = yield* listMicrovms({});
18
+ * ```
19
+ */
20
+ export interface ListMicrovms extends Binding.Service<ListMicrovms, "AWS.Lambda.ListMicrovms", (image: MicrovmImage) => Effect.Effect<(request: ListMicrovmsRequest) => Effect.Effect<microvms.ListMicrovmsResponse, microvms.ListMicrovmsError>>> {
21
+ }
22
+ export declare const ListMicrovms: ListMicrovms;
23
+ //# sourceMappingURL=ListMicrovms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListMicrovms.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/ListMicrovms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,sCAAsC,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAC/C,QAAQ,CAAC,mBAAmB,EAC5B,iBAAiB,CAClB;CAAG;AAEJ;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,YAAa,SAAQ,OAAO,CAAC,OAAO,CACnD,YAAY,EACZ,yBAAyB,EACzB,CACE,KAAK,EAAE,YAAY,KAChB,MAAM,CAAC,MAAM,CAChB,CACE,OAAO,EAAE,mBAAmB,KACzB,MAAM,CAAC,MAAM,CAChB,QAAQ,CAAC,oBAAoB,EAC7B,QAAQ,CAAC,iBAAiB,CAC3B,CACF,CACF;CAAG;AACJ,eAAO,MAAM,YAAY,cAExB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import * as Binding from "../../Binding.js";
2
+ export const ListMicrovms = Binding.Service("AWS.Lambda.ListMicrovms");
3
+ //# sourceMappingURL=ListMicrovms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListMicrovms.js","sourceRoot":"","sources":["../../../src/AWS/Lambda/ListMicrovms.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAmC5C,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CACzC,yBAAyB,CAC1B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ListMicrovms } from "./ListMicrovms.ts";
2
+ export declare const ListMicrovmsHttp: import("effect/Layer").Layer<ListMicrovms, never, never>;
3
+ //# sourceMappingURL=ListMicrovmsHttp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListMicrovmsHttp.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/ListMicrovmsHttp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,eAAO,MAAM,gBAAgB,0DAO3B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import * as microvms from "@distilled.cloud/aws/lambda-microvms";
2
+ import { ListMicrovms } from "./ListMicrovms.js";
3
+ import { makeImageBinding } from "./MicrovmBinding.js";
4
+ export const ListMicrovmsHttp = makeImageBinding({
5
+ binding: ListMicrovms,
6
+ name: "ListMicrovms",
7
+ actions: ["lambda:ListMicrovms"],
8
+ operation: microvms.listMicrovms,
9
+ scope: "account",
10
+ injectImageIdentifier: true,
11
+ });
12
+ //# sourceMappingURL=ListMicrovmsHttp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListMicrovmsHttp.js","sourceRoot":"","sources":["../../../src/AWS/Lambda/ListMicrovmsHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;IAC/C,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,CAAC,qBAAqB,CAAC;IAChC,SAAS,EAAE,QAAQ,CAAC,YAAY;IAChC,KAAK,EAAE,SAAS;IAChB,qBAAqB,EAAE,IAAI;CAC5B,CAAC,CAAC"}
@@ -0,0 +1,61 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Layer from "effect/Layer";
3
+ import * as Binding from "../../Binding.ts";
4
+ import type { MicrovmImage } from "./MicrovmImage.ts";
5
+ /** The distilled operation method, yielded to its request callable. */
6
+ type Operation<Res, Err> = Effect.Effect<(req: any) => Effect.Effect<Res, Err, any>, any, any>;
7
+ export interface ImageBindingOptions<Req, Res, Err, Self> {
8
+ /** The `Binding.Service` contract this layer implements. */
9
+ binding: Binding.Service<Self, string, (image: MicrovmImage) => Effect.Effect<(req: Req) => Effect.Effect<Res, Err>>>;
10
+ /** Operation name, used for the SID label and tracing, e.g. `"RunMicrovm"`. */
11
+ name: string;
12
+ /** IAM action(s) the host Function needs, e.g. `["lambda:RunMicrovm"]`. */
13
+ actions: string[];
14
+ /** The distilled operation, e.g. `microvms.runMicrovm`. */
15
+ operation: Operation<Res, Err>;
16
+ /**
17
+ * Policy scope (always limited to the bound image's identity — never `["*"]`):
18
+ * - `"image"` (default) scopes to the exact image ARN (e.g. `RunMicrovm`,
19
+ * image-read ops).
20
+ * - `"microvm"` scopes to the MicroVM instances launched from this image via
21
+ * a `microvm:*` glob derived from the image ARN (same partition, region,
22
+ * and account). MicroVM instance ARNs are minted at runtime, so an exact
23
+ * ARN can't be known at deploy time, but the action stays bounded to this
24
+ * account/region's MicroVMs rather than `["*"]`.
25
+ * - `"account"` uses `["*"]`. Reserved for collection-level list actions
26
+ * (e.g. `ListMicrovms`) that AWS only authorizes against `*` and cannot be
27
+ * resource-scoped, analogous to `ec2:DescribeInstances`.
28
+ */
29
+ scope?: "image" | "microvm" | "account";
30
+ /** Inject `imageIdentifier: <imageArn>` into each request. */
31
+ injectImageIdentifier?: boolean;
32
+ /**
33
+ * Also grant `lambda:PassNetworkConnector` on network connectors in the
34
+ * image's region — both the account's own connectors and the AWS-managed
35
+ * ones (e.g. `INTERNET_EGRESS`). Required by `RunMicrovm`, which passes a
36
+ * network connector (defaulting to the managed `INTERNET_EGRESS`) to the
37
+ * launched MicroVM.
38
+ */
39
+ passNetworkConnector?: boolean;
40
+ }
41
+ /**
42
+ * Build a MicroVM runtime binding bound to a {@link MicrovmImage}. At deploy it
43
+ * registers the IAM grant on the host — the Lambda execution role directly, or
44
+ * (for a Cloudflare Worker) a dedicated assume-role Role whose credentials are
45
+ * bound onto the worker. At runtime it calls the distilled operation with the
46
+ * host-appropriate credentials.
47
+ */
48
+ export declare const makeImageBinding: <Req, Res, Err, Self>(options: ImageBindingOptions<Req, Res, Err, Self>) => Layer.Layer<Self>;
49
+ export interface AccountBindingOptions<Req, Res, Err, Self> {
50
+ binding: Binding.Service<Self, string, () => Effect.Effect<(req: Req) => Effect.Effect<Res, Err>>>;
51
+ name: string;
52
+ actions: string[];
53
+ operation: Operation<Res, Err>;
54
+ }
55
+ /**
56
+ * Build an account-scoped MicroVM binding (no resource argument), e.g. for
57
+ * listing AWS-managed base images. IAM `Resource` is `["*"]`.
58
+ */
59
+ export declare const makeAccountBinding: <Req, Res, Err, Self>(options: AccountBindingOptions<Req, Res, Err, Self>) => Layer.Layer<Self>;
60
+ export {};
61
+ //# sourceMappingURL=MicrovmBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MicrovmBinding.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/MicrovmBinding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAOtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAc5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD,uEAAuE;AACvE,KAAK,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,MAAM,CAAC,MAAM,CACtC,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC1C,GAAG,EACH,GAAG,CACJ,CAAC;AA8DF,MAAM,WAAW,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI;IACtD,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC,OAAO,CACtB,IAAI,EACJ,MAAM,EACN,CACE,KAAK,EAAE,YAAY,KAChB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAC1D,CAAC;IACF,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,2DAA2D;IAC3D,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACxC,8DAA8D;IAC9D,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAwMD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,WACzC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,KAChD,KAAK,CAAC,KAAK,CAAC,IAAI,CA4CgB,CAAC;AAEpC,MAAM,WAAW,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI;IACxD,OAAO,EAAE,OAAO,CAAC,OAAO,CACtB,IAAI,EACJ,MAAM,EACN,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAC3D,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,WAC3C,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,KAClD,KAAK,CAAC,KAAK,CAAC,IAAI,CAiCgB,CAAC"}
@@ -0,0 +1,279 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as HashMap from "effect/HashMap";
3
+ import * as Layer from "effect/Layer";
4
+ import * as Option from "effect/Option";
5
+ import * as Redacted from "effect/Redacted";
6
+ import * as Ref from "effect/Ref";
7
+ import * as Scope from "effect/Scope";
8
+ import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
9
+ import { Region } from "@distilled.cloud/aws/Region";
10
+ import * as Binding from "../../Binding.js";
11
+ import * as Output from "../../Output.js";
12
+ import { Credentials, makeAssumeRoleResolver } from "../Credentials.js";
13
+ import { AccessKey } from "../IAM/AccessKey.js";
14
+ import { Role } from "../IAM/Role.js";
15
+ import { User } from "../IAM/User.js";
16
+ import { isFunction } from "./Function.js";
17
+ // We resolve the host (Worker vs Lambda) at both deploy AND runtime to decide
18
+ // how credentials are supplied. A Cloudflare Worker is structurally tagged with
19
+ // this Type id; a hard import of the Cloudflare module graph is avoided.
20
+ const WORKER_TYPE_ID = "Cloudflare.Worker";
21
+ const isWorkerHost = (host) => host.Type === WORKER_TYPE_ID;
22
+ /** Region segment of an AWS ARN (`arn:partition:service:<region>:...`). */
23
+ const regionFromArn = (arn) => arn.split(":")[3] ?? "us-east-1";
24
+ // ---------------------------------------------------------------------------
25
+ // Per-scope singleton store. A Worker reaching AWS must create exactly ONE IAM
26
+ // User + AccessKey + Role (and one assumed-role credential cache) regardless of
27
+ // how many of the ~16 MicroVM `*Http` bindings it uses. A
28
+ // `WeakMap<Scope, Ref<HashMap>>` memoizes any keyed effect for the lifetime of
29
+ // the surrounding scope (the deploy plan, or the worker's runtime init scope),
30
+ // so every binding shares the same resources and the same credentials.
31
+ // ---------------------------------------------------------------------------
32
+ const perScope = new WeakMap();
33
+ // Fallback when no `Scope` is in context — notably a deployed Worker's init
34
+ // phase, which runs outside any scope. Process-wide is an acceptable singleton
35
+ // granularity there (one isolate == one logical host).
36
+ const globalStore = new Map();
37
+ const storeRef = Effect.gen(function* () {
38
+ const scope = yield* Effect.serviceOption(Scope.Scope);
39
+ if (Option.isNone(scope))
40
+ return undefined;
41
+ let ref = perScope.get(scope.value);
42
+ if (!ref) {
43
+ ref = yield* Ref.make(HashMap.empty());
44
+ perScope.set(scope.value, ref);
45
+ }
46
+ return ref;
47
+ });
48
+ const memoize = (key, build) => Effect.gen(function* () {
49
+ const ref = yield* storeRef;
50
+ if (ref) {
51
+ const existing = HashMap.get(yield* Ref.get(ref), key);
52
+ if (Option.isSome(existing))
53
+ return existing.value;
54
+ const value = yield* build;
55
+ yield* Ref.update(ref, HashMap.set(key, value));
56
+ return value;
57
+ }
58
+ if (globalStore.has(key))
59
+ return globalStore.get(key);
60
+ const value = yield* build;
61
+ globalStore.set(key, value);
62
+ return value;
63
+ });
64
+ /**
65
+ * Derive the `microvm:*` instance-ARN glob from an image ARN by swapping the
66
+ * `microvm-image:<name>` resource segment for `microvm:*`, keeping the same
67
+ * `arn:<partition>:lambda:<region>:<account>:` prefix.
68
+ */
69
+ const microvmGlob = (imageArn) => `${imageArn.replace(/:microvm-image[:/].*$/, "")}:microvm:*`;
70
+ /**
71
+ * Derive the network-connector ARN globs from an image ARN: the account's own
72
+ * connectors (`arn:<partition>:lambda:<region>:<account>:network-connector:*`)
73
+ * and the AWS-managed connectors (same prefix but account `aws`).
74
+ */
75
+ const networkConnectorGlobs = (imageArn) => {
76
+ // arn:<partition>:lambda:<region>:<account>
77
+ const prefix = imageArn.replace(/:microvm-image[:/].*$/, "");
78
+ // arn:<partition>:lambda:<region>
79
+ const regionPrefix = prefix.replace(/:[^:]*$/, "");
80
+ return [
81
+ `${prefix}:network-connector:*`,
82
+ `${regionPrefix}:aws:network-connector:*`,
83
+ ];
84
+ };
85
+ /** The IAM policy statements an image-scoped MicroVM operation requires. */
86
+ const imagePolicyStatements = (image, options) => [
87
+ {
88
+ Effect: "Allow",
89
+ Action: options.actions,
90
+ Resource: options.scope === "account"
91
+ ? // Collection-level list actions only authorize on `*`.
92
+ ["*"]
93
+ : options.scope === "microvm"
94
+ ? [
95
+ // Instance ops (GetMicrovm, TerminateMicrovm, CreateAuthToken,
96
+ // …) are authorized by AWS against the image ARN as well as the
97
+ // instance ARN, so grant both: the exact image and the
98
+ // `microvm:*` instance glob derived from it.
99
+ Output.interpolate `${image.imageArn}`,
100
+ image.imageArn.pipe(Output.map(microvmGlob)),
101
+ ]
102
+ : [Output.interpolate `${image.imageArn}`],
103
+ },
104
+ ...(options.passNetworkConnector
105
+ ? [
106
+ {
107
+ Effect: "Allow",
108
+ Action: ["lambda:PassNetworkConnector"],
109
+ Resource: [
110
+ image.imageArn.pipe(Output.map((a) => networkConnectorGlobs(a)[0])),
111
+ image.imageArn.pipe(Output.map((a) => networkConnectorGlobs(a)[1])),
112
+ ],
113
+ },
114
+ ]
115
+ : []),
116
+ ];
117
+ /**
118
+ * Create — once per scope, per host worker — the IAM identity a Cloudflare
119
+ * Worker uses to reach AWS:
120
+ * - an IAM **User** allowed to assume any role that trusts it,
121
+ * - a long-lived **AccessKey** for that user,
122
+ * - a least-privilege **Role** the user assumes (trusts only this user;
123
+ * MicroVM permissions accumulate on it via `role.bind`).
124
+ *
125
+ * The user's access key + the role ARN are read as {@link Output} *accessors*
126
+ * (`yield* accessKey.accessKeyId`, …) — yielding an attribute both registers
127
+ * the binding on the worker (deploy) and returns an `Effect` that reads it at
128
+ * runtime. At runtime those accessors feed an assume-role credentials layer
129
+ * (single-flight, expiry-aware) built once and shared across all bindings.
130
+ */
131
+ const ensureWorkerAwsAccess = (host) => memoize(`microvm-aws:${host.LogicalId}`, Effect.gen(function* () {
132
+ const id = host.LogicalId;
133
+ // The user may assume any role that trusts it (Resource `*`); the role's
134
+ // trust policy is what actually restricts assumption to this user, which
135
+ // avoids a User↔Role ARN dependency cycle while staying safe.
136
+ const user = yield* User(`${id}-microvm-user`, {
137
+ inlinePolicies: {
138
+ "assume-microvm-role": {
139
+ Version: "2012-10-17",
140
+ Statement: [
141
+ { Effect: "Allow", Action: ["sts:AssumeRole"], Resource: ["*"] },
142
+ ],
143
+ },
144
+ },
145
+ });
146
+ const accessKey = yield* AccessKey(`${id}-microvm-key`, {
147
+ userName: user.userName,
148
+ });
149
+ const role = yield* Role(`${id}-microvm-role`, {
150
+ assumeRolePolicyDocument: {
151
+ Version: "2012-10-17",
152
+ Statement: [
153
+ {
154
+ Effect: "Allow",
155
+ Principal: { AWS: user.userArn },
156
+ Action: ["sts:AssumeRole"],
157
+ },
158
+ ],
159
+ },
160
+ });
161
+ // Bind the user's credentials + role ARN onto the worker via accessors:
162
+ // at deploy this registers the env (the secret as `secret_text`); at
163
+ // runtime these resolve to the deployed values.
164
+ const accessKeyId = yield* accessKey.accessKeyId;
165
+ const secretAccessKey = yield* accessKey.secretAccessKey;
166
+ const roleArn = yield* role.roleArn;
167
+ // The long-lived IAM-user credentials that sign `AssumeRole`. Read lazily
168
+ // from the worker environment on each refresh (NOT captured eagerly, so
169
+ // this is valid at deploy time where the env isn't populated yet).
170
+ const base = Layer.succeed(Credentials, Effect.gen(function* () {
171
+ const id = yield* accessKeyId;
172
+ const secret = yield* secretAccessKey;
173
+ return {
174
+ accessKeyId: Redacted.make(id),
175
+ secretAccessKey: secret
176
+ ? Redacted.isRedacted(secret)
177
+ ? secret
178
+ : Redacted.make(secret)
179
+ : Redacted.make(""),
180
+ sessionToken: undefined,
181
+ };
182
+ }));
183
+ // Build the single-flight, expiry-aware assume-role cache ONCE. STS is
184
+ // global, so the endpoint region is a fixed default; the per-request
185
+ // operation provides its own image-derived `Region` separately.
186
+ const credentials = yield* makeAssumeRoleResolver({
187
+ roleArn,
188
+ base,
189
+ region: "us-east-1",
190
+ });
191
+ return { role, credentials };
192
+ }));
193
+ /**
194
+ * Run a MicroVM operation with host-appropriate AWS credentials:
195
+ * - Lambda Function host → the execution-role credentials already in the
196
+ * ambient environment (nothing to provide).
197
+ * - Cloudflare Worker host → the assumed-role credentials, plus a `Region`
198
+ * derived from the image ARN and an `HttpClient`.
199
+ */
200
+ const withRuntimeCredentials = (access, region, eff) => access
201
+ ? Effect.gen(function* () {
202
+ const reg = yield* region;
203
+ // Provide the SHARED cached resolver built once in
204
+ // `ensureWorkerAwsAccess` — NOT a fresh assume-role layer per request —
205
+ // so the assumed-role credentials are reused (and only refreshed near
206
+ // expiry) instead of re-assuming the role on every call.
207
+ return yield* eff.pipe(Effect.provide(Layer.succeed(Credentials, access.credentials)), Effect.provide(Layer.succeed(Region, Effect.succeed(reg))), Effect.provide(FetchHttpClient.layer));
208
+ })
209
+ : eff;
210
+ /**
211
+ * Build a MicroVM runtime binding bound to a {@link MicrovmImage}. At deploy it
212
+ * registers the IAM grant on the host — the Lambda execution role directly, or
213
+ * (for a Cloudflare Worker) a dedicated assume-role Role whose credentials are
214
+ * bound onto the worker. At runtime it calls the distilled operation with the
215
+ * host-appropriate credentials.
216
+ */
217
+ export const makeImageBinding = (options) => Layer.effect(options.binding, Effect.gen(function* () {
218
+ const run = yield* options.operation;
219
+ return Effect.fn(function* (image) {
220
+ const host = yield* Binding.Host;
221
+ const statements = imagePolicyStatements(image, options);
222
+ const label = `Allow(${host.LogicalId}, AWS.Lambda.${options.name}(${image.LogicalId}))`;
223
+ // Accessors (registered on the host at deploy, resolved at runtime).
224
+ const imageArn = yield* image.imageArn;
225
+ // Region is derived from the resolved image ARN — via `Effect.map` of
226
+ // the accessor, NOT a second Output binding (whose env key would embed
227
+ // the mapper's source text and is brittle).
228
+ const region = Effect.map(imageArn, regionFromArn);
229
+ let access;
230
+ if (isFunction(host)) {
231
+ if (!globalThis.__ALCHEMY_RUNTIME__) {
232
+ yield* host.bind `${label}`({ policyStatements: statements });
233
+ }
234
+ }
235
+ else if (isWorkerHost(host)) {
236
+ access = yield* ensureWorkerAwsAccess(host);
237
+ if (!globalThis.__ALCHEMY_RUNTIME__) {
238
+ yield* access.role.bind `${label}`({ policyStatements: statements });
239
+ }
240
+ }
241
+ return Effect.fn(`AWS.Lambda.${options.name}(${image.LogicalId})`)(function* (request) {
242
+ return yield* withRuntimeCredentials(access, region, run(options.injectImageIdentifier
243
+ ? { ...request, imageIdentifier: yield* imageArn }
244
+ : request));
245
+ });
246
+ });
247
+ }));
248
+ /**
249
+ * Build an account-scoped MicroVM binding (no resource argument), e.g. for
250
+ * listing AWS-managed base images. IAM `Resource` is `["*"]`.
251
+ */
252
+ export const makeAccountBinding = (options) => Layer.effect(options.binding, Effect.gen(function* () {
253
+ const run = yield* options.operation;
254
+ return Effect.fn(function* () {
255
+ const host = yield* Binding.Host;
256
+ const label = `Allow(${host.LogicalId}, AWS.Lambda.${options.name}())`;
257
+ const statements = [
258
+ { Effect: "Allow", Action: options.actions, Resource: ["*"] },
259
+ ];
260
+ let access;
261
+ if (isFunction(host)) {
262
+ if (!globalThis.__ALCHEMY_RUNTIME__) {
263
+ yield* host.bind `${label}`({ policyStatements: statements });
264
+ }
265
+ }
266
+ else if (isWorkerHost(host)) {
267
+ access = yield* ensureWorkerAwsAccess(host);
268
+ if (!globalThis.__ALCHEMY_RUNTIME__) {
269
+ yield* access.role.bind `${label}`({ policyStatements: statements });
270
+ }
271
+ }
272
+ return Effect.fn(`AWS.Lambda.${options.name}()`)(function* (request) {
273
+ // Account-level operations are global; default the STS/endpoint region.
274
+ const region = Effect.succeed("us-east-1");
275
+ return yield* withRuntimeCredentials(access, region, run(request));
276
+ });
277
+ });
278
+ }));
279
+ //# sourceMappingURL=MicrovmBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MicrovmBinding.js","sourceRoot":"","sources":["../../../src/AWS/Lambda/MicrovmBinding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as FileSystem from "effect/FileSystem";
3
+ import * as Path from "effect/Path";
4
+ import * as Bundle from "../../Bundle/Bundle.ts";
5
+ import { Stack } from "../../Stack.ts";
6
+ /**
7
+ * The AWS-managed base image MicroVM Dockerfiles build on. The MicroVM build
8
+ * runs the Dockerfile server-side and snapshots the result with Firecracker.
9
+ */
10
+ export declare const MICROVM_BASE_DOCKER_IMAGE = "public.ecr.aws/lambda/microvms:al2023-minimal";
11
+ /** The default port the in-VM HTTP server listens on. */
12
+ export declare const DEFAULT_MICROVM_PORT = 8080;
13
+ /**
14
+ * Build the final Dockerfile for an effectful MicroVM image. Starts from the
15
+ * user-provided base (or the managed MicroVM base), installs the JS runtime,
16
+ * copies the bundled program, and runs it as the entrypoint. Mirrors the
17
+ * Cloudflare Container `buildFinalDockerfile`, but targets the MicroVM base.
18
+ */
19
+ export declare const buildMicrovmDockerfile: (userDockerfile: string | undefined, runtime: "bun" | "node", port: number) => string;
20
+ /**
21
+ * Bundle an Effect-native MicroVM program with Rolldown and wrap it in a
22
+ * generated bootstrap that boots an HTTP server (the MicroVM endpoint). Returns
23
+ * every emitted file so the full set can be zipped into the code artifact.
24
+ *
25
+ * Mirrors `bundleContainerProgram`; the bootstrap provides AWS runtime services
26
+ * (FetchHttpClient + region from env) so in-VM HTTP capability bindings
27
+ * (e.g. S3 `*Http`) resolve against the MicroVM's execution role.
28
+ */
29
+ export declare const bundleMicrovmProgram: (args_0: {
30
+ main: string;
31
+ runtime: "bun" | "node";
32
+ handler?: string | undefined;
33
+ isExternal?: boolean;
34
+ external?: string[];
35
+ port: number;
36
+ }) => Effect.Effect<{
37
+ files: {
38
+ path: string;
39
+ content: Uint8Array<ArrayBufferLike>;
40
+ }[];
41
+ hash: string;
42
+ }, Bundle.BundleError | import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path | Stack>;
43
+ export interface ArtifactFile {
44
+ path: string;
45
+ content: string | Uint8Array;
46
+ }
47
+ /**
48
+ * Zip a flat list of files into a deterministic (fixed mtime) archive. Used to
49
+ * package the MicroVM code artifact (Dockerfile + bundled program, or a build
50
+ * context) before uploading it to S3.
51
+ */
52
+ export declare const zipFiles: (files: readonly ArtifactFile[]) => Effect.Effect<Buffer<ArrayBufferLike>, never, never>;
53
+ /**
54
+ * Recursively read a build-context directory into a flat list of files
55
+ * (relative paths + bytes) for zipping into the code artifact. Used by the
56
+ * external (bring-your-own-Dockerfile) MicroVM mode.
57
+ */
58
+ export declare const readContextDirectory: (dir: string) => Effect.Effect<{
59
+ path: string;
60
+ content: Uint8Array;
61
+ }[], any, FileSystem.FileSystem | Path.Path>;
62
+ //# sourceMappingURL=MicrovmBundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MicrovmBundle.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/MicrovmBundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,yBAAyB,kDACW,CAAC;AAElD,yDAAyD;AACzD,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,mBACjB,MAAM,GAAG,SAAS,WACzB,KAAK,GAAG,MAAM,QACjB,MAAM,KACX,MAwBF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB;UAQzB,MAAM;aACH,KAAK,GAAG,MAAM;cACb,MAAM,GAAG,SAAS;iBACf,OAAO;eACT,MAAM,EAAE;UACb,MAAM;;;;;;;gHAuHZ,CAAC;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;CAC9B;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,0FAenB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;UAON,MAAM;aAAW,UAAU;4CAkBpD,CAAC"}