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
|
@@ -3,6 +3,7 @@ import * as Context from "effect/Context";
|
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
4
|
import { AlchemyContext } from "../../AlchemyContext.ts";
|
|
5
5
|
import { ExecutionContext } from "../../ExecutionContext.ts";
|
|
6
|
+
import type { Input } from "../../Input.ts";
|
|
6
7
|
import type { PlatformServices } from "../../Platform.ts";
|
|
7
8
|
import * as Provider from "../../Provider.ts";
|
|
8
9
|
import { Resource } from "../../Resource.ts";
|
|
@@ -84,6 +85,46 @@ export interface WorkflowExport {
|
|
|
84
85
|
*/
|
|
85
86
|
export type WorkflowImpl<Input = unknown, Result = unknown> = (input: Input) => Effect.Effect<Result, never, WorkflowServices>;
|
|
86
87
|
export declare const isWorkflowExport: (value: unknown) => value is WorkflowExport;
|
|
88
|
+
/**
|
|
89
|
+
* Props for the reference (async) form of {@link Workflow}. Used when binding
|
|
90
|
+
* a Workflow class to a plain async Worker (one without an Effect runtime) via
|
|
91
|
+
* the Worker's `env`. Mirrors `DurableObjectProps`.
|
|
92
|
+
*/
|
|
93
|
+
export interface WorkflowRefProps {
|
|
94
|
+
/**
|
|
95
|
+
* Name of the exported `WorkflowEntrypoint` class.
|
|
96
|
+
*
|
|
97
|
+
* @default name
|
|
98
|
+
*/
|
|
99
|
+
className?: string;
|
|
100
|
+
/**
|
|
101
|
+
* Worker script that hosts the Workflow class. Omit this when the workflow
|
|
102
|
+
* is hosted by the Worker that declares the binding.
|
|
103
|
+
*/
|
|
104
|
+
scriptName?: Input<string>;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* A lightweight reference to a Workflow, produced by the props-only form of
|
|
108
|
+
* {@link Workflow} (`Workflow(name, { className })`). Carries just enough
|
|
109
|
+
* metadata to emit the `workflow` binding for an async Worker and to drive
|
|
110
|
+
* the `putWorkflow` lifecycle. Mirrors `DurableObjectLike`.
|
|
111
|
+
*/
|
|
112
|
+
export interface WorkflowLike<Params = unknown> {
|
|
113
|
+
kind: TypeId;
|
|
114
|
+
name: string;
|
|
115
|
+
/** @internal phantom */
|
|
116
|
+
workflowName?: string;
|
|
117
|
+
/** @internal phantom */
|
|
118
|
+
className?: string;
|
|
119
|
+
/** @internal phantom */
|
|
120
|
+
scriptName?: Input<string>;
|
|
121
|
+
/** @internal phantom */
|
|
122
|
+
Params?: Params;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Type guard for the reference (async) form of a Workflow.
|
|
126
|
+
*/
|
|
127
|
+
export declare const isWorkflowLike: (value: unknown) => value is WorkflowLike;
|
|
87
128
|
/**
|
|
88
129
|
* Type guard for workflow binding metadata in the Worker binding contract.
|
|
89
130
|
*/
|
|
@@ -127,6 +168,7 @@ export interface WorkflowClass extends Effect.Effect<WorkflowHandle, never, Work
|
|
|
127
168
|
new (_: never): WorkflowImpl<Input, Result>;
|
|
128
169
|
};
|
|
129
170
|
};
|
|
171
|
+
<Params = unknown>(name: string, props?: WorkflowRefProps): WorkflowLike<Params>;
|
|
130
172
|
<Input = unknown, Result = unknown, InitReq = never>(name: string, impl: Effect.Effect<WorkflowImpl<Input, Result>, ConfigError, InitReq>): Effect.Effect<WorkflowHandle<Input, Result>, never, Worker | Exclude<InitReq, WorkflowServices>>;
|
|
131
173
|
}
|
|
132
174
|
declare const WorkflowScope_base: Context.ServiceClass<WorkflowScope, "Cloudflare.Workflow", WorkflowHandle<unknown, unknown>>;
|
|
@@ -157,7 +199,7 @@ export declare class WorkflowScope extends WorkflowScope_base {
|
|
|
157
199
|
* ```
|
|
158
200
|
*
|
|
159
201
|
* @resource
|
|
160
|
-
* @product
|
|
202
|
+
* @product Workflows
|
|
161
203
|
* @category Workers & Compute
|
|
162
204
|
*
|
|
163
205
|
* @section Defining a Workflow
|
|
@@ -259,6 +301,70 @@ export declare class WorkflowScope extends WorkflowScope_base {
|
|
|
259
301
|
* };
|
|
260
302
|
* ```
|
|
261
303
|
*
|
|
304
|
+
* @section Binding in an Async Worker
|
|
305
|
+
* When using an Async Worker (plain `async fetch` handler, no Effect
|
|
306
|
+
* runtime), declare Workflows in the `env` prop of the Worker resource.
|
|
307
|
+
* Pass a `Workflow` reference with a `className` matching the exported
|
|
308
|
+
* `WorkflowEntrypoint` subclass in your worker source file. If `className`
|
|
309
|
+
* is omitted, it defaults to the binding name. Use `Cloudflare.InferEnv`
|
|
310
|
+
* to get a fully typed `env` object that includes the workflow binding.
|
|
311
|
+
*
|
|
312
|
+
* @example Declaring a Workflow binding in the stack
|
|
313
|
+
* ```typescript
|
|
314
|
+
* // alchemy.run.ts
|
|
315
|
+
* export type WorkerEnv = Cloudflare.InferEnv<typeof Worker>;
|
|
316
|
+
*
|
|
317
|
+
* export const Worker = Cloudflare.Worker("Worker", {
|
|
318
|
+
* main: "./src/worker.ts",
|
|
319
|
+
* env: {
|
|
320
|
+
* MY_WORKFLOW: Cloudflare.Workflow<{ value: string }>("MyWorkflow", {
|
|
321
|
+
* className: "MyWorkflow",
|
|
322
|
+
* }),
|
|
323
|
+
* },
|
|
324
|
+
* });
|
|
325
|
+
* ```
|
|
326
|
+
*
|
|
327
|
+
* @example Using the Workflow from a plain async handler
|
|
328
|
+
* ```typescript
|
|
329
|
+
* // src/worker.ts
|
|
330
|
+
* import { WorkflowEntrypoint, type WorkflowEvent, type WorkflowStep } from "cloudflare:workers";
|
|
331
|
+
* import type { WorkerEnv } from "../alchemy.run.ts";
|
|
332
|
+
*
|
|
333
|
+
* export class MyWorkflow extends WorkflowEntrypoint<WorkerEnv, { value: string }> {
|
|
334
|
+
* async run(event: Readonly<WorkflowEvent<{ value: string }>>, step: WorkflowStep) {
|
|
335
|
+
* return await step.do("greet", async () => `Hello, ${event.payload.value}!`);
|
|
336
|
+
* }
|
|
337
|
+
* }
|
|
338
|
+
*
|
|
339
|
+
* export default {
|
|
340
|
+
* async fetch(request: Request, env: WorkerEnv) {
|
|
341
|
+
* const instance = await env.MY_WORKFLOW.create({ params: { value: "world" } });
|
|
342
|
+
* return Response.json({ instanceId: instance.id });
|
|
343
|
+
* },
|
|
344
|
+
* };
|
|
345
|
+
* ```
|
|
346
|
+
*
|
|
347
|
+
* @section Cross-Script Binding in an Async Worker
|
|
348
|
+
* Async Workers can also bind to a Workflow hosted by another Worker
|
|
349
|
+
* script. The host Worker declares and exports the `WorkflowEntrypoint`
|
|
350
|
+
* class. The consumer Worker declares a `Workflow` with `scriptName` set
|
|
351
|
+
* to the host Worker's script name. Cross-script references are bindings
|
|
352
|
+
* only — Alchemy does not drive `putWorkflow` for the foreign class, so
|
|
353
|
+
* deploy the host first.
|
|
354
|
+
*
|
|
355
|
+
* @example Consumer Worker binds to the host script
|
|
356
|
+
* ```typescript
|
|
357
|
+
* const consumer = yield* Cloudflare.Worker("Consumer", {
|
|
358
|
+
* main: "./src/consumer.ts",
|
|
359
|
+
* env: {
|
|
360
|
+
* MY_WORKFLOW: Cloudflare.Workflow("MyWorkflow", {
|
|
361
|
+
* className: "MyWorkflow",
|
|
362
|
+
* scriptName: host.workerName,
|
|
363
|
+
* }),
|
|
364
|
+
* },
|
|
365
|
+
* });
|
|
366
|
+
* ```
|
|
367
|
+
*
|
|
262
368
|
* @section Testing Workflows
|
|
263
369
|
* Workflows run asynchronously, so tests start an instance and
|
|
264
370
|
* poll until it reaches a terminal status. A simple recipe with
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workflow.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workflows/Workflow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"Workflow.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workflows/Workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,12 @@ export const isWorkflowExport = (value) => typeof value === "object" &&
|
|
|
56
56
|
value !== null &&
|
|
57
57
|
"kind" in value &&
|
|
58
58
|
value.kind === "workflow";
|
|
59
|
+
/**
|
|
60
|
+
* Type guard for the reference (async) form of a Workflow.
|
|
61
|
+
*/
|
|
62
|
+
export const isWorkflowLike = (value) => typeof value === "object" &&
|
|
63
|
+
value !== null &&
|
|
64
|
+
value.kind === TypeId;
|
|
59
65
|
/**
|
|
60
66
|
* Type guard for workflow binding metadata in the Worker binding contract.
|
|
61
67
|
*/
|
|
@@ -87,7 +93,7 @@ export class WorkflowScope extends Context.Service()("Cloudflare.Workflow") {
|
|
|
87
93
|
* ```
|
|
88
94
|
*
|
|
89
95
|
* @resource
|
|
90
|
-
* @product
|
|
96
|
+
* @product Workflows
|
|
91
97
|
* @category Workers & Compute
|
|
92
98
|
*
|
|
93
99
|
* @section Defining a Workflow
|
|
@@ -189,6 +195,70 @@ export class WorkflowScope extends Context.Service()("Cloudflare.Workflow") {
|
|
|
189
195
|
* };
|
|
190
196
|
* ```
|
|
191
197
|
*
|
|
198
|
+
* @section Binding in an Async Worker
|
|
199
|
+
* When using an Async Worker (plain `async fetch` handler, no Effect
|
|
200
|
+
* runtime), declare Workflows in the `env` prop of the Worker resource.
|
|
201
|
+
* Pass a `Workflow` reference with a `className` matching the exported
|
|
202
|
+
* `WorkflowEntrypoint` subclass in your worker source file. If `className`
|
|
203
|
+
* is omitted, it defaults to the binding name. Use `Cloudflare.InferEnv`
|
|
204
|
+
* to get a fully typed `env` object that includes the workflow binding.
|
|
205
|
+
*
|
|
206
|
+
* @example Declaring a Workflow binding in the stack
|
|
207
|
+
* ```typescript
|
|
208
|
+
* // alchemy.run.ts
|
|
209
|
+
* export type WorkerEnv = Cloudflare.InferEnv<typeof Worker>;
|
|
210
|
+
*
|
|
211
|
+
* export const Worker = Cloudflare.Worker("Worker", {
|
|
212
|
+
* main: "./src/worker.ts",
|
|
213
|
+
* env: {
|
|
214
|
+
* MY_WORKFLOW: Cloudflare.Workflow<{ value: string }>("MyWorkflow", {
|
|
215
|
+
* className: "MyWorkflow",
|
|
216
|
+
* }),
|
|
217
|
+
* },
|
|
218
|
+
* });
|
|
219
|
+
* ```
|
|
220
|
+
*
|
|
221
|
+
* @example Using the Workflow from a plain async handler
|
|
222
|
+
* ```typescript
|
|
223
|
+
* // src/worker.ts
|
|
224
|
+
* import { WorkflowEntrypoint, type WorkflowEvent, type WorkflowStep } from "cloudflare:workers";
|
|
225
|
+
* import type { WorkerEnv } from "../alchemy.run.ts";
|
|
226
|
+
*
|
|
227
|
+
* export class MyWorkflow extends WorkflowEntrypoint<WorkerEnv, { value: string }> {
|
|
228
|
+
* async run(event: Readonly<WorkflowEvent<{ value: string }>>, step: WorkflowStep) {
|
|
229
|
+
* return await step.do("greet", async () => `Hello, ${event.payload.value}!`);
|
|
230
|
+
* }
|
|
231
|
+
* }
|
|
232
|
+
*
|
|
233
|
+
* export default {
|
|
234
|
+
* async fetch(request: Request, env: WorkerEnv) {
|
|
235
|
+
* const instance = await env.MY_WORKFLOW.create({ params: { value: "world" } });
|
|
236
|
+
* return Response.json({ instanceId: instance.id });
|
|
237
|
+
* },
|
|
238
|
+
* };
|
|
239
|
+
* ```
|
|
240
|
+
*
|
|
241
|
+
* @section Cross-Script Binding in an Async Worker
|
|
242
|
+
* Async Workers can also bind to a Workflow hosted by another Worker
|
|
243
|
+
* script. The host Worker declares and exports the `WorkflowEntrypoint`
|
|
244
|
+
* class. The consumer Worker declares a `Workflow` with `scriptName` set
|
|
245
|
+
* to the host Worker's script name. Cross-script references are bindings
|
|
246
|
+
* only — Alchemy does not drive `putWorkflow` for the foreign class, so
|
|
247
|
+
* deploy the host first.
|
|
248
|
+
*
|
|
249
|
+
* @example Consumer Worker binds to the host script
|
|
250
|
+
* ```typescript
|
|
251
|
+
* const consumer = yield* Cloudflare.Worker("Consumer", {
|
|
252
|
+
* main: "./src/consumer.ts",
|
|
253
|
+
* env: {
|
|
254
|
+
* MY_WORKFLOW: Cloudflare.Workflow("MyWorkflow", {
|
|
255
|
+
* className: "MyWorkflow",
|
|
256
|
+
* scriptName: host.workerName,
|
|
257
|
+
* }),
|
|
258
|
+
* },
|
|
259
|
+
* });
|
|
260
|
+
* ```
|
|
261
|
+
*
|
|
192
262
|
* @section Testing Workflows
|
|
193
263
|
* Workflows run asynchronously, so tests start an instance and
|
|
194
264
|
* poll until it reaches a terminal status. A simple recipe with
|
|
@@ -223,10 +293,26 @@ export class WorkflowScope extends Context.Service()("Cloudflare.Workflow") {
|
|
|
223
293
|
* );
|
|
224
294
|
* ```
|
|
225
295
|
*/
|
|
226
|
-
export const Workflow = taggedFunction(WorkflowScope, ((...args) =>
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
296
|
+
export const Workflow = taggedFunction(WorkflowScope, ((...args) => {
|
|
297
|
+
if (args.length === 0) {
|
|
298
|
+
return Workflow;
|
|
299
|
+
}
|
|
300
|
+
const [name, second] = args;
|
|
301
|
+
if (!Effect.isEffect(second)) {
|
|
302
|
+
// Props-only (async) reference form: returns a plain `WorkflowLike` that an
|
|
303
|
+
// async Worker binds via `env`. `WorkerAsyncBindings` emits the `workflow`
|
|
304
|
+
// binding and drives `putWorkflow` for locally-hosted workflows.
|
|
305
|
+
const props = second;
|
|
306
|
+
return {
|
|
307
|
+
kind: TypeId,
|
|
308
|
+
name,
|
|
309
|
+
workflowName: name,
|
|
310
|
+
className: props?.className ?? name,
|
|
311
|
+
scriptName: props?.scriptName,
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
const impl = second;
|
|
315
|
+
return effectClass(Effect.gen(function* () {
|
|
230
316
|
const worker = yield* Worker;
|
|
231
317
|
// Add the workflow binding to the Worker metadata
|
|
232
318
|
yield* worker.bind `${name}`({
|
|
@@ -271,7 +357,8 @@ export const Workflow = taggedFunction(WorkflowScope, ((...args) => args.length
|
|
|
271
357
|
make: (env) => Effect.succeed(((input) => fn(input).pipe(Effect.provideService(WorkerEnvironment, env)))).pipe(Effect.provideContext(services)),
|
|
272
358
|
});
|
|
273
359
|
return self;
|
|
274
|
-
}))
|
|
360
|
+
}));
|
|
361
|
+
}));
|
|
275
362
|
const WorkflowResourceTypeId = "Cloudflare.Workflow";
|
|
276
363
|
export const WorkflowResource = Resource(WorkflowResourceTypeId);
|
|
277
364
|
export const WorkflowProvider = () => Provider.effect(WorkflowResource, Effect.gen(function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workflow.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workflows/Workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,uCAAuC,CAAC;AAEnE,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"Workflow.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workflows/Workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,uCAAuC,CAAC;AAEnE,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EACL,MAAM,EACN,iBAAiB,GAElB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,MAAM,GAAG,qBAA8B,CAAC;AAE9C,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,OAAO,EAO/C,CAAC,oCAAoC,CAAC;CAAG;AAE5C;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO,CAAC,OAAO,EAO9C,CAAC,mCAAmC,CAAC;CAAG;AAE3C,8EAA8E;AAC9E,8BAA8B;AAC9B,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,IAAY,EACZ,MAAkC,EACS,EAAE,CAC7C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAK,CAAC;IAC3C,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC;AAEL;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,IAAY,EACZ,QAAyB,EACiB,EAAE,CAC5C,YAAY,CAAC,IAAI,CACf,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EACpD,MAAM,CAAC,KAAK,CACb,CAAC;AAEJ;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,IAAY,EACZ,SAAwB,EACkB,EAAE,CAC5C,YAAY,CAAC,IAAI,CACf,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAC1D,MAAM,CAAC,KAAK,CACb,CAAC;AA8CJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAA2B,EAAE,CAC1E,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,MAAM,IAAI,KAAK;IACd,KAAa,CAAC,IAAI,KAAK,UAAU,CAAC;AAwCrC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAc,EAAyB,EAAE,CACtE,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACb,KAA4B,CAAC,IAAI,KAAK,MAAM,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAEjC,EAMC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC;AA0DjC,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,OAAO,EAG/C,CAAC,qBAAqB,CAAC;CAAG;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAkB,cAAc,CAAC,aAAa,EAAE,CAAC,CACpE,GAAG,IAGyC,EAC5C,EAAE;IACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,4EAA4E;QAC5E,2EAA2E;QAC3E,iEAAiE;QACjE,MAAM,KAAK,GAAG,MAAsC,CAAC;QACrD,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI;YACJ,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,IAAI;YACnC,UAAU,EAAE,KAAK,EAAE,UAAU;SACP,CAAC;IAC3B,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC;IACpB,OAAO,WAAW,CAChB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;QAE7B,kDAAkD;QAClD,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAA,GAAG,IAAI,EAAE,CAAC;YAC1B,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI;oBACJ,YAAY,EAAE,IAAI;oBAClB,SAAS,EAAE,IAAI;iBAChB;aACF;SACF,CAAC,CAAC;QAEH,kEAAkE;QAClE,KAAK,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE;YAC5B,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAgC,CAAC;QAEvE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YAChC,iBAAiB;YACjB,aAAa;SACd,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC1C,OAAO,MAAM,CAAC,OAAO,CAAC,SAAgB,CAAC,CAAC;YAC1C,CAAC;YACD,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,aAAa,IAAI,oBAAoB,CAAC,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,IAAI,GAA6B;YACrC,IAAI,EAAE,MAAM;YACZ,IAAI;YACJ,MAAM,EAAE,CAAC,KAAc,EAAE,EAAE,CACzB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAC7D,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EACxB,MAAM,CAAC,KAAK,CACb;YACH,GAAG,EAAE,CAAC,UAAkB,EAAE,EAAE,CAC1B,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CACnD,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EACxB,MAAM,CAAC,KAAK,CACb;SACJ,CAAC;QAEF,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CACzB,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,IAAW,CAAC,CAClD,CAAC;QAEF,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YACzB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,CAAC,GAAY,EAAE,EAAE,CACrB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAc,EAAE,EAAE,CACjC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CACZ,MAAM,CAAC,cAAc,CACnB,iBAAiB,EACjB,GAA0B,CAC3B,CACF,CAA2B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SAC/C,CAAC,CAAC;QAE5B,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAQ,CAAC,CAAC;AAoBX,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;AAQrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CACtC,sBAAsB,CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,QAAQ,CAAC,MAAM,CACb,gBAAgB,EAChB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;IAElC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,uHAAuH;QACvH,OAAO,EAAE,CAAC,WAAW,CAAC;QACtB,wEAAwE;QACxE,uEAAuE;QACvE,yEAAyE;QACzE,4CAA4C;QAC5C,IAAI,EAAE,GAAG,EAAE,CACT,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC;YAC1D,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAC7D,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACjC,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC/B,UAAU,EAAE,EAAE,CAAC,EAAE;gBACjB,YAAY,EAAE,EAAE,CAAC,IAAI;gBACrB,0DAA0D;gBAC1D,4DAA4D;gBAC5D,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,EAAE;gBAC7B,UAAU,EAAE,EAAE,CAAC,UAAU,IAAI,EAAE;gBAC/B,SAAS;aACV,CAAC,CAAC,CACJ,CACF,CACF,CAAC;QACJ,CAAC,CAAC;QACJ,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE;YACnC,iHAAiH;YACjH,IAAI,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;gBACtD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC;QACF,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YAC9C,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC;YAC1D,MAAM,IAAI,GAAG,MAAM,EAAE,SAAS,IAAI,SAAS,CAAC;YAC5C,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,kCAAkC,IAAI,CAAC,YAAY,EAAE,CACtD,CAAC;YACF,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;gBACZ,OAAO;oBACL,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,EAAE,EAAE;oBAC9D,SAAS;oBACT,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC;YACJ,CAAC;YACD,gEAAgE;YAChE,gEAAgE;YAChE,gEAAgE;YAChE,4CAA4C;YAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;gBAC1C,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC,CAAC;YACH,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,EAAE;gBACrB,YAAY,EAAE,MAAM,CAAC,IAAI;gBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,SAAS,EAAE,IAAI;aAChB,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE;YACrC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,+BAA+B,MAAM,CAAC,YAAY,EAAE,CACrD,CAAC;YACF,KAAK,CAAC,CAAC,SAAS;iBACb,cAAc,CAAC;gBACd,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,CAAC;iBACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC;KACH,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC;AAEJ,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,YAAY,GAAG,CAAS,GAAQ,EAA4B,EAAE,CAAC,CAAC;IACpE,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CACxC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QACtB,MAAM,EAAE,CAAC,CAAC,MAAgB;QAC1B,MAAM,EAAE,CAAC,CAAC,MAAgB;QAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC,CAAC,EACH,MAAM,CAAC,KAAK,CACb;IACH,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IACpE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IACtE,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;CAC7E,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Build.d.ts","sourceRoot":"","sources":["../../src/Command/Build.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Build.d.ts","sourceRoot":"","sources":["../../src/Command/Build.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAGpC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAEL,eAAe,EAEf,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE5D,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,KAAM,SAAQ,QAAQ,CACrC,eAAe,EACf,UAAU,EACV;IACE;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QACJ;;WAEG;QACH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B;;WAEG;QACH,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;KAC5B,CAAC;CACH,CACF;CAAG;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,KAAK,+CAAmC,CAAC;AAiBtD,eAAO,MAAM,aAAa,0HAyFvB,CAAC"}
|
package/lib/Command/Build.js
CHANGED
|
@@ -2,9 +2,11 @@ import * as Effect from "effect/Effect";
|
|
|
2
2
|
import * as Equal from "effect/Equal";
|
|
3
3
|
import * as FileSystem from "effect/FileSystem";
|
|
4
4
|
import * as Path from "effect/Path";
|
|
5
|
+
import * as Redacted from "effect/Redacted";
|
|
5
6
|
import { havePropsChanged, isResolved } from "../Diff.js";
|
|
6
7
|
import * as Provider from "../Provider.js";
|
|
7
8
|
import { Resource } from "../Resource.js";
|
|
9
|
+
import { sha256Object } from "../Util/sha256.js";
|
|
8
10
|
import { CommandError, CommandExecutor, OutputNotFound, } from "./Command.js";
|
|
9
11
|
import { hashDirectory } from "./Memo.js";
|
|
10
12
|
/**
|
|
@@ -56,6 +58,17 @@ import { hashDirectory } from "./Memo.js";
|
|
|
56
58
|
* ```
|
|
57
59
|
*/
|
|
58
60
|
export const Build = Resource("Command.Build");
|
|
61
|
+
/**
|
|
62
|
+
* Resolves `Redacted` env values to their plain string so that a change in a
|
|
63
|
+
* secret's value still busts the memo hash (the hash is one-way, so the secret
|
|
64
|
+
* itself is never recoverable from state).
|
|
65
|
+
*/
|
|
66
|
+
const resolveEnv = (env) => env
|
|
67
|
+
? Object.fromEntries(Object.entries(env).map(([key, value]) => [
|
|
68
|
+
key,
|
|
69
|
+
Redacted.isRedacted(value) ? Redacted.value(value) : value,
|
|
70
|
+
]))
|
|
71
|
+
: undefined;
|
|
59
72
|
export const BuildProvider = () => Provider.effect(Build, Effect.gen(function* () {
|
|
60
73
|
const path = yield* Path.Path;
|
|
61
74
|
const fs = yield* FileSystem.FileSystem;
|
|
@@ -76,10 +89,20 @@ export const BuildProvider = () => Provider.effect(Build, Effect.gen(function* (
|
|
|
76
89
|
hash: props.memo === false
|
|
77
90
|
? { input: undefined, output: undefined }
|
|
78
91
|
: yield* Effect.all({
|
|
92
|
+
// Fold the resolved command + env into the input hash so
|
|
93
|
+
// two builds that share the same source tree + `outdir`
|
|
94
|
+
// but differ in their command or environment (e.g.
|
|
95
|
+
// per-stage builds baking different `EXPO_PUBLIC_*` /
|
|
96
|
+
// API ids) are never judged reusable. Without this the
|
|
97
|
+
// second build silently reuses the first's stale output.
|
|
79
98
|
input: hashDirectory({
|
|
80
99
|
cwd,
|
|
81
100
|
memo: props.memo === true ? {} : props.memo,
|
|
82
|
-
})
|
|
101
|
+
}).pipe(Effect.flatMap((files) => sha256Object({
|
|
102
|
+
files,
|
|
103
|
+
command: props.command,
|
|
104
|
+
env: resolveEnv(props.env),
|
|
105
|
+
}))),
|
|
83
106
|
output: hashDirectory({
|
|
84
107
|
cwd: outdir,
|
|
85
108
|
memo: {
|
package/lib/Command/Build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Build.js","sourceRoot":"","sources":["../../src/Command/Build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,cAAc,GAEf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAoB,MAAM,WAAW,CAAC;AAgD5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAQ,eAAe,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAChC,QAAQ,CAAC,MAAM,CACb,KAAK,EACL,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC;IAEvC,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAiB;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC,CAAC,IAAI,YAAY,CAAC;gBAC7B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,IAAI,cAAc,CAAC;oBACzB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QACD,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC;YAC5C,IAAI,EACF,KAAK,CAAC,IAAI,KAAK,KAAK;gBAClB,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;gBACzC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACf;oBACE,KAAK,EAAE,aAAa,CAAC;wBACnB,GAAG;wBACH,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;qBAC5C,CAAC;
|
|
1
|
+
{"version":3,"file":"Build.js","sourceRoot":"","sources":["../../src/Command/Build.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import * as Duration from "effect/Duration";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import type { PlatformError } from "effect/PlatformError";
|
|
4
|
+
import * as Redacted from "effect/Redacted";
|
|
5
|
+
import * as Provider from "../Provider.ts";
|
|
6
|
+
import { Resource } from "../Resource.ts";
|
|
7
|
+
import { Docker } from "./Docker.ts";
|
|
8
|
+
import type { Providers } from "./Providers.ts";
|
|
9
|
+
export interface ContainerProps {
|
|
10
|
+
/** Image reference or Docker image resource. */
|
|
11
|
+
image: Container.Image;
|
|
12
|
+
/**
|
|
13
|
+
* Container name.
|
|
14
|
+
*
|
|
15
|
+
* @default Generated from stack, stage, logical id, and instance id.
|
|
16
|
+
*/
|
|
17
|
+
name?: string;
|
|
18
|
+
/** Command to run in the container. */
|
|
19
|
+
command?: string[];
|
|
20
|
+
/** Container environment variables. Use Redacted for secrets. */
|
|
21
|
+
environment?: Record<string, string | Redacted.Redacted<string>>;
|
|
22
|
+
/** Host/container port mappings. */
|
|
23
|
+
ports?: Container.PortMapping[];
|
|
24
|
+
/** Volume or bind mounts. */
|
|
25
|
+
volumes?: Container.VolumeMapping[];
|
|
26
|
+
/** Restart policy. */
|
|
27
|
+
restart?: "no" | "always" | "on-failure" | "unless-stopped";
|
|
28
|
+
/** Networks to connect after create. */
|
|
29
|
+
networks?: Container.NetworkMapping[];
|
|
30
|
+
/** Remove the container when it exits. @default false */
|
|
31
|
+
removeOnExit?: boolean;
|
|
32
|
+
/** Start the container after creation/reconciliation. @default false */
|
|
33
|
+
start?: boolean;
|
|
34
|
+
/** Docker healthcheck configuration. */
|
|
35
|
+
healthcheck?: Container.Healthcheck;
|
|
36
|
+
}
|
|
37
|
+
export declare namespace Container {
|
|
38
|
+
type Status = "created" | "running" | "paused" | "restarting" | "removing" | "exited" | "dead";
|
|
39
|
+
type Image = string | {
|
|
40
|
+
imageRef: string;
|
|
41
|
+
};
|
|
42
|
+
interface PortMapping {
|
|
43
|
+
/** External port on the host. */
|
|
44
|
+
external: number | string;
|
|
45
|
+
/** Internal port inside the container. */
|
|
46
|
+
internal: number | string;
|
|
47
|
+
/** Protocol used for the mapping. @default "tcp" */
|
|
48
|
+
protocol?: "tcp" | "udp";
|
|
49
|
+
}
|
|
50
|
+
interface VolumeMapping {
|
|
51
|
+
/** Host path or named volume source. */
|
|
52
|
+
hostPath: string;
|
|
53
|
+
/** Container path. */
|
|
54
|
+
containerPath: string;
|
|
55
|
+
/** Mount read-only. @default false */
|
|
56
|
+
readOnly?: boolean;
|
|
57
|
+
}
|
|
58
|
+
interface NetworkMapping {
|
|
59
|
+
/** Network name or ID. */
|
|
60
|
+
name: string;
|
|
61
|
+
/** Network aliases for the container. */
|
|
62
|
+
aliases?: string[];
|
|
63
|
+
}
|
|
64
|
+
interface Healthcheck {
|
|
65
|
+
/** Command to run for health checks. */
|
|
66
|
+
cmd: string[] | string;
|
|
67
|
+
/** Time between checks. */
|
|
68
|
+
interval?: Duration.Input;
|
|
69
|
+
/** Maximum time a check may run. */
|
|
70
|
+
timeout?: Duration.Input;
|
|
71
|
+
/** Consecutive failures before unhealthy. */
|
|
72
|
+
retries?: number;
|
|
73
|
+
/** Startup grace period. */
|
|
74
|
+
startPeriod?: Duration.Input;
|
|
75
|
+
/** Check interval during startup. Requires Docker API 1.44+. */
|
|
76
|
+
startInterval?: Duration.Input;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export interface Container extends Resource<"Docker.Container", ContainerProps, {
|
|
80
|
+
/** Docker container id. */
|
|
81
|
+
id: string;
|
|
82
|
+
/** Docker container name. */
|
|
83
|
+
name: string;
|
|
84
|
+
/** Docker container state. */
|
|
85
|
+
status: Container.Status;
|
|
86
|
+
/** Creation timestamp in milliseconds since epoch. */
|
|
87
|
+
createdAt: number;
|
|
88
|
+
/** Image reference used to create the container. */
|
|
89
|
+
imageRef: string;
|
|
90
|
+
/**
|
|
91
|
+
* Map of internal container ports to their bound host ports.
|
|
92
|
+
* Format: `"80/tcp" -> 8080`.
|
|
93
|
+
*/
|
|
94
|
+
ports: Record<string, number>;
|
|
95
|
+
}, never, Providers> {
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* A Docker container managed through the active Docker context.
|
|
99
|
+
*
|
|
100
|
+
* This resource creates, starts, stops, inspects, and removes containers through
|
|
101
|
+
* the Docker CLI. It is not interchangeable with `Cloudflare.Container`, which
|
|
102
|
+
* manages Cloudflare's container platform; use pushed image references to bridge
|
|
103
|
+
* Docker-built images into cloud container runtimes.
|
|
104
|
+
*
|
|
105
|
+
* @resource
|
|
106
|
+
*
|
|
107
|
+
* @section Running Containers
|
|
108
|
+
* @example Nginx with a published port
|
|
109
|
+
* ```typescript
|
|
110
|
+
* const nginx = yield* Docker.Container("nginx", {
|
|
111
|
+
* image: "nginx:alpine",
|
|
112
|
+
* ports: [{ external: 8080, internal: 80 }],
|
|
113
|
+
* start: true,
|
|
114
|
+
* });
|
|
115
|
+
* ```
|
|
116
|
+
*
|
|
117
|
+
* @section Secret Environment
|
|
118
|
+
* @example Redacted env var
|
|
119
|
+
* ```typescript
|
|
120
|
+
* const password = yield* Config.redacted("POSTGRES_PASSWORD");
|
|
121
|
+
* const db = yield* Docker.Container("postgres", {
|
|
122
|
+
* image: "postgres:18-alpine",
|
|
123
|
+
* environment: {
|
|
124
|
+
* POSTGRES_PASSWORD: password,
|
|
125
|
+
* },
|
|
126
|
+
* start: true,
|
|
127
|
+
* });
|
|
128
|
+
* ```
|
|
129
|
+
*
|
|
130
|
+
* @section Networks and Volumes
|
|
131
|
+
* @example PostgreSQL with persistent storage
|
|
132
|
+
* ```typescript
|
|
133
|
+
* const network = yield* Docker.Network("app-network");
|
|
134
|
+
* const data = yield* Docker.Volume("postgres-data");
|
|
135
|
+
* const postgresName = "app-postgres";
|
|
136
|
+
* yield* Docker.Container("postgres", {
|
|
137
|
+
* name: postgresName,
|
|
138
|
+
* image: "postgres:18-alpine",
|
|
139
|
+
* ports: [{ external: 15432, internal: 5432 }],
|
|
140
|
+
* volumes: [{ hostPath: data.name, containerPath: "/var/lib/postgresql/data" }],
|
|
141
|
+
* networks: [{ name: network.name, aliases: ["postgres"] }],
|
|
142
|
+
* start: true,
|
|
143
|
+
* });
|
|
144
|
+
* const runtime = yield* Docker.inspectContainer(postgresName);
|
|
145
|
+
* ```
|
|
146
|
+
*/
|
|
147
|
+
export declare const Container: import("../Resource.ts").ResourceClass<Container>;
|
|
148
|
+
/**
|
|
149
|
+
* Inspect a Docker container by name and return normalized runtime details.
|
|
150
|
+
*
|
|
151
|
+
* This is a small public wrapper around Docker's raw inspect output. It returns
|
|
152
|
+
* the stable data Alchemy callers typically need, including bound host ports.
|
|
153
|
+
*/
|
|
154
|
+
export declare const inspectContainer: (name: string) => Effect.Effect<Container["Attributes"], PlatformError, Docker>;
|
|
155
|
+
export declare const ContainerProvider: () => import("effect/Layer").Layer<Provider.Provider<Container>, never, Docker | import("../Stack.ts").Stack | import("../Stage.ts").Stage>;
|
|
156
|
+
//# sourceMappingURL=Container.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../src/Docker/Container.ts"],"names":[],"mappings":"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"}
|