alchemy 2.0.0-beta.60 → 2.0.0-beta.61
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/bin/cli.js +9 -1
- package/bin/exec.js +15 -5
- package/bin/exec.js.map +1 -1
- package/lib/AWS/ACM/Certificate.d.ts.map +1 -1
- package/lib/AWS/ACM/Certificate.js +9 -2
- package/lib/AWS/ACM/Certificate.js.map +1 -1
- package/lib/AWS/AutoScaling/AutoScalingGroup.d.ts.map +1 -1
- package/lib/AWS/AutoScaling/AutoScalingGroup.js +18 -11
- 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/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/DynamoDB/Table.js +1 -1
- package/lib/AWS/DynamoDB/Table.js.map +1 -1
- package/lib/AWS/ECS/Service.d.ts.map +1 -1
- package/lib/AWS/ECS/Service.js +29 -4
- package/lib/AWS/ECS/Service.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/Lambda/Alias.d.ts +26 -0
- package/lib/AWS/Lambda/Alias.d.ts.map +1 -1
- package/lib/AWS/Lambda/Alias.js +31 -0
- 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/Function.d.ts +27 -2
- package/lib/AWS/Lambda/Function.d.ts.map +1 -1
- package/lib/AWS/Lambda/Function.js +23 -2
- package/lib/AWS/Lambda/Function.js.map +1 -1
- 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/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/Route53/HostedZone.d.ts.map +1 -1
- package/lib/AWS/Route53/HostedZone.js +20 -4
- 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 +32 -9
- package/lib/AWS/Route53/Record.js.map +1 -1
- package/lib/Apply.js +7 -1
- package/lib/Apply.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/Bundle/PurePlugin.d.ts.map +1 -1
- package/lib/Bundle/PurePlugin.js +15 -2
- package/lib/Bundle/PurePlugin.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/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 +3 -1
- 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 +5 -4
- 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/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/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 +51 -14
- package/lib/Cloudflare/Auth/AuthProvider.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/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/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/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/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/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/Providers.d.ts +29 -0
- package/lib/Cloudflare/Providers.d.ts.map +1 -1
- package/lib/Cloudflare/Providers.js +30 -19
- package/lib/Cloudflare/Providers.js.map +1 -1
- package/lib/Cloudflare/Queues/Consumer.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/Consumer.js +3 -1
- 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 +5 -4
- 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 +141 -3
- package/lib/Cloudflare/R2/Bucket.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/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/StateStore/Api.d.ts +15 -0
- package/lib/Cloudflare/StateStore/State.d.ts +30 -1
- package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
- package/lib/Cloudflare/StateStore/State.js +85 -16
- 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/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 +3 -1
- 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/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/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/CronEventSource.d.ts +180 -6
- 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/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/LocalWorkerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js +3 -0
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
- package/lib/Cloudflare/Workers/Worker.d.ts +230 -4
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +161 -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 +15 -0
- 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.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBridge.js +27 -5
- 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 +365 -18
- 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/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 +200 -24
- package/lib/Cloudflare/Workflows/Workflow.d.ts.map +1 -1
- package/lib/Cloudflare/Workflows/Workflow.js +126 -28
- 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 +42 -3
- package/lib/Cloudflare/Workflows/WorkflowBridge.js.map +1 -1
- 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/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/Docker/Container.d.ts.map +1 -1
- package/lib/Docker/Container.js +11 -1
- package/lib/Docker/Container.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/Neon/Branch.d.ts.map +1 -1
- package/lib/Neon/Branch.js +15 -3
- package/lib/Neon/Branch.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/Planetscale/Postgres/PostgresRole.js +2 -2
- package/lib/Planetscale/Postgres/PostgresRole.js.map +1 -1
- package/lib/Provider.d.ts +8 -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 +4 -4
- package/lib/State/HttpStateStore.d.ts +12 -0
- package/lib/State/HttpStateStore.d.ts.map +1 -1
- package/lib/State/HttpStateStore.js +46 -5
- 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 +312 -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 +69 -0
- 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/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 +19 -19
- package/src/AWS/ACM/Certificate.ts +13 -2
- package/src/AWS/AutoScaling/AutoScalingGroup.ts +21 -15
- package/src/AWS/AutoScaling/LaunchTemplate.ts +6 -1
- package/src/AWS/AutoScaling/ScalingPolicy.ts +31 -17
- package/src/AWS/CloudFront/PublicKey.ts +4 -0
- package/src/AWS/DynamoDB/Table.ts +1 -1
- package/src/AWS/ECS/Service.ts +35 -6
- package/src/AWS/IAM/OpenIDConnectProvider.ts +9 -1
- package/src/AWS/Lambda/Alias.ts +42 -0
- package/src/AWS/Lambda/EventInvokeConfig.ts +150 -0
- package/src/AWS/Lambda/Function.ts +35 -2
- package/src/AWS/Lambda/index.ts +1 -0
- 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/Route53/HostedZone.ts +30 -13
- package/src/AWS/Route53/Record.ts +44 -22
- package/src/Apply.ts +7 -1
- package/src/Auth/Lock.ts +62 -18
- package/src/Bundle/PurePlugin.ts +15 -2
- package/src/Cli/commands/sync.ts +123 -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 +3 -1
- package/src/Cloudflare/AI/GatewayProvider.ts +5 -2
- package/src/Cloudflare/AI/ProviderKey.ts +161 -0
- package/src/Cloudflare/AI/SearchInstance.ts +5 -4
- 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/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/ApiToken/AccountApiToken.ts +1 -0
- package/src/Cloudflare/ApiToken/UserApiToken.ts +1 -0
- package/src/Cloudflare/Auth/AuthProvider.ts +69 -8
- package/src/Cloudflare/BotManagement/BotManagement.ts +3 -1
- 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/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/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/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/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/Providers.ts +34 -19
- package/src/Cloudflare/Queues/Consumer.ts +3 -1
- package/src/Cloudflare/Queues/Queue.ts +5 -4
- package/src/Cloudflare/Queues/Subscription.ts +3 -1
- package/src/Cloudflare/R2/Bucket.ts +230 -3
- package/src/Cloudflare/RegionalHostname/RegionalHostname.ts +3 -1
- package/src/Cloudflare/Ruleset/Ruleset.ts +9 -4
- package/src/Cloudflare/SecretsStore/Secret.ts +46 -5
- package/src/Cloudflare/SecurityTxt/SecurityTxt.ts +3 -1
- package/src/Cloudflare/StateStore/State.ts +89 -24
- package/src/Cloudflare/Tags/AccountResourceTags.ts +9 -5
- package/src/Cloudflare/Tunnel/Route.ts +3 -1
- package/src/Cloudflare/Tunnel/Tunnel.ts +3 -1
- package/src/Cloudflare/UrlNormalization/UrlNormalization.ts +3 -1
- package/src/Cloudflare/Vectorize/VectorizeIndex.ts +2 -3
- package/src/Cloudflare/VpcService/VpcService.ts +1 -0
- 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/Workers/Cache.ts +102 -0
- package/src/Cloudflare/Workers/CronEventSource.ts +180 -6
- package/src/Cloudflare/Workers/DurableObject.ts +36 -1
- package/src/Cloudflare/Workers/DurableObjectState.ts +25 -0
- package/src/Cloudflare/Workers/Fetch.ts +2 -2
- package/src/Cloudflare/Workers/LocalWorkerProvider.ts +3 -0
- package/src/Cloudflare/Workers/Worker.ts +315 -9
- package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +18 -0
- package/src/Cloudflare/Workers/WorkerBridge.ts +37 -10
- package/src/Cloudflare/Workers/WorkerLoader.ts +10 -1
- package/src/Cloudflare/Workers/WorkerProvider.ts +576 -40
- package/src/Cloudflare/Workers/WorkerRuntimeContext.ts +23 -2
- package/src/Cloudflare/Workers/index.ts +1 -0
- package/src/Cloudflare/WorkersForPlatforms/DispatchNamespace.ts +2 -4
- package/src/Cloudflare/Workflows/Workflow.ts +296 -38
- package/src/Cloudflare/Workflows/WorkflowBridge.ts +62 -12
- package/src/Cloudflare/Zaraz/Config.ts +7 -2
- package/src/Cloudflare/Zone/Zone.ts +1 -0
- package/src/Docker/Container.ts +10 -1
- package/src/Drizzle/Schema.ts +12 -5
- package/src/Neon/Branch.ts +15 -3
- package/src/Output.ts +18 -2
- package/src/Planetscale/Postgres/PostgresRole.ts +2 -2
- package/src/Provider.ts +53 -3
- package/src/Ref.ts +10 -0
- package/src/Resource.ts +50 -1
- package/src/Stack.ts +1 -1
- package/src/State/HttpStateStore.ts +47 -5
- package/src/Sync.ts +494 -0
- package/src/Test/Bun.ts +4 -0
- package/src/Test/Http.ts +133 -0
- package/src/Test/Vitest.ts +11 -0
- package/src/Util/proxy-chain.ts +9 -12
- package/src/index.ts +1 -0
|
@@ -126,6 +126,43 @@ const selectAccount = (accessToken: string) =>
|
|
|
126
126
|
}).pipe(retryOnce);
|
|
127
127
|
}).pipe((e) => withOAuthCredentials(accessToken, e));
|
|
128
128
|
|
|
129
|
+
/**
|
|
130
|
+
* Cloudflare account IDs are 32 lowercase hex characters. Placeholder
|
|
131
|
+
* values ("", "-", "dummy", …) end up interpolated into API paths and
|
|
132
|
+
* surface as baffling `InvalidRoute: Could not route to
|
|
133
|
+
* /accounts/<value>/...` errors, so reject them up front with an
|
|
134
|
+
* actionable message instead.
|
|
135
|
+
*/
|
|
136
|
+
const ACCOUNT_ID_PATTERN = /^[0-9a-f]{32}$/i;
|
|
137
|
+
|
|
138
|
+
export const validateAccountId = (
|
|
139
|
+
accountId: string | undefined,
|
|
140
|
+
source: string,
|
|
141
|
+
): Effect.Effect<string, AuthError> => {
|
|
142
|
+
const trimmed = accountId?.trim() ?? "";
|
|
143
|
+
if (trimmed.length === 0) {
|
|
144
|
+
return Effect.fail(
|
|
145
|
+
new AuthError({
|
|
146
|
+
message:
|
|
147
|
+
`Cloudflare account ID is missing (${source}). ` +
|
|
148
|
+
"Set CLOUDFLARE_ACCOUNT_ID or re-run 'alchemy login' and provide your account ID " +
|
|
149
|
+
"(found in the Cloudflare dashboard under Workers & Pages → Account details).",
|
|
150
|
+
}),
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
if (!ACCOUNT_ID_PATTERN.test(trimmed)) {
|
|
154
|
+
return Effect.fail(
|
|
155
|
+
new AuthError({
|
|
156
|
+
message:
|
|
157
|
+
`'${trimmed}' is not a valid Cloudflare account ID (${source}) — expected 32 hex characters. ` +
|
|
158
|
+
"Copy the account ID from the Cloudflare dashboard (Workers & Pages → Account details) " +
|
|
159
|
+
"into CLOUDFLARE_ACCOUNT_ID or re-run 'alchemy login'.",
|
|
160
|
+
}),
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
return Effect.succeed(trimmed.toLowerCase());
|
|
164
|
+
};
|
|
165
|
+
|
|
129
166
|
const promptAccountId = () =>
|
|
130
167
|
getEnv("CLOUDFLARE_ACCOUNT_ID").pipe(
|
|
131
168
|
Effect.flatMap((envAccountId) =>
|
|
@@ -133,6 +170,10 @@ const promptAccountId = () =>
|
|
|
133
170
|
message: "Cloudflare Account ID (Enter to skip)",
|
|
134
171
|
placeholder: envAccountId ?? "",
|
|
135
172
|
defaultValue: envAccountId ?? "",
|
|
173
|
+
validate: (v) =>
|
|
174
|
+
v.trim().length === 0 || ACCOUNT_ID_PATTERN.test(v.trim())
|
|
175
|
+
? undefined
|
|
176
|
+
: "Expected a 32-character hex account ID (Workers & Pages → Account details)",
|
|
136
177
|
}).pipe(retryOnce),
|
|
137
178
|
),
|
|
138
179
|
);
|
|
@@ -324,7 +365,13 @@ export const CloudflareAuth = AuthProviderLayer<
|
|
|
324
365
|
Match.when(
|
|
325
366
|
{ method: "env" },
|
|
326
367
|
Effect.fn(function* () {
|
|
327
|
-
const accountId = yield* getEnvRequired(
|
|
368
|
+
const accountId = yield* getEnvRequired(
|
|
369
|
+
"CLOUDFLARE_ACCOUNT_ID",
|
|
370
|
+
).pipe(
|
|
371
|
+
Effect.flatMap((id) =>
|
|
372
|
+
validateAccountId(id, "from the CLOUDFLARE_ACCOUNT_ID env var"),
|
|
373
|
+
),
|
|
374
|
+
);
|
|
328
375
|
const apiToken = yield* getEnvRedacted("CLOUDFLARE_API_TOKEN");
|
|
329
376
|
if (apiToken) {
|
|
330
377
|
return {
|
|
@@ -363,29 +410,43 @@ export const CloudflareAuth = AuthProviderLayer<
|
|
|
363
410
|
"Cloudflare stored credentials not found. Run: alchemy-effect login --configure",
|
|
364
411
|
}),
|
|
365
412
|
)
|
|
366
|
-
: Effect.
|
|
367
|
-
|
|
413
|
+
: Effect.gen(function* () {
|
|
414
|
+
// The account ID prompt is skippable, so stored
|
|
415
|
+
// credentials may carry an empty accountId; fall
|
|
416
|
+
// back to the env var before validating.
|
|
417
|
+
const envAccountId = yield* getEnv(
|
|
418
|
+
"CLOUDFLARE_ACCOUNT_ID",
|
|
419
|
+
);
|
|
420
|
+
const accountId = yield* validateAccountId(
|
|
421
|
+
creds.accountId?.trim() || envAccountId,
|
|
422
|
+
`stored for profile '${profileName}'`,
|
|
423
|
+
);
|
|
424
|
+
return Match.value(creds).pipe(
|
|
368
425
|
Match.when({ type: "apiToken" }, (c) => ({
|
|
369
426
|
type: "apiToken" as const,
|
|
370
427
|
apiToken: Redacted.make(c.apiToken),
|
|
371
|
-
accountId
|
|
428
|
+
accountId,
|
|
372
429
|
source: { type: "stored" as const },
|
|
373
430
|
})),
|
|
374
431
|
Match.when({ type: "apiKey" }, (c) => ({
|
|
375
432
|
type: "apiKey" as const,
|
|
376
433
|
apiKey: Redacted.make(c.apiKey),
|
|
377
434
|
email: Redacted.make(c.email),
|
|
378
|
-
accountId
|
|
435
|
+
accountId,
|
|
379
436
|
source: { type: "stored" as const },
|
|
380
437
|
})),
|
|
381
438
|
Match.exhaustive,
|
|
382
|
-
)
|
|
383
|
-
),
|
|
439
|
+
);
|
|
440
|
+
}),
|
|
384
441
|
),
|
|
385
442
|
),
|
|
386
443
|
),
|
|
387
444
|
Match.when({ method: "oauth" }, (cfg) =>
|
|
388
445
|
Effect.gen(function* () {
|
|
446
|
+
const accountId = yield* validateAccountId(
|
|
447
|
+
cfg.accountId,
|
|
448
|
+
`configured for profile '${profileName}'`,
|
|
449
|
+
);
|
|
389
450
|
const creds = yield* store.read<OAuthClient.OAuthCredentials>(
|
|
390
451
|
profileName,
|
|
391
452
|
"cf-oauth",
|
|
@@ -421,7 +482,7 @@ export const CloudflareAuth = AuthProviderLayer<
|
|
|
421
482
|
type: "oauth" as const,
|
|
422
483
|
accessToken: Redacted.make(fresh.access),
|
|
423
484
|
expires: fresh.expires,
|
|
424
|
-
accountId
|
|
485
|
+
accountId,
|
|
425
486
|
source: { type: "oauth" as const },
|
|
426
487
|
};
|
|
427
488
|
}),
|
|
@@ -222,7 +222,9 @@ export type BotManagement = Resource<
|
|
|
222
222
|
*
|
|
223
223
|
* @see https://developers.cloudflare.com/bots/
|
|
224
224
|
*/
|
|
225
|
-
export const BotManagement = Resource<BotManagement>(TypeId
|
|
225
|
+
export const BotManagement = Resource<BotManagement>(TypeId, {
|
|
226
|
+
aliases: ["Cloudflare.BotManagement"],
|
|
227
|
+
});
|
|
226
228
|
|
|
227
229
|
/**
|
|
228
230
|
* Returns true if the given value is a BotManagement resource.
|
|
@@ -111,7 +111,9 @@ export type Reserve = Resource<
|
|
|
111
111
|
*
|
|
112
112
|
* @see https://developers.cloudflare.com/cache/advanced-configuration/cache-reserve/
|
|
113
113
|
*/
|
|
114
|
-
export const Reserve = Resource<Reserve>(TypeId
|
|
114
|
+
export const Reserve = Resource<Reserve>(TypeId, {
|
|
115
|
+
aliases: ["Cloudflare.Cache.CacheReserve"],
|
|
116
|
+
});
|
|
115
117
|
|
|
116
118
|
/**
|
|
117
119
|
* Returns true if the given value is a Reserve resource.
|
|
@@ -162,7 +162,9 @@ export type ClientCertificate = Resource<
|
|
|
162
162
|
*
|
|
163
163
|
* @see https://developers.cloudflare.com/ssl/client-certificates/
|
|
164
164
|
*/
|
|
165
|
-
export const ClientCertificate = Resource<ClientCertificate>(TypeId
|
|
165
|
+
export const ClientCertificate = Resource<ClientCertificate>(TypeId, {
|
|
166
|
+
aliases: ["Cloudflare.ClientCertificate"],
|
|
167
|
+
});
|
|
166
168
|
|
|
167
169
|
/**
|
|
168
170
|
* Returns true if the given value is a ClientCertificate resource.
|
|
@@ -159,8 +159,8 @@ export type Container<Id extends string = string> = Named<Id> & {
|
|
|
159
159
|
* runtime. Keeping them separate ensures the bundler only includes
|
|
160
160
|
* the tiny class in the DO's output.
|
|
161
161
|
*
|
|
162
|
-
* See the
|
|
163
|
-
*
|
|
162
|
+
* See the [Platform concept](/infrastructure-as-effects/functions-and-servers)
|
|
163
|
+
* page for how this fits into the async / effect / layer
|
|
164
164
|
* progression.
|
|
165
165
|
* @resource
|
|
166
166
|
* @product Containers
|
|
@@ -107,7 +107,9 @@ export type ContentScanning = Resource<
|
|
|
107
107
|
*
|
|
108
108
|
* @see https://developers.cloudflare.com/waf/detections/malicious-uploads/
|
|
109
109
|
*/
|
|
110
|
-
export const ContentScanning = Resource<ContentScanning>(TypeId
|
|
110
|
+
export const ContentScanning = Resource<ContentScanning>(TypeId, {
|
|
111
|
+
aliases: ["Cloudflare.ContentScanning"],
|
|
112
|
+
});
|
|
111
113
|
|
|
112
114
|
/**
|
|
113
115
|
* Returns true if the given value is a ContentScanning resource.
|
|
@@ -244,7 +244,9 @@ export type CustomCertificate = Resource<
|
|
|
244
244
|
*
|
|
245
245
|
* @see https://developers.cloudflare.com/ssl/edge-certificates/custom-certificates/
|
|
246
246
|
*/
|
|
247
|
-
export const CustomCertificate = Resource<CustomCertificate>(TypeId
|
|
247
|
+
export const CustomCertificate = Resource<CustomCertificate>(TypeId, {
|
|
248
|
+
aliases: ["Cloudflare.CustomCertificate"],
|
|
249
|
+
});
|
|
248
250
|
|
|
249
251
|
/**
|
|
250
252
|
* Returns true if the given value is a CustomCertificate resource.
|
|
@@ -280,6 +280,7 @@ export type CustomHostname = Resource<
|
|
|
280
280
|
*/
|
|
281
281
|
export const CustomHostname = Resource<CustomHostname>(
|
|
282
282
|
"Cloudflare.CustomHostname.CustomHostname",
|
|
283
|
+
{ aliases: ["Cloudflare.CustomHostname"] },
|
|
283
284
|
);
|
|
284
285
|
|
|
285
286
|
export const isCustomHostname = (value: unknown): value is CustomHostname =>
|
|
@@ -78,6 +78,7 @@ export type FallbackOrigin = Resource<
|
|
|
78
78
|
*/
|
|
79
79
|
export const FallbackOrigin = Resource<FallbackOrigin>(
|
|
80
80
|
"Cloudflare.CustomHostname.FallbackOrigin",
|
|
81
|
+
{ aliases: ["Cloudflare.FallbackOrigin"] },
|
|
81
82
|
);
|
|
82
83
|
|
|
83
84
|
export const isFallbackOrigin = (value: unknown): value is FallbackOrigin =>
|
|
@@ -132,7 +132,9 @@ export type CustomNameserver = Resource<
|
|
|
132
132
|
*
|
|
133
133
|
* @see https://developers.cloudflare.com/dns/nameservers/custom-nameservers/account-custom-nameservers/
|
|
134
134
|
*/
|
|
135
|
-
export const CustomNameserver = Resource<CustomNameserver>(TypeId
|
|
135
|
+
export const CustomNameserver = Resource<CustomNameserver>(TypeId, {
|
|
136
|
+
aliases: ["Cloudflare.CustomNameserver"],
|
|
137
|
+
});
|
|
136
138
|
|
|
137
139
|
/**
|
|
138
140
|
* Returns true if the given value is a CustomNameserver resource.
|
|
@@ -6,7 +6,7 @@ import type { HttpClient } from "effect/unstable/http/HttpClient";
|
|
|
6
6
|
import { isResolved } from "../../Diff.ts";
|
|
7
7
|
import { createPhysicalName } from "../../PhysicalName.ts";
|
|
8
8
|
import * as Provider from "../../Provider.ts";
|
|
9
|
-
import { Resource } from "../../Resource.ts";
|
|
9
|
+
import { isResourceOfType, Resource } from "../../Resource.ts";
|
|
10
10
|
import { listSqlFiles, readSqlFile } from "../../Sql/SqlFile.ts";
|
|
11
11
|
import { recordsEqual } from "../../Util/equal.ts";
|
|
12
12
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
@@ -17,7 +17,7 @@ import { cloneDatabase } from "./CloneDatabase.ts";
|
|
|
17
17
|
import { importD1Database } from "./ImportDatabase.ts";
|
|
18
18
|
|
|
19
19
|
export const isDatabase = (value: unknown): value is Database =>
|
|
20
|
-
|
|
20
|
+
isResourceOfType(value, "Cloudflare.D1Database");
|
|
21
21
|
|
|
22
22
|
export type Jurisdiction = "default" | "eu" | "fedramp";
|
|
23
23
|
export type PrimaryLocationHint =
|
|
@@ -228,7 +228,9 @@ export type AccountDnsSettings = Resource<
|
|
|
228
228
|
* });
|
|
229
229
|
* ```
|
|
230
230
|
*/
|
|
231
|
-
export const AccountDnsSettings = Resource<AccountDnsSettings>(TypeId
|
|
231
|
+
export const AccountDnsSettings = Resource<AccountDnsSettings>(TypeId, {
|
|
232
|
+
aliases: ["Cloudflare.Dns.AccountSettings"],
|
|
233
|
+
});
|
|
232
234
|
|
|
233
235
|
/**
|
|
234
236
|
* Returns true if the given value is an AccountDnsSettings resource.
|
|
@@ -190,7 +190,9 @@ export type Dnssec = Resource<
|
|
|
190
190
|
* });
|
|
191
191
|
* ```
|
|
192
192
|
*/
|
|
193
|
-
export const Dnssec = Resource<Dnssec>(TypeId
|
|
193
|
+
export const Dnssec = Resource<Dnssec>(TypeId, {
|
|
194
|
+
aliases: ["Cloudflare.Dns.Dnssec"],
|
|
195
|
+
});
|
|
194
196
|
|
|
195
197
|
/**
|
|
196
198
|
* Returns true if the given value is a Dnssec resource.
|
|
@@ -238,7 +238,9 @@ export type Firewall = Resource<
|
|
|
238
238
|
*
|
|
239
239
|
* @see https://developers.cloudflare.com/dns/dns-firewall/
|
|
240
240
|
*/
|
|
241
|
-
export const Firewall = Resource<Firewall>(TypeId
|
|
241
|
+
export const Firewall = Resource<Firewall>(TypeId, {
|
|
242
|
+
aliases: ["Cloudflare.DnsFirewall"],
|
|
243
|
+
});
|
|
242
244
|
|
|
243
245
|
/**
|
|
244
246
|
* Returns true if the given value is a DnsFirewall resource.
|
|
@@ -163,7 +163,9 @@ export type Record = Resource<
|
|
|
163
163
|
* });
|
|
164
164
|
* ```
|
|
165
165
|
*/
|
|
166
|
-
export const Record = Resource<Record>("Cloudflare.DNS.Record"
|
|
166
|
+
export const Record = Resource<Record>("Cloudflare.DNS.Record", {
|
|
167
|
+
aliases: ["Cloudflare.Dns.Record"],
|
|
168
|
+
});
|
|
167
169
|
|
|
168
170
|
export const RecordProvider = () =>
|
|
169
171
|
Provider.succeed(Record, {
|
|
@@ -83,7 +83,9 @@ export type View = Resource<
|
|
|
83
83
|
*
|
|
84
84
|
* @see https://developers.cloudflare.com/dns/internal-dns/
|
|
85
85
|
*/
|
|
86
|
-
export const View = Resource<View>(DnsViewTypeId
|
|
86
|
+
export const View = Resource<View>(DnsViewTypeId, {
|
|
87
|
+
aliases: ["Cloudflare.Dns.View"],
|
|
88
|
+
});
|
|
87
89
|
|
|
88
90
|
/**
|
|
89
91
|
* Returns true if the given value is a View resource.
|
|
@@ -252,7 +252,9 @@ export type ZoneDnsSettings = Resource<
|
|
|
252
252
|
* });
|
|
253
253
|
* ```
|
|
254
254
|
*/
|
|
255
|
-
export const ZoneDnsSettings = Resource<ZoneDnsSettings>(TypeId
|
|
255
|
+
export const ZoneDnsSettings = Resource<ZoneDnsSettings>(TypeId, {
|
|
256
|
+
aliases: ["Cloudflare.Dns.ZoneSettings"],
|
|
257
|
+
});
|
|
256
258
|
|
|
257
259
|
/**
|
|
258
260
|
* Returns true if the given value is a ZoneDnsSettings resource.
|
|
@@ -84,7 +84,9 @@ export type ZoneTransferAcl = Resource<
|
|
|
84
84
|
*
|
|
85
85
|
* @see https://developers.cloudflare.com/dns/zone-setups/zone-transfers/
|
|
86
86
|
*/
|
|
87
|
-
export const ZoneTransferAcl = Resource<ZoneTransferAcl>(TypeId
|
|
87
|
+
export const ZoneTransferAcl = Resource<ZoneTransferAcl>(TypeId, {
|
|
88
|
+
aliases: ["Cloudflare.Dns.ZoneTransferAcl"],
|
|
89
|
+
});
|
|
88
90
|
|
|
89
91
|
/**
|
|
90
92
|
* Returns true if the given value is a ZoneTransferAcl resource.
|
|
@@ -100,7 +100,9 @@ export type ZoneTransferIncoming = Resource<
|
|
|
100
100
|
*
|
|
101
101
|
* @see https://developers.cloudflare.com/dns/zone-setups/zone-transfers/setup/
|
|
102
102
|
*/
|
|
103
|
-
export const ZoneTransferIncoming = Resource<ZoneTransferIncoming>(TypeId
|
|
103
|
+
export const ZoneTransferIncoming = Resource<ZoneTransferIncoming>(TypeId, {
|
|
104
|
+
aliases: ["Cloudflare.Dns.ZoneTransferIncoming"],
|
|
105
|
+
});
|
|
104
106
|
|
|
105
107
|
/**
|
|
106
108
|
* Returns true if the given value is a ZoneTransferIncoming resource.
|
|
@@ -112,7 +112,9 @@ export type ZoneTransferOutgoing = Resource<
|
|
|
112
112
|
*
|
|
113
113
|
* @see https://developers.cloudflare.com/dns/zone-setups/zone-transfers/setup/
|
|
114
114
|
*/
|
|
115
|
-
export const ZoneTransferOutgoing = Resource<ZoneTransferOutgoing>(TypeId
|
|
115
|
+
export const ZoneTransferOutgoing = Resource<ZoneTransferOutgoing>(TypeId, {
|
|
116
|
+
aliases: ["Cloudflare.Dns.ZoneTransferOutgoing"],
|
|
117
|
+
});
|
|
116
118
|
|
|
117
119
|
/**
|
|
118
120
|
* Returns true if the given value is a ZoneTransferOutgoing resource.
|
|
@@ -119,7 +119,9 @@ export type ZoneTransferPeer = Resource<
|
|
|
119
119
|
*
|
|
120
120
|
* @see https://developers.cloudflare.com/dns/zone-setups/zone-transfers/
|
|
121
121
|
*/
|
|
122
|
-
export const ZoneTransferPeer = Resource<ZoneTransferPeer>(TypeId
|
|
122
|
+
export const ZoneTransferPeer = Resource<ZoneTransferPeer>(TypeId, {
|
|
123
|
+
aliases: ["Cloudflare.Dns.ZoneTransferPeer"],
|
|
124
|
+
});
|
|
123
125
|
|
|
124
126
|
/**
|
|
125
127
|
* Returns true if the given value is a ZoneTransferPeer resource.
|
|
@@ -91,7 +91,9 @@ export type ZoneTransferTsig = Resource<
|
|
|
91
91
|
*
|
|
92
92
|
* @see https://developers.cloudflare.com/dns/zone-setups/zone-transfers/
|
|
93
93
|
*/
|
|
94
|
-
export const ZoneTransferTsig = Resource<ZoneTransferTsig>(TypeId
|
|
94
|
+
export const ZoneTransferTsig = Resource<ZoneTransferTsig>(TypeId, {
|
|
95
|
+
aliases: ["Cloudflare.Dns.ZoneTransferTsig"],
|
|
96
|
+
});
|
|
95
97
|
|
|
96
98
|
/**
|
|
97
99
|
* Returns true if the given value is a ZoneTransferTsig resource.
|
|
@@ -55,7 +55,9 @@ export type Address = Resource<
|
|
|
55
55
|
* Cloudflare sends a verification email when the address is first created.
|
|
56
56
|
* The address must be verified before it can receive routed mail.
|
|
57
57
|
*/
|
|
58
|
-
export const Address = Resource<Address>("Cloudflare.Email.Address"
|
|
58
|
+
export const Address = Resource<Address>("Cloudflare.Email.Address", {
|
|
59
|
+
aliases: ["Cloudflare.EmailAddress"],
|
|
60
|
+
});
|
|
59
61
|
|
|
60
62
|
const toAttrs = (
|
|
61
63
|
accountId: string,
|
|
@@ -124,7 +124,9 @@ export type CatchAll = Resource<
|
|
|
124
124
|
* });
|
|
125
125
|
* ```
|
|
126
126
|
*/
|
|
127
|
-
export const CatchAll = Resource<CatchAll>(CatchAllTypeId
|
|
127
|
+
export const CatchAll = Resource<CatchAll>(CatchAllTypeId, {
|
|
128
|
+
aliases: ["Cloudflare.EmailCatchAll"],
|
|
129
|
+
});
|
|
128
130
|
|
|
129
131
|
/**
|
|
130
132
|
* Returns true if the given value is an CatchAll resource.
|
|
@@ -178,7 +180,10 @@ export const CatchAllProvider = () =>
|
|
|
178
180
|
|
|
179
181
|
read: Effect.fn(function* ({ output, olds }) {
|
|
180
182
|
const zoneId =
|
|
181
|
-
|
|
183
|
+
// `olds.zone` may be `undefined` when a `creating` row was persisted
|
|
184
|
+
// before upstream Outputs resolved — report "not found" then.
|
|
185
|
+
output?.zoneId ??
|
|
186
|
+
(olds?.zone !== undefined ? yield* resolve(olds.zone) : undefined);
|
|
182
187
|
if (!zoneId) return undefined;
|
|
183
188
|
const observed = yield* emailRouting.getRuleCatchAll({ zoneId }).pipe(
|
|
184
189
|
// Zone deleted out-of-band (or the token can no longer see it) —
|
|
@@ -170,7 +170,9 @@ export type Domain = Resource<
|
|
|
170
170
|
*
|
|
171
171
|
* @see https://developers.cloudflare.com/cloudflare-one/email-security/
|
|
172
172
|
*/
|
|
173
|
-
export const Domain = Resource<Domain>(EmailSecurityDomainTypeId
|
|
173
|
+
export const Domain = Resource<Domain>(EmailSecurityDomainTypeId, {
|
|
174
|
+
aliases: ["Cloudflare.EmailSecurity.Domain"],
|
|
175
|
+
});
|
|
174
176
|
|
|
175
177
|
/**
|
|
176
178
|
* Returns true if the given value is an Domain resource.
|
|
@@ -107,6 +107,7 @@ export type ImpersonationRegistryEntry = Resource<
|
|
|
107
107
|
*/
|
|
108
108
|
export const ImpersonationRegistryEntry = Resource<ImpersonationRegistryEntry>(
|
|
109
109
|
EmailSecurityImpersonationRegistryEntryTypeId,
|
|
110
|
+
{ aliases: ["Cloudflare.EmailSecurity.ImpersonationRegistryEntry"] },
|
|
110
111
|
);
|
|
111
112
|
|
|
112
113
|
/**
|
|
@@ -71,7 +71,9 @@ export type Routing = Resource<
|
|
|
71
71
|
* });
|
|
72
72
|
* ```
|
|
73
73
|
*/
|
|
74
|
-
export const Routing = Resource<Routing>("Cloudflare.Email.Routing"
|
|
74
|
+
export const Routing = Resource<Routing>("Cloudflare.Email.Routing", {
|
|
75
|
+
aliases: ["Cloudflare.EmailRouting"],
|
|
76
|
+
});
|
|
75
77
|
|
|
76
78
|
const resolve = Effect.fn(function* (zone: Reference) {
|
|
77
79
|
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
@@ -84,7 +84,9 @@ export type Rule = Resource<
|
|
|
84
84
|
* });
|
|
85
85
|
* ```
|
|
86
86
|
*/
|
|
87
|
-
export const Rule = Resource<Rule>("Cloudflare.Email.Rule"
|
|
87
|
+
export const Rule = Resource<Rule>("Cloudflare.Email.Rule", {
|
|
88
|
+
aliases: ["Cloudflare.EmailRule"],
|
|
89
|
+
});
|
|
88
90
|
|
|
89
91
|
export const RuleProvider = () =>
|
|
90
92
|
Provider.succeed(Rule, {
|
|
@@ -70,11 +70,18 @@ export const fromCloudflareFetcher = (
|
|
|
70
70
|
fetcher: cf.Fetcher | globalThis.Fetcher,
|
|
71
71
|
): Fetcher => {
|
|
72
72
|
const fetch = (request: Request) =>
|
|
73
|
-
Effect.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
73
|
+
Effect.suspend(() => {
|
|
74
|
+
// Clone per attempt, keeping `request` pristine: the HandlerNotReady
|
|
75
|
+
// retry below re-runs this suspend, and replaying a Request whose body
|
|
76
|
+
// the failed attempt already consumed makes workerd reject with
|
|
77
|
+
// "TypeError: Cannot reconstruct a Request with a used body".
|
|
78
|
+
const attempt = request.clone() as Request;
|
|
79
|
+
return Effect.promise((signal) =>
|
|
80
|
+
(fetcher as globalThis.Fetcher).fetch(attempt, {
|
|
81
|
+
signal: signal,
|
|
82
|
+
}),
|
|
83
|
+
);
|
|
84
|
+
}).pipe(
|
|
78
85
|
// The "Handler does not export a fetch()" window is a property of
|
|
79
86
|
// invoking a freshly-deployed Cloudflare binding, so it is ridden out
|
|
80
87
|
// HERE — the one adapter every binding flows through — rather than in any
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import * as flagship from "@distilled.cloud/cloudflare/flagship";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
|
-
import * as Predicate from "effect/Predicate";
|
|
4
3
|
import * as Stream from "effect/Stream";
|
|
5
4
|
import { createPhysicalName } from "../../PhysicalName.ts";
|
|
6
5
|
import * as Provider from "../../Provider.ts";
|
|
7
|
-
import { Resource } from "../../Resource.ts";
|
|
6
|
+
import { isResourceOfType, Resource } from "../../Resource.ts";
|
|
8
7
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
9
8
|
import type { Providers } from "../Providers.ts";
|
|
10
9
|
|
|
@@ -150,7 +149,7 @@ export const App = Resource<App>(TypeId);
|
|
|
150
149
|
* Returns true if the given value is a Flagship App resource.
|
|
151
150
|
*/
|
|
152
151
|
export const isApp = (value: unknown): value is App =>
|
|
153
|
-
|
|
152
|
+
isResourceOfType(value, TypeId);
|
|
154
153
|
|
|
155
154
|
export const AppProvider = () =>
|
|
156
155
|
Provider.succeed(App, {
|
|
@@ -157,7 +157,9 @@ export type DetectionSettings = Resource<
|
|
|
157
157
|
*
|
|
158
158
|
* @see https://developers.cloudflare.com/bots/additional-configurations/fraud-detection/
|
|
159
159
|
*/
|
|
160
|
-
export const DetectionSettings = Resource<DetectionSettings>(TypeId
|
|
160
|
+
export const DetectionSettings = Resource<DetectionSettings>(TypeId, {
|
|
161
|
+
aliases: ["Cloudflare.FraudDetectionSettings"],
|
|
162
|
+
});
|
|
161
163
|
|
|
162
164
|
/**
|
|
163
165
|
* Returns true if the given value is a DetectionSettings resource.
|
|
@@ -129,7 +129,9 @@ export type GoogleTagGateway = Resource<
|
|
|
129
129
|
*
|
|
130
130
|
* @see https://developers.cloudflare.com/google-tag-gateway/
|
|
131
131
|
*/
|
|
132
|
-
export const GoogleTagGateway = Resource<GoogleTagGateway>(TypeId
|
|
132
|
+
export const GoogleTagGateway = Resource<GoogleTagGateway>(TypeId, {
|
|
133
|
+
aliases: ["Cloudflare.GoogleTagGateway"],
|
|
134
|
+
});
|
|
133
135
|
|
|
134
136
|
/**
|
|
135
137
|
* Returns true if the given value is a GoogleTagGateway resource.
|
|
@@ -187,7 +189,10 @@ export const GoogleTagGatewayProvider = () =>
|
|
|
187
189
|
|
|
188
190
|
read: Effect.fn(function* ({ output, olds }) {
|
|
189
191
|
const zoneId =
|
|
190
|
-
|
|
192
|
+
// `olds.zone` may be `undefined` when a `creating` row was persisted
|
|
193
|
+
// before upstream Outputs resolved — report "not found" then.
|
|
194
|
+
output?.zoneId ??
|
|
195
|
+
(olds?.zone !== undefined ? yield* resolve(olds.zone) : undefined);
|
|
191
196
|
if (!zoneId) return undefined;
|
|
192
197
|
const observed = yield* googleTagGateway.getConfig({ zoneId }).pipe(
|
|
193
198
|
// Zone deleted out-of-band — the config is gone with it.
|
|
@@ -293,7 +293,9 @@ export type Healthcheck = Resource<TypeId, Props, Attributes, never, Providers>;
|
|
|
293
293
|
*
|
|
294
294
|
* @see https://developers.cloudflare.com/health-checks/
|
|
295
295
|
*/
|
|
296
|
-
export const Healthcheck = Resource<Healthcheck>(TypeId
|
|
296
|
+
export const Healthcheck = Resource<Healthcheck>(TypeId, {
|
|
297
|
+
aliases: ["Cloudflare.Healthcheck"],
|
|
298
|
+
});
|
|
297
299
|
|
|
298
300
|
/**
|
|
299
301
|
* Returns true if the given value is a Healthcheck resource.
|
|
@@ -150,7 +150,9 @@ export type HostnameTlsSetting = Resource<
|
|
|
150
150
|
* @see https://developers.cloudflare.com/ssl/edge-certificates/additional-options/custom-metadata/
|
|
151
151
|
* @see https://developers.cloudflare.com/api/resources/hostnames/subresources/settings/subresources/tls/
|
|
152
152
|
*/
|
|
153
|
-
export const HostnameTlsSetting = Resource<HostnameTlsSetting>(TypeId
|
|
153
|
+
export const HostnameTlsSetting = Resource<HostnameTlsSetting>(TypeId, {
|
|
154
|
+
aliases: ["Cloudflare.HostnameTlsSetting"],
|
|
155
|
+
});
|
|
154
156
|
|
|
155
157
|
/**
|
|
156
158
|
* Returns true if the given value is a HostnameTlsSetting resource.
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as hyperdrive from "@distilled.cloud/cloudflare/hyperdrive";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
|
-
import * as Predicate from "effect/Predicate";
|
|
4
3
|
import * as Redacted from "effect/Redacted";
|
|
5
4
|
import * as Stream from "effect/Stream";
|
|
6
5
|
|
|
@@ -8,7 +7,7 @@ import { AlchemyContext } from "../../AlchemyContext.ts";
|
|
|
8
7
|
import { isResolved } from "../../Diff.ts";
|
|
9
8
|
import { createPhysicalName } from "../../PhysicalName.ts";
|
|
10
9
|
import * as Provider from "../../Provider.ts";
|
|
11
|
-
import { Resource } from "../../Resource.ts";
|
|
10
|
+
import { isResourceOfType, Resource } from "../../Resource.ts";
|
|
12
11
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
13
12
|
import { generateLocalId, isLiveId } from "../LocalRuntime.ts";
|
|
14
13
|
import type { Providers } from "../Providers.ts";
|
|
@@ -160,8 +159,7 @@ export type Connection = Resource<
|
|
|
160
159
|
export const Connection = Resource<Connection>("Cloudflare.Hyperdrive");
|
|
161
160
|
|
|
162
161
|
export const isHyperdriveConnection = (value: unknown): value is Connection =>
|
|
163
|
-
|
|
164
|
-
value.Type === "Cloudflare.Hyperdrive";
|
|
162
|
+
isResourceOfType(value, "Cloudflare.Hyperdrive");
|
|
165
163
|
|
|
166
164
|
export const ConnectionProvider = () =>
|
|
167
165
|
Provider.succeed(Connection, {
|