alchemy 2.0.0-beta.61 → 2.0.0-beta.63
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 +26 -11
- package/bin/exec.js +2023 -75
- package/bin/exec.js.map +1 -1
- package/lib/AWS/ACM/Certificate.d.ts.map +1 -1
- package/lib/AWS/ACM/Certificate.js +16 -4
- 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 +2 -2
- package/lib/AWS/AuthProvider.js.map +1 -1
- package/lib/AWS/AutoScaling/AutoScalingGroup.d.ts.map +1 -1
- package/lib/AWS/AutoScaling/AutoScalingGroup.js +8 -2
- package/lib/AWS/AutoScaling/AutoScalingGroup.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/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 +53 -20
- 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/EC2/hosted.d.ts.map +1 -1
- package/lib/AWS/EC2/hosted.js +2 -1
- package/lib/AWS/EC2/hosted.js.map +1 -1
- package/lib/AWS/ECS/Service.d.ts.map +1 -1
- package/lib/AWS/ECS/Service.js +4 -1
- package/lib/AWS/ECS/Service.js.map +1 -1
- package/lib/AWS/ECS/Task.d.ts.map +1 -1
- package/lib/AWS/ECS/Task.js +2 -1
- package/lib/AWS/ECS/Task.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/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.map +1 -1
- package/lib/AWS/Lambda/Alias.js +4 -1
- package/lib/AWS/Lambda/Alias.js.map +1 -1
- package/lib/AWS/Lambda/EventInvokeConfig.d.ts.map +1 -1
- package/lib/AWS/Lambda/EventInvokeConfig.js +2 -2
- package/lib/AWS/Lambda/EventInvokeConfig.js.map +1 -1
- 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 +16 -1
- package/lib/AWS/Lambda/Function.d.ts.map +1 -1
- package/lib/AWS/Lambda/Function.js +113 -65
- 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/MicrovmRuntimeContext.d.ts.map +1 -1
- package/lib/AWS/Lambda/MicrovmRuntimeContext.js +9 -21
- package/lib/AWS/Lambda/MicrovmRuntimeContext.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/Organizations/Account.js +5 -2
- package/lib/AWS/Organizations/Account.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 +8 -2
- 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 +4 -1
- 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/Action.d.ts +8 -0
- package/lib/Action.d.ts.map +1 -1
- package/lib/Action.js +16 -5
- package/lib/Action.js.map +1 -1
- package/lib/ActionRuntimeContext.d.ts +14 -0
- package/lib/ActionRuntimeContext.d.ts.map +1 -0
- package/lib/ActionRuntimeContext.js +56 -0
- package/lib/ActionRuntimeContext.js.map +1 -0
- package/lib/Apply.d.ts.map +1 -1
- package/lib/Apply.js +48 -6
- 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.map +1 -1
- package/lib/Auth/Lock.js +5 -2
- 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 +26 -1
- package/lib/Bundle/PurePlugin.js.map +1 -1
- package/lib/Bundle/Vite.d.ts +3 -1
- package/lib/Bundle/Vite.d.ts.map +1 -1
- package/lib/Bundle/Vite.js +38 -13
- package/lib/Bundle/Vite.js.map +1 -1
- package/lib/Cli/LoggingCli.d.ts.map +1 -1
- package/lib/Cli/LoggingCli.js +7 -4
- package/lib/Cli/LoggingCli.js.map +1 -1
- package/lib/Cli/commands/_shared.d.ts +74 -5
- package/lib/Cli/commands/_shared.d.ts.map +1 -1
- package/lib/Cli/commands/_shared.js +84 -2
- package/lib/Cli/commands/_shared.js.map +1 -1
- package/lib/Cli/commands/login.d.ts +7 -3
- package/lib/Cli/commands/login.d.ts.map +1 -1
- package/lib/Cli/commands/login.js +71 -24
- 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 +46 -22
- package/lib/Cli/commands/profile.js.map +1 -1
- 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/Cloudflare/AI/GatewayDynamicRouting.d.ts.map +1 -1
- package/lib/Cloudflare/AI/GatewayDynamicRouting.js +31 -2
- package/lib/Cloudflare/AI/GatewayDynamicRouting.js.map +1 -1
- package/lib/Cloudflare/AI/LanguageModel.js +21 -4
- package/lib/Cloudflare/AI/LanguageModel.js.map +1 -1
- package/lib/Cloudflare/AI/QuerySearchLocal.d.ts +37 -0
- package/lib/Cloudflare/AI/QuerySearchLocal.d.ts.map +1 -0
- package/lib/Cloudflare/AI/QuerySearchLocal.js +53 -0
- package/lib/Cloudflare/AI/QuerySearchLocal.js.map +1 -0
- package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.d.ts +35 -0
- package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.d.ts.map +1 -0
- package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.js +47 -0
- package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.js.map +1 -0
- package/lib/Cloudflare/AI/SearchHttpClient.d.ts +34 -0
- package/lib/Cloudflare/AI/SearchHttpClient.d.ts.map +1 -0
- package/lib/Cloudflare/AI/SearchHttpClient.js +262 -0
- package/lib/Cloudflare/AI/SearchHttpClient.js.map +1 -0
- package/lib/Cloudflare/AI/SearchInstance.js +4 -1
- package/lib/Cloudflare/AI/SearchInstance.js.map +1 -1
- package/lib/Cloudflare/AI/index.d.ts +2 -0
- package/lib/Cloudflare/AI/index.d.ts.map +1 -1
- package/lib/Cloudflare/AI/index.js +2 -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/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/Auth/AuthProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Auth/AuthProvider.js +23 -8
- 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/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/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 +84 -23
- package/lib/Cloudflare/Containers/ContainerBundle.js.map +1 -1
- package/lib/Cloudflare/Containers/ContainerPlatform.d.ts.map +1 -1
- package/lib/Cloudflare/Containers/ContainerPlatform.js +12 -33
- package/lib/Cloudflare/Containers/ContainerPlatform.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/D1/QueryDatabaseHttpClient.d.ts +24 -0
- package/lib/Cloudflare/D1/QueryDatabaseHttpClient.d.ts.map +1 -0
- package/lib/Cloudflare/D1/QueryDatabaseHttpClient.js +106 -0
- package/lib/Cloudflare/D1/QueryDatabaseHttpClient.js.map +1 -0
- package/lib/Cloudflare/D1/QueryDatabaseLocal.d.ts +38 -0
- package/lib/Cloudflare/D1/QueryDatabaseLocal.d.ts.map +1 -0
- package/lib/Cloudflare/D1/QueryDatabaseLocal.js +54 -0
- package/lib/Cloudflare/D1/QueryDatabaseLocal.js.map +1 -0
- package/lib/Cloudflare/D1/index.d.ts +1 -0
- package/lib/Cloudflare/D1/index.d.ts.map +1 -1
- package/lib/Cloudflare/D1/index.js +1 -0
- package/lib/Cloudflare/D1/index.js.map +1 -1
- package/lib/Cloudflare/DNS/DnsHttp.d.ts +16 -1
- package/lib/Cloudflare/DNS/DnsHttp.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/DnsHttp.js +6 -1
- package/lib/Cloudflare/DNS/DnsHttp.js.map +1 -1
- package/lib/Cloudflare/DNS/DnsLocal.d.ts +22 -0
- package/lib/Cloudflare/DNS/DnsLocal.d.ts.map +1 -0
- package/lib/Cloudflare/DNS/DnsLocal.js +31 -0
- package/lib/Cloudflare/DNS/DnsLocal.js.map +1 -0
- package/lib/Cloudflare/DNS/ReadDnsHttp.d.ts +3 -3
- package/lib/Cloudflare/DNS/ReadDnsHttp.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/ReadDnsHttp.js +3 -4
- package/lib/Cloudflare/DNS/ReadDnsHttp.js.map +1 -1
- package/lib/Cloudflare/DNS/ReadDnsLocal.d.ts +32 -0
- package/lib/Cloudflare/DNS/ReadDnsLocal.d.ts.map +1 -0
- package/lib/Cloudflare/DNS/ReadDnsLocal.js +35 -0
- package/lib/Cloudflare/DNS/ReadDnsLocal.js.map +1 -0
- package/lib/Cloudflare/DNS/ReadWriteDnsHttp.d.ts +3 -3
- package/lib/Cloudflare/DNS/ReadWriteDnsHttp.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/ReadWriteDnsHttp.js +4 -4
- package/lib/Cloudflare/DNS/ReadWriteDnsHttp.js.map +1 -1
- package/lib/Cloudflare/DNS/ReadWriteDnsLocal.d.ts +40 -0
- package/lib/Cloudflare/DNS/ReadWriteDnsLocal.d.ts.map +1 -0
- package/lib/Cloudflare/DNS/ReadWriteDnsLocal.js +43 -0
- package/lib/Cloudflare/DNS/ReadWriteDnsLocal.js.map +1 -0
- package/lib/Cloudflare/DNS/WriteDnsHttp.d.ts +3 -3
- package/lib/Cloudflare/DNS/WriteDnsHttp.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/WriteDnsHttp.js +3 -4
- package/lib/Cloudflare/DNS/WriteDnsHttp.js.map +1 -1
- package/lib/Cloudflare/DNS/WriteDnsLocal.d.ts +38 -0
- package/lib/Cloudflare/DNS/WriteDnsLocal.d.ts.map +1 -0
- package/lib/Cloudflare/DNS/WriteDnsLocal.js +41 -0
- package/lib/Cloudflare/DNS/WriteDnsLocal.js.map +1 -0
- package/lib/Cloudflare/DNS/index.d.ts +3 -0
- package/lib/Cloudflare/DNS/index.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/index.js +3 -0
- package/lib/Cloudflare/DNS/index.js.map +1 -1
- package/lib/Cloudflare/Diagnostics/EndpointHealthcheck.js +4 -1
- package/lib/Cloudflare/Diagnostics/EndpointHealthcheck.js.map +1 -1
- package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.d.ts +27 -0
- package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.d.ts.map +1 -0
- package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.js +86 -0
- package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.js.map +1 -0
- package/lib/Cloudflare/Flagship/ReadFlagsLocal.d.ts +41 -0
- package/lib/Cloudflare/Flagship/ReadFlagsLocal.d.ts.map +1 -0
- package/lib/Cloudflare/Flagship/ReadFlagsLocal.js +57 -0
- package/lib/Cloudflare/Flagship/ReadFlagsLocal.js.map +1 -0
- package/lib/Cloudflare/Flagship/index.d.ts +1 -0
- package/lib/Cloudflare/Flagship/index.d.ts.map +1 -1
- package/lib/Cloudflare/Flagship/index.js +1 -0
- package/lib/Cloudflare/Flagship/index.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/NamespaceHttp.d.ts +16 -1
- package/lib/Cloudflare/KV/NamespaceHttp.d.ts.map +1 -1
- package/lib/Cloudflare/KV/NamespaceHttp.js +8 -2
- package/lib/Cloudflare/KV/NamespaceHttp.js.map +1 -1
- package/lib/Cloudflare/KV/NamespaceLocal.d.ts +22 -0
- package/lib/Cloudflare/KV/NamespaceLocal.d.ts.map +1 -0
- package/lib/Cloudflare/KV/NamespaceLocal.js +32 -0
- package/lib/Cloudflare/KV/NamespaceLocal.js.map +1 -0
- package/lib/Cloudflare/KV/ReadNamespaceHttp.d.ts +2 -2
- package/lib/Cloudflare/KV/ReadNamespaceHttp.d.ts.map +1 -1
- package/lib/Cloudflare/KV/ReadNamespaceHttp.js +5 -6
- package/lib/Cloudflare/KV/ReadNamespaceHttp.js.map +1 -1
- package/lib/Cloudflare/KV/ReadNamespaceLocal.d.ts +27 -0
- package/lib/Cloudflare/KV/ReadNamespaceLocal.d.ts.map +1 -0
- package/lib/Cloudflare/KV/ReadNamespaceLocal.js +30 -0
- package/lib/Cloudflare/KV/ReadNamespaceLocal.js.map +1 -0
- package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.d.ts +3 -3
- package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.d.ts.map +1 -1
- package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.js +6 -6
- package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.js.map +1 -1
- package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.d.ts +34 -0
- package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.d.ts.map +1 -0
- package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.js +37 -0
- package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.js.map +1 -0
- package/lib/Cloudflare/KV/WriteNamespaceHttp.d.ts +2 -2
- package/lib/Cloudflare/KV/WriteNamespaceHttp.d.ts.map +1 -1
- package/lib/Cloudflare/KV/WriteNamespaceHttp.js +5 -6
- package/lib/Cloudflare/KV/WriteNamespaceHttp.js.map +1 -1
- package/lib/Cloudflare/KV/WriteNamespaceLocal.d.ts +27 -0
- package/lib/Cloudflare/KV/WriteNamespaceLocal.d.ts.map +1 -0
- package/lib/Cloudflare/KV/WriteNamespaceLocal.js +30 -0
- package/lib/Cloudflare/KV/WriteNamespaceLocal.js.map +1 -0
- package/lib/Cloudflare/KV/index.d.ts +3 -0
- package/lib/Cloudflare/KV/index.d.ts.map +1 -1
- package/lib/Cloudflare/KV/index.js +3 -0
- package/lib/Cloudflare/KV/index.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/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.js +14 -11
- package/lib/Cloudflare/Providers.js.map +1 -1
- package/lib/Cloudflare/Queues/Consumer.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/Consumer.js +30 -3
- 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 +4 -1
- package/lib/Cloudflare/Queues/Queue.js.map +1 -1
- package/lib/Cloudflare/Queues/QueueHttp.d.ts +20 -1
- package/lib/Cloudflare/Queues/QueueHttp.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/QueueHttp.js +2 -2
- package/lib/Cloudflare/Queues/QueueHttp.js.map +1 -1
- package/lib/Cloudflare/Queues/WriteQueueHttp.d.ts +9 -3
- package/lib/Cloudflare/Queues/WriteQueueHttp.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/WriteQueueHttp.js +11 -6
- package/lib/Cloudflare/Queues/WriteQueueHttp.js.map +1 -1
- package/lib/Cloudflare/Queues/WriteQueueLocal.d.ts +36 -0
- package/lib/Cloudflare/Queues/WriteQueueLocal.d.ts.map +1 -0
- package/lib/Cloudflare/Queues/WriteQueueLocal.js +51 -0
- package/lib/Cloudflare/Queues/WriteQueueLocal.js.map +1 -0
- package/lib/Cloudflare/Queues/index.d.ts +1 -0
- package/lib/Cloudflare/Queues/index.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/index.js +1 -0
- package/lib/Cloudflare/Queues/index.js.map +1 -1
- package/lib/Cloudflare/R2/Bucket.js +12 -3
- 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/BucketHttp.d.ts +15 -1
- package/lib/Cloudflare/R2/BucketHttp.d.ts.map +1 -1
- package/lib/Cloudflare/R2/BucketHttp.js +3 -3
- package/lib/Cloudflare/R2/BucketHttp.js.map +1 -1
- package/lib/Cloudflare/R2/BucketLocal.d.ts +21 -0
- package/lib/Cloudflare/R2/BucketLocal.d.ts.map +1 -0
- package/lib/Cloudflare/R2/BucketLocal.js +32 -0
- package/lib/Cloudflare/R2/BucketLocal.js.map +1 -0
- package/lib/Cloudflare/R2/DataCatalog.js +4 -1
- package/lib/Cloudflare/R2/DataCatalog.js.map +1 -1
- package/lib/Cloudflare/R2/ReadBucketHttp.d.ts +2 -2
- package/lib/Cloudflare/R2/ReadBucketHttp.d.ts.map +1 -1
- package/lib/Cloudflare/R2/ReadBucketHttp.js +4 -4
- package/lib/Cloudflare/R2/ReadBucketHttp.js.map +1 -1
- package/lib/Cloudflare/R2/ReadBucketLocal.d.ts +27 -0
- package/lib/Cloudflare/R2/ReadBucketLocal.d.ts.map +1 -0
- package/lib/Cloudflare/R2/ReadBucketLocal.js +30 -0
- package/lib/Cloudflare/R2/ReadBucketLocal.js.map +1 -0
- package/lib/Cloudflare/R2/ReadWriteBucketHttp.d.ts +2 -2
- package/lib/Cloudflare/R2/ReadWriteBucketHttp.d.ts.map +1 -1
- package/lib/Cloudflare/R2/ReadWriteBucketHttp.js +5 -4
- package/lib/Cloudflare/R2/ReadWriteBucketHttp.js.map +1 -1
- package/lib/Cloudflare/R2/ReadWriteBucketLocal.d.ts +30 -0
- package/lib/Cloudflare/R2/ReadWriteBucketLocal.d.ts.map +1 -0
- package/lib/Cloudflare/R2/ReadWriteBucketLocal.js +33 -0
- package/lib/Cloudflare/R2/ReadWriteBucketLocal.js.map +1 -0
- package/lib/Cloudflare/R2/WriteBucketHttp.d.ts +2 -2
- package/lib/Cloudflare/R2/WriteBucketHttp.d.ts.map +1 -1
- package/lib/Cloudflare/R2/WriteBucketHttp.js +4 -4
- package/lib/Cloudflare/R2/WriteBucketHttp.js.map +1 -1
- package/lib/Cloudflare/R2/WriteBucketLocal.d.ts +27 -0
- package/lib/Cloudflare/R2/WriteBucketLocal.d.ts.map +1 -0
- package/lib/Cloudflare/R2/WriteBucketLocal.js +30 -0
- package/lib/Cloudflare/R2/WriteBucketLocal.js.map +1 -0
- package/lib/Cloudflare/R2/index.d.ts +3 -0
- package/lib/Cloudflare/R2/index.d.ts.map +1 -1
- package/lib/Cloudflare/R2/index.js +3 -0
- package/lib/Cloudflare/R2/index.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/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 +2 -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 +2 -2
- package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
- package/lib/Cloudflare/StateStore/State.js +46 -9
- package/lib/Cloudflare/StateStore/State.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/ReadTunnel.d.ts +3 -3
- package/lib/Cloudflare/Tunnel/ReadTunnel.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/ReadTunnel.js +7 -8
- package/lib/Cloudflare/Tunnel/ReadTunnel.js.map +1 -1
- package/lib/Cloudflare/Tunnel/ReadTunnelLocal.d.ts +29 -0
- package/lib/Cloudflare/Tunnel/ReadTunnelLocal.d.ts.map +1 -0
- package/lib/Cloudflare/Tunnel/ReadTunnelLocal.js +30 -0
- package/lib/Cloudflare/Tunnel/ReadTunnelLocal.js.map +1 -0
- package/lib/Cloudflare/Tunnel/ReadWriteTunnel.d.ts +3 -3
- package/lib/Cloudflare/Tunnel/ReadWriteTunnel.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/ReadWriteTunnel.js +4 -4
- package/lib/Cloudflare/Tunnel/ReadWriteTunnel.js.map +1 -1
- package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.d.ts +35 -0
- package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.d.ts.map +1 -0
- package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.js +36 -0
- package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.js.map +1 -0
- package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts +17 -1
- package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/TunnelBinding.js +7 -1
- package/lib/Cloudflare/Tunnel/TunnelBinding.js.map +1 -1
- package/lib/Cloudflare/Tunnel/TunnelLocalBinding.d.ts +19 -0
- package/lib/Cloudflare/Tunnel/TunnelLocalBinding.d.ts.map +1 -0
- package/lib/Cloudflare/Tunnel/TunnelLocalBinding.js +29 -0
- package/lib/Cloudflare/Tunnel/TunnelLocalBinding.js.map +1 -0
- package/lib/Cloudflare/Tunnel/WarpConnector.d.ts +3 -3
- package/lib/Cloudflare/Tunnel/WarpConnector.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/WarpConnector.js +7 -4
- package/lib/Cloudflare/Tunnel/WarpConnector.js.map +1 -1
- package/lib/Cloudflare/Tunnel/WriteTunnel.d.ts +3 -3
- package/lib/Cloudflare/Tunnel/WriteTunnel.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/WriteTunnel.js +7 -8
- package/lib/Cloudflare/Tunnel/WriteTunnel.js.map +1 -1
- package/lib/Cloudflare/Tunnel/WriteTunnelLocal.d.ts +29 -0
- package/lib/Cloudflare/Tunnel/WriteTunnelLocal.d.ts.map +1 -0
- package/lib/Cloudflare/Tunnel/WriteTunnelLocal.js +30 -0
- package/lib/Cloudflare/Tunnel/WriteTunnelLocal.js.map +1 -0
- package/lib/Cloudflare/Tunnel/index.d.ts +3 -0
- package/lib/Cloudflare/Tunnel/index.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/index.js +3 -0
- package/lib/Cloudflare/Tunnel/index.js.map +1 -1
- package/lib/Cloudflare/UrlNormalization/UrlNormalization.d.ts.map +1 -1
- package/lib/Cloudflare/UrlNormalization/UrlNormalization.js +7 -1
- package/lib/Cloudflare/UrlNormalization/UrlNormalization.js.map +1 -1
- package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.d.ts +30 -0
- package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.d.ts.map +1 -0
- package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.js +100 -0
- package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.js.map +1 -0
- package/lib/Cloudflare/Vectorize/SearchIndexLocal.d.ts +42 -0
- package/lib/Cloudflare/Vectorize/SearchIndexLocal.d.ts.map +1 -0
- package/lib/Cloudflare/Vectorize/SearchIndexLocal.js +58 -0
- package/lib/Cloudflare/Vectorize/SearchIndexLocal.js.map +1 -0
- package/lib/Cloudflare/Vectorize/index.d.ts +1 -0
- package/lib/Cloudflare/Vectorize/index.d.ts.map +1 -1
- package/lib/Cloudflare/Vectorize/index.js +1 -0
- package/lib/Cloudflare/Vectorize/index.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/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/BrowserHttpClient.d.ts +32 -0
- package/lib/Cloudflare/Workers/BrowserHttpClient.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/BrowserHttpClient.js +100 -0
- package/lib/Cloudflare/Workers/BrowserHttpClient.js.map +1 -0
- package/lib/Cloudflare/Workers/BrowserLocal.d.ts +37 -0
- package/lib/Cloudflare/Workers/BrowserLocal.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/BrowserLocal.js +53 -0
- package/lib/Cloudflare/Workers/BrowserLocal.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/ConfigProvider.d.ts +8 -0
- package/lib/Cloudflare/Workers/ConfigProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/ConfigProvider.js +10 -1
- package/lib/Cloudflare/Workers/ConfigProvider.js.map +1 -1
- package/lib/Cloudflare/Workers/CronEventSource.d.ts +3 -2
- package/lib/Cloudflare/Workers/CronEventSource.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/CronEventSource.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObject.d.ts +137 -3
- package/lib/Cloudflare/Workers/DurableObject.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObject.js +141 -6
- 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/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 +2 -185
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js +74 -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/Vite.js +81 -2
- package/lib/Cloudflare/Workers/Vite.js.map +1 -1
- package/lib/Cloudflare/Workers/Worker.d.ts +42 -6
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +10 -5
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +26 -16
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts +22 -1
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.js.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 -52
- package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerProvider.d.ts +81 -0
- package/lib/Cloudflare/Workers/WorkerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerProvider.js +476 -68
- 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 +11 -37
- 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/Workflows/Workflow.d.ts +10 -7
- package/lib/Cloudflare/Workflows/Workflow.d.ts.map +1 -1
- package/lib/Cloudflare/Workflows/Workflow.js +38 -13
- 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 +39 -37
- 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/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/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/Diff.d.ts +16 -0
- package/lib/Diff.d.ts.map +1 -1
- package/lib/Diff.js +33 -0
- package/lib/Diff.js.map +1 -1
- package/lib/Docker/Container.js +4 -1
- 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/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/Secrets.d.ts +1 -1
- package/lib/GitHub/Secrets.js +1 -1
- package/lib/GitHub/Variables.d.ts +1 -1
- package/lib/GitHub/Variables.js +1 -1
- 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/Local/RpcSerialization.d.ts.map +1 -1
- package/lib/Local/RpcSerialization.js +6 -2
- package/lib/Local/RpcSerialization.js.map +1 -1
- package/lib/Local/RpcSpawner.d.ts.map +1 -1
- package/lib/Local/RpcSpawner.js +14 -8
- package/lib/Local/RpcSpawner.js.map +1 -1
- package/lib/Neon/AuthProvider.d.ts.map +1 -1
- package/lib/Neon/AuthProvider.js +2 -2
- package/lib/Neon/AuthProvider.js.map +1 -1
- package/lib/Neon/Project.js +4 -1
- package/lib/Neon/Project.js.map +1 -1
- package/lib/Plan.d.ts.map +1 -1
- package/lib/Plan.js +37 -13
- 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/Database.d.ts +2 -1
- package/lib/Planetscale/Database.d.ts.map +1 -1
- package/lib/Planetscale/MySQL/MySQLClusterSize.d.ts +41 -3
- package/lib/Planetscale/MySQL/MySQLClusterSize.d.ts.map +1 -1
- package/lib/Planetscale/MySQL/MySQLClusterSize.js +88 -11
- package/lib/Planetscale/MySQL/MySQLClusterSize.js.map +1 -1
- package/lib/Planetscale/MySQL/MySQLDatabase.d.ts +14 -0
- package/lib/Planetscale/MySQL/MySQLDatabase.d.ts.map +1 -1
- package/lib/Planetscale/MySQL/MySQLDatabase.js +24 -11
- package/lib/Planetscale/MySQL/MySQLDatabase.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/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 +62 -3
- package/lib/Platform.js.map +1 -1
- package/lib/Provider.d.ts +35 -0
- package/lib/Provider.d.ts.map +1 -1
- package/lib/Provider.js.map +1 -1
- package/lib/Runtime.d.ts +23 -0
- package/lib/Runtime.d.ts.map +1 -1
- package/lib/Runtime.js +83 -0
- package/lib/Runtime.js.map +1 -1
- package/lib/RuntimeContext.d.ts +46 -0
- package/lib/RuntimeContext.d.ts.map +1 -1
- package/lib/RuntimeContext.js +60 -0
- package/lib/RuntimeContext.js.map +1 -1
- package/lib/Server/Process.d.ts +1 -1
- package/lib/Server/Process.d.ts.map +1 -1
- package/lib/Server/Process.js +8 -8
- package/lib/Server/Process.js.map +1 -1
- package/lib/Stack.js +1 -1
- package/lib/Stack.js.map +1 -1
- package/lib/State/HttpStateApi.d.ts +10 -10
- package/lib/State/HttpStateStore.js +5 -2
- package/lib/State/HttpStateStore.js.map +1 -1
- package/lib/Sync.d.ts.map +1 -1
- package/lib/Sync.js +3 -0
- package/lib/Sync.js.map +1 -1
- package/lib/Test/Alchemy.d.ts +74 -0
- package/lib/Test/Alchemy.d.ts.map +1 -0
- package/lib/Test/Alchemy.js +143 -0
- package/lib/Test/Alchemy.js.map +1 -0
- package/lib/Test/Http.d.ts.map +1 -1
- package/lib/Test/Http.js +8 -2
- package/lib/Test/Http.js.map +1 -1
- package/lib/Util/cached-function.d.ts +1 -1
- package/lib/Util/cached-function.d.ts.map +1 -1
- package/lib/Util/cached-function.js +2 -2
- package/lib/Util/cached-function.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 +3 -0
- package/lib/Util/proxy-chain.js.map +1 -1
- package/package.json +23 -23
- package/src/AWS/ACM/Certificate.ts +16 -12
- package/src/AWS/ApiGateway/common.ts +11 -8
- package/src/AWS/AuthProvider.ts +1 -4
- package/src/AWS/AutoScaling/AutoScalingGroup.ts +8 -6
- 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/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 +57 -47
- 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/EC2/hosted.ts +2 -1
- package/src/AWS/ECS/Service.ts +4 -3
- package/src/AWS/ECS/Task.ts +2 -1
- 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/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 +4 -3
- package/src/AWS/Lambda/EventInvokeConfig.ts +2 -6
- package/src/AWS/Lambda/EventSourceMapping.ts +10 -8
- package/src/AWS/Lambda/Function.ts +123 -77
- package/src/AWS/Lambda/MicrovmProvider.ts +18 -16
- package/src/AWS/Lambda/MicrovmRuntimeContext.ts +11 -38
- package/src/AWS/Lambda/NetworkConnector.ts +19 -15
- package/src/AWS/Lambda/RuntimeExtension.ts +46 -0
- package/src/AWS/Organizations/Account.ts +5 -6
- 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 +8 -6
- package/src/AWS/Route53/Record.ts +4 -3
- 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/Action.ts +39 -6
- package/src/ActionRuntimeContext.ts +68 -0
- package/src/Apply.ts +54 -8
- package/src/Auth/AuthProvider.ts +11 -0
- package/src/Auth/Lock.ts +5 -2
- package/src/Axiom/AuthProvider.ts +0 -3
- package/src/Bundle/PurePlugin.ts +34 -1
- package/src/Bundle/Vite.ts +67 -16
- package/src/Cli/LoggingCli.ts +7 -4
- package/src/Cli/commands/_shared.ts +171 -5
- package/src/Cli/commands/login.ts +91 -46
- package/src/Cli/commands/logs.ts +1 -0
- package/src/Cli/commands/nuke.ts +16 -44
- package/src/Cli/commands/profile.ts +67 -39
- package/src/Cli/commands/tail.ts +1 -0
- package/src/Cloudflare/AI/GatewayDynamicRouting.ts +38 -6
- package/src/Cloudflare/AI/LanguageModel.ts +25 -5
- package/src/Cloudflare/AI/QuerySearchLocal.ts +66 -0
- package/src/Cloudflare/AI/QuerySearchNamespaceLocal.ts +60 -0
- package/src/Cloudflare/AI/SearchHttpClient.ts +423 -0
- package/src/Cloudflare/AI/SearchInstance.ts +4 -3
- package/src/Cloudflare/AI/index.ts +2 -0
- package/src/Cloudflare/Access/Application.ts +7 -4
- package/src/Cloudflare/Alerting/Silence.ts +4 -3
- package/src/Cloudflare/Alerting/Webhook.ts +8 -6
- package/src/Cloudflare/Auth/AuthProvider.ts +55 -39
- package/src/Cloudflare/Auth/OAuthClient.ts +6 -7
- package/src/Cloudflare/Cache/RegionalTieredCache.ts +7 -4
- package/src/Cloudflare/Containers/ContainerApplication.ts +22 -2
- package/src/Cloudflare/Containers/ContainerBundle.ts +110 -34
- package/src/Cloudflare/Containers/ContainerPlatform.ts +14 -52
- package/src/Cloudflare/Containers/ContainerProvider.ts +73 -19
- package/src/Cloudflare/Containers/LocalContainerProvider.ts +78 -72
- package/src/Cloudflare/D1/QueryDatabaseHttpClient.ts +176 -0
- package/src/Cloudflare/D1/QueryDatabaseLocal.ts +66 -0
- package/src/Cloudflare/D1/index.ts +1 -0
- package/src/Cloudflare/DNS/DnsHttp.ts +24 -2
- package/src/Cloudflare/DNS/DnsLocal.ts +41 -0
- package/src/Cloudflare/DNS/ReadDnsHttp.ts +4 -5
- package/src/Cloudflare/DNS/ReadDnsLocal.ts +38 -0
- package/src/Cloudflare/DNS/ReadWriteDnsHttp.ts +5 -5
- package/src/Cloudflare/DNS/ReadWriteDnsLocal.ts +46 -0
- package/src/Cloudflare/DNS/WriteDnsHttp.ts +4 -5
- package/src/Cloudflare/DNS/WriteDnsLocal.ts +44 -0
- package/src/Cloudflare/DNS/index.ts +3 -0
- package/src/Cloudflare/Diagnostics/EndpointHealthcheck.ts +4 -3
- package/src/Cloudflare/Flagship/ReadFlagsHttpClient.ts +183 -0
- package/src/Cloudflare/Flagship/ReadFlagsLocal.ts +69 -0
- package/src/Cloudflare/Flagship/index.ts +1 -0
- package/src/Cloudflare/Images/Variant.ts +4 -3
- package/src/Cloudflare/KV/NamespaceHttp.ts +25 -2
- package/src/Cloudflare/KV/NamespaceLocal.ts +42 -0
- package/src/Cloudflare/KV/ReadNamespaceHttp.ts +7 -6
- package/src/Cloudflare/KV/ReadNamespaceLocal.ts +35 -0
- package/src/Cloudflare/KV/ReadWriteNamespaceHttp.ts +11 -6
- package/src/Cloudflare/KV/ReadWriteNamespaceLocal.ts +42 -0
- package/src/Cloudflare/KV/WriteNamespaceHttp.ts +7 -6
- package/src/Cloudflare/KV/WriteNamespaceLocal.ts +35 -0
- package/src/Cloudflare/KV/index.ts +3 -0
- 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/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 +21 -19
- package/src/Cloudflare/Queues/Consumer.ts +45 -9
- package/src/Cloudflare/Queues/Queue.ts +4 -3
- package/src/Cloudflare/Queues/QueueHttp.ts +24 -2
- package/src/Cloudflare/Queues/WriteQueueHttp.ts +16 -7
- package/src/Cloudflare/Queues/WriteQueueLocal.ts +64 -0
- package/src/Cloudflare/Queues/index.ts +1 -0
- package/src/Cloudflare/R2/Bucket.ts +12 -9
- package/src/Cloudflare/R2/BucketEventNotification.ts +4 -3
- package/src/Cloudflare/R2/BucketHttp.ts +20 -3
- package/src/Cloudflare/R2/BucketLocal.ts +47 -0
- package/src/Cloudflare/R2/DataCatalog.ts +4 -3
- package/src/Cloudflare/R2/ReadBucketHttp.ts +10 -5
- package/src/Cloudflare/R2/ReadBucketLocal.ts +33 -0
- package/src/Cloudflare/R2/ReadWriteBucketHttp.ts +11 -5
- package/src/Cloudflare/R2/ReadWriteBucketLocal.ts +36 -0
- package/src/Cloudflare/R2/WriteBucketHttp.ts +10 -5
- package/src/Cloudflare/R2/WriteBucketLocal.ts +33 -0
- package/src/Cloudflare/R2/index.ts +3 -0
- package/src/Cloudflare/Rum/Rule.ts +4 -3
- package/src/Cloudflare/Snippets/Snippet.ts +4 -3
- package/src/Cloudflare/StateStore/CredentialsFile.ts +48 -0
- package/src/Cloudflare/StateStore/State.ts +61 -25
- package/src/Cloudflare/Tags/ZoneResourceTags.ts +4 -3
- package/src/Cloudflare/Tunnel/ReadTunnel.ts +8 -9
- package/src/Cloudflare/Tunnel/ReadTunnelLocal.ts +33 -0
- package/src/Cloudflare/Tunnel/ReadWriteTunnel.ts +5 -5
- package/src/Cloudflare/Tunnel/ReadWriteTunnelLocal.ts +39 -0
- package/src/Cloudflare/Tunnel/TunnelBinding.ts +26 -2
- package/src/Cloudflare/Tunnel/TunnelLocalBinding.ts +38 -0
- package/src/Cloudflare/Tunnel/WarpConnector.ts +8 -5
- package/src/Cloudflare/Tunnel/WriteTunnel.ts +8 -9
- package/src/Cloudflare/Tunnel/WriteTunnelLocal.ts +33 -0
- package/src/Cloudflare/Tunnel/index.ts +3 -0
- package/src/Cloudflare/UrlNormalization/UrlNormalization.ts +7 -4
- package/src/Cloudflare/Vectorize/SearchIndexHttpClient.ts +183 -0
- package/src/Cloudflare/Vectorize/SearchIndexLocal.ts +70 -0
- package/src/Cloudflare/Vectorize/index.ts +1 -0
- package/src/Cloudflare/WaitingRoom/Settings.ts +7 -4
- package/src/Cloudflare/Website/Vite.ts +20 -0
- package/src/Cloudflare/Workers/BrowserHttpClient.ts +201 -0
- package/src/Cloudflare/Workers/BrowserLocal.ts +65 -0
- package/src/Cloudflare/Workers/Compatibility.ts +50 -7
- package/src/Cloudflare/Workers/ConfigProvider.ts +15 -1
- package/src/Cloudflare/Workers/CronEventSource.ts +3 -2
- package/src/Cloudflare/Workers/DurableObject.ts +227 -6
- package/src/Cloudflare/Workers/DurableObjectBridge.ts +38 -33
- package/src/Cloudflare/Workers/HttpServer.ts +1 -4
- package/src/Cloudflare/Workers/LocalWorkerProvider.ts +132 -26
- package/src/Cloudflare/Workers/ObservabilityDestination.ts +4 -3
- package/src/Cloudflare/Workers/Vite.ts +93 -11
- package/src/Cloudflare/Workers/Worker.ts +46 -6
- package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +33 -21
- package/src/Cloudflare/Workers/WorkerBinding.ts +20 -1
- package/src/Cloudflare/Workers/WorkerBridge.ts +239 -108
- package/src/Cloudflare/Workers/WorkerProvider.ts +689 -135
- package/src/Cloudflare/Workers/WorkerRuntimeContext.ts +14 -45
- package/src/Cloudflare/Workers/cloudflare_workers.ts +20 -12
- package/src/Cloudflare/Workers/index.ts +1 -0
- package/src/Cloudflare/Workflows/Workflow.ts +54 -20
- package/src/Cloudflare/Workflows/WorkflowBridge.ts +19 -23
- package/src/Cloudflare/Workflows/WorkflowName.ts +41 -0
- package/src/Cloudflare/Zone/Hold.ts +7 -4
- package/src/Command/Dev.ts +42 -10
- package/src/Diff.ts +33 -0
- package/src/Docker/Container.ts +4 -1
- package/src/Drizzle/Postgres.ts +51 -23
- package/src/GitHub/AuthProvider.ts +0 -3
- package/src/GitHub/Env.ts +57 -0
- package/src/GitHub/Secrets.ts +1 -1
- package/src/GitHub/Variables.ts +1 -1
- package/src/GitHub/index.ts +1 -0
- package/src/Http.ts +11 -0
- package/src/Local/RpcProviderProxy.ts +1 -1
- package/src/Local/RpcSerialization.ts +6 -2
- package/src/Local/RpcSpawner.ts +21 -8
- package/src/Neon/AuthProvider.ts +1 -4
- package/src/Neon/Project.ts +2 -2
- package/src/Plan.ts +43 -13
- package/src/Planetscale/AuthProvider.ts +267 -27
- package/src/Planetscale/Branch.ts +4 -3
- package/src/Planetscale/Credentials.ts +18 -6
- package/src/Planetscale/Database.ts +2 -1
- package/src/Planetscale/MySQL/MySQLClusterSize.ts +120 -21
- package/src/Planetscale/MySQL/MySQLDatabase.ts +84 -44
- 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/Util.ts +4 -3
- package/src/Platform.ts +83 -7
- package/src/Provider.ts +35 -0
- package/src/Runtime.ts +92 -0
- package/src/RuntimeContext.ts +79 -0
- package/src/Server/Process.ts +11 -18
- package/src/Stack.ts +1 -1
- package/src/State/HttpStateStore.ts +5 -5
- package/src/Sync.ts +3 -0
- package/src/Test/Alchemy.ts +282 -0
- package/src/Test/Http.ts +8 -6
- package/src/Util/cached-function.ts +5 -5
- package/src/Util/data.ts +14 -5
- package/src/Util/poll.ts +1 -1
- package/src/Util/proxy-chain.ts +3 -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
|
@@ -5,9 +5,12 @@ export * from "./DataCatalog.ts";
|
|
|
5
5
|
export * from "./ReadBucket.ts";
|
|
6
6
|
export * from "./ReadBucketBinding.ts";
|
|
7
7
|
export * from "./ReadBucketHttp.ts";
|
|
8
|
+
export * from "./ReadBucketLocal.ts";
|
|
8
9
|
export * from "./ReadWriteBucket.ts";
|
|
9
10
|
export * from "./ReadWriteBucketBinding.ts";
|
|
10
11
|
export * from "./ReadWriteBucketHttp.ts";
|
|
12
|
+
export * from "./ReadWriteBucketLocal.ts";
|
|
11
13
|
export * from "./WriteBucket.ts";
|
|
12
14
|
export * from "./WriteBucketBinding.ts";
|
|
13
15
|
export * from "./WriteBucketHttp.ts";
|
|
16
|
+
export * from "./WriteBucketLocal.ts";
|
|
@@ -274,9 +274,10 @@ export const RuleProvider = () =>
|
|
|
274
274
|
// visible. Ride out the propagation window with a bounded retry.
|
|
275
275
|
Effect.retry({
|
|
276
276
|
while: (e) => e._tag === "RulesetNotFound",
|
|
277
|
-
schedule: Schedule.
|
|
278
|
-
Schedule.
|
|
279
|
-
|
|
277
|
+
schedule: Schedule.max([
|
|
278
|
+
Schedule.exponential("500 millis"),
|
|
279
|
+
Schedule.recurs(8),
|
|
280
|
+
]),
|
|
280
281
|
}),
|
|
281
282
|
);
|
|
282
283
|
const fresh = yield* listRules(accountId, rulesetId);
|
|
@@ -256,9 +256,10 @@ export const SnippetProvider = () =>
|
|
|
256
256
|
.pipe(
|
|
257
257
|
Effect.retry({
|
|
258
258
|
while: (e) => e._tag === "SnippetInUse",
|
|
259
|
-
schedule: Schedule.
|
|
260
|
-
Schedule.
|
|
261
|
-
|
|
259
|
+
schedule: Schedule.max([
|
|
260
|
+
Schedule.exponential("1 second"),
|
|
261
|
+
Schedule.recurs(8),
|
|
262
|
+
]),
|
|
262
263
|
}),
|
|
263
264
|
Effect.catchTag("SnippetNotFound", () => Effect.void),
|
|
264
265
|
);
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { HttpStateStoreCredentials } from "../../State/HttpStateStore.ts";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Filename (under `~/.alchemy/credentials/{profile}/`) used to cache the
|
|
5
|
+
* Cloudflare-deployed HTTP state store's endpoint + bearer token.
|
|
6
|
+
*
|
|
7
|
+
* Kept in this leaf module (rather than `StateStore/State.ts`) so the
|
|
8
|
+
* Cloudflare auth provider can invalidate the cache on
|
|
9
|
+
* `login --configure` / `logout` without importing the heavy state-store
|
|
10
|
+
* module and creating an import cycle
|
|
11
|
+
* (`StateStore/State.ts` -> `Providers.ts` -> `Auth/AuthProvider.ts`).
|
|
12
|
+
*/
|
|
13
|
+
export const CREDENTIALS_FILE = "cloudflare-state-store";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* On-disk shape of the cached Cloudflare state-store credentials.
|
|
17
|
+
*
|
|
18
|
+
* Extends the generic {@link HttpStateStoreCredentials} (`{ url, authToken }`)
|
|
19
|
+
* with the `accountId` the credentials were minted against. The `url` already
|
|
20
|
+
* encodes the account (via the `*.workers.dev` subdomain), so a cache written
|
|
21
|
+
* while logged into account A keeps pointing at account A's state store even
|
|
22
|
+
* after the user re-authenticates against account B. Persisting `accountId`
|
|
23
|
+
* lets `state()` detect that mismatch and re-derive.
|
|
24
|
+
*
|
|
25
|
+
* `accountId` is optional so legacy files written before this field existed
|
|
26
|
+
* still parse — they are treated as stale (see
|
|
27
|
+
* {@link isStateStoreCredentialsStale}) and re-derived on next use.
|
|
28
|
+
*/
|
|
29
|
+
export interface StoredStateStoreCredentials extends HttpStateStoreCredentials {
|
|
30
|
+
/** Cloudflare account ID the `url`/`authToken` were minted against. */
|
|
31
|
+
accountId?: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* `true` when cached state-store credentials must not be trusted for the
|
|
36
|
+
* current account:
|
|
37
|
+
*
|
|
38
|
+
* - the file predates the `accountId` field (legacy cache — exactly the
|
|
39
|
+
* artifact that caused deploys to silently target the wrong account), or
|
|
40
|
+
* - it was minted against a different account than the one now in use.
|
|
41
|
+
*
|
|
42
|
+
* A stale cache is discarded and re-derived from the current account.
|
|
43
|
+
*/
|
|
44
|
+
export const isStateStoreCredentialsStale = (
|
|
45
|
+
credentials: StoredStateStoreCredentials,
|
|
46
|
+
currentAccountId: string,
|
|
47
|
+
): boolean =>
|
|
48
|
+
credentials.accountId == null || credentials.accountId !== currentAccountId;
|
|
@@ -39,6 +39,11 @@ import * as Access from "../Access.ts";
|
|
|
39
39
|
import * as CloudflareEnvironment from "../CloudflareEnvironment.ts";
|
|
40
40
|
import { EdgeSessionError, createEdgeSession } from "../EdgeSession.ts";
|
|
41
41
|
import Api, { STATE_STORE_SCRIPT_NAME, STATE_STORE_VERSION } from "./Api.ts";
|
|
42
|
+
import {
|
|
43
|
+
CREDENTIALS_FILE,
|
|
44
|
+
type StoredStateStoreCredentials,
|
|
45
|
+
isStateStoreCredentialsStale,
|
|
46
|
+
} from "./CredentialsFile.ts";
|
|
42
47
|
import {
|
|
43
48
|
AuthToken,
|
|
44
49
|
AuthTokenSecretName,
|
|
@@ -48,9 +53,6 @@ import {
|
|
|
48
53
|
|
|
49
54
|
const CI = Config.boolean("CI").pipe(Config.withDefault(false));
|
|
50
55
|
|
|
51
|
-
/** Filename used for stored credentials under the profile directory. */
|
|
52
|
-
const CREDENTIALS_FILE = "cloudflare-state-store";
|
|
53
|
-
|
|
54
56
|
export const state = () =>
|
|
55
57
|
Layer.effect(
|
|
56
58
|
State,
|
|
@@ -173,15 +175,32 @@ export const state = () =>
|
|
|
173
175
|
return yield* makeCloudflareStateStore(credentials);
|
|
174
176
|
});
|
|
175
177
|
|
|
176
|
-
const
|
|
178
|
+
const { accountId } =
|
|
179
|
+
yield* yield* CloudflareEnvironment.CloudflareEnvironment;
|
|
180
|
+
|
|
181
|
+
const credentials = yield* credStore.read<StoredStateStoreCredentials>(
|
|
177
182
|
profileName,
|
|
178
183
|
CREDENTIALS_FILE,
|
|
179
184
|
);
|
|
180
185
|
if (credentials) {
|
|
181
|
-
|
|
186
|
+
// The cached `url`/`authToken` are minted per-account (the `url`
|
|
187
|
+
// encodes the account via its workers.dev subdomain). If the
|
|
188
|
+
// active account changed since they were written — or the file
|
|
189
|
+
// predates the `accountId` field — trusting the cache would
|
|
190
|
+
// silently read/write state in the wrong account, so discard it
|
|
191
|
+
// and fall through to re-derivation from the current account.
|
|
192
|
+
if (isStateStoreCredentialsStale(credentials, accountId)) {
|
|
193
|
+
yield* Clank.info(
|
|
194
|
+
`Cloudflare State Store credentials were minted for a different ` +
|
|
195
|
+
`Cloudflare account; re-deriving for the current account.`,
|
|
196
|
+
);
|
|
197
|
+
yield* credStore
|
|
198
|
+
.delete(profileName, CREDENTIALS_FILE)
|
|
199
|
+
.pipe(Effect.ignore);
|
|
200
|
+
} else {
|
|
201
|
+
return yield* ensureLatest(credentials);
|
|
202
|
+
}
|
|
182
203
|
}
|
|
183
|
-
const { accountId } =
|
|
184
|
-
yield* yield* CloudflareEnvironment.CloudflareEnvironment;
|
|
185
204
|
if (yield* isStateStoreServing(accountId)) {
|
|
186
205
|
return yield* ensureLatest(
|
|
187
206
|
yield* loginWithCloudflare(profileName, false),
|
|
@@ -283,7 +302,7 @@ export const bootstrap = (options: BootstrapOptions = {}) =>
|
|
|
283
302
|
if (!isCI) {
|
|
284
303
|
// we don't write credentials in CI because the file system is ephemeral
|
|
285
304
|
const store = yield* CredentialsStore;
|
|
286
|
-
yield* store.write<
|
|
305
|
+
yield* store.write<StoredStateStoreCredentials>(
|
|
287
306
|
profileName,
|
|
288
307
|
CREDENTIALS_FILE,
|
|
289
308
|
credentials,
|
|
@@ -667,9 +686,10 @@ const hoistBootstrapStack = Effect.fn(function* ({
|
|
|
667
686
|
// Secrets Store bindings) can take a while to serve
|
|
668
687
|
// consistently; anything persisting past that is a real
|
|
669
688
|
// failure to surface, not to spin on.
|
|
670
|
-
schedule: Schedule.
|
|
671
|
-
Schedule.
|
|
672
|
-
|
|
689
|
+
schedule: Schedule.max([
|
|
690
|
+
Schedule.fixed(500),
|
|
691
|
+
Schedule.recurs(60),
|
|
692
|
+
]),
|
|
673
693
|
}),
|
|
674
694
|
);
|
|
675
695
|
}
|
|
@@ -703,11 +723,17 @@ export const loginWithCloudflare = (profileName: string, force: boolean) =>
|
|
|
703
723
|
|
|
704
724
|
if (!force) {
|
|
705
725
|
// try and read from the cached credentials first if not forcing (force will always refresh)
|
|
706
|
-
const credentials = yield* credStore.read<
|
|
726
|
+
const credentials = yield* credStore.read<StoredStateStoreCredentials>(
|
|
707
727
|
profileName,
|
|
708
728
|
CREDENTIALS_FILE,
|
|
709
729
|
);
|
|
710
|
-
|
|
730
|
+
// Ignore a cache minted for a different account (or a legacy file with
|
|
731
|
+
// no `accountId`) — reusing it would hand back the wrong account's
|
|
732
|
+
// state-store URL. Fall through to re-derive against `accountId`.
|
|
733
|
+
if (
|
|
734
|
+
credentials &&
|
|
735
|
+
!isStateStoreCredentialsStale(credentials, accountId)
|
|
736
|
+
) {
|
|
711
737
|
return credentials;
|
|
712
738
|
}
|
|
713
739
|
}
|
|
@@ -736,10 +762,13 @@ export const loginWithCloudflare = (profileName: string, force: boolean) =>
|
|
|
736
762
|
isTransientEdgeSessionError(error),
|
|
737
763
|
// Cap the exponential delay at 2s so 15 retries stay within
|
|
738
764
|
// ~30s instead of doubling unboundedly.
|
|
739
|
-
schedule: Schedule.
|
|
740
|
-
Schedule.
|
|
741
|
-
|
|
742
|
-
|
|
765
|
+
schedule: Schedule.max([
|
|
766
|
+
Schedule.min([
|
|
767
|
+
Schedule.exponential(200),
|
|
768
|
+
Schedule.spaced("2 seconds"),
|
|
769
|
+
]),
|
|
770
|
+
Schedule.recurs(15),
|
|
771
|
+
]),
|
|
743
772
|
}),
|
|
744
773
|
);
|
|
745
774
|
|
|
@@ -751,9 +780,10 @@ export const loginWithCloudflare = (profileName: string, force: boolean) =>
|
|
|
751
780
|
// 4. Persist credentials. The profile entry is managed by
|
|
752
781
|
// `loadOrConfigure` when this is invoked through `configure`.
|
|
753
782
|
yield* credStore
|
|
754
|
-
.write<
|
|
783
|
+
.write<StoredStateStoreCredentials>(profileName, CREDENTIALS_FILE, {
|
|
755
784
|
url,
|
|
756
785
|
authToken: authToken.trim(),
|
|
786
|
+
accountId,
|
|
757
787
|
})
|
|
758
788
|
.pipe(
|
|
759
789
|
Effect.mapError(
|
|
@@ -774,6 +804,7 @@ export const loginWithCloudflare = (profileName: string, force: boolean) =>
|
|
|
774
804
|
return {
|
|
775
805
|
url,
|
|
776
806
|
authToken: authToken.trim(),
|
|
807
|
+
accountId,
|
|
777
808
|
};
|
|
778
809
|
}).pipe(
|
|
779
810
|
Effect.catchTag("EdgeSessionError", (e) =>
|
|
@@ -871,9 +902,10 @@ const waitForStateStoreVersion = (url: string) =>
|
|
|
871
902
|
// Edge propagation is usually sub-second but production traces
|
|
872
903
|
// show redeploys occasionally serving the old version for well
|
|
873
904
|
// over 10s. Poll for ~30s before failing loudly.
|
|
874
|
-
schedule: Schedule.
|
|
875
|
-
Schedule.
|
|
876
|
-
|
|
905
|
+
schedule: Schedule.max([
|
|
906
|
+
Schedule.spaced("500 millis"),
|
|
907
|
+
Schedule.recurs(60),
|
|
908
|
+
]),
|
|
877
909
|
}),
|
|
878
910
|
Effect.withSpan("state_store.wait_for_version", {
|
|
879
911
|
attributes: {
|
|
@@ -911,9 +943,10 @@ const checkStateStoreVersion = (url: string) =>
|
|
|
911
943
|
: Effect.fail(e),
|
|
912
944
|
),
|
|
913
945
|
Effect.retry({
|
|
914
|
-
schedule: Schedule.
|
|
915
|
-
Schedule.
|
|
916
|
-
|
|
946
|
+
schedule: Schedule.max([
|
|
947
|
+
Schedule.spaced("250 millis"),
|
|
948
|
+
Schedule.recurs(40),
|
|
949
|
+
]),
|
|
917
950
|
}),
|
|
918
951
|
Effect.catch(() => Effect.succeed(undefined)),
|
|
919
952
|
);
|
|
@@ -1022,12 +1055,15 @@ const writeCredentials = (url: string, authToken: string) =>
|
|
|
1022
1055
|
Effect.gen(function* () {
|
|
1023
1056
|
const profileName = yield* ALCHEMY_PROFILE;
|
|
1024
1057
|
const credStore = yield* CredentialsStore;
|
|
1025
|
-
|
|
1058
|
+
const { accountId } =
|
|
1059
|
+
yield* yield* CloudflareEnvironment.CloudflareEnvironment;
|
|
1060
|
+
yield* credStore.write<StoredStateStoreCredentials>(
|
|
1026
1061
|
profileName,
|
|
1027
1062
|
CREDENTIALS_FILE,
|
|
1028
1063
|
{
|
|
1029
1064
|
url,
|
|
1030
1065
|
authToken,
|
|
1066
|
+
accountId,
|
|
1031
1067
|
},
|
|
1032
1068
|
);
|
|
1033
1069
|
});
|
|
@@ -21,9 +21,10 @@ type TypeId = typeof TypeId;
|
|
|
21
21
|
// calls on that typed tag so reconcile waits out the propagation window.
|
|
22
22
|
const targetVisibleRetry = {
|
|
23
23
|
while: (e: { _tag: string }) => e._tag === "ZoneTagResourceNotFound",
|
|
24
|
-
schedule: Schedule.
|
|
25
|
-
Schedule.
|
|
26
|
-
|
|
24
|
+
schedule: Schedule.max([
|
|
25
|
+
Schedule.exponential("500 millis"),
|
|
26
|
+
Schedule.recurs(10),
|
|
27
|
+
]),
|
|
27
28
|
} as const;
|
|
28
29
|
|
|
29
30
|
/**
|
|
@@ -15,8 +15,7 @@ import * as Binding from "../../Binding.ts";
|
|
|
15
15
|
import type { Worker } from "../Workers/Worker.ts";
|
|
16
16
|
import type { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
17
17
|
import type { RuntimeContext } from "../../RuntimeContext.ts";
|
|
18
|
-
import { type
|
|
19
|
-
import { authorizeWith } from "../HttpClientUtils.ts";
|
|
18
|
+
import { type TunnelAuth } from "./TunnelBinding.ts";
|
|
20
19
|
|
|
21
20
|
/**
|
|
22
21
|
* Binding that lets a Worker read Cloudflare Tunnels at runtime.
|
|
@@ -117,31 +116,31 @@ export interface ReadTunnelClient {
|
|
|
117
116
|
>;
|
|
118
117
|
}
|
|
119
118
|
|
|
120
|
-
/** Build the read-only client over
|
|
121
|
-
export const readClient = (
|
|
122
|
-
const authorize =
|
|
119
|
+
/** Build the read-only client over an injectable {@link TunnelAuth}. */
|
|
120
|
+
export const readClient = (auth: TunnelAuth): ReadTunnelClient => {
|
|
121
|
+
const { authorize } = auth;
|
|
123
122
|
return {
|
|
124
123
|
get: Effect.fn("Cloudflare.Tunnel.get")(function* (tunnelId) {
|
|
125
|
-
const accountId = yield*
|
|
124
|
+
const accountId = yield* auth.accountId;
|
|
126
125
|
return yield* authorize(
|
|
127
126
|
zeroTrust.getTunnelCloudflared({ accountId, tunnelId }),
|
|
128
127
|
);
|
|
129
128
|
}),
|
|
130
129
|
list: Effect.fn("Cloudflare.Tunnel.list")(function* (request) {
|
|
131
|
-
const accountId = yield*
|
|
130
|
+
const accountId = yield* auth.accountId;
|
|
132
131
|
return yield* authorize(
|
|
133
132
|
zeroTrust.listTunnelCloudflareds({ accountId, ...request }),
|
|
134
133
|
);
|
|
135
134
|
}),
|
|
136
135
|
getToken: Effect.fn("Cloudflare.Tunnel.getToken")(function* (tunnelId) {
|
|
137
|
-
const accountId = yield*
|
|
136
|
+
const accountId = yield* auth.accountId;
|
|
138
137
|
return yield* authorize(
|
|
139
138
|
zeroTrust.getTunnelCloudflaredToken({ accountId, tunnelId }),
|
|
140
139
|
);
|
|
141
140
|
}),
|
|
142
141
|
getConfiguration: Effect.fn("Cloudflare.Tunnel.getConfiguration")(
|
|
143
142
|
function* (tunnelId) {
|
|
144
|
-
const accountId = yield*
|
|
143
|
+
const accountId = yield* auth.accountId;
|
|
145
144
|
return yield* authorize(
|
|
146
145
|
zeroTrust.getTunnelCloudflaredConfiguration({ accountId, tunnelId }),
|
|
147
146
|
);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as Layer from "effect/Layer";
|
|
2
|
+
import { readClient, ReadTunnel } from "./ReadTunnel.ts";
|
|
3
|
+
import { makeLocalTunnelClient } from "./TunnelLocalBinding.ts";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Local implementation of the {@link ReadTunnel} binding — reads Cloudflare
|
|
7
|
+
* Tunnels over the cfd_tunnel HTTP API using the **current credentials**
|
|
8
|
+
* instead of a native Worker binding (`ReadTunnelBinding`) or a scoped API
|
|
9
|
+
* token. No `host.bind`, no minted token, no Worker host.
|
|
10
|
+
*
|
|
11
|
+
* Provide it on an {@link Action} (or any deploy-time Effect) so you can read
|
|
12
|
+
* tunnels with the same `get`/`list`/`getToken`/`getConfiguration` client you'd
|
|
13
|
+
* use inside a Worker.
|
|
14
|
+
*
|
|
15
|
+
* @example Read a tunnel's connector token from an Action
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const Inspect = Alchemy.Action(
|
|
18
|
+
* "Inspect",
|
|
19
|
+
* Effect.gen(function* () {
|
|
20
|
+
* const tunnels = yield* Cloudflare.Tunnel.ReadTunnel();
|
|
21
|
+
* const tunnelId = yield* tunnel.tunnelId;
|
|
22
|
+
* return Effect.fn(function* () {
|
|
23
|
+
* const t = yield* tunnels.get(yield* tunnelId);
|
|
24
|
+
* return t.result?.name;
|
|
25
|
+
* });
|
|
26
|
+
* }).pipe(Effect.provide(Cloudflare.Tunnel.ReadTunnelLocal)),
|
|
27
|
+
* );
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export const ReadTunnelLocal = Layer.effect(
|
|
31
|
+
ReadTunnel,
|
|
32
|
+
makeLocalTunnelClient(readClient),
|
|
33
|
+
);
|
|
@@ -2,7 +2,7 @@ import * as Effect from "effect/Effect";
|
|
|
2
2
|
import * as Binding from "../../Binding.ts";
|
|
3
3
|
import type { Worker } from "../Workers/Worker.ts";
|
|
4
4
|
import type { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
5
|
-
import { type
|
|
5
|
+
import { type TunnelAuth } from "./TunnelBinding.ts";
|
|
6
6
|
import { readClient, type ReadTunnelClient } from "./ReadTunnel.ts";
|
|
7
7
|
import { writeClient, type WriteTunnelClient } from "./WriteTunnel.ts";
|
|
8
8
|
|
|
@@ -68,8 +68,8 @@ export const ReadWriteTunnel = Binding.Service<ReadWriteTunnel>(
|
|
|
68
68
|
export interface ReadWriteTunnelClient
|
|
69
69
|
extends ReadTunnelClient, WriteTunnelClient {}
|
|
70
70
|
|
|
71
|
-
/** Build the combined read + write client over
|
|
72
|
-
export const readWriteClient = (
|
|
73
|
-
...readClient(
|
|
74
|
-
...writeClient(
|
|
71
|
+
/** Build the combined read + write client over an injectable {@link TunnelAuth}. */
|
|
72
|
+
export const readWriteClient = (auth: TunnelAuth): ReadWriteTunnelClient => ({
|
|
73
|
+
...readClient(auth),
|
|
74
|
+
...writeClient(auth),
|
|
75
75
|
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as Layer from "effect/Layer";
|
|
2
|
+
import { readWriteClient, ReadWriteTunnel } from "./ReadWriteTunnel.ts";
|
|
3
|
+
import { makeLocalTunnelClient } from "./TunnelLocalBinding.ts";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Local implementation of the {@link ReadWriteTunnel} binding — performs the
|
|
7
|
+
* full cfd_tunnel CRUD surface over the HTTP API using the **current
|
|
8
|
+
* credentials** instead of a native Worker binding (`ReadWriteTunnelBinding`)
|
|
9
|
+
* or a scoped API token. No `host.bind`, no minted token, no Worker host.
|
|
10
|
+
*
|
|
11
|
+
* Provide it on an {@link Action} (or any deploy-time Effect) so you can manage
|
|
12
|
+
* tunnels with the same combined read + write client you'd use inside a Worker.
|
|
13
|
+
*
|
|
14
|
+
* @example Configure a deployed tunnel from an Action
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const Configure = Alchemy.Action(
|
|
17
|
+
* "Configure",
|
|
18
|
+
* Effect.gen(function* () {
|
|
19
|
+
* const tunnels = yield* Cloudflare.Tunnel.ReadWriteTunnel();
|
|
20
|
+
* const tunnelId = yield* tunnel.tunnelId;
|
|
21
|
+
* return Effect.fn(function* () {
|
|
22
|
+
* const id = yield* tunnelId;
|
|
23
|
+
* yield* tunnels.putConfiguration(id, {
|
|
24
|
+
* ingress: [
|
|
25
|
+
* { hostname: "app.example.com", service: "http://localhost:3000" },
|
|
26
|
+
* { service: "http_status:404" },
|
|
27
|
+
* ],
|
|
28
|
+
* });
|
|
29
|
+
* const { config } = yield* tunnels.getConfiguration(id);
|
|
30
|
+
* return config;
|
|
31
|
+
* });
|
|
32
|
+
* }).pipe(Effect.provide(Cloudflare.Tunnel.ReadWriteTunnelLocal)),
|
|
33
|
+
* );
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export const ReadWriteTunnelLocal = Layer.effect(
|
|
37
|
+
ReadWriteTunnel,
|
|
38
|
+
makeLocalTunnelClient(readWriteClient),
|
|
39
|
+
);
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import type * as Redacted from "effect/Redacted";
|
|
3
|
+
import type * as HttpClient from "effect/unstable/http/HttpClient";
|
|
4
|
+
import type { RuntimeContext } from "../../RuntimeContext.ts";
|
|
3
5
|
import { AccountApiToken } from "../ApiToken/AccountApiToken.ts";
|
|
4
6
|
import type { PermissionGroupRef } from "../ApiToken/Common.ts";
|
|
5
7
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
8
|
+
import type { Credentials } from "../Credentials.ts";
|
|
9
|
+
import { authorizeWith } from "../HttpClientUtils.ts";
|
|
6
10
|
import { Worker } from "../Workers/Worker.ts";
|
|
7
11
|
|
|
8
12
|
/**
|
|
@@ -16,7 +20,7 @@ import { Worker } from "../Workers/Worker.ts";
|
|
|
16
20
|
export const makeTunnelClient = <C>(
|
|
17
21
|
sid: string,
|
|
18
22
|
permissionGroups: PermissionGroupRef[],
|
|
19
|
-
makeClient: (
|
|
23
|
+
makeClient: (auth: TunnelAuth) => C,
|
|
20
24
|
) =>
|
|
21
25
|
Effect.gen(function* () {
|
|
22
26
|
const Token = yield* AccountApiToken;
|
|
@@ -39,10 +43,30 @@ export const makeTunnelClient = <C>(
|
|
|
39
43
|
],
|
|
40
44
|
});
|
|
41
45
|
}
|
|
42
|
-
return makeClient(yield* bindTunnelToken(token));
|
|
46
|
+
return makeClient(makeTunnelAuth(yield* bindTunnelToken(token)));
|
|
43
47
|
});
|
|
44
48
|
});
|
|
45
49
|
|
|
50
|
+
/**
|
|
51
|
+
* Injectable auth for the tunnel client builders. Both the scoped-token
|
|
52
|
+
* (`*Binding`) and current-credentials (`*Local`) variants supply an
|
|
53
|
+
* `authorize` (which provides `Credentials` + `HttpClient` to a raw SDK op)
|
|
54
|
+
* and an `accountId`, so the client builders are agnostic to how creds are
|
|
55
|
+
* obtained.
|
|
56
|
+
*/
|
|
57
|
+
export interface TunnelAuth {
|
|
58
|
+
authorize: <A, E>(
|
|
59
|
+
eff: Effect.Effect<A, E, Credentials | HttpClient.HttpClient>,
|
|
60
|
+
) => Effect.Effect<A, E, RuntimeContext>;
|
|
61
|
+
accountId: Effect.Effect<string>;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** Build a scoped-token {@link TunnelAuth} from a bound {@link Token}. */
|
|
65
|
+
export const makeTunnelAuth = (token: Token): TunnelAuth => ({
|
|
66
|
+
authorize: authorizeWith(token),
|
|
67
|
+
accountId: token.accountId,
|
|
68
|
+
});
|
|
69
|
+
|
|
46
70
|
/**
|
|
47
71
|
* Runtime accessors for a tunnel binding's token, obtained by binding the
|
|
48
72
|
* {@link AccountApiToken}'s outputs in the Worker's Init phase. Each accessor
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import type * as HttpClient from "effect/unstable/http/HttpClient";
|
|
3
|
+
import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
4
|
+
import type { Credentials } from "../Credentials.ts";
|
|
5
|
+
import type { TunnelAuth } from "./TunnelBinding.ts";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Shared scaffolding for the `*Local` tunnel services.
|
|
9
|
+
*
|
|
10
|
+
* Instead of minting a scoped {@link AccountApiToken} (the `*Binding` path), it
|
|
11
|
+
* captures the ambient current-credentials context available during stack-eval
|
|
12
|
+
* and builds a {@link TunnelAuth} that provides those credentials directly to
|
|
13
|
+
* the cfd_tunnel HTTP ops. It then delegates to the same client builders the
|
|
14
|
+
* `*Binding` variant uses.
|
|
15
|
+
*
|
|
16
|
+
* NOT exported from `index.ts` — this is internal scaffolding shared by the
|
|
17
|
+
* three access-level Local layers.
|
|
18
|
+
*/
|
|
19
|
+
export const makeLocalTunnelClient = <Client>(
|
|
20
|
+
makeClient: (auth: TunnelAuth) => Client,
|
|
21
|
+
) =>
|
|
22
|
+
Effect.gen(function* () {
|
|
23
|
+
// Account + credentials are ambient during stack-eval (the stack's
|
|
24
|
+
// providers layer). Capture the full context so cfd_tunnel HTTP ops can run
|
|
25
|
+
// with the current credentials — no `host.bind`, no minted token.
|
|
26
|
+
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
27
|
+
const context = yield* Effect.context<
|
|
28
|
+
Credentials | HttpClient.HttpClient
|
|
29
|
+
>();
|
|
30
|
+
|
|
31
|
+
return Effect.fn(function* () {
|
|
32
|
+
const auth: TunnelAuth = {
|
|
33
|
+
authorize: (eff) => eff.pipe(Effect.provideContext(context)),
|
|
34
|
+
accountId: Effect.succeed(accountId),
|
|
35
|
+
};
|
|
36
|
+
return makeClient(auth);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
@@ -6,6 +6,7 @@ import * as Redacted from "effect/Redacted";
|
|
|
6
6
|
import * as Stream from "effect/Stream";
|
|
7
7
|
|
|
8
8
|
import { Unowned } from "../../AdoptPolicy.ts";
|
|
9
|
+
import { isResolved } from "../../Diff.ts";
|
|
9
10
|
import { createPhysicalName } from "../../PhysicalName.ts";
|
|
10
11
|
import * as Provider from "../../Provider.ts";
|
|
11
12
|
import { Resource } from "../../Resource.ts";
|
|
@@ -19,7 +20,7 @@ export interface WarpConnectorProps {
|
|
|
19
20
|
/**
|
|
20
21
|
* User-friendly name for the WARP Connector tunnel. Tunnel names are
|
|
21
22
|
* unique per account, which makes the name the resource's identity
|
|
22
|
-
* during adoption and state recovery.
|
|
23
|
+
* during adoption and state recovery. Changing it replaces the tunnel.
|
|
23
24
|
*
|
|
24
25
|
* @default ${app}-${stage}-${id}
|
|
25
26
|
*/
|
|
@@ -85,9 +86,9 @@ export type WarpConnector = Resource<
|
|
|
85
86
|
* ```
|
|
86
87
|
*
|
|
87
88
|
* @section Renaming
|
|
88
|
-
* @example
|
|
89
|
+
* @example Replace with a new name
|
|
89
90
|
* ```typescript
|
|
90
|
-
* // Renaming
|
|
91
|
+
* // Renaming creates a new tunnel with a new tunnelId.
|
|
91
92
|
* const connector = yield* Cloudflare.Tunnel.WarpConnector("SiteA", {
|
|
92
93
|
* name: "site-a-connector-v2",
|
|
93
94
|
* });
|
|
@@ -107,12 +108,14 @@ export const WarpConnectorProvider = () =>
|
|
|
107
108
|
Provider.succeed(WarpConnector, {
|
|
108
109
|
stables: ["tunnelId", "accountId", "createdAt"],
|
|
109
110
|
|
|
110
|
-
diff: Effect.fn(function* ({ output }) {
|
|
111
|
+
diff: Effect.fn(function* ({ olds, news, output }) {
|
|
111
112
|
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
112
113
|
if ((output?.accountId ?? accountId) !== accountId) {
|
|
113
114
|
return { action: "replace" } as const;
|
|
114
115
|
}
|
|
115
|
-
|
|
116
|
+
if (isResolved(news) && olds !== undefined && olds.name !== news.name) {
|
|
117
|
+
return { action: "replace" } as const;
|
|
118
|
+
}
|
|
116
119
|
return undefined;
|
|
117
120
|
}),
|
|
118
121
|
|
|
@@ -17,8 +17,7 @@ import * as Binding from "../../Binding.ts";
|
|
|
17
17
|
import type { Worker } from "../Workers/Worker.ts";
|
|
18
18
|
import type { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
19
19
|
import type { RuntimeContext } from "../../RuntimeContext.ts";
|
|
20
|
-
import { type
|
|
21
|
-
import { authorizeWith } from "../HttpClientUtils.ts";
|
|
20
|
+
import { type TunnelAuth } from "./TunnelBinding.ts";
|
|
22
21
|
|
|
23
22
|
/**
|
|
24
23
|
* Binding that lets a Worker create, update, and delete Cloudflare Tunnels at
|
|
@@ -137,33 +136,33 @@ export interface WriteTunnelClient {
|
|
|
137
136
|
>;
|
|
138
137
|
}
|
|
139
138
|
|
|
140
|
-
/** Build the write client over
|
|
141
|
-
export const writeClient = (
|
|
142
|
-
const authorize =
|
|
139
|
+
/** Build the write client over an injectable {@link TunnelAuth}. */
|
|
140
|
+
export const writeClient = (auth: TunnelAuth): WriteTunnelClient => {
|
|
141
|
+
const { authorize } = auth;
|
|
143
142
|
return {
|
|
144
143
|
create: Effect.fn("Cloudflare.Tunnel.create")(function* (request) {
|
|
145
|
-
const accountId = yield*
|
|
144
|
+
const accountId = yield* auth.accountId;
|
|
146
145
|
return yield* authorize(
|
|
147
146
|
zeroTrust.createTunnelCloudflared({ accountId, ...request }),
|
|
148
147
|
);
|
|
149
148
|
}),
|
|
150
149
|
update: Effect.fn("Cloudflare.Tunnel.update")(
|
|
151
150
|
function* (tunnelId, request) {
|
|
152
|
-
const accountId = yield*
|
|
151
|
+
const accountId = yield* auth.accountId;
|
|
153
152
|
return yield* authorize(
|
|
154
153
|
zeroTrust.patchTunnelCloudflared({ accountId, tunnelId, ...request }),
|
|
155
154
|
);
|
|
156
155
|
},
|
|
157
156
|
),
|
|
158
157
|
delete: Effect.fn("Cloudflare.Tunnel.delete")(function* (tunnelId) {
|
|
159
|
-
const accountId = yield*
|
|
158
|
+
const accountId = yield* auth.accountId;
|
|
160
159
|
return yield* authorize(
|
|
161
160
|
zeroTrust.deleteTunnelCloudflared({ accountId, tunnelId }),
|
|
162
161
|
);
|
|
163
162
|
}),
|
|
164
163
|
putConfiguration: Effect.fn("Cloudflare.Tunnel.putConfiguration")(
|
|
165
164
|
function* (tunnelId, config) {
|
|
166
|
-
const accountId = yield*
|
|
165
|
+
const accountId = yield* auth.accountId;
|
|
167
166
|
return yield* authorize(
|
|
168
167
|
zeroTrust.putTunnelCloudflaredConfiguration({
|
|
169
168
|
accountId,
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as Layer from "effect/Layer";
|
|
2
|
+
import { makeLocalTunnelClient } from "./TunnelLocalBinding.ts";
|
|
3
|
+
import { WriteTunnel, writeClient } from "./WriteTunnel.ts";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Local implementation of the {@link WriteTunnel} binding — creates, updates,
|
|
7
|
+
* and deletes Cloudflare Tunnels over the cfd_tunnel HTTP API using the
|
|
8
|
+
* **current credentials** instead of a native Worker binding
|
|
9
|
+
* (`WriteTunnelBinding`) or a scoped API token. No `host.bind`, no minted
|
|
10
|
+
* token, no Worker host.
|
|
11
|
+
*
|
|
12
|
+
* Provide it on an {@link Action} (or any deploy-time Effect) so you can mutate
|
|
13
|
+
* tunnels with the same `create`/`update`/`delete`/`putConfiguration` client
|
|
14
|
+
* you'd use inside a Worker.
|
|
15
|
+
*
|
|
16
|
+
* @example Provision a tunnel from an Action
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const Provision = Alchemy.Action(
|
|
19
|
+
* "Provision",
|
|
20
|
+
* Effect.gen(function* () {
|
|
21
|
+
* const tunnels = yield* Cloudflare.Tunnel.WriteTunnel();
|
|
22
|
+
* return Effect.fn(function* () {
|
|
23
|
+
* const tunnel = yield* tunnels.create({ name: "on-demand-tunnel" });
|
|
24
|
+
* return tunnel.result?.id;
|
|
25
|
+
* });
|
|
26
|
+
* }).pipe(Effect.provide(Cloudflare.Tunnel.WriteTunnelLocal)),
|
|
27
|
+
* );
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export const WriteTunnelLocal = Layer.effect(
|
|
31
|
+
WriteTunnel,
|
|
32
|
+
makeLocalTunnelClient(writeClient),
|
|
33
|
+
);
|