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
|
@@ -147,7 +147,7 @@ export const makeWorkerRuntimeContext = (id: string): WorkerRuntimeContext => {
|
|
|
147
147
|
// layer the fetch path uses, then envelope-encodes the result so
|
|
148
148
|
// `Effect.fail` round-trips as `RpcErrorEnvelope` and `Stream` as
|
|
149
149
|
// `RpcStreamEnvelope` (consumers wrap the binding with
|
|
150
|
-
// `
|
|
150
|
+
// `toRpcAsync`/`bindWorker` to decode).
|
|
151
151
|
|
|
152
152
|
return {
|
|
153
153
|
...exports,
|
|
@@ -93,14 +93,56 @@ export type DispatchNamespace = Resource<
|
|
|
93
93
|
* ```
|
|
94
94
|
*
|
|
95
95
|
* @section Uploading user Workers
|
|
96
|
-
* @example Upload a customer
|
|
96
|
+
* @example Upload a customer Worker into the namespace
|
|
97
|
+
* A {@link Cloudflare.Worker} deploys into the namespace as a "user worker"
|
|
98
|
+
* (rather than as a routable account-level script) when its `namespace` prop is
|
|
99
|
+
* set. Reference the namespace by its `name` output so it deploys first.
|
|
97
100
|
* ```typescript
|
|
98
|
-
* const
|
|
101
|
+
* const namespace = yield* Cloudflare.WorkersForPlatforms.DispatchNamespace("Customers", {});
|
|
102
|
+
*
|
|
103
|
+
* const customerA = yield* Cloudflare.Worker("CustomerA", {
|
|
99
104
|
* namespace: namespace.name,
|
|
100
105
|
* script: `export default { fetch() { return new Response("hi"); } }`,
|
|
101
106
|
* });
|
|
102
107
|
* ```
|
|
103
108
|
*
|
|
109
|
+
* @section Dispatching from a platform Worker
|
|
110
|
+
* @example Effect-native binding via `Get`
|
|
111
|
+
* `Cloudflare.WorkersForPlatforms.Get(namespace)` binds the namespace and
|
|
112
|
+
* returns an Effect-native client; `get(name)` resolves a user Worker by script
|
|
113
|
+
* name. Provide {@link GetBinding} on the Worker's runtime layer.
|
|
114
|
+
* ```typescript
|
|
115
|
+
* const dispatch = yield* Cloudflare.WorkersForPlatforms.Get(namespace);
|
|
116
|
+
*
|
|
117
|
+
* return {
|
|
118
|
+
* fetch: Effect.gen(function* () {
|
|
119
|
+
* const request = yield* HttpServerRequest;
|
|
120
|
+
* const userWorker = yield* dispatch.get("CustomerA");
|
|
121
|
+
* return yield* Effect.promise(() => userWorker.fetch(request));
|
|
122
|
+
* }),
|
|
123
|
+
* };
|
|
124
|
+
* ```
|
|
125
|
+
*
|
|
126
|
+
* @example Async binding via `env` + `InferEnv`
|
|
127
|
+
* Passing the namespace on a Worker's `env` binds it as a native
|
|
128
|
+
* `dispatch_namespace` binding; `Cloudflare.InferEnv` types `env.DISPATCH` as
|
|
129
|
+
* the runtime `DispatchNamespace`, so the async handler calls `.get(name)`
|
|
130
|
+
* directly.
|
|
131
|
+
* ```typescript
|
|
132
|
+
* const platform = Cloudflare.Worker("Platform", {
|
|
133
|
+
* main: "./handler.ts",
|
|
134
|
+
* env: { DISPATCH: namespace },
|
|
135
|
+
* });
|
|
136
|
+
* type Env = Cloudflare.InferEnv<typeof platform>;
|
|
137
|
+
*
|
|
138
|
+
* // handler.ts
|
|
139
|
+
* export default {
|
|
140
|
+
* async fetch(request: Request, env: Env) {
|
|
141
|
+
* return env.DISPATCH.get("CustomerA").fetch(request);
|
|
142
|
+
* },
|
|
143
|
+
* };
|
|
144
|
+
* ```
|
|
145
|
+
*
|
|
104
146
|
* @see https://developers.cloudflare.com/cloudflare-for-platforms/workers-for-platforms/
|
|
105
147
|
*/
|
|
106
148
|
export const DispatchNamespace = Resource<DispatchNamespace>(TypeId);
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/// <reference types="@cloudflare/workers-types" />
|
|
2
|
+
|
|
3
|
+
import * as Data from "effect/Data";
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Binding from "../../Binding.ts";
|
|
6
|
+
import type { RuntimeContext } from "../../RuntimeContext.ts";
|
|
7
|
+
import type { DispatchNamespace as DispatchNamespaceResource } from "./DispatchNamespace.ts";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Bind a {@link DispatchNamespace} to a Worker and obtain the Effect-native
|
|
11
|
+
* dynamic-dispatch client (`get`).
|
|
12
|
+
*
|
|
13
|
+
* `Get` is a single identifier that is simultaneously the binding's Context
|
|
14
|
+
* tag, its type, and the callable —
|
|
15
|
+
* `yield* Cloudflare.WorkersForPlatforms.Get(namespace)`.
|
|
16
|
+
*
|
|
17
|
+
* Provide {@link GetBinding} on the Worker's runtime layer to resolve the
|
|
18
|
+
* underlying `dispatch_namespace` binding at request time.
|
|
19
|
+
*
|
|
20
|
+
* @binding
|
|
21
|
+
* @product Workers for Platforms
|
|
22
|
+
* @category Workers & Compute
|
|
23
|
+
*
|
|
24
|
+
* @section Dispatching to user Workers
|
|
25
|
+
* @example Dispatch a request to a customer Worker
|
|
26
|
+
* Bind the namespace during the Worker's init phase, then look up and forward
|
|
27
|
+
* to a user Worker from a request handler.
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const dispatch = yield* Cloudflare.WorkersForPlatforms.Get(namespace);
|
|
30
|
+
*
|
|
31
|
+
* return {
|
|
32
|
+
* fetch: Effect.gen(function* () {
|
|
33
|
+
* const request = yield* HttpServerRequest;
|
|
34
|
+
* const userWorker = yield* dispatch.get("customer-a");
|
|
35
|
+
* return yield* Effect.promise(() => userWorker.fetch(request));
|
|
36
|
+
* }),
|
|
37
|
+
* };
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @see https://developers.cloudflare.com/cloudflare-for-platforms/workers-for-platforms/get-started/dynamic-dispatch/
|
|
41
|
+
*/
|
|
42
|
+
export interface Get extends Binding.Service<
|
|
43
|
+
Get,
|
|
44
|
+
"Cloudflare.WorkersForPlatforms.Get",
|
|
45
|
+
(
|
|
46
|
+
namespace: DispatchNamespaceResource,
|
|
47
|
+
) => Effect.Effect<DispatchNamespaceClient>
|
|
48
|
+
> {}
|
|
49
|
+
|
|
50
|
+
export const Get = Binding.Service<Get>("Cloudflare.WorkersForPlatforms.Get");
|
|
51
|
+
|
|
52
|
+
/** Error raised by dynamic-dispatch runtime operations. */
|
|
53
|
+
export class DispatchNamespaceError extends Data.TaggedError(
|
|
54
|
+
"DispatchNamespaceError",
|
|
55
|
+
)<{
|
|
56
|
+
/** Human-readable runtime error message. */
|
|
57
|
+
message: string;
|
|
58
|
+
/** Original error thrown by the Cloudflare runtime binding. */
|
|
59
|
+
cause: unknown;
|
|
60
|
+
}> {}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Effect-native client for a Workers for Platforms dispatch-namespace Worker
|
|
64
|
+
* binding.
|
|
65
|
+
*
|
|
66
|
+
* Wraps the runtime `DispatchNamespace` binding so the lookup returns an
|
|
67
|
+
* Effect tagged with {@link DispatchNamespaceError}. Use
|
|
68
|
+
* `Cloudflare.WorkersForPlatforms.Get(namespace)` inside a Worker's init
|
|
69
|
+
* phase.
|
|
70
|
+
*/
|
|
71
|
+
export interface DispatchNamespaceClient {
|
|
72
|
+
/** Effect resolving to the raw dispatch-namespace runtime binding. */
|
|
73
|
+
raw: Effect.Effect<DispatchNamespace, never, RuntimeContext>;
|
|
74
|
+
/**
|
|
75
|
+
* Look up a user Worker in the dispatch namespace by script name and obtain
|
|
76
|
+
* a `Fetcher` to send it requests.
|
|
77
|
+
*
|
|
78
|
+
* @param name Name of the user Worker script.
|
|
79
|
+
* @param args Arguments passed to the user Worker script.
|
|
80
|
+
* @param options Options for the dynamic-dispatch invocation.
|
|
81
|
+
*/
|
|
82
|
+
get(
|
|
83
|
+
name: string,
|
|
84
|
+
args?: { [key: string]: any },
|
|
85
|
+
options?: DynamicDispatchOptions,
|
|
86
|
+
): Effect.Effect<Fetcher, DispatchNamespaceError, RuntimeContext>;
|
|
87
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/// <reference types="@cloudflare/workers-types" />
|
|
2
|
+
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
import { Worker, WorkerEnvironment } from "../Workers/Worker.ts";
|
|
6
|
+
import type { DispatchNamespace as DispatchNamespaceResource } from "./DispatchNamespace.ts";
|
|
7
|
+
import {
|
|
8
|
+
type DispatchNamespaceClient,
|
|
9
|
+
DispatchNamespaceError,
|
|
10
|
+
Get,
|
|
11
|
+
} from "./Get.ts";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Implementation of the {@link Get} binding that uses a native
|
|
15
|
+
* `dispatch_namespace` Worker binding.
|
|
16
|
+
*/
|
|
17
|
+
export const GetBinding = Layer.effect(
|
|
18
|
+
Get,
|
|
19
|
+
Effect.gen(function* () {
|
|
20
|
+
const env = yield* WorkerEnvironment;
|
|
21
|
+
const host = yield* Worker;
|
|
22
|
+
|
|
23
|
+
return Effect.fn(function* (namespace: DispatchNamespaceResource) {
|
|
24
|
+
if (!globalThis.__ALCHEMY_RUNTIME__) {
|
|
25
|
+
yield* host.bind`${namespace}`({
|
|
26
|
+
bindings: [
|
|
27
|
+
{
|
|
28
|
+
type: "dispatch_namespace",
|
|
29
|
+
name: namespace.LogicalId,
|
|
30
|
+
namespace: namespace.name,
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const raw = Effect.sync(
|
|
37
|
+
// Lazy — the WorkerEnvironment binding is not populated until runtime.
|
|
38
|
+
() => (env as Record<string, DispatchNamespace>)[namespace.LogicalId]!,
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
const self: DispatchNamespaceClient = {
|
|
42
|
+
raw,
|
|
43
|
+
get: (name, args, options) =>
|
|
44
|
+
raw.pipe(
|
|
45
|
+
Effect.flatMap((ns) =>
|
|
46
|
+
Effect.try({
|
|
47
|
+
try: () => ns.get(name, args, options),
|
|
48
|
+
catch: (error) =>
|
|
49
|
+
new DispatchNamespaceError({
|
|
50
|
+
message:
|
|
51
|
+
error instanceof Error
|
|
52
|
+
? error.message
|
|
53
|
+
: "Unknown dispatch namespace runtime error",
|
|
54
|
+
cause: error,
|
|
55
|
+
}),
|
|
56
|
+
}),
|
|
57
|
+
),
|
|
58
|
+
),
|
|
59
|
+
};
|
|
60
|
+
return self;
|
|
61
|
+
});
|
|
62
|
+
}),
|
|
63
|
+
);
|
|
@@ -5,6 +5,7 @@ import * as Effect from "effect/Effect";
|
|
|
5
5
|
import * as Stream from "effect/Stream";
|
|
6
6
|
import { AlchemyContext } from "../../AlchemyContext.ts";
|
|
7
7
|
import { ExecutionContext } from "../../ExecutionContext.ts";
|
|
8
|
+
import type { Input } from "../../Input.ts";
|
|
8
9
|
import { ALCHEMY_PHASE } from "../../Phase.ts";
|
|
9
10
|
import type { PlatformServices } from "../../Platform.ts";
|
|
10
11
|
import * as Provider from "../../Provider.ts";
|
|
@@ -149,6 +150,52 @@ export const isWorkflowExport = (value: unknown): value is WorkflowExport =>
|
|
|
149
150
|
"kind" in value &&
|
|
150
151
|
(value as any).kind === "workflow";
|
|
151
152
|
|
|
153
|
+
/**
|
|
154
|
+
* Props for the reference (async) form of {@link Workflow}. Used when binding
|
|
155
|
+
* a Workflow class to a plain async Worker (one without an Effect runtime) via
|
|
156
|
+
* the Worker's `env`. Mirrors `DurableObjectProps`.
|
|
157
|
+
*/
|
|
158
|
+
export interface WorkflowRefProps {
|
|
159
|
+
/**
|
|
160
|
+
* Name of the exported `WorkflowEntrypoint` class.
|
|
161
|
+
*
|
|
162
|
+
* @default name
|
|
163
|
+
*/
|
|
164
|
+
className?: string;
|
|
165
|
+
/**
|
|
166
|
+
* Worker script that hosts the Workflow class. Omit this when the workflow
|
|
167
|
+
* is hosted by the Worker that declares the binding.
|
|
168
|
+
*/
|
|
169
|
+
scriptName?: Input<string>;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* A lightweight reference to a Workflow, produced by the props-only form of
|
|
174
|
+
* {@link Workflow} (`Workflow(name, { className })`). Carries just enough
|
|
175
|
+
* metadata to emit the `workflow` binding for an async Worker and to drive
|
|
176
|
+
* the `putWorkflow` lifecycle. Mirrors `DurableObjectLike`.
|
|
177
|
+
*/
|
|
178
|
+
export interface WorkflowLike<Params = unknown> {
|
|
179
|
+
kind: TypeId;
|
|
180
|
+
name: string;
|
|
181
|
+
/** @internal phantom */
|
|
182
|
+
workflowName?: string;
|
|
183
|
+
/** @internal phantom */
|
|
184
|
+
className?: string;
|
|
185
|
+
/** @internal phantom */
|
|
186
|
+
scriptName?: Input<string>;
|
|
187
|
+
/** @internal phantom */
|
|
188
|
+
Params?: Params;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Type guard for the reference (async) form of a Workflow.
|
|
193
|
+
*/
|
|
194
|
+
export const isWorkflowLike = (value: unknown): value is WorkflowLike =>
|
|
195
|
+
typeof value === "object" &&
|
|
196
|
+
value !== null &&
|
|
197
|
+
(value as { kind?: unknown }).kind === TypeId;
|
|
198
|
+
|
|
152
199
|
/**
|
|
153
200
|
* Type guard for workflow binding metadata in the Worker binding contract.
|
|
154
201
|
*/
|
|
@@ -204,6 +251,10 @@ export interface WorkflowClass extends Effect.Effect<
|
|
|
204
251
|
new (_: never): WorkflowImpl<Input, Result>;
|
|
205
252
|
};
|
|
206
253
|
};
|
|
254
|
+
<Params = unknown>(
|
|
255
|
+
name: string,
|
|
256
|
+
props?: WorkflowRefProps,
|
|
257
|
+
): WorkflowLike<Params>;
|
|
207
258
|
<Input = unknown, Result = unknown, InitReq = never>(
|
|
208
259
|
name: string,
|
|
209
260
|
impl: Effect.Effect<WorkflowImpl<Input, Result>, ConfigError, InitReq>,
|
|
@@ -244,7 +295,7 @@ export class WorkflowScope extends Context.Service<
|
|
|
244
295
|
* ```
|
|
245
296
|
*
|
|
246
297
|
* @resource
|
|
247
|
-
* @product
|
|
298
|
+
* @product Workflows
|
|
248
299
|
* @category Workers & Compute
|
|
249
300
|
*
|
|
250
301
|
* @section Defining a Workflow
|
|
@@ -346,6 +397,70 @@ export class WorkflowScope extends Context.Service<
|
|
|
346
397
|
* };
|
|
347
398
|
* ```
|
|
348
399
|
*
|
|
400
|
+
* @section Binding in an Async Worker
|
|
401
|
+
* When using an Async Worker (plain `async fetch` handler, no Effect
|
|
402
|
+
* runtime), declare Workflows in the `env` prop of the Worker resource.
|
|
403
|
+
* Pass a `Workflow` reference with a `className` matching the exported
|
|
404
|
+
* `WorkflowEntrypoint` subclass in your worker source file. If `className`
|
|
405
|
+
* is omitted, it defaults to the binding name. Use `Cloudflare.InferEnv`
|
|
406
|
+
* to get a fully typed `env` object that includes the workflow binding.
|
|
407
|
+
*
|
|
408
|
+
* @example Declaring a Workflow binding in the stack
|
|
409
|
+
* ```typescript
|
|
410
|
+
* // alchemy.run.ts
|
|
411
|
+
* export type WorkerEnv = Cloudflare.InferEnv<typeof Worker>;
|
|
412
|
+
*
|
|
413
|
+
* export const Worker = Cloudflare.Worker("Worker", {
|
|
414
|
+
* main: "./src/worker.ts",
|
|
415
|
+
* env: {
|
|
416
|
+
* MY_WORKFLOW: Cloudflare.Workflow<{ value: string }>("MyWorkflow", {
|
|
417
|
+
* className: "MyWorkflow",
|
|
418
|
+
* }),
|
|
419
|
+
* },
|
|
420
|
+
* });
|
|
421
|
+
* ```
|
|
422
|
+
*
|
|
423
|
+
* @example Using the Workflow from a plain async handler
|
|
424
|
+
* ```typescript
|
|
425
|
+
* // src/worker.ts
|
|
426
|
+
* import { WorkflowEntrypoint, type WorkflowEvent, type WorkflowStep } from "cloudflare:workers";
|
|
427
|
+
* import type { WorkerEnv } from "../alchemy.run.ts";
|
|
428
|
+
*
|
|
429
|
+
* export class MyWorkflow extends WorkflowEntrypoint<WorkerEnv, { value: string }> {
|
|
430
|
+
* async run(event: Readonly<WorkflowEvent<{ value: string }>>, step: WorkflowStep) {
|
|
431
|
+
* return await step.do("greet", async () => `Hello, ${event.payload.value}!`);
|
|
432
|
+
* }
|
|
433
|
+
* }
|
|
434
|
+
*
|
|
435
|
+
* export default {
|
|
436
|
+
* async fetch(request: Request, env: WorkerEnv) {
|
|
437
|
+
* const instance = await env.MY_WORKFLOW.create({ params: { value: "world" } });
|
|
438
|
+
* return Response.json({ instanceId: instance.id });
|
|
439
|
+
* },
|
|
440
|
+
* };
|
|
441
|
+
* ```
|
|
442
|
+
*
|
|
443
|
+
* @section Cross-Script Binding in an Async Worker
|
|
444
|
+
* Async Workers can also bind to a Workflow hosted by another Worker
|
|
445
|
+
* script. The host Worker declares and exports the `WorkflowEntrypoint`
|
|
446
|
+
* class. The consumer Worker declares a `Workflow` with `scriptName` set
|
|
447
|
+
* to the host Worker's script name. Cross-script references are bindings
|
|
448
|
+
* only — Alchemy does not drive `putWorkflow` for the foreign class, so
|
|
449
|
+
* deploy the host first.
|
|
450
|
+
*
|
|
451
|
+
* @example Consumer Worker binds to the host script
|
|
452
|
+
* ```typescript
|
|
453
|
+
* const consumer = yield* Cloudflare.Worker("Consumer", {
|
|
454
|
+
* main: "./src/consumer.ts",
|
|
455
|
+
* env: {
|
|
456
|
+
* MY_WORKFLOW: Cloudflare.Workflow("MyWorkflow", {
|
|
457
|
+
* className: "MyWorkflow",
|
|
458
|
+
* scriptName: host.workerName,
|
|
459
|
+
* }),
|
|
460
|
+
* },
|
|
461
|
+
* });
|
|
462
|
+
* ```
|
|
463
|
+
*
|
|
349
464
|
* @section Testing Workflows
|
|
350
465
|
* Workflows run asynchronously, so tests start an instance and
|
|
351
466
|
* poll until it reaches a terminal status. A simple recipe with
|
|
@@ -381,91 +496,105 @@ export class WorkflowScope extends Context.Service<
|
|
|
381
496
|
* ```
|
|
382
497
|
*/
|
|
383
498
|
export const Workflow: WorkflowClass = taggedFunction(WorkflowScope, ((
|
|
384
|
-
...args:
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
499
|
+
...args:
|
|
500
|
+
| []
|
|
501
|
+
| [name: string, impl: Effect.Effect<WorkflowImpl<any, any>>]
|
|
502
|
+
| [name: string, props?: WorkflowRefProps]
|
|
503
|
+
) => {
|
|
504
|
+
if (args.length === 0) {
|
|
505
|
+
return Workflow;
|
|
506
|
+
}
|
|
507
|
+
const [name, second] = args;
|
|
508
|
+
if (!Effect.isEffect(second)) {
|
|
509
|
+
// Props-only (async) reference form: returns a plain `WorkflowLike` that an
|
|
510
|
+
// async Worker binds via `env`. `WorkerAsyncBindings` emits the `workflow`
|
|
511
|
+
// binding and drives `putWorkflow` for locally-hosted workflows.
|
|
512
|
+
const props = second as WorkflowRefProps | undefined;
|
|
513
|
+
return {
|
|
514
|
+
kind: TypeId,
|
|
515
|
+
name,
|
|
516
|
+
workflowName: name,
|
|
517
|
+
className: props?.className ?? name,
|
|
518
|
+
scriptName: props?.scriptName,
|
|
519
|
+
} satisfies WorkflowLike;
|
|
520
|
+
}
|
|
521
|
+
const impl = second;
|
|
522
|
+
return effectClass(
|
|
523
|
+
Effect.gen(function* () {
|
|
524
|
+
const worker = yield* Worker;
|
|
404
525
|
|
|
405
|
-
|
|
406
|
-
|
|
526
|
+
// Add the workflow binding to the Worker metadata
|
|
527
|
+
yield* worker.bind`${name}`({
|
|
528
|
+
bindings: [
|
|
529
|
+
{
|
|
530
|
+
type: "workflow",
|
|
531
|
+
name,
|
|
407
532
|
workflowName: name,
|
|
408
533
|
className: name,
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
const services =
|
|
413
|
-
yield* Effect.context<Effect.Services<typeof impl>>();
|
|
414
|
-
|
|
415
|
-
const binding = yield* Effect.all([
|
|
416
|
-
WorkerEnvironment,
|
|
417
|
-
ALCHEMY_PHASE,
|
|
418
|
-
]).pipe(
|
|
419
|
-
Effect.flatMap(([env, phase]) => {
|
|
420
|
-
if (env === undefined || phase === "plan") {
|
|
421
|
-
return Effect.succeed(undefined as any);
|
|
422
|
-
}
|
|
423
|
-
const wf = env[name];
|
|
424
|
-
if (!wf) {
|
|
425
|
-
return Effect.die(
|
|
426
|
-
new Error(`Workflow '${name}' not found in env`),
|
|
427
|
-
);
|
|
428
|
-
}
|
|
429
|
-
return Effect.succeed(wf);
|
|
430
|
-
}),
|
|
431
|
-
);
|
|
534
|
+
},
|
|
535
|
+
],
|
|
536
|
+
});
|
|
432
537
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
Effect.orDie,
|
|
440
|
-
),
|
|
441
|
-
get: (instanceId: string) =>
|
|
442
|
-
Effect.tryPromise(() => binding.get(instanceId)).pipe(
|
|
443
|
-
Effect.map(wrapInstance),
|
|
444
|
-
Effect.orDie,
|
|
445
|
-
),
|
|
446
|
-
};
|
|
538
|
+
// Create the Workflow API resource (putWorkflow / deleteWorkflow)
|
|
539
|
+
yield* WorkflowResource(name, {
|
|
540
|
+
workflowName: name,
|
|
541
|
+
className: name,
|
|
542
|
+
scriptName: worker.workerName,
|
|
543
|
+
});
|
|
447
544
|
|
|
448
|
-
|
|
449
|
-
Effect.provideService(WorkflowScope, self as any),
|
|
450
|
-
);
|
|
545
|
+
const services = yield* Effect.context<Effect.Services<typeof impl>>();
|
|
451
546
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
547
|
+
const binding = yield* Effect.all([
|
|
548
|
+
WorkerEnvironment,
|
|
549
|
+
ALCHEMY_PHASE,
|
|
550
|
+
]).pipe(
|
|
551
|
+
Effect.flatMap(([env, phase]) => {
|
|
552
|
+
if (env === undefined || phase === "plan") {
|
|
553
|
+
return Effect.succeed(undefined as any);
|
|
554
|
+
}
|
|
555
|
+
const wf = env[name];
|
|
556
|
+
if (!wf) {
|
|
557
|
+
return Effect.die(new Error(`Workflow '${name}' not found in env`));
|
|
558
|
+
}
|
|
559
|
+
return Effect.succeed(wf);
|
|
560
|
+
}),
|
|
561
|
+
);
|
|
562
|
+
|
|
563
|
+
const self: WorkflowHandle<any, any> = {
|
|
564
|
+
Type: TypeId,
|
|
565
|
+
name,
|
|
566
|
+
create: (input: unknown) =>
|
|
567
|
+
Effect.tryPromise(() => binding.create({ params: input })).pipe(
|
|
568
|
+
Effect.map(wrapInstance),
|
|
569
|
+
Effect.orDie,
|
|
570
|
+
),
|
|
571
|
+
get: (instanceId: string) =>
|
|
572
|
+
Effect.tryPromise(() => binding.get(instanceId)).pipe(
|
|
573
|
+
Effect.map(wrapInstance),
|
|
574
|
+
Effect.orDie,
|
|
575
|
+
),
|
|
576
|
+
};
|
|
577
|
+
|
|
578
|
+
const fn = yield* impl.pipe(
|
|
579
|
+
Effect.provideService(WorkflowScope, self as any),
|
|
580
|
+
);
|
|
581
|
+
|
|
582
|
+
yield* worker.export(name, {
|
|
583
|
+
kind: "workflow",
|
|
584
|
+
make: (env: unknown) =>
|
|
585
|
+
Effect.succeed(((input: unknown) =>
|
|
586
|
+
fn(input).pipe(
|
|
587
|
+
Effect.provideService(
|
|
588
|
+
WorkerEnvironment,
|
|
589
|
+
env as Record<string, any>,
|
|
463
590
|
),
|
|
464
|
-
|
|
591
|
+
)) as WorkflowImpl<any, any>).pipe(Effect.provideContext(services)),
|
|
592
|
+
} satisfies WorkflowExport);
|
|
465
593
|
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
594
|
+
return self;
|
|
595
|
+
}),
|
|
596
|
+
);
|
|
597
|
+
}) as any);
|
|
469
598
|
|
|
470
599
|
// ---------------------------------------------------------------------------
|
|
471
600
|
// WorkflowResource -- manages the Cloudflare Workflows API lifecycle
|
package/src/Command/Build.ts
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.ts";
|
|
6
7
|
import * as Provider from "../Provider.ts";
|
|
7
8
|
import { Resource } from "../Resource.ts";
|
|
9
|
+
import { sha256Object } from "../Util/sha256.ts";
|
|
8
10
|
import {
|
|
9
11
|
CommandError,
|
|
10
12
|
CommandExecutor,
|
|
@@ -109,6 +111,21 @@ export interface Build extends Resource<
|
|
|
109
111
|
*/
|
|
110
112
|
export const Build = Resource<Build>("Command.Build");
|
|
111
113
|
|
|
114
|
+
/**
|
|
115
|
+
* Resolves `Redacted` env values to their plain string so that a change in a
|
|
116
|
+
* secret's value still busts the memo hash (the hash is one-way, so the secret
|
|
117
|
+
* itself is never recoverable from state).
|
|
118
|
+
*/
|
|
119
|
+
const resolveEnv = (env: CommandProps["env"]) =>
|
|
120
|
+
env
|
|
121
|
+
? Object.fromEntries(
|
|
122
|
+
Object.entries(env).map(([key, value]) => [
|
|
123
|
+
key,
|
|
124
|
+
Redacted.isRedacted(value) ? Redacted.value(value) : value,
|
|
125
|
+
]),
|
|
126
|
+
)
|
|
127
|
+
: undefined;
|
|
128
|
+
|
|
112
129
|
export const BuildProvider = () =>
|
|
113
130
|
Provider.effect(
|
|
114
131
|
Build,
|
|
@@ -135,10 +152,24 @@ export const BuildProvider = () =>
|
|
|
135
152
|
? { input: undefined, output: undefined }
|
|
136
153
|
: yield* Effect.all(
|
|
137
154
|
{
|
|
155
|
+
// Fold the resolved command + env into the input hash so
|
|
156
|
+
// two builds that share the same source tree + `outdir`
|
|
157
|
+
// but differ in their command or environment (e.g.
|
|
158
|
+
// per-stage builds baking different `EXPO_PUBLIC_*` /
|
|
159
|
+
// API ids) are never judged reusable. Without this the
|
|
160
|
+
// second build silently reuses the first's stale output.
|
|
138
161
|
input: hashDirectory({
|
|
139
162
|
cwd,
|
|
140
163
|
memo: props.memo === true ? {} : props.memo,
|
|
141
|
-
})
|
|
164
|
+
}).pipe(
|
|
165
|
+
Effect.flatMap((files) =>
|
|
166
|
+
sha256Object({
|
|
167
|
+
files,
|
|
168
|
+
command: props.command,
|
|
169
|
+
env: resolveEnv(props.env),
|
|
170
|
+
}),
|
|
171
|
+
),
|
|
172
|
+
),
|
|
142
173
|
output: hashDirectory({
|
|
143
174
|
cwd: outdir,
|
|
144
175
|
memo: {
|