alchemy 2.0.0-beta.60 → 2.0.0-beta.62
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 +15 -0
- package/bin/cli.js +9 -1
- package/bin/exec.js +86 -17
- package/bin/exec.js.map +1 -1
- package/lib/AWS/ACM/Certificate.d.ts.map +1 -1
- package/lib/AWS/ACM/Certificate.js +25 -6
- package/lib/AWS/ACM/Certificate.js.map +1 -1
- package/lib/AWS/ApiGateway/common.d.ts.map +1 -1
- package/lib/AWS/ApiGateway/common.js +6 -3
- package/lib/AWS/ApiGateway/common.js.map +1 -1
- package/lib/AWS/AuthProvider.d.ts.map +1 -1
- package/lib/AWS/AuthProvider.js +1 -1
- package/lib/AWS/AuthProvider.js.map +1 -1
- package/lib/AWS/AutoScaling/AutoScalingGroup.d.ts.map +1 -1
- package/lib/AWS/AutoScaling/AutoScalingGroup.js +26 -13
- package/lib/AWS/AutoScaling/AutoScalingGroup.js.map +1 -1
- package/lib/AWS/AutoScaling/LaunchTemplate.js +6 -1
- package/lib/AWS/AutoScaling/LaunchTemplate.js.map +1 -1
- package/lib/AWS/AutoScaling/ScalingPolicy.d.ts.map +1 -1
- package/lib/AWS/AutoScaling/ScalingPolicy.js +28 -10
- package/lib/AWS/AutoScaling/ScalingPolicy.js.map +1 -1
- package/lib/AWS/Bootstrap.d.ts.map +1 -1
- package/lib/AWS/Bootstrap.js +5 -2
- package/lib/AWS/Bootstrap.js.map +1 -1
- package/lib/AWS/CloudFront/Distribution.d.ts.map +1 -1
- package/lib/AWS/CloudFront/Distribution.js +20 -5
- package/lib/AWS/CloudFront/Distribution.js.map +1 -1
- package/lib/AWS/CloudFront/Function.js +5 -2
- package/lib/AWS/CloudFront/Function.js.map +1 -1
- package/lib/AWS/CloudFront/Invalidation.d.ts.map +1 -1
- package/lib/AWS/CloudFront/Invalidation.js +4 -1
- package/lib/AWS/CloudFront/Invalidation.js.map +1 -1
- package/lib/AWS/CloudFront/KvEntries.d.ts.map +1 -1
- package/lib/AWS/CloudFront/KvEntries.js +4 -1
- package/lib/AWS/CloudFront/KvEntries.js.map +1 -1
- package/lib/AWS/CloudFront/KvRoutesUpdate.d.ts.map +1 -1
- package/lib/AWS/CloudFront/KvRoutesUpdate.js +8 -2
- package/lib/AWS/CloudFront/KvRoutesUpdate.js.map +1 -1
- package/lib/AWS/CloudFront/PublicKey.d.ts.map +1 -1
- package/lib/AWS/CloudFront/PublicKey.js +5 -1
- package/lib/AWS/CloudFront/PublicKey.js.map +1 -1
- package/lib/AWS/CloudFront/VpcOrigin.d.ts.map +1 -1
- package/lib/AWS/CloudFront/VpcOrigin.js +12 -3
- package/lib/AWS/CloudFront/VpcOrigin.js.map +1 -1
- package/lib/AWS/CloudFront/common.d.ts.map +1 -1
- package/lib/AWS/CloudFront/common.js +5 -2
- package/lib/AWS/CloudFront/common.js.map +1 -1
- package/lib/AWS/CloudWatch/AnomalyDetector.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/AnomalyDetector.js +4 -1
- package/lib/AWS/CloudWatch/AnomalyDetector.js.map +1 -1
- package/lib/AWS/CloudWatch/common.d.ts.map +1 -1
- package/lib/AWS/CloudWatch/common.js +1 -1
- package/lib/AWS/CloudWatch/common.js.map +1 -1
- package/lib/AWS/DynamoDB/Table.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/Table.js +54 -21
- package/lib/AWS/DynamoDB/Table.js.map +1 -1
- package/lib/AWS/EC2/EIP.d.ts.map +1 -1
- package/lib/AWS/EC2/EIP.js +4 -1
- package/lib/AWS/EC2/EIP.js.map +1 -1
- package/lib/AWS/EC2/EgressOnlyInternetGateway.d.ts.map +1 -1
- package/lib/AWS/EC2/EgressOnlyInternetGateway.js +4 -2
- package/lib/AWS/EC2/EgressOnlyInternetGateway.js.map +1 -1
- package/lib/AWS/EC2/Instance.d.ts.map +1 -1
- package/lib/AWS/EC2/Instance.js +12 -3
- package/lib/AWS/EC2/Instance.js.map +1 -1
- package/lib/AWS/EC2/InternetGateway.d.ts.map +1 -1
- package/lib/AWS/EC2/InternetGateway.js +12 -5
- package/lib/AWS/EC2/InternetGateway.js.map +1 -1
- package/lib/AWS/EC2/NatGateway.js +2 -4
- package/lib/AWS/EC2/NatGateway.js.map +1 -1
- 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/NetworkAclEntry.d.ts.map +1 -1
- package/lib/AWS/EC2/NetworkAclEntry.js +4 -1
- package/lib/AWS/EC2/NetworkAclEntry.js.map +1 -1
- package/lib/AWS/EC2/RouteTable.d.ts.map +1 -1
- package/lib/AWS/EC2/RouteTable.js +8 -6
- package/lib/AWS/EC2/RouteTable.js.map +1 -1
- package/lib/AWS/EC2/RouteTableAssociation.js +2 -5
- package/lib/AWS/EC2/RouteTableAssociation.js.map +1 -1
- package/lib/AWS/EC2/SecurityGroup.d.ts.map +1 -1
- package/lib/AWS/EC2/SecurityGroup.js +8 -3
- package/lib/AWS/EC2/SecurityGroup.js.map +1 -1
- package/lib/AWS/EC2/Subnet.d.ts.map +1 -1
- package/lib/AWS/EC2/Subnet.js +10 -6
- package/lib/AWS/EC2/Subnet.js.map +1 -1
- package/lib/AWS/EC2/Vpc.d.ts.map +1 -1
- package/lib/AWS/EC2/Vpc.js +7 -7
- package/lib/AWS/EC2/Vpc.js.map +1 -1
- package/lib/AWS/EC2/VpcEndpoint.js +2 -4
- package/lib/AWS/EC2/VpcEndpoint.js.map +1 -1
- package/lib/AWS/ECS/Service.d.ts.map +1 -1
- package/lib/AWS/ECS/Service.js +33 -5
- package/lib/AWS/ECS/Service.js.map +1 -1
- package/lib/AWS/EKS/Addon.js +8 -2
- package/lib/AWS/EKS/Addon.js.map +1 -1
- package/lib/AWS/EKS/Cluster.d.ts.map +1 -1
- package/lib/AWS/EKS/Cluster.js +4 -1
- package/lib/AWS/EKS/Cluster.js.map +1 -1
- package/lib/AWS/ELBv2/TargetGroup.d.ts.map +1 -1
- package/lib/AWS/ELBv2/TargetGroup.js +4 -1
- package/lib/AWS/ELBv2/TargetGroup.js.map +1 -1
- package/lib/AWS/ELBv2/TrustStore.d.ts.map +1 -1
- package/lib/AWS/ELBv2/TrustStore.js +4 -1
- package/lib/AWS/ELBv2/TrustStore.js.map +1 -1
- package/lib/AWS/IAM/OpenIDConnectProvider.d.ts.map +1 -1
- package/lib/AWS/IAM/OpenIDConnectProvider.js +9 -1
- package/lib/AWS/IAM/OpenIDConnectProvider.js.map +1 -1
- package/lib/AWS/IAM/SAMLProvider.js +4 -1
- package/lib/AWS/IAM/SAMLProvider.js.map +1 -1
- package/lib/AWS/IdentityCenter/AccountAssignment.js +8 -2
- package/lib/AWS/IdentityCenter/AccountAssignment.js.map +1 -1
- package/lib/AWS/IdentityCenter/common.d.ts.map +1 -1
- package/lib/AWS/IdentityCenter/common.js +1 -1
- package/lib/AWS/IdentityCenter/common.js.map +1 -1
- package/lib/AWS/KMS/Alias.js +4 -1
- package/lib/AWS/KMS/Alias.js.map +1 -1
- package/lib/AWS/KMS/Key.js +4 -1
- package/lib/AWS/KMS/Key.js.map +1 -1
- package/lib/AWS/Kinesis/Stream.d.ts.map +1 -1
- package/lib/AWS/Kinesis/Stream.js +2 -2
- package/lib/AWS/Kinesis/Stream.js.map +1 -1
- package/lib/AWS/Kinesis/StreamConsumer.d.ts.map +1 -1
- package/lib/AWS/Kinesis/StreamConsumer.js +7 -4
- package/lib/AWS/Kinesis/StreamConsumer.js.map +1 -1
- package/lib/AWS/Lambda/Alias.d.ts +26 -0
- package/lib/AWS/Lambda/Alias.d.ts.map +1 -1
- package/lib/AWS/Lambda/Alias.js +35 -1
- package/lib/AWS/Lambda/Alias.js.map +1 -1
- package/lib/AWS/Lambda/EventInvokeConfig.d.ts +36 -0
- package/lib/AWS/Lambda/EventInvokeConfig.d.ts.map +1 -0
- package/lib/AWS/Lambda/EventInvokeConfig.js +76 -0
- package/lib/AWS/Lambda/EventInvokeConfig.js.map +1 -0
- package/lib/AWS/Lambda/EventSourceMapping.d.ts.map +1 -1
- package/lib/AWS/Lambda/EventSourceMapping.js +10 -4
- package/lib/AWS/Lambda/EventSourceMapping.js.map +1 -1
- package/lib/AWS/Lambda/Function.d.ts +43 -3
- package/lib/AWS/Lambda/Function.d.ts.map +1 -1
- package/lib/AWS/Lambda/Function.js +124 -28
- package/lib/AWS/Lambda/Function.js.map +1 -1
- package/lib/AWS/Lambda/MicrovmProvider.d.ts.map +1 -1
- package/lib/AWS/Lambda/MicrovmProvider.js +13 -5
- package/lib/AWS/Lambda/MicrovmProvider.js.map +1 -1
- package/lib/AWS/Lambda/NetworkConnector.js +13 -5
- package/lib/AWS/Lambda/NetworkConnector.js.map +1 -1
- package/lib/AWS/Lambda/RuntimeExtension.d.ts +27 -0
- package/lib/AWS/Lambda/RuntimeExtension.d.ts.map +1 -0
- package/lib/AWS/Lambda/RuntimeExtension.js +49 -0
- package/lib/AWS/Lambda/RuntimeExtension.js.map +1 -0
- package/lib/AWS/Lambda/index.d.ts +1 -0
- package/lib/AWS/Lambda/index.d.ts.map +1 -1
- package/lib/AWS/Lambda/index.js +1 -0
- package/lib/AWS/Lambda/index.js.map +1 -1
- package/lib/AWS/Organizations/Account.js +5 -2
- package/lib/AWS/Organizations/Account.js.map +1 -1
- package/lib/AWS/Organizations/DelegatedAdministrator.d.ts.map +1 -1
- package/lib/AWS/Organizations/DelegatedAdministrator.js +10 -2
- package/lib/AWS/Organizations/DelegatedAdministrator.js.map +1 -1
- package/lib/AWS/Organizations/PolicyAttachment.d.ts.map +1 -1
- package/lib/AWS/Organizations/PolicyAttachment.js +10 -4
- package/lib/AWS/Organizations/PolicyAttachment.js.map +1 -1
- package/lib/AWS/Organizations/RootPolicyType.d.ts.map +1 -1
- package/lib/AWS/Organizations/RootPolicyType.js +9 -4
- package/lib/AWS/Organizations/RootPolicyType.js.map +1 -1
- package/lib/AWS/Organizations/TrustedServiceAccess.d.ts.map +1 -1
- package/lib/AWS/Organizations/TrustedServiceAccess.js +8 -1
- package/lib/AWS/Organizations/TrustedServiceAccess.js.map +1 -1
- package/lib/AWS/Organizations/common.d.ts.map +1 -1
- package/lib/AWS/Organizations/common.js +1 -1
- package/lib/AWS/Organizations/common.js.map +1 -1
- package/lib/AWS/Providers.js +14 -12
- package/lib/AWS/Providers.js.map +1 -1
- package/lib/AWS/RDS/DBCluster.d.ts.map +1 -1
- package/lib/AWS/RDS/DBCluster.js +8 -2
- package/lib/AWS/RDS/DBCluster.js.map +1 -1
- package/lib/AWS/RDS/DBInstance.d.ts.map +1 -1
- package/lib/AWS/RDS/DBInstance.js +8 -2
- package/lib/AWS/RDS/DBInstance.js.map +1 -1
- package/lib/AWS/RDS/DBProxy.d.ts.map +1 -1
- package/lib/AWS/RDS/DBProxy.js +4 -1
- package/lib/AWS/RDS/DBProxy.js.map +1 -1
- package/lib/AWS/RDS/DBProxyEndpoint.d.ts.map +1 -1
- package/lib/AWS/RDS/DBProxyEndpoint.js +4 -1
- package/lib/AWS/RDS/DBProxyEndpoint.js.map +1 -1
- package/lib/AWS/Route53/HealthCheck.d.ts.map +1 -1
- package/lib/AWS/Route53/HealthCheck.js +8 -2
- package/lib/AWS/Route53/HealthCheck.js.map +1 -1
- package/lib/AWS/Route53/HostedZone.d.ts.map +1 -1
- package/lib/AWS/Route53/HostedZone.js +28 -6
- package/lib/AWS/Route53/HostedZone.js.map +1 -1
- package/lib/AWS/Route53/Record.d.ts.map +1 -1
- package/lib/AWS/Route53/Record.js +36 -10
- package/lib/AWS/Route53/Record.js.map +1 -1
- package/lib/AWS/S3/Bucket.d.ts.map +1 -1
- package/lib/AWS/S3/Bucket.js +5 -2
- package/lib/AWS/S3/Bucket.js.map +1 -1
- package/lib/AWS/SQS/Queue.d.ts.map +1 -1
- package/lib/AWS/SQS/Queue.js +25 -7
- package/lib/AWS/SQS/Queue.js.map +1 -1
- package/lib/AWS/StateStore/State.js +5 -2
- package/lib/AWS/StateStore/State.js.map +1 -1
- package/lib/AWS/Website/AssetDeployment.js +5 -2
- package/lib/AWS/Website/AssetDeployment.js.map +1 -1
- package/lib/Apply.js +15 -1
- package/lib/Apply.js.map +1 -1
- package/lib/Auth/AuthProvider.d.ts +10 -0
- package/lib/Auth/AuthProvider.d.ts.map +1 -1
- package/lib/Auth/AuthProvider.js +10 -0
- package/lib/Auth/AuthProvider.js.map +1 -1
- package/lib/Auth/Lock.d.ts +17 -0
- package/lib/Auth/Lock.d.ts.map +1 -1
- package/lib/Auth/Lock.js +53 -18
- package/lib/Auth/Lock.js.map +1 -1
- package/lib/Axiom/AuthProvider.d.ts.map +1 -1
- package/lib/Axiom/AuthProvider.js +1 -1
- package/lib/Axiom/AuthProvider.js.map +1 -1
- package/lib/Bundle/PurePlugin.d.ts.map +1 -1
- package/lib/Bundle/PurePlugin.js +15 -2
- package/lib/Bundle/PurePlugin.js.map +1 -1
- package/lib/Bundle/Vite.d.ts +1 -1
- package/lib/Bundle/Vite.d.ts.map +1 -1
- package/lib/Bundle/Vite.js +14 -12
- package/lib/Bundle/Vite.js.map +1 -1
- package/lib/Cli/commands/_shared.d.ts +55 -5
- package/lib/Cli/commands/_shared.d.ts.map +1 -1
- package/lib/Cli/commands/_shared.js +62 -2
- package/lib/Cli/commands/_shared.js.map +1 -1
- package/lib/Cli/commands/login.d.ts.map +1 -1
- package/lib/Cli/commands/login.js +9 -20
- package/lib/Cli/commands/login.js.map +1 -1
- package/lib/Cli/commands/logs.d.ts.map +1 -1
- package/lib/Cli/commands/logs.js +1 -0
- package/lib/Cli/commands/logs.js.map +1 -1
- package/lib/Cli/commands/nuke.d.ts.map +1 -1
- package/lib/Cli/commands/nuke.js +15 -24
- package/lib/Cli/commands/nuke.js.map +1 -1
- package/lib/Cli/commands/profile.d.ts +23 -1
- package/lib/Cli/commands/profile.d.ts.map +1 -1
- package/lib/Cli/commands/profile.js +47 -10
- package/lib/Cli/commands/profile.js.map +1 -1
- package/lib/Cli/commands/sync.d.ts +22 -0
- package/lib/Cli/commands/sync.d.ts.map +1 -0
- package/lib/Cli/commands/sync.js +64 -0
- package/lib/Cli/commands/sync.js.map +1 -0
- package/lib/Cli/commands/tail.d.ts.map +1 -1
- package/lib/Cli/commands/tail.js +1 -0
- package/lib/Cli/commands/tail.js.map +1 -1
- package/lib/Cli/main.d.ts.map +1 -1
- package/lib/Cli/main.js +2 -0
- package/lib/Cli/main.js.map +1 -1
- package/lib/Cloudflare/AI/CustomTopics.d.ts.map +1 -1
- package/lib/Cloudflare/AI/CustomTopics.js +3 -1
- package/lib/Cloudflare/AI/CustomTopics.js.map +1 -1
- package/lib/Cloudflare/AI/Dataset.d.ts.map +1 -1
- package/lib/Cloudflare/AI/Dataset.js +3 -1
- package/lib/Cloudflare/AI/Dataset.js.map +1 -1
- package/lib/Cloudflare/AI/Evaluation.d.ts.map +1 -1
- package/lib/Cloudflare/AI/Evaluation.js +3 -1
- package/lib/Cloudflare/AI/Evaluation.js.map +1 -1
- package/lib/Cloudflare/AI/Gateway.d.ts.map +1 -1
- package/lib/Cloudflare/AI/Gateway.js +5 -6
- package/lib/Cloudflare/AI/Gateway.js.map +1 -1
- package/lib/Cloudflare/AI/GatewayDynamicRouting.d.ts.map +1 -1
- package/lib/Cloudflare/AI/GatewayDynamicRouting.js +34 -3
- package/lib/Cloudflare/AI/GatewayDynamicRouting.js.map +1 -1
- package/lib/Cloudflare/AI/GatewayProvider.d.ts +2 -1
- package/lib/Cloudflare/AI/GatewayProvider.d.ts.map +1 -1
- package/lib/Cloudflare/AI/GatewayProvider.js +5 -2
- package/lib/Cloudflare/AI/GatewayProvider.js.map +1 -1
- package/lib/Cloudflare/AI/ProviderKey.d.ts +135 -0
- package/lib/Cloudflare/AI/ProviderKey.d.ts.map +1 -0
- package/lib/Cloudflare/AI/ProviderKey.js +90 -0
- package/lib/Cloudflare/AI/ProviderKey.js.map +1 -0
- package/lib/Cloudflare/AI/SearchInstance.d.ts.map +1 -1
- package/lib/Cloudflare/AI/SearchInstance.js +9 -5
- package/lib/Cloudflare/AI/SearchInstance.js.map +1 -1
- package/lib/Cloudflare/AI/SearchNamespace.d.ts.map +1 -1
- package/lib/Cloudflare/AI/SearchNamespace.js +5 -4
- package/lib/Cloudflare/AI/SearchNamespace.js.map +1 -1
- package/lib/Cloudflare/AI/SearchToken.d.ts.map +1 -1
- package/lib/Cloudflare/AI/SearchToken.js +3 -1
- package/lib/Cloudflare/AI/SearchToken.js.map +1 -1
- package/lib/Cloudflare/AI/SecuritySettings.d.ts.map +1 -1
- package/lib/Cloudflare/AI/SecuritySettings.js +3 -1
- package/lib/Cloudflare/AI/SecuritySettings.js.map +1 -1
- package/lib/Cloudflare/AI/index.d.ts +1 -0
- package/lib/Cloudflare/AI/index.d.ts.map +1 -1
- package/lib/Cloudflare/AI/index.js +1 -0
- package/lib/Cloudflare/AI/index.js.map +1 -1
- package/lib/Cloudflare/Access/Application.d.ts.map +1 -1
- package/lib/Cloudflare/Access/Application.js +7 -1
- package/lib/Cloudflare/Access/Application.js.map +1 -1
- package/lib/Cloudflare/Access/InfrastructureTarget.d.ts.map +1 -1
- package/lib/Cloudflare/Access/InfrastructureTarget.js +3 -1
- package/lib/Cloudflare/Access/InfrastructureTarget.js.map +1 -1
- package/lib/Cloudflare/Access/Organization.d.ts.map +1 -1
- package/lib/Cloudflare/Access/Organization.js +1 -1
- package/lib/Cloudflare/Access/Organization.js.map +1 -1
- package/lib/Cloudflare/Access/Policy.d.ts.map +1 -1
- package/lib/Cloudflare/Access/Policy.js +3 -1
- package/lib/Cloudflare/Access/Policy.js.map +1 -1
- package/lib/Cloudflare/Account/Account.d.ts.map +1 -1
- package/lib/Cloudflare/Account/Account.js +3 -1
- package/lib/Cloudflare/Account/Account.js.map +1 -1
- package/lib/Cloudflare/Alerting/Silence.d.ts.map +1 -1
- package/lib/Cloudflare/Alerting/Silence.js +4 -1
- package/lib/Cloudflare/Alerting/Silence.js.map +1 -1
- package/lib/Cloudflare/Alerting/Webhook.d.ts.map +1 -1
- package/lib/Cloudflare/Alerting/Webhook.js +8 -2
- package/lib/Cloudflare/Alerting/Webhook.js.map +1 -1
- package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts.map +1 -1
- package/lib/Cloudflare/ApiToken/AccountApiToken.js +1 -1
- package/lib/Cloudflare/ApiToken/AccountApiToken.js.map +1 -1
- package/lib/Cloudflare/ApiToken/UserApiToken.d.ts.map +1 -1
- package/lib/Cloudflare/ApiToken/UserApiToken.js +1 -1
- package/lib/Cloudflare/ApiToken/UserApiToken.js.map +1 -1
- package/lib/Cloudflare/Auth/AuthProvider.d.ts +3 -0
- package/lib/Cloudflare/Auth/AuthProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Auth/AuthProvider.js +73 -21
- package/lib/Cloudflare/Auth/AuthProvider.js.map +1 -1
- package/lib/Cloudflare/Auth/OAuthClient.d.ts.map +1 -1
- package/lib/Cloudflare/Auth/OAuthClient.js +6 -7
- package/lib/Cloudflare/Auth/OAuthClient.js.map +1 -1
- package/lib/Cloudflare/BotManagement/BotManagement.d.ts.map +1 -1
- package/lib/Cloudflare/BotManagement/BotManagement.js +3 -1
- package/lib/Cloudflare/BotManagement/BotManagement.js.map +1 -1
- package/lib/Cloudflare/Cache/RegionalTieredCache.d.ts.map +1 -1
- package/lib/Cloudflare/Cache/RegionalTieredCache.js +7 -1
- package/lib/Cloudflare/Cache/RegionalTieredCache.js.map +1 -1
- package/lib/Cloudflare/Cache/Reserve.d.ts.map +1 -1
- package/lib/Cloudflare/Cache/Reserve.js +3 -1
- package/lib/Cloudflare/Cache/Reserve.js.map +1 -1
- package/lib/Cloudflare/ClientCertificate/ClientCertificate.d.ts.map +1 -1
- package/lib/Cloudflare/ClientCertificate/ClientCertificate.js +3 -1
- package/lib/Cloudflare/ClientCertificate/ClientCertificate.js.map +1 -1
- package/lib/Cloudflare/Containers/Container.d.ts +2 -2
- package/lib/Cloudflare/Containers/Container.js +2 -2
- package/lib/Cloudflare/Containers/ContainerApplication.d.ts +18 -2
- package/lib/Cloudflare/Containers/ContainerApplication.d.ts.map +1 -1
- package/lib/Cloudflare/Containers/ContainerApplication.js +1 -0
- package/lib/Cloudflare/Containers/ContainerApplication.js.map +1 -1
- package/lib/Cloudflare/Containers/ContainerBundle.d.ts +29 -3
- package/lib/Cloudflare/Containers/ContainerBundle.d.ts.map +1 -1
- package/lib/Cloudflare/Containers/ContainerBundle.js +73 -22
- package/lib/Cloudflare/Containers/ContainerBundle.js.map +1 -1
- package/lib/Cloudflare/Containers/ContainerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Containers/ContainerProvider.js +53 -14
- package/lib/Cloudflare/Containers/ContainerProvider.js.map +1 -1
- package/lib/Cloudflare/Containers/LocalContainerProvider.d.ts +6 -6
- package/lib/Cloudflare/Containers/LocalContainerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Containers/LocalContainerProvider.js +69 -47
- package/lib/Cloudflare/Containers/LocalContainerProvider.js.map +1 -1
- package/lib/Cloudflare/ContentScanning/ContentScanning.d.ts.map +1 -1
- package/lib/Cloudflare/ContentScanning/ContentScanning.js +3 -1
- package/lib/Cloudflare/ContentScanning/ContentScanning.js.map +1 -1
- package/lib/Cloudflare/CustomCertificate/CustomCertificate.d.ts.map +1 -1
- package/lib/Cloudflare/CustomCertificate/CustomCertificate.js +3 -1
- package/lib/Cloudflare/CustomCertificate/CustomCertificate.js.map +1 -1
- package/lib/Cloudflare/CustomHostname/CustomHostname.d.ts.map +1 -1
- package/lib/Cloudflare/CustomHostname/CustomHostname.js +1 -1
- package/lib/Cloudflare/CustomHostname/CustomHostname.js.map +1 -1
- package/lib/Cloudflare/CustomHostname/FallbackOrigin.d.ts.map +1 -1
- package/lib/Cloudflare/CustomHostname/FallbackOrigin.js +1 -1
- package/lib/Cloudflare/CustomHostname/FallbackOrigin.js.map +1 -1
- package/lib/Cloudflare/CustomNameserver/CustomNameserver.d.ts.map +1 -1
- package/lib/Cloudflare/CustomNameserver/CustomNameserver.js +3 -1
- package/lib/Cloudflare/CustomNameserver/CustomNameserver.js.map +1 -1
- package/lib/Cloudflare/D1/Database.d.ts.map +1 -1
- package/lib/Cloudflare/D1/Database.js +2 -2
- package/lib/Cloudflare/D1/Database.js.map +1 -1
- package/lib/Cloudflare/DNS/AccountSettings.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/AccountSettings.js +3 -1
- package/lib/Cloudflare/DNS/AccountSettings.js.map +1 -1
- package/lib/Cloudflare/DNS/Dnssec.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/Dnssec.js +3 -1
- package/lib/Cloudflare/DNS/Dnssec.js.map +1 -1
- package/lib/Cloudflare/DNS/Firewall.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/Firewall.js +3 -1
- package/lib/Cloudflare/DNS/Firewall.js.map +1 -1
- package/lib/Cloudflare/DNS/Record.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/Record.js +3 -1
- package/lib/Cloudflare/DNS/Record.js.map +1 -1
- package/lib/Cloudflare/DNS/View.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/View.js +3 -1
- package/lib/Cloudflare/DNS/View.js.map +1 -1
- package/lib/Cloudflare/DNS/ZoneSettings.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/ZoneSettings.js +3 -1
- package/lib/Cloudflare/DNS/ZoneSettings.js.map +1 -1
- package/lib/Cloudflare/DNS/ZoneTransferAcl.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/ZoneTransferAcl.js +3 -1
- package/lib/Cloudflare/DNS/ZoneTransferAcl.js.map +1 -1
- package/lib/Cloudflare/DNS/ZoneTransferIncoming.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/ZoneTransferIncoming.js +3 -1
- package/lib/Cloudflare/DNS/ZoneTransferIncoming.js.map +1 -1
- package/lib/Cloudflare/DNS/ZoneTransferOutgoing.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/ZoneTransferOutgoing.js +3 -1
- package/lib/Cloudflare/DNS/ZoneTransferOutgoing.js.map +1 -1
- package/lib/Cloudflare/DNS/ZoneTransferPeer.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/ZoneTransferPeer.js +3 -1
- package/lib/Cloudflare/DNS/ZoneTransferPeer.js.map +1 -1
- package/lib/Cloudflare/DNS/ZoneTransferTsig.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/ZoneTransferTsig.js +3 -1
- package/lib/Cloudflare/DNS/ZoneTransferTsig.js.map +1 -1
- package/lib/Cloudflare/Diagnostics/EndpointHealthcheck.js +4 -1
- package/lib/Cloudflare/Diagnostics/EndpointHealthcheck.js.map +1 -1
- package/lib/Cloudflare/Email/Address.d.ts.map +1 -1
- package/lib/Cloudflare/Email/Address.js +3 -1
- package/lib/Cloudflare/Email/Address.js.map +1 -1
- package/lib/Cloudflare/Email/AllowPolicy.d.ts.map +1 -1
- package/lib/Cloudflare/Email/AllowPolicy.js +1 -1
- package/lib/Cloudflare/Email/AllowPolicy.js.map +1 -1
- package/lib/Cloudflare/Email/BlockSender.d.ts.map +1 -1
- package/lib/Cloudflare/Email/BlockSender.js +1 -1
- package/lib/Cloudflare/Email/BlockSender.js.map +1 -1
- package/lib/Cloudflare/Email/CatchAll.d.ts.map +1 -1
- package/lib/Cloudflare/Email/CatchAll.js +8 -2
- package/lib/Cloudflare/Email/CatchAll.js.map +1 -1
- package/lib/Cloudflare/Email/Domain.d.ts.map +1 -1
- package/lib/Cloudflare/Email/Domain.js +3 -1
- package/lib/Cloudflare/Email/Domain.js.map +1 -1
- package/lib/Cloudflare/Email/ImpersonationRegistryEntry.d.ts.map +1 -1
- package/lib/Cloudflare/Email/ImpersonationRegistryEntry.js +1 -1
- package/lib/Cloudflare/Email/ImpersonationRegistryEntry.js.map +1 -1
- package/lib/Cloudflare/Email/Routing.d.ts.map +1 -1
- package/lib/Cloudflare/Email/Routing.js +3 -1
- package/lib/Cloudflare/Email/Routing.js.map +1 -1
- package/lib/Cloudflare/Email/Rule.d.ts.map +1 -1
- package/lib/Cloudflare/Email/Rule.js +3 -1
- package/lib/Cloudflare/Email/Rule.js.map +1 -1
- package/lib/Cloudflare/Email/SendingSubdomain.d.ts.map +1 -1
- package/lib/Cloudflare/Email/SendingSubdomain.js +1 -1
- package/lib/Cloudflare/Email/SendingSubdomain.js.map +1 -1
- package/lib/Cloudflare/Email/TrustedDomain.d.ts.map +1 -1
- package/lib/Cloudflare/Email/TrustedDomain.js +1 -1
- package/lib/Cloudflare/Email/TrustedDomain.js.map +1 -1
- package/lib/Cloudflare/Fetcher.d.ts.map +1 -1
- package/lib/Cloudflare/Fetcher.js +10 -3
- package/lib/Cloudflare/Fetcher.js.map +1 -1
- package/lib/Cloudflare/Flagship/App.d.ts.map +1 -1
- package/lib/Cloudflare/Flagship/App.js +2 -3
- package/lib/Cloudflare/Flagship/App.js.map +1 -1
- package/lib/Cloudflare/Fraud/DetectionSettings.d.ts.map +1 -1
- package/lib/Cloudflare/Fraud/DetectionSettings.js +3 -1
- package/lib/Cloudflare/Fraud/DetectionSettings.js.map +1 -1
- package/lib/Cloudflare/GoogleTagGateway/GoogleTagGateway.d.ts.map +1 -1
- package/lib/Cloudflare/GoogleTagGateway/GoogleTagGateway.js +8 -2
- package/lib/Cloudflare/GoogleTagGateway/GoogleTagGateway.js.map +1 -1
- package/lib/Cloudflare/Healthcheck/Healthcheck.d.ts.map +1 -1
- package/lib/Cloudflare/Healthcheck/Healthcheck.js +3 -1
- package/lib/Cloudflare/Healthcheck/Healthcheck.js.map +1 -1
- package/lib/Cloudflare/HostnameTlsSetting/HostnameTlsSetting.d.ts.map +1 -1
- package/lib/Cloudflare/HostnameTlsSetting/HostnameTlsSetting.js +3 -1
- package/lib/Cloudflare/HostnameTlsSetting/HostnameTlsSetting.js.map +1 -1
- package/lib/Cloudflare/Hyperdrive/Connection.d.ts.map +1 -1
- package/lib/Cloudflare/Hyperdrive/Connection.js +2 -4
- package/lib/Cloudflare/Hyperdrive/Connection.js.map +1 -1
- package/lib/Cloudflare/Images/Variant.d.ts.map +1 -1
- package/lib/Cloudflare/Images/Variant.js +4 -1
- package/lib/Cloudflare/Images/Variant.js.map +1 -1
- package/lib/Cloudflare/KV/Namespace.d.ts.map +1 -1
- package/lib/Cloudflare/KV/Namespace.js +5 -4
- package/lib/Cloudflare/KV/Namespace.js.map +1 -1
- package/lib/Cloudflare/KeylessCertificate/KeylessCertificate.d.ts.map +1 -1
- package/lib/Cloudflare/KeylessCertificate/KeylessCertificate.js +3 -1
- package/lib/Cloudflare/KeylessCertificate/KeylessCertificate.js.map +1 -1
- package/lib/Cloudflare/LeakedCredentialCheck/LeakedCredentialCheck.d.ts.map +1 -1
- package/lib/Cloudflare/LeakedCredentialCheck/LeakedCredentialCheck.js +3 -1
- package/lib/Cloudflare/LeakedCredentialCheck/LeakedCredentialCheck.js.map +1 -1
- package/lib/Cloudflare/LoadBalancer/LoadBalancer.d.ts.map +1 -1
- package/lib/Cloudflare/LoadBalancer/LoadBalancer.js +3 -1
- package/lib/Cloudflare/LoadBalancer/LoadBalancer.js.map +1 -1
- package/lib/Cloudflare/LoadBalancer/Monitor.d.ts.map +1 -1
- package/lib/Cloudflare/LoadBalancer/Monitor.js +4 -1
- package/lib/Cloudflare/LoadBalancer/Monitor.js.map +1 -1
- package/lib/Cloudflare/LoadBalancer/MonitorGroup.d.ts.map +1 -1
- package/lib/Cloudflare/LoadBalancer/MonitorGroup.js +4 -1
- package/lib/Cloudflare/LoadBalancer/MonitorGroup.js.map +1 -1
- package/lib/Cloudflare/LoadBalancer/Pool.d.ts.map +1 -1
- package/lib/Cloudflare/LoadBalancer/Pool.js +4 -1
- package/lib/Cloudflare/LoadBalancer/Pool.js.map +1 -1
- package/lib/Cloudflare/LocalRuntime.d.ts +14 -0
- package/lib/Cloudflare/LocalRuntime.d.ts.map +1 -1
- package/lib/Cloudflare/LocalRuntime.js +1 -0
- package/lib/Cloudflare/LocalRuntime.js.map +1 -1
- package/lib/Cloudflare/MagicNetworkMonitoring/Rule.d.ts.map +1 -1
- package/lib/Cloudflare/MagicNetworkMonitoring/Rule.js +4 -1
- package/lib/Cloudflare/MagicNetworkMonitoring/Rule.js.map +1 -1
- package/lib/Cloudflare/ManagedTransforms/ManagedTransforms.d.ts.map +1 -1
- package/lib/Cloudflare/ManagedTransforms/ManagedTransforms.js +3 -1
- package/lib/Cloudflare/ManagedTransforms/ManagedTransforms.js.map +1 -1
- package/lib/Cloudflare/MtlsCertificate/MtlsCertificate.d.ts.map +1 -1
- package/lib/Cloudflare/MtlsCertificate/MtlsCertificate.js +3 -1
- package/lib/Cloudflare/MtlsCertificate/MtlsCertificate.js.map +1 -1
- package/lib/Cloudflare/Organization/Organization.d.ts.map +1 -1
- package/lib/Cloudflare/Organization/Organization.js +3 -1
- package/lib/Cloudflare/Organization/Organization.js.map +1 -1
- package/lib/Cloudflare/OriginCaCertificate/OriginCaCertificate.d.ts.map +1 -1
- package/lib/Cloudflare/OriginCaCertificate/OriginCaCertificate.js +7 -2
- package/lib/Cloudflare/OriginCaCertificate/OriginCaCertificate.js.map +1 -1
- package/lib/Cloudflare/OriginPostQuantumEncryption/OriginPostQuantumEncryption.d.ts.map +1 -1
- package/lib/Cloudflare/OriginPostQuantumEncryption/OriginPostQuantumEncryption.js +3 -1
- package/lib/Cloudflare/OriginPostQuantumEncryption/OriginPostQuantumEncryption.js.map +1 -1
- package/lib/Cloudflare/OriginTlsClientAuth/HostnameCertificate.d.ts.map +1 -1
- package/lib/Cloudflare/OriginTlsClientAuth/HostnameCertificate.js +5 -1
- package/lib/Cloudflare/OriginTlsClientAuth/HostnameCertificate.js.map +1 -1
- package/lib/Cloudflare/PageRule/PageRule.d.ts.map +1 -1
- package/lib/Cloudflare/PageRule/PageRule.js +3 -1
- package/lib/Cloudflare/PageRule/PageRule.js.map +1 -1
- package/lib/Cloudflare/Pipelines/Pipeline.d.ts.map +1 -1
- package/lib/Cloudflare/Pipelines/Pipeline.js +8 -2
- package/lib/Cloudflare/Pipelines/Pipeline.js.map +1 -1
- package/lib/Cloudflare/Pipelines/Sink.d.ts.map +1 -1
- package/lib/Cloudflare/Pipelines/Sink.js +8 -2
- package/lib/Cloudflare/Pipelines/Sink.js.map +1 -1
- package/lib/Cloudflare/Pipelines/Stream.d.ts.map +1 -1
- package/lib/Cloudflare/Pipelines/Stream.js +4 -1
- package/lib/Cloudflare/Pipelines/Stream.js.map +1 -1
- package/lib/Cloudflare/Providers.d.ts +29 -0
- package/lib/Cloudflare/Providers.d.ts.map +1 -1
- package/lib/Cloudflare/Providers.js +44 -30
- package/lib/Cloudflare/Providers.js.map +1 -1
- package/lib/Cloudflare/Queues/Consumer.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/Consumer.js +33 -4
- package/lib/Cloudflare/Queues/Consumer.js.map +1 -1
- package/lib/Cloudflare/Queues/Queue.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/Queue.js +9 -5
- package/lib/Cloudflare/Queues/Queue.js.map +1 -1
- package/lib/Cloudflare/Queues/Subscription.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/Subscription.js +3 -1
- package/lib/Cloudflare/Queues/Subscription.js.map +1 -1
- package/lib/Cloudflare/R2/Bucket.d.ts +98 -0
- package/lib/Cloudflare/R2/Bucket.d.ts.map +1 -1
- package/lib/Cloudflare/R2/Bucket.js +153 -6
- package/lib/Cloudflare/R2/Bucket.js.map +1 -1
- package/lib/Cloudflare/R2/BucketEventNotification.js +4 -1
- package/lib/Cloudflare/R2/BucketEventNotification.js.map +1 -1
- package/lib/Cloudflare/R2/DataCatalog.js +4 -1
- package/lib/Cloudflare/R2/DataCatalog.js.map +1 -1
- package/lib/Cloudflare/RegionalHostname/RegionalHostname.d.ts.map +1 -1
- package/lib/Cloudflare/RegionalHostname/RegionalHostname.js +3 -1
- package/lib/Cloudflare/RegionalHostname/RegionalHostname.js.map +1 -1
- package/lib/Cloudflare/Ruleset/Ruleset.d.ts.map +1 -1
- package/lib/Cloudflare/Ruleset/Ruleset.js +8 -3
- package/lib/Cloudflare/Ruleset/Ruleset.js.map +1 -1
- package/lib/Cloudflare/Rum/Rule.d.ts.map +1 -1
- package/lib/Cloudflare/Rum/Rule.js +4 -1
- package/lib/Cloudflare/Rum/Rule.js.map +1 -1
- package/lib/Cloudflare/SecretsStore/Secret.d.ts.map +1 -1
- package/lib/Cloudflare/SecretsStore/Secret.js +31 -5
- package/lib/Cloudflare/SecretsStore/Secret.js.map +1 -1
- package/lib/Cloudflare/SecurityTxt/SecurityTxt.d.ts.map +1 -1
- package/lib/Cloudflare/SecurityTxt/SecurityTxt.js +3 -1
- package/lib/Cloudflare/SecurityTxt/SecurityTxt.js.map +1 -1
- package/lib/Cloudflare/Snippets/Snippet.d.ts.map +1 -1
- package/lib/Cloudflare/Snippets/Snippet.js +4 -1
- package/lib/Cloudflare/Snippets/Snippet.js.map +1 -1
- package/lib/Cloudflare/StateStore/Api.d.ts +15 -0
- package/lib/Cloudflare/StateStore/CredentialsFile.d.ts +42 -0
- package/lib/Cloudflare/StateStore/CredentialsFile.d.ts.map +1 -0
- package/lib/Cloudflare/StateStore/CredentialsFile.js +23 -0
- package/lib/Cloudflare/StateStore/CredentialsFile.js.map +1 -0
- package/lib/Cloudflare/StateStore/State.d.ts +32 -3
- package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
- package/lib/Cloudflare/StateStore/State.js +128 -22
- package/lib/Cloudflare/StateStore/State.js.map +1 -1
- package/lib/Cloudflare/Tags/AccountResourceTags.d.ts.map +1 -1
- package/lib/Cloudflare/Tags/AccountResourceTags.js +8 -3
- package/lib/Cloudflare/Tags/AccountResourceTags.js.map +1 -1
- package/lib/Cloudflare/Tags/ZoneResourceTags.d.ts.map +1 -1
- package/lib/Cloudflare/Tags/ZoneResourceTags.js +4 -1
- package/lib/Cloudflare/Tags/ZoneResourceTags.js.map +1 -1
- package/lib/Cloudflare/Tunnel/Route.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/Route.js +3 -1
- package/lib/Cloudflare/Tunnel/Route.js.map +1 -1
- package/lib/Cloudflare/Tunnel/Tunnel.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/Tunnel.js +3 -1
- package/lib/Cloudflare/Tunnel/Tunnel.js.map +1 -1
- package/lib/Cloudflare/UrlNormalization/UrlNormalization.d.ts.map +1 -1
- package/lib/Cloudflare/UrlNormalization/UrlNormalization.js +10 -2
- package/lib/Cloudflare/UrlNormalization/UrlNormalization.js.map +1 -1
- package/lib/Cloudflare/Vectorize/VectorizeIndex.d.ts.map +1 -1
- package/lib/Cloudflare/Vectorize/VectorizeIndex.js +2 -3
- package/lib/Cloudflare/Vectorize/VectorizeIndex.js.map +1 -1
- package/lib/Cloudflare/VpcService/VpcService.d.ts.map +1 -1
- package/lib/Cloudflare/VpcService/VpcService.js +1 -1
- package/lib/Cloudflare/VpcService/VpcService.js.map +1 -1
- package/lib/Cloudflare/WaitingRoom/Settings.d.ts.map +1 -1
- package/lib/Cloudflare/WaitingRoom/Settings.js +7 -1
- package/lib/Cloudflare/WaitingRoom/Settings.js.map +1 -1
- package/lib/Cloudflare/WaitingRoom/WaitingRoom.d.ts.map +1 -1
- package/lib/Cloudflare/WaitingRoom/WaitingRoom.js +3 -1
- package/lib/Cloudflare/WaitingRoom/WaitingRoom.js.map +1 -1
- package/lib/Cloudflare/Web3/ContentList.d.ts.map +1 -1
- package/lib/Cloudflare/Web3/ContentList.js +3 -1
- package/lib/Cloudflare/Web3/ContentList.js.map +1 -1
- package/lib/Cloudflare/Web3/Hostname.d.ts.map +1 -1
- package/lib/Cloudflare/Web3/Hostname.js +3 -1
- package/lib/Cloudflare/Web3/Hostname.js.map +1 -1
- package/lib/Cloudflare/Website/Vite.d.ts +19 -0
- package/lib/Cloudflare/Website/Vite.d.ts.map +1 -1
- package/lib/Cloudflare/Website/Vite.js +20 -0
- package/lib/Cloudflare/Website/Vite.js.map +1 -1
- package/lib/Cloudflare/Workers/Cache.d.ts +71 -0
- package/lib/Cloudflare/Workers/Cache.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/Cache.js +64 -0
- package/lib/Cloudflare/Workers/Cache.js.map +1 -0
- package/lib/Cloudflare/Workers/Compatibility.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Compatibility.js +43 -7
- package/lib/Cloudflare/Workers/Compatibility.js.map +1 -1
- package/lib/Cloudflare/Workers/CronEventSource.d.ts +183 -8
- package/lib/Cloudflare/Workers/CronEventSource.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/CronEventSource.js +180 -6
- package/lib/Cloudflare/Workers/CronEventSource.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObject.d.ts +36 -1
- package/lib/Cloudflare/Workers/DurableObject.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObject.js +36 -1
- package/lib/Cloudflare/Workers/DurableObject.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectBridge.js +86 -82
- package/lib/Cloudflare/Workers/DurableObjectBridge.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectState.d.ts +11 -0
- package/lib/Cloudflare/Workers/DurableObjectState.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectState.js +7 -0
- package/lib/Cloudflare/Workers/DurableObjectState.js.map +1 -1
- package/lib/Cloudflare/Workers/Fetch.js +2 -2
- package/lib/Cloudflare/Workers/Fetch.js.map +1 -1
- package/lib/Cloudflare/Workers/HttpServer.d.ts +1 -4
- package/lib/Cloudflare/Workers/HttpServer.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/HttpServer.js +1 -3
- package/lib/Cloudflare/Workers/HttpServer.js.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js +77 -11
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
- package/lib/Cloudflare/Workers/ObservabilityDestination.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/ObservabilityDestination.js +4 -1
- package/lib/Cloudflare/Workers/ObservabilityDestination.js.map +1 -1
- package/lib/Cloudflare/Workers/Vite.d.ts +1 -1
- package/lib/Cloudflare/Workers/Vite.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.d.ts +252 -4
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +166 -7
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts +9 -0
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +39 -15
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts +30 -0
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBridge.d.ts +13 -5
- package/lib/Cloudflare/Workers/WorkerBridge.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBridge.js +133 -35
- package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerLoader.js +9 -1
- package/lib/Cloudflare/Workers/WorkerLoader.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerProvider.js +389 -23
- package/lib/Cloudflare/Workers/WorkerProvider.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.js +20 -3
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.js.map +1 -1
- package/lib/Cloudflare/Workers/cloudflare_workers.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/cloudflare_workers.js +10 -3
- package/lib/Cloudflare/Workers/cloudflare_workers.js.map +1 -1
- package/lib/Cloudflare/Workers/index.d.ts +1 -0
- package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/index.js +1 -0
- package/lib/Cloudflare/Workers/index.js.map +1 -1
- package/lib/Cloudflare/WorkersForPlatforms/DispatchNamespace.d.ts.map +1 -1
- package/lib/Cloudflare/WorkersForPlatforms/DispatchNamespace.js +2 -3
- package/lib/Cloudflare/WorkersForPlatforms/DispatchNamespace.js.map +1 -1
- package/lib/Cloudflare/Workflows/Workflow.d.ts +210 -31
- package/lib/Cloudflare/Workflows/Workflow.d.ts.map +1 -1
- package/lib/Cloudflare/Workflows/Workflow.js +164 -41
- package/lib/Cloudflare/Workflows/Workflow.js.map +1 -1
- package/lib/Cloudflare/Workflows/WorkflowBridge.d.ts.map +1 -1
- package/lib/Cloudflare/Workflows/WorkflowBridge.js +81 -40
- package/lib/Cloudflare/Workflows/WorkflowBridge.js.map +1 -1
- package/lib/Cloudflare/Workflows/WorkflowName.d.ts +11 -0
- package/lib/Cloudflare/Workflows/WorkflowName.d.ts.map +1 -0
- package/lib/Cloudflare/Workflows/WorkflowName.js +28 -0
- package/lib/Cloudflare/Workflows/WorkflowName.js.map +1 -0
- package/lib/Cloudflare/Zaraz/Config.d.ts +1 -0
- package/lib/Cloudflare/Zaraz/Config.d.ts.map +1 -1
- package/lib/Cloudflare/Zaraz/Config.js +8 -2
- package/lib/Cloudflare/Zaraz/Config.js.map +1 -1
- package/lib/Cloudflare/Zone/Hold.d.ts.map +1 -1
- package/lib/Cloudflare/Zone/Hold.js +7 -1
- package/lib/Cloudflare/Zone/Hold.js.map +1 -1
- package/lib/Cloudflare/Zone/Zone.d.ts.map +1 -1
- package/lib/Cloudflare/Zone/Zone.js +1 -0
- package/lib/Cloudflare/Zone/Zone.js.map +1 -1
- package/lib/Command/Dev.d.ts +16 -6
- package/lib/Command/Dev.d.ts.map +1 -1
- package/lib/Command/Dev.js +37 -7
- package/lib/Command/Dev.js.map +1 -1
- package/lib/Docker/Container.d.ts.map +1 -1
- package/lib/Docker/Container.js +15 -2
- package/lib/Docker/Container.js.map +1 -1
- package/lib/Drizzle/Postgres.d.ts +14 -13
- package/lib/Drizzle/Postgres.d.ts.map +1 -1
- package/lib/Drizzle/Postgres.js +39 -19
- package/lib/Drizzle/Postgres.js.map +1 -1
- package/lib/Drizzle/Schema.d.ts.map +1 -1
- package/lib/Drizzle/Schema.js +12 -5
- package/lib/Drizzle/Schema.js.map +1 -1
- package/lib/GitHub/AuthProvider.d.ts.map +1 -1
- package/lib/GitHub/AuthProvider.js +1 -1
- package/lib/GitHub/AuthProvider.js.map +1 -1
- package/lib/GitHub/Env.d.ts +20 -0
- package/lib/GitHub/Env.d.ts.map +1 -0
- package/lib/GitHub/Env.js +27 -0
- package/lib/GitHub/Env.js.map +1 -0
- package/lib/GitHub/index.d.ts +1 -0
- package/lib/GitHub/index.d.ts.map +1 -1
- package/lib/GitHub/index.js +1 -0
- package/lib/GitHub/index.js.map +1 -1
- package/lib/Http.d.ts +9 -0
- package/lib/Http.d.ts.map +1 -1
- package/lib/Http.js +9 -0
- package/lib/Http.js.map +1 -1
- package/lib/Local/RpcProviderProxy.js +1 -1
- package/lib/Local/RpcProviderProxy.js.map +1 -1
- package/lib/Neon/AuthProvider.d.ts.map +1 -1
- package/lib/Neon/AuthProvider.js +1 -1
- package/lib/Neon/AuthProvider.js.map +1 -1
- package/lib/Neon/Branch.d.ts.map +1 -1
- package/lib/Neon/Branch.js +15 -3
- package/lib/Neon/Branch.js.map +1 -1
- package/lib/Neon/Project.js +4 -1
- package/lib/Neon/Project.js.map +1 -1
- package/lib/Output.d.ts +13 -1
- package/lib/Output.d.ts.map +1 -1
- package/lib/Output.js +17 -3
- package/lib/Output.js.map +1 -1
- package/lib/Plan.d.ts.map +1 -1
- package/lib/Plan.js +28 -11
- package/lib/Plan.js.map +1 -1
- package/lib/Planetscale/AuthProvider.d.ts +26 -9
- package/lib/Planetscale/AuthProvider.d.ts.map +1 -1
- package/lib/Planetscale/AuthProvider.js +142 -11
- package/lib/Planetscale/AuthProvider.js.map +1 -1
- package/lib/Planetscale/Branch.d.ts.map +1 -1
- package/lib/Planetscale/Branch.js +4 -1
- package/lib/Planetscale/Branch.js.map +1 -1
- package/lib/Planetscale/Credentials.d.ts.map +1 -1
- package/lib/Planetscale/Credentials.js +14 -6
- package/lib/Planetscale/Credentials.js.map +1 -1
- package/lib/Planetscale/MySQL/MySQLMigrations.js +4 -1
- package/lib/Planetscale/MySQL/MySQLMigrations.js.map +1 -1
- package/lib/Planetscale/OAuthClient.d.ts +72 -0
- package/lib/Planetscale/OAuthClient.d.ts.map +1 -0
- package/lib/Planetscale/OAuthClient.js +227 -0
- package/lib/Planetscale/OAuthClient.js.map +1 -0
- package/lib/Planetscale/Postgres/PostgresClusterSize.d.ts.map +1 -1
- package/lib/Planetscale/Postgres/PostgresClusterSize.js +4 -1
- package/lib/Planetscale/Postgres/PostgresClusterSize.js.map +1 -1
- package/lib/Planetscale/Postgres/PostgresMigrations.js +4 -1
- package/lib/Planetscale/Postgres/PostgresMigrations.js.map +1 -1
- package/lib/Planetscale/Postgres/PostgresRole.js +2 -2
- package/lib/Planetscale/Postgres/PostgresRole.js.map +1 -1
- package/lib/Planetscale/Util.d.ts.map +1 -1
- package/lib/Planetscale/Util.js +4 -1
- package/lib/Planetscale/Util.js.map +1 -1
- package/lib/Platform.d.ts +2 -3
- package/lib/Platform.d.ts.map +1 -1
- package/lib/Platform.js +52 -3
- package/lib/Platform.js.map +1 -1
- package/lib/Provider.d.ts +43 -0
- package/lib/Provider.d.ts.map +1 -1
- package/lib/Provider.js +38 -3
- package/lib/Provider.js.map +1 -1
- package/lib/Ref.d.ts +9 -1
- package/lib/Ref.d.ts.map +1 -1
- package/lib/Ref.js +2 -1
- package/lib/Ref.js.map +1 -1
- package/lib/Resource.d.ts +44 -0
- package/lib/Resource.d.ts.map +1 -1
- package/lib/Resource.js +22 -1
- package/lib/Resource.js.map +1 -1
- package/lib/Stack.js +1 -1
- package/lib/Stack.js.map +1 -1
- package/lib/State/HttpStateApi.d.ts +8 -8
- package/lib/State/HttpStateStore.d.ts +12 -0
- package/lib/State/HttpStateStore.d.ts.map +1 -1
- package/lib/State/HttpStateStore.js +50 -6
- package/lib/State/HttpStateStore.js.map +1 -1
- package/lib/Sync.d.ts +109 -0
- package/lib/Sync.d.ts.map +1 -0
- package/lib/Sync.js +315 -0
- package/lib/Sync.js.map +1 -0
- package/lib/Test/Bun.d.ts +1 -1
- package/lib/Test/Bun.d.ts.map +1 -1
- package/lib/Test/Bun.js +1 -1
- package/lib/Test/Bun.js.map +1 -1
- package/lib/Test/Http.d.ts +67 -0
- package/lib/Test/Http.d.ts.map +1 -1
- package/lib/Test/Http.js +76 -1
- package/lib/Test/Http.js.map +1 -1
- package/lib/Test/Vitest.d.ts +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/data.d.ts +6 -1
- package/lib/Util/data.d.ts.map +1 -1
- package/lib/Util/data.js.map +1 -1
- package/lib/Util/poll.js +1 -1
- package/lib/Util/poll.js.map +1 -1
- package/lib/Util/proxy-chain.js +14 -15
- package/lib/Util/proxy-chain.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/package.json +20 -20
- package/src/AWS/ACM/Certificate.ts +29 -14
- package/src/AWS/ApiGateway/common.ts +11 -8
- package/src/AWS/AuthProvider.ts +0 -3
- package/src/AWS/AutoScaling/AutoScalingGroup.ts +29 -21
- package/src/AWS/AutoScaling/LaunchTemplate.ts +6 -1
- package/src/AWS/AutoScaling/ScalingPolicy.ts +31 -17
- package/src/AWS/Bootstrap.ts +5 -6
- package/src/AWS/CloudFront/Distribution.ts +20 -16
- package/src/AWS/CloudFront/Function.ts +10 -6
- package/src/AWS/CloudFront/Invalidation.ts +4 -3
- package/src/AWS/CloudFront/KvEntries.ts +4 -3
- package/src/AWS/CloudFront/KvRoutesUpdate.ts +8 -6
- package/src/AWS/CloudFront/PublicKey.ts +4 -0
- package/src/AWS/CloudFront/VpcOrigin.ts +12 -9
- package/src/AWS/CloudFront/common.ts +10 -6
- package/src/AWS/CloudWatch/AnomalyDetector.ts +4 -3
- package/src/AWS/CloudWatch/common.ts +1 -3
- package/src/AWS/DynamoDB/Table.ts +58 -48
- package/src/AWS/EC2/EIP.ts +6 -4
- package/src/AWS/EC2/EgressOnlyInternetGateway.ts +6 -4
- package/src/AWS/EC2/Instance.ts +12 -9
- package/src/AWS/EC2/InternetGateway.ts +18 -12
- package/src/AWS/EC2/NatGateway.ts +6 -10
- package/src/AWS/EC2/NetworkAcl.ts +6 -4
- package/src/AWS/EC2/NetworkAclEntry.ts +4 -3
- package/src/AWS/EC2/RouteTable.ts +12 -9
- package/src/AWS/EC2/RouteTableAssociation.ts +3 -5
- package/src/AWS/EC2/SecurityGroup.ts +10 -7
- package/src/AWS/EC2/Subnet.ts +15 -15
- package/src/AWS/EC2/Vpc.ts +12 -12
- package/src/AWS/EC2/VpcEndpoint.ts +6 -8
- package/src/AWS/ECS/Service.ts +39 -9
- package/src/AWS/EKS/Addon.ts +8 -6
- package/src/AWS/EKS/Cluster.ts +4 -3
- package/src/AWS/ELBv2/TargetGroup.ts +4 -3
- package/src/AWS/ELBv2/TrustStore.ts +4 -3
- package/src/AWS/IAM/OpenIDConnectProvider.ts +9 -1
- package/src/AWS/IAM/SAMLProvider.ts +4 -4
- package/src/AWS/IdentityCenter/AccountAssignment.ts +8 -6
- package/src/AWS/IdentityCenter/common.ts +1 -3
- package/src/AWS/KMS/Alias.ts +4 -3
- package/src/AWS/KMS/Key.ts +4 -3
- package/src/AWS/Kinesis/Stream.ts +2 -6
- package/src/AWS/Kinesis/StreamConsumer.ts +7 -12
- package/src/AWS/Lambda/Alias.ts +46 -3
- package/src/AWS/Lambda/EventInvokeConfig.ts +146 -0
- package/src/AWS/Lambda/EventSourceMapping.ts +10 -8
- package/src/AWS/Lambda/Function.ts +146 -33
- package/src/AWS/Lambda/MicrovmProvider.ts +18 -16
- package/src/AWS/Lambda/NetworkConnector.ts +19 -15
- package/src/AWS/Lambda/RuntimeExtension.ts +46 -0
- package/src/AWS/Lambda/index.ts +1 -0
- package/src/AWS/Organizations/Account.ts +5 -6
- package/src/AWS/Organizations/DelegatedAdministrator.ts +11 -3
- package/src/AWS/Organizations/PolicyAttachment.ts +10 -4
- package/src/AWS/Organizations/RootPolicyType.ts +9 -4
- package/src/AWS/Organizations/TrustedServiceAccess.ts +9 -3
- package/src/AWS/Organizations/common.ts +1 -3
- package/src/AWS/Providers.ts +22 -20
- package/src/AWS/RDS/DBCluster.ts +8 -6
- package/src/AWS/RDS/DBInstance.ts +8 -6
- package/src/AWS/RDS/DBProxy.ts +4 -3
- package/src/AWS/RDS/DBProxyEndpoint.ts +4 -3
- package/src/AWS/Route53/HealthCheck.ts +8 -6
- package/src/AWS/Route53/HostedZone.ts +35 -16
- package/src/AWS/Route53/Record.ts +45 -22
- package/src/AWS/S3/Bucket.ts +5 -4
- package/src/AWS/SQS/Queue.ts +26 -20
- package/src/AWS/StateStore/State.ts +5 -4
- package/src/AWS/Website/AssetDeployment.ts +10 -6
- package/src/Apply.ts +15 -1
- package/src/Auth/AuthProvider.ts +11 -0
- package/src/Auth/Lock.ts +62 -18
- package/src/Axiom/AuthProvider.ts +0 -3
- package/src/Bundle/PurePlugin.ts +15 -2
- package/src/Bundle/Vite.ts +16 -15
- package/src/Cli/commands/_shared.ts +119 -5
- package/src/Cli/commands/login.ts +9 -40
- package/src/Cli/commands/logs.ts +1 -0
- package/src/Cli/commands/nuke.ts +16 -44
- package/src/Cli/commands/profile.ts +89 -27
- package/src/Cli/commands/sync.ts +123 -0
- package/src/Cli/commands/tail.ts +1 -0
- package/src/Cli/main.ts +2 -0
- package/src/Cloudflare/AI/CustomTopics.ts +3 -1
- package/src/Cloudflare/AI/Dataset.ts +3 -1
- package/src/Cloudflare/AI/Evaluation.ts +3 -1
- package/src/Cloudflare/AI/Gateway.ts +5 -6
- package/src/Cloudflare/AI/GatewayDynamicRouting.ts +41 -7
- package/src/Cloudflare/AI/GatewayProvider.ts +5 -2
- package/src/Cloudflare/AI/ProviderKey.ts +161 -0
- package/src/Cloudflare/AI/SearchInstance.ts +9 -7
- package/src/Cloudflare/AI/SearchNamespace.ts +5 -4
- package/src/Cloudflare/AI/SearchToken.ts +3 -1
- package/src/Cloudflare/AI/SecuritySettings.ts +3 -0
- package/src/Cloudflare/AI/index.ts +1 -0
- package/src/Cloudflare/Access/Application.ts +7 -4
- package/src/Cloudflare/Access/InfrastructureTarget.ts +4 -1
- package/src/Cloudflare/Access/Organization.ts +1 -0
- package/src/Cloudflare/Access/Policy.ts +3 -1
- package/src/Cloudflare/Account/Account.ts +3 -1
- package/src/Cloudflare/Alerting/Silence.ts +4 -3
- package/src/Cloudflare/Alerting/Webhook.ts +8 -6
- package/src/Cloudflare/ApiToken/AccountApiToken.ts +1 -0
- package/src/Cloudflare/ApiToken/UserApiToken.ts +1 -0
- package/src/Cloudflare/Auth/AuthProvider.ts +123 -46
- package/src/Cloudflare/Auth/OAuthClient.ts +6 -7
- package/src/Cloudflare/BotManagement/BotManagement.ts +3 -1
- package/src/Cloudflare/Cache/RegionalTieredCache.ts +7 -4
- package/src/Cloudflare/Cache/Reserve.ts +3 -1
- package/src/Cloudflare/ClientCertificate/ClientCertificate.ts +3 -1
- package/src/Cloudflare/Containers/Container.ts +2 -2
- package/src/Cloudflare/Containers/ContainerApplication.ts +22 -2
- package/src/Cloudflare/Containers/ContainerBundle.ts +99 -33
- package/src/Cloudflare/Containers/ContainerProvider.ts +73 -19
- package/src/Cloudflare/Containers/LocalContainerProvider.ts +78 -72
- package/src/Cloudflare/ContentScanning/ContentScanning.ts +3 -1
- package/src/Cloudflare/CustomCertificate/CustomCertificate.ts +3 -1
- package/src/Cloudflare/CustomHostname/CustomHostname.ts +1 -0
- package/src/Cloudflare/CustomHostname/FallbackOrigin.ts +1 -0
- package/src/Cloudflare/CustomNameserver/CustomNameserver.ts +3 -1
- package/src/Cloudflare/D1/Database.ts +2 -2
- package/src/Cloudflare/DNS/AccountSettings.ts +3 -1
- package/src/Cloudflare/DNS/Dnssec.ts +3 -1
- package/src/Cloudflare/DNS/Firewall.ts +3 -1
- package/src/Cloudflare/DNS/Record.ts +3 -1
- package/src/Cloudflare/DNS/View.ts +3 -1
- package/src/Cloudflare/DNS/ZoneSettings.ts +3 -1
- package/src/Cloudflare/DNS/ZoneTransferAcl.ts +3 -1
- package/src/Cloudflare/DNS/ZoneTransferIncoming.ts +3 -1
- package/src/Cloudflare/DNS/ZoneTransferOutgoing.ts +3 -1
- package/src/Cloudflare/DNS/ZoneTransferPeer.ts +3 -1
- package/src/Cloudflare/DNS/ZoneTransferTsig.ts +3 -1
- package/src/Cloudflare/Diagnostics/EndpointHealthcheck.ts +4 -3
- package/src/Cloudflare/Email/Address.ts +3 -1
- package/src/Cloudflare/Email/AllowPolicy.ts +1 -0
- package/src/Cloudflare/Email/BlockSender.ts +1 -0
- package/src/Cloudflare/Email/CatchAll.ts +7 -2
- package/src/Cloudflare/Email/Domain.ts +3 -1
- package/src/Cloudflare/Email/ImpersonationRegistryEntry.ts +1 -0
- package/src/Cloudflare/Email/Routing.ts +3 -1
- package/src/Cloudflare/Email/Rule.ts +3 -1
- package/src/Cloudflare/Email/SendingSubdomain.ts +1 -0
- package/src/Cloudflare/Email/TrustedDomain.ts +1 -0
- package/src/Cloudflare/Fetcher.ts +12 -5
- package/src/Cloudflare/Flagship/App.ts +2 -3
- package/src/Cloudflare/Fraud/DetectionSettings.ts +3 -1
- package/src/Cloudflare/GoogleTagGateway/GoogleTagGateway.ts +7 -2
- package/src/Cloudflare/Healthcheck/Healthcheck.ts +3 -1
- package/src/Cloudflare/HostnameTlsSetting/HostnameTlsSetting.ts +3 -1
- package/src/Cloudflare/Hyperdrive/Connection.ts +2 -4
- package/src/Cloudflare/Images/Variant.ts +4 -3
- package/src/Cloudflare/KV/Namespace.ts +5 -4
- package/src/Cloudflare/KeylessCertificate/KeylessCertificate.ts +3 -1
- package/src/Cloudflare/LeakedCredentialCheck/LeakedCredentialCheck.ts +3 -1
- package/src/Cloudflare/LoadBalancer/LoadBalancer.ts +3 -1
- package/src/Cloudflare/LoadBalancer/Monitor.ts +4 -3
- package/src/Cloudflare/LoadBalancer/MonitorGroup.ts +4 -3
- package/src/Cloudflare/LoadBalancer/Pool.ts +4 -3
- package/src/Cloudflare/LocalRuntime.ts +17 -0
- package/src/Cloudflare/MagicNetworkMonitoring/Rule.ts +4 -3
- package/src/Cloudflare/ManagedTransforms/ManagedTransforms.ts +3 -1
- package/src/Cloudflare/MtlsCertificate/MtlsCertificate.ts +3 -1
- package/src/Cloudflare/Organization/Organization.ts +3 -1
- package/src/Cloudflare/OriginCaCertificate/OriginCaCertificate.ts +7 -2
- package/src/Cloudflare/OriginPostQuantumEncryption/OriginPostQuantumEncryption.ts +3 -1
- package/src/Cloudflare/OriginTlsClientAuth/HostnameCertificate.ts +5 -1
- package/src/Cloudflare/PageRule/PageRule.ts +3 -1
- package/src/Cloudflare/Pipelines/Pipeline.ts +8 -6
- package/src/Cloudflare/Pipelines/Sink.ts +8 -6
- package/src/Cloudflare/Pipelines/Stream.ts +4 -3
- package/src/Cloudflare/Providers.ts +55 -38
- package/src/Cloudflare/Queues/Consumer.ts +48 -10
- package/src/Cloudflare/Queues/Queue.ts +9 -7
- package/src/Cloudflare/Queues/Subscription.ts +3 -1
- package/src/Cloudflare/R2/Bucket.ts +242 -12
- package/src/Cloudflare/R2/BucketEventNotification.ts +4 -3
- package/src/Cloudflare/R2/DataCatalog.ts +4 -3
- package/src/Cloudflare/RegionalHostname/RegionalHostname.ts +3 -1
- package/src/Cloudflare/Ruleset/Ruleset.ts +9 -4
- package/src/Cloudflare/Rum/Rule.ts +4 -3
- package/src/Cloudflare/SecretsStore/Secret.ts +46 -5
- package/src/Cloudflare/SecurityTxt/SecurityTxt.ts +3 -1
- package/src/Cloudflare/Snippets/Snippet.ts +4 -3
- package/src/Cloudflare/StateStore/CredentialsFile.ts +48 -0
- package/src/Cloudflare/StateStore/State.ts +144 -43
- package/src/Cloudflare/Tags/AccountResourceTags.ts +9 -5
- package/src/Cloudflare/Tags/ZoneResourceTags.ts +4 -3
- package/src/Cloudflare/Tunnel/Route.ts +3 -1
- package/src/Cloudflare/Tunnel/Tunnel.ts +3 -1
- package/src/Cloudflare/UrlNormalization/UrlNormalization.ts +10 -5
- package/src/Cloudflare/Vectorize/VectorizeIndex.ts +2 -3
- package/src/Cloudflare/VpcService/VpcService.ts +1 -0
- package/src/Cloudflare/WaitingRoom/Settings.ts +7 -4
- package/src/Cloudflare/WaitingRoom/WaitingRoom.ts +3 -1
- package/src/Cloudflare/Web3/ContentList.ts +3 -1
- package/src/Cloudflare/Web3/Hostname.ts +3 -1
- package/src/Cloudflare/Website/Vite.ts +20 -0
- package/src/Cloudflare/Workers/Cache.ts +102 -0
- package/src/Cloudflare/Workers/Compatibility.ts +50 -7
- package/src/Cloudflare/Workers/CronEventSource.ts +183 -8
- package/src/Cloudflare/Workers/DurableObject.ts +36 -1
- package/src/Cloudflare/Workers/DurableObjectBridge.ts +38 -33
- package/src/Cloudflare/Workers/DurableObjectState.ts +25 -0
- package/src/Cloudflare/Workers/Fetch.ts +2 -2
- package/src/Cloudflare/Workers/HttpServer.ts +1 -4
- package/src/Cloudflare/Workers/LocalWorkerProvider.ts +135 -26
- package/src/Cloudflare/Workers/ObservabilityDestination.ts +4 -3
- package/src/Cloudflare/Workers/Worker.ts +337 -9
- package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +45 -16
- package/src/Cloudflare/Workers/WorkerBridge.ts +245 -97
- package/src/Cloudflare/Workers/WorkerLoader.ts +10 -1
- package/src/Cloudflare/Workers/WorkerProvider.ts +598 -55
- package/src/Cloudflare/Workers/WorkerRuntimeContext.ts +23 -2
- package/src/Cloudflare/Workers/cloudflare_workers.ts +20 -12
- package/src/Cloudflare/Workers/index.ts +1 -0
- package/src/Cloudflare/WorkersForPlatforms/DispatchNamespace.ts +2 -4
- package/src/Cloudflare/Workflows/Workflow.ts +350 -58
- package/src/Cloudflare/Workflows/WorkflowBridge.ts +81 -35
- package/src/Cloudflare/Workflows/WorkflowName.ts +41 -0
- package/src/Cloudflare/Zaraz/Config.ts +7 -2
- package/src/Cloudflare/Zone/Hold.ts +7 -4
- package/src/Cloudflare/Zone/Zone.ts +1 -0
- package/src/Command/Dev.ts +42 -10
- package/src/Docker/Container.ts +14 -2
- package/src/Drizzle/Postgres.ts +51 -23
- package/src/Drizzle/Schema.ts +12 -5
- package/src/GitHub/AuthProvider.ts +0 -3
- package/src/GitHub/Env.ts +57 -0
- package/src/GitHub/index.ts +1 -0
- package/src/Http.ts +11 -0
- package/src/Local/RpcProviderProxy.ts +1 -1
- package/src/Neon/AuthProvider.ts +0 -3
- package/src/Neon/Branch.ts +15 -3
- package/src/Neon/Project.ts +2 -2
- package/src/Output.ts +18 -2
- package/src/Plan.ts +28 -11
- package/src/Planetscale/AuthProvider.ts +267 -27
- package/src/Planetscale/Branch.ts +4 -3
- package/src/Planetscale/Credentials.ts +18 -6
- package/src/Planetscale/MySQL/MySQLMigrations.ts +4 -3
- package/src/Planetscale/OAuthClient.ts +307 -0
- package/src/Planetscale/Postgres/PostgresClusterSize.ts +4 -3
- package/src/Planetscale/Postgres/PostgresMigrations.ts +4 -3
- package/src/Planetscale/Postgres/PostgresRole.ts +2 -2
- package/src/Planetscale/Util.ts +4 -3
- package/src/Platform.ts +74 -7
- package/src/Provider.ts +88 -3
- package/src/Ref.ts +10 -0
- package/src/Resource.ts +50 -1
- package/src/Stack.ts +1 -1
- package/src/State/HttpStateStore.ts +51 -9
- package/src/Sync.ts +497 -0
- package/src/Test/Bun.ts +4 -0
- package/src/Test/Http.ts +138 -3
- package/src/Test/Vitest.ts +11 -0
- package/src/Util/data.ts +14 -5
- package/src/Util/poll.ts +1 -1
- package/src/Util/proxy-chain.ts +9 -12
- package/src/index.ts +1 -0
- package/lib/ExecutionContext.d.ts +0 -18
- package/lib/ExecutionContext.d.ts.map +0 -1
- package/lib/ExecutionContext.js +0 -10
- package/lib/ExecutionContext.js.map +0 -1
- package/src/ExecutionContext.ts +0 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerLoader.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerLoader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"WorkerLoader.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerProvider.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerProvider.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAOpC,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAKhD,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkerProvider.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerProvider.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAOpC,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAKhD,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAOpE,OAAO,EAAE,MAAM,EAA4C,MAAM,aAAa,CAAC;AAW/E;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,cACpB,OAAO,KACjB,MAAM,GAAG,SAIX,CAAC;AAkJF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,YACvB,SAAS,OAAO,EAAE,GAAG,SAAS,KACtC,MAAM,EAKL,CAAC;AA8IL,eAAO,MAAM,cAAc,slBAIvB,CAAC;AAEL,eAAO,MAAM,kBAAkB,2SAmlE5B,CAAC"}
|
|
@@ -17,14 +17,16 @@ import * as ProviderLayer from "../../Local/ProviderLayer.js";
|
|
|
17
17
|
import * as Provider from "../../Provider.js";
|
|
18
18
|
import {} from "../../Resource.js";
|
|
19
19
|
import { Stack } from "../../Stack.js";
|
|
20
|
+
import { sha256Object } from "../../Util/sha256.js";
|
|
20
21
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
|
|
21
22
|
import { CloudflareLogs } from "../Logs.js";
|
|
23
|
+
import { listAllZones, resolveZoneId } from "../Zone/lookup.js";
|
|
22
24
|
import { readAssets, uploadAssets } from "./Assets.js";
|
|
23
25
|
import { getCompatibility } from "./Compatibility.js";
|
|
24
26
|
import { isDurableObjectExport } from "./DurableObject.js";
|
|
25
27
|
import { LocalWorkerProvider } from "./LocalWorkerProvider.js";
|
|
26
28
|
import { Worker } from "./Worker.js";
|
|
27
|
-
import { getCronBindings } from "./WorkerAsyncBindings.js";
|
|
29
|
+
import { getCacheBinding, getCronBindings } from "./WorkerAsyncBindings.js";
|
|
28
30
|
import { readPrebuiltWorkerBundle, WorkerBundle } from "./WorkerBundle.js";
|
|
29
31
|
import { isWorkerLoader } from "./WorkerLoader.js";
|
|
30
32
|
import { createWorkerName } from "./WorkerName.js";
|
|
@@ -79,28 +81,66 @@ Effect.gen(function* () {
|
|
|
79
81
|
scriptName,
|
|
80
82
|
});
|
|
81
83
|
});
|
|
84
|
+
/**
|
|
85
|
+
* Deploy-time binding validation rejects an upload whose bindings
|
|
86
|
+
* reference a resource Cloudflare can't see (each resource type has
|
|
87
|
+
* its own typed not-found error, verified against the live API).
|
|
88
|
+
* Every bound resource is provisioned before the Worker deploys —
|
|
89
|
+
* dependency order for KV/R2/D1/queues/etc., a pre-created stub
|
|
90
|
+
* (which exports the Durable Object classes) for circular
|
|
91
|
+
* Worker↔Worker references — so a not-found here is either
|
|
92
|
+
* propagation lag on a just-created resource (a Secrets Store secret
|
|
93
|
+
* still `pending`, a stub script not yet in the registry) that
|
|
94
|
+
* retrying converges, or a genuine misconfiguration that keeps
|
|
95
|
+
* failing and surfaces as the typed error once the bounded budget is
|
|
96
|
+
* exhausted.
|
|
97
|
+
*/
|
|
98
|
+
const isBindingTargetNotFound = (e) => e._tag === "SecretsStoreBindingNotFound" ||
|
|
99
|
+
e._tag === "KVNamespaceNotFound" ||
|
|
100
|
+
e._tag === "R2BucketNotFound" ||
|
|
101
|
+
e._tag === "D1DatabaseNotFound" ||
|
|
102
|
+
e._tag === "QueueNotFound" ||
|
|
103
|
+
e._tag === "ServiceBindingNotFound" ||
|
|
104
|
+
e._tag === "DurableObjectClassNotFound" ||
|
|
105
|
+
e._tag === "HyperdriveConfigNotFound" ||
|
|
106
|
+
e._tag === "VectorizeIndexNotFound" ||
|
|
107
|
+
e._tag === "DispatchNamespaceNotFound" ||
|
|
108
|
+
e._tag === "MtlsCertificateNotFound";
|
|
109
|
+
const bindingTargetNotFoundRetrySchedule = () => Schedule.max([Schedule.fixed("2 seconds"), Schedule.recurs(10)]);
|
|
82
110
|
/**
|
|
83
111
|
* Upsert a Worker script, routing to the dispatch-namespace endpoint when
|
|
84
|
-
* `dispatchNamespace` is set. The metadata/files contract is identical
|
|
112
|
+
* `dispatchNamespace` is set. The metadata/files contract is identical, and
|
|
113
|
+
* both endpoints run the same binding validation (see
|
|
114
|
+
* {@link isBindingTargetNotFound}), so both get the same bounded retry.
|
|
85
115
|
*
|
|
86
116
|
* @internal
|
|
87
117
|
*/
|
|
88
118
|
const putWorkerScript = (params) => Effect.gen(function* () {
|
|
89
119
|
if (params.dispatchNamespace) {
|
|
90
|
-
return yield* wfp
|
|
120
|
+
return yield* wfp
|
|
121
|
+
.putDispatchNamespaceScript({
|
|
91
122
|
accountId: params.accountId,
|
|
92
123
|
dispatchNamespace: params.dispatchNamespace,
|
|
93
124
|
scriptName: params.scriptName,
|
|
94
125
|
metadata: params.metadata,
|
|
95
126
|
files: params.files,
|
|
96
|
-
})
|
|
127
|
+
})
|
|
128
|
+
.pipe(Effect.retry({
|
|
129
|
+
while: isBindingTargetNotFound,
|
|
130
|
+
schedule: bindingTargetNotFoundRetrySchedule(),
|
|
131
|
+
}));
|
|
97
132
|
}
|
|
98
|
-
return yield* workers
|
|
133
|
+
return yield* workers
|
|
134
|
+
.putScript({
|
|
99
135
|
accountId: params.accountId,
|
|
100
136
|
scriptName: params.scriptName,
|
|
101
137
|
metadata: params.metadata,
|
|
102
138
|
files: params.files,
|
|
103
|
-
})
|
|
139
|
+
})
|
|
140
|
+
.pipe(Effect.retry({
|
|
141
|
+
while: isBindingTargetNotFound,
|
|
142
|
+
schedule: bindingTargetNotFoundRetrySchedule(),
|
|
143
|
+
}));
|
|
104
144
|
});
|
|
105
145
|
/**
|
|
106
146
|
* Delete a Worker script, routing to the dispatch-namespace endpoint when
|
|
@@ -137,6 +177,95 @@ export const normalizeStateDomains = (domains) => (domains ?? []).flatMap((u) =>
|
|
|
137
177
|
const hostname = u?.hostname;
|
|
138
178
|
return typeof hostname === "string" ? [`https://${hostname}`] : [];
|
|
139
179
|
});
|
|
180
|
+
/**
|
|
181
|
+
* Deeply materialize an arbitrary value into a JSON-stable shape for hashing:
|
|
182
|
+
* unwrap `Redacted` secrets by value, ISO-stringify `Date`s, keep plain
|
|
183
|
+
* objects/arrays/primitives, and drop Effects, functions, `undefined`, and
|
|
184
|
+
* class instances (which don't round-trip through `JSON.stringify`). Redacted
|
|
185
|
+
* values contribute by value, not by reference identity, so two
|
|
186
|
+
* independently-constructed secrets with the same contents hash identically.
|
|
187
|
+
*
|
|
188
|
+
* Effects are dropped, never executed: resource-typed `env` entries (Worker
|
|
189
|
+
* effect-classes, R2 buckets, Provider/Context tags, ...) are all Effects
|
|
190
|
+
* whose evaluation requires plan-phase context that is not available inside
|
|
191
|
+
* lifecycle operations (running one here fails with `Service not found:
|
|
192
|
+
* Cloudflare.Worker`). Their deploy-time identity is already captured by the
|
|
193
|
+
* resolved `bindings` data hashed alongside `env`, so skipping them loses no
|
|
194
|
+
* change-detection.
|
|
195
|
+
*/
|
|
196
|
+
const resolveMetadataHashValue = (value) => Effect.gen(function* () {
|
|
197
|
+
if (Effect.isEffect(value)) {
|
|
198
|
+
return undefined;
|
|
199
|
+
}
|
|
200
|
+
const resolved = Redacted.isRedacted(value) ? Redacted.value(value) : value;
|
|
201
|
+
if (resolved === null ||
|
|
202
|
+
Predicate.isString(resolved) ||
|
|
203
|
+
Predicate.isNumber(resolved) ||
|
|
204
|
+
Predicate.isBoolean(resolved)) {
|
|
205
|
+
return resolved;
|
|
206
|
+
}
|
|
207
|
+
if (resolved === undefined || Predicate.isFunction(resolved)) {
|
|
208
|
+
return undefined;
|
|
209
|
+
}
|
|
210
|
+
if (Predicate.isDate(resolved)) {
|
|
211
|
+
return resolved.toISOString();
|
|
212
|
+
}
|
|
213
|
+
if (Array.isArray(resolved)) {
|
|
214
|
+
return yield* Effect.all(resolved.map((item) => resolveMetadataHashValue(item)), { concurrency: "unbounded" });
|
|
215
|
+
}
|
|
216
|
+
if (Predicate.isObject(resolved)) {
|
|
217
|
+
// Only plain objects round-trip predictably. A class instance would
|
|
218
|
+
// serialize to `{}` (or throw), so drop it rather than hash a lie.
|
|
219
|
+
const prototype = Object.getPrototypeOf(resolved);
|
|
220
|
+
if (prototype !== Object.prototype && prototype !== null) {
|
|
221
|
+
return undefined;
|
|
222
|
+
}
|
|
223
|
+
const entries = yield* Effect.all(Object.entries(resolved).map(([key, nested]) => resolveMetadataHashValue(nested).pipe(Effect.map((materializedNested) => [key, materializedNested]))), { concurrency: "unbounded" });
|
|
224
|
+
return Object.fromEntries(entries.filter(([, nested]) => nested !== undefined));
|
|
225
|
+
}
|
|
226
|
+
return undefined;
|
|
227
|
+
});
|
|
228
|
+
// The asset router config the resource declares (htmlHandling,
|
|
229
|
+
// notFoundHandling, ...), minus the local `directory` path (machine-specific,
|
|
230
|
+
// would break hash stability across machines) and the precomputed `hash`
|
|
231
|
+
// (already compared via `output.hash.assets`). A bare string `assets` is just
|
|
232
|
+
// a directory path, so it contributes nothing here.
|
|
233
|
+
const workerAssetConfigForHash = (assets) => {
|
|
234
|
+
if (!assets || typeof assets === "string") {
|
|
235
|
+
return undefined;
|
|
236
|
+
}
|
|
237
|
+
const { directory: _directory, ...config } = assets;
|
|
238
|
+
if (Predicate.hasProperty(config, "hash")) {
|
|
239
|
+
const { hash: _hash, ...configWithoutHash } = config;
|
|
240
|
+
return configWithoutHash;
|
|
241
|
+
}
|
|
242
|
+
return config;
|
|
243
|
+
};
|
|
244
|
+
/**
|
|
245
|
+
* Hash a Worker's deploy-time metadata surface so metadata-only edits are
|
|
246
|
+
* detected by the diff (#745). Previously the update decision compared only
|
|
247
|
+
* the bundle/vite/asset-content hashes, so a change to e.g. a compatibility
|
|
248
|
+
* flag or observability config planned as a noop and silently never deployed.
|
|
249
|
+
*/
|
|
250
|
+
const resolveWorkerMetadataHash = ({ props, bindings, accountId, stack, }) => resolveMetadataHashValue({
|
|
251
|
+
accountId,
|
|
252
|
+
stack: { name: stack.name, stage: stack.stage },
|
|
253
|
+
compatibility: getCompatibility(props),
|
|
254
|
+
env: props.env,
|
|
255
|
+
bindings: bindings.map((binding) => ({
|
|
256
|
+
sid: binding.sid,
|
|
257
|
+
data: binding.data,
|
|
258
|
+
})),
|
|
259
|
+
assets: workerAssetConfigForHash(props.assets),
|
|
260
|
+
cache: props.cache,
|
|
261
|
+
limits: props.limits,
|
|
262
|
+
logpush: props.logpush,
|
|
263
|
+
observability: props.observability,
|
|
264
|
+
placement: props.placement,
|
|
265
|
+
subdomain: props.subdomain,
|
|
266
|
+
tags: props.tags,
|
|
267
|
+
url: props.url,
|
|
268
|
+
}).pipe(Effect.flatMap((metadata) => sha256Object({ metadata })));
|
|
140
269
|
export const WorkerProvider = () => ProviderLayer.select({
|
|
141
270
|
live: () => LiveWorkerProvider(),
|
|
142
271
|
local: () => LocalWorkerProvider(),
|
|
@@ -222,7 +351,10 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
222
351
|
})
|
|
223
352
|
.pipe(Effect.retry({
|
|
224
353
|
while: (error) => error._tag === "WorkerNotFound",
|
|
225
|
-
schedule: Schedule.
|
|
354
|
+
schedule: Schedule.max([
|
|
355
|
+
Schedule.exponential(200),
|
|
356
|
+
Schedule.recurs(15),
|
|
357
|
+
]),
|
|
226
358
|
}));
|
|
227
359
|
return normalizeCrons(result.schedules.map((schedule) => schedule.cron));
|
|
228
360
|
});
|
|
@@ -329,7 +461,10 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
329
461
|
})
|
|
330
462
|
.pipe(Effect.retry({
|
|
331
463
|
while: (error) => error._tag === "WorkerNotFound",
|
|
332
|
-
schedule: Schedule.
|
|
464
|
+
schedule: Schedule.max([
|
|
465
|
+
Schedule.exponential(200),
|
|
466
|
+
Schedule.recurs(15),
|
|
467
|
+
]),
|
|
333
468
|
}));
|
|
334
469
|
return {
|
|
335
470
|
hostname,
|
|
@@ -342,6 +477,146 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
342
477
|
});
|
|
343
478
|
return applied;
|
|
344
479
|
});
|
|
480
|
+
const routeKey = (route) => `${route.zoneId}:${route.pattern}`;
|
|
481
|
+
// Derive a concrete hostname inside the zone from a route pattern so
|
|
482
|
+
// zone inference can walk the DNS label hierarchy. A wildcard label
|
|
483
|
+
// (`*.example.com/*`) is replaced with a stand-in label — only the
|
|
484
|
+
// parent labels matter for finding the zone.
|
|
485
|
+
const hostnameFromPattern = (pattern) => {
|
|
486
|
+
const hostPart = pattern.split("/")[0] ?? pattern;
|
|
487
|
+
return hostPart.startsWith("*.")
|
|
488
|
+
? `routes.${hostPart.slice(2)}`
|
|
489
|
+
: hostPart;
|
|
490
|
+
};
|
|
491
|
+
// Resolve each route's zone to a concrete zone id: an explicit
|
|
492
|
+
// `zoneId` wins, then `zone` / `zoneName` via `resolveZoneId`, and
|
|
493
|
+
// finally inference from the pattern's hostname. Duplicate
|
|
494
|
+
// `(zoneId, pattern)` pairs are dropped — Cloudflare enforces one
|
|
495
|
+
// route per pattern per zone.
|
|
496
|
+
const normalizeRoutes = (routes) => Effect.gen(function* () {
|
|
497
|
+
if (!routes?.length)
|
|
498
|
+
return [];
|
|
499
|
+
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
500
|
+
const zoneCache = new Map();
|
|
501
|
+
const normalized = [];
|
|
502
|
+
const seen = new Set();
|
|
503
|
+
for (const route of routes) {
|
|
504
|
+
const pattern = route.pattern.trim();
|
|
505
|
+
const zoneId = route.zoneId
|
|
506
|
+
? route.zoneId
|
|
507
|
+
: route.zone || route.zoneName
|
|
508
|
+
? yield* resolveZoneId({
|
|
509
|
+
accountId,
|
|
510
|
+
zone: route.zone ?? route.zoneName,
|
|
511
|
+
hostname: hostnameFromPattern(pattern),
|
|
512
|
+
})
|
|
513
|
+
: yield* inferZoneIdForHostname(hostnameFromPattern(pattern), zoneCache);
|
|
514
|
+
const key = routeKey({ pattern, zoneId });
|
|
515
|
+
if (seen.has(key))
|
|
516
|
+
continue;
|
|
517
|
+
seen.add(key);
|
|
518
|
+
normalized.push({ pattern, zoneId });
|
|
519
|
+
}
|
|
520
|
+
return normalized;
|
|
521
|
+
});
|
|
522
|
+
// List the routes attached to `scriptName` across the given zones.
|
|
523
|
+
// Routes without an id/pattern or owned by another script are
|
|
524
|
+
// ignored. Zones the token can't read are skipped rather than
|
|
525
|
+
// failing the whole listing.
|
|
526
|
+
const listWorkerRoutesInZones = (scriptName, zoneIds) => {
|
|
527
|
+
const uniqueZoneIds = Array.from(new Set(zoneIds));
|
|
528
|
+
if (uniqueZoneIds.length === 0) {
|
|
529
|
+
return Effect.succeed([]);
|
|
530
|
+
}
|
|
531
|
+
const routesByZone = Effect.all(uniqueZoneIds.map((zoneId) => workers.listRoutes({ zoneId }).pipe(Effect.map((response) => (response.result ?? []).flatMap((route) => route.id && route.pattern && route.script === scriptName
|
|
532
|
+
? [{ id: route.id, pattern: route.pattern, zoneId }]
|
|
533
|
+
: [])), Effect.catch(() => Effect.succeed([])))), { concurrency: "unbounded" });
|
|
534
|
+
return Effect.map(routesByZone, (routes) => routes.flat());
|
|
535
|
+
};
|
|
536
|
+
// Observe every route attached to `scriptName` account-wide. Routes
|
|
537
|
+
// are zone-scoped with no account-level enumeration API, so fan out
|
|
538
|
+
// over all of the account's zones. Any failure to enumerate zones
|
|
539
|
+
// (e.g. a token without zone read scope) degrades to "no routes"
|
|
540
|
+
// rather than failing the read.
|
|
541
|
+
const readWorkerRoutes = (scriptName) => Effect.gen(function* () {
|
|
542
|
+
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
543
|
+
const accountZones = yield* listAllZones(accountId).pipe(Effect.catch(() => Effect.succeed([])));
|
|
544
|
+
return yield* listWorkerRoutesInZones(scriptName, accountZones.map((zone) => zone.id));
|
|
545
|
+
});
|
|
546
|
+
// Converge the zone routes attached to `scriptName` to `desired`.
|
|
547
|
+
// Observed cloud state (not `previous`) is the diff baseline —
|
|
548
|
+
// `previous` only contributes zone ids so routes moved out of a zone
|
|
549
|
+
// are still cleaned up after state loss or an interrupted apply.
|
|
550
|
+
const reconcileRoutes = (scriptName, desired, previous) => Effect.gen(function* () {
|
|
551
|
+
const zoneIds = Array.from(new Set([
|
|
552
|
+
...desired.map((route) => route.zoneId),
|
|
553
|
+
...previous.map((route) => route.zoneId),
|
|
554
|
+
]));
|
|
555
|
+
const liveAll = yield* listWorkerRoutesInZones(scriptName, zoneIds);
|
|
556
|
+
const desiredKeys = new Set(desired.map(routeKey));
|
|
557
|
+
const liveByKey = new Map(liveAll.map((route) => [routeKey(route), route]));
|
|
558
|
+
const toRemove = liveAll.filter((route) => !desiredKeys.has(routeKey(route)));
|
|
559
|
+
yield* Effect.all(toRemove.map((route) => workers
|
|
560
|
+
.deleteRoute({ zoneId: route.zoneId, routeId: route.id })
|
|
561
|
+
.pipe(Effect.catchTag("RouteNotFound", () => Effect.void))), { concurrency: "unbounded" });
|
|
562
|
+
if (desired.length === 0)
|
|
563
|
+
return [];
|
|
564
|
+
const attachRoute = Effect.fn(function* (route) {
|
|
565
|
+
const existing = liveByKey.get(routeKey(route));
|
|
566
|
+
if (existing)
|
|
567
|
+
return existing;
|
|
568
|
+
const zoneRoutes = yield* workers
|
|
569
|
+
.listRoutes({ zoneId: route.zoneId })
|
|
570
|
+
.pipe(Effect.map((response) => response.result ?? []), Effect.catch(() => Effect.succeed([])));
|
|
571
|
+
const otherOwner = zoneRoutes.find((candidate) => candidate.pattern === route.pattern &&
|
|
572
|
+
candidate.script &&
|
|
573
|
+
candidate.script !== scriptName);
|
|
574
|
+
if (otherOwner) {
|
|
575
|
+
return yield* Effect.die(new Error(`Cannot attach route '${route.pattern}' to Worker '${scriptName}': ` +
|
|
576
|
+
`it is already attached to Worker '${otherOwner.script}'. ` +
|
|
577
|
+
`Remove it from that Worker first, or pick a different pattern.`));
|
|
578
|
+
}
|
|
579
|
+
// A duplicate-pattern failure means another actor (or a crashed
|
|
580
|
+
// previous reconcile) created the route between our observation
|
|
581
|
+
// and now — re-list and converge if it points at this script.
|
|
582
|
+
const created = yield* workers
|
|
583
|
+
.createRoute({
|
|
584
|
+
zoneId: route.zoneId,
|
|
585
|
+
pattern: route.pattern,
|
|
586
|
+
script: scriptName,
|
|
587
|
+
})
|
|
588
|
+
.pipe(
|
|
589
|
+
// Same eventual-consistency window as `putDomain`: creating
|
|
590
|
+
// a route right after `putScript` can race Cloudflare's
|
|
591
|
+
// script registry, which rejects with code 10019 ("Cannot
|
|
592
|
+
// configure a route for a Worker which does not exist") —
|
|
593
|
+
// typed as `RouteScriptNotFound` via the createRoute patch.
|
|
594
|
+
Effect.retry({
|
|
595
|
+
while: (error) => error._tag === "RouteScriptNotFound",
|
|
596
|
+
schedule: Schedule.max([
|
|
597
|
+
Schedule.exponential(200),
|
|
598
|
+
Schedule.recurs(15),
|
|
599
|
+
]),
|
|
600
|
+
}), Effect.catchTag("InvalidRoute", (originalError) => Effect.gen(function* () {
|
|
601
|
+
const match = yield* workers
|
|
602
|
+
.listRoutes({ zoneId: route.zoneId })
|
|
603
|
+
.pipe(Effect.map((response) => (response.result ?? []).find((candidate) => candidate.pattern === route.pattern &&
|
|
604
|
+
candidate.script === scriptName)), Effect.catch(() => Effect.succeed(undefined)));
|
|
605
|
+
if (!match?.id) {
|
|
606
|
+
return yield* Effect.fail(originalError);
|
|
607
|
+
}
|
|
608
|
+
return { id: match.id, pattern: match.pattern };
|
|
609
|
+
})));
|
|
610
|
+
return {
|
|
611
|
+
id: created.id,
|
|
612
|
+
pattern: created.pattern,
|
|
613
|
+
zoneId: route.zoneId,
|
|
614
|
+
};
|
|
615
|
+
});
|
|
616
|
+
return yield* Effect.all(desired.map(attachRoute), {
|
|
617
|
+
concurrency: "unbounded",
|
|
618
|
+
});
|
|
619
|
+
});
|
|
345
620
|
const createAlchemyWorkerTags = (id) => [
|
|
346
621
|
`alchemy:stack:${stack.name}`,
|
|
347
622
|
`alchemy:stage:${stack.stage}`,
|
|
@@ -393,7 +668,10 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
393
668
|
error._tag === "WorkerNotFound" ||
|
|
394
669
|
error._tag === "DispatchNamespaceScriptNotFound" ||
|
|
395
670
|
error._tag === "DispatchNamespaceNotFound",
|
|
396
|
-
schedule: Schedule.
|
|
671
|
+
schedule: Schedule.max([
|
|
672
|
+
Schedule.exponential(100),
|
|
673
|
+
Schedule.recurs(20),
|
|
674
|
+
]),
|
|
397
675
|
}));
|
|
398
676
|
});
|
|
399
677
|
const prepareAssets = Effect.fn(function* (assets) {
|
|
@@ -453,6 +731,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
453
731
|
: undefined,
|
|
454
732
|
];
|
|
455
733
|
})))).filter(([_, value]) => value !== undefined)), {
|
|
734
|
+
main: props.vite?.main,
|
|
456
735
|
compatibilityDate: compatibility.date,
|
|
457
736
|
compatibilityFlags: compatibility.flags,
|
|
458
737
|
viteEnvironments: props.vite?.viteEnvironments,
|
|
@@ -557,9 +836,16 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
557
836
|
// hash that `readAssets` produces is the manifest-derived
|
|
558
837
|
// hash, which is shaped differently from any upstream
|
|
559
838
|
// build-input hash and will never match it on the next pass.
|
|
839
|
+
const metadataHash = yield* resolveWorkerMetadataHash({
|
|
840
|
+
props: news,
|
|
841
|
+
bindings,
|
|
842
|
+
accountId,
|
|
843
|
+
stack: { name: stack.name, stage: stack.stage },
|
|
844
|
+
});
|
|
560
845
|
const hash = {
|
|
561
846
|
...preparedHash,
|
|
562
847
|
assets: prebuiltAssets?.hash ?? preparedHash.assets,
|
|
848
|
+
metadata: metadataHash,
|
|
563
849
|
};
|
|
564
850
|
const metadataBindings = bindings.flatMap((b) => b.data.bindings ?? []);
|
|
565
851
|
const expectedDurableObjectClassNames = getExpectedDurableObjectClassNames(metadataBindings, name);
|
|
@@ -781,6 +1067,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
781
1067
|
assets: metadataAssets,
|
|
782
1068
|
bindings: metadataBindings,
|
|
783
1069
|
bodyPart: undefined,
|
|
1070
|
+
cache: news.cache ?? getCacheBinding(bindings),
|
|
784
1071
|
compatibilityDate: compatibility.date,
|
|
785
1072
|
compatibilityFlags: compatibility.flags,
|
|
786
1073
|
containers: metadataContainers.length > 0 ? metadataContainers : undefined,
|
|
@@ -840,7 +1127,8 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
840
1127
|
const { settings, durableObjectNamespaces } = yield* getWorkerSettingsWithDurableObjects(name, expectedDurableObjectClassNames, dispatchNamespace);
|
|
841
1128
|
// Workers for Platforms user workers are invoked via dynamic dispatch,
|
|
842
1129
|
// never routed directly — they have no workers.dev subdomain, custom
|
|
843
|
-
// domains, or cron triggers. Skip all of that
|
|
1130
|
+
// domains, zone routes, or cron triggers. Skip all of that
|
|
1131
|
+
// reconciliation.
|
|
844
1132
|
if (dispatchNamespace) {
|
|
845
1133
|
return {
|
|
846
1134
|
workerId: worker.id ?? name,
|
|
@@ -852,6 +1140,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
852
1140
|
durableObjectNamespaces,
|
|
853
1141
|
accountId,
|
|
854
1142
|
domains: [],
|
|
1143
|
+
routes: [],
|
|
855
1144
|
crons: [],
|
|
856
1145
|
hash,
|
|
857
1146
|
};
|
|
@@ -888,7 +1177,10 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
888
1177
|
while: (error) => error._tag === "WorkerNotFound" ||
|
|
889
1178
|
error._tag === "InternalServerError" ||
|
|
890
1179
|
error._tag === "UnknownCloudflareError",
|
|
891
|
-
schedule: Schedule.
|
|
1180
|
+
schedule: Schedule.max([
|
|
1181
|
+
Schedule.exponential(200),
|
|
1182
|
+
Schedule.recurs(15),
|
|
1183
|
+
]),
|
|
892
1184
|
}));
|
|
893
1185
|
}
|
|
894
1186
|
const desiredDomains = normalizeDomains(news.domain);
|
|
@@ -904,6 +1196,12 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
904
1196
|
...reconciled.map((d) => `https://${d.hostname}`),
|
|
905
1197
|
...(workersDevUrl ? [workersDevUrl] : []),
|
|
906
1198
|
];
|
|
1199
|
+
const desiredRoutes = yield* normalizeRoutes(news.routes);
|
|
1200
|
+
const previousRoutes = output?.routes ?? [];
|
|
1201
|
+
if (desiredRoutes.length > 0 || previousRoutes.length > 0) {
|
|
1202
|
+
yield* session.note(`Reconciling worker routes (${desiredRoutes.length}) ...`);
|
|
1203
|
+
}
|
|
1204
|
+
const routes = yield* reconcileRoutes(name, desiredRoutes, previousRoutes);
|
|
907
1205
|
const crons = yield* reconcileCrons(name, normalizeCrons([...getCronBindings(bindings), ...(news.crons ?? [])]), output?.crons ?? [], session);
|
|
908
1206
|
return {
|
|
909
1207
|
workerId: worker.id ?? name,
|
|
@@ -915,11 +1213,29 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
915
1213
|
durableObjectNamespaces,
|
|
916
1214
|
accountId,
|
|
917
1215
|
domains,
|
|
1216
|
+
routes,
|
|
918
1217
|
crons,
|
|
919
1218
|
hash,
|
|
920
1219
|
};
|
|
921
1220
|
});
|
|
922
|
-
const hasChanged = Effect.fn(function* (id, props, output) {
|
|
1221
|
+
const hasChanged = Effect.fn(function* (id, props, output, bindings, accountId) {
|
|
1222
|
+
// #745: metadata-only edits (compatibility, observability, placement,
|
|
1223
|
+
// limits, logpush, env literals, bindings, subdomain config, tags)
|
|
1224
|
+
// don't touch the bundle/vite/asset-content hashes below, so compare a
|
|
1225
|
+
// hash of that surface first. Skipped when bindings are still
|
|
1226
|
+
// unresolved: the hash can't be computed deterministically here, and
|
|
1227
|
+
// the eventual apply stores it once bindings resolve.
|
|
1228
|
+
if (bindings) {
|
|
1229
|
+
const metadataHash = yield* resolveWorkerMetadataHash({
|
|
1230
|
+
props,
|
|
1231
|
+
bindings,
|
|
1232
|
+
accountId,
|
|
1233
|
+
stack: { name: stack.name, stage: stack.stage },
|
|
1234
|
+
});
|
|
1235
|
+
if (metadataHash !== output.hash?.metadata) {
|
|
1236
|
+
return true;
|
|
1237
|
+
}
|
|
1238
|
+
}
|
|
923
1239
|
if (props.script !== undefined) {
|
|
924
1240
|
const scriptHash = yield* hashScript(props.script);
|
|
925
1241
|
if (scriptHash !== output.hash?.bundle) {
|
|
@@ -1012,6 +1328,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1012
1328
|
tags: script.tags ?? undefined,
|
|
1013
1329
|
durableObjectNamespaces: {},
|
|
1014
1330
|
domains: [],
|
|
1331
|
+
routes: [],
|
|
1015
1332
|
crons: [],
|
|
1016
1333
|
},
|
|
1017
1334
|
]
|
|
@@ -1059,6 +1376,12 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1059
1376
|
const oldCrons = [...(output?.crons ?? [])].sort();
|
|
1060
1377
|
const cronsChanged = newCrons.length !== oldCrons.length ||
|
|
1061
1378
|
newCrons.some((cron, index) => cron !== oldCrons[index]);
|
|
1379
|
+
const newRouteKeys = (yield* normalizeRoutes(news.routes))
|
|
1380
|
+
.map(routeKey)
|
|
1381
|
+
.sort();
|
|
1382
|
+
const oldRouteKeys = (output?.routes ?? []).map(routeKey).sort();
|
|
1383
|
+
const routesChanged = newRouteKeys.length !== oldRouteKeys.length ||
|
|
1384
|
+
newRouteKeys.some((key, index) => key !== oldRouteKeys[index]);
|
|
1062
1385
|
// `url` is `domains[0]`: the first custom domain in user order if
|
|
1063
1386
|
// any, otherwise the workers.dev URL (derived from the stable
|
|
1064
1387
|
// worker name + account subdomain). It's stable across this update
|
|
@@ -1100,8 +1423,11 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1100
1423
|
newDoClassNames.length === oldDoClassNames.length &&
|
|
1101
1424
|
newDoClassNames.every((name, i) => name === oldDoClassNames[i]);
|
|
1102
1425
|
if (domainsChanged ||
|
|
1426
|
+
routesChanged ||
|
|
1103
1427
|
cronsChanged ||
|
|
1104
|
-
(yield* hasChanged(id, news, output)
|
|
1428
|
+
(yield* hasChanged(id, news, output, Array.isArray(newBindings)
|
|
1429
|
+
? newBindings
|
|
1430
|
+
: undefined, accountId))) {
|
|
1105
1431
|
// `workerId` is always stable across an update; seed it so it
|
|
1106
1432
|
// survives now that `diff.stables` overrides `provider.stables`
|
|
1107
1433
|
// rather than being merged with it.
|
|
@@ -1121,7 +1447,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1121
1447
|
};
|
|
1122
1448
|
}
|
|
1123
1449
|
}),
|
|
1124
|
-
precreate: Effect.fn(function* ({ id, news, session }) {
|
|
1450
|
+
precreate: Effect.fn(function* ({ id, news, session, bindings }) {
|
|
1125
1451
|
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
1126
1452
|
const name = yield* createWorkerName(id, news.name);
|
|
1127
1453
|
// A Workers for Platforms user worker can't be pre-created: precreate
|
|
@@ -1144,19 +1470,32 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1144
1470
|
durableObjectNamespaces: {},
|
|
1145
1471
|
accountId,
|
|
1146
1472
|
domains: [],
|
|
1473
|
+
routes: [],
|
|
1147
1474
|
crons: [],
|
|
1148
1475
|
};
|
|
1149
1476
|
}
|
|
1150
1477
|
const dispatchNamespace = resolveNamespaceName(news.namespace);
|
|
1151
1478
|
const exportMap = news.exports ?? {};
|
|
1152
|
-
|
|
1479
|
+
// A worker hosts Durable Object classes from two independent sources:
|
|
1480
|
+
// Effect-native DO *exports* (classes defined in the worker entry) and
|
|
1481
|
+
// DO *bindings* declared in `env` — e.g. a bare `Cloudflare.DurableObject`
|
|
1482
|
+
// that fronts a Container image. The placeholder must declare *every*
|
|
1483
|
+
// hosted class so each namespace is created here. A class that exists
|
|
1484
|
+
// only as a binding (a container-fronted DO) is otherwise absent from
|
|
1485
|
+
// this stub, and a resource caught in a worker<->container dependency
|
|
1486
|
+
// cycle — which resolves `worker.durableObjectNamespaces[className]`
|
|
1487
|
+
// against the precreate stub rather than the final reconcile output —
|
|
1488
|
+
// fails because the namespace id it needs never surfaced.
|
|
1489
|
+
const exportDerived = Object.keys(exportMap)
|
|
1153
1490
|
.filter((logicalId) => isDurableObjectExport(exportMap[logicalId]))
|
|
1154
|
-
.map((logicalId) => ({
|
|
1155
|
-
|
|
1156
|
-
className: logicalId,
|
|
1157
|
-
}));
|
|
1491
|
+
.map((logicalId) => ({ logicalId, className: logicalId }));
|
|
1492
|
+
const durableObjects = mergeDurableObjectClasses(exportDerived, getDurableObjectBindings(bindings, name));
|
|
1158
1493
|
const doClasses = durableObjects.map((binding) => binding.className);
|
|
1159
|
-
|
|
1494
|
+
// Only attach container metadata for classes actually fronted by a
|
|
1495
|
+
// Container binding (mirrors reconcile's `containerClassNames`).
|
|
1496
|
+
// Mapping every DO class to a container would wrongly mark plain DOs
|
|
1497
|
+
// as container-backed in the placeholder.
|
|
1498
|
+
const containers = Array.from(new Set(bindings.flatMap((b) => (b.data.containers ?? []).map((c) => c.className)))).map((className) => ({ className }));
|
|
1160
1499
|
const alchemyDoTags = durableObjects.map(({ logicalId, className }) => `alchemy:do:${logicalId}:${className}`);
|
|
1161
1500
|
const tags = Array.from(new Set([
|
|
1162
1501
|
...createAlchemyWorkerTags(id),
|
|
@@ -1237,7 +1576,10 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1237
1576
|
Effect.retry({
|
|
1238
1577
|
while: (e) => e._tag === "InternalServerError" ||
|
|
1239
1578
|
e._tag === "UnknownCloudflareError",
|
|
1240
|
-
schedule: Schedule.
|
|
1579
|
+
schedule: Schedule.max([
|
|
1580
|
+
Schedule.exponential(1000),
|
|
1581
|
+
Schedule.recurs(5),
|
|
1582
|
+
]),
|
|
1241
1583
|
}));
|
|
1242
1584
|
if (doClasses.length > 0) {
|
|
1243
1585
|
({ durableObjectNamespaces } =
|
|
@@ -1258,6 +1600,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1258
1600
|
durableObjectNamespaces,
|
|
1259
1601
|
accountId,
|
|
1260
1602
|
domains: [],
|
|
1603
|
+
routes: [],
|
|
1261
1604
|
crons: [],
|
|
1262
1605
|
};
|
|
1263
1606
|
}),
|
|
@@ -1282,6 +1625,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1282
1625
|
tags: settings.tags ?? undefined,
|
|
1283
1626
|
durableObjectNamespaces: getDurableObjects(settings.bindings),
|
|
1284
1627
|
domains: [],
|
|
1628
|
+
routes: [],
|
|
1285
1629
|
crons: [],
|
|
1286
1630
|
};
|
|
1287
1631
|
return hasAlchemyWorkerTags(id, settings.tags ?? [])
|
|
@@ -1296,7 +1640,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1296
1640
|
// `WorkerNotFound` if the script doesn't exist, which the
|
|
1297
1641
|
// surrounding `Effect.catchTag` turns into `undefined` — that's
|
|
1298
1642
|
// all the existence check we need.
|
|
1299
|
-
const [subdomain, settings, domainsList] = yield* Effect.all([
|
|
1643
|
+
const [subdomain, settings, domainsList, routesList] = yield* Effect.all([
|
|
1300
1644
|
workers.getScriptSubdomain({
|
|
1301
1645
|
accountId,
|
|
1302
1646
|
scriptName: workerName,
|
|
@@ -1311,7 +1655,8 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1311
1655
|
service: workerName,
|
|
1312
1656
|
})
|
|
1313
1657
|
.pipe(Effect.map((r) => r.result ?? [])),
|
|
1314
|
-
|
|
1658
|
+
readWorkerRoutes(workerName),
|
|
1659
|
+
], { concurrency: "unbounded" });
|
|
1315
1660
|
// Preserve the order the user provided in `olds.domain`. The
|
|
1316
1661
|
// Cloudflare API returns domains in non-deterministic order,
|
|
1317
1662
|
// which would cause downstream `worker.domains[0]` reads to flip
|
|
@@ -1343,6 +1688,7 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1343
1688
|
tags: settings.tags ?? undefined,
|
|
1344
1689
|
durableObjectNamespaces: getDurableObjects(settings.bindings),
|
|
1345
1690
|
domains,
|
|
1691
|
+
routes: routesList,
|
|
1346
1692
|
crons,
|
|
1347
1693
|
};
|
|
1348
1694
|
// Centralized ownership decision: the engine routes `read`'s
|
|
@@ -1420,6 +1766,17 @@ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(funct
|
|
|
1420
1766
|
]
|
|
1421
1767
|
: []), { concurrency: "unbounded" });
|
|
1422
1768
|
}
|
|
1769
|
+
// Routes are zone-scoped; enumerating every zone live is
|
|
1770
|
+
// expensive, so trust the persisted route ids (refreshed by
|
|
1771
|
+
// `read`) and tolerate already-deleted routes.
|
|
1772
|
+
if (output.routes?.length) {
|
|
1773
|
+
yield* Effect.all(output.routes.map((route) => workers
|
|
1774
|
+
.deleteRoute({
|
|
1775
|
+
zoneId: route.zoneId,
|
|
1776
|
+
routeId: route.id,
|
|
1777
|
+
})
|
|
1778
|
+
.pipe(Effect.catchTag("RouteNotFound", () => Effect.void))), { concurrency: "unbounded" });
|
|
1779
|
+
}
|
|
1423
1780
|
yield* deleteWorkerScript(output.accountId, output.workerName, undefined).pipe(Effect.catchTag("WorkerNotFound", () => Effect.void));
|
|
1424
1781
|
}),
|
|
1425
1782
|
tail: ({ output }) => telemetry.tailScript({
|
|
@@ -1470,6 +1827,15 @@ function bumpMigrationTagVersion(oldTag) {
|
|
|
1470
1827
|
return "alchemy:v1";
|
|
1471
1828
|
return `alchemy:v${parseInt(version, 10) + 1}`;
|
|
1472
1829
|
}
|
|
1830
|
+
/**
|
|
1831
|
+
* Merges a worker's export-derived and binding-derived Durable Object class
|
|
1832
|
+
* lists for the precreate placeholder, deduping by class name. The
|
|
1833
|
+
* binding-derived entry wins on a collision so the `alchemy:do:` tag keys off
|
|
1834
|
+
* the same logical id (the binding sid) that `reconcile` writes.
|
|
1835
|
+
*/
|
|
1836
|
+
function mergeDurableObjectClasses(exportDerived, bindingDerived) {
|
|
1837
|
+
return Array.from(new Map([...exportDerived, ...bindingDerived].map((binding) => [binding.className, binding])).values());
|
|
1838
|
+
}
|
|
1473
1839
|
function getDurableObjectBindings(bindings, workerName) {
|
|
1474
1840
|
// Resource authors (and the `make`/`yield* Tag`/plan-vs-apply machinery)
|
|
1475
1841
|
// can register the same DO binding multiple times under the same logical
|