alchemy 0.66.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 +25554 -26250
- 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/services/find-workspace-root.ts +1 -1
- package/bin/trpc.ts +27 -2
- package/lib/alchemy.d.ts +6 -0
- package/lib/alchemy.d.ts.map +1 -1
- package/lib/alchemy.js +1 -0
- package/lib/alchemy.js.map +1 -1
- 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/bindings.d.ts +17 -5
- package/lib/cloudflare/bindings.d.ts.map +1 -1
- package/lib/cloudflare/bindings.js +3 -1
- package/lib/cloudflare/bindings.js.map +1 -1
- package/lib/cloudflare/bound.d.ts +4 -3
- 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/internal-worker-bundle.d.ts +1 -1
- package/lib/cloudflare/bundle/internal-worker-bundle.d.ts.map +1 -1
- package/lib/cloudflare/bundle/internal-worker-bundle.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-ref.d.ts +23 -0
- package/lib/cloudflare/hyperdrive-ref.d.ts.map +1 -0
- package/lib/cloudflare/hyperdrive-ref.js +52 -0
- package/lib/cloudflare/hyperdrive-ref.js.map +1 -0
- 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/index.d.ts +2 -0
- package/lib/cloudflare/index.d.ts.map +1 -1
- package/lib/cloudflare/index.js +2 -0
- package/lib/cloudflare/index.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/build-worker-options.d.ts +2 -1
- package/lib/cloudflare/miniflare/build-worker-options.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/build-worker-options.js +11 -6
- package/lib/cloudflare/miniflare/build-worker-options.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-controller.d.ts +3 -1
- package/lib/cloudflare/miniflare/miniflare-controller.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/miniflare-controller.js +24 -9
- package/lib/cloudflare/miniflare/miniflare-controller.js.map +1 -1
- package/lib/cloudflare/miniflare/miniflare-worker-proxy.d.ts +24 -13
- package/lib/cloudflare/miniflare/miniflare-worker-proxy.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/miniflare-worker-proxy.js +90 -79
- 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/miniflare/tunnel.d.ts +18 -0
- package/lib/cloudflare/miniflare/tunnel.d.ts.map +1 -0
- package/lib/cloudflare/miniflare/tunnel.js +79 -0
- package/lib/cloudflare/miniflare/tunnel.js.map +1 -0
- package/lib/cloudflare/next.d.ts.map +1 -1
- package/lib/cloudflare/next.js +3 -0
- package/lib/cloudflare/next.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/quick-tunnel.d.ts +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-ref.d.ts +38 -0
- package/lib/cloudflare/secret-ref.d.ts.map +1 -0
- package/lib/cloudflare/secret-ref.js +38 -0
- package/lib/cloudflare/secret-ref.js.map +1 -0
- 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-metadata.d.ts +1 -1
- package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
- package/lib/cloudflare/worker-metadata.js +7 -9
- package/lib/cloudflare/worker-metadata.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 +19 -5
- package/lib/cloudflare/worker.d.ts.map +1 -1
- package/lib/cloudflare/worker.js +18 -5
- package/lib/cloudflare/worker.js.map +1 -1
- package/lib/cloudflare/wrangler.json.d.ts +2 -1
- package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
- package/lib/cloudflare/wrangler.json.js +4 -6
- package/lib/cloudflare/wrangler.json.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/llms.cloudflare.txt +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/scope.d.ts +10 -1
- package/lib/scope.d.ts.map +1 -1
- package/lib/scope.js +3 -1
- package/lib/scope.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/idempotent-spawn.d.ts.map +1 -1
- package/lib/util/idempotent-spawn.js +5 -8
- package/lib/util/idempotent-spawn.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/alchemy.ts +7 -0
- 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/bindings.ts +21 -4
- package/src/cloudflare/bound.ts +50 -52
- package/src/cloudflare/bucket.ts +321 -58
- package/src/cloudflare/bundle/internal-worker-bundle.ts +2 -1
- 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-ref.ts +98 -0
- package/src/cloudflare/hyperdrive.ts +35 -36
- package/src/cloudflare/index.ts +2 -0
- package/src/cloudflare/kv-namespace.ts +31 -32
- package/src/cloudflare/miniflare/build-worker-options.ts +21 -12
- package/src/cloudflare/miniflare/delete.ts +1 -1
- package/src/cloudflare/miniflare/miniflare-controller.ts +27 -12
- package/src/cloudflare/miniflare/miniflare-worker-proxy.ts +117 -102
- package/src/cloudflare/miniflare/remote-binding-proxy.ts +16 -4
- package/src/cloudflare/miniflare/tunnel.ts +116 -0
- package/src/cloudflare/next.ts +3 -0
- 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-ref.ts +56 -0
- 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-metadata.ts +14 -12
- package/src/cloudflare/worker-stub.ts +5 -5
- package/src/cloudflare/worker-subdomain.ts +6 -7
- package/src/cloudflare/worker.ts +123 -92
- package/src/cloudflare/wrangler.json.ts +13 -11
- 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/llms.cloudflare.txt +1 -1
- 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/scope.ts +12 -1
- 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/idempotent-spawn.ts +5 -6
- 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/templates/rwsdk/.cursor/rules/alchemy_cloudflare.mdc +1 -1
- package/templates/rwsdk/package.json +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 +43 -0
- package/workers/tunnel-proxy.ts +121 -0
- 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
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { RemoteProxyConnectionString } from "miniflare";
|
|
2
|
+
import { WebSocket } from "ws";
|
|
2
3
|
import { HTTPServer } from "../../util/http.ts";
|
|
3
4
|
import { extractCloudflareResult } from "../api-response.ts";
|
|
4
5
|
import type { CloudflareApi } from "../api.ts";
|
|
@@ -54,18 +55,29 @@ export async function createRemoteProxyWorker(input: {
|
|
|
54
55
|
getAccountSubdomain(input.api),
|
|
55
56
|
]);
|
|
56
57
|
|
|
57
|
-
const
|
|
58
|
+
const host = `${input.name}.${subdomain}.workers.dev`;
|
|
59
|
+
|
|
58
60
|
const server = new HTTPServer({
|
|
61
|
+
websocket: async (req) => {
|
|
62
|
+
const input = new URL(req.url);
|
|
63
|
+
const proxied = new URL(input.pathname + input.search, `https://${host}`);
|
|
64
|
+
return new WebSocket(proxied, {
|
|
65
|
+
headers: {
|
|
66
|
+
"cf-workers-preview-token": token,
|
|
67
|
+
host,
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
},
|
|
59
71
|
fetch: async (req) => {
|
|
60
72
|
const url = new URL(req.url);
|
|
61
|
-
const
|
|
73
|
+
const proxied = new URL(url.pathname + url.search, `https://${host}`);
|
|
62
74
|
|
|
63
75
|
const headers = new Headers(req.headers);
|
|
64
76
|
headers.set("cf-workers-preview-token", token);
|
|
65
|
-
headers.set("host",
|
|
77
|
+
headers.set("host", host);
|
|
66
78
|
headers.delete("cf-connecting-ip");
|
|
67
79
|
|
|
68
|
-
const res = await fetch(
|
|
80
|
+
const res = await fetch(proxied, {
|
|
69
81
|
method: req.method,
|
|
70
82
|
headers,
|
|
71
83
|
body: req.body,
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import type * as miniflare from "miniflare";
|
|
2
|
+
import { Scope } from "../../scope.ts";
|
|
3
|
+
import { findOpenPort } from "../../util/find-open-port.ts";
|
|
4
|
+
import type { CloudflareApi } from "../api.ts";
|
|
5
|
+
import { getInternalWorkerBundle } from "../bundle/internal-worker-bundle.ts";
|
|
6
|
+
import {
|
|
7
|
+
enableWorkerSubdomain,
|
|
8
|
+
getAccountSubdomain,
|
|
9
|
+
getWorkerSubdomain,
|
|
10
|
+
} from "../worker-subdomain.ts";
|
|
11
|
+
import { putWorker } from "../worker.ts";
|
|
12
|
+
import {
|
|
13
|
+
createMiniflareWorkerProxy,
|
|
14
|
+
MiniflareWorkerProxyError,
|
|
15
|
+
} from "./miniflare-worker-proxy.ts";
|
|
16
|
+
|
|
17
|
+
export interface Tunnel {
|
|
18
|
+
/**
|
|
19
|
+
* Enables tunneling for a local worker.
|
|
20
|
+
* Returns a `workers.dev` URL that can be used to access the worker.
|
|
21
|
+
*/
|
|
22
|
+
configureWorker: (input: {
|
|
23
|
+
api: CloudflareApi;
|
|
24
|
+
name: string;
|
|
25
|
+
}) => Promise<URL>;
|
|
26
|
+
/**
|
|
27
|
+
* Closes the tunnel.
|
|
28
|
+
*/
|
|
29
|
+
close: () => Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export async function createTunnel(
|
|
33
|
+
miniflare: miniflare.Miniflare,
|
|
34
|
+
): Promise<Tunnel> {
|
|
35
|
+
const workers = new Set<string>(); // used to avoid exposing workers that are not running with tunneling enabled
|
|
36
|
+
const proxy = await createMiniflareWorkerProxy({
|
|
37
|
+
port: await findOpenPort(9977), // alchemy auth uses 9976, so one above that
|
|
38
|
+
miniflare,
|
|
39
|
+
mode: "remote",
|
|
40
|
+
transformRequest: (request) => {
|
|
41
|
+
if (request.url.origin === remote.origin) {
|
|
42
|
+
request.url.protocol = proxy.url.protocol;
|
|
43
|
+
request.url.host = proxy.url.host;
|
|
44
|
+
request.url.port = proxy.url.port;
|
|
45
|
+
request.headers.set("host", proxy.url.host);
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
getWorkerName: (request) => {
|
|
49
|
+
const name = request.headers.get("alchemy-worker-name");
|
|
50
|
+
if (!name) {
|
|
51
|
+
throw new MiniflareWorkerProxyError(
|
|
52
|
+
"Worker name is missing from request headers. This indicates a bug in Alchemy.",
|
|
53
|
+
530,
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
if (!workers.has(name)) {
|
|
57
|
+
throw new MiniflareWorkerProxyError(
|
|
58
|
+
`The worker "${name}" is not running with tunneling enabled.`,
|
|
59
|
+
530,
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
return name;
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
const remoteUrlString = await Scope.current.spawn("tunnel", {
|
|
66
|
+
processName: `cloudflared-${proxy.url.port}`,
|
|
67
|
+
cmd: `cloudflared tunnel --url ${proxy.url.toString()}`,
|
|
68
|
+
quiet: !process.env.DEBUG,
|
|
69
|
+
extract: (line) => {
|
|
70
|
+
const match = line.match(/https:\/\/([^\s]+)\.trycloudflare\.com/);
|
|
71
|
+
if (match) {
|
|
72
|
+
return `https://${match[1]}.trycloudflare.com`;
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
const remote = new URL(remoteUrlString);
|
|
77
|
+
return {
|
|
78
|
+
configureWorker: async (input) => {
|
|
79
|
+
workers.add(input.name);
|
|
80
|
+
return await createTunnelProxyWorker({
|
|
81
|
+
api: input.api,
|
|
82
|
+
name: input.name,
|
|
83
|
+
host: remote.host,
|
|
84
|
+
});
|
|
85
|
+
},
|
|
86
|
+
close: async () => {
|
|
87
|
+
await proxy.close();
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
async function createTunnelProxyWorker(input: {
|
|
93
|
+
api: CloudflareApi;
|
|
94
|
+
name: string;
|
|
95
|
+
host: string;
|
|
96
|
+
}) {
|
|
97
|
+
const script = await getInternalWorkerBundle("tunnel-proxy");
|
|
98
|
+
const [accountSubdomain, workerSubdomainStatus] = await Promise.all([
|
|
99
|
+
getAccountSubdomain(input.api),
|
|
100
|
+
getWorkerSubdomain(input.api, input.name),
|
|
101
|
+
putWorker(input.api, {
|
|
102
|
+
workerName: input.name,
|
|
103
|
+
scriptBundle: script.bundle,
|
|
104
|
+
compatibilityDate: "2025-09-01",
|
|
105
|
+
compatibilityFlags: [],
|
|
106
|
+
bindings: {
|
|
107
|
+
WORKER_NAME: input.name,
|
|
108
|
+
TUNNEL_HOST: input.host,
|
|
109
|
+
},
|
|
110
|
+
}),
|
|
111
|
+
]);
|
|
112
|
+
if (!workerSubdomainStatus.enabled) {
|
|
113
|
+
await enableWorkerSubdomain(input.api, input.name);
|
|
114
|
+
}
|
|
115
|
+
return new URL(`https://${input.name}.${accountSubdomain}.workers.dev`);
|
|
116
|
+
}
|
package/src/cloudflare/next.ts
CHANGED
|
@@ -45,7 +45,7 @@ export type R2PermissionGroups =
|
|
|
45
45
|
*
|
|
46
46
|
* @see https://developers.cloudflare.com/r2/api/tokens/#permissions
|
|
47
47
|
*/
|
|
48
|
-
export type PermissionGroups =
|
|
48
|
+
export type PermissionGroups = {
|
|
49
49
|
/**
|
|
50
50
|
* Admin Read & Write - Allows create, list, delete buckets and edit bucket configurations
|
|
51
51
|
* plus list, write, and read object access
|
|
@@ -140,10 +140,8 @@ export const PermissionGroups = Resource(
|
|
|
140
140
|
);
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
return
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
) as PermissionGroups,
|
|
147
|
-
);
|
|
143
|
+
return Object.fromEntries(
|
|
144
|
+
data.result.map((group) => [group.name, group]),
|
|
145
|
+
) as PermissionGroups;
|
|
148
146
|
},
|
|
149
147
|
);
|
|
@@ -229,41 +229,40 @@ export interface PipelineRecord {
|
|
|
229
229
|
[key: string]: any;
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
-
export function isPipeline(resource:
|
|
233
|
-
return resource[ResourceKind] === "cloudflare::Pipeline";
|
|
232
|
+
export function isPipeline(resource: any): resource is Pipeline {
|
|
233
|
+
return resource?.[ResourceKind] === "cloudflare::Pipeline";
|
|
234
234
|
}
|
|
235
235
|
|
|
236
236
|
/**
|
|
237
237
|
* Output returned after Pipeline creation/update
|
|
238
238
|
*/
|
|
239
239
|
export type Pipeline<_T extends PipelineRecord = PipelineRecord> =
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
type: "pipeline";
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* The unique ID of the pipeline
|
|
249
|
-
*/
|
|
250
|
-
id: string;
|
|
240
|
+
PipelineProps & {
|
|
241
|
+
/**
|
|
242
|
+
* Type identifier for the Pipeline resource
|
|
243
|
+
*/
|
|
244
|
+
type: "pipeline";
|
|
251
245
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
246
|
+
/**
|
|
247
|
+
* The unique ID of the pipeline
|
|
248
|
+
*/
|
|
249
|
+
id: string;
|
|
256
250
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
251
|
+
/**
|
|
252
|
+
* The name of the pipeline
|
|
253
|
+
*/
|
|
254
|
+
name: string;
|
|
261
255
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
256
|
+
/**
|
|
257
|
+
* HTTP endpoint URL for the pipeline
|
|
258
|
+
*/
|
|
259
|
+
endpoint: string;
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Version of the pipeline
|
|
263
|
+
*/
|
|
264
|
+
version: number;
|
|
265
|
+
};
|
|
267
266
|
|
|
268
267
|
/**
|
|
269
268
|
* Creates and manages Cloudflare Pipelines.
|
|
@@ -341,7 +340,7 @@ export const Pipeline = Resource("cloudflare::Pipeline", async function <
|
|
|
341
340
|
props.name ?? this.output?.name ?? this.scope.createPhysicalName(id);
|
|
342
341
|
|
|
343
342
|
if (this.scope.local && !props.dev?.remote) {
|
|
344
|
-
return
|
|
343
|
+
return {
|
|
345
344
|
type: "pipeline",
|
|
346
345
|
id: this.output?.id ?? "",
|
|
347
346
|
name: this.output?.name ?? pipelineName,
|
|
@@ -351,7 +350,7 @@ export const Pipeline = Resource("cloudflare::Pipeline", async function <
|
|
|
351
350
|
destination: props.destination,
|
|
352
351
|
compression: props.compression,
|
|
353
352
|
accountId: this.output?.accountId ?? "",
|
|
354
|
-
}
|
|
353
|
+
};
|
|
355
354
|
}
|
|
356
355
|
|
|
357
356
|
if (this.phase === "update" && this.output?.name !== pipelineName) {
|
|
@@ -418,7 +417,7 @@ export const Pipeline = Resource("cloudflare::Pipeline", async function <
|
|
|
418
417
|
}
|
|
419
418
|
}
|
|
420
419
|
|
|
421
|
-
return
|
|
420
|
+
return {
|
|
422
421
|
type: "pipeline",
|
|
423
422
|
id: pipelineData.result.id,
|
|
424
423
|
name: pipelineName,
|
|
@@ -433,7 +432,7 @@ export const Pipeline = Resource("cloudflare::Pipeline", async function <
|
|
|
433
432
|
destination: props.destination, // Use the input destination, not the API response
|
|
434
433
|
compression: props.compression,
|
|
435
434
|
accountId: api.accountId,
|
|
436
|
-
}
|
|
435
|
+
};
|
|
437
436
|
});
|
|
438
437
|
|
|
439
438
|
interface CloudflarePipelineResponse {
|
|
@@ -96,9 +96,7 @@ export interface QueueConsumerProps extends CloudflareApiOptions {
|
|
|
96
96
|
/**
|
|
97
97
|
* Output returned after Queue Consumer creation/update
|
|
98
98
|
*/
|
|
99
|
-
export interface QueueConsumer
|
|
100
|
-
extends Resource<"cloudflare::QueueConsumer">,
|
|
101
|
-
QueueConsumerProps {
|
|
99
|
+
export interface QueueConsumer extends QueueConsumerProps {
|
|
102
100
|
/**
|
|
103
101
|
* Unique ID for the consumer
|
|
104
102
|
*/
|
|
@@ -162,7 +160,7 @@ export const QueueConsumer = Resource(
|
|
|
162
160
|
typeof props.queue === "string" ? props.queue : props.queue.id;
|
|
163
161
|
|
|
164
162
|
if (this.scope.local && props.dev) {
|
|
165
|
-
return
|
|
163
|
+
return {
|
|
166
164
|
id: this.output?.id ?? "",
|
|
167
165
|
queueId,
|
|
168
166
|
queue: props.queue,
|
|
@@ -170,7 +168,7 @@ export const QueueConsumer = Resource(
|
|
|
170
168
|
scriptName: props.scriptName,
|
|
171
169
|
settings: props.settings,
|
|
172
170
|
accountId: this.output?.accountId ?? "",
|
|
173
|
-
}
|
|
171
|
+
};
|
|
174
172
|
}
|
|
175
173
|
|
|
176
174
|
const api = await createCloudflareApi(props);
|
|
@@ -231,7 +229,7 @@ export const QueueConsumer = Resource(
|
|
|
231
229
|
);
|
|
232
230
|
}
|
|
233
231
|
|
|
234
|
-
return
|
|
232
|
+
return {
|
|
235
233
|
id: consumerData.result.consumer_id,
|
|
236
234
|
queueId,
|
|
237
235
|
queue: props.queue,
|
|
@@ -249,7 +247,7 @@ export const QueueConsumer = Resource(
|
|
|
249
247
|
: undefined,
|
|
250
248
|
createdOn: consumerData.result.created_on,
|
|
251
249
|
accountId: api.accountId,
|
|
252
|
-
}
|
|
250
|
+
};
|
|
253
251
|
},
|
|
254
252
|
);
|
|
255
253
|
|
package/src/cloudflare/queue.ts
CHANGED
|
@@ -100,56 +100,55 @@ export function isQueue(eventSource: any): eventSource is Queue {
|
|
|
100
100
|
/**
|
|
101
101
|
* Output returned after Cloudflare Queue creation/update
|
|
102
102
|
*/
|
|
103
|
-
export type Queue<Body = unknown> =
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
type: "queue";
|
|
103
|
+
export type Queue<Body = unknown> = Omit<QueueProps, "dev"> & {
|
|
104
|
+
/**
|
|
105
|
+
* Type identifier for Cloudflare Queue
|
|
106
|
+
*/
|
|
107
|
+
type: "queue";
|
|
109
108
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
109
|
+
/**
|
|
110
|
+
* The unique ID of the queue
|
|
111
|
+
*/
|
|
112
|
+
id: string;
|
|
114
113
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
114
|
+
/**
|
|
115
|
+
* The name of the queue
|
|
116
|
+
*/
|
|
117
|
+
name: string;
|
|
119
118
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
119
|
+
/**
|
|
120
|
+
* Time when the queue was created
|
|
121
|
+
*/
|
|
122
|
+
createdOn: string;
|
|
124
123
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
124
|
+
/**
|
|
125
|
+
* Modified timestamp
|
|
126
|
+
*/
|
|
127
|
+
modifiedOn: string;
|
|
129
128
|
|
|
129
|
+
/**
|
|
130
|
+
* Phantom property to allow type inference
|
|
131
|
+
*/
|
|
132
|
+
Body: Body;
|
|
133
|
+
|
|
134
|
+
Batch: MessageBatch<Body>;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Development mode properties
|
|
138
|
+
* @internal
|
|
139
|
+
*/
|
|
140
|
+
dev: {
|
|
130
141
|
/**
|
|
131
|
-
*
|
|
142
|
+
* The ID of the queue in development mode
|
|
132
143
|
*/
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
Batch: MessageBatch<Body>;
|
|
144
|
+
id: string;
|
|
136
145
|
|
|
137
146
|
/**
|
|
138
|
-
*
|
|
139
|
-
* @internal
|
|
147
|
+
* Whether the queue is running remotely
|
|
140
148
|
*/
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* The ID of the queue in development mode
|
|
144
|
-
*/
|
|
145
|
-
id: string;
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Whether the queue is running remotely
|
|
149
|
-
*/
|
|
150
|
-
remote: boolean;
|
|
151
|
-
};
|
|
149
|
+
remote: boolean;
|
|
152
150
|
};
|
|
151
|
+
};
|
|
153
152
|
|
|
154
153
|
/**
|
|
155
154
|
* Creates and manages Cloudflare Queues.
|
|
@@ -256,7 +255,7 @@ const _Queue = Resource("cloudflare::Queue", async function <
|
|
|
256
255
|
remote: props.dev?.remote ?? false,
|
|
257
256
|
};
|
|
258
257
|
if (this.scope.local && !props.dev?.remote) {
|
|
259
|
-
return
|
|
258
|
+
return {
|
|
260
259
|
type: "queue",
|
|
261
260
|
id: this.output?.id ?? "",
|
|
262
261
|
name: queueName,
|
|
@@ -265,7 +264,7 @@ const _Queue = Resource("cloudflare::Queue", async function <
|
|
|
265
264
|
modifiedOn: this.output?.modifiedOn ?? new Date().toISOString(),
|
|
266
265
|
Body: undefined as T,
|
|
267
266
|
Batch: undefined! as MessageBatch<T>,
|
|
268
|
-
}
|
|
267
|
+
};
|
|
269
268
|
}
|
|
270
269
|
|
|
271
270
|
const api = await createCloudflareApi(props);
|
|
@@ -320,7 +319,7 @@ const _Queue = Resource("cloudflare::Queue", async function <
|
|
|
320
319
|
}
|
|
321
320
|
}
|
|
322
321
|
|
|
323
|
-
return
|
|
322
|
+
return {
|
|
324
323
|
type: "queue",
|
|
325
324
|
id: queueData.result.queue_id || "",
|
|
326
325
|
name: queueName,
|
|
@@ -340,7 +339,7 @@ const _Queue = Resource("cloudflare::Queue", async function <
|
|
|
340
339
|
// phantom properties
|
|
341
340
|
Body: undefined as T,
|
|
342
341
|
Batch: undefined! as MessageBatch<T>,
|
|
343
|
-
}
|
|
342
|
+
};
|
|
344
343
|
});
|
|
345
344
|
|
|
346
345
|
interface CloudflareQueueResponse {
|
|
@@ -1,7 +1,27 @@
|
|
|
1
1
|
import type { PluginConfig } from "@cloudflare/vite-plugin";
|
|
2
|
+
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { dirname } from "node:path";
|
|
4
|
+
import { getDefaultConfigPath } from "../miniflare/paths.ts";
|
|
2
5
|
import alchemyVite from "../vite/plugin.ts";
|
|
3
6
|
|
|
4
7
|
const alchemy = (config?: PluginConfig) => {
|
|
8
|
+
const configPath = config?.configPath ?? getDefaultConfigPath();
|
|
9
|
+
// react-router type generation requries a wrangler.json and creates a chicken and egg problem
|
|
10
|
+
// we create a dummy wrangler.json file so that clean builds can be performed
|
|
11
|
+
if (!existsSync(configPath)) {
|
|
12
|
+
mkdirSync(dirname(configPath), { recursive: true });
|
|
13
|
+
writeFileSync(
|
|
14
|
+
configPath,
|
|
15
|
+
JSON.stringify(
|
|
16
|
+
{
|
|
17
|
+
name: "dummy",
|
|
18
|
+
compatibility_date: "2025-09-23",
|
|
19
|
+
},
|
|
20
|
+
null,
|
|
21
|
+
2,
|
|
22
|
+
),
|
|
23
|
+
);
|
|
24
|
+
}
|
|
5
25
|
return alchemyVite({
|
|
6
26
|
...config,
|
|
7
27
|
viteEnvironment: {
|
|
@@ -94,7 +94,7 @@ interface CloudflareRule {
|
|
|
94
94
|
/**
|
|
95
95
|
* Output returned after RedirectRule creation/update
|
|
96
96
|
*/
|
|
97
|
-
export interface RedirectRule
|
|
97
|
+
export interface RedirectRule {
|
|
98
98
|
/**
|
|
99
99
|
* The ID of the redirect rule
|
|
100
100
|
*/
|
|
@@ -263,7 +263,7 @@ export const RedirectRule = Resource(
|
|
|
263
263
|
},
|
|
264
264
|
);
|
|
265
265
|
|
|
266
|
-
return
|
|
266
|
+
return {
|
|
267
267
|
ruleId: updatedRule.id,
|
|
268
268
|
rulesetId: this.output.rulesetId,
|
|
269
269
|
zoneId,
|
|
@@ -274,7 +274,7 @@ export const RedirectRule = Resource(
|
|
|
274
274
|
preserveQueryString,
|
|
275
275
|
enabled: updatedRule.enabled ?? true,
|
|
276
276
|
lastUpdated: updatedRule.last_updated,
|
|
277
|
-
}
|
|
277
|
+
};
|
|
278
278
|
}
|
|
279
279
|
|
|
280
280
|
// Get or create the redirect ruleset for this zone
|
|
@@ -288,7 +288,7 @@ export const RedirectRule = Resource(
|
|
|
288
288
|
preserveQueryString,
|
|
289
289
|
});
|
|
290
290
|
|
|
291
|
-
return
|
|
291
|
+
return {
|
|
292
292
|
ruleId: createdRule.id,
|
|
293
293
|
rulesetId,
|
|
294
294
|
zoneId,
|
|
@@ -299,7 +299,7 @@ export const RedirectRule = Resource(
|
|
|
299
299
|
preserveQueryString,
|
|
300
300
|
enabled: createdRule.enabled ?? true,
|
|
301
301
|
lastUpdated: createdRule.last_updated,
|
|
302
|
-
}
|
|
302
|
+
};
|
|
303
303
|
},
|
|
304
304
|
);
|
|
305
305
|
|
package/src/cloudflare/route.ts
CHANGED
|
@@ -62,7 +62,7 @@ export interface RouteProps extends CloudflareApiOptions {
|
|
|
62
62
|
/**
|
|
63
63
|
* Output returned after Route creation/update
|
|
64
64
|
*/
|
|
65
|
-
export interface Route extends
|
|
65
|
+
export interface Route extends RouteProps {
|
|
66
66
|
/**
|
|
67
67
|
* The unique ID of the route
|
|
68
68
|
*/
|
|
@@ -166,12 +166,12 @@ export const Route = Resource(
|
|
|
166
166
|
zoneId = this.output?.zoneId ?? "noop-zone";
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
return
|
|
169
|
+
return {
|
|
170
170
|
id: this.output?.id ?? "noop-route",
|
|
171
171
|
pattern: props.pattern,
|
|
172
172
|
script: scriptName,
|
|
173
173
|
zoneId: zoneId,
|
|
174
|
-
}
|
|
174
|
+
};
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
// Get or infer zone ID (only needed for create/update phases)
|
|
@@ -247,12 +247,12 @@ export const Route = Resource(
|
|
|
247
247
|
}
|
|
248
248
|
|
|
249
249
|
// Return the route resource
|
|
250
|
-
return
|
|
250
|
+
return {
|
|
251
251
|
id: routeData.result.id,
|
|
252
252
|
pattern: routeData.result.pattern,
|
|
253
253
|
script: routeData.result.script,
|
|
254
254
|
zoneId,
|
|
255
|
-
}
|
|
255
|
+
};
|
|
256
256
|
},
|
|
257
257
|
);
|
|
258
258
|
|
|
@@ -46,8 +46,7 @@ export interface RulesetProps<Phase extends RulePhase>
|
|
|
46
46
|
/**
|
|
47
47
|
* Output returned after Ruleset creation/update
|
|
48
48
|
*/
|
|
49
|
-
export interface Ruleset<Phase extends RulePhase>
|
|
50
|
-
extends Resource<"cloudflare::Ruleset"> {
|
|
49
|
+
export interface Ruleset<Phase extends RulePhase> {
|
|
51
50
|
/**
|
|
52
51
|
* The ID of the ruleset
|
|
53
52
|
*/
|
|
@@ -185,7 +184,7 @@ export const Ruleset = Resource("cloudflare::Ruleset", async function <
|
|
|
185
184
|
});
|
|
186
185
|
|
|
187
186
|
// Transform response back to our format
|
|
188
|
-
return
|
|
187
|
+
return {
|
|
189
188
|
id: result.id,
|
|
190
189
|
zoneId,
|
|
191
190
|
phase: props.phase,
|
|
@@ -194,7 +193,7 @@ export const Ruleset = Resource("cloudflare::Ruleset", async function <
|
|
|
194
193
|
rules: (result.rules as Array<Rule> | undefined) ?? [],
|
|
195
194
|
lastUpdated: result.last_updated,
|
|
196
195
|
version: result.version,
|
|
197
|
-
}
|
|
196
|
+
};
|
|
198
197
|
});
|
|
199
198
|
|
|
200
199
|
interface CloudflareApiRuleset {
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { createCloudflareApi, type CloudflareApiOptions } from "./api.ts";
|
|
2
|
+
import { findSecretsStoreByName, SecretsStore } from "./secrets-store.ts";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Properties for referencing an existing Secret in a Secrets Store (without managing its value)
|
|
6
|
+
*/
|
|
7
|
+
export interface SecretRefProps extends CloudflareApiOptions {
|
|
8
|
+
name: string;
|
|
9
|
+
store?: SecretsStore;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export type SecretRef = {
|
|
13
|
+
type: "secrets_store_secret";
|
|
14
|
+
name: string;
|
|
15
|
+
storeId: string;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* SecretRef references an existing secret by name in a Secrets Store.
|
|
20
|
+
*
|
|
21
|
+
* It does not create or update the secret value – use {@link Secret} for that.
|
|
22
|
+
*
|
|
23
|
+
* Behavior:
|
|
24
|
+
* - Resolves the target secrets store ID (defaults to Cloudflare's `default_secrets_store`, creating/adopting if needed)
|
|
25
|
+
* - Exposes a binding of type `secrets_store_secret` usable in Worker bindings
|
|
26
|
+
* - Update with a different name will trigger resource replacement
|
|
27
|
+
* - Delete is a no-op in Cloudflare (resource removed from state only)
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* // Reference an existing secret in the default store and bind to a Worker
|
|
31
|
+
* const apiKeyRef = await SecretRef("api-key-ref", { name: "API_KEY" });
|
|
32
|
+
* const worker = await Worker("my-worker", {
|
|
33
|
+
* entrypoint: "./src/worker.ts",
|
|
34
|
+
* url: true,
|
|
35
|
+
* bindings: {
|
|
36
|
+
* API_KEY: apiKeyRef,
|
|
37
|
+
* },
|
|
38
|
+
* });
|
|
39
|
+
*/
|
|
40
|
+
export async function SecretRef(props: SecretRefProps): Promise<SecretRef> {
|
|
41
|
+
const api = await createCloudflareApi(props);
|
|
42
|
+
|
|
43
|
+
const storeId =
|
|
44
|
+
props.store?.id ??
|
|
45
|
+
(await findSecretsStoreByName(api, SecretsStore.Default))?.id;
|
|
46
|
+
|
|
47
|
+
if (!storeId) {
|
|
48
|
+
throw new Error(`Secrets store ${SecretsStore.Default} not found`);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return {
|
|
52
|
+
type: "secrets_store_secret",
|
|
53
|
+
name: props.name,
|
|
54
|
+
storeId,
|
|
55
|
+
};
|
|
56
|
+
}
|