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
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as workers from "@distilled.cloud/cloudflare/workers";
|
|
2
|
+
import * as wfp from "@distilled.cloud/cloudflare/workers-for-platforms";
|
|
2
3
|
import * as zones from "@distilled.cloud/cloudflare/zones";
|
|
3
4
|
import * as Data from "effect/Data";
|
|
4
5
|
import * as Effect from "effect/Effect";
|
|
@@ -11,7 +12,6 @@ import * as crypto from "node:crypto";
|
|
|
11
12
|
import { Unowned } from "../../AdoptPolicy.js";
|
|
12
13
|
import * as Artifacts from "../../Artifacts.js";
|
|
13
14
|
import { hashDirectory } from "../../Command/Memo.js";
|
|
14
|
-
import * as Bundle from "../../Bundle/Bundle.js";
|
|
15
15
|
import { isResolved } from "../../Diff.js";
|
|
16
16
|
import * as ProviderLayer from "../../Local/ProviderLayer.js";
|
|
17
17
|
import * as Provider from "../../Provider.js";
|
|
@@ -30,6 +30,95 @@ import { isWorkerLoader } from "./WorkerLoader.js";
|
|
|
30
30
|
import { createWorkerName } from "./WorkerName.js";
|
|
31
31
|
class MissingDurableObjects extends Data.TaggedError("MissingDurableObjects") {
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Resolve the Workers for Platforms dispatch-namespace *name* from a resolved
|
|
35
|
+
* `namespace` prop or persisted attribute. The engine resolves a passed
|
|
36
|
+
* {@link DispatchNamespace} resource to its Attributes object (see
|
|
37
|
+
* `Input.Resolve` / Plan.ts), so the value is either the namespace name
|
|
38
|
+
* string, that attributes object, or `undefined` for a regular Worker.
|
|
39
|
+
*
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export const resolveNamespaceName = (namespace) => {
|
|
43
|
+
if (namespace == null)
|
|
44
|
+
return undefined;
|
|
45
|
+
if (typeof namespace === "string")
|
|
46
|
+
return namespace;
|
|
47
|
+
return namespace.name;
|
|
48
|
+
};
|
|
49
|
+
// Workers for Platforms "user workers" live inside a dispatch namespace and
|
|
50
|
+
// use a parallel family of script endpoints (`/workers/dispatch/namespaces/
|
|
51
|
+
// :namespace/scripts/...`). The request/response shapes are identical to the
|
|
52
|
+
// account-level Workers API for everything the provider touches, so these
|
|
53
|
+
// helpers route by `dispatchNamespace` and the call sites stay agnostic.
|
|
54
|
+
/**
|
|
55
|
+
* Read a script's combined settings, routing to the dispatch-namespace
|
|
56
|
+
* endpoint when `dispatchNamespace` is set. The two response shapes are
|
|
57
|
+
* structurally identical for the fields the provider consumes (`bindings`,
|
|
58
|
+
* `tags`, `logpush`), so the WFP response is surfaced as the workers shape.
|
|
59
|
+
*
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
const getScriptSettings = (accountId, scriptName, dispatchNamespace) =>
|
|
63
|
+
// `Effect.gen` (rather than a ternary) so the two branches unify into a
|
|
64
|
+
// single `Effect<Settings, WorkersErr | WfpErr>` instead of a *union* of
|
|
65
|
+
// Effects, which `.pipe`/`catchTag` at the call sites can't consume.
|
|
66
|
+
Effect.gen(function* () {
|
|
67
|
+
if (dispatchNamespace) {
|
|
68
|
+
const settings = yield* wfp.getDispatchNamespaceScriptSetting({
|
|
69
|
+
accountId,
|
|
70
|
+
dispatchNamespace,
|
|
71
|
+
scriptName,
|
|
72
|
+
});
|
|
73
|
+
// The dispatch-namespace settings response is structurally identical to
|
|
74
|
+
// the account-level one for the fields the provider reads.
|
|
75
|
+
return settings;
|
|
76
|
+
}
|
|
77
|
+
return yield* workers.getScriptScriptAndVersionSetting({
|
|
78
|
+
accountId,
|
|
79
|
+
scriptName,
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
/**
|
|
83
|
+
* Upsert a Worker script, routing to the dispatch-namespace endpoint when
|
|
84
|
+
* `dispatchNamespace` is set. The metadata/files contract is identical.
|
|
85
|
+
*
|
|
86
|
+
* @internal
|
|
87
|
+
*/
|
|
88
|
+
const putWorkerScript = (params) => Effect.gen(function* () {
|
|
89
|
+
if (params.dispatchNamespace) {
|
|
90
|
+
return yield* wfp.putDispatchNamespaceScript({
|
|
91
|
+
accountId: params.accountId,
|
|
92
|
+
dispatchNamespace: params.dispatchNamespace,
|
|
93
|
+
scriptName: params.scriptName,
|
|
94
|
+
metadata: params.metadata,
|
|
95
|
+
files: params.files,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return yield* workers.putScript({
|
|
99
|
+
accountId: params.accountId,
|
|
100
|
+
scriptName: params.scriptName,
|
|
101
|
+
metadata: params.metadata,
|
|
102
|
+
files: params.files,
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
/**
|
|
106
|
+
* Delete a Worker script, routing to the dispatch-namespace endpoint when
|
|
107
|
+
* `dispatchNamespace` is set.
|
|
108
|
+
*
|
|
109
|
+
* @internal
|
|
110
|
+
*/
|
|
111
|
+
const deleteWorkerScript = (accountId, scriptName, dispatchNamespace) => Effect.gen(function* () {
|
|
112
|
+
if (dispatchNamespace) {
|
|
113
|
+
return yield* wfp.deleteDispatchNamespaceScript({
|
|
114
|
+
accountId,
|
|
115
|
+
dispatchNamespace,
|
|
116
|
+
scriptName,
|
|
117
|
+
force: true,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
return yield* workers.deleteScript({ accountId, scriptName, force: true });
|
|
121
|
+
});
|
|
33
122
|
/**
|
|
34
123
|
* Normalize a Worker's persisted `domains` state to `https://<hostname>`
|
|
35
124
|
* strings. Alchemy <= beta.44 stored each custom domain as a
|
|
@@ -276,14 +365,9 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
276
365
|
binding.scriptName === workerName)
|
|
277
366
|
? [binding.className]
|
|
278
367
|
: []) ?? []));
|
|
279
|
-
const getWorkerSettingsWithDurableObjects = Effect.fn(function* (scriptName, expectedClassNames) {
|
|
368
|
+
const getWorkerSettingsWithDurableObjects = Effect.fn(function* (scriptName, expectedClassNames, dispatchNamespace) {
|
|
280
369
|
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
281
|
-
return yield*
|
|
282
|
-
.getScriptScriptAndVersionSetting({
|
|
283
|
-
accountId,
|
|
284
|
-
scriptName,
|
|
285
|
-
})
|
|
286
|
-
.pipe(Effect.map((settings) => {
|
|
370
|
+
return yield* getScriptSettings(accountId, scriptName, dispatchNamespace).pipe(Effect.map((settings) => {
|
|
287
371
|
const namespaces = getDurableObjects(settings.bindings);
|
|
288
372
|
const missing = expectedClassNames.filter((className) => !namespaces[className]);
|
|
289
373
|
if (missing.length > 0) {
|
|
@@ -306,7 +390,9 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
306
390
|
// propagates. All three are eventual-consistency blips.
|
|
307
391
|
while: (error) => error._tag === "MissingDurableObjects" ||
|
|
308
392
|
error._tag === "WorkerHasNoVersions" ||
|
|
309
|
-
error._tag === "WorkerNotFound"
|
|
393
|
+
error._tag === "WorkerNotFound" ||
|
|
394
|
+
error._tag === "DispatchNamespaceScriptNotFound" ||
|
|
395
|
+
error._tag === "DispatchNamespaceNotFound",
|
|
310
396
|
schedule: Schedule.exponential(100).pipe(Schedule.both(Schedule.recurs(20))),
|
|
311
397
|
}));
|
|
312
398
|
});
|
|
@@ -348,7 +434,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
348
434
|
// (~0.5s), which is only needed for vite-based workers at build time —
|
|
349
435
|
// not for every Worker definition at module-load time.
|
|
350
436
|
const Vite = yield* Effect.promise(() => import("./Vite.js"));
|
|
351
|
-
const {
|
|
437
|
+
const { clientDirectory, serverBundle } = yield* Vite.viteBuild(props.vite?.rootDir, Object.fromEntries((yield* Effect.all(Object.entries(props.env ?? {}).map(Effect.fn(function* ([key, value]) {
|
|
352
438
|
return [
|
|
353
439
|
key,
|
|
354
440
|
typeof value === "string"
|
|
@@ -369,23 +455,22 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
369
455
|
})))).filter(([_, value]) => value !== undefined)), {
|
|
370
456
|
compatibilityDate: compatibility.date,
|
|
371
457
|
compatibilityFlags: compatibility.flags,
|
|
458
|
+
viteEnvironments: props.vite?.viteEnvironments,
|
|
372
459
|
});
|
|
373
|
-
if (!assetsDirectory && !serverBundle) {
|
|
374
|
-
return yield* Effect.die(new Error("Vite build produced neither server nor client output"));
|
|
375
|
-
}
|
|
376
460
|
const [assets, bundle] = yield* Effect.all([
|
|
377
|
-
|
|
461
|
+
clientDirectory
|
|
378
462
|
? readAssets({
|
|
379
463
|
...(props.assets && typeof props.assets !== "string"
|
|
380
464
|
? props.assets
|
|
381
465
|
: undefined),
|
|
382
|
-
directory:
|
|
466
|
+
directory: path.resolve(props.vite?.rootDir ?? process.cwd(), clientDirectory),
|
|
383
467
|
})
|
|
384
|
-
: Effect.
|
|
385
|
-
serverBundle
|
|
386
|
-
? Bundle.bundleOutputFromRolldownOutputBundle(serverBundle)
|
|
387
|
-
: Effect.succeed(undefined),
|
|
468
|
+
: Effect.undefined,
|
|
469
|
+
serverBundle,
|
|
388
470
|
], { concurrency: "unbounded" });
|
|
471
|
+
if (!assets && !bundle) {
|
|
472
|
+
return yield* Effect.die(new Error("Vite build produced neither assets nor server output"));
|
|
473
|
+
}
|
|
389
474
|
return { assets, bundle };
|
|
390
475
|
});
|
|
391
476
|
const prepareAssetsAndBundle = (id, props, opts = {}) => Effect.gen(function* () {
|
|
@@ -451,6 +536,11 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
451
536
|
const putWorker = Effect.fn(function* (id, news, bindings, olds, output, session, existingSettings) {
|
|
452
537
|
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
453
538
|
const name = yield* createWorkerName(id, news.name);
|
|
539
|
+
// When set, this Worker is a Workers for Platforms "user worker"
|
|
540
|
+
// uploaded into a dispatch namespace rather than a routable
|
|
541
|
+
// account-level script. The put/settings calls switch endpoints and
|
|
542
|
+
// the subdomain / custom-domain / cron reconciliation is skipped.
|
|
543
|
+
const dispatchNamespace = resolveNamespaceName(news?.namespace);
|
|
454
544
|
yield* Effect.logInfo(`Cloudflare Worker ${olds ? "update" : "create"}: preparing bundle for ${name}`);
|
|
455
545
|
// If the caller handed us a precomputed asset hash that matches
|
|
456
546
|
// what we previously stored, we can skip walking the directory
|
|
@@ -623,7 +713,24 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
623
713
|
const newSqliteClasses = [];
|
|
624
714
|
const renamedClasses = [];
|
|
625
715
|
for (const binding of currentDoBindings) {
|
|
626
|
-
|
|
716
|
+
let previousClassName = oldDoClassNameByLogicalId[binding.logicalId];
|
|
717
|
+
if (!previousClassName) {
|
|
718
|
+
// No `alchemy:do:` tag maps this logical id to a class — the
|
|
719
|
+
// worker was created outside Alchemy (raw API / Wrangler) or
|
|
720
|
+
// before these tags existed. Fall back to matching the observed
|
|
721
|
+
// cloud binding by binding name so adoption reuses the existing
|
|
722
|
+
// class instead of asking Cloudflare to create one that already
|
|
723
|
+
// exists (which fails the migration). This is the "first deploy
|
|
724
|
+
// must match the existing class name" path; once we write the
|
|
725
|
+
// `alchemy:do:` tag, subsequent renames are driven by logical id.
|
|
726
|
+
const observed = oldBindings.find((old) => old.type === "durable_object_namespace" &&
|
|
727
|
+
"className" in old &&
|
|
728
|
+
old.className &&
|
|
729
|
+
old.name === binding.bindingName);
|
|
730
|
+
if (observed && "className" in observed && observed.className) {
|
|
731
|
+
previousClassName = observed.className;
|
|
732
|
+
}
|
|
733
|
+
}
|
|
627
734
|
if (!previousClassName) {
|
|
628
735
|
// Default all new Durable Object classes to SQLite. Cloudflare
|
|
629
736
|
// recommends SQLite for new namespaces, and container-backed
|
|
@@ -695,14 +802,13 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
695
802
|
tailConsumers: undefined,
|
|
696
803
|
usageModel: undefined,
|
|
697
804
|
};
|
|
698
|
-
const worker = yield*
|
|
699
|
-
.putScript({
|
|
805
|
+
const worker = yield* putWorkerScript({
|
|
700
806
|
accountId,
|
|
701
807
|
scriptName: name,
|
|
808
|
+
dispatchNamespace,
|
|
702
809
|
metadata,
|
|
703
810
|
files: bundle.files,
|
|
704
|
-
})
|
|
705
|
-
.pipe(Effect.catch((err) => {
|
|
811
|
+
}).pipe(Effect.catch((err) => {
|
|
706
812
|
// When adopting a Worker managed by Wrangler (or after a previous
|
|
707
813
|
// deploy with mismatched migrations), the old_tag precondition
|
|
708
814
|
// fails. The only way to discover the actual tag is through the
|
|
@@ -713,9 +819,10 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
713
819
|
: err);
|
|
714
820
|
const expectedTag = msg.match(/when expected tag is ['"]?([^'"]+)['"]?/)?.[1];
|
|
715
821
|
if (expectedTag) {
|
|
716
|
-
return
|
|
822
|
+
return putWorkerScript({
|
|
717
823
|
accountId,
|
|
718
824
|
scriptName: name,
|
|
825
|
+
dispatchNamespace,
|
|
719
826
|
metadata: {
|
|
720
827
|
...metadata,
|
|
721
828
|
migrations: {
|
|
@@ -727,9 +834,28 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
727
834
|
files: bundle.files,
|
|
728
835
|
});
|
|
729
836
|
}
|
|
837
|
+
// @effect-diagnostics-next-line anyUnknownInErrorContext:off
|
|
730
838
|
return Effect.fail(err);
|
|
731
839
|
}));
|
|
732
|
-
const { settings, durableObjectNamespaces } = yield* getWorkerSettingsWithDurableObjects(name, expectedDurableObjectClassNames);
|
|
840
|
+
const { settings, durableObjectNamespaces } = yield* getWorkerSettingsWithDurableObjects(name, expectedDurableObjectClassNames, dispatchNamespace);
|
|
841
|
+
// Workers for Platforms user workers are invoked via dynamic dispatch,
|
|
842
|
+
// never routed directly — they have no workers.dev subdomain, custom
|
|
843
|
+
// domains, or cron triggers. Skip all of that reconciliation.
|
|
844
|
+
if (dispatchNamespace) {
|
|
845
|
+
return {
|
|
846
|
+
workerId: worker.id ?? name,
|
|
847
|
+
workerName: name,
|
|
848
|
+
namespace: dispatchNamespace,
|
|
849
|
+
logpush: worker.logpush ?? undefined,
|
|
850
|
+
url: undefined,
|
|
851
|
+
tags: settings.tags ?? metadata.tags,
|
|
852
|
+
durableObjectNamespaces,
|
|
853
|
+
accountId,
|
|
854
|
+
domains: [],
|
|
855
|
+
crons: [],
|
|
856
|
+
hash,
|
|
857
|
+
};
|
|
858
|
+
}
|
|
733
859
|
// Reconcile workers.dev subdomain against observed cloud state.
|
|
734
860
|
// We can't diff `news.url` against `olds.url` here because both
|
|
735
861
|
// default to `undefined` (meaning "enable") — that comparison
|
|
@@ -782,6 +908,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
782
908
|
return {
|
|
783
909
|
workerId: worker.id ?? name,
|
|
784
910
|
workerName: name,
|
|
911
|
+
namespace: undefined,
|
|
785
912
|
logpush: worker.logpush ?? undefined,
|
|
786
913
|
url: domains[0],
|
|
787
914
|
tags: settings.tags ?? metadata.tags,
|
|
@@ -879,6 +1006,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
879
1006
|
accountId,
|
|
880
1007
|
workerId: script.id,
|
|
881
1008
|
workerName: script.id,
|
|
1009
|
+
namespace: undefined,
|
|
882
1010
|
logpush: script.logpush ?? undefined,
|
|
883
1011
|
url: undefined,
|
|
884
1012
|
tags: script.tags ?? undefined,
|
|
@@ -896,6 +1024,14 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
896
1024
|
if ((output?.accountId ?? accountId) !== accountId) {
|
|
897
1025
|
return { action: "replace" };
|
|
898
1026
|
}
|
|
1027
|
+
// An account-level script and a dispatch-namespace ("user worker")
|
|
1028
|
+
// script are distinct cloud resources; moving a Worker into, out of,
|
|
1029
|
+
// or between namespaces requires a replacement.
|
|
1030
|
+
const newNamespace = resolveNamespaceName(news.namespace);
|
|
1031
|
+
const oldNamespace = output?.namespace ?? resolveNamespaceName(olds?.namespace);
|
|
1032
|
+
if (newNamespace !== oldNamespace) {
|
|
1033
|
+
return { action: "replace" };
|
|
1034
|
+
}
|
|
899
1035
|
const workerName = yield* createWorkerName(id, news.name);
|
|
900
1036
|
const oldWorkerName = output?.workerName
|
|
901
1037
|
? output.workerName
|
|
@@ -988,6 +1124,30 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
988
1124
|
precreate: Effect.fn(function* ({ id, news, session }) {
|
|
989
1125
|
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
990
1126
|
const name = yield* createWorkerName(id, news.name);
|
|
1127
|
+
// A Workers for Platforms user worker can't be pre-created: precreate
|
|
1128
|
+
// runs on raw, *unresolved* props (so resources in a dependency cycle
|
|
1129
|
+
// can signal early), meaning a `namespace` that references the
|
|
1130
|
+
// namespace resource is still an unresolved Output here, and the
|
|
1131
|
+
// namespace itself may not be deployed yet. There's also nothing to
|
|
1132
|
+
// pre-create — a user worker is dispatched to by name, never bound to
|
|
1133
|
+
// circularly. Return a stub; `reconcile` performs the real upload
|
|
1134
|
+
// once props resolve and the namespace exists.
|
|
1135
|
+
if (news.namespace != null) {
|
|
1136
|
+
yield* Effect.logInfo(`Cloudflare Worker precreate: skipping stub for dispatch-namespace worker ${name}`);
|
|
1137
|
+
return {
|
|
1138
|
+
workerId: name,
|
|
1139
|
+
workerName: name,
|
|
1140
|
+
namespace: typeof news.namespace === "string" ? news.namespace : undefined,
|
|
1141
|
+
logpush: undefined,
|
|
1142
|
+
url: undefined,
|
|
1143
|
+
tags: undefined,
|
|
1144
|
+
durableObjectNamespaces: {},
|
|
1145
|
+
accountId,
|
|
1146
|
+
domains: [],
|
|
1147
|
+
crons: [],
|
|
1148
|
+
};
|
|
1149
|
+
}
|
|
1150
|
+
const dispatchNamespace = resolveNamespaceName(news.namespace);
|
|
991
1151
|
const exportMap = news.exports ?? {};
|
|
992
1152
|
const durableObjects = Object.keys(exportMap)
|
|
993
1153
|
.filter((logicalId) => isDurableObjectExport(exportMap[logicalId]))
|
|
@@ -1005,16 +1165,14 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1005
1165
|
]));
|
|
1006
1166
|
yield* Effect.logInfo(`Cloudflare Worker precreate: starting ${name}`);
|
|
1007
1167
|
yield* Effect.logInfo(`Cloudflare Worker precreate: durable objects ${JSON.stringify(durableObjects)}`);
|
|
1008
|
-
const existingSettings = yield*
|
|
1009
|
-
.getScriptScriptAndVersionSetting({
|
|
1010
|
-
accountId,
|
|
1011
|
-
scriptName: name,
|
|
1012
|
-
})
|
|
1013
|
-
.pipe(
|
|
1168
|
+
const existingSettings = yield* getScriptSettings(accountId, name, dispatchNamespace).pipe(
|
|
1014
1169
|
// A freshly pre-created stub can briefly report "has no
|
|
1015
1170
|
// versions" before its first version registers — treat it the
|
|
1016
|
-
// same as a missing worker (nothing to adopt yet).
|
|
1017
|
-
|
|
1171
|
+
// same as a missing worker (nothing to adopt yet). For a user
|
|
1172
|
+
// worker the dispatch-namespace endpoints report a missing
|
|
1173
|
+
// script as `DispatchNamespaceScriptNotFound` (and a missing
|
|
1174
|
+
// namespace as `DispatchNamespaceNotFound`).
|
|
1175
|
+
Effect.catchTag("WorkerNotFound", () => Effect.succeed(undefined)), Effect.catchTag("WorkerHasNoVersions", () => Effect.succeed(undefined)), Effect.catchTag("DispatchNamespaceScriptNotFound", () => Effect.succeed(undefined)), Effect.catchTag("DispatchNamespaceNotFound", () => Effect.succeed(undefined)));
|
|
1018
1176
|
let durableObjectNamespaces = getDurableObjects(existingSettings?.bindings);
|
|
1019
1177
|
if (existingSettings) {
|
|
1020
1178
|
// Engine has already cleared this resource for write via
|
|
@@ -1028,10 +1186,10 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1028
1186
|
const placeholderScript = `${doClasses.length > 0 ? 'import { DurableObject } from "cloudflare:workers";\n\n' : ""}export default { fetch() { return new Response("Alchemy worker is being deployed...") } };\n${doClasses
|
|
1029
1187
|
.map((className) => `export class ${className} extends DurableObject {}`)
|
|
1030
1188
|
.join("\n")}`;
|
|
1031
|
-
yield*
|
|
1032
|
-
.putScript({
|
|
1189
|
+
yield* putWorkerScript({
|
|
1033
1190
|
accountId,
|
|
1034
1191
|
scriptName: name,
|
|
1192
|
+
dispatchNamespace,
|
|
1035
1193
|
metadata: {
|
|
1036
1194
|
mainModule,
|
|
1037
1195
|
bindings: doClasses.length > 0
|
|
@@ -1068,8 +1226,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1068
1226
|
type: "application/javascript+module",
|
|
1069
1227
|
}),
|
|
1070
1228
|
],
|
|
1071
|
-
})
|
|
1072
|
-
.pipe(
|
|
1229
|
+
}).pipe(
|
|
1073
1230
|
// Cloudflare's PUT /workers/scripts/{name} intermittently
|
|
1074
1231
|
// returns code 10002 / "An unknown error has occurred" on the
|
|
1075
1232
|
// first put for a fresh worker name. Surfaced as the shared
|
|
@@ -1084,16 +1241,17 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1084
1241
|
}));
|
|
1085
1242
|
if (doClasses.length > 0) {
|
|
1086
1243
|
({ durableObjectNamespaces } =
|
|
1087
|
-
yield* getWorkerSettingsWithDurableObjects(name, doClasses));
|
|
1244
|
+
yield* getWorkerSettingsWithDurableObjects(name, doClasses, dispatchNamespace));
|
|
1088
1245
|
}
|
|
1089
1246
|
}
|
|
1090
1247
|
if (existingSettings && doClasses.length > 0) {
|
|
1091
1248
|
({ durableObjectNamespaces } =
|
|
1092
|
-
yield* getWorkerSettingsWithDurableObjects(name, doClasses));
|
|
1249
|
+
yield* getWorkerSettingsWithDurableObjects(name, doClasses, dispatchNamespace));
|
|
1093
1250
|
}
|
|
1094
1251
|
return {
|
|
1095
1252
|
workerId: name,
|
|
1096
1253
|
workerName: name,
|
|
1254
|
+
namespace: dispatchNamespace,
|
|
1097
1255
|
logpush: existingSettings?.logpush ?? undefined,
|
|
1098
1256
|
url: undefined,
|
|
1099
1257
|
tags: existingSettings?.tags ?? tags,
|
|
@@ -1106,7 +1264,30 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1106
1264
|
read: Effect.fn(function* ({ id, output, olds }) {
|
|
1107
1265
|
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
1108
1266
|
const workerName = output?.workerName ?? (yield* createWorkerName(id, olds?.name));
|
|
1267
|
+
const dispatchNamespace = output?.namespace ?? resolveNamespaceName(olds?.namespace);
|
|
1109
1268
|
yield* Effect.logInfo(`Cloudflare Worker read: checking ${workerName}`);
|
|
1269
|
+
// Workers for Platforms user workers have no subdomain, custom
|
|
1270
|
+
// domains, or cron triggers — read only the script settings from
|
|
1271
|
+
// the dispatch-namespace endpoint.
|
|
1272
|
+
if (dispatchNamespace) {
|
|
1273
|
+
const settings = yield* getScriptSettings(accountId, workerName, dispatchNamespace);
|
|
1274
|
+
yield* Effect.logInfo(`Cloudflare Worker read: found ${workerName} in dispatch namespace ${dispatchNamespace}`);
|
|
1275
|
+
const attrs = {
|
|
1276
|
+
accountId,
|
|
1277
|
+
workerId: workerName,
|
|
1278
|
+
workerName,
|
|
1279
|
+
namespace: dispatchNamespace,
|
|
1280
|
+
logpush: settings.logpush ?? undefined,
|
|
1281
|
+
url: undefined,
|
|
1282
|
+
tags: settings.tags ?? undefined,
|
|
1283
|
+
durableObjectNamespaces: getDurableObjects(settings.bindings),
|
|
1284
|
+
domains: [],
|
|
1285
|
+
crons: [],
|
|
1286
|
+
};
|
|
1287
|
+
return hasAlchemyWorkerTags(id, settings.tags ?? [])
|
|
1288
|
+
? attrs
|
|
1289
|
+
: Unowned(attrs);
|
|
1290
|
+
}
|
|
1110
1291
|
// We deliberately don't call `listScripts({ accountId })` here:
|
|
1111
1292
|
// it pulls every Worker on the account back through a strict
|
|
1112
1293
|
// schema decode, and a single existing Worker the schema doesn't
|
|
@@ -1156,6 +1337,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1156
1337
|
accountId,
|
|
1157
1338
|
workerId: workerName,
|
|
1158
1339
|
workerName,
|
|
1340
|
+
namespace: undefined,
|
|
1159
1341
|
logpush: settings.logpush ?? undefined,
|
|
1160
1342
|
url: domains[0],
|
|
1161
1343
|
tags: settings.tags ?? undefined,
|
|
@@ -1175,7 +1357,9 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1175
1357
|
}, (effect) => effect.pipe(
|
|
1176
1358
|
// A worker that exists but hasn't registered a version yet reads
|
|
1177
1359
|
// as "not deployed" — fall through to (re)create like NotFound.
|
|
1178
|
-
|
|
1360
|
+
// The dispatch-namespace endpoints report the same conditions as
|
|
1361
|
+
// `DispatchNamespaceScriptNotFound` / `DispatchNamespaceNotFound`.
|
|
1362
|
+
Effect.catchTag("WorkerNotFound", () => Effect.succeed(undefined)), Effect.catchTag("WorkerHasNoVersions", () => Effect.succeed(undefined)), Effect.catchTag("DispatchNamespaceScriptNotFound", () => Effect.succeed(undefined)), Effect.catchTag("DispatchNamespaceNotFound", () => Effect.succeed(undefined)))),
|
|
1179
1363
|
reconcile: Effect.fn(function* ({ id, news, olds, bindings, output, session, }) {
|
|
1180
1364
|
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
1181
1365
|
const name = output?.workerName ?? (yield* createWorkerName(id, news.name));
|
|
@@ -1185,28 +1369,35 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1185
1369
|
}));
|
|
1186
1370
|
yield* Effect.logInfo(`Cloudflare Worker reconcile: starting ${name}`);
|
|
1187
1371
|
yield* Effect.logInfo(`Cloudflare Worker reconcile: durable objects ${JSON.stringify(durableObjects)}`);
|
|
1372
|
+
const dispatchNamespace = resolveNamespaceName(news.namespace);
|
|
1188
1373
|
// Observe — fetch the script's current settings if it already exists.
|
|
1189
1374
|
// `putWorker` is a true upsert against the Cloudflare API; the
|
|
1190
1375
|
// existing settings inform asset/migration decisions and let the
|
|
1191
1376
|
// reconciler converge whether the worker is brand-new, adopted, or
|
|
1192
1377
|
// an in-place update.
|
|
1193
|
-
const existingSettings = yield*
|
|
1194
|
-
.getScriptScriptAndVersionSetting({
|
|
1195
|
-
accountId,
|
|
1196
|
-
scriptName: name,
|
|
1197
|
-
})
|
|
1198
|
-
.pipe(
|
|
1378
|
+
const existingSettings = yield* getScriptSettings(accountId, name, dispatchNamespace).pipe(
|
|
1199
1379
|
// After a pre-create stub (or under a busy account right after
|
|
1200
1380
|
// the first upload) the settings read can race the script
|
|
1201
1381
|
// registry and 404 with "has no versions". Treat it as "no
|
|
1202
1382
|
// existing settings" so reconcile proceeds to upload/converge.
|
|
1203
|
-
|
|
1383
|
+
// The dispatch-namespace endpoints raise
|
|
1384
|
+
// `DispatchNamespaceScriptNotFound` / `DispatchNamespaceNotFound`.
|
|
1385
|
+
Effect.catchTag("WorkerNotFound", () => Effect.succeed(undefined)), Effect.catchTag("WorkerHasNoVersions", () => Effect.succeed(undefined)), Effect.catchTag("DispatchNamespaceScriptNotFound", () => Effect.succeed(undefined)), Effect.catchTag("DispatchNamespaceNotFound", () => Effect.succeed(undefined)));
|
|
1204
1386
|
yield* Effect.logInfo(`Cloudflare Worker reconcile: existing durable object tags ${JSON.stringify((existingSettings?.tags ?? []).filter((tag) => tag.startsWith("alchemy:do:")))}`);
|
|
1205
1387
|
yield* Effect.logInfo(`Cloudflare Worker reconcile: previous durable object tags ${JSON.stringify((output?.tags ?? []).filter((tag) => tag.startsWith("alchemy:do:")))}`);
|
|
1206
1388
|
return yield* putWorker(id, news, bindings, olds, output, session, existingSettings);
|
|
1207
1389
|
}),
|
|
1208
1390
|
delete: Effect.fn(function* ({ output }) {
|
|
1209
1391
|
yield* Effect.logInfo(`Cloudflare Worker delete: deleting ${output.workerName}`);
|
|
1392
|
+
// Workers for Platforms user workers have no custom domains; delete
|
|
1393
|
+
// the script straight out of its dispatch namespace.
|
|
1394
|
+
if (output.namespace) {
|
|
1395
|
+
yield* deleteWorkerScript(output.accountId, output.workerName, output.namespace).pipe(Effect.catchTag([
|
|
1396
|
+
"DispatchNamespaceScriptNotFound",
|
|
1397
|
+
"DispatchNamespaceNotFound",
|
|
1398
|
+
], () => Effect.void));
|
|
1399
|
+
return;
|
|
1400
|
+
}
|
|
1210
1401
|
// Look up live domain IDs rather than trusting persisted state.
|
|
1211
1402
|
// We no longer track `{ id, zoneId }` on the output; fetching
|
|
1212
1403
|
// straight from Cloudflare handles both the normal case and
|
|
@@ -1229,18 +1420,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1229
1420
|
]
|
|
1230
1421
|
: []), { concurrency: "unbounded" });
|
|
1231
1422
|
}
|
|
1232
|
-
yield*
|
|
1233
|
-
.deleteScript({
|
|
1234
|
-
accountId: output.accountId,
|
|
1235
|
-
scriptName: output.workerName,
|
|
1236
|
-
// Force teardown of queue consumers, durable object classes, and
|
|
1237
|
-
// service bindings hanging off this worker. Without `force`, those
|
|
1238
|
-
// conditions raise QueueConsumerConflict / ServiceBindingConflict
|
|
1239
|
-
// and leave the script in CF. Alchemy is the source of truth for
|
|
1240
|
-
// the worker, so we want a hard delete on teardown.
|
|
1241
|
-
force: true,
|
|
1242
|
-
})
|
|
1243
|
-
.pipe(Effect.catchTag("WorkerNotFound", () => Effect.void));
|
|
1423
|
+
yield* deleteWorkerScript(output.accountId, output.workerName, undefined).pipe(Effect.catchTag("WorkerNotFound", () => Effect.void));
|
|
1244
1424
|
}),
|
|
1245
1425
|
tail: ({ output }) => telemetry.tailScript({
|
|
1246
1426
|
accountId: output.accountId,
|