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
|
@@ -10,8 +10,10 @@ import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient";
|
|
|
10
10
|
import crypto from "node:crypto";
|
|
11
11
|
|
|
12
12
|
import * as Config from "effect/Config";
|
|
13
|
+
import * as Option from "effect/Option";
|
|
13
14
|
import { isHttpClientError } from "effect/unstable/http/HttpClientError";
|
|
14
15
|
import { adopt } from "../../AdoptPolicy.ts";
|
|
16
|
+
import { AlchemyContext } from "../../AlchemyContext.ts";
|
|
15
17
|
import { AuthError } from "../../Auth/AuthProvider.ts";
|
|
16
18
|
import {
|
|
17
19
|
CredentialsStore,
|
|
@@ -42,7 +44,12 @@ import * as CloudflareEnvironment from "../CloudflareEnvironment.ts";
|
|
|
42
44
|
import * as Credentials from "../Credentials.ts";
|
|
43
45
|
import { EdgeSessionError, createEdgeSession } from "../EdgeSession.ts";
|
|
44
46
|
import Api, { STATE_STORE_SCRIPT_NAME, STATE_STORE_VERSION } from "./Api.ts";
|
|
45
|
-
import {
|
|
47
|
+
import {
|
|
48
|
+
AuthToken,
|
|
49
|
+
AuthTokenSecretName,
|
|
50
|
+
EncryptionKeySecretName,
|
|
51
|
+
TokenValue,
|
|
52
|
+
} from "./Token.ts";
|
|
46
53
|
|
|
47
54
|
const CI = Config.boolean("CI").pipe(Config.withDefault(false));
|
|
48
55
|
|
|
@@ -58,6 +65,12 @@ export const state = () =>
|
|
|
58
65
|
const profileName = yield* ALCHEMY_PROFILE;
|
|
59
66
|
const localStage = `${profileName}_${scriptName}`;
|
|
60
67
|
const credStore = yield* CredentialsStore;
|
|
68
|
+
// `deploy --yes` flows in here (via AlchemyContext.updateStateStore) to
|
|
69
|
+
// auto-accept an out-of-date state store upgrade instead of prompting.
|
|
70
|
+
// Optional so callers that don't provide AlchemyContext keep the prompt.
|
|
71
|
+
const autoUpdateStateStore =
|
|
72
|
+
Option.getOrUndefined(yield* Effect.serviceOption(AlchemyContext))
|
|
73
|
+
?.updateStateStore ?? false;
|
|
61
74
|
const context = yield* Effect.context<Effect.Services<typeof init>>();
|
|
62
75
|
|
|
63
76
|
const init = Effect.gen(function* () {
|
|
@@ -84,9 +97,11 @@ export const state = () =>
|
|
|
84
97
|
yield* checkStateStoreVersion(url);
|
|
85
98
|
|
|
86
99
|
if (observed === undefined) {
|
|
87
|
-
const shouldDeploy =
|
|
88
|
-
|
|
89
|
-
|
|
100
|
+
const shouldDeploy =
|
|
101
|
+
autoUpdateStateStore ||
|
|
102
|
+
(yield* Clank.confirm({
|
|
103
|
+
message: `Cloudflare State Store '${scriptName}' is not available. Do you want to deploy it?`,
|
|
104
|
+
}));
|
|
90
105
|
if (shouldDeploy) {
|
|
91
106
|
return yield* bootstrap({
|
|
92
107
|
workerName: scriptName,
|
|
@@ -100,10 +115,32 @@ export const state = () =>
|
|
|
100
115
|
const httpState = yield* ensureAccess({ url, authToken });
|
|
101
116
|
if (matches) {
|
|
102
117
|
return httpState;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// The store is out of date. Upgrade it in place.
|
|
121
|
+
const upgrade = Effect.gen(function* () {
|
|
122
|
+
yield* Clank.info(
|
|
123
|
+
`Cloudflare State Store '${scriptName}' is out of date ` +
|
|
124
|
+
`(expected v${expected}, observed v${observed ?? "unknown"}); upgrading...`,
|
|
125
|
+
);
|
|
126
|
+
const stateStoreOptions = yield* deployStateStore({
|
|
127
|
+
stage: scriptName,
|
|
128
|
+
state: httpState,
|
|
129
|
+
force: false,
|
|
130
|
+
});
|
|
131
|
+
return yield* makeCloudflareStateStore(stateStoreOptions);
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
if (autoUpdateStateStore) {
|
|
135
|
+
// `--yes`: upgrade automatically (also unblocks CI).
|
|
136
|
+
return yield* upgrade;
|
|
103
137
|
} else if (isCI) {
|
|
104
138
|
return yield* Effect.die(
|
|
105
139
|
new AuthError({
|
|
106
|
-
message:
|
|
140
|
+
message:
|
|
141
|
+
`Cloudflare State store is out of date ` +
|
|
142
|
+
`(expected v${expected}, observed v${observed ?? "unknown"}). ` +
|
|
143
|
+
`Run 'alchemy bootstrap cloudflare --profile <your-ci-profile>' to upgrade it first, or pass --yes.`,
|
|
107
144
|
}),
|
|
108
145
|
);
|
|
109
146
|
} else {
|
|
@@ -113,12 +150,7 @@ export const state = () =>
|
|
|
113
150
|
`(expected v${expected}, observed v${observed ?? "unknown"})`,
|
|
114
151
|
});
|
|
115
152
|
if (shouldDeploy) {
|
|
116
|
-
|
|
117
|
-
stage: scriptName,
|
|
118
|
-
state: httpState,
|
|
119
|
-
force: false,
|
|
120
|
-
});
|
|
121
|
-
return yield* makeCloudflareStateStore(stateStoreOptions);
|
|
153
|
+
return yield* upgrade;
|
|
122
154
|
} else {
|
|
123
155
|
return yield* Effect.die(new Clank.PromptCancelled());
|
|
124
156
|
}
|
|
@@ -153,17 +185,19 @@ export const state = () =>
|
|
|
153
185
|
if (credentials) {
|
|
154
186
|
return yield* ensureLatest(credentials);
|
|
155
187
|
}
|
|
156
|
-
const
|
|
157
|
-
|
|
188
|
+
const { accountId } =
|
|
189
|
+
yield* yield* CloudflareEnvironment.CloudflareEnvironment;
|
|
190
|
+
if (yield* isStateStoreServing(accountId)) {
|
|
158
191
|
return yield* ensureLatest(
|
|
159
192
|
yield* loginWithCloudflare(profileName, false),
|
|
160
193
|
);
|
|
194
|
+
} else if (autoUpdateStateStore) {
|
|
195
|
+
// `--yes`: deploy the missing state store automatically (also in CI).
|
|
196
|
+
return yield* bootstrap();
|
|
161
197
|
} else if (isCI) {
|
|
162
|
-
// TODO(sam): do we want to support bootstrapping the state store from CI?
|
|
163
|
-
// for now - just die here
|
|
164
198
|
return yield* Effect.die(
|
|
165
199
|
new AuthError({
|
|
166
|
-
message: `Cloudflare State store not found. Run 'alchemy bootstrap cloudflare --profile <your-ci-profile>' to deploy it first.`,
|
|
200
|
+
message: `Cloudflare State store not found. Run 'alchemy bootstrap cloudflare --profile <your-ci-profile>' to deploy it first, or pass --yes.`,
|
|
167
201
|
}),
|
|
168
202
|
);
|
|
169
203
|
} else {
|
|
@@ -233,9 +267,9 @@ export const bootstrap = (options: BootstrapOptions = {}) =>
|
|
|
233
267
|
),
|
|
234
268
|
);
|
|
235
269
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
if (
|
|
270
|
+
const { accountId } =
|
|
271
|
+
yield* yield* CloudflareEnvironment.CloudflareEnvironment;
|
|
272
|
+
if (yield* isStateStoreServing(accountId)) {
|
|
239
273
|
// this is a regular update, let's check if it needs an update and refresh credentials
|
|
240
274
|
if (!force) {
|
|
241
275
|
yield* Clank.info(
|
|
@@ -283,7 +317,6 @@ export const bootstrap = (options: BootstrapOptions = {}) =>
|
|
|
283
317
|
return httpState;
|
|
284
318
|
}
|
|
285
319
|
} else {
|
|
286
|
-
// fresh deploy - deploy from local for the first time
|
|
287
320
|
yield* Clank.info(`Deploying Cloudflare State Store '${scriptName}'...`);
|
|
288
321
|
return yield* deployWithLocalState({
|
|
289
322
|
scriptName,
|
|
@@ -306,6 +339,125 @@ export const bootstrap = (options: BootstrapOptions = {}) =>
|
|
|
306
339
|
}),
|
|
307
340
|
);
|
|
308
341
|
|
|
342
|
+
export interface TeardownOptions {
|
|
343
|
+
/** @default "alchemy-state-store" */
|
|
344
|
+
workerName?: string;
|
|
345
|
+
/** @default "default" */
|
|
346
|
+
profile?: string;
|
|
347
|
+
/**
|
|
348
|
+
* Delete the account Secrets Store too, but only once the state-store
|
|
349
|
+
* secrets have been removed and no other secrets remain in it. A store that
|
|
350
|
+
* still holds foreign secrets is left in place.
|
|
351
|
+
* @default true
|
|
352
|
+
*/
|
|
353
|
+
deleteEmptySecretsStore?: boolean;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* The inverse of {@link bootstrap}: tear down the Cloudflare-deployed state
|
|
358
|
+
* store. Deletes the state-store Worker and the secrets it created in the
|
|
359
|
+
* account Secrets Store (the bearer token + the encryption key), then deletes
|
|
360
|
+
* the Secrets Store itself if it is left empty, and drops the locally cached
|
|
361
|
+
* state-store credentials for the profile.
|
|
362
|
+
*
|
|
363
|
+
* Idempotent — missing resources are treated as already-gone, so it is safe to
|
|
364
|
+
* re-run. Intended for reclaiming a throwaway account after testing; on a
|
|
365
|
+
* shared account it only removes resources alchemy created.
|
|
366
|
+
*/
|
|
367
|
+
export const teardownStateStore = (options: TeardownOptions = {}) =>
|
|
368
|
+
Effect.gen(function* () {
|
|
369
|
+
const profileName = options.profile ?? (yield* ALCHEMY_PROFILE);
|
|
370
|
+
const scriptName = options.workerName ?? STATE_STORE_SCRIPT_NAME;
|
|
371
|
+
const deleteEmptyStore = options.deleteEmptySecretsStore ?? true;
|
|
372
|
+
const { accountId } =
|
|
373
|
+
yield* yield* CloudflareEnvironment.CloudflareEnvironment;
|
|
374
|
+
|
|
375
|
+
yield* annotateAccountHash();
|
|
376
|
+
yield* Effect.annotateCurrentSpan({
|
|
377
|
+
"alchemy.state_store.script_name": scriptName,
|
|
378
|
+
"alchemy.state_store.profile": profileName,
|
|
379
|
+
});
|
|
380
|
+
|
|
381
|
+
// 1. Delete the state-store Worker.
|
|
382
|
+
yield* Clank.info(`Deleting state store worker '${scriptName}'...`);
|
|
383
|
+
yield* workers.deleteScript({ accountId, scriptName, force: true }).pipe(
|
|
384
|
+
Effect.asVoid,
|
|
385
|
+
Effect.catchTag("WorkerNotFound", () =>
|
|
386
|
+
Clank.info(` Worker '${scriptName}' not found (already gone).`),
|
|
387
|
+
),
|
|
388
|
+
);
|
|
389
|
+
|
|
390
|
+
// 2. Delete the secrets the state store created, plus any now-empty store.
|
|
391
|
+
const ourSecretNames = new Set<string>([
|
|
392
|
+
AuthTokenSecretName,
|
|
393
|
+
EncryptionKeySecretName,
|
|
394
|
+
]);
|
|
395
|
+
const stores = yield* SecretsStore.listStores({ accountId }).pipe(
|
|
396
|
+
Effect.map((r) => r.result),
|
|
397
|
+
Effect.catchTag("InvalidAccountId", () => Effect.succeed([])),
|
|
398
|
+
);
|
|
399
|
+
for (const store of stores) {
|
|
400
|
+
const secrets = yield* SecretsStore.listStoreSecrets({
|
|
401
|
+
accountId,
|
|
402
|
+
storeId: store.id,
|
|
403
|
+
}).pipe(
|
|
404
|
+
Effect.map((r) => r.result),
|
|
405
|
+
Effect.catchTag(["StoreNotFound", "InvalidAccountId"], () =>
|
|
406
|
+
Effect.succeed([]),
|
|
407
|
+
),
|
|
408
|
+
);
|
|
409
|
+
const ours = secrets.filter((s) => ourSecretNames.has(s.name));
|
|
410
|
+
for (const secret of ours) {
|
|
411
|
+
yield* Clank.info(`Deleting secret '${secret.name}'...`);
|
|
412
|
+
yield* SecretsStore.deleteStoreSecret({
|
|
413
|
+
accountId,
|
|
414
|
+
storeId: store.id,
|
|
415
|
+
secretId: secret.id,
|
|
416
|
+
}).pipe(
|
|
417
|
+
Effect.asVoid,
|
|
418
|
+
Effect.catchTag(
|
|
419
|
+
["SecretNotFound", "StoreNotFound", "NotFound", "InvalidAccountId"],
|
|
420
|
+
() => Effect.void,
|
|
421
|
+
),
|
|
422
|
+
);
|
|
423
|
+
}
|
|
424
|
+
const remaining = secrets.length - ours.length;
|
|
425
|
+
if (deleteEmptyStore && remaining === 0) {
|
|
426
|
+
yield* Clank.info(`Deleting empty secrets store '${store.id}'...`);
|
|
427
|
+
yield* SecretsStore.deleteStore({
|
|
428
|
+
accountId,
|
|
429
|
+
storeId: store.id,
|
|
430
|
+
force: true,
|
|
431
|
+
}).pipe(
|
|
432
|
+
Effect.asVoid,
|
|
433
|
+
Effect.catchTag(
|
|
434
|
+
["StoreNotFound", "NotFound", "InvalidAccountId"],
|
|
435
|
+
() => Effect.void,
|
|
436
|
+
),
|
|
437
|
+
);
|
|
438
|
+
} else if (remaining > 0) {
|
|
439
|
+
yield* Clank.info(
|
|
440
|
+
`Secrets store '${store.id}' still has ${remaining} other ` +
|
|
441
|
+
`secret(s); leaving it in place.`,
|
|
442
|
+
);
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
// 3. Drop the locally cached state-store credentials for this profile.
|
|
447
|
+
const credStore = yield* CredentialsStore;
|
|
448
|
+
yield* credStore.delete(profileName, CREDENTIALS_FILE).pipe(Effect.ignore);
|
|
449
|
+
|
|
450
|
+
yield* Clank.success(`Cloudflare State Store '${scriptName}' torn down.`);
|
|
451
|
+
}).pipe(
|
|
452
|
+
Effect.withSpan("state_store.teardown", {
|
|
453
|
+
attributes: {
|
|
454
|
+
"alchemy.state_store.op": "teardown",
|
|
455
|
+
"alchemy.state_store.script_name":
|
|
456
|
+
options.workerName ?? STATE_STORE_SCRIPT_NAME,
|
|
457
|
+
},
|
|
458
|
+
}),
|
|
459
|
+
);
|
|
460
|
+
|
|
309
461
|
const deployStateStore = ({
|
|
310
462
|
stage,
|
|
311
463
|
state,
|
|
@@ -619,6 +771,26 @@ const isStateStoreAvailable = (scriptName: string = "alchemy-state-store") =>
|
|
|
619
771
|
);
|
|
620
772
|
});
|
|
621
773
|
|
|
774
|
+
/**
|
|
775
|
+
* Does this account have a *functioning* state-store worker,
|
|
776
|
+
* verified by checking the /version endpoint
|
|
777
|
+
*
|
|
778
|
+
*/
|
|
779
|
+
const isStateStoreServing = (accountId: string) =>
|
|
780
|
+
Effect.gen(function* () {
|
|
781
|
+
const url = yield* workers.getSubdomain({ accountId }).pipe(
|
|
782
|
+
Effect.map(({ subdomain }) =>
|
|
783
|
+
subdomain
|
|
784
|
+
? `https://${STATE_STORE_SCRIPT_NAME}.${subdomain}.workers.dev`
|
|
785
|
+
: undefined,
|
|
786
|
+
),
|
|
787
|
+
Effect.catch(() => Effect.succeed(undefined)),
|
|
788
|
+
);
|
|
789
|
+
if (url === undefined) return false;
|
|
790
|
+
const { observed } = yield* checkStateStoreVersion(url);
|
|
791
|
+
return observed !== undefined;
|
|
792
|
+
});
|
|
793
|
+
|
|
622
794
|
const makeCloudflareStateStore = Effect.fn(function* ({
|
|
623
795
|
url,
|
|
624
796
|
authToken,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
-
import type { MemoOptions } from "../../Command/Memo.ts";
|
|
3
2
|
import type { InputProps } from "../../Input.ts";
|
|
4
3
|
import { effectClass } from "../../Util/effect.ts";
|
|
5
4
|
import type { Providers } from "../Providers.ts";
|
|
@@ -7,26 +6,14 @@ import type { AssetsConfig } from "../Workers/Assets.ts";
|
|
|
7
6
|
import {
|
|
8
7
|
Worker,
|
|
9
8
|
type NormalizedBindings,
|
|
9
|
+
type ViteOptions,
|
|
10
10
|
type WorkerAssetsConfig,
|
|
11
11
|
type WorkerBindingProps,
|
|
12
12
|
type WorkerProps,
|
|
13
13
|
} from "../Workers/Worker.ts";
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Root directory passed to Vite's `root` option.
|
|
19
|
-
* Defaults to the current working directory (`process.cwd()`).
|
|
20
|
-
*/
|
|
21
|
-
rootDir?: string;
|
|
22
|
-
/**
|
|
23
|
-
* Controls which files are hashed to decide whether a rebuild is needed.
|
|
24
|
-
* By default every non-gitignored file in `cwd` is hashed, plus the nearest
|
|
25
|
-
* lockfile. Provide explicit globs to narrow the scope.
|
|
26
|
-
*
|
|
27
|
-
* @see {@link MemoOptions}
|
|
28
|
-
*/
|
|
29
|
-
memo?: MemoOptions;
|
|
14
|
+
|
|
15
|
+
export interface ViteProps<Bindings extends WorkerBindingProps = {}>
|
|
16
|
+
extends Omit<WorkerProps<Bindings>, "vite" | "main" | "assets">, ViteOptions {
|
|
30
17
|
/**
|
|
31
18
|
* Optional configuration for static asset routing behavior.
|
|
32
19
|
* Supports `runWorkerFirst`, `htmlHandling`, `notFoundHandling`, etc.
|
|
@@ -60,7 +47,7 @@ export interface ViteProps<
|
|
|
60
47
|
* ```
|
|
61
48
|
*
|
|
62
49
|
* @section SSR Frameworks
|
|
63
|
-
* For SSR frameworks like TanStack Start
|
|
50
|
+
* For SSR frameworks like TanStack Start or SolidStart, enable
|
|
64
51
|
* `nodejs_compat` so the server bundle can use Node.js APIs.
|
|
65
52
|
*
|
|
66
53
|
* @example TanStack Start
|
|
@@ -78,8 +65,27 @@ export interface ViteProps<
|
|
|
78
65
|
* compatibility: {
|
|
79
66
|
* flags: ["nodejs_compat"],
|
|
80
67
|
* },
|
|
81
|
-
* assets: {
|
|
82
|
-
*
|
|
68
|
+
* assets: { runWorkerFirst: true },
|
|
69
|
+
* });
|
|
70
|
+
* ```
|
|
71
|
+
*
|
|
72
|
+
* @section React Server Components
|
|
73
|
+
* Frameworks that emit more than one server environment (e.g. React
|
|
74
|
+
* Server Components, which split into an `rsc` environment and an `ssr`
|
|
75
|
+
* environment) need `viteEnvironments` to declare which environment
|
|
76
|
+
* produces the deployed Worker entry and which additional server
|
|
77
|
+
* environments to bundle alongside it. The `client` environment is
|
|
78
|
+
* always deployed as static assets.
|
|
79
|
+
*
|
|
80
|
+
* @example React Router with RSC
|
|
81
|
+
* ```typescript
|
|
82
|
+
* const app = yield* Cloudflare.Website.Vite("ReactRouterRSC", {
|
|
83
|
+
* compatibility: {
|
|
84
|
+
* flags: ["nodejs_compat"],
|
|
85
|
+
* },
|
|
86
|
+
* viteEnvironments: {
|
|
87
|
+
* entry: "rsc",
|
|
88
|
+
* children: ["ssr"],
|
|
83
89
|
* },
|
|
84
90
|
* });
|
|
85
91
|
* ```
|
|
@@ -95,10 +101,8 @@ export interface ViteProps<
|
|
|
95
101
|
* flags: ["nodejs_compat"],
|
|
96
102
|
* },
|
|
97
103
|
* assets: {
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
* notFoundHandling: "single-page-application",
|
|
101
|
-
* },
|
|
104
|
+
* htmlHandling: "auto-trailing-slash",
|
|
105
|
+
* notFoundHandling: "single-page-application",
|
|
102
106
|
* },
|
|
103
107
|
* });
|
|
104
108
|
* ```
|
|
@@ -176,6 +180,7 @@ export const Vite: {
|
|
|
176
180
|
vite: {
|
|
177
181
|
rootDir: props?.rootDir,
|
|
178
182
|
memo: props?.memo,
|
|
183
|
+
viteEnvironments: props?.viteEnvironments,
|
|
179
184
|
},
|
|
180
185
|
}),
|
|
181
186
|
),
|
|
@@ -6,7 +6,7 @@ import type { WorkerBinding } from "./WorkerBinding.ts";
|
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* A Cloudflare **Worker-only binding** — the plain data value produced by
|
|
9
|
-
* calling a {@link Service} (e.g. `Cloudflare.Images.Images(
|
|
9
|
+
* calling a {@link Service} (e.g. `Cloudflare.Images.Images(name)`).
|
|
10
10
|
*
|
|
11
11
|
* These bindings (`Browser`, `Images`, `VersionMetadata`, `RateLimit`,
|
|
12
12
|
* `Artifacts.Namespace`, …) have **no backing cloud resource**; they are only
|
|
@@ -136,7 +136,7 @@ export interface BrowserClient {
|
|
|
136
136
|
*
|
|
137
137
|
* Cloudflare.Worker(
|
|
138
138
|
* "BrowserWorker",
|
|
139
|
-
* { main: import.meta.
|
|
139
|
+
* { main: import.meta.url },
|
|
140
140
|
* Effect.gen(function* () {
|
|
141
141
|
* const browser = yield* Cloudflare.Browser("BROWSER");
|
|
142
142
|
*
|
|
@@ -354,7 +354,7 @@ export class DurableObjectScope extends Context.Service<
|
|
|
354
354
|
* // ^^^^^^^ declared as part of WorkerA's public contract
|
|
355
355
|
* export class WorkerA extends Cloudflare.Worker<WorkerA, {}, Counter>()(
|
|
356
356
|
* "WorkerA",
|
|
357
|
-
* { main: import.meta.
|
|
357
|
+
* { main: import.meta.url },
|
|
358
358
|
* ) {}
|
|
359
359
|
*
|
|
360
360
|
* // WorkerA's Layer also provides the DO's Live implementation.
|
|
@@ -374,7 +374,7 @@ export class DurableObjectScope extends Context.Service<
|
|
|
374
374
|
*
|
|
375
375
|
* export default class WorkerB extends Cloudflare.Worker<WorkerB>()(
|
|
376
376
|
* "WorkerB",
|
|
377
|
-
* { main: import.meta.
|
|
377
|
+
* { main: import.meta.url },
|
|
378
378
|
* Effect.gen(function* () {
|
|
379
379
|
* // ^^^^^^^^^^^^ scriptName-bound stub of WorkerA's Counter
|
|
380
380
|
* const counter = yield* Counter.from(WorkerA);
|
|
@@ -430,7 +430,7 @@ export class DurableObjectScope extends Context.Service<
|
|
|
430
430
|
* // workerC.ts — another host of Counter, isolated from WorkerA
|
|
431
431
|
* export class WorkerC extends Cloudflare.Worker<WorkerC, {}, Counter>()(
|
|
432
432
|
* "WorkerC",
|
|
433
|
-
* { main: import.meta.
|
|
433
|
+
* { main: import.meta.url },
|
|
434
434
|
* ) {}
|
|
435
435
|
*
|
|
436
436
|
* export default WorkerC.make(
|
|
@@ -751,6 +751,57 @@ export class DurableObjectScope extends Context.Service<
|
|
|
751
751
|
* },
|
|
752
752
|
* });
|
|
753
753
|
* ```
|
|
754
|
+
*
|
|
755
|
+
* @section Adopting an Existing Durable Object
|
|
756
|
+
* When you adopt a Worker that already exists on Cloudflare — created
|
|
757
|
+
* outside Alchemy via Wrangler, the dashboard, or the raw API — its
|
|
758
|
+
* Durable Object classes are adopted along with it. You opt in to the
|
|
759
|
+
* takeover the same way you adopt any foreign resource: with
|
|
760
|
+
* `adopt(true)` (or the `--adopt` CLI flag), since `Worker.read` reports
|
|
761
|
+
* a worker with no Alchemy ownership tags as `Unowned`.
|
|
762
|
+
*
|
|
763
|
+
* Alchemy normally tracks which class backs each binding through an
|
|
764
|
+
* `alchemy:do:<logicalId>:<className>` tag it writes on the script. A
|
|
765
|
+
* foreign worker has no such tag, so on the **adopting deploy** Alchemy
|
|
766
|
+
* falls back to matching your binding to the live class **by binding
|
|
767
|
+
* name**. The class is then reused in place — not recreated — so
|
|
768
|
+
* Cloudflare's migration engine doesn't reject the upload for creating a
|
|
769
|
+
* class that already exists.
|
|
770
|
+
*
|
|
771
|
+
* The consequence is a one-time constraint: **on the adopting deploy the
|
|
772
|
+
* binding's `className` must match the class that already exists on the
|
|
773
|
+
* worker.** You cannot rename the class in the same deploy that adopts
|
|
774
|
+
* it. Once the deploy completes, Alchemy owns the worker and has written
|
|
775
|
+
* the `alchemy:do:` tag, so subsequent renames are driven by logical id
|
|
776
|
+
* and work normally.
|
|
777
|
+
*
|
|
778
|
+
* @example Adopting a worker whose `Counter` class already exists
|
|
779
|
+
* ```typescript
|
|
780
|
+
* // The worker + `Counter` class were created outside Alchemy.
|
|
781
|
+
* // `className` must match the existing class on this first deploy.
|
|
782
|
+
* const worker = yield* Cloudflare.Worker("Worker", {
|
|
783
|
+
* name: "existing-worker",
|
|
784
|
+
* main: "./src/worker.ts",
|
|
785
|
+
* bindings: {
|
|
786
|
+
* Counter: Cloudflare.DurableObject<Counter>("Counter"),
|
|
787
|
+
* },
|
|
788
|
+
* }).pipe(adopt(true));
|
|
789
|
+
* ```
|
|
790
|
+
*
|
|
791
|
+
* @example Renaming the class — only after adoption
|
|
792
|
+
* ```typescript
|
|
793
|
+
* // A SECOND deploy, after the one above. Alchemy now owns the worker
|
|
794
|
+
* // and maps the binding by logical id, so the class can be renamed.
|
|
795
|
+
* const worker = yield* Cloudflare.Worker("Worker", {
|
|
796
|
+
* name: "existing-worker",
|
|
797
|
+
* main: "./src/worker.ts",
|
|
798
|
+
* bindings: {
|
|
799
|
+
* Counter: Cloudflare.DurableObject<Counter>("Counter", {
|
|
800
|
+
* className: "CounterV2",
|
|
801
|
+
* }),
|
|
802
|
+
* },
|
|
803
|
+
* });
|
|
804
|
+
* ```
|
|
754
805
|
*/
|
|
755
806
|
export const DurableObject: DurableObjectClass = taggedFunction(
|
|
756
807
|
DurableObjectScope,
|
|
@@ -4,6 +4,7 @@ import type * as Effect from "effect/Effect";
|
|
|
4
4
|
import type { Redacted } from "effect/Redacted";
|
|
5
5
|
import type * as Stream from "effect/Stream";
|
|
6
6
|
import type { Rpc } from "../../Rpc.ts";
|
|
7
|
+
import type { WorkflowLike } from "../Workflows/Workflow.ts";
|
|
7
8
|
// NOTE: import the service modules directly rather than `import * as Cloudflare
|
|
8
9
|
// from "../index.ts"`. Importing the whole Cloudflare barrel here creates a
|
|
9
10
|
// circular re-export when the barrel does `export * from "./Workers/index.ts"`
|
|
@@ -20,6 +21,7 @@ import type * as ImagesNs from "../Images/index.ts";
|
|
|
20
21
|
import type * as KV from "../KV/index.ts";
|
|
21
22
|
import type * as Queues from "../Queues/index.ts";
|
|
22
23
|
import type * as R2 from "../R2/index.ts";
|
|
24
|
+
import type { DispatchNamespace as DispatchNamespaceResource } from "../WorkersForPlatforms/DispatchNamespace.ts";
|
|
23
25
|
import type { Assets } from "./Assets.ts";
|
|
24
26
|
import type { BrowserBinding } from "./BrowserBinding.ts";
|
|
25
27
|
import type { DurableObjectLike } from "./DurableObject.ts";
|
|
@@ -53,41 +55,50 @@ export type GetBindingType<T> =
|
|
|
53
55
|
? R2Bucket
|
|
54
56
|
: T extends KV.Namespace
|
|
55
57
|
? KVNamespace
|
|
56
|
-
: T extends
|
|
57
|
-
?
|
|
58
|
-
: T extends
|
|
59
|
-
?
|
|
60
|
-
: T extends AI.
|
|
61
|
-
?
|
|
62
|
-
: T extends AI.
|
|
63
|
-
?
|
|
64
|
-
: T extends
|
|
65
|
-
?
|
|
66
|
-
: T extends
|
|
67
|
-
?
|
|
68
|
-
: T extends
|
|
69
|
-
?
|
|
70
|
-
: T extends
|
|
71
|
-
?
|
|
72
|
-
: T extends
|
|
73
|
-
?
|
|
74
|
-
: T extends
|
|
75
|
-
?
|
|
76
|
-
: T extends
|
|
77
|
-
?
|
|
78
|
-
: T extends
|
|
79
|
-
?
|
|
80
|
-
: T extends
|
|
81
|
-
?
|
|
82
|
-
: T extends
|
|
83
|
-
?
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
?
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
58
|
+
: T extends DispatchNamespaceResource
|
|
59
|
+
? DispatchNamespace
|
|
60
|
+
: T extends Queues.Queue
|
|
61
|
+
? Queue<unknown>
|
|
62
|
+
: T extends AI.Gateway
|
|
63
|
+
? Ai
|
|
64
|
+
: T extends AI.Search
|
|
65
|
+
? AiSearchInstance
|
|
66
|
+
: T extends AI.SearchNamespace
|
|
67
|
+
? AiSearchNamespace
|
|
68
|
+
: T extends Email.SendEmail
|
|
69
|
+
? SendEmail
|
|
70
|
+
: T extends AnalyticsEngine.Dataset
|
|
71
|
+
? AnalyticsEngineDataset
|
|
72
|
+
: T extends ArtifactsNs.Namespace
|
|
73
|
+
? Artifacts
|
|
74
|
+
: T extends RateLimitBinding
|
|
75
|
+
? RateLimit
|
|
76
|
+
: T extends ImagesNs.ImagesBinding
|
|
77
|
+
? ImagesBinding
|
|
78
|
+
: T extends BrowserBinding
|
|
79
|
+
? BrowserRun
|
|
80
|
+
: T extends HyperdriveNs.Connection
|
|
81
|
+
? Hyperdrive
|
|
82
|
+
: T extends VersionMetadataBinding
|
|
83
|
+
? WorkerVersionMetadata
|
|
84
|
+
: T extends WorkerLoaderResource
|
|
85
|
+
? WorkerLoader
|
|
86
|
+
: T extends WorkflowLike<
|
|
87
|
+
infer Params
|
|
88
|
+
>
|
|
89
|
+
? Workflow<Params>
|
|
90
|
+
: T extends DurableObjectLike
|
|
91
|
+
? DurableObjectNamespace<
|
|
92
|
+
Exclude<
|
|
93
|
+
T["Shape"],
|
|
94
|
+
undefined
|
|
95
|
+
>
|
|
96
|
+
>
|
|
97
|
+
: T extends Redacted<any>
|
|
98
|
+
? // redacteds are always stored as secret_text, so are always string
|
|
99
|
+
// we JSON.stringify when not a Redacted<string>
|
|
100
|
+
string
|
|
101
|
+
: T;
|
|
91
102
|
|
|
92
103
|
/**
|
|
93
104
|
* Cloudflare service-binding wire shape for an Effect-native Worker.
|
|
@@ -98,7 +109,7 @@ export type GetBindingType<T> =
|
|
|
98
109
|
* shape and re-introduced via `Service` so callers get the standard
|
|
99
110
|
* `(input, init?) => Promise<Response>` signature.
|
|
100
111
|
*
|
|
101
|
-
* Use {@link
|
|
112
|
+
* Use {@link toRpcAsync} to wrap a binding into a Promise<T>-flavored view
|
|
102
113
|
* where envelopes are decoded for you.
|
|
103
114
|
*/
|
|
104
115
|
export type RpcWireShape<Shape> = {
|