alchemy 0.67.0 → 0.68.0
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/alchemy.js +25563 -26265
- package/bin/alchemy.ts +6 -2
- package/bin/commands/configure.ts +194 -0
- package/bin/commands/login.ts +99 -55
- package/bin/commands/logout.ts +66 -0
- package/bin/trpc.ts +27 -2
- package/lib/apply.d.ts +2 -2
- package/lib/apply.d.ts.map +1 -1
- package/lib/apply.js +18 -15
- package/lib/apply.js.map +1 -1
- package/lib/auth.d.ts +72 -0
- package/lib/auth.d.ts.map +1 -0
- package/lib/auth.js +163 -0
- package/lib/auth.js.map +1 -0
- package/lib/aws/bucket.d.ts +12 -3
- package/lib/aws/bucket.d.ts.map +1 -1
- package/lib/aws/bucket.js +2 -2
- package/lib/aws/bucket.js.map +1 -1
- package/lib/aws/control/resource.d.ts +34 -3
- package/lib/aws/control/resource.d.ts.map +1 -1
- package/lib/aws/control/resource.js +3 -3
- package/lib/aws/control/resource.js.map +1 -1
- package/lib/aws/ec2/internet-gateway-attachment.d.ts +1 -2
- package/lib/aws/ec2/internet-gateway-attachment.d.ts.map +1 -1
- package/lib/aws/ec2/internet-gateway-attachment.js +4 -4
- package/lib/aws/ec2/internet-gateway-attachment.js.map +1 -1
- package/lib/aws/ec2/internet-gateway.d.ts +1 -2
- package/lib/aws/ec2/internet-gateway.d.ts.map +1 -1
- package/lib/aws/ec2/internet-gateway.js +2 -2
- package/lib/aws/ec2/internet-gateway.js.map +1 -1
- package/lib/aws/ec2/nat-gateway.d.ts +1 -2
- package/lib/aws/ec2/nat-gateway.d.ts.map +1 -1
- package/lib/aws/ec2/nat-gateway.js +2 -2
- package/lib/aws/ec2/nat-gateway.js.map +1 -1
- package/lib/aws/ec2/route-table-association.d.ts +1 -2
- package/lib/aws/ec2/route-table-association.d.ts.map +1 -1
- package/lib/aws/ec2/route-table-association.js +2 -2
- package/lib/aws/ec2/route-table-association.js.map +1 -1
- package/lib/aws/ec2/route-table.d.ts +1 -2
- package/lib/aws/ec2/route-table.d.ts.map +1 -1
- package/lib/aws/ec2/route-table.js +2 -2
- package/lib/aws/ec2/route-table.js.map +1 -1
- package/lib/aws/ec2/route.d.ts +1 -2
- package/lib/aws/ec2/route.d.ts.map +1 -1
- package/lib/aws/ec2/route.js +2 -2
- package/lib/aws/ec2/route.js.map +1 -1
- package/lib/aws/ec2/security-group-rule.d.ts +1 -2
- package/lib/aws/ec2/security-group-rule.d.ts.map +1 -1
- package/lib/aws/ec2/security-group-rule.js +2 -2
- package/lib/aws/ec2/security-group-rule.js.map +1 -1
- package/lib/aws/ec2/security-group.d.ts +1 -2
- package/lib/aws/ec2/security-group.d.ts.map +1 -1
- package/lib/aws/ec2/security-group.js +2 -2
- package/lib/aws/ec2/security-group.js.map +1 -1
- package/lib/aws/ec2/subnet.d.ts +1 -2
- package/lib/aws/ec2/subnet.d.ts.map +1 -1
- package/lib/aws/ec2/subnet.js +2 -2
- package/lib/aws/ec2/subnet.js.map +1 -1
- package/lib/aws/ec2/vpc.d.ts +1 -2
- package/lib/aws/ec2/vpc.d.ts.map +1 -1
- package/lib/aws/ec2/vpc.js +2 -2
- package/lib/aws/ec2/vpc.js.map +1 -1
- package/lib/aws/function.d.ts +116 -3
- package/lib/aws/function.d.ts.map +1 -1
- package/lib/aws/function.js +2 -2
- package/lib/aws/function.js.map +1 -1
- package/lib/aws/oidc/github-oidc-provider.d.ts +13 -2
- package/lib/aws/oidc/github-oidc-provider.d.ts.map +1 -1
- package/lib/aws/oidc/oidc-provider.d.ts +48 -3
- package/lib/aws/oidc/oidc-provider.d.ts.map +1 -1
- package/lib/aws/oidc/oidc-provider.js +2 -2
- package/lib/aws/oidc/oidc-provider.js.map +1 -1
- package/lib/aws/policy-attachment.d.ts +2 -3
- package/lib/aws/policy-attachment.d.ts.map +1 -1
- package/lib/aws/policy-attachment.js +1 -1
- package/lib/aws/policy-attachment.js.map +1 -1
- package/lib/aws/policy.d.ts +1 -2
- package/lib/aws/policy.d.ts.map +1 -1
- package/lib/aws/policy.js +4 -4
- package/lib/aws/policy.js.map +1 -1
- package/lib/aws/queue.d.ts +1 -2
- package/lib/aws/queue.d.ts.map +1 -1
- package/lib/aws/queue.js +4 -4
- package/lib/aws/queue.js.map +1 -1
- package/lib/aws/role.d.ts +1 -2
- package/lib/aws/role.d.ts.map +1 -1
- package/lib/aws/role.js +2 -2
- package/lib/aws/role.js.map +1 -1
- package/lib/aws/ses.d.ts +1 -2
- package/lib/aws/ses.d.ts.map +1 -1
- package/lib/aws/ses.js +2 -2
- package/lib/aws/ses.js.map +1 -1
- package/lib/aws/ssm-parameter.d.ts +1 -2
- package/lib/aws/ssm-parameter.d.ts.map +1 -1
- package/lib/aws/ssm-parameter.js +2 -2
- package/lib/aws/ssm-parameter.js.map +1 -1
- package/lib/aws/table.d.ts +1 -2
- package/lib/aws/table.d.ts.map +1 -1
- package/lib/aws/table.js +2 -2
- package/lib/aws/table.js.map +1 -1
- package/lib/cloudflare/account-api-token.d.ts +1 -2
- package/lib/cloudflare/account-api-token.d.ts.map +1 -1
- package/lib/cloudflare/account-api-token.js +2 -2
- package/lib/cloudflare/account-api-token.js.map +1 -1
- package/lib/cloudflare/ai-gateway.d.ts +1 -2
- package/lib/cloudflare/ai-gateway.d.ts.map +1 -1
- package/lib/cloudflare/ai-gateway.js +2 -2
- package/lib/cloudflare/ai-gateway.js.map +1 -1
- package/lib/cloudflare/api-gateway-operation.d.ts +1 -2
- package/lib/cloudflare/api-gateway-operation.d.ts.map +1 -1
- package/lib/cloudflare/api-gateway-operation.js +2 -2
- package/lib/cloudflare/api-gateway-operation.js.map +1 -1
- package/lib/cloudflare/api-schema.d.ts +1 -2
- package/lib/cloudflare/api-schema.d.ts.map +1 -1
- package/lib/cloudflare/api-schema.js +2 -2
- package/lib/cloudflare/api-schema.js.map +1 -1
- package/lib/cloudflare/api-shield.d.ts +1 -2
- package/lib/cloudflare/api-shield.d.ts.map +1 -1
- package/lib/cloudflare/api-shield.js +2 -2
- package/lib/cloudflare/api-shield.js.map +1 -1
- package/lib/cloudflare/api.d.ts +18 -10
- package/lib/cloudflare/api.d.ts.map +1 -1
- package/lib/cloudflare/api.js +93 -38
- package/lib/cloudflare/api.js.map +1 -1
- package/lib/cloudflare/assets.d.ts +21 -43
- package/lib/cloudflare/assets.d.ts.map +1 -1
- package/lib/cloudflare/assets.js +78 -70
- package/lib/cloudflare/assets.js.map +1 -1
- package/lib/cloudflare/auth.d.ts +91 -17
- package/lib/cloudflare/auth.d.ts.map +1 -1
- package/lib/cloudflare/auth.js +141 -62
- package/lib/cloudflare/auth.js.map +1 -1
- package/lib/cloudflare/bound.d.ts +1 -1
- package/lib/cloudflare/bound.d.ts.map +1 -1
- package/lib/cloudflare/bucket.d.ts +60 -8
- package/lib/cloudflare/bucket.d.ts.map +1 -1
- package/lib/cloudflare/bucket.js +161 -18
- package/lib/cloudflare/bucket.js.map +1 -1
- package/lib/cloudflare/bundle/plugin-wasm.js +4 -2
- package/lib/cloudflare/bundle/plugin-wasm.js.map +1 -1
- package/lib/cloudflare/certificate-pack.d.ts +1 -2
- package/lib/cloudflare/certificate-pack.d.ts.map +1 -1
- package/lib/cloudflare/certificate-pack.js +4 -4
- package/lib/cloudflare/certificate-pack.js.map +1 -1
- package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
- package/lib/cloudflare/compatibility-date.gen.js +1 -1
- package/lib/cloudflare/container.d.ts +1 -2
- package/lib/cloudflare/container.d.ts.map +1 -1
- package/lib/cloudflare/container.js +6 -6
- package/lib/cloudflare/container.js.map +1 -1
- package/lib/cloudflare/custom-domain.d.ts +1 -2
- package/lib/cloudflare/custom-domain.d.ts.map +1 -1
- package/lib/cloudflare/custom-domain.js +2 -2
- package/lib/cloudflare/custom-domain.js.map +1 -1
- package/lib/cloudflare/d1-database.d.ts +2 -3
- package/lib/cloudflare/d1-database.d.ts.map +1 -1
- package/lib/cloudflare/d1-database.js +5 -5
- package/lib/cloudflare/d1-database.js.map +1 -1
- package/lib/cloudflare/dispatch-namespace.d.ts +2 -3
- package/lib/cloudflare/dispatch-namespace.d.ts.map +1 -1
- package/lib/cloudflare/dispatch-namespace.js +3 -3
- package/lib/cloudflare/dispatch-namespace.js.map +1 -1
- package/lib/cloudflare/dns-records.d.ts +1 -2
- package/lib/cloudflare/dns-records.d.ts.map +1 -1
- package/lib/cloudflare/dns-records.js +4 -4
- package/lib/cloudflare/dns-records.js.map +1 -1
- package/lib/cloudflare/email-address.d.ts +1 -2
- package/lib/cloudflare/email-address.d.ts.map +1 -1
- package/lib/cloudflare/email-address.js +6 -6
- package/lib/cloudflare/email-address.js.map +1 -1
- package/lib/cloudflare/email-catch-all.d.ts +1 -2
- package/lib/cloudflare/email-catch-all.d.ts.map +1 -1
- package/lib/cloudflare/email-catch-all.js +4 -4
- package/lib/cloudflare/email-catch-all.js.map +1 -1
- package/lib/cloudflare/email-routing.d.ts +1 -2
- package/lib/cloudflare/email-routing.d.ts.map +1 -1
- package/lib/cloudflare/email-routing.js +4 -4
- package/lib/cloudflare/email-routing.js.map +1 -1
- package/lib/cloudflare/email-rule.d.ts +1 -2
- package/lib/cloudflare/email-rule.d.ts.map +1 -1
- package/lib/cloudflare/email-rule.js +4 -4
- package/lib/cloudflare/email-rule.js.map +1 -1
- package/lib/cloudflare/hyperdrive.d.ts +1 -2
- package/lib/cloudflare/hyperdrive.d.ts.map +1 -1
- package/lib/cloudflare/hyperdrive.js +4 -4
- package/lib/cloudflare/hyperdrive.js.map +1 -1
- package/lib/cloudflare/kv-namespace.d.ts +2 -3
- package/lib/cloudflare/kv-namespace.d.ts.map +1 -1
- package/lib/cloudflare/kv-namespace.js +5 -5
- package/lib/cloudflare/kv-namespace.js.map +1 -1
- package/lib/cloudflare/miniflare/delete.js +1 -1
- package/lib/cloudflare/miniflare/delete.js.map +1 -1
- package/lib/cloudflare/miniflare/miniflare-worker-proxy.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/miniflare-worker-proxy.js +2 -7
- package/lib/cloudflare/miniflare/miniflare-worker-proxy.js.map +1 -1
- package/lib/cloudflare/miniflare/remote-binding-proxy.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/remote-binding-proxy.js +15 -4
- package/lib/cloudflare/miniflare/remote-binding-proxy.js.map +1 -1
- package/lib/cloudflare/permission-groups.d.ts +1 -2
- package/lib/cloudflare/permission-groups.d.ts.map +1 -1
- package/lib/cloudflare/permission-groups.js +1 -1
- package/lib/cloudflare/permission-groups.js.map +1 -1
- package/lib/cloudflare/pipeline.d.ts +2 -3
- package/lib/cloudflare/pipeline.d.ts.map +1 -1
- package/lib/cloudflare/pipeline.js +5 -5
- package/lib/cloudflare/pipeline.js.map +1 -1
- package/lib/cloudflare/queue-consumer.d.ts +1 -2
- package/lib/cloudflare/queue-consumer.d.ts.map +1 -1
- package/lib/cloudflare/queue-consumer.js +4 -4
- package/lib/cloudflare/queue-consumer.js.map +1 -1
- package/lib/cloudflare/queue.d.ts +1 -2
- package/lib/cloudflare/queue.d.ts.map +1 -1
- package/lib/cloudflare/queue.js +4 -4
- package/lib/cloudflare/queue.js.map +1 -1
- package/lib/cloudflare/react-router/plugin.d.ts.map +1 -1
- package/lib/cloudflare/react-router/plugin.js +13 -0
- package/lib/cloudflare/react-router/plugin.js.map +1 -1
- package/lib/cloudflare/redirect-rule.d.ts +1 -2
- package/lib/cloudflare/redirect-rule.d.ts.map +1 -1
- package/lib/cloudflare/redirect-rule.js +4 -4
- package/lib/cloudflare/redirect-rule.js.map +1 -1
- package/lib/cloudflare/route.d.ts +1 -2
- package/lib/cloudflare/route.d.ts.map +1 -1
- package/lib/cloudflare/route.js +4 -4
- package/lib/cloudflare/route.js.map +1 -1
- package/lib/cloudflare/ruleset.d.ts +1 -2
- package/lib/cloudflare/ruleset.d.ts.map +1 -1
- package/lib/cloudflare/ruleset.js +2 -2
- package/lib/cloudflare/ruleset.js.map +1 -1
- package/lib/cloudflare/secret.d.ts +2 -3
- package/lib/cloudflare/secret.d.ts.map +1 -1
- package/lib/cloudflare/secret.js +3 -3
- package/lib/cloudflare/secret.js.map +1 -1
- package/lib/cloudflare/secrets-store.d.ts +2 -3
- package/lib/cloudflare/secrets-store.d.ts.map +1 -1
- package/lib/cloudflare/secrets-store.js +3 -3
- package/lib/cloudflare/secrets-store.js.map +1 -1
- package/lib/cloudflare/tunnel.d.ts +2 -3
- package/lib/cloudflare/tunnel.d.ts.map +1 -1
- package/lib/cloudflare/tunnel.js +3 -3
- package/lib/cloudflare/tunnel.js.map +1 -1
- package/lib/cloudflare/user.d.ts +3 -2
- package/lib/cloudflare/user.d.ts.map +1 -1
- package/lib/cloudflare/user.js +7 -5
- package/lib/cloudflare/user.js.map +1 -1
- package/lib/cloudflare/vectorize-index.d.ts +2 -3
- package/lib/cloudflare/vectorize-index.d.ts.map +1 -1
- package/lib/cloudflare/vectorize-index.js +6 -6
- package/lib/cloudflare/vectorize-index.js.map +1 -1
- package/lib/cloudflare/vectorize-metadata-index.d.ts +2 -3
- package/lib/cloudflare/vectorize-metadata-index.d.ts.map +1 -1
- package/lib/cloudflare/vectorize-metadata-index.js +4 -4
- package/lib/cloudflare/vectorize-metadata-index.js.map +1 -1
- package/lib/cloudflare/website.js +1 -1
- package/lib/cloudflare/website.js.map +1 -1
- package/lib/cloudflare/worker-assets.d.ts +1 -29
- package/lib/cloudflare/worker-assets.d.ts.map +1 -1
- package/lib/cloudflare/worker-assets.js +9 -42
- package/lib/cloudflare/worker-assets.js.map +1 -1
- package/lib/cloudflare/worker-stub.d.ts +2 -3
- package/lib/cloudflare/worker-stub.d.ts.map +1 -1
- package/lib/cloudflare/worker-stub.js +3 -3
- package/lib/cloudflare/worker-stub.js.map +1 -1
- package/lib/cloudflare/worker-subdomain.d.ts +4 -3
- package/lib/cloudflare/worker-subdomain.d.ts.map +1 -1
- package/lib/cloudflare/worker-subdomain.js +5 -5
- package/lib/cloudflare/worker-subdomain.js.map +1 -1
- package/lib/cloudflare/worker.d.ts +3 -4
- package/lib/cloudflare/worker.d.ts.map +1 -1
- package/lib/cloudflare/worker.js +6 -5
- package/lib/cloudflare/worker.js.map +1 -1
- package/lib/cloudflare/zone.d.ts +1 -2
- package/lib/cloudflare/zone.d.ts.map +1 -1
- package/lib/cloudflare/zone.js +2 -2
- package/lib/cloudflare/zone.js.map +1 -1
- package/lib/context.d.ts +8 -8
- package/lib/context.d.ts.map +1 -1
- package/lib/context.js.map +1 -1
- package/lib/destroy.d.ts +1 -1
- package/lib/destroy.d.ts.map +1 -1
- package/lib/destroy.js.map +1 -1
- package/lib/dns/import-dns.d.ts +1 -2
- package/lib/dns/import-dns.d.ts.map +1 -1
- package/lib/dns/import-dns.js +2 -2
- package/lib/dns/import-dns.js.map +1 -1
- package/lib/docker/container.d.ts +1 -2
- package/lib/docker/container.d.ts.map +1 -1
- package/lib/docker/container.js +2 -3
- package/lib/docker/container.js.map +1 -1
- package/lib/docker/image.d.ts +1 -2
- package/lib/docker/image.d.ts.map +1 -1
- package/lib/docker/image.js +9 -9
- package/lib/docker/image.js.map +1 -1
- package/lib/docker/network.d.ts +1 -2
- package/lib/docker/network.d.ts.map +1 -1
- package/lib/docker/network.js +2 -3
- package/lib/docker/network.js.map +1 -1
- package/lib/docker/remote-image.d.ts +1 -2
- package/lib/docker/remote-image.d.ts.map +1 -1
- package/lib/docker/remote-image.js +2 -3
- package/lib/docker/remote-image.js.map +1 -1
- package/lib/docker/volume.d.ts +1 -2
- package/lib/docker/volume.d.ts.map +1 -1
- package/lib/docker/volume.js +2 -3
- package/lib/docker/volume.js.map +1 -1
- package/lib/esbuild/bundle.d.ts +1 -2
- package/lib/esbuild/bundle.d.ts.map +1 -1
- package/lib/esbuild/bundle.js +4 -4
- package/lib/esbuild/bundle.js.map +1 -1
- package/lib/fs/copy-file.d.ts +1 -2
- package/lib/fs/copy-file.d.ts.map +1 -1
- package/lib/fs/copy-file.js +2 -2
- package/lib/fs/copy-file.js.map +1 -1
- package/lib/fs/file.d.ts +1 -2
- package/lib/fs/file.d.ts.map +1 -1
- package/lib/fs/file.js +2 -2
- package/lib/fs/file.js.map +1 -1
- package/lib/fs/folder.d.ts +1 -2
- package/lib/fs/folder.d.ts.map +1 -1
- package/lib/fs/folder.js +2 -2
- package/lib/fs/folder.js.map +1 -1
- package/lib/github/comment.d.ts +1 -2
- package/lib/github/comment.d.ts.map +1 -1
- package/lib/github/comment.js +4 -4
- package/lib/github/comment.js.map +1 -1
- package/lib/github/repository-environment.d.ts +1 -2
- package/lib/github/repository-environment.d.ts.map +1 -1
- package/lib/github/repository-environment.js +2 -2
- package/lib/github/repository-environment.js.map +1 -1
- package/lib/github/repository-webhook.d.ts +1 -2
- package/lib/github/repository-webhook.d.ts.map +1 -1
- package/lib/github/repository-webhook.js +2 -2
- package/lib/github/repository-webhook.js.map +1 -1
- package/lib/github/secret.d.ts +1 -2
- package/lib/github/secret.d.ts.map +1 -1
- package/lib/github/secret.js +2 -2
- package/lib/github/secret.js.map +1 -1
- package/lib/neon/api/client.gen.d.ts +13 -0
- package/lib/neon/api/client.gen.d.ts.map +1 -0
- package/lib/neon/api/client.gen.js +7 -0
- package/lib/neon/api/client.gen.js.map +1 -0
- package/lib/neon/api/sdk.gen.d.ts +880 -0
- package/lib/neon/api/sdk.gen.d.ts.map +1 -0
- package/lib/neon/api/sdk.gen.js +1527 -0
- package/lib/neon/api/sdk.gen.js.map +1 -0
- package/lib/neon/api/types.gen.d.ts +7250 -0
- package/lib/neon/api/types.gen.d.ts.map +1 -0
- package/lib/neon/api/types.gen.js +2 -0
- package/lib/neon/api/types.gen.js.map +1 -0
- package/lib/neon/api.d.ts +14 -49
- package/lib/neon/api.d.ts.map +1 -1
- package/lib/neon/api.js +36 -114
- package/lib/neon/api.js.map +1 -1
- package/lib/neon/branch.d.ts +141 -0
- package/lib/neon/branch.d.ts.map +1 -0
- package/lib/neon/branch.js +112 -0
- package/lib/neon/branch.js.map +1 -0
- package/lib/neon/index.d.ts +1 -1
- package/lib/neon/index.d.ts.map +1 -1
- package/lib/neon/index.js +1 -1
- package/lib/neon/index.js.map +1 -1
- package/lib/neon/project.d.ts +32 -242
- package/lib/neon/project.d.ts.map +1 -1
- package/lib/neon/project.js +90 -269
- package/lib/neon/project.js.map +1 -1
- package/lib/neon/utils.d.ts +49 -0
- package/lib/neon/utils.d.ts.map +1 -0
- package/lib/neon/utils.js +44 -0
- package/lib/neon/utils.js.map +1 -0
- package/lib/os/exec.d.ts +1 -2
- package/lib/os/exec.d.ts.map +1 -1
- package/lib/os/exec.js +2 -2
- package/lib/os/exec.js.map +1 -1
- package/lib/planetscale/api/client.gen.d.ts +12 -1749
- package/lib/planetscale/api/client.gen.d.ts.map +1 -1
- package/lib/planetscale/api/client.gen.js +6 -2400
- package/lib/planetscale/api/client.gen.js.map +1 -1
- package/lib/planetscale/api/sdk.gen.d.ts +1582 -0
- package/lib/planetscale/api/sdk.gen.d.ts.map +1 -0
- package/lib/planetscale/api/sdk.gen.js +2219 -0
- package/lib/planetscale/api/sdk.gen.js.map +1 -0
- package/lib/planetscale/api/types.gen.d.ts +594 -449
- package/lib/planetscale/api/types.gen.d.ts.map +1 -1
- package/lib/planetscale/api.d.ts +43 -0
- package/lib/planetscale/api.d.ts.map +1 -0
- package/lib/planetscale/api.js +53 -0
- package/lib/planetscale/api.js.map +1 -0
- package/lib/planetscale/branch.d.ts +2 -3
- package/lib/planetscale/branch.d.ts.map +1 -1
- package/lib/planetscale/branch.js +17 -15
- package/lib/planetscale/branch.js.map +1 -1
- package/lib/planetscale/database.d.ts +2 -3
- package/lib/planetscale/database.d.ts.map +1 -1
- package/lib/planetscale/database.js +34 -34
- package/lib/planetscale/database.js.map +1 -1
- package/lib/planetscale/index.d.ts +1 -1
- package/lib/planetscale/index.d.ts.map +1 -1
- package/lib/planetscale/index.js +1 -1
- package/lib/planetscale/index.js.map +1 -1
- package/lib/planetscale/password.d.ts +2 -3
- package/lib/planetscale/password.d.ts.map +1 -1
- package/lib/planetscale/password.js +11 -11
- package/lib/planetscale/password.js.map +1 -1
- package/lib/planetscale/role.d.ts +2 -3
- package/lib/planetscale/role.d.ts.map +1 -1
- package/lib/planetscale/role.js +18 -18
- package/lib/planetscale/role.js.map +1 -1
- package/lib/planetscale/utils.d.ts +1 -1
- package/lib/planetscale/utils.d.ts.map +1 -1
- package/lib/planetscale/utils.js +17 -33
- package/lib/planetscale/utils.js.map +1 -1
- package/lib/random/random-string.d.ts +1 -2
- package/lib/random/random-string.d.ts.map +1 -1
- package/lib/random/random-string.js +3 -3
- package/lib/random/random-string.js.map +1 -1
- package/lib/resource.d.ts +4 -1
- package/lib/resource.d.ts.map +1 -1
- package/lib/resource.js.map +1 -1
- package/lib/sentry/client-key.d.ts +1 -2
- package/lib/sentry/client-key.d.ts.map +1 -1
- package/lib/sentry/client-key.js +2 -2
- package/lib/sentry/client-key.js.map +1 -1
- package/lib/sentry/project.d.ts +1 -2
- package/lib/sentry/project.d.ts.map +1 -1
- package/lib/sentry/project.js +2 -2
- package/lib/sentry/project.js.map +1 -1
- package/lib/sentry/team.d.ts +1 -2
- package/lib/sentry/team.d.ts.map +1 -1
- package/lib/sentry/team.js +2 -2
- package/lib/sentry/team.js.map +1 -1
- package/lib/state/r2-rest-state-store.d.ts +1 -0
- package/lib/state/r2-rest-state-store.d.ts.map +1 -1
- package/lib/state/r2-rest-state-store.js +15 -34
- package/lib/state/r2-rest-state-store.js.map +1 -1
- package/lib/stripe/card.d.ts +1 -2
- package/lib/stripe/card.d.ts.map +1 -1
- package/lib/stripe/card.js +2 -2
- package/lib/stripe/card.js.map +1 -1
- package/lib/stripe/coupon.d.ts +1 -2
- package/lib/stripe/coupon.d.ts.map +1 -1
- package/lib/stripe/coupon.js +2 -2
- package/lib/stripe/coupon.js.map +1 -1
- package/lib/stripe/customer.d.ts +1 -2
- package/lib/stripe/customer.d.ts.map +1 -1
- package/lib/stripe/customer.js +2 -2
- package/lib/stripe/customer.js.map +1 -1
- package/lib/stripe/entitlements-feature.d.ts +1 -2
- package/lib/stripe/entitlements-feature.d.ts.map +1 -1
- package/lib/stripe/entitlements-feature.js +2 -2
- package/lib/stripe/entitlements-feature.js.map +1 -1
- package/lib/stripe/file.d.ts +1 -2
- package/lib/stripe/file.d.ts.map +1 -1
- package/lib/stripe/file.js +2 -2
- package/lib/stripe/file.js.map +1 -1
- package/lib/stripe/meter.d.ts +1 -2
- package/lib/stripe/meter.d.ts.map +1 -1
- package/lib/stripe/meter.js +1 -1
- package/lib/stripe/meter.js.map +1 -1
- package/lib/stripe/portal-configuration.d.ts +1 -2
- package/lib/stripe/portal-configuration.d.ts.map +1 -1
- package/lib/stripe/portal-configuration.js +2 -2
- package/lib/stripe/portal-configuration.js.map +1 -1
- package/lib/stripe/price.d.ts +1 -2
- package/lib/stripe/price.d.ts.map +1 -1
- package/lib/stripe/price.js +2 -2
- package/lib/stripe/price.js.map +1 -1
- package/lib/stripe/product-feature.d.ts +1 -2
- package/lib/stripe/product-feature.d.ts.map +1 -1
- package/lib/stripe/product-feature.js +2 -2
- package/lib/stripe/product-feature.js.map +1 -1
- package/lib/stripe/product.d.ts +1 -2
- package/lib/stripe/product.d.ts.map +1 -1
- package/lib/stripe/product.js +2 -2
- package/lib/stripe/product.js.map +1 -1
- package/lib/stripe/promotion-code.d.ts +1 -2
- package/lib/stripe/promotion-code.d.ts.map +1 -1
- package/lib/stripe/promotion-code.js +2 -2
- package/lib/stripe/promotion-code.js.map +1 -1
- package/lib/stripe/shipping-rate.d.ts +1 -2
- package/lib/stripe/shipping-rate.d.ts.map +1 -1
- package/lib/stripe/shipping-rate.js +2 -2
- package/lib/stripe/shipping-rate.js.map +1 -1
- package/lib/stripe/tax-rate.d.ts +1 -2
- package/lib/stripe/tax-rate.d.ts.map +1 -1
- package/lib/stripe/tax-rate.js +2 -2
- package/lib/stripe/tax-rate.js.map +1 -1
- package/lib/stripe/webhook.d.ts +16 -3
- package/lib/stripe/webhook.d.ts.map +1 -1
- package/lib/stripe/webhook.js +2 -2
- package/lib/stripe/webhook.js.map +1 -1
- package/lib/test/bun.d.ts.map +1 -1
- package/lib/test/bun.js +1 -0
- package/lib/test/bun.js.map +1 -1
- package/lib/test/options.d.ts +5 -0
- package/lib/test/options.d.ts.map +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/upstash/redis.d.ts +1 -2
- package/lib/upstash/redis.d.ts.map +1 -1
- package/lib/upstash/redis.js.map +1 -1
- package/lib/util/api/client/client.gen.d.ts +3 -0
- package/lib/util/api/client/client.gen.d.ts.map +1 -0
- package/lib/util/api/client/client.gen.js +205 -0
- package/lib/util/api/client/client.gen.js.map +1 -0
- package/lib/util/api/client/index.d.ts +8 -0
- package/lib/util/api/client/index.d.ts.map +1 -0
- package/lib/util/api/client/index.js +6 -0
- package/lib/util/api/client/index.js.map +1 -0
- package/lib/util/api/client/types.gen.d.ts +125 -0
- package/lib/util/api/client/types.gen.d.ts.map +1 -0
- package/lib/util/api/client/types.gen.js +2 -0
- package/lib/util/api/client/types.gen.js.map +1 -0
- package/lib/util/api/client/utils.gen.d.ts +34 -0
- package/lib/util/api/client/utils.gen.d.ts.map +1 -0
- package/lib/util/api/client/utils.gen.js +231 -0
- package/lib/util/api/client/utils.gen.js.map +1 -0
- package/lib/util/api/core/auth.gen.d.ts +19 -0
- package/lib/util/api/core/auth.gen.d.ts.map +1 -0
- package/lib/util/api/core/auth.gen.js +15 -0
- package/lib/util/api/core/auth.gen.js.map +1 -0
- package/lib/util/api/core/bodySerializer.gen.d.ts +18 -0
- package/lib/util/api/core/bodySerializer.gen.d.ts.map +1 -0
- package/lib/util/api/core/bodySerializer.gen.js +58 -0
- package/lib/util/api/core/bodySerializer.gen.js.map +1 -0
- package/lib/util/api/core/params.gen.d.ts +34 -0
- package/lib/util/api/core/params.gen.d.ts.map +1 -0
- package/lib/util/api/core/params.gen.js +89 -0
- package/lib/util/api/core/params.gen.js.map +1 -0
- package/lib/util/api/core/pathSerializer.gen.d.ts +34 -0
- package/lib/util/api/core/pathSerializer.gen.d.ts.map +1 -0
- package/lib/util/api/core/pathSerializer.gen.js +115 -0
- package/lib/util/api/core/pathSerializer.gen.js.map +1 -0
- package/lib/util/api/core/serverSentEvents.gen.d.ts +72 -0
- package/lib/util/api/core/serverSentEvents.gen.d.ts.map +1 -0
- package/lib/util/api/core/serverSentEvents.gen.js +136 -0
- package/lib/util/api/core/serverSentEvents.gen.js.map +1 -0
- package/lib/util/api/core/types.gen.d.ts +79 -0
- package/lib/util/api/core/types.gen.d.ts.map +1 -0
- package/lib/util/api/core/types.gen.js +2 -0
- package/lib/util/api/core/types.gen.js.map +1 -0
- package/lib/util/api/core/utils.gen.d.ts +20 -0
- package/lib/util/api/core/utils.gen.d.ts.map +1 -0
- package/lib/util/api/core/utils.gen.js +88 -0
- package/lib/util/api/core/utils.gen.js.map +1 -0
- package/lib/util/http.d.ts +7 -2
- package/lib/util/http.d.ts.map +1 -1
- package/lib/util/http.js +29 -11
- package/lib/util/http.js.map +1 -1
- package/lib/util/lock.d.ts +20 -0
- package/lib/util/lock.d.ts.map +1 -0
- package/lib/util/lock.js +45 -0
- package/lib/util/lock.js.map +1 -0
- package/lib/util/memoize.d.ts +6 -0
- package/lib/util/memoize.d.ts.map +1 -1
- package/lib/util/memoize.js +23 -0
- package/lib/util/memoize.js.map +1 -1
- package/lib/util/oauth-client.d.ts +71 -0
- package/lib/util/oauth-client.d.ts.map +1 -0
- package/lib/util/oauth-client.js +188 -0
- package/lib/util/oauth-client.js.map +1 -0
- package/lib/util/poll.d.ts +33 -0
- package/lib/util/poll.d.ts.map +1 -0
- package/lib/util/poll.js +19 -0
- package/lib/util/poll.js.map +1 -0
- package/lib/vercel/project-domain.d.ts +1 -2
- package/lib/vercel/project-domain.d.ts.map +1 -1
- package/lib/vercel/project-domain.js.map +1 -1
- package/lib/vercel/project.d.ts +1 -2
- package/lib/vercel/project.d.ts.map +1 -1
- package/lib/vercel/project.js +2 -2
- package/lib/vercel/project.js.map +1 -1
- package/package.json +5 -1
- package/src/apply.ts +32 -29
- package/src/auth.ts +253 -0
- package/src/aws/bucket.ts +3 -3
- package/src/aws/control/resource.ts +4 -6
- package/src/aws/ec2/internet-gateway-attachment.ts +5 -6
- package/src/aws/ec2/internet-gateway.ts +3 -5
- package/src/aws/ec2/nat-gateway.ts +3 -5
- package/src/aws/ec2/route-table-association.ts +3 -5
- package/src/aws/ec2/route-table.ts +3 -5
- package/src/aws/ec2/route.ts +3 -3
- package/src/aws/ec2/security-group-rule.ts +3 -5
- package/src/aws/ec2/security-group.ts +3 -5
- package/src/aws/ec2/subnet.ts +3 -3
- package/src/aws/ec2/vpc.ts +3 -3
- package/src/aws/function.ts +3 -3
- package/src/aws/oidc/oidc-provider.ts +3 -5
- package/src/aws/policy-attachment.ts +2 -4
- package/src/aws/policy.ts +5 -5
- package/src/aws/queue.ts +5 -5
- package/src/aws/role.ts +3 -3
- package/src/aws/ses.ts +3 -3
- package/src/aws/ssm-parameter.ts +3 -3
- package/src/aws/table.ts +3 -3
- package/src/cloudflare/account-api-token.ts +3 -4
- package/src/cloudflare/ai-gateway.ts +3 -5
- package/src/cloudflare/api-gateway-operation.ts +3 -4
- package/src/cloudflare/api-schema.ts +25 -26
- package/src/cloudflare/api-shield.ts +3 -4
- package/src/cloudflare/api.ts +122 -57
- package/src/cloudflare/assets.ts +95 -136
- package/src/cloudflare/auth.ts +160 -95
- package/src/cloudflare/bound.ts +1 -1
- package/src/cloudflare/bucket.ts +321 -58
- package/src/cloudflare/bundle/plugin-wasm.ts +5 -5
- package/src/cloudflare/certificate-pack.ts +5 -6
- package/src/cloudflare/compatibility-date.gen.ts +1 -1
- package/src/cloudflare/container.ts +7 -8
- package/src/cloudflare/custom-domain.ts +3 -5
- package/src/cloudflare/d1-database.ts +33 -34
- package/src/cloudflare/dispatch-namespace.ts +5 -6
- package/src/cloudflare/dns-records.ts +5 -5
- package/src/cloudflare/email-address.ts +7 -7
- package/src/cloudflare/email-catch-all.ts +6 -6
- package/src/cloudflare/email-routing.ts +5 -5
- package/src/cloudflare/email-rule.ts +5 -5
- package/src/cloudflare/hyperdrive.ts +35 -36
- package/src/cloudflare/kv-namespace.ts +31 -32
- package/src/cloudflare/miniflare/delete.ts +1 -1
- package/src/cloudflare/miniflare/miniflare-worker-proxy.ts +2 -7
- package/src/cloudflare/miniflare/remote-binding-proxy.ts +16 -4
- package/src/cloudflare/permission-groups.ts +4 -6
- package/src/cloudflare/pipeline.ts +29 -30
- package/src/cloudflare/queue-consumer.ts +5 -7
- package/src/cloudflare/queue.ts +42 -43
- package/src/cloudflare/react-router/plugin.ts +20 -0
- package/src/cloudflare/redirect-rule.ts +5 -5
- package/src/cloudflare/route.ts +5 -5
- package/src/cloudflare/ruleset.ts +3 -4
- package/src/cloudflare/secret.ts +35 -36
- package/src/cloudflare/secrets-store.ts +5 -8
- package/src/cloudflare/tunnel.ts +5 -7
- package/src/cloudflare/user.ts +12 -9
- package/src/cloudflare/vectorize-index.ts +8 -12
- package/src/cloudflare/vectorize-metadata-index.ts +6 -8
- package/src/cloudflare/website.ts +1 -1
- package/src/cloudflare/worker-assets.ts +10 -56
- package/src/cloudflare/worker-stub.ts +5 -5
- package/src/cloudflare/worker-subdomain.ts +6 -7
- package/src/cloudflare/worker.ts +91 -91
- package/src/cloudflare/zone.ts +3 -3
- package/src/context.ts +9 -7
- package/src/destroy.ts +2 -2
- package/src/dns/import-dns.ts +3 -5
- package/src/docker/container.ts +3 -6
- package/src/docker/image.ts +13 -13
- package/src/docker/network.ts +3 -4
- package/src/docker/remote-image.ts +3 -6
- package/src/docker/volume.ts +3 -4
- package/src/esbuild/bundle.ts +10 -8
- package/src/fs/copy-file.ts +3 -3
- package/src/fs/file.ts +3 -3
- package/src/fs/folder.ts +3 -3
- package/src/github/comment.ts +5 -7
- package/src/github/repository-environment.ts +3 -5
- package/src/github/repository-webhook.ts +3 -5
- package/src/github/secret.ts +3 -5
- package/src/neon/api/client.gen.ts +28 -0
- package/src/neon/api/sdk.gen.ts +2596 -0
- package/src/neon/api/types.gen.ts +8287 -0
- package/src/neon/api.ts +51 -147
- package/src/neon/branch.ts +278 -0
- package/src/neon/index.ts +1 -1
- package/src/neon/project.ts +136 -721
- package/src/neon/utils.ts +105 -0
- package/src/os/exec.ts +3 -3
- package/src/planetscale/api/client.gen.ts +28 -2882
- package/src/planetscale/api/sdk.gen.ts +3336 -0
- package/src/planetscale/api/types.gen.ts +778 -450
- package/src/planetscale/api.ts +101 -0
- package/src/planetscale/branch.ts +20 -19
- package/src/planetscale/database.ts +69 -70
- package/src/planetscale/index.ts +1 -1
- package/src/planetscale/password.ts +18 -22
- package/src/planetscale/role.ts +21 -21
- package/src/planetscale/utils.ts +20 -74
- package/src/random/random-string.ts +4 -4
- package/src/resource.ts +6 -2
- package/src/sentry/client-key.ts +3 -5
- package/src/sentry/project.ts +3 -5
- package/src/sentry/team.ts +3 -3
- package/src/state/r2-rest-state-store.ts +15 -57
- package/src/stripe/card.ts +3 -3
- package/src/stripe/coupon.ts +3 -3
- package/src/stripe/customer.ts +3 -3
- package/src/stripe/entitlements-feature.ts +3 -5
- package/src/stripe/file.ts +3 -3
- package/src/stripe/meter.ts +3 -3
- package/src/stripe/portal-configuration.ts +3 -5
- package/src/stripe/price.ts +3 -3
- package/src/stripe/product-feature.ts +3 -5
- package/src/stripe/product.ts +3 -3
- package/src/stripe/promotion-code.ts +3 -5
- package/src/stripe/shipping-rate.ts +3 -5
- package/src/stripe/tax-rate.ts +3 -3
- package/src/stripe/webhook.ts +3 -5
- package/src/test/bun.ts +1 -0
- package/src/test/options.ts +6 -0
- package/src/test/vitest.ts +1 -0
- package/src/upstash/redis.ts +1 -3
- package/src/util/api/client/client.gen.ts +268 -0
- package/src/util/api/client/index.ts +25 -0
- package/src/util/api/client/types.gen.ts +268 -0
- package/src/util/api/client/utils.gen.ts +331 -0
- package/src/util/api/core/auth.gen.ts +42 -0
- package/src/util/api/core/bodySerializer.gen.ts +92 -0
- package/src/util/api/core/params.gen.ts +153 -0
- package/src/util/api/core/pathSerializer.gen.ts +181 -0
- package/src/util/api/core/serverSentEvents.gen.ts +264 -0
- package/src/util/api/core/types.gen.ts +118 -0
- package/src/util/api/core/utils.gen.ts +143 -0
- package/src/util/http.ts +38 -11
- package/src/util/lock.ts +48 -0
- package/src/util/memoize.ts +26 -0
- package/src/util/oauth-client.ts +238 -0
- package/src/util/poll.ts +55 -0
- package/src/vercel/project-domain.ts +1 -3
- package/src/vercel/project.ts +3 -3
- package/workers/cloudflare-state-store.js +8 -5619
- package/workers/dofs-state-store.js +2 -802
- package/workers/remote-binding-proxy.js +3 -39
- package/workers/remote-binding-proxy.ts +126 -35
- package/workers/tunnel-proxy.js +6 -73
- package/lib/cloudflare/asset-manifest.d.ts +0 -15
- package/lib/cloudflare/asset-manifest.d.ts.map +0 -1
- package/lib/cloudflare/asset-manifest.js +0 -1
- package/lib/cloudflare/asset-manifest.js.map +0 -1
- package/lib/cloudflare/oauth.d.ts +0 -22
- package/lib/cloudflare/oauth.d.ts.map +0 -1
- package/lib/cloudflare/oauth.js +0 -214
- package/lib/cloudflare/oauth.js.map +0 -1
- package/lib/neon/api-error.d.ts +0 -31
- package/lib/neon/api-error.d.ts.map +0 -1
- package/lib/neon/api-error.js +0 -73
- package/lib/neon/api-error.js.map +0 -1
- package/lib/planetscale/api/index.d.ts +0 -3
- package/lib/planetscale/api/index.d.ts.map +0 -1
- package/lib/planetscale/api/index.js +0 -4
- package/lib/planetscale/api/index.js.map +0 -1
- package/lib/util/neverthrow.d.ts +0 -16
- package/lib/util/neverthrow.d.ts.map +0 -1
- package/lib/util/neverthrow.js +0 -46
- package/lib/util/neverthrow.js.map +0 -1
- package/src/cloudflare/asset-manifest.ts +0 -16
- package/src/cloudflare/oauth.ts +0 -301
- package/src/neon/api-error.ts +0 -81
- package/src/planetscale/api/index.ts +0 -4
- package/src/util/neverthrow.ts +0 -64
package/src/cloudflare/bucket.ts
CHANGED
|
@@ -2,8 +2,9 @@ import { isDeepStrictEqual } from "node:util";
|
|
|
2
2
|
import type { Context } from "../context.ts";
|
|
3
3
|
import { Resource, ResourceKind } from "../resource.ts";
|
|
4
4
|
import { Scope } from "../scope.ts";
|
|
5
|
+
import { isRetryableError } from "../state/r2-rest-state-store.ts";
|
|
5
6
|
import { withExponentialBackoff } from "../util/retry.ts";
|
|
6
|
-
import { CloudflareApiError } from "./api-error.ts";
|
|
7
|
+
import { CloudflareApiError, handleApiError } from "./api-error.ts";
|
|
7
8
|
import {
|
|
8
9
|
extractCloudflareResult,
|
|
9
10
|
type CloudflareApiErrorPayload,
|
|
@@ -239,55 +240,107 @@ interface R2BucketCORSRule {
|
|
|
239
240
|
maxAgeSeconds?: number;
|
|
240
241
|
}
|
|
241
242
|
|
|
243
|
+
export type R2ObjectMetadata = {
|
|
244
|
+
key: string;
|
|
245
|
+
etag: string;
|
|
246
|
+
uploaded: Date;
|
|
247
|
+
size: number;
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
export type R2Object = R2ObjectMetadata & {
|
|
251
|
+
arrayBuffer(): Promise<ArrayBuffer>;
|
|
252
|
+
bytes(): Promise<Uint8Array>;
|
|
253
|
+
text(): Promise<string>;
|
|
254
|
+
json<T>(): Promise<T>;
|
|
255
|
+
blob(): Promise<Blob>;
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
export type PutR2ObjectResponse = {
|
|
259
|
+
key: string;
|
|
260
|
+
etag: string;
|
|
261
|
+
uploaded: Date;
|
|
262
|
+
version: string;
|
|
263
|
+
size: number;
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
export type R2Objects = {
|
|
267
|
+
objects: R2ObjectMetadata[];
|
|
268
|
+
} & (
|
|
269
|
+
| {
|
|
270
|
+
truncated: true;
|
|
271
|
+
cursor: string;
|
|
272
|
+
}
|
|
273
|
+
| {
|
|
274
|
+
truncated: false;
|
|
275
|
+
cursor?: never;
|
|
276
|
+
}
|
|
277
|
+
);
|
|
278
|
+
|
|
279
|
+
export type R2Bucket = _R2Bucket & {
|
|
280
|
+
head(key: string): Promise<R2ObjectMetadata | null>;
|
|
281
|
+
get(key: string): Promise<R2Object | null>;
|
|
282
|
+
put(
|
|
283
|
+
key: string,
|
|
284
|
+
value:
|
|
285
|
+
| ReadableStream
|
|
286
|
+
| ArrayBuffer
|
|
287
|
+
| ArrayBufferView
|
|
288
|
+
| string
|
|
289
|
+
| null
|
|
290
|
+
| Blob,
|
|
291
|
+
): Promise<PutR2ObjectResponse>;
|
|
292
|
+
delete(key: string): Promise<Response>;
|
|
293
|
+
list(options?: R2ListOptions): Promise<R2Objects>;
|
|
294
|
+
};
|
|
295
|
+
|
|
242
296
|
/**
|
|
243
297
|
* Output returned after R2 Bucket creation/update
|
|
244
298
|
*/
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
type: "r2_bucket";
|
|
299
|
+
type _R2Bucket = Omit<BucketProps, "delete" | "dev"> & {
|
|
300
|
+
/**
|
|
301
|
+
* Resource type identifier
|
|
302
|
+
*/
|
|
303
|
+
type: "r2_bucket";
|
|
251
304
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
305
|
+
/**
|
|
306
|
+
* The name of the bucket
|
|
307
|
+
*/
|
|
308
|
+
name: string;
|
|
256
309
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
310
|
+
/**
|
|
311
|
+
* Location of the bucket
|
|
312
|
+
*/
|
|
313
|
+
location: string;
|
|
261
314
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
315
|
+
/**
|
|
316
|
+
* Time at which the bucket was created
|
|
317
|
+
*/
|
|
318
|
+
creationDate: Date;
|
|
266
319
|
|
|
320
|
+
/**
|
|
321
|
+
* The `r2.dev` subdomain for the bucket, if `allowPublicAccess` is true
|
|
322
|
+
*/
|
|
323
|
+
domain: string | undefined;
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* Development mode properties
|
|
327
|
+
* @internal
|
|
328
|
+
*/
|
|
329
|
+
dev: {
|
|
267
330
|
/**
|
|
268
|
-
* The
|
|
331
|
+
* The ID of the bucket in development mode
|
|
269
332
|
*/
|
|
270
|
-
|
|
333
|
+
id: string;
|
|
271
334
|
|
|
272
335
|
/**
|
|
273
|
-
*
|
|
274
|
-
* @internal
|
|
336
|
+
* Whether the bucket is running remotely
|
|
275
337
|
*/
|
|
276
|
-
|
|
277
|
-
/**
|
|
278
|
-
* The ID of the bucket in development mode
|
|
279
|
-
*/
|
|
280
|
-
id: string;
|
|
281
|
-
|
|
282
|
-
/**
|
|
283
|
-
* Whether the bucket is running remotely
|
|
284
|
-
*/
|
|
285
|
-
remote: boolean;
|
|
286
|
-
};
|
|
338
|
+
remote: boolean;
|
|
287
339
|
};
|
|
340
|
+
};
|
|
288
341
|
|
|
289
|
-
export function isBucket(resource:
|
|
290
|
-
return resource[ResourceKind] === "cloudflare::R2Bucket";
|
|
342
|
+
export function isBucket(resource: any): resource is R2Bucket {
|
|
343
|
+
return resource?.[ResourceKind] === "cloudflare::R2Bucket";
|
|
291
344
|
}
|
|
292
345
|
|
|
293
346
|
/**
|
|
@@ -338,22 +391,95 @@ export async function R2Bucket(
|
|
|
338
391
|
id: string,
|
|
339
392
|
props: BucketProps = {},
|
|
340
393
|
): Promise<R2Bucket> {
|
|
341
|
-
|
|
394
|
+
const api = await createCloudflareApi(props);
|
|
395
|
+
const bucket = await _R2Bucket(id, {
|
|
342
396
|
...props,
|
|
343
397
|
dev: {
|
|
344
398
|
...(props.dev ?? {}),
|
|
345
399
|
force: Scope.current.local,
|
|
346
400
|
},
|
|
347
401
|
});
|
|
402
|
+
return {
|
|
403
|
+
...bucket,
|
|
404
|
+
head: async (key: string) =>
|
|
405
|
+
headObject(api, {
|
|
406
|
+
bucketName: bucket.name,
|
|
407
|
+
key,
|
|
408
|
+
}),
|
|
409
|
+
get: async (key: string) => {
|
|
410
|
+
const response = await getObject(api, {
|
|
411
|
+
bucketName: bucket.name,
|
|
412
|
+
key,
|
|
413
|
+
});
|
|
414
|
+
if (response.ok) {
|
|
415
|
+
return parseR2Object(key, response);
|
|
416
|
+
} else if (response.status === 404) {
|
|
417
|
+
return null;
|
|
418
|
+
} else {
|
|
419
|
+
throw await handleApiError(response, "get", "object", key);
|
|
420
|
+
}
|
|
421
|
+
},
|
|
422
|
+
list: async (options?: R2ListOptions): Promise<R2Objects> =>
|
|
423
|
+
listObjects(api, bucket.name, {
|
|
424
|
+
...options,
|
|
425
|
+
jurisdiction: bucket.jurisdiction,
|
|
426
|
+
}),
|
|
427
|
+
put: async (
|
|
428
|
+
key: string,
|
|
429
|
+
value: PutObjectObject,
|
|
430
|
+
): Promise<PutR2ObjectResponse> => {
|
|
431
|
+
const response = await putObject(api, {
|
|
432
|
+
bucketName: bucket.name,
|
|
433
|
+
key: key,
|
|
434
|
+
object: value,
|
|
435
|
+
});
|
|
436
|
+
const body = (await response.json()) as {
|
|
437
|
+
result: {
|
|
438
|
+
key: string;
|
|
439
|
+
etag: string;
|
|
440
|
+
uploaded: string;
|
|
441
|
+
version: string;
|
|
442
|
+
size: string;
|
|
443
|
+
};
|
|
444
|
+
};
|
|
445
|
+
return {
|
|
446
|
+
key: body.result.key,
|
|
447
|
+
etag: body.result.etag,
|
|
448
|
+
uploaded: new Date(body.result.uploaded),
|
|
449
|
+
version: body.result.version,
|
|
450
|
+
size: Number(body.result.size),
|
|
451
|
+
};
|
|
452
|
+
},
|
|
453
|
+
delete: async (key: string) =>
|
|
454
|
+
deleteObject(api, {
|
|
455
|
+
bucketName: bucket.name,
|
|
456
|
+
key: key,
|
|
457
|
+
}),
|
|
458
|
+
};
|
|
348
459
|
}
|
|
349
460
|
|
|
461
|
+
const parseR2Object = (key: string, response: Response): R2Object => ({
|
|
462
|
+
etag: response.headers.get("ETag")!,
|
|
463
|
+
uploaded: parseDate(response.headers),
|
|
464
|
+
key,
|
|
465
|
+
size: Number(response.headers.get("Content-Length")),
|
|
466
|
+
arrayBuffer: () => response.arrayBuffer(),
|
|
467
|
+
bytes: () => response.bytes(),
|
|
468
|
+
text: () => response.text(),
|
|
469
|
+
json: () => response.json(),
|
|
470
|
+
blob: () => response.blob(),
|
|
471
|
+
});
|
|
472
|
+
|
|
473
|
+
const parseDate = (headers: Headers) =>
|
|
474
|
+
new Date(headers.get("Last-Modified") ?? headers.get("Date")!);
|
|
475
|
+
|
|
350
476
|
const _R2Bucket = Resource(
|
|
351
477
|
"cloudflare::R2Bucket",
|
|
352
478
|
async function (
|
|
353
|
-
this: Context<
|
|
479
|
+
this: Context<_R2Bucket>,
|
|
354
480
|
id: string,
|
|
355
481
|
props: BucketProps = {},
|
|
356
|
-
): Promise<
|
|
482
|
+
): Promise<_R2Bucket> {
|
|
357
483
|
const bucketName =
|
|
358
484
|
props.name ?? this.output?.name ?? this.scope.createPhysicalName(id);
|
|
359
485
|
|
|
@@ -369,7 +495,7 @@ const _R2Bucket = Resource(
|
|
|
369
495
|
const adopt = props.adopt ?? this.scope.adopt;
|
|
370
496
|
|
|
371
497
|
if (this.scope.local && !props.dev?.remote) {
|
|
372
|
-
return
|
|
498
|
+
return {
|
|
373
499
|
name: this.output?.name ?? "",
|
|
374
500
|
location: this.output?.location ?? "",
|
|
375
501
|
creationDate: this.output?.creationDate ?? new Date(),
|
|
@@ -380,7 +506,7 @@ const _R2Bucket = Resource(
|
|
|
380
506
|
accountId: this.output?.accountId ?? "",
|
|
381
507
|
cors: props.cors,
|
|
382
508
|
dev,
|
|
383
|
-
}
|
|
509
|
+
};
|
|
384
510
|
}
|
|
385
511
|
|
|
386
512
|
const api = await createCloudflareApi(props);
|
|
@@ -426,7 +552,7 @@ const _R2Bucket = Resource(
|
|
|
426
552
|
if (props.lock?.length) {
|
|
427
553
|
await putBucketLockRules(api, bucketName, props);
|
|
428
554
|
}
|
|
429
|
-
return
|
|
555
|
+
return {
|
|
430
556
|
name: bucketName,
|
|
431
557
|
location: bucket.location,
|
|
432
558
|
creationDate: new Date(bucket.creation_date),
|
|
@@ -439,7 +565,7 @@ const _R2Bucket = Resource(
|
|
|
439
565
|
lock: props.lock,
|
|
440
566
|
cors: props.cors,
|
|
441
567
|
dev,
|
|
442
|
-
}
|
|
568
|
+
};
|
|
443
569
|
} else {
|
|
444
570
|
if (bucketName !== this.output.name) {
|
|
445
571
|
throw new Error(
|
|
@@ -466,7 +592,7 @@ const _R2Bucket = Resource(
|
|
|
466
592
|
if (!isDeepStrictEqual(this.output.lock ?? [], props.lock ?? [])) {
|
|
467
593
|
await putBucketLockRules(api, bucketName, props);
|
|
468
594
|
}
|
|
469
|
-
return
|
|
595
|
+
return {
|
|
470
596
|
...this.output,
|
|
471
597
|
allowPublicAccess,
|
|
472
598
|
dev,
|
|
@@ -474,7 +600,7 @@ const _R2Bucket = Resource(
|
|
|
474
600
|
lifecycle: props.lifecycle,
|
|
475
601
|
lock: props.lock,
|
|
476
602
|
domain,
|
|
477
|
-
}
|
|
603
|
+
};
|
|
478
604
|
}
|
|
479
605
|
},
|
|
480
606
|
);
|
|
@@ -613,17 +739,20 @@ async function emptyBucket(
|
|
|
613
739
|
) {
|
|
614
740
|
let cursor: string | undefined;
|
|
615
741
|
while (true) {
|
|
616
|
-
const result = await listObjects(api, bucketName,
|
|
617
|
-
|
|
742
|
+
const result = await listObjects(api, bucketName, {
|
|
743
|
+
jurisdiction: props.jurisdiction,
|
|
744
|
+
cursor,
|
|
745
|
+
});
|
|
746
|
+
if (result.objects.length) {
|
|
618
747
|
// Another undocumented API! But it lets us delete multiple objects at once instead of one by one.
|
|
619
748
|
await extractCloudflareResult(
|
|
620
|
-
`delete ${result.
|
|
749
|
+
`delete ${result.objects.length} objects from bucket "${bucketName}"`,
|
|
621
750
|
api.delete(
|
|
622
751
|
`/accounts/${api.accountId}/r2/buckets/${bucketName}/objects`,
|
|
623
752
|
{
|
|
624
753
|
headers: withJurisdiction(props),
|
|
625
754
|
method: "DELETE",
|
|
626
|
-
body: JSON.stringify(result.
|
|
755
|
+
body: JSON.stringify(result.objects.map((object) => object.key)),
|
|
627
756
|
},
|
|
628
757
|
),
|
|
629
758
|
);
|
|
@@ -642,21 +771,39 @@ async function emptyBucket(
|
|
|
642
771
|
export async function listObjects(
|
|
643
772
|
api: CloudflareApi,
|
|
644
773
|
bucketName: string,
|
|
645
|
-
props:
|
|
646
|
-
|
|
647
|
-
|
|
774
|
+
props: R2ListOptions & {
|
|
775
|
+
jurisdiction?: string;
|
|
776
|
+
},
|
|
777
|
+
): Promise<R2Objects> {
|
|
648
778
|
const params = new URLSearchParams({
|
|
649
779
|
per_page: "1000",
|
|
650
780
|
});
|
|
651
|
-
if (cursor) {
|
|
652
|
-
params.set("cursor", cursor);
|
|
781
|
+
if (props.cursor) {
|
|
782
|
+
params.set("cursor", props.cursor);
|
|
783
|
+
}
|
|
784
|
+
if (props.delimiter) {
|
|
785
|
+
params.set("delimiter", props.delimiter);
|
|
786
|
+
}
|
|
787
|
+
if (props.prefix) {
|
|
788
|
+
params.set("prefix", props.prefix);
|
|
789
|
+
}
|
|
790
|
+
if (props.startAfter) {
|
|
791
|
+
params.set("start_after", props.startAfter);
|
|
792
|
+
}
|
|
793
|
+
if (props.limit) {
|
|
794
|
+
params.set("limit", props.limit.toString());
|
|
653
795
|
}
|
|
654
796
|
const response = await api.get(
|
|
655
797
|
`/accounts/${api.accountId}/r2/buckets/${bucketName}/objects?${params.toString()}`,
|
|
656
798
|
{ headers: withJurisdiction(props) },
|
|
657
799
|
);
|
|
658
800
|
const json: {
|
|
659
|
-
result: {
|
|
801
|
+
result: {
|
|
802
|
+
key: string;
|
|
803
|
+
etag: string;
|
|
804
|
+
last_modified: string;
|
|
805
|
+
size: number;
|
|
806
|
+
}[];
|
|
660
807
|
result_info?: {
|
|
661
808
|
cursor: string;
|
|
662
809
|
is_truncated: boolean;
|
|
@@ -668,7 +815,11 @@ export async function listObjects(
|
|
|
668
815
|
if (!json.success) {
|
|
669
816
|
// 10006 indicates that the bucket does not exist, so there are no objects to list
|
|
670
817
|
if (json.errors.some((e) => e.code === 10006)) {
|
|
671
|
-
return {
|
|
818
|
+
return {
|
|
819
|
+
objects: [],
|
|
820
|
+
cursor: undefined,
|
|
821
|
+
truncated: false,
|
|
822
|
+
};
|
|
672
823
|
}
|
|
673
824
|
throw new CloudflareApiError(
|
|
674
825
|
`Failed to list objects in bucket "${bucketName}": ${json.errors.map((e) => `- [${e.code}] ${e.message}${e.documentation_url ? ` (${e.documentation_url})` : ""}`).join("\n")}`,
|
|
@@ -677,9 +828,17 @@ export async function listObjects(
|
|
|
677
828
|
);
|
|
678
829
|
}
|
|
679
830
|
return {
|
|
680
|
-
keys: json.result.map((object) => object.key),
|
|
831
|
+
// keys: json.result.map((object) => object.key),
|
|
832
|
+
objects: json.result.map((object) => ({
|
|
833
|
+
key: object.key,
|
|
834
|
+
etag: object.etag,
|
|
835
|
+
uploaded: new Date(object.last_modified),
|
|
836
|
+
size: object.size,
|
|
837
|
+
})),
|
|
838
|
+
delimitedPrefixes: [],
|
|
681
839
|
cursor: json.result_info?.cursor,
|
|
682
|
-
|
|
840
|
+
truncated: json.result_info?.is_truncated ?? false,
|
|
841
|
+
} as R2Objects;
|
|
683
842
|
}
|
|
684
843
|
|
|
685
844
|
/**
|
|
@@ -869,3 +1028,107 @@ export async function getBucketLockRules(
|
|
|
869
1028
|
: (json.result?.rules ?? []);
|
|
870
1029
|
return rules as R2BucketLockRule[];
|
|
871
1030
|
}
|
|
1031
|
+
|
|
1032
|
+
export async function headObject(
|
|
1033
|
+
api: CloudflareApi,
|
|
1034
|
+
{ bucketName, key }: { bucketName: string; key: string },
|
|
1035
|
+
): Promise<R2ObjectMetadata | null> {
|
|
1036
|
+
const response = await withRetries(
|
|
1037
|
+
async () =>
|
|
1038
|
+
await api.get(
|
|
1039
|
+
`/accounts/${api.accountId}/r2/buckets/${bucketName}/objects/${key}`,
|
|
1040
|
+
),
|
|
1041
|
+
);
|
|
1042
|
+
// for some reason HEAD returns 404 for keys that exist, this is the best we can do without using S3 API
|
|
1043
|
+
response.body?.cancel();
|
|
1044
|
+
if (response.status === 404) {
|
|
1045
|
+
return null;
|
|
1046
|
+
} else if (!response.ok) {
|
|
1047
|
+
throw await handleApiError(response, "head", "object", key);
|
|
1048
|
+
}
|
|
1049
|
+
return {
|
|
1050
|
+
key,
|
|
1051
|
+
etag: response.headers.get("ETag")?.replace(/"/g, "")!,
|
|
1052
|
+
uploaded: parseDate(response.headers),
|
|
1053
|
+
size: Number(response.headers.get("Content-Length")),
|
|
1054
|
+
};
|
|
1055
|
+
}
|
|
1056
|
+
|
|
1057
|
+
const withRetries = (f: () => Promise<Response>) => {
|
|
1058
|
+
return withExponentialBackoff(f, isRetryableError, 5, 1000);
|
|
1059
|
+
};
|
|
1060
|
+
|
|
1061
|
+
export async function getObject(
|
|
1062
|
+
api: CloudflareApi,
|
|
1063
|
+
{ bucketName, key }: { bucketName: string; key: string },
|
|
1064
|
+
) {
|
|
1065
|
+
return await withRetries(async () => {
|
|
1066
|
+
const response = await api.get(
|
|
1067
|
+
`/accounts/${api.accountId}/r2/buckets/${bucketName}/objects/${key}`,
|
|
1068
|
+
{
|
|
1069
|
+
headers: {
|
|
1070
|
+
"Content-Type": "application/octet-stream",
|
|
1071
|
+
Accept: "application/octet-stream",
|
|
1072
|
+
},
|
|
1073
|
+
},
|
|
1074
|
+
);
|
|
1075
|
+
if (!response.ok && response.status !== 404) {
|
|
1076
|
+
throw await handleApiError(response, "get", "object", key);
|
|
1077
|
+
}
|
|
1078
|
+
return response;
|
|
1079
|
+
});
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
type PutObjectObject =
|
|
1083
|
+
| ReadableStream
|
|
1084
|
+
| ArrayBuffer
|
|
1085
|
+
| ArrayBufferView
|
|
1086
|
+
| string
|
|
1087
|
+
| Blob;
|
|
1088
|
+
|
|
1089
|
+
export async function putObject(
|
|
1090
|
+
api: CloudflareApi,
|
|
1091
|
+
{
|
|
1092
|
+
bucketName,
|
|
1093
|
+
key,
|
|
1094
|
+
object,
|
|
1095
|
+
}: {
|
|
1096
|
+
bucketName: string;
|
|
1097
|
+
key: string;
|
|
1098
|
+
object: PutObjectObject;
|
|
1099
|
+
},
|
|
1100
|
+
): Promise<Response> {
|
|
1101
|
+
// Using withExponentialBackoff for reliability
|
|
1102
|
+
return await withRetries(async () => {
|
|
1103
|
+
const response = await api.put(
|
|
1104
|
+
`/accounts/${api.accountId}/r2/buckets/${bucketName}/objects/${key}`,
|
|
1105
|
+
object,
|
|
1106
|
+
{
|
|
1107
|
+
headers: {
|
|
1108
|
+
"Content-Type": "application/octet-stream",
|
|
1109
|
+
},
|
|
1110
|
+
},
|
|
1111
|
+
);
|
|
1112
|
+
if (!response.ok) {
|
|
1113
|
+
await handleApiError(response, "put", "object", key);
|
|
1114
|
+
}
|
|
1115
|
+
return response;
|
|
1116
|
+
});
|
|
1117
|
+
}
|
|
1118
|
+
|
|
1119
|
+
export async function deleteObject(
|
|
1120
|
+
api: CloudflareApi,
|
|
1121
|
+
{ bucketName, key }: { bucketName: string; key: string },
|
|
1122
|
+
) {
|
|
1123
|
+
return await withRetries(async () => {
|
|
1124
|
+
const response = await api.delete(
|
|
1125
|
+
`/accounts/${api.accountId}/r2/buckets/${bucketName}/objects/${key}`,
|
|
1126
|
+
);
|
|
1127
|
+
|
|
1128
|
+
if (!response.ok && response.status !== 404) {
|
|
1129
|
+
await handleApiError(response, "delete", "object", key);
|
|
1130
|
+
}
|
|
1131
|
+
|
|
1132
|
+
return response;
|
|
1133
|
+
});
|
|
1134
|
+
}
|
|
@@ -35,11 +35,11 @@ export function createWasmPlugin() {
|
|
|
35
35
|
);
|
|
36
36
|
|
|
37
37
|
// Copy to outdir so it's included in the upload
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
const copyFrom = path.join(args.resolveDir, name);
|
|
39
|
+
const copyTo = path.join(outdir, name);
|
|
40
|
+
await fs.mkdir(path.dirname(copyTo), { recursive: true });
|
|
41
|
+
await fs.copyFile(copyFrom, copyTo);
|
|
42
|
+
|
|
43
43
|
modules.set(args.path, {
|
|
44
44
|
type: "wasm",
|
|
45
45
|
path: name,
|
|
@@ -127,8 +127,7 @@ export interface CertificatePackProps extends CloudflareApiOptions {
|
|
|
127
127
|
/**
|
|
128
128
|
* Output returned after Certificate Pack creation/update
|
|
129
129
|
*/
|
|
130
|
-
export interface CertificatePack
|
|
131
|
-
extends Resource<"cloudflare::CertificatePack"> {
|
|
130
|
+
export interface CertificatePack {
|
|
132
131
|
/**
|
|
133
132
|
* The unique ID of the certificate pack
|
|
134
133
|
*/
|
|
@@ -356,7 +355,7 @@ export const CertificatePack = Resource(
|
|
|
356
355
|
`Adopting existing certificate pack ${existingPack.id} instead of creating a new one`,
|
|
357
356
|
);
|
|
358
357
|
|
|
359
|
-
return
|
|
358
|
+
return {
|
|
360
359
|
id: existingPack.id,
|
|
361
360
|
certificateAuthority: existingPack.certificate_authority,
|
|
362
361
|
cloudflareBranding: props.cloudflareBranding ?? false,
|
|
@@ -367,7 +366,7 @@ export const CertificatePack = Resource(
|
|
|
367
366
|
validityDays: existingPack.validity_days,
|
|
368
367
|
zoneId,
|
|
369
368
|
zoneName: zoneName,
|
|
370
|
-
}
|
|
369
|
+
};
|
|
371
370
|
}
|
|
372
371
|
|
|
373
372
|
logger.log(
|
|
@@ -416,7 +415,7 @@ export const CertificatePack = Resource(
|
|
|
416
415
|
`Certificate pack created with ID ${createdPack.id}. Status: ${createdPack.status}. Note: Certificate provisioning can take up to 10 minutes.`,
|
|
417
416
|
);
|
|
418
417
|
|
|
419
|
-
return
|
|
418
|
+
return {
|
|
420
419
|
id: createdPack.id,
|
|
421
420
|
certificateAuthority: createdPack.certificate_authority,
|
|
422
421
|
cloudflareBranding: props.cloudflareBranding ?? false,
|
|
@@ -427,7 +426,7 @@ export const CertificatePack = Resource(
|
|
|
427
426
|
validityDays: createdPack.validity_days,
|
|
428
427
|
zoneId,
|
|
429
428
|
zoneName: zoneName,
|
|
430
|
-
}
|
|
429
|
+
};
|
|
431
430
|
},
|
|
432
431
|
);
|
|
433
432
|
|
|
@@ -410,8 +410,7 @@ export type SchedulingPolicy =
|
|
|
410
410
|
* This resource manages the lifecycle of containerized applications running on
|
|
411
411
|
* Cloudflare's global network with automatic scaling and scheduling.
|
|
412
412
|
*/
|
|
413
|
-
export interface ContainerApplication
|
|
414
|
-
extends Resource<"cloudflare::ContainerApplication"> {
|
|
413
|
+
export interface ContainerApplication {
|
|
415
414
|
/** Unique identifier for the container application */
|
|
416
415
|
id: string;
|
|
417
416
|
|
|
@@ -514,10 +513,10 @@ export const ContainerApplication = Resource(
|
|
|
514
513
|
const applicationName = props.name ?? this.scope.createPhysicalName(id);
|
|
515
514
|
|
|
516
515
|
if (this.scope.local && props.dev) {
|
|
517
|
-
return
|
|
516
|
+
return {
|
|
518
517
|
id: this.output?.id ?? "",
|
|
519
518
|
name: applicationName,
|
|
520
|
-
}
|
|
519
|
+
};
|
|
521
520
|
}
|
|
522
521
|
|
|
523
522
|
const adopt = props.adopt ?? this.scope.adopt;
|
|
@@ -565,10 +564,10 @@ export const ContainerApplication = Resource(
|
|
|
565
564
|
step_percentage: props.rollout?.stepPercentage ?? 25,
|
|
566
565
|
target_configuration: configuration,
|
|
567
566
|
});
|
|
568
|
-
return
|
|
567
|
+
return {
|
|
569
568
|
id: application.id,
|
|
570
569
|
name: application.name,
|
|
571
|
-
}
|
|
570
|
+
};
|
|
572
571
|
} else {
|
|
573
572
|
let application: ContainerApplicationData;
|
|
574
573
|
|
|
@@ -643,10 +642,10 @@ export const ContainerApplication = Resource(
|
|
|
643
642
|
}
|
|
644
643
|
}
|
|
645
644
|
|
|
646
|
-
return
|
|
645
|
+
return {
|
|
647
646
|
id: application.id,
|
|
648
647
|
name: application.name,
|
|
649
|
-
}
|
|
648
|
+
};
|
|
650
649
|
}
|
|
651
650
|
},
|
|
652
651
|
);
|
|
@@ -69,9 +69,7 @@ interface CloudflareDomain {
|
|
|
69
69
|
/**
|
|
70
70
|
* Output returned after CustomDomain creation/update
|
|
71
71
|
*/
|
|
72
|
-
export interface CustomDomain
|
|
73
|
-
extends Resource<"cloudflare::CustomDomain">,
|
|
74
|
-
CustomDomainProps {
|
|
72
|
+
export interface CustomDomain extends CustomDomainProps {
|
|
75
73
|
/**
|
|
76
74
|
* The unique identifier for the Cloudflare domain binding.
|
|
77
75
|
*/
|
|
@@ -125,14 +123,14 @@ export const CustomDomain = Resource(
|
|
|
125
123
|
): Promise<CustomDomain> {
|
|
126
124
|
if (this.scope.local && props.dev) {
|
|
127
125
|
const now = Date.now();
|
|
128
|
-
return
|
|
126
|
+
return {
|
|
129
127
|
...props,
|
|
130
128
|
id: this.output?.id ?? "noop-domain",
|
|
131
129
|
zoneId: props.zoneId ?? "noop-zone",
|
|
132
130
|
environment: props.environment ?? "production",
|
|
133
131
|
createdAt: this.output?.createdAt ?? now,
|
|
134
132
|
updatedAt: now,
|
|
135
|
-
}
|
|
133
|
+
};
|
|
136
134
|
}
|
|
137
135
|
|
|
138
136
|
// Create Cloudflare API client with automatic account discovery
|