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
|
@@ -10,19 +10,193 @@ import { isWorkerEvent, Worker } from "./Worker.ts";
|
|
|
10
10
|
/**
|
|
11
11
|
* Subscribe to Cloudflare Cron Triggers with an Effect handler.
|
|
12
12
|
*
|
|
13
|
-
*
|
|
13
|
+
* A single call wires both pieces of a scheduled Worker:
|
|
14
|
+
*
|
|
15
|
+
* - **Deploy-time**: attaches the cron expression to the host Worker's
|
|
16
|
+
* Cron Triggers.
|
|
17
|
+
* - **Runtime**: registers a `scheduled` listener that runs your Effect on
|
|
18
|
+
* each fire. The handler receives Cloudflare's `ScheduledController`,
|
|
19
|
+
* which has three members:
|
|
20
|
+
* - `controller.scheduledTime` — the fire time in milliseconds since the
|
|
21
|
+
* Unix epoch.
|
|
22
|
+
* - `controller.cron` — the cron expression that fired.
|
|
23
|
+
* - `controller.noRetry()` — opts the invocation out of Cloudflare's
|
|
24
|
+
* retry-on-failure. Only meaningful when the scheduled invocation can
|
|
25
|
+
* actually fail — see the failure & retry section below.
|
|
26
|
+
*
|
|
27
|
+
* Each member has its own section below with an Effect example first and
|
|
28
|
+
* an async example second.
|
|
29
|
+
*
|
|
30
|
+
* Requires `CronEventSourceLive` provided on the Worker's Effect.
|
|
31
|
+
*
|
|
32
|
+
* **Failure & retry semantics**: a failing handler won't crash the Worker —
|
|
33
|
+
* the event source catches the failure and moves on. That also means
|
|
34
|
+
* Cloudflare never observes a failed invocation, so its platform-level
|
|
35
|
+
* retry (and `controller.noRetry()`) never comes into play here. Express
|
|
36
|
+
* retry declaratively with `Effect.retry` inside the handler, and log or
|
|
37
|
+
* report errors if you need visibility into failed runs. In async Workers
|
|
38
|
+
* the opposite holds: a `scheduled` handler that throws (or rejects) marks
|
|
39
|
+
* the invocation failed and Cloudflare may retry it — call
|
|
40
|
+
* `controller.noRetry()` before rethrowing to suppress that.
|
|
41
|
+
*
|
|
42
|
+
* Async (non-Effect) Workers don't use `cron` — they attach schedules with
|
|
43
|
+
* the Worker's `crons` prop and export their own `scheduled` handler from
|
|
44
|
+
* the entry module (each section below includes the async variant). Pass
|
|
45
|
+
* `crons: []` to remove all Cron Triggers from a Worker.
|
|
14
46
|
*
|
|
15
|
-
* - **Runtime**: registers a `scheduled` listener on the Worker.
|
|
16
|
-
* - **Deploy-time**: attaches the cron expression to the host Worker.
|
|
17
47
|
* @binding
|
|
18
48
|
* @product Workers
|
|
19
49
|
* @category Workers & Compute
|
|
20
|
-
*
|
|
50
|
+
*
|
|
51
|
+
* @section Declare a schedule
|
|
52
|
+
* @example Effect-native Worker (recommended)
|
|
53
|
+
* ```typescript
|
|
54
|
+
* import * as Cloudflare from "alchemy/Cloudflare";
|
|
55
|
+
* import * as Effect from "effect/Effect";
|
|
56
|
+
* import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
|
|
57
|
+
*
|
|
58
|
+
* export default Cloudflare.Worker(
|
|
59
|
+
* "Worker",
|
|
60
|
+
* { main: import.meta.url },
|
|
61
|
+
* Effect.gen(function* () {
|
|
62
|
+
* yield* Cloudflare.Workers.cron("0 12 * * *", () =>
|
|
63
|
+
* Effect.log("cron fired"),
|
|
64
|
+
* );
|
|
65
|
+
*
|
|
66
|
+
* return {
|
|
67
|
+
* fetch: Effect.succeed(HttpServerResponse.text("ok")),
|
|
68
|
+
* };
|
|
69
|
+
* }).pipe(Effect.provide(Cloudflare.Workers.CronEventSourceLive)),
|
|
70
|
+
* );
|
|
71
|
+
* ```
|
|
72
|
+
*
|
|
73
|
+
* @example Async Worker — `crons` prop + exported `scheduled` handler
|
|
74
|
+
* ```typescript
|
|
75
|
+
* // alchemy.run.ts — attach the cron expressions at deploy time
|
|
76
|
+
* export const Worker = Cloudflare.Worker("Worker", {
|
|
77
|
+
* main: "./src/worker.ts",
|
|
78
|
+
* crons: ["0 12 * * *"],
|
|
79
|
+
* });
|
|
80
|
+
*
|
|
81
|
+
* // src/worker.ts — the entry module handles the fires itself
|
|
82
|
+
* export default {
|
|
83
|
+
* async scheduled(controller: ScheduledController) {
|
|
84
|
+
* console.log("cron fired");
|
|
85
|
+
* },
|
|
86
|
+
* };
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
89
|
+
* @section `controller.scheduledTime` — the fire time
|
|
90
|
+
* @example Effect: record each fire on a Durable Object
|
|
91
|
+
* ```typescript
|
|
92
|
+
* export default class Worker extends Cloudflare.Worker<Worker>()(
|
|
93
|
+
* "Worker",
|
|
94
|
+
* { main: import.meta.url },
|
|
95
|
+
* Effect.gen(function* () {
|
|
96
|
+
* const counters = yield* CronCounter;
|
|
97
|
+
*
|
|
98
|
+
* yield* Cloudflare.Workers.cron("0 * * * *", (controller) =>
|
|
99
|
+
* counters.getByName("default").record(controller.scheduledTime),
|
|
100
|
+
* );
|
|
101
|
+
*
|
|
102
|
+
* return {
|
|
103
|
+
* fetch: Effect.gen(function* () {
|
|
104
|
+
* const { times } = yield* counters.getByName("default").snapshot();
|
|
105
|
+
* return yield* HttpServerResponse.json({ times });
|
|
106
|
+
* }),
|
|
107
|
+
* };
|
|
108
|
+
* }).pipe(Effect.provide(Cloudflare.Workers.CronEventSourceLive)),
|
|
109
|
+
* ) {}
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
* @example Async: use the fire time as an idempotency key
|
|
113
|
+
* ```typescript
|
|
114
|
+
* // scheduledTime is the time the fire was *scheduled* for (not when it
|
|
115
|
+
* // ran), so it is stable across retries of the same fire — a natural
|
|
116
|
+
* // idempotency key for at-most-once side effects.
|
|
117
|
+
* export default {
|
|
118
|
+
* async scheduled(controller: ScheduledController, env: WorkerEnv) {
|
|
119
|
+
* const key = `run:${controller.scheduledTime}`;
|
|
120
|
+
* if (await env.RUNS.get(key)) return;
|
|
121
|
+
* await syncFeeds();
|
|
122
|
+
* await env.RUNS.put(key, "done");
|
|
123
|
+
* },
|
|
124
|
+
* };
|
|
125
|
+
* ```
|
|
126
|
+
*
|
|
127
|
+
* @section `controller.cron` — dispatch multiple schedules
|
|
128
|
+
* @example Effect: one handler per expression
|
|
129
|
+
* ```typescript
|
|
130
|
+
* // Each handler only runs for fires of its own expression — the listener
|
|
131
|
+
* // checks controller.cron, so a midnight fire never runs the hourly handler.
|
|
132
|
+
* yield* Cloudflare.Workers.cron("0 * * * *", () => syncFeeds);
|
|
133
|
+
* yield* Cloudflare.Workers.cron("0 0 * * *", () => purgeExpired);
|
|
134
|
+
* ```
|
|
135
|
+
*
|
|
136
|
+
* @example Async: switch on `controller.cron`
|
|
21
137
|
* ```typescript
|
|
22
|
-
*
|
|
23
|
-
*
|
|
138
|
+
* export const Worker = Cloudflare.Worker("Worker", {
|
|
139
|
+
* main: "./src/worker.ts",
|
|
140
|
+
* crons: ["0 * * * *", "0 0 * * *"],
|
|
141
|
+
* });
|
|
142
|
+
*
|
|
143
|
+
* // src/worker.ts — one scheduled handler receives every fire
|
|
144
|
+
* export default {
|
|
145
|
+
* async scheduled(controller: ScheduledController) {
|
|
146
|
+
* switch (controller.cron) {
|
|
147
|
+
* case "0 * * * *":
|
|
148
|
+
* await syncFeeds();
|
|
149
|
+
* break;
|
|
150
|
+
* case "0 0 * * *":
|
|
151
|
+
* await purgeExpired();
|
|
152
|
+
* break;
|
|
153
|
+
* }
|
|
154
|
+
* },
|
|
155
|
+
* };
|
|
156
|
+
* ```
|
|
157
|
+
*
|
|
158
|
+
* @section `controller.noRetry()` — failure & retry control
|
|
159
|
+
* @example Effect: bound retries with `Effect.retry`
|
|
160
|
+
* ```typescript
|
|
161
|
+
* import * as Schedule from "effect/Schedule";
|
|
162
|
+
*
|
|
163
|
+
* // The event source reports the invocation as successful even when the
|
|
164
|
+
* // handler fails, so Cloudflare's platform retry rarely engages for Effect
|
|
165
|
+
* // handlers — Effect.retry is the primary retry control. Calling
|
|
166
|
+
* // controller.noRetry() once retries are exhausted defensively covers
|
|
167
|
+
* // anything that can still mark the invocation failed (e.g. a failing
|
|
168
|
+
* // waitUntil task).
|
|
169
|
+
* yield* Cloudflare.Workers.cron("0 * * * *", (controller) =>
|
|
170
|
+
* syncFeeds.pipe(
|
|
171
|
+
* Effect.retry({ schedule: Schedule.exponential("1 second"), times: 3 }),
|
|
172
|
+
* Effect.tapError((error) =>
|
|
173
|
+
* Effect.logError("syncFeeds failed permanently", error).pipe(
|
|
174
|
+
* Effect.andThen(Effect.sync(() => controller.noRetry())),
|
|
175
|
+
* ),
|
|
176
|
+
* ),
|
|
177
|
+
* ),
|
|
24
178
|
* );
|
|
25
179
|
* ```
|
|
180
|
+
*
|
|
181
|
+
* @example Async: suppress retry for permanent failures
|
|
182
|
+
* ```typescript
|
|
183
|
+
* // src/worker.ts — a thrown error marks the invocation failed and
|
|
184
|
+
* // Cloudflare may retry it; noRetry() opts this fire out of that.
|
|
185
|
+
* export default {
|
|
186
|
+
* async scheduled(controller: ScheduledController) {
|
|
187
|
+
* try {
|
|
188
|
+
* await syncFeeds();
|
|
189
|
+
* } catch (error) {
|
|
190
|
+
* if (isPermanentFailure(error)) {
|
|
191
|
+
* controller.noRetry();
|
|
192
|
+
* }
|
|
193
|
+
* throw error; // still recorded as a failed invocation
|
|
194
|
+
* }
|
|
195
|
+
* },
|
|
196
|
+
* };
|
|
197
|
+
* ```
|
|
198
|
+
*
|
|
199
|
+
* @see https://developers.cloudflare.com/workers/configuration/cron-triggers/
|
|
26
200
|
*/
|
|
27
201
|
export const cron = <Req = never>(
|
|
28
202
|
expression: string,
|
|
@@ -230,7 +230,7 @@ export class DurableObjectScope extends Context.Service<
|
|
|
230
230
|
* ```
|
|
231
231
|
*
|
|
232
232
|
* There are two ways to define a Durable Object. See the
|
|
233
|
-
*
|
|
233
|
+
* [Functions & Servers](/infrastructure-as-effects/functions-and-servers) page
|
|
234
234
|
* for the full explanation.
|
|
235
235
|
*
|
|
236
236
|
* - **Inline** — Effect implementation passed directly, single file.
|
|
@@ -518,6 +518,41 @@ export class DurableObjectScope extends Context.Service<
|
|
|
518
518
|
* const value = yield* state.storage.get("counter");
|
|
519
519
|
* ```
|
|
520
520
|
*
|
|
521
|
+
* @section Background Work & Scopes
|
|
522
|
+
* Every RPC call and fetch into a Durable Object gets its own Effect
|
|
523
|
+
* `Scope`. When the method finishes, the bridge closes that scope and
|
|
524
|
+
* registers the close promise with workerd's `state.waitUntil` — so
|
|
525
|
+
* finalizers added with `Effect.addFinalizer` inside a method run *after*
|
|
526
|
+
* the result is returned to the caller, without blocking it, and the
|
|
527
|
+
* object stays alive until they settle.
|
|
528
|
+
*
|
|
529
|
+
* For ad-hoc background work, `state.waitUntil(effect)` forks an Effect
|
|
530
|
+
* with the caller's full context and keeps the object alive until it
|
|
531
|
+
* settles.
|
|
532
|
+
*
|
|
533
|
+
* Attach cleanup to method scopes, not the constructor (init) closure —
|
|
534
|
+
* the constructor runs once per in-memory instance under
|
|
535
|
+
* `blockConcurrencyWhile`, and its scope is not tied to any call.
|
|
536
|
+
*
|
|
537
|
+
* @example Responding before finishing the work
|
|
538
|
+
* ```typescript
|
|
539
|
+
* return {
|
|
540
|
+
* record: Effect.fn(function* (entry: string) {
|
|
541
|
+
* // runs after `record` returns; the DO stays alive until it settles
|
|
542
|
+
* yield* Effect.addFinalizer(() =>
|
|
543
|
+
* state.storage.put(`audit:${entry}`, Date.now()).pipe(Effect.ignore),
|
|
544
|
+
* );
|
|
545
|
+
* return "accepted" as const;
|
|
546
|
+
* }),
|
|
547
|
+
*
|
|
548
|
+
* refresh: Effect.fn(function* () {
|
|
549
|
+
* // same idea, explicit form
|
|
550
|
+
* yield* state.waitUntil(recomputeExpensiveView());
|
|
551
|
+
* return "scheduled" as const;
|
|
552
|
+
* }),
|
|
553
|
+
* };
|
|
554
|
+
* ```
|
|
555
|
+
*
|
|
521
556
|
* @section WebSocket Hibernation
|
|
522
557
|
* Durable Objects support WebSocket hibernation — the runtime can
|
|
523
558
|
* evict the object from memory while keeping connections open. Use
|
|
@@ -14,6 +14,19 @@ export class DurableObjectState extends Context.Service<
|
|
|
14
14
|
readonly id: cf.DurableObjectId;
|
|
15
15
|
readonly storage: DurableObjectStorage;
|
|
16
16
|
container?: cf.Container;
|
|
17
|
+
/**
|
|
18
|
+
* Run an Effect in the background without blocking the current event,
|
|
19
|
+
* keeping the Durable Object alive until it settles. The Effect runs with
|
|
20
|
+
* the caller's full context (services, tracing), and the resulting
|
|
21
|
+
* promise is registered with workerd's `state.waitUntil`.
|
|
22
|
+
*/
|
|
23
|
+
waitUntil<A, E, R>(
|
|
24
|
+
effect: Effect.Effect<A, E, R>,
|
|
25
|
+
): Effect.Effect<void, never, R | RuntimeContext>;
|
|
26
|
+
/**
|
|
27
|
+
* The raw workerd DurableObjectState, for interop with async APIs.
|
|
28
|
+
*/
|
|
29
|
+
readonly raw: cf.DurableObjectState;
|
|
17
30
|
blockConcurrencyWhile<T>(
|
|
18
31
|
callback: () => Effect.Effect<T, never, RuntimeContext>,
|
|
19
32
|
): Effect.Effect<T, never, RuntimeContext>;
|
|
@@ -54,6 +67,18 @@ export const fromDurableObjectState = (
|
|
|
54
67
|
id: state.id,
|
|
55
68
|
container: state.container,
|
|
56
69
|
storage: fromDurableObjectStorage(state.storage),
|
|
70
|
+
raw: state,
|
|
71
|
+
waitUntil: <A, E, R>(effect: Effect.Effect<A, E, R>) =>
|
|
72
|
+
Effect.gen(function* () {
|
|
73
|
+
const context = yield* Effect.context<R>();
|
|
74
|
+
// Register the promise with workerd un-awaited — waitUntil extends the
|
|
75
|
+
// event's lifetime without blocking the caller.
|
|
76
|
+
yield* Effect.sync(() =>
|
|
77
|
+
state.waitUntil(
|
|
78
|
+
Effect.runPromise(effect.pipe(Effect.provide(context))),
|
|
79
|
+
),
|
|
80
|
+
);
|
|
81
|
+
}),
|
|
57
82
|
blockConcurrencyWhile: <T>(callback: () => Effect.Effect<T>) =>
|
|
58
83
|
Effect.tryPromise(() =>
|
|
59
84
|
state.blockConcurrencyWhile(() => Effect.runPromise(callback())),
|
|
@@ -7,7 +7,7 @@ import * as Stream from "effect/Stream";
|
|
|
7
7
|
import * as HttpClientError from "effect/unstable/http/HttpClientError";
|
|
8
8
|
import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
|
|
9
9
|
import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
|
|
10
|
-
import * as
|
|
10
|
+
import * as Url from "effect/unstable/http/Url";
|
|
11
11
|
import * as Binding from "../../Binding.ts";
|
|
12
12
|
import { isWorker, type Worker, WorkerEnvironment } from "./Worker.ts";
|
|
13
13
|
|
|
@@ -70,7 +70,7 @@ const doFetch = (
|
|
|
70
70
|
HttpClientResponse.HttpClientResponse,
|
|
71
71
|
HttpClientError.RequestError
|
|
72
72
|
> => {
|
|
73
|
-
const urlResult =
|
|
73
|
+
const urlResult = Url.make(
|
|
74
74
|
request.url,
|
|
75
75
|
request.urlParams,
|
|
76
76
|
request.hash.pipe(Option.getOrUndefined),
|
|
@@ -478,6 +478,7 @@ export const LocalWorkerProvider = () =>
|
|
|
478
478
|
]),
|
|
479
479
|
),
|
|
480
480
|
domains: [url],
|
|
481
|
+
routes: [],
|
|
481
482
|
crons: Array.from(
|
|
482
483
|
new Set([...getCronBindings(bindings), ...(props.crons ?? [])]),
|
|
483
484
|
),
|
|
@@ -545,6 +546,7 @@ export const LocalWorkerProvider = () =>
|
|
|
545
546
|
tags: [],
|
|
546
547
|
durableObjectNamespaces,
|
|
547
548
|
domains: url ? [url] : [],
|
|
549
|
+
routes: [],
|
|
548
550
|
crons: Array.from(
|
|
549
551
|
new Set([...getCronBindings(bindings), ...(news.crons ?? [])]),
|
|
550
552
|
),
|
|
@@ -576,6 +578,7 @@ export const LocalWorkerProvider = () =>
|
|
|
576
578
|
durableObjectNamespaces: {},
|
|
577
579
|
accountId,
|
|
578
580
|
domains: [],
|
|
581
|
+
routes: [],
|
|
579
582
|
crons: news.crons ?? [],
|
|
580
583
|
} satisfies Worker["Attributes"];
|
|
581
584
|
}
|