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,110 @@
1
+ import * as Config from "effect/Config";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Option from "effect/Option";
4
+ import * as Redacted from "effect/Redacted";
5
+ import { HttpServer, type HttpEffect } from "../../Http.ts";
6
+ import * as Output from "../../Output.ts";
7
+ import { serveRpc } from "../../Rpc.ts";
8
+ import * as Server from "../../Server/index.ts";
9
+
10
+ export const MicrovmImageTypeId = "AWS.Lambda.MicrovmImage" as const;
11
+
12
+ /**
13
+ * Runtime context for the in-VM process: an HTTP server (the MicroVM endpoint)
14
+ * that exposes the impl's `fetch` handler plus any RPC shape methods. Mirrors
15
+ * the Cloudflare `ContainerPlatform` process context.
16
+ */
17
+ export const makeMicrovmRuntimeContext = (
18
+ id: string,
19
+ ): Server.ProcessContext => {
20
+ const runners: Effect.Effect<void, never, any>[] = [];
21
+ const env: Record<string, any> = {};
22
+
23
+ const serve = <Req = never>(
24
+ handler: HttpEffect<Req>,
25
+ options?: { shape?: Record<string, unknown> },
26
+ ) =>
27
+ Effect.sync(() => {
28
+ const finalHandler = options?.shape
29
+ ? serveRpc(options.shape, handler)
30
+ : handler;
31
+ runners.push(
32
+ Effect.gen(function* () {
33
+ const httpServer = yield* Effect.serviceOption(HttpServer).pipe(
34
+ Effect.map(Option.getOrUndefined),
35
+ );
36
+ if (httpServer) {
37
+ yield* httpServer.serve(finalHandler);
38
+ yield* Effect.never;
39
+ }
40
+ }).pipe(Effect.orDie),
41
+ );
42
+ });
43
+
44
+ return {
45
+ Type: MicrovmImageTypeId,
46
+ LogicalId: id,
47
+ id,
48
+ env,
49
+ set: (bindingId: string, output: Output.Output) =>
50
+ Effect.sync(() => {
51
+ const key = bindingId.replaceAll(/[^a-zA-Z0-9]/g, "_");
52
+ env[key] = output.pipe(
53
+ Output.map((value) =>
54
+ Redacted.isRedacted(value)
55
+ ? Redacted.make(
56
+ JSON.stringify({
57
+ _tag: "Redacted",
58
+ value: Redacted.value(value),
59
+ }),
60
+ )
61
+ : JSON.stringify(value),
62
+ ),
63
+ );
64
+ return key;
65
+ }),
66
+ get: <T>(key: string) =>
67
+ Config.string(key).pipe(
68
+ Effect.flatMap((value) =>
69
+ Effect.try({
70
+ try: () => {
71
+ const parsed = JSON.parse(value) as T;
72
+ if (
73
+ typeof parsed === "object" &&
74
+ parsed !== null &&
75
+ (parsed as { _tag?: unknown })._tag === "Redacted" &&
76
+ "value" in parsed
77
+ ) {
78
+ return Redacted.make((parsed as { value: unknown }).value) as T;
79
+ }
80
+ return parsed;
81
+ },
82
+ catch: (error) => error as Error,
83
+ }),
84
+ ),
85
+ Effect.catch((cause) =>
86
+ Effect.die(
87
+ new Error(`Failed to get environment variable: ${key}`, { cause }),
88
+ ),
89
+ ),
90
+ ),
91
+ run: ((effect: Effect.Effect<void, never, any>) =>
92
+ Effect.sync(() => {
93
+ runners.push(effect);
94
+ })) as unknown as Server.ProcessContext["run"],
95
+ serve,
96
+ exports: Effect.sync(() => ({
97
+ default: Effect.all(
98
+ runners.map((eff) =>
99
+ Effect.forever(
100
+ eff.pipe(
101
+ Effect.tapError((err) => Effect.logError(err)),
102
+ Effect.ignore,
103
+ ),
104
+ ),
105
+ ),
106
+ { concurrency: "unbounded" },
107
+ ),
108
+ })),
109
+ } as Server.ProcessContext;
110
+ };
@@ -0,0 +1,529 @@
1
+ import * as lambdacore from "@distilled.cloud/aws/lambda-core";
2
+ import * as Data from "effect/Data";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Schedule from "effect/Schedule";
5
+ import * as Stream from "effect/Stream";
6
+
7
+ import type { ScopedPlanStatusSession } from "../../Cli/Cli.ts";
8
+ import { deepEqual, isResolved } from "../../Diff.ts";
9
+ import { createPhysicalName } from "../../PhysicalName.ts";
10
+ import * as Provider from "../../Provider.ts";
11
+ import { Resource } from "../../Resource.ts";
12
+ import { createInternalTags } from "../../Tags.ts";
13
+ import type { Providers } from "../Providers.ts";
14
+
15
+ export interface NetworkConnectorProps {
16
+ /**
17
+ * A unique name for the network connector within your account and Region.
18
+ * Must be 1-64 characters of letters, numbers, hyphens, or underscores.
19
+ * If omitted, a unique name is generated. Changing the name replaces the
20
+ * connector.
21
+ */
22
+ name?: string;
23
+
24
+ /**
25
+ * The IDs of the VPC subnets in which the connector provisions elastic
26
+ * network interfaces (ENIs). These determine which VPC the connector routes
27
+ * egress traffic into.
28
+ */
29
+ subnetIds: string[];
30
+
31
+ /**
32
+ * The IDs of the security groups applied to the connector's elastic network
33
+ * interfaces.
34
+ */
35
+ securityGroupIds?: string[];
36
+
37
+ /**
38
+ * The IP addressing mode for the connector's egress path.
39
+ * @default "IPv4"
40
+ */
41
+ networkProtocol?: lambdacore.NetworkProtocol;
42
+
43
+ /**
44
+ * The Lambda compute resource types that may attach to this connector.
45
+ * @default ["MicroVm"]
46
+ */
47
+ associatedComputeResourceTypes?: lambdacore.ComputeResourceType[];
48
+
49
+ /**
50
+ * The ARN of the IAM role that Lambda assumes to manage elastic network
51
+ * interfaces in your VPC. The role needs `ec2:CreateNetworkInterface` and
52
+ * the related describe/delete permissions.
53
+ */
54
+ operatorRole?: string;
55
+
56
+ /**
57
+ * Tags to apply to the network connector. Tags are set at creation time and
58
+ * cannot be changed afterwards (the API exposes no tagging operations).
59
+ */
60
+ tags?: Record<string, string>;
61
+ }
62
+
63
+ export interface NetworkConnector extends Resource<
64
+ "AWS.Lambda.NetworkConnector",
65
+ NetworkConnectorProps,
66
+ {
67
+ /**
68
+ * The Amazon Resource Name (ARN) of the network connector.
69
+ */
70
+ networkConnectorArn: string;
71
+ /**
72
+ * The unique ID of the network connector.
73
+ */
74
+ networkConnectorId: string;
75
+ /**
76
+ * The name of the network connector.
77
+ */
78
+ name: string;
79
+ /**
80
+ * The current state of the network connector (e.g. `ACTIVE`, `PENDING`,
81
+ * `FAILED`).
82
+ */
83
+ state: lambdacore.NetworkConnectorState;
84
+ /**
85
+ * The ARN of the IAM operator role, if one was configured.
86
+ */
87
+ operatorRole?: string;
88
+ /**
89
+ * The subnet IDs the connector provisions ENIs in.
90
+ */
91
+ subnetIds?: string[];
92
+ /**
93
+ * The security group IDs applied to the connector's ENIs.
94
+ */
95
+ securityGroupIds?: string[];
96
+ /**
97
+ * The IP addressing mode of the connector's egress path.
98
+ */
99
+ networkProtocol?: lambdacore.NetworkProtocol;
100
+ /**
101
+ * The compute resource types associated with the connector.
102
+ */
103
+ associatedComputeResourceTypes?: lambdacore.ComputeResourceType[];
104
+ /**
105
+ * The monotonic version of the connector, incremented on each update.
106
+ */
107
+ version?: number;
108
+ /**
109
+ * The timestamp of the connector's most recent modification (ISO 8601).
110
+ */
111
+ lastModified?: string;
112
+ },
113
+ never,
114
+ Providers
115
+ > {}
116
+
117
+ /**
118
+ * A Lambda network connector that gives Lambda compute resources — notably
119
+ * {@link MicrovmImage} MicroVMs — a managed egress path into your VPC. The
120
+ * connector provisions elastic network interfaces (ENIs) in the subnets you
121
+ * specify so workloads can reach private resources such as databases, caches,
122
+ * and internal APIs.
123
+ *
124
+ * Creation is asynchronous: the connector starts in `PENDING` while ENIs are
125
+ * provisioned (this can take several minutes) and the provider waits until it
126
+ * reaches `ACTIVE`. The connector name is immutable, so renaming it replaces the
127
+ * connector; the VPC configuration and operator role can be updated in place.
128
+ *
129
+ * @resource
130
+ * @section Creating a Network Connector
131
+ * @example VPC Egress Connector
132
+ * ```typescript
133
+ * const connector = yield* AWS.Lambda.NetworkConnector("Egress", {
134
+ * subnetIds: [subnetA.subnetId, subnetB.subnetId],
135
+ * securityGroupIds: [securityGroup.groupId],
136
+ * operatorRole: role.roleArn,
137
+ * });
138
+ * ```
139
+ *
140
+ * @section Dual-Stack Networking
141
+ * @example IPv4 + IPv6 Egress
142
+ * ```typescript
143
+ * const connector = yield* AWS.Lambda.NetworkConnector("DualStack", {
144
+ * subnetIds: [subnet.subnetId],
145
+ * securityGroupIds: [securityGroup.groupId],
146
+ * networkProtocol: "DualStack",
147
+ * });
148
+ * ```
149
+ *
150
+ * @section Using a Connector with MicroVMs
151
+ * A connector is the producer; a {@link MicrovmImage} (or a per-run
152
+ * `RunMicrovm` call) is the consumer. Reference it by ARN in
153
+ * `egressNetworkConnectors`.
154
+ * @example Image-level Egress
155
+ * ```typescript
156
+ * const image = yield* AWS.Lambda.MicrovmImage("Sandbox", {
157
+ * main: import.meta.filename,
158
+ * buildRole,
159
+ * egressNetworkConnectors: [connector.networkConnectorArn],
160
+ * });
161
+ * ```
162
+ */
163
+ export const NetworkConnector = Resource<NetworkConnector>(
164
+ "AWS.Lambda.NetworkConnector",
165
+ );
166
+
167
+ export const NetworkConnectorProvider = () =>
168
+ Provider.succeed(NetworkConnector, {
169
+ stables: ["networkConnectorArn", "networkConnectorId", "name"],
170
+
171
+ diff: Effect.fn(function* ({ id, olds, news }) {
172
+ if (!isResolved(news)) return;
173
+ const oldName = yield* resolveName(id, olds.name);
174
+ const newName = yield* resolveName(id, news.name);
175
+ if (oldName !== newName) {
176
+ return { action: "replace" } as const;
177
+ }
178
+ }),
179
+
180
+ read: Effect.fn(function* ({ id, olds, output }) {
181
+ const identifier =
182
+ output?.networkConnectorId ?? output?.networkConnectorArn;
183
+ const connector = identifier
184
+ ? yield* getConnector(identifier)
185
+ : yield* getConnector(yield* resolveName(id, olds?.name));
186
+ return connector ? toAttrs(connector) : undefined;
187
+ }),
188
+
189
+ list: () =>
190
+ Effect.gen(function* () {
191
+ const summaries = yield* lambdacore.listNetworkConnectors
192
+ .items({})
193
+ .pipe(
194
+ Stream.runCollect,
195
+ Effect.map((chunk) => Array.from(chunk)),
196
+ );
197
+ const connectors = yield* Effect.forEach(
198
+ summaries.filter((c) => c.State !== "DELETING"),
199
+ (summary) => getConnector(summary.Id ?? summary.Arn),
200
+ { concurrency: 10 },
201
+ );
202
+ return connectors.flatMap((c) => (c ? [toAttrs(c)] : []));
203
+ }),
204
+
205
+ reconcile: Effect.fn(function* ({ id, news, output, session }) {
206
+ const name = yield* resolveName(id, news.name);
207
+
208
+ // Observe — prefer the cached identifier, falling back to a name lookup
209
+ // so an interrupted create can recover before re-creating. A connector
210
+ // stuck in DELETE_FAILED is treated as missing so we recreate.
211
+ const found = output?.networkConnectorId
212
+ ? yield* getConnector(output.networkConnectorId)
213
+ : yield* getConnector(name);
214
+ const observed =
215
+ found && found.State !== "DELETE_FAILED" ? found : undefined;
216
+
217
+ // Ensure + sync — each branch returns the active connector, so we never
218
+ // reassign across branches (which `tsc` narrows poorly).
219
+ const connector = observed
220
+ ? yield* syncConnector(observed, name, news, session)
221
+ : yield* createConnector(name, news, id, session);
222
+
223
+ yield* session.note(`Network connector ${name} is ${connector.State}`);
224
+ return toAttrs(connector);
225
+ }),
226
+
227
+ delete: Effect.fn(function* ({ output, session }) {
228
+ yield* session.note(`Deleting network connector ${output.name}...`);
229
+ yield* lambdacore
230
+ .deleteNetworkConnector({ Identifier: output.networkConnectorId })
231
+ .pipe(Effect.catchTag("ResourceNotFoundException", () => Effect.void));
232
+ yield* waitForDeleted(output.networkConnectorId, session);
233
+ }),
234
+ });
235
+
236
+ // === Helpers ===============================================================
237
+
238
+ const resolveName = (id: string, name?: string) =>
239
+ name
240
+ ? Effect.succeed(name)
241
+ : createPhysicalName({ id, maxLength: 64, delimiter: "-" });
242
+
243
+ // A freshly-created IAM operator role (and its inline policies) takes a few
244
+ // seconds to propagate before the Lambda service can assume/use it. The API
245
+ // surfaces that as an InvalidParameterValueException, so retry it briefly
246
+ // (same pattern as Function.ts's role-propagation retry). A genuinely
247
+ // misconfigured role still fails once the bounded retry window elapses.
248
+ const isOperatorRolePropagationError = (e: {
249
+ _tag: string;
250
+ message?: string;
251
+ }) =>
252
+ e._tag === "InvalidParameterValueException" &&
253
+ ((e.message?.includes(
254
+ "unable to assume the provided NetworkConnectorOperatorRole",
255
+ ) ??
256
+ false) ||
257
+ (e.message?.includes("invalid ConnectorOperatorRole permissions") ??
258
+ false));
259
+
260
+ const retryRolePropagation =
261
+ (session: ScopedPlanStatusSession) =>
262
+ <A, E extends { _tag: string; message?: string }, R>(
263
+ self: Effect.Effect<A, E, R>,
264
+ ): Effect.Effect<A, E, R> =>
265
+ self.pipe(
266
+ Effect.tapError((e) =>
267
+ isOperatorRolePropagationError(e)
268
+ ? session.note(
269
+ "Waiting for the operator role to become assumable by Lambda...",
270
+ )
271
+ : Effect.void,
272
+ ),
273
+ Effect.retry({
274
+ while: (e) => isOperatorRolePropagationError(e),
275
+ schedule: Schedule.fixed(1_000).pipe(
276
+ Schedule.both(Schedule.recurs(50)), // up to ~50 seconds
277
+ ),
278
+ }),
279
+ );
280
+
281
+ const getConnector = (identifier: string) =>
282
+ lambdacore
283
+ .getNetworkConnector({ Identifier: identifier })
284
+ .pipe(
285
+ Effect.catchTag("ResourceNotFoundException", () =>
286
+ Effect.succeed(undefined),
287
+ ),
288
+ );
289
+
290
+ const normalizeList = (values: readonly string[] | undefined): string[] =>
291
+ [...(values ?? [])].sort();
292
+
293
+ const desiredEgress = (
294
+ props: NetworkConnectorProps,
295
+ ): lambdacore.NetworkConnectorVpcEgressConfiguration => ({
296
+ SubnetIds: props.subnetIds,
297
+ SecurityGroupIds: props.securityGroupIds,
298
+ NetworkProtocol: props.networkProtocol,
299
+ // The API requires AssociatedComputeResourceTypes for VPC_EGRESS connectors,
300
+ // so apply the documented default when the prop is omitted.
301
+ AssociatedComputeResourceTypes: props.associatedComputeResourceTypes ?? [
302
+ "MicroVm",
303
+ ],
304
+ });
305
+
306
+ const egressEqual = (
307
+ a: lambdacore.NetworkConnectorVpcEgressConfiguration | undefined,
308
+ b: lambdacore.NetworkConnectorVpcEgressConfiguration | undefined,
309
+ ): boolean =>
310
+ deepEqual(
311
+ {
312
+ SubnetIds: normalizeList(a?.SubnetIds),
313
+ SecurityGroupIds: normalizeList(a?.SecurityGroupIds),
314
+ NetworkProtocol: a?.NetworkProtocol,
315
+ AssociatedComputeResourceTypes: normalizeList(
316
+ a?.AssociatedComputeResourceTypes,
317
+ ),
318
+ },
319
+ {
320
+ SubnetIds: normalizeList(b?.SubnetIds),
321
+ SecurityGroupIds: normalizeList(b?.SecurityGroupIds),
322
+ NetworkProtocol: b?.NetworkProtocol,
323
+ AssociatedComputeResourceTypes: normalizeList(
324
+ b?.AssociatedComputeResourceTypes,
325
+ ),
326
+ },
327
+ );
328
+
329
+ const toIso = (value: Date | string | undefined): string | undefined =>
330
+ value instanceof Date ? value.toISOString() : value;
331
+
332
+ const toAttrs = (
333
+ connector: lambdacore.GetNetworkConnectorResponse,
334
+ ): NetworkConnector["Attributes"] => {
335
+ const egress = connector.Configuration?.VpcEgressConfiguration;
336
+ return {
337
+ networkConnectorArn: connector.Arn,
338
+ networkConnectorId: connector.Id,
339
+ name: connector.Name,
340
+ state: connector.State ?? "PENDING",
341
+ operatorRole: connector.OperatorRole,
342
+ subnetIds: egress?.SubnetIds,
343
+ securityGroupIds: egress?.SecurityGroupIds,
344
+ networkProtocol: egress?.NetworkProtocol,
345
+ associatedComputeResourceTypes: egress?.AssociatedComputeResourceTypes,
346
+ version: connector.Version,
347
+ lastModified: toIso(connector.LastModified),
348
+ };
349
+ };
350
+
351
+ // Create the connector with ownership tags and wait for it to become ACTIVE.
352
+ const createConnector = Effect.fn(function* (
353
+ name: string,
354
+ news: NetworkConnectorProps,
355
+ id: string,
356
+ session: ScopedPlanStatusSession,
357
+ ) {
358
+ const internalTags = yield* createInternalTags(id);
359
+ yield* session.note(`Creating network connector ${name}...`);
360
+ const created = yield* lambdacore
361
+ .createNetworkConnector({
362
+ Name: name,
363
+ Configuration: { VpcEgressConfiguration: desiredEgress(news) },
364
+ OperatorRole: news.operatorRole,
365
+ Tags: { ...internalTags, ...news.tags },
366
+ })
367
+ .pipe(
368
+ retryRolePropagation(session),
369
+ // A concurrent create with the same name is a race; fall back to reading
370
+ // the existing connector.
371
+ Effect.catchTag("ResourceConflictException", () =>
372
+ getConnector(name).pipe(
373
+ Effect.flatMap((existing) =>
374
+ existing
375
+ ? Effect.succeed(existing)
376
+ : Effect.die(
377
+ `Network connector ${name} conflicted but was not found.`,
378
+ ),
379
+ ),
380
+ ),
381
+ ),
382
+ );
383
+ return yield* waitForActive(created.Id ?? created.Arn, session);
384
+ });
385
+
386
+ // Apply config / operator-role changes against observed state, waiting for the
387
+ // update to settle; otherwise return the observed connector untouched.
388
+ const syncConnector = Effect.fn(function* (
389
+ connector: lambdacore.GetNetworkConnectorResponse,
390
+ name: string,
391
+ news: NetworkConnectorProps,
392
+ session: ScopedPlanStatusSession,
393
+ ) {
394
+ const observedEgress = connector.Configuration?.VpcEgressConfiguration;
395
+ if (
396
+ egressEqual(observedEgress, desiredEgress(news)) &&
397
+ (connector.OperatorRole ?? undefined) === news.operatorRole
398
+ ) {
399
+ return connector;
400
+ }
401
+ yield* session.note(`Updating network connector ${name}...`);
402
+ yield* lambdacore
403
+ .updateNetworkConnector({
404
+ Identifier: connector.Id,
405
+ Configuration: { VpcEgressConfiguration: desiredEgress(news) },
406
+ OperatorRole: news.operatorRole,
407
+ })
408
+ .pipe(retryRolePropagation(session));
409
+ return yield* waitForUpdate(connector.Id, session);
410
+ });
411
+
412
+ class ConnectorPending extends Data.TaggedError("ConnectorPending")<{
413
+ identifier: string;
414
+ state: string;
415
+ }> {}
416
+
417
+ class ConnectorFailed extends Data.TaggedError("ConnectorFailed")<{
418
+ identifier: string;
419
+ state: string;
420
+ reason?: string;
421
+ }> {}
422
+
423
+ const waitForActive = (identifier: string, session: ScopedPlanStatusSession) =>
424
+ Effect.gen(function* () {
425
+ const connector = yield* lambdacore.getNetworkConnector({
426
+ Identifier: identifier,
427
+ });
428
+ switch (connector.State) {
429
+ case "ACTIVE":
430
+ return connector;
431
+ case "FAILED":
432
+ case "DELETE_FAILED":
433
+ return yield* new ConnectorFailed({
434
+ identifier,
435
+ state: connector.State,
436
+ reason: connector.StateReason ?? connector.StateReasonCode,
437
+ });
438
+ default:
439
+ return yield* new ConnectorPending({
440
+ identifier,
441
+ state: connector.State ?? "PENDING",
442
+ });
443
+ }
444
+ }).pipe(
445
+ Effect.retry({
446
+ while: (e) => e._tag === "ConnectorPending",
447
+ schedule: Schedule.fixed(10_000).pipe(
448
+ Schedule.both(Schedule.recurs(72)), // up to ~12 minutes
449
+ Schedule.tapOutput(([, attempt]) =>
450
+ session.note(
451
+ `Waiting for network connector to become ACTIVE... (${(attempt + 1) * 10}s)`,
452
+ ),
453
+ ),
454
+ ),
455
+ }),
456
+ );
457
+
458
+ const waitForUpdate = (identifier: string, session: ScopedPlanStatusSession) =>
459
+ Effect.gen(function* () {
460
+ const connector = yield* lambdacore.getNetworkConnector({
461
+ Identifier: identifier,
462
+ });
463
+ switch (connector.LastUpdateStatus) {
464
+ case "Successful":
465
+ case undefined:
466
+ return connector;
467
+ case "Failed":
468
+ return yield* new ConnectorFailed({
469
+ identifier,
470
+ state: connector.LastUpdateStatus,
471
+ reason:
472
+ connector.LastUpdateStatusReason ??
473
+ connector.LastUpdateStatusReasonCode,
474
+ });
475
+ default:
476
+ return yield* new ConnectorPending({
477
+ identifier,
478
+ state: connector.LastUpdateStatus ?? "InProgress",
479
+ });
480
+ }
481
+ }).pipe(
482
+ Effect.retry({
483
+ while: (e) => e._tag === "ConnectorPending",
484
+ schedule: Schedule.fixed(10_000).pipe(
485
+ Schedule.both(Schedule.recurs(72)),
486
+ Schedule.tapOutput(([, attempt]) =>
487
+ session.note(
488
+ `Waiting for network connector update... (${(attempt + 1) * 10}s)`,
489
+ ),
490
+ ),
491
+ ),
492
+ }),
493
+ );
494
+
495
+ const waitForDeleted = (identifier: string, session: ScopedPlanStatusSession) =>
496
+ Effect.gen(function* () {
497
+ const connector = yield* lambdacore
498
+ .getNetworkConnector({ Identifier: identifier })
499
+ .pipe(
500
+ Effect.catchTag("ResourceNotFoundException", () =>
501
+ Effect.succeed(undefined),
502
+ ),
503
+ );
504
+ // A missing connector is the success signal — it has been deleted.
505
+ if (!connector) return;
506
+ if (connector.State === "DELETE_FAILED") {
507
+ return yield* new ConnectorFailed({
508
+ identifier,
509
+ state: connector.State,
510
+ reason: connector.StateReason ?? connector.StateReasonCode,
511
+ });
512
+ }
513
+ return yield* new ConnectorPending({
514
+ identifier,
515
+ state: connector.State ?? "DELETING",
516
+ });
517
+ }).pipe(
518
+ Effect.retry({
519
+ while: (e) => e._tag === "ConnectorPending",
520
+ schedule: Schedule.fixed(10_000).pipe(
521
+ Schedule.both(Schedule.recurs(72)),
522
+ Schedule.tapOutput(([, attempt]) =>
523
+ session.note(
524
+ `Waiting for network connector deletion... (${(attempt + 1) * 10}s)`,
525
+ ),
526
+ ),
527
+ ),
528
+ }),
529
+ );
@@ -23,6 +23,7 @@ export const QueueEventSource = Layer.effect(
23
23
  SQSQueueEventSource,
24
24
  // @ts-expect-error - the impl resolves plan-time services (EventSourceMapping)
25
25
  // whereas QueueEventSourceService erases the requirement channel to `never`.
26
+ // @effect-diagnostics-next-line missingEffectContext:off
26
27
  Effect.gen(function* () {
27
28
  const host = yield* Lambda.Function;
28
29
  const Mapping = yield* EventSourceMapping;
@@ -0,0 +1,37 @@
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
+
6
+ export interface ResumeMicrovmRequest extends microvms.ResumeMicrovmRequest {}
7
+
8
+ /**
9
+ * Runtime binding for `ResumeMicrovm`.
10
+ *
11
+ * Bind it to a {@link MicrovmImage} to get a callable that resumes a suspended
12
+ * MicroVM by `microvmIdentifier`, restoring it to `RUNNING`.
13
+ * @binding
14
+ * @section Lifecycle
15
+ * @example Resume a MicroVM
16
+ * ```typescript
17
+ * const resumeMicrovm = yield* AWS.Lambda.ResumeMicrovm(Sandbox);
18
+ * yield* resumeMicrovm({ microvmIdentifier: id });
19
+ * ```
20
+ */
21
+ export interface ResumeMicrovm extends Binding.Service<
22
+ ResumeMicrovm,
23
+ "AWS.Lambda.ResumeMicrovm",
24
+ (
25
+ image: MicrovmImage,
26
+ ) => Effect.Effect<
27
+ (
28
+ request: ResumeMicrovmRequest,
29
+ ) => Effect.Effect<
30
+ microvms.ResumeMicrovmResponse,
31
+ microvms.ResumeMicrovmError
32
+ >
33
+ >
34
+ > {}
35
+ export const ResumeMicrovm = Binding.Service<ResumeMicrovm>(
36
+ "AWS.Lambda.ResumeMicrovm",
37
+ );
@@ -0,0 +1,11 @@
1
+ import * as microvms from "@distilled.cloud/aws/lambda-microvms";
2
+ import { makeImageBinding } from "./MicrovmBinding.ts";
3
+ import { ResumeMicrovm } from "./ResumeMicrovm.ts";
4
+
5
+ export const ResumeMicrovmHttp = makeImageBinding({
6
+ binding: ResumeMicrovm,
7
+ name: "ResumeMicrovm",
8
+ actions: ["lambda:ResumeMicrovm"],
9
+ operation: microvms.resumeMicrovm,
10
+ scope: "microvm",
11
+ });