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
package/src/AWS/S3/Bucket.ts
CHANGED
|
@@ -1312,7 +1312,9 @@ export const BucketProvider = () =>
|
|
|
1312
1312
|
list: () =>
|
|
1313
1313
|
Effect.gen(function* () {
|
|
1314
1314
|
const { accountId, region } = yield* AWSEnvironment.current;
|
|
1315
|
-
|
|
1315
|
+
// S3 only includes `BucketRegion` in the response when the request
|
|
1316
|
+
// carries at least one parameter — hence the explicit MaxBuckets.
|
|
1317
|
+
return yield* s3.listBuckets.pages({ MaxBuckets: 1000 }).pipe(
|
|
1316
1318
|
Stream.runCollect,
|
|
1317
1319
|
Effect.map((chunk) =>
|
|
1318
1320
|
Array.from(chunk).flatMap((page) =>
|
|
@@ -1320,15 +1322,21 @@ export const BucketProvider = () =>
|
|
|
1320
1322
|
.filter(
|
|
1321
1323
|
(b): b is s3.Bucket & { Name: string } => b.Name != null,
|
|
1322
1324
|
)
|
|
1323
|
-
.map((b) =>
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1325
|
+
.map((b) => {
|
|
1326
|
+
// ListBuckets is global — record each bucket's actual
|
|
1327
|
+
// region so later operations (delete) can target it.
|
|
1328
|
+
const bucketRegion = (b.BucketRegion ??
|
|
1329
|
+
region) as RegionID;
|
|
1330
|
+
return {
|
|
1331
|
+
bucketName: b.Name,
|
|
1332
|
+
bucketArn: `arn:aws:s3:::${b.Name}` as const,
|
|
1333
|
+
bucketDomainName: `${b.Name}.s3.amazonaws.com` as const,
|
|
1334
|
+
bucketRegionalDomainName:
|
|
1335
|
+
`${b.Name}.s3.${bucketRegion}.amazonaws.com` as const,
|
|
1336
|
+
region: bucketRegion,
|
|
1337
|
+
accountId,
|
|
1338
|
+
};
|
|
1339
|
+
}),
|
|
1332
1340
|
),
|
|
1333
1341
|
),
|
|
1334
1342
|
);
|
|
@@ -1512,34 +1520,61 @@ export const BucketProvider = () =>
|
|
|
1512
1520
|
}),
|
|
1513
1521
|
delete: Effect.fn(function* ({ olds = {}, output, session }) {
|
|
1514
1522
|
yield* Effect.logInfo(
|
|
1515
|
-
`S3 Bucket delete: bucket=${output.bucketName} forceDestroy=${olds.forceDestroy ?? false}`,
|
|
1523
|
+
`S3 Bucket delete: bucket=${output.bucketName} forceDestroy=${olds.forceDestroy ?? false} region=${output.region}`,
|
|
1516
1524
|
);
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1525
|
+
const run = Effect.gen(function* () {
|
|
1526
|
+
// If forceDestroy is enabled, delete all objects first. The bucket
|
|
1527
|
+
// may already be gone (deleted out-of-band, or a previous destroy
|
|
1528
|
+
// partially succeeded) — treat NoSuchBucket as a no-op so the
|
|
1529
|
+
// overall delete still converges.
|
|
1530
|
+
if (olds.forceDestroy) {
|
|
1531
|
+
yield* session.note(
|
|
1532
|
+
`Force destroying bucket: ${output.bucketName} - deleting all objects...`,
|
|
1533
|
+
);
|
|
1534
|
+
yield* deleteAllObjects(output.bucketName).pipe(
|
|
1535
|
+
Effect.catchTag("NoSuchBucket", () => Effect.void),
|
|
1536
|
+
);
|
|
1537
|
+
}
|
|
1529
1538
|
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1539
|
+
yield* s3
|
|
1540
|
+
.deleteBucket({
|
|
1541
|
+
Bucket: output.bucketName,
|
|
1542
|
+
})
|
|
1543
|
+
.pipe(
|
|
1544
|
+
Effect.catchTag("NoSuchBucket", () => Effect.void),
|
|
1545
|
+
Effect.retry({
|
|
1546
|
+
while: (e) => e._tag === "BucketNotEmpty",
|
|
1547
|
+
schedule: Schedule.exponential(100).pipe(
|
|
1548
|
+
Schedule.both(Schedule.recurs(5)),
|
|
1549
|
+
),
|
|
1550
|
+
}),
|
|
1551
|
+
);
|
|
1552
|
+
});
|
|
1553
|
+
|
|
1554
|
+
// The bucket may live in a different region than the ambient client
|
|
1555
|
+
// (list enumerates buckets from every region) — target the bucket's
|
|
1556
|
+
// own region to avoid PermanentRedirect. If we still get redirected
|
|
1557
|
+
// (e.g. a stale/missing region attribute), retry once in the region
|
|
1558
|
+
// the redirect reports.
|
|
1559
|
+
yield* (
|
|
1560
|
+
output.region
|
|
1561
|
+
? run.pipe(
|
|
1562
|
+
Effect.provideService(Region, Effect.succeed(output.region)),
|
|
1563
|
+
)
|
|
1564
|
+
: run
|
|
1565
|
+
).pipe(
|
|
1566
|
+
Effect.tapError(Effect.logInfo),
|
|
1567
|
+
Effect.catchTag("PermanentRedirect", (e) =>
|
|
1568
|
+
e.BucketRegion
|
|
1569
|
+
? run.pipe(
|
|
1570
|
+
Effect.provideService(
|
|
1571
|
+
Region,
|
|
1572
|
+
Effect.succeed(e.BucketRegion as RegionID),
|
|
1573
|
+
),
|
|
1574
|
+
)
|
|
1575
|
+
: Effect.fail(e),
|
|
1576
|
+
),
|
|
1577
|
+
);
|
|
1543
1578
|
|
|
1544
1579
|
yield* session.note(`Deleted bucket: ${output.bucketName}`);
|
|
1545
1580
|
}),
|
package/src/AlchemyContext.ts
CHANGED
|
@@ -20,6 +20,13 @@ export class AlchemyContext extends EffectContext.Service<
|
|
|
20
20
|
* overrides via the `adopt(enabled)` combinator still take precedence.
|
|
21
21
|
*/
|
|
22
22
|
adopt: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* When `true`, an out-of-date Cloudflare state store is upgraded
|
|
25
|
+
* automatically instead of prompting for confirmation (and the upgrade
|
|
26
|
+
* proceeds even in CI). The CLI's `--yes` flag flows in through this field.
|
|
27
|
+
* @default false
|
|
28
|
+
*/
|
|
29
|
+
updateStateStore?: boolean;
|
|
23
30
|
}
|
|
24
31
|
>()("alchemy/Context") {}
|
|
25
32
|
|
package/src/Apply.ts
CHANGED
|
@@ -353,7 +353,9 @@ const executePlan = Effect.fn(function* (
|
|
|
353
353
|
// Aggregate every collected lifecycle failure into a single parallel Cause
|
|
354
354
|
// so the apply ends with one combined error containing every distinct
|
|
355
355
|
// failure / defect that occurred across the concurrent fibers.
|
|
356
|
-
yield* Effect.failCause(
|
|
356
|
+
return yield* Effect.failCause(
|
|
357
|
+
failures.map((f) => f.cause).reduce(Cause.combine),
|
|
358
|
+
);
|
|
357
359
|
}
|
|
358
360
|
});
|
|
359
361
|
|
|
@@ -1605,7 +1607,7 @@ const collectGarbage = Effect.fn(function* (
|
|
|
1605
1607
|
stage,
|
|
1606
1608
|
fqn,
|
|
1607
1609
|
});
|
|
1608
|
-
yield* report("
|
|
1610
|
+
yield* report("retained");
|
|
1609
1611
|
return;
|
|
1610
1612
|
}
|
|
1611
1613
|
yield* commit<DeletingResourceState>({
|
package/src/Axiom/Chart.ts
CHANGED
|
@@ -64,8 +64,16 @@ export interface LogStreamChart extends BaseChart {
|
|
|
64
64
|
readonly type: "LogStream";
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
/**
|
|
68
|
+
* A free-form markdown note. Unlike data charts, `Note` has no `query`
|
|
69
|
+
* or `name` — Axiom's payload is strictly `{ id, type, text, variant? }`.
|
|
70
|
+
*/
|
|
71
|
+
export interface NoteChart {
|
|
72
|
+
readonly id: string;
|
|
68
73
|
readonly type: "Note";
|
|
74
|
+
/** Markdown body rendered in the note cell. */
|
|
75
|
+
readonly text: string;
|
|
76
|
+
readonly variant?: "default";
|
|
69
77
|
}
|
|
70
78
|
|
|
71
79
|
/**
|
package/src/Bundle/Bundle.ts
CHANGED
|
@@ -362,7 +362,7 @@ function builtInPlugins(
|
|
|
362
362
|
];
|
|
363
363
|
}
|
|
364
364
|
|
|
365
|
-
function bundleErrorFromUnknown(error: unknown): BundleError {
|
|
365
|
+
export function bundleErrorFromUnknown(error: unknown): BundleError {
|
|
366
366
|
const message = error instanceof Error ? error.message : String(error);
|
|
367
367
|
return new BundleError({
|
|
368
368
|
message,
|
package/src/Bundle/TempRoot.ts
CHANGED
|
@@ -2,9 +2,31 @@ import * as Effect from "effect/Effect";
|
|
|
2
2
|
import * as FileSystem from "effect/FileSystem";
|
|
3
3
|
import * as Path from "effect/Path";
|
|
4
4
|
import * as crypto from "node:crypto";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
5
6
|
import { Stack } from "../Stack.ts";
|
|
6
7
|
import { Stage } from "../Stage.ts";
|
|
7
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Resolve a bundle entrypoint (`main`) to a real filesystem path.
|
|
11
|
+
*
|
|
12
|
+
* `main` is user-supplied and is very commonly `import.meta.url` — a
|
|
13
|
+
* `file://` URL — which `FileSystem.realPath` cannot `lstat` directly
|
|
14
|
+
* (it would try to stat a literal `file:` path). Convert any `file://`
|
|
15
|
+
* URL to a path first, then resolve to the canonical real path.
|
|
16
|
+
*/
|
|
17
|
+
export const resolveMainPath = Effect.fn(function* (main: string) {
|
|
18
|
+
const fs = yield* FileSystem.FileSystem;
|
|
19
|
+
const path = yield* Path.Path;
|
|
20
|
+
const asPath = yield* Effect.sync(() => {
|
|
21
|
+
try {
|
|
22
|
+
return fileURLToPath(main);
|
|
23
|
+
} catch {
|
|
24
|
+
return main;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return path.resolve(yield* fs.realPath(asPath));
|
|
28
|
+
});
|
|
29
|
+
|
|
8
30
|
/**
|
|
9
31
|
* Creates a unique bundle staging directory under the nearest package-local
|
|
10
32
|
* `.alchemy/tmp` root. Each invocation gets its own directory (via a random
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import type { NonEmptyArray } from "effect/Array";
|
|
2
|
+
import * as Cause from "effect/Cause";
|
|
3
|
+
import * as Deferred from "effect/Deferred";
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as FileSystem from "effect/FileSystem";
|
|
6
|
+
import * as Path from "effect/Path";
|
|
7
|
+
import type * as vite from "vite";
|
|
8
|
+
import { sha256 } from "../Util/index.ts";
|
|
9
|
+
import {
|
|
10
|
+
BundleError,
|
|
11
|
+
bundleErrorFromUnknown,
|
|
12
|
+
bundleOutputFromFiles,
|
|
13
|
+
type BundleFile,
|
|
14
|
+
type BundleOutput,
|
|
15
|
+
} from "./Bundle.ts";
|
|
16
|
+
|
|
17
|
+
export interface ViteBuildOutput {
|
|
18
|
+
readonly clientDirectory: string | undefined;
|
|
19
|
+
// This is emitted as an Effect instead of a value so we can process it in parallel with reading the client assets.
|
|
20
|
+
readonly serverBundle: Effect.Effect<BundleOutput | undefined, BundleError>;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// `@vitejs/plugin-rsc` writes these modules separately after build completes instead of emitting them as chunks.
|
|
24
|
+
// So, we need to detect them and read them from the file system manually.
|
|
25
|
+
const RSC_MANIFEST = {
|
|
26
|
+
"virtual:vite-rsc/assets-manifest": "__vite_rsc_assets_manifest.js",
|
|
27
|
+
"virtual:vite-rsc/environment-imports": "__vite_rsc_env_imports_manifest.js",
|
|
28
|
+
} as const;
|
|
29
|
+
type RscManifestId = keyof typeof RSC_MANIFEST;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* A Vite plugin that collects the output of the build and makes it available as an Effect.
|
|
33
|
+
* @param entryEnvironment - The environment to use as the entry point for the server bundle. Defaults to "ssr".
|
|
34
|
+
*/
|
|
35
|
+
export const viteBuildOutputPlugin = Effect.fn(function* ({
|
|
36
|
+
entryEnvironment = "ssr",
|
|
37
|
+
}: {
|
|
38
|
+
entryEnvironment?: string;
|
|
39
|
+
}) {
|
|
40
|
+
const fs = yield* FileSystem.FileSystem;
|
|
41
|
+
const path = yield* Path.Path;
|
|
42
|
+
let clientDirectory: string | undefined;
|
|
43
|
+
let serverEntry: string | undefined;
|
|
44
|
+
const serverChunks = new Map<
|
|
45
|
+
string,
|
|
46
|
+
Effect.Effect<BundleFile, BundleError>
|
|
47
|
+
>();
|
|
48
|
+
const deferred = yield* Deferred.make<ViteBuildOutput, BundleError>();
|
|
49
|
+
|
|
50
|
+
const plugin: vite.Plugin = {
|
|
51
|
+
name: "alchemy:build-output",
|
|
52
|
+
sharedDuringBuild: true,
|
|
53
|
+
async writeBundle(_, bundle) {
|
|
54
|
+
if (this.environment.name === "client") {
|
|
55
|
+
clientDirectory = path.resolve(
|
|
56
|
+
this.environment.config.root,
|
|
57
|
+
this.environment.config.build.outDir,
|
|
58
|
+
);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const files = Object.values(bundle);
|
|
62
|
+
if (this.environment.name === entryEnvironment) {
|
|
63
|
+
const entryChunk = files.find(
|
|
64
|
+
(file) => file.type === "chunk" && file.isEntry,
|
|
65
|
+
);
|
|
66
|
+
if (!entryChunk) {
|
|
67
|
+
throw new Error(
|
|
68
|
+
`Entry chunk not found for environment "${this.environment.name}"`,
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
serverEntry = fileName(entryChunk.fileName, this.environment);
|
|
72
|
+
}
|
|
73
|
+
await Promise.all(
|
|
74
|
+
files.map(async (file) => {
|
|
75
|
+
if (file.type === "chunk") {
|
|
76
|
+
file.imports
|
|
77
|
+
.filter(
|
|
78
|
+
(self): self is keyof typeof RSC_MANIFEST =>
|
|
79
|
+
self in RSC_MANIFEST,
|
|
80
|
+
)
|
|
81
|
+
.forEach((id) => {
|
|
82
|
+
// Key by the environment-prefixed path, NOT the bare manifest
|
|
83
|
+
// filename. `@vitejs/plugin-rsc` emits a copy of the same-named
|
|
84
|
+
// manifest into every environment's outDir (e.g. both
|
|
85
|
+
// `dist/rsc/__vite_rsc_assets_manifest.js` and
|
|
86
|
+
// `dist/ssr/__vite_rsc_assets_manifest.js`), and each
|
|
87
|
+
// environment's chunks import their own copy via a relative
|
|
88
|
+
// specifier. Keying by the bare filename collapses them into a
|
|
89
|
+
// single entry, dropping every copy but the last — so the
|
|
90
|
+
// entry worker's `import "../__vite_rsc_assets_manifest.js"`
|
|
91
|
+
// resolves to a module that isn't in the bundle and the
|
|
92
|
+
// deployed Worker fails at startup.
|
|
93
|
+
serverChunks.set(
|
|
94
|
+
fileName(RSC_MANIFEST[id], this.environment),
|
|
95
|
+
readRscManifestChunk(id, this.environment),
|
|
96
|
+
);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
const name = fileName(file.fileName, this.environment);
|
|
100
|
+
const content = file.type === "chunk" ? file.code : file.source;
|
|
101
|
+
serverChunks.set(
|
|
102
|
+
name,
|
|
103
|
+
sha256(content).pipe(
|
|
104
|
+
Effect.map((hash) => ({ path: name, content, hash })),
|
|
105
|
+
),
|
|
106
|
+
);
|
|
107
|
+
}),
|
|
108
|
+
);
|
|
109
|
+
},
|
|
110
|
+
buildApp: {
|
|
111
|
+
order: "post",
|
|
112
|
+
async handler() {
|
|
113
|
+
Deferred.doneUnsafe(
|
|
114
|
+
deferred,
|
|
115
|
+
Effect.succeed({
|
|
116
|
+
clientDirectory,
|
|
117
|
+
serverBundle: makeServerBundle(),
|
|
118
|
+
}),
|
|
119
|
+
);
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
// The server bundle may include chunks from more than one Vite environment, so we need to prefix them with the environment-specific output directory.
|
|
125
|
+
// Flattening them doesn't work because of relative imports between environments.
|
|
126
|
+
//
|
|
127
|
+
// `build.outDir` can be resolved to an absolute path (e.g. `@vitejs/plugin-rsc`
|
|
128
|
+
// does this), which would leak the build machine's filesystem path into the
|
|
129
|
+
// worker module names and produce non-portable, leading-`/` specifiers that
|
|
130
|
+
// Cloudflare rejects. Normalize it back to a path relative to the project root
|
|
131
|
+
// so module names match the single-environment case (`dist/ssr/worker.js`).
|
|
132
|
+
const fileName = (name: string, environment: vite.Environment) => {
|
|
133
|
+
const outDir = environment.config.build.outDir;
|
|
134
|
+
const relativeOutDir = path.isAbsolute(outDir)
|
|
135
|
+
? path.relative(environment.config.root, outDir)
|
|
136
|
+
: outDir;
|
|
137
|
+
return `${relativeOutDir}/${name}`;
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
// Manually read the RSC manifest chunk from the file system.
|
|
141
|
+
// This is only safe to run *after* the build has completed.
|
|
142
|
+
const readRscManifestChunk = (
|
|
143
|
+
id: RscManifestId,
|
|
144
|
+
environment: vite.Environment,
|
|
145
|
+
) => {
|
|
146
|
+
const name = RSC_MANIFEST[id];
|
|
147
|
+
return fs
|
|
148
|
+
.readFile(
|
|
149
|
+
path.resolve(
|
|
150
|
+
environment.config.root,
|
|
151
|
+
environment.config.build.outDir,
|
|
152
|
+
name,
|
|
153
|
+
),
|
|
154
|
+
)
|
|
155
|
+
.pipe(
|
|
156
|
+
Effect.flatMap((content) =>
|
|
157
|
+
sha256(content).pipe(
|
|
158
|
+
Effect.map(
|
|
159
|
+
(hash): BundleFile => ({
|
|
160
|
+
path: fileName(name, environment),
|
|
161
|
+
content,
|
|
162
|
+
hash,
|
|
163
|
+
}),
|
|
164
|
+
),
|
|
165
|
+
),
|
|
166
|
+
),
|
|
167
|
+
Effect.mapError(bundleErrorFromUnknown),
|
|
168
|
+
);
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
const makeServerBundle = () => {
|
|
172
|
+
if (!serverEntry && !serverChunks.size) return Effect.undefined;
|
|
173
|
+
if (!serverEntry)
|
|
174
|
+
return Effect.die(new Cause.NoSuchElementError("Missing server entry"));
|
|
175
|
+
const filePaths = Array.from(serverChunks.keys()).sort((a, b) =>
|
|
176
|
+
a.localeCompare(b),
|
|
177
|
+
);
|
|
178
|
+
const server: NonEmptyArray<Effect.Effect<BundleFile, BundleError>> = [
|
|
179
|
+
getChunk(serverEntry),
|
|
180
|
+
];
|
|
181
|
+
for (const filePath of filePaths) {
|
|
182
|
+
if (filePath === serverEntry) continue;
|
|
183
|
+
server.push(getChunk(filePath));
|
|
184
|
+
}
|
|
185
|
+
return Effect.all(server, { concurrency: "unbounded" }).pipe(
|
|
186
|
+
Effect.flatMap(bundleOutputFromFiles),
|
|
187
|
+
);
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
const getChunk = (path: string) => {
|
|
191
|
+
const chunk = serverChunks.get(path);
|
|
192
|
+
if (!chunk) {
|
|
193
|
+
return Effect.die(
|
|
194
|
+
new Cause.NoSuchElementError(`Chunk ${path} not found`),
|
|
195
|
+
);
|
|
196
|
+
}
|
|
197
|
+
return chunk;
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
return {
|
|
201
|
+
plugin,
|
|
202
|
+
output: Deferred.await(deferred),
|
|
203
|
+
};
|
|
204
|
+
});
|
package/src/Bundle/index.ts
CHANGED
package/src/Cli/Event.ts
CHANGED
package/src/Cli/LoggingCli.ts
CHANGED
|
@@ -35,6 +35,8 @@ const statusColor = (status: ApplyStatus): ((s: string) => string) => {
|
|
|
35
35
|
return green;
|
|
36
36
|
case "deleted":
|
|
37
37
|
return dim;
|
|
38
|
+
case "retained":
|
|
39
|
+
return dim;
|
|
38
40
|
case "fail":
|
|
39
41
|
return red;
|
|
40
42
|
case "attaching":
|
|
@@ -51,6 +53,7 @@ const isTerminal = (status: ApplyStatus): boolean =>
|
|
|
51
53
|
status === "created" ||
|
|
52
54
|
status === "updated" ||
|
|
53
55
|
status === "deleted" ||
|
|
56
|
+
status === "retained" ||
|
|
54
57
|
status === "replaced" ||
|
|
55
58
|
status === "fail";
|
|
56
59
|
|
|
@@ -9,6 +9,7 @@ import * as S from "effect/Schema";
|
|
|
9
9
|
import * as Argument from "effect/unstable/cli/Argument";
|
|
10
10
|
import * as CliError from "effect/unstable/cli/CliError";
|
|
11
11
|
import * as Flag from "effect/unstable/cli/Flag";
|
|
12
|
+
import { pathToFileURL } from "node:url";
|
|
12
13
|
|
|
13
14
|
import {
|
|
14
15
|
type AuthProvider,
|
|
@@ -301,7 +302,12 @@ export const printProfile = Effect.fn(function* (
|
|
|
301
302
|
|
|
302
303
|
export const importStack = Effect.fn(function* (main: string) {
|
|
303
304
|
const path = yield* Path.Path;
|
|
304
|
-
|
|
305
|
+
// Build a `file://` URL from the absolute path. `import.meta.resolve` expects a
|
|
306
|
+
// module specifier / URL, not a raw filesystem path: on Windows an absolute
|
|
307
|
+
// path like `D:\stack.ts` is not a valid specifier and fails to resolve, so the
|
|
308
|
+
// CLI cannot load the user's stack. `pathToFileURL` produces a valid URL on
|
|
309
|
+
// every platform.
|
|
310
|
+
const url = pathToFileURL(path.resolve(main)).href;
|
|
305
311
|
const module = yield* Effect.promise(() => import(url));
|
|
306
312
|
const stackEffect = module.default as ReturnType<
|
|
307
313
|
ReturnType<typeof Stack.make>
|
|
@@ -20,7 +20,10 @@ import * as CloudflareEnvironment from "../../Cloudflare/CloudflareEnvironment.t
|
|
|
20
20
|
import * as CloudflareCredentials from "../../Cloudflare/Credentials.ts";
|
|
21
21
|
import { CloudflareLogs } from "../../Cloudflare/Logs.ts";
|
|
22
22
|
import { STATE_STORE_SCRIPT_NAME } from "../../Cloudflare/StateStore/Api.ts";
|
|
23
|
-
import {
|
|
23
|
+
import {
|
|
24
|
+
bootstrap as bootstrapCloudflare,
|
|
25
|
+
teardownStateStore,
|
|
26
|
+
} from "../../Cloudflare/StateStore/State.ts";
|
|
24
27
|
import * as Clank from "../../Util/Clank.ts";
|
|
25
28
|
import { loadConfigProvider } from "../../Util/ConfigProvider.ts";
|
|
26
29
|
import { fileLogger } from "../../Util/FileLogger.ts";
|
|
@@ -116,6 +119,33 @@ const bootstrapCommand = Command.make(
|
|
|
116
119
|
),
|
|
117
120
|
);
|
|
118
121
|
|
|
122
|
+
const teardownCommand = Command.make(
|
|
123
|
+
"teardown",
|
|
124
|
+
{
|
|
125
|
+
envFile,
|
|
126
|
+
profile,
|
|
127
|
+
workerName: cloudflareWorkerName,
|
|
128
|
+
},
|
|
129
|
+
instrumentCommand(
|
|
130
|
+
"cloudflare.teardown",
|
|
131
|
+
(a: { profile: string; workerName: string | undefined }) => ({
|
|
132
|
+
"alchemy.profile": a.profile,
|
|
133
|
+
"alchemy.worker_name": a.workerName ?? "",
|
|
134
|
+
}),
|
|
135
|
+
)(
|
|
136
|
+
Effect.fn(function* ({ envFile, profile, workerName }) {
|
|
137
|
+
const services = yield* cloudflareLayers(envFile, profile);
|
|
138
|
+
yield* teardownStateStore({
|
|
139
|
+
workerName,
|
|
140
|
+
profile,
|
|
141
|
+
}).pipe(Effect.provide(services));
|
|
142
|
+
}),
|
|
143
|
+
),
|
|
144
|
+
).pipe(
|
|
145
|
+
Command.withHidden,
|
|
146
|
+
Command.withDescription("Tear down the cloudflare state store"),
|
|
147
|
+
);
|
|
148
|
+
|
|
119
149
|
/**
|
|
120
150
|
* A single resolved Cloudflare token policy in the shape expected by
|
|
121
151
|
* `POST /user/tokens`.
|
|
@@ -606,5 +636,10 @@ const stateCommand = Command.make("state", {}).pipe(
|
|
|
606
636
|
);
|
|
607
637
|
|
|
608
638
|
export const cloudflareCommand = Command.make("cloudflare", {}).pipe(
|
|
609
|
-
Command.withSubcommands([
|
|
639
|
+
Command.withSubcommands([
|
|
640
|
+
bootstrapCommand,
|
|
641
|
+
teardownCommand,
|
|
642
|
+
createTokenCommand,
|
|
643
|
+
stateCommand,
|
|
644
|
+
]),
|
|
610
645
|
);
|
|
@@ -89,6 +89,9 @@ export const execStack = Effect.fn(function* ({
|
|
|
89
89
|
...ctx,
|
|
90
90
|
dev,
|
|
91
91
|
adopt,
|
|
92
|
+
// `--yes` also auto-accepts (and performs) an out-of-date state
|
|
93
|
+
// store upgrade, instead of prompting.
|
|
94
|
+
updateStateStore: yes,
|
|
92
95
|
})),
|
|
93
96
|
),
|
|
94
97
|
),
|
|
@@ -174,7 +177,7 @@ export const execStack = Effect.fn(function* ({
|
|
|
174
177
|
}
|
|
175
178
|
|
|
176
179
|
if (dev) {
|
|
177
|
-
yield* Effect.never;
|
|
180
|
+
return yield* Effect.never;
|
|
178
181
|
}
|
|
179
182
|
}
|
|
180
183
|
}).pipe(Effect.provide(stack.services));
|
|
@@ -270,8 +270,8 @@ export function PlanProgress(props: PlanProgressProps): JSX.Element {
|
|
|
270
270
|
const icon = taskIcon(row.action, status, spinner);
|
|
271
271
|
const label =
|
|
272
272
|
row.action === "delete"
|
|
273
|
-
? status === "deleted"
|
|
274
|
-
?
|
|
273
|
+
? status === "deleted" || status === "retained"
|
|
274
|
+
? status
|
|
275
275
|
: "drop"
|
|
276
276
|
: status === "ran"
|
|
277
277
|
? row.action === "noop"
|
|
@@ -365,6 +365,8 @@ function statusColor(
|
|
|
365
365
|
case "deleting":
|
|
366
366
|
case "deleted":
|
|
367
367
|
return "red";
|
|
368
|
+
case "retained":
|
|
369
|
+
return "gray";
|
|
368
370
|
case "running":
|
|
369
371
|
case "ran":
|
|
370
372
|
return "cyan";
|
|
@@ -386,7 +388,7 @@ function taskIcon(
|
|
|
386
388
|
if (status === "fail") return "✗";
|
|
387
389
|
if (status === "skipped") return "•";
|
|
388
390
|
if (status === "ran") return action === "noop" ? "•" : "✓";
|
|
389
|
-
if (status === "deleted") return "✓";
|
|
391
|
+
if (status === "deleted" || status === "retained") return "✓";
|
|
390
392
|
if (action === "delete") return "-";
|
|
391
393
|
if (action === "noop") return "•";
|
|
392
394
|
return "λ";
|
|
@@ -360,7 +360,7 @@ export const isAiGateway = (value: unknown): value is Gateway =>
|
|
|
360
360
|
*
|
|
361
361
|
* export default class Api extends Cloudflare.Worker<Api>()(
|
|
362
362
|
* "Api",
|
|
363
|
-
* { main: import.meta.
|
|
363
|
+
* { main: import.meta.url },
|
|
364
364
|
* Effect.gen(function* () {
|
|
365
365
|
* const aiGateway = yield* Cloudflare.AI.QueryGateway(Gateway);
|
|
366
366
|
*
|
|
@@ -235,7 +235,7 @@ export type Search = SearchInstance & {
|
|
|
235
235
|
*
|
|
236
236
|
* export default class Api extends Cloudflare.Worker<Api>()(
|
|
237
237
|
* "api",
|
|
238
|
-
* { main: import.meta.
|
|
238
|
+
* { main: import.meta.url },
|
|
239
239
|
* Effect.gen(function* () {
|
|
240
240
|
* const bucket = yield* Cloudflare.R2.Bucket("docs");
|
|
241
241
|
* const aiSearch = yield* Cloudflare.AI.Search("docs-search", {
|
|
@@ -508,7 +508,7 @@ export type SearchInstance = Resource<
|
|
|
508
508
|
*
|
|
509
509
|
* export default class Api extends Cloudflare.Worker<Api>()(
|
|
510
510
|
* "api",
|
|
511
|
-
* { main: import.meta.
|
|
511
|
+
* { main: import.meta.url },
|
|
512
512
|
* Effect.gen(function* () {
|
|
513
513
|
* const bucket = yield* Cloudflare.R2.Bucket("docs", {});
|
|
514
514
|
* const instance = yield* Cloudflare.AI.SearchInstance("docs-search", {
|
|
@@ -131,7 +131,7 @@ export type SearchNamespace = Resource<
|
|
|
131
131
|
*
|
|
132
132
|
* export default class Api extends Cloudflare.Worker<Api>()(
|
|
133
133
|
* "api",
|
|
134
|
-
* { main: import.meta.
|
|
134
|
+
* { main: import.meta.url },
|
|
135
135
|
* Effect.gen(function* () {
|
|
136
136
|
* const ns = yield* Cloudflare.AI.QuerySearchNamespace(Docs);
|
|
137
137
|
*
|
|
@@ -187,7 +187,12 @@ export const SearchTokenProvider = () =>
|
|
|
187
187
|
name,
|
|
188
188
|
cfApiId: news.cfApiId as string,
|
|
189
189
|
cfApiKey: Redacted.value(news.cfApiKey as Redacted.Redacted<string>),
|
|
190
|
-
legacy
|
|
190
|
+
// Cloudflare defaults an omitted `legacy` to `true`, and legacy
|
|
191
|
+
// (account-level instance) tokens cannot be managed via the per-token
|
|
192
|
+
// routes — GET/DELETE `/ai-search/tokens/{id}` return 401, so they can
|
|
193
|
+
// never be read or deleted, leaking on every teardown. Force
|
|
194
|
+
// non-legacy unless the caller explicitly opts in.
|
|
195
|
+
legacy: news.legacy ?? false,
|
|
191
196
|
};
|
|
192
197
|
|
|
193
198
|
if (!observed) {
|