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