@distilled.cloud/cloudflare 0.0.0 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -7
- package/lib/auth.d.ts +13 -0
- package/lib/auth.d.ts.map +1 -0
- package/lib/auth.js +12 -0
- package/lib/auth.js.map +1 -0
- package/lib/category.d.ts +2 -0
- package/lib/category.d.ts.map +1 -0
- package/lib/category.js +2 -0
- package/lib/category.js.map +1 -0
- package/lib/client/api.d.ts +14 -0
- package/lib/client/api.d.ts.map +1 -0
- package/lib/client/api.js +245 -0
- package/lib/client/api.js.map +1 -0
- package/lib/client/index.d.ts +8 -0
- package/lib/client/index.d.ts.map +1 -0
- package/lib/client/index.js +8 -0
- package/lib/client/index.js.map +1 -0
- package/lib/credentials.d.ts +14 -0
- package/lib/credentials.d.ts.map +1 -0
- package/lib/credentials.js +17 -0
- package/lib/credentials.js.map +1 -0
- package/lib/errors.d.ts +37 -0
- package/lib/errors.d.ts.map +1 -0
- package/lib/errors.js +31 -0
- package/lib/errors.js.map +1 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +10 -0
- package/lib/index.js.map +1 -0
- package/lib/retry.d.ts +14 -0
- package/lib/retry.d.ts.map +1 -0
- package/lib/retry.js +14 -0
- package/lib/retry.js.map +1 -0
- package/lib/schemas.d.ts +29 -0
- package/lib/schemas.d.ts.map +1 -0
- package/lib/schemas.js +34 -0
- package/lib/schemas.js.map +1 -0
- package/lib/services/abuse-reports.d.ts +224 -0
- package/lib/services/abuse-reports.d.ts.map +1 -0
- package/lib/services/abuse-reports.js +353 -0
- package/lib/services/abuse-reports.js.map +1 -0
- package/lib/services/accounts.d.ts +682 -0
- package/lib/services/accounts.d.ts.map +1 -0
- package/lib/services/accounts.js +805 -0
- package/lib/services/accounts.js.map +1 -0
- package/lib/services/acm.d.ts +73 -0
- package/lib/services/acm.d.ts.map +1 -0
- package/lib/services/acm.js +76 -0
- package/lib/services/acm.js.map +1 -0
- package/lib/services/addressing.d.ts +1208 -0
- package/lib/services/addressing.d.ts.map +1 -0
- package/lib/services/addressing.js +1776 -0
- package/lib/services/addressing.js.map +1 -0
- package/lib/services/ai-gateway.d.ts +956 -0
- package/lib/services/ai-gateway.d.ts.map +1 -0
- package/lib/services/ai-gateway.js +1706 -0
- package/lib/services/ai-gateway.js.map +1 -0
- package/lib/services/ai.d.ts +243 -0
- package/lib/services/ai.d.ts.map +1 -0
- package/lib/services/ai.js +299 -0
- package/lib/services/ai.js.map +1 -0
- package/lib/services/aisearch.d.ts +915 -0
- package/lib/services/aisearch.d.ts.map +1 -0
- package/lib/services/aisearch.js +2425 -0
- package/lib/services/aisearch.js.map +1 -0
- package/lib/services/alerting.d.ts +718 -0
- package/lib/services/alerting.d.ts.map +1 -0
- package/lib/services/alerting.js +1388 -0
- package/lib/services/alerting.js.map +1 -0
- package/lib/services/api-gateway.d.ts +830 -0
- package/lib/services/api-gateway.d.ts.map +1 -0
- package/lib/services/api-gateway.js +1548 -0
- package/lib/services/api-gateway.js.map +1 -0
- package/lib/services/argo.d.ts +101 -0
- package/lib/services/argo.d.ts.map +1 -0
- package/lib/services/argo.js +105 -0
- package/lib/services/argo.js.map +1 -0
- package/lib/services/audit-logs.d.ts +46 -0
- package/lib/services/audit-logs.d.ts.map +1 -0
- package/lib/services/audit-logs.js +37 -0
- package/lib/services/audit-logs.js.map +1 -0
- package/lib/services/billing.d.ts +62 -0
- package/lib/services/billing.d.ts.map +1 -0
- package/lib/services/billing.js +100 -0
- package/lib/services/billing.js.map +1 -0
- package/lib/services/bot-management.d.ts +124 -0
- package/lib/services/bot-management.d.ts.map +1 -0
- package/lib/services/bot-management.js +262 -0
- package/lib/services/bot-management.js.map +1 -0
- package/lib/services/botnet-feed.d.ts +65 -0
- package/lib/services/botnet-feed.d.ts.map +1 -0
- package/lib/services/botnet-feed.js +84 -0
- package/lib/services/botnet-feed.js.map +1 -0
- package/lib/services/brand-protection.d.ts +188 -0
- package/lib/services/brand-protection.d.ts.map +1 -0
- package/lib/services/brand-protection.js +214 -0
- package/lib/services/brand-protection.js.map +1 -0
- package/lib/services/browser-rendering.d.ts +857 -0
- package/lib/services/browser-rendering.d.ts.map +1 -0
- package/lib/services/browser-rendering.js +1141 -0
- package/lib/services/browser-rendering.js.map +1 -0
- package/lib/services/cache.d.ts +287 -0
- package/lib/services/cache.d.ts.map +1 -0
- package/lib/services/cache.js +330 -0
- package/lib/services/cache.js.map +1 -0
- package/lib/services/calls.d.ts +202 -0
- package/lib/services/calls.d.ts.map +1 -0
- package/lib/services/calls.js +175 -0
- package/lib/services/calls.js.map +1 -0
- package/lib/services/certificate-authorities.d.ts +40 -0
- package/lib/services/certificate-authorities.d.ts.map +1 -0
- package/lib/services/certificate-authorities.js +49 -0
- package/lib/services/certificate-authorities.js.map +1 -0
- package/lib/services/client-certificates.d.ts +254 -0
- package/lib/services/client-certificates.d.ts.map +1 -0
- package/lib/services/client-certificates.js +350 -0
- package/lib/services/client-certificates.js.map +1 -0
- package/lib/services/cloud-connector.d.ts +59 -0
- package/lib/services/cloud-connector.d.ts.map +1 -0
- package/lib/services/cloud-connector.js +84 -0
- package/lib/services/cloud-connector.js.map +1 -0
- package/lib/services/cloudforce-one.d.ts +1318 -0
- package/lib/services/cloudforce-one.d.ts.map +1 -0
- package/lib/services/cloudforce-one.js +1684 -0
- package/lib/services/cloudforce-one.js.map +1 -0
- package/lib/services/connectivity.d.ts +248 -0
- package/lib/services/connectivity.d.ts.map +1 -0
- package/lib/services/connectivity.js +377 -0
- package/lib/services/connectivity.js.map +1 -0
- package/lib/services/content-scanning.d.ts +131 -0
- package/lib/services/content-scanning.d.ts.map +1 -0
- package/lib/services/content-scanning.js +156 -0
- package/lib/services/content-scanning.js.map +1 -0
- package/lib/services/custom-certificates.d.ts +211 -0
- package/lib/services/custom-certificates.d.ts.map +1 -0
- package/lib/services/custom-certificates.js +309 -0
- package/lib/services/custom-certificates.js.map +1 -0
- package/lib/services/custom-hostnames.d.ts +525 -0
- package/lib/services/custom-hostnames.d.ts.map +1 -0
- package/lib/services/custom-hostnames.js +1164 -0
- package/lib/services/custom-hostnames.js.map +1 -0
- package/lib/services/custom-nameservers.d.ts +67 -0
- package/lib/services/custom-nameservers.d.ts.map +1 -0
- package/lib/services/custom-nameservers.js +80 -0
- package/lib/services/custom-nameservers.js.map +1 -0
- package/lib/services/custom-pages.d.ts +74 -0
- package/lib/services/custom-pages.d.ts.map +1 -0
- package/lib/services/custom-pages.js +125 -0
- package/lib/services/custom-pages.js.map +1 -0
- package/lib/services/d1.d.ts +326 -0
- package/lib/services/d1.d.ts.map +1 -0
- package/lib/services/d1.js +448 -0
- package/lib/services/d1.js.map +1 -0
- package/lib/services/dcv-delegation.d.ts +24 -0
- package/lib/services/dcv-delegation.d.ts.map +1 -0
- package/lib/services/dcv-delegation.js +24 -0
- package/lib/services/dcv-delegation.js.map +1 -0
- package/lib/services/diagnostics.d.ts +175 -0
- package/lib/services/diagnostics.d.ts.map +1 -0
- package/lib/services/diagnostics.js +273 -0
- package/lib/services/diagnostics.js.map +1 -0
- package/lib/services/dns-firewall.d.ts +288 -0
- package/lib/services/dns-firewall.d.ts.map +1 -0
- package/lib/services/dns-firewall.js +373 -0
- package/lib/services/dns-firewall.js.map +1 -0
- package/lib/services/dns.d.ts +2946 -0
- package/lib/services/dns.d.ts.map +1 -0
- package/lib/services/dns.js +4511 -0
- package/lib/services/dns.js.map +1 -0
- package/lib/services/durable-objects.d.ts +61 -0
- package/lib/services/durable-objects.d.ts.map +1 -0
- package/lib/services/durable-objects.js +66 -0
- package/lib/services/durable-objects.js.map +1 -0
- package/lib/services/email-routing.d.ts +542 -0
- package/lib/services/email-routing.d.ts.map +1 -0
- package/lib/services/email-routing.js +662 -0
- package/lib/services/email-routing.js.map +1 -0
- package/lib/services/email-security.d.ts +1131 -0
- package/lib/services/email-security.d.ts.map +1 -0
- package/lib/services/email-security.js +2065 -0
- package/lib/services/email-security.js.map +1 -0
- package/lib/services/filters.d.ts +157 -0
- package/lib/services/filters.d.ts.map +1 -0
- package/lib/services/filters.js +135 -0
- package/lib/services/filters.js.map +1 -0
- package/lib/services/firewall.d.ts +1080 -0
- package/lib/services/firewall.d.ts.map +1 -0
- package/lib/services/firewall.js +1881 -0
- package/lib/services/firewall.js.map +1 -0
- package/lib/services/healthchecks.d.ts +464 -0
- package/lib/services/healthchecks.d.ts.map +1 -0
- package/lib/services/healthchecks.js +838 -0
- package/lib/services/healthchecks.js.map +1 -0
- package/lib/services/hostnames.d.ts +74 -0
- package/lib/services/hostnames.d.ts.map +1 -0
- package/lib/services/hostnames.js +100 -0
- package/lib/services/hostnames.js.map +1 -0
- package/lib/services/hyperdrive.d.ts +203 -0
- package/lib/services/hyperdrive.d.ts.map +1 -0
- package/lib/services/hyperdrive.js +299 -0
- package/lib/services/hyperdrive.js.map +1 -0
- package/lib/services/iam.d.ts +554 -0
- package/lib/services/iam.d.ts.map +1 -0
- package/lib/services/iam.js +743 -0
- package/lib/services/iam.js.map +1 -0
- package/lib/services/images.d.ts +403 -0
- package/lib/services/images.d.ts.map +1 -0
- package/lib/services/images.js +417 -0
- package/lib/services/images.js.map +1 -0
- package/lib/services/intel.d.ts +768 -0
- package/lib/services/intel.d.ts.map +1 -0
- package/lib/services/intel.js +1179 -0
- package/lib/services/intel.js.map +1 -0
- package/lib/services/ips.d.ts +28 -0
- package/lib/services/ips.d.ts.map +1 -0
- package/lib/services/ips.js +39 -0
- package/lib/services/ips.js.map +1 -0
- package/lib/services/keyless-certificates.d.ts +177 -0
- package/lib/services/keyless-certificates.d.ts.map +1 -0
- package/lib/services/keyless-certificates.js +216 -0
- package/lib/services/keyless-certificates.js.map +1 -0
- package/lib/services/kv.d.ts +339 -0
- package/lib/services/kv.d.ts.map +1 -0
- package/lib/services/kv.js +402 -0
- package/lib/services/kv.js.map +1 -0
- package/lib/services/leaked-credential-checks.d.ts +119 -0
- package/lib/services/leaked-credential-checks.d.ts.map +1 -0
- package/lib/services/leaked-credential-checks.js +130 -0
- package/lib/services/leaked-credential-checks.js.map +1 -0
- package/lib/services/load-balancers.d.ts +1767 -0
- package/lib/services/load-balancers.d.ts.map +1 -0
- package/lib/services/load-balancers.js +3068 -0
- package/lib/services/load-balancers.js.map +1 -0
- package/lib/services/logpush.d.ts +401 -0
- package/lib/services/logpush.d.ts.map +1 -0
- package/lib/services/logpush.js +724 -0
- package/lib/services/logpush.js.map +1 -0
- package/lib/services/logs.d.ts +125 -0
- package/lib/services/logs.d.ts.map +1 -0
- package/lib/services/logs.js +145 -0
- package/lib/services/logs.js.map +1 -0
- package/lib/services/magic-cloud-networking.d.ts +1599 -0
- package/lib/services/magic-cloud-networking.d.ts.map +1 -0
- package/lib/services/magic-cloud-networking.js +5205 -0
- package/lib/services/magic-cloud-networking.js.map +1 -0
- package/lib/services/magic-network-monitoring.d.ts +379 -0
- package/lib/services/magic-network-monitoring.d.ts.map +1 -0
- package/lib/services/magic-network-monitoring.js +535 -0
- package/lib/services/magic-network-monitoring.js.map +1 -0
- package/lib/services/magic-transit.d.ts +3650 -0
- package/lib/services/magic-transit.d.ts.map +1 -0
- package/lib/services/magic-transit.js +6120 -0
- package/lib/services/magic-transit.js.map +1 -0
- package/lib/services/managed-transforms.d.ts +79 -0
- package/lib/services/managed-transforms.d.ts.map +1 -0
- package/lib/services/managed-transforms.js +107 -0
- package/lib/services/managed-transforms.js.map +1 -0
- package/lib/services/memberships.d.ts +172 -0
- package/lib/services/memberships.d.ts.map +1 -0
- package/lib/services/memberships.js +282 -0
- package/lib/services/memberships.js.map +1 -0
- package/lib/services/mtls-certificates.d.ts +140 -0
- package/lib/services/mtls-certificates.d.ts.map +1 -0
- package/lib/services/mtls-certificates.js +173 -0
- package/lib/services/mtls-certificates.js.map +1 -0
- package/lib/services/network-interconnects.d.ts +410 -0
- package/lib/services/network-interconnects.d.ts.map +1 -0
- package/lib/services/network-interconnects.js +583 -0
- package/lib/services/network-interconnects.js.map +1 -0
- package/lib/services/organizations.d.ts +201 -0
- package/lib/services/organizations.d.ts.map +1 -0
- package/lib/services/organizations.js +355 -0
- package/lib/services/organizations.js.map +1 -0
- package/lib/services/origin-ca-certificates.d.ts +99 -0
- package/lib/services/origin-ca-certificates.d.ts.map +1 -0
- package/lib/services/origin-ca-certificates.js +156 -0
- package/lib/services/origin-ca-certificates.js.map +1 -0
- package/lib/services/origin-post-quantum-encryption.d.ts +50 -0
- package/lib/services/origin-post-quantum-encryption.d.ts.map +1 -0
- package/lib/services/origin-post-quantum-encryption.js +60 -0
- package/lib/services/origin-post-quantum-encryption.js.map +1 -0
- package/lib/services/origin-tls-client-auth.d.ts +273 -0
- package/lib/services/origin-tls-client-auth.d.ts.map +1 -0
- package/lib/services/origin-tls-client-auth.js +401 -0
- package/lib/services/origin-tls-client-auth.js.map +1 -0
- package/lib/services/page-rules.d.ts +773 -0
- package/lib/services/page-rules.d.ts.map +1 -0
- package/lib/services/page-rules.js +1365 -0
- package/lib/services/page-rules.js.map +1 -0
- package/lib/services/page-shield.d.ts +426 -0
- package/lib/services/page-shield.d.ts.map +1 -0
- package/lib/services/page-shield.js +484 -0
- package/lib/services/page-shield.js.map +1 -0
- package/lib/services/pages.d.ts +1654 -0
- package/lib/services/pages.d.ts.map +1 -0
- package/lib/services/pages.js +2954 -0
- package/lib/services/pages.js.map +1 -0
- package/lib/services/pipelines.d.ts +1461 -0
- package/lib/services/pipelines.d.ts.map +1 -0
- package/lib/services/pipelines.js +2912 -0
- package/lib/services/pipelines.js.map +1 -0
- package/lib/services/queues.d.ts +807 -0
- package/lib/services/queues.d.ts.map +1 -0
- package/lib/services/queues.js +1194 -0
- package/lib/services/queues.js.map +1 -0
- package/lib/services/r2-data-catalog.d.ts +341 -0
- package/lib/services/r2-data-catalog.d.ts.map +1 -0
- package/lib/services/r2-data-catalog.js +499 -0
- package/lib/services/r2-data-catalog.js.map +1 -0
- package/lib/services/r2.d.ts +1041 -0
- package/lib/services/r2.d.ts.map +1 -0
- package/lib/services/r2.js +1384 -0
- package/lib/services/r2.js.map +1 -0
- package/lib/services/radar.d.ts +9276 -0
- package/lib/services/radar.d.ts.map +1 -0
- package/lib/services/radar.js +20491 -0
- package/lib/services/radar.js.map +1 -0
- package/lib/services/rate-limits.d.ts +315 -0
- package/lib/services/rate-limits.d.ts.map +1 -0
- package/lib/services/rate-limits.js +521 -0
- package/lib/services/rate-limits.js.map +1 -0
- package/lib/services/realtime-kit.d.ts +2728 -0
- package/lib/services/realtime-kit.d.ts.map +1 -0
- package/lib/services/realtime-kit.js +5401 -0
- package/lib/services/realtime-kit.js.map +1 -0
- package/lib/services/registrar.d.ts +81 -0
- package/lib/services/registrar.d.ts.map +1 -0
- package/lib/services/registrar.js +154 -0
- package/lib/services/registrar.js.map +1 -0
- package/lib/services/request-tracers.d.ts +61 -0
- package/lib/services/request-tracers.d.ts.map +1 -0
- package/lib/services/request-tracers.js +82 -0
- package/lib/services/request-tracers.js.map +1 -0
- package/lib/services/resource-sharing.d.ts +540 -0
- package/lib/services/resource-sharing.d.ts.map +1 -0
- package/lib/services/resource-sharing.js +846 -0
- package/lib/services/resource-sharing.js.map +1 -0
- package/lib/services/rules.d.ts +297 -0
- package/lib/services/rules.d.ts.map +1 -0
- package/lib/services/rules.js +396 -0
- package/lib/services/rules.js.map +1 -0
- package/lib/services/rulesets.d.ts +3300 -0
- package/lib/services/rulesets.d.ts.map +1 -0
- package/lib/services/rulesets.js +7852 -0
- package/lib/services/rulesets.js.map +1 -0
- package/lib/services/rum.d.ts +289 -0
- package/lib/services/rum.d.ts.map +1 -0
- package/lib/services/rum.js +409 -0
- package/lib/services/rum.js.map +1 -0
- package/lib/services/schema-validation.d.ts +240 -0
- package/lib/services/schema-validation.d.ts.map +1 -0
- package/lib/services/schema-validation.js +306 -0
- package/lib/services/schema-validation.js.map +1 -0
- package/lib/services/secrets-store.d.ts +321 -0
- package/lib/services/secrets-store.d.ts.map +1 -0
- package/lib/services/secrets-store.js +385 -0
- package/lib/services/secrets-store.js.map +1 -0
- package/lib/services/security-center.d.ts +102 -0
- package/lib/services/security-center.d.ts.map +1 -0
- package/lib/services/security-center.js +170 -0
- package/lib/services/security-center.js.map +1 -0
- package/lib/services/security-txt.d.ts +105 -0
- package/lib/services/security-txt.d.ts.map +1 -0
- package/lib/services/security-txt.js +136 -0
- package/lib/services/security-txt.js.map +1 -0
- package/lib/services/snippets.d.ts +138 -0
- package/lib/services/snippets.d.ts.map +1 -0
- package/lib/services/snippets.js +178 -0
- package/lib/services/snippets.js.map +1 -0
- package/lib/services/spectrum.d.ts +316 -0
- package/lib/services/spectrum.d.ts.map +1 -0
- package/lib/services/spectrum.js +510 -0
- package/lib/services/spectrum.js.map +1 -0
- package/lib/services/speed.d.ts +227 -0
- package/lib/services/speed.d.ts.map +1 -0
- package/lib/services/speed.js +444 -0
- package/lib/services/speed.js.map +1 -0
- package/lib/services/ssl.d.ts +370 -0
- package/lib/services/ssl.d.ts.map +1 -0
- package/lib/services/ssl.js +732 -0
- package/lib/services/ssl.js.map +1 -0
- package/lib/services/stream.d.ts +1014 -0
- package/lib/services/stream.d.ts.map +1 -0
- package/lib/services/stream.js +1049 -0
- package/lib/services/stream.js.map +1 -0
- package/lib/services/token-validation.d.ts +547 -0
- package/lib/services/token-validation.d.ts.map +1 -0
- package/lib/services/token-validation.js +768 -0
- package/lib/services/token-validation.js.map +1 -0
- package/lib/services/turnstile.d.ts +248 -0
- package/lib/services/turnstile.d.ts.map +1 -0
- package/lib/services/turnstile.js +308 -0
- package/lib/services/turnstile.js.map +1 -0
- package/lib/services/url-normalization.d.ts +53 -0
- package/lib/services/url-normalization.d.ts.map +1 -0
- package/lib/services/url-normalization.js +52 -0
- package/lib/services/url-normalization.js.map +1 -0
- package/lib/services/url-scanner.d.ts +612 -0
- package/lib/services/url-scanner.d.ts.map +1 -0
- package/lib/services/url-scanner.js +915 -0
- package/lib/services/url-scanner.js.map +1 -0
- package/lib/services/user.d.ts +441 -0
- package/lib/services/user.d.ts.map +1 -0
- package/lib/services/user.js +567 -0
- package/lib/services/user.js.map +1 -0
- package/lib/services/vectorize.d.ts +282 -0
- package/lib/services/vectorize.d.ts.map +1 -0
- package/lib/services/vectorize.js +340 -0
- package/lib/services/vectorize.js.map +1 -0
- package/lib/services/waiting-rooms.d.ts +1009 -0
- package/lib/services/waiting-rooms.d.ts.map +1 -0
- package/lib/services/waiting-rooms.js +1757 -0
- package/lib/services/waiting-rooms.js.map +1 -0
- package/lib/services/web3.d.ts +274 -0
- package/lib/services/web3.d.ts.map +1 -0
- package/lib/services/web3.js +362 -0
- package/lib/services/web3.js.map +1 -0
- package/lib/services/workers-for-platforms.d.ts +1224 -0
- package/lib/services/workers-for-platforms.d.ts.map +1 -0
- package/lib/services/workers-for-platforms.js +2078 -0
- package/lib/services/workers-for-platforms.js.map +1 -0
- package/lib/services/workers.d.ts +3498 -0
- package/lib/services/workers.d.ts.map +1 -0
- package/lib/services/workers.js +5967 -0
- package/lib/services/workers.js.map +1 -0
- package/lib/services/workflows.d.ts +359 -0
- package/lib/services/workflows.d.ts.map +1 -0
- package/lib/services/workflows.js +516 -0
- package/lib/services/workflows.js.map +1 -0
- package/lib/services/zaraz.d.ts +300 -0
- package/lib/services/zaraz.d.ts.map +1 -0
- package/lib/services/zaraz.js +298 -0
- package/lib/services/zaraz.js.map +1 -0
- package/lib/services/zero-trust.d.ts +15449 -0
- package/lib/services/zero-trust.d.ts.map +1 -0
- package/lib/services/zero-trust.js +29194 -0
- package/lib/services/zero-trust.js.map +1 -0
- package/lib/services/zones.d.ts +1278 -0
- package/lib/services/zones.d.ts.map +1 -0
- package/lib/services/zones.js +2416 -0
- package/lib/services/zones.js.map +1 -0
- package/lib/traits.d.ts +28 -0
- package/lib/traits.d.ts.map +1 -0
- package/lib/traits.js +26 -0
- package/lib/traits.js.map +1 -0
- package/package.json +68 -5
- package/src/auth.ts +14 -0
- package/src/category.ts +1 -0
- package/src/client/api.ts +329 -0
- package/src/client/index.ts +7 -0
- package/src/credentials.ts +30 -0
- package/src/errors.ts +57 -0
- package/src/index.ts +9 -0
- package/src/retry.ts +35 -0
- package/src/schemas.ts +51 -0
- package/src/services/abuse-reports.ts +747 -0
- package/src/services/accounts.ts +1947 -0
- package/src/services/acm.ts +170 -0
- package/src/services/addressing.ts +3947 -0
- package/src/services/ai-gateway.ts +3335 -0
- package/src/services/ai.ts +727 -0
- package/src/services/aisearch.ts +4750 -0
- package/src/services/alerting.ts +2947 -0
- package/src/services/api-gateway.ts +3391 -0
- package/src/services/argo.ts +254 -0
- package/src/services/audit-logs.ts +90 -0
- package/src/services/billing.ts +172 -0
- package/src/services/bot-management.ts +541 -0
- package/src/services/botnet-feed.ts +193 -0
- package/src/services/brand-protection.ts +553 -0
- package/src/services/browser-rendering.ts +2707 -0
- package/src/services/cache.ts +827 -0
- package/src/services/calls.ts +483 -0
- package/src/services/certificate-authorities.ts +110 -0
- package/src/services/client-certificates.ts +718 -0
- package/src/services/cloud-connector.ts +181 -0
- package/src/services/cloudforce-one.ts +3876 -0
- package/src/services/connectivity.ts +629 -0
- package/src/services/content-scanning.ts +385 -0
- package/src/services/custom-certificates.ts +611 -0
- package/src/services/custom-hostnames.ts +2453 -0
- package/src/services/custom-nameservers.ts +182 -0
- package/src/services/custom-pages.ts +264 -0
- package/src/services/d1.ts +1034 -0
- package/src/services/dcv-delegation.ts +52 -0
- package/src/services/diagnostics.ts +603 -0
- package/src/services/dns-firewall.ts +823 -0
- package/src/services/dns.ts +8897 -0
- package/src/services/durable-objects.ts +148 -0
- package/src/services/email-routing.ts +1602 -0
- package/src/services/email-security.ts +4283 -0
- package/src/services/filters.ts +370 -0
- package/src/services/firewall.ts +3896 -0
- package/src/services/healthchecks.ts +1750 -0
- package/src/services/hostnames.ts +218 -0
- package/src/services/hyperdrive.ts +592 -0
- package/src/services/iam.ts +1668 -0
- package/src/services/images.ts +1086 -0
- package/src/services/intel.ts +2768 -0
- package/src/services/ips.ts +88 -0
- package/src/services/keyless-certificates.ts +462 -0
- package/src/services/kv.ts +1011 -0
- package/src/services/leaked-credential-checks.ts +325 -0
- package/src/services/load-balancers.ts +6438 -0
- package/src/services/logpush.ts +1667 -0
- package/src/services/logs.ts +375 -0
- package/src/services/magic-cloud-networking.ts +10020 -0
- package/src/services/magic-network-monitoring.ts +1156 -0
- package/src/services/magic-transit.ts +13050 -0
- package/src/services/managed-transforms.ts +237 -0
- package/src/services/memberships.ts +615 -0
- package/src/services/mtls-certificates.ts +374 -0
- package/src/services/network-interconnects.ts +1253 -0
- package/src/services/organizations.ts +674 -0
- package/src/services/origin-ca-certificates.ts +303 -0
- package/src/services/origin-post-quantum-encryption.ts +128 -0
- package/src/services/origin-tls-client-auth.ts +878 -0
- package/src/services/page-rules.ts +2612 -0
- package/src/services/page-shield.ts +1195 -0
- package/src/services/pages.ts +5709 -0
- package/src/services/pipelines.ts +6000 -0
- package/src/services/queues.ts +2629 -0
- package/src/services/r2-data-catalog.ts +1119 -0
- package/src/services/r2.ts +3348 -0
- package/src/services/radar.ts +42152 -0
- package/src/services/rate-limits.ts +1150 -0
- package/src/services/realtime-kit.ts +11079 -0
- package/src/services/registrar.ts +295 -0
- package/src/services/request-tracers.ts +158 -0
- package/src/services/resource-sharing.ts +1832 -0
- package/src/services/rules.ts +837 -0
- package/src/services/rulesets.ts +15144 -0
- package/src/services/rum.ts +901 -0
- package/src/services/schema-validation.ts +733 -0
- package/src/services/secrets-store.ts +860 -0
- package/src/services/security-center.ts +397 -0
- package/src/services/security-txt.ts +315 -0
- package/src/services/snippets.ts +420 -0
- package/src/services/spectrum.ts +1103 -0
- package/src/services/speed.ts +1056 -0
- package/src/services/ssl.ts +1587 -0
- package/src/services/stream.ts +2756 -0
- package/src/services/token-validation.ts +1585 -0
- package/src/services/turnstile.ts +643 -0
- package/src/services/url-normalization.ts +129 -0
- package/src/services/url-scanner.ts +1851 -0
- package/src/services/user.ts +1384 -0
- package/src/services/vectorize.ts +816 -0
- package/src/services/waiting-rooms.ts +3807 -0
- package/src/services/web3.ts +834 -0
- package/src/services/workers-for-platforms.ts +3859 -0
- package/src/services/workers.ts +11637 -0
- package/src/services/workflows.ts +1124 -0
- package/src/services/zaraz.ts +797 -0
- package/src/services/zero-trust.ts +58929 -0
- package/src/services/zones.ts +4875 -0
- package/src/traits.ts +47 -0
- package/bun.lock +0 -26
- package/index.ts +0 -1
- package/tsconfig.json +0 -29
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare API operations factory.
|
|
3
|
+
*
|
|
4
|
+
* This module is imported as `import * as API from "../client/api.ts"` by
|
|
5
|
+
* generated service files so that `API.make()`, `API.OperationMethod`, etc.
|
|
6
|
+
* are all accessible as namespace members.
|
|
7
|
+
*/
|
|
8
|
+
import * as Effect from "effect/Effect";
|
|
9
|
+
import * as Schema from "effect/Schema";
|
|
10
|
+
import type * as AST from "effect/SchemaAST";
|
|
11
|
+
import {
|
|
12
|
+
makeAPI,
|
|
13
|
+
type ApiErrorClass,
|
|
14
|
+
type OperationMethod,
|
|
15
|
+
type PaginatedOperationMethod,
|
|
16
|
+
} from "@distilled.cloud/core/client";
|
|
17
|
+
import {
|
|
18
|
+
CloudflareHttpError,
|
|
19
|
+
HTTP_STATUS_MAP,
|
|
20
|
+
InternalServerError,
|
|
21
|
+
TooManyRequests,
|
|
22
|
+
UnknownCloudflareError,
|
|
23
|
+
} from "../errors.ts";
|
|
24
|
+
import { Credentials } from "../credentials.ts";
|
|
25
|
+
import { type ErrorMatcher, getErrorMatchers } from "../traits.ts";
|
|
26
|
+
|
|
27
|
+
// ============================================================================
|
|
28
|
+
// Global Cloudflare error codes
|
|
29
|
+
// ============================================================================
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Cloudflare error codes that map to global/default errors regardless of operation.
|
|
33
|
+
* These are infrastructure-level errors that can occur on any endpoint.
|
|
34
|
+
*/
|
|
35
|
+
const GLOBAL_ERROR_CODE_MAP: Record<number, (message: string) => unknown> = {
|
|
36
|
+
// "Please wait and consider throttling your request speed"
|
|
37
|
+
971: (message) => new TooManyRequests({ message }),
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Create an appropriate error for an HTTP status code.
|
|
42
|
+
*
|
|
43
|
+
* For status codes in HTTP_STATUS_MAP (400, 401, 500, 502, 503, 504, etc.),
|
|
44
|
+
* returns the properly categorized error (with retry categories for 5xx).
|
|
45
|
+
* For unmapped 5xx codes (e.g., Cloudflare-specific 520-530), returns a
|
|
46
|
+
* CloudflareHttpError so the status is preserved.
|
|
47
|
+
*/
|
|
48
|
+
function httpStatusError(status: number, body?: string): unknown {
|
|
49
|
+
const ErrorClass = HTTP_STATUS_MAP[status as keyof typeof HTTP_STATUS_MAP];
|
|
50
|
+
if (ErrorClass) {
|
|
51
|
+
return new ErrorClass({ message: body ?? String(status) });
|
|
52
|
+
}
|
|
53
|
+
// For unmapped 5xx codes (e.g., Cloudflare-specific 520-530), use
|
|
54
|
+
// InternalServerError so they get ServerError + Retryable categories
|
|
55
|
+
if (status >= 500) {
|
|
56
|
+
return new InternalServerError({ message: body ?? String(status) });
|
|
57
|
+
}
|
|
58
|
+
return new CloudflareHttpError({
|
|
59
|
+
status,
|
|
60
|
+
statusText: String(status),
|
|
61
|
+
body,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export type { OperationMethod, PaginatedOperationMethod };
|
|
66
|
+
|
|
67
|
+
// ============================================================================
|
|
68
|
+
// Error matching
|
|
69
|
+
// ============================================================================
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Extract the _tag literal value from a TaggedError schema AST.
|
|
73
|
+
*/
|
|
74
|
+
function extractTagFromAst(ast: AST.AST): string | undefined {
|
|
75
|
+
if (ast.encoding && ast.encoding.length > 0) {
|
|
76
|
+
return extractTagFromAst(ast.encoding[0].to);
|
|
77
|
+
}
|
|
78
|
+
if (ast._tag === "Objects") {
|
|
79
|
+
const tagProp = ast.propertySignatures.find(
|
|
80
|
+
(p: { name: PropertyKey }) => p.name === "_tag",
|
|
81
|
+
);
|
|
82
|
+
if (
|
|
83
|
+
tagProp &&
|
|
84
|
+
tagProp.type._tag === "Literal" &&
|
|
85
|
+
typeof tagProp.type.literal === "string"
|
|
86
|
+
) {
|
|
87
|
+
return tagProp.type.literal;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Check if an error matches an expression-based matcher.
|
|
95
|
+
*/
|
|
96
|
+
function matchesExpression(
|
|
97
|
+
matcher: ErrorMatcher,
|
|
98
|
+
code: number | undefined,
|
|
99
|
+
status: number,
|
|
100
|
+
message: string,
|
|
101
|
+
): boolean {
|
|
102
|
+
if (matcher.code === undefined && matcher.status === undefined) return false;
|
|
103
|
+
if (matcher.code !== undefined && matcher.code !== code) return false;
|
|
104
|
+
if (matcher.status !== undefined && matcher.status !== status) return false;
|
|
105
|
+
if (matcher.message !== undefined) {
|
|
106
|
+
if (typeof matcher.message === "string") {
|
|
107
|
+
if (matcher.message !== message) return false;
|
|
108
|
+
} else if (matcher.message.includes !== undefined) {
|
|
109
|
+
if (!message.includes(matcher.message.includes)) return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Calculate specificity score for a matcher.
|
|
117
|
+
*/
|
|
118
|
+
function matcherSpecificity(matcher: ErrorMatcher): number {
|
|
119
|
+
let score = 0;
|
|
120
|
+
if (matcher.code !== undefined) score += 1;
|
|
121
|
+
if (matcher.status !== undefined) score += 1;
|
|
122
|
+
if (matcher.message !== undefined) score += 1;
|
|
123
|
+
return score;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
interface MatchedError {
|
|
127
|
+
schema: Schema.Top;
|
|
128
|
+
tag: string;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Find matching error schema using annotations from the schema AST.
|
|
133
|
+
*/
|
|
134
|
+
function findMatchingError(
|
|
135
|
+
errorSchemas: Map<string, Schema.Top>,
|
|
136
|
+
code: number | undefined,
|
|
137
|
+
status: number,
|
|
138
|
+
message: string,
|
|
139
|
+
): MatchedError | undefined {
|
|
140
|
+
let bestMatch: MatchedError | undefined;
|
|
141
|
+
let bestScore = 0;
|
|
142
|
+
|
|
143
|
+
for (const [name, schema] of errorSchemas) {
|
|
144
|
+
const ast = schema.ast;
|
|
145
|
+
const matchers = getErrorMatchers(ast);
|
|
146
|
+
if (!matchers || matchers.length === 0) continue;
|
|
147
|
+
|
|
148
|
+
for (const matcher of matchers) {
|
|
149
|
+
if (matchesExpression(matcher, code, status, message)) {
|
|
150
|
+
const score = matcherSpecificity(matcher);
|
|
151
|
+
if (score > bestScore) {
|
|
152
|
+
bestScore = score;
|
|
153
|
+
bestMatch = { schema, tag: name };
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
return bestMatch;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Match a Cloudflare API error response using per-operation error schemas.
|
|
164
|
+
*/
|
|
165
|
+
const matchError = (
|
|
166
|
+
status: number,
|
|
167
|
+
errorBody: unknown,
|
|
168
|
+
errors?: readonly ApiErrorClass[],
|
|
169
|
+
): Effect.Effect<never, unknown> => {
|
|
170
|
+
// Handle non-JSON error responses (e.g., HTML from malformed URLs, 520 pages)
|
|
171
|
+
const isNonJsonError =
|
|
172
|
+
typeof errorBody === "object" &&
|
|
173
|
+
errorBody !== null &&
|
|
174
|
+
"_nonJsonError" in errorBody;
|
|
175
|
+
if (isNonJsonError) {
|
|
176
|
+
// For 5xx errors, return a properly categorized error so retries work
|
|
177
|
+
if (status >= 500) {
|
|
178
|
+
return Effect.fail(
|
|
179
|
+
httpStatusError(status, String((errorBody as any).body)),
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
return Effect.fail(
|
|
183
|
+
new CloudflareHttpError({
|
|
184
|
+
status,
|
|
185
|
+
statusText: String(status),
|
|
186
|
+
body: String((errorBody as any).body),
|
|
187
|
+
}),
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// Parse the Cloudflare error envelope
|
|
192
|
+
const envelope =
|
|
193
|
+
typeof errorBody === "object" && errorBody !== null ? errorBody : undefined;
|
|
194
|
+
const cfErrors =
|
|
195
|
+
envelope && "errors" in envelope && Array.isArray((envelope as any).errors)
|
|
196
|
+
? ((envelope as any).errors as Array<{
|
|
197
|
+
code?: number;
|
|
198
|
+
message?: string;
|
|
199
|
+
}>)
|
|
200
|
+
: undefined;
|
|
201
|
+
const firstError = cfErrors?.[0];
|
|
202
|
+
// Cloudflare sometimes omits the code field entirely (e.g., webhook errors).
|
|
203
|
+
// Treat missing code as 0 (the default) so matchers with { code: 0 } can match.
|
|
204
|
+
const errorCode =
|
|
205
|
+
firstError && typeof firstError.code === "number"
|
|
206
|
+
? firstError.code
|
|
207
|
+
: firstError
|
|
208
|
+
? 0
|
|
209
|
+
: undefined;
|
|
210
|
+
const errorMessage = firstError?.message ?? String(status);
|
|
211
|
+
|
|
212
|
+
// Check if this is a valid Cloudflare envelope (has success field)
|
|
213
|
+
const isEnvelope =
|
|
214
|
+
envelope && "success" in envelope && (envelope as any).success === false;
|
|
215
|
+
|
|
216
|
+
if (!isEnvelope) {
|
|
217
|
+
// Not a Cloudflare envelope — HTTP-level error
|
|
218
|
+
// For 5xx errors, return a properly categorized error so retries work
|
|
219
|
+
const bodyStr =
|
|
220
|
+
typeof errorBody === "string" ? errorBody : JSON.stringify(errorBody);
|
|
221
|
+
if (status >= 500) {
|
|
222
|
+
return Effect.fail(httpStatusError(status, bodyStr));
|
|
223
|
+
}
|
|
224
|
+
return Effect.fail(
|
|
225
|
+
new CloudflareHttpError({
|
|
226
|
+
status,
|
|
227
|
+
statusText: String(status),
|
|
228
|
+
body: bodyStr,
|
|
229
|
+
}),
|
|
230
|
+
);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// Build error schema map from the per-operation errors
|
|
234
|
+
if (errors && errors.length > 0) {
|
|
235
|
+
const errorSchemas = new Map<string, Schema.Top>();
|
|
236
|
+
for (const errorSchema of errors) {
|
|
237
|
+
const identifier = extractTagFromAst(
|
|
238
|
+
(errorSchema as unknown as Schema.Top).ast,
|
|
239
|
+
);
|
|
240
|
+
if (identifier) {
|
|
241
|
+
errorSchemas.set(identifier, errorSchema as unknown as Schema.Top);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
const matched = findMatchingError(
|
|
246
|
+
errorSchemas,
|
|
247
|
+
errorCode,
|
|
248
|
+
status,
|
|
249
|
+
errorMessage,
|
|
250
|
+
);
|
|
251
|
+
|
|
252
|
+
if (matched) {
|
|
253
|
+
// Decode using the schema - properly instantiates TaggedError classes
|
|
254
|
+
const errorData = {
|
|
255
|
+
_tag: matched.tag,
|
|
256
|
+
code: errorCode ?? 0,
|
|
257
|
+
message: errorMessage,
|
|
258
|
+
};
|
|
259
|
+
return Schema.decodeUnknownEffect(matched.schema)(errorData).pipe(
|
|
260
|
+
Effect.flatMap((decoded: unknown) => Effect.fail(decoded)),
|
|
261
|
+
Effect.catchIf(
|
|
262
|
+
(e: unknown) =>
|
|
263
|
+
typeof e === "object" &&
|
|
264
|
+
e !== null &&
|
|
265
|
+
"_tag" in e &&
|
|
266
|
+
(e as any)._tag === "SchemaError",
|
|
267
|
+
() =>
|
|
268
|
+
Effect.fail(
|
|
269
|
+
new UnknownCloudflareError({
|
|
270
|
+
code: errorCode,
|
|
271
|
+
message: errorMessage,
|
|
272
|
+
}),
|
|
273
|
+
),
|
|
274
|
+
),
|
|
275
|
+
) as Effect.Effect<never, unknown>;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
// Check global error codes before falling through to unknown
|
|
280
|
+
if (errorCode !== undefined && errorCode in GLOBAL_ERROR_CODE_MAP) {
|
|
281
|
+
return Effect.fail(GLOBAL_ERROR_CODE_MAP[errorCode](errorMessage));
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// No match — return unknown Cloudflare error
|
|
285
|
+
return Effect.fail(
|
|
286
|
+
new UnknownCloudflareError({
|
|
287
|
+
code: errorCode,
|
|
288
|
+
message: errorMessage,
|
|
289
|
+
}),
|
|
290
|
+
);
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Wrap schema decode failures as CloudflareHttpError to match the original's behavior.
|
|
295
|
+
* The original project maps all decode errors to CloudflareHttpError (not a separate parse error type).
|
|
296
|
+
*/
|
|
297
|
+
class CloudflareDecodeError extends CloudflareHttpError {
|
|
298
|
+
constructor(props: { body: unknown; cause: unknown }) {
|
|
299
|
+
super({
|
|
300
|
+
status: 200,
|
|
301
|
+
statusText: "Schema decode failed",
|
|
302
|
+
body:
|
|
303
|
+
typeof props.body === "string"
|
|
304
|
+
? props.body
|
|
305
|
+
: JSON.stringify(props.body),
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
const _API = makeAPI({
|
|
311
|
+
credentials: Credentials as any,
|
|
312
|
+
getBaseUrl: (creds: any) => creds.apiBaseUrl,
|
|
313
|
+
getAuthHeaders: (creds: any) => ({
|
|
314
|
+
Authorization: `Bearer ${creds.apiToken}`,
|
|
315
|
+
}),
|
|
316
|
+
matchError,
|
|
317
|
+
ParseError: CloudflareDecodeError as any,
|
|
318
|
+
transformResponse: (body: unknown) => {
|
|
319
|
+
// Cloudflare API wraps responses in { result: <data>, success, errors, messages }
|
|
320
|
+
if (typeof body === "object" && body !== null && "result" in body) {
|
|
321
|
+
// result: null is common for delete operations — treat as empty object
|
|
322
|
+
return (body as any).result ?? {};
|
|
323
|
+
}
|
|
324
|
+
return body;
|
|
325
|
+
},
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
export const make = _API.make;
|
|
329
|
+
export const makePaginated = _API.makePaginated;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import * as ServiceMap from "effect/ServiceMap";
|
|
4
|
+
import { ConfigError } from "@distilled.cloud/core/errors";
|
|
5
|
+
|
|
6
|
+
export const DEFAULT_API_BASE_URL = "https://api.cloudflare.com/client/v4";
|
|
7
|
+
|
|
8
|
+
export interface Config {
|
|
9
|
+
readonly apiToken: string;
|
|
10
|
+
readonly apiBaseUrl: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export class Credentials extends ServiceMap.Service<Credentials, Config>()(
|
|
14
|
+
"CloudflareCredentials",
|
|
15
|
+
) {}
|
|
16
|
+
|
|
17
|
+
export const CredentialsFromEnv = Layer.effect(
|
|
18
|
+
Credentials,
|
|
19
|
+
Effect.gen(function* () {
|
|
20
|
+
const apiToken = process.env.CLOUDFLARE_API_TOKEN;
|
|
21
|
+
|
|
22
|
+
if (!apiToken) {
|
|
23
|
+
return yield* new ConfigError({
|
|
24
|
+
message: "CLOUDFLARE_API_TOKEN environment variable is required",
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return { apiToken, apiBaseUrl: DEFAULT_API_BASE_URL };
|
|
29
|
+
}),
|
|
30
|
+
);
|
package/src/errors.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare-specific error types.
|
|
3
|
+
*/
|
|
4
|
+
export {
|
|
5
|
+
BadGateway,
|
|
6
|
+
BadRequest,
|
|
7
|
+
Conflict,
|
|
8
|
+
ConfigError,
|
|
9
|
+
Forbidden,
|
|
10
|
+
GatewayTimeout,
|
|
11
|
+
InternalServerError,
|
|
12
|
+
NotFound,
|
|
13
|
+
ServiceUnavailable,
|
|
14
|
+
TooManyRequests,
|
|
15
|
+
Unauthorized,
|
|
16
|
+
UnprocessableEntity,
|
|
17
|
+
HTTP_STATUS_MAP,
|
|
18
|
+
DEFAULT_ERRORS,
|
|
19
|
+
API_ERRORS,
|
|
20
|
+
} from "@distilled.cloud/core/errors";
|
|
21
|
+
export type { DefaultErrors } from "@distilled.cloud/core/errors";
|
|
22
|
+
|
|
23
|
+
import * as Schema from "effect/Schema";
|
|
24
|
+
import * as Category from "@distilled.cloud/core/category";
|
|
25
|
+
|
|
26
|
+
// Schema parse error wrapper
|
|
27
|
+
export class CloudflareParseError extends Schema.TaggedErrorClass<CloudflareParseError>()(
|
|
28
|
+
"CloudflareParseError",
|
|
29
|
+
{
|
|
30
|
+
body: Schema.Unknown,
|
|
31
|
+
cause: Schema.Unknown,
|
|
32
|
+
},
|
|
33
|
+
).pipe(Category.withParseError) {}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Unknown Cloudflare error - returned when an error code is not recognized.
|
|
37
|
+
* Contains the raw error code for later cataloging.
|
|
38
|
+
*/
|
|
39
|
+
export class UnknownCloudflareError extends Schema.TaggedErrorClass<UnknownCloudflareError>()(
|
|
40
|
+
"UnknownCloudflareError",
|
|
41
|
+
{
|
|
42
|
+
code: Schema.optional(Schema.Number),
|
|
43
|
+
message: Schema.String,
|
|
44
|
+
},
|
|
45
|
+
) {}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* HTTP error - non-2xx response without a parseable Cloudflare error body.
|
|
49
|
+
*/
|
|
50
|
+
export class CloudflareHttpError extends Schema.TaggedErrorClass<CloudflareHttpError>()(
|
|
51
|
+
"CloudflareHttpError",
|
|
52
|
+
{
|
|
53
|
+
status: Schema.Number,
|
|
54
|
+
statusText: Schema.String,
|
|
55
|
+
body: Schema.optional(Schema.String),
|
|
56
|
+
},
|
|
57
|
+
) {}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare SDK for Effect
|
|
3
|
+
*/
|
|
4
|
+
export * from "./credentials.ts";
|
|
5
|
+
export * as Category from "./category.ts";
|
|
6
|
+
export * as T from "./traits.ts";
|
|
7
|
+
export * as Retry from "./retry.ts";
|
|
8
|
+
export * as API from "./client/api.ts";
|
|
9
|
+
export * from "./errors.ts";
|
package/src/retry.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import * as ServiceMap from "effect/ServiceMap";
|
|
4
|
+
export {
|
|
5
|
+
type Options,
|
|
6
|
+
type Factory,
|
|
7
|
+
type Policy,
|
|
8
|
+
makeDefault,
|
|
9
|
+
jittered,
|
|
10
|
+
capped,
|
|
11
|
+
throttlingOptions,
|
|
12
|
+
transientOptions,
|
|
13
|
+
} from "@distilled.cloud/core/retry";
|
|
14
|
+
import {
|
|
15
|
+
type Policy,
|
|
16
|
+
throttlingOptions,
|
|
17
|
+
transientOptions,
|
|
18
|
+
} from "@distilled.cloud/core/retry";
|
|
19
|
+
|
|
20
|
+
export class Retry extends ServiceMap.Service<Retry, Policy>()(
|
|
21
|
+
"CloudflareRetry",
|
|
22
|
+
) {}
|
|
23
|
+
|
|
24
|
+
export const policy = (optionsOrFactory: Policy) =>
|
|
25
|
+
Effect.provide(Layer.succeed(Retry, optionsOrFactory));
|
|
26
|
+
|
|
27
|
+
export const none = Effect.provide(
|
|
28
|
+
Layer.succeed(Retry, { while: () => false }),
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
/** Apply throttling retry policy (retries throttling errors indefinitely) */
|
|
32
|
+
export const throttling = policy(throttlingOptions);
|
|
33
|
+
|
|
34
|
+
/** Apply transient retry policy (retries all transient errors indefinitely) */
|
|
35
|
+
export const transient = policy(transientOptions);
|
package/src/schemas.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common schemas for Cloudflare API types.
|
|
3
|
+
*
|
|
4
|
+
* Includes file upload schemas for multipart form-data operations.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import * as Schema from "effect/Schema";
|
|
8
|
+
|
|
9
|
+
// =============================================================================
|
|
10
|
+
// File Upload Schemas
|
|
11
|
+
// =============================================================================
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Schema for File objects (browser File API).
|
|
15
|
+
*
|
|
16
|
+
* Used for multipart form-data file uploads.
|
|
17
|
+
*/
|
|
18
|
+
export const FileSchema = Schema.declare(
|
|
19
|
+
(input): input is File =>
|
|
20
|
+
typeof File !== "undefined" && input instanceof File,
|
|
21
|
+
{
|
|
22
|
+
identifier: "File",
|
|
23
|
+
description: "A File object for upload",
|
|
24
|
+
},
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Schema for Blob objects.
|
|
29
|
+
*
|
|
30
|
+
* Used for binary data uploads.
|
|
31
|
+
*/
|
|
32
|
+
export const BlobSchema = Schema.declare(
|
|
33
|
+
(input): input is Blob =>
|
|
34
|
+
typeof Blob !== "undefined" && input instanceof Blob,
|
|
35
|
+
{
|
|
36
|
+
identifier: "Blob",
|
|
37
|
+
description: "A Blob object for upload",
|
|
38
|
+
},
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Schema for uploadable content (File or Blob).
|
|
43
|
+
*
|
|
44
|
+
* Accepts any file-like object that can be uploaded via multipart form.
|
|
45
|
+
*/
|
|
46
|
+
export const UploadableSchema = Schema.Union([FileSchema, BlobSchema]);
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* TypeScript type for uploadable content.
|
|
50
|
+
*/
|
|
51
|
+
export type Uploadable = File | Blob;
|