alchemy 2.0.0-beta.62 → 2.0.0-beta.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -12
- package/bin/exec.js +1959 -70
- package/bin/exec.js.map +1 -1
- package/lib/AWS/AuthProvider.js +1 -1
- package/lib/AWS/AuthProvider.js.map +1 -1
- package/lib/AWS/EC2/hosted.d.ts.map +1 -1
- package/lib/AWS/EC2/hosted.js +2 -1
- package/lib/AWS/EC2/hosted.js.map +1 -1
- package/lib/AWS/ECS/Task.d.ts.map +1 -1
- package/lib/AWS/ECS/Task.js +2 -1
- package/lib/AWS/ECS/Task.js.map +1 -1
- package/lib/AWS/Lambda/Function.d.ts.map +1 -1
- package/lib/AWS/Lambda/Function.js +13 -40
- package/lib/AWS/Lambda/Function.js.map +1 -1
- package/lib/AWS/Lambda/MicrovmRuntimeContext.d.ts.map +1 -1
- package/lib/AWS/Lambda/MicrovmRuntimeContext.js +9 -21
- package/lib/AWS/Lambda/MicrovmRuntimeContext.js.map +1 -1
- package/lib/Action.d.ts +8 -0
- package/lib/Action.d.ts.map +1 -1
- package/lib/Action.js +16 -5
- package/lib/Action.js.map +1 -1
- package/lib/ActionRuntimeContext.d.ts +14 -0
- package/lib/ActionRuntimeContext.d.ts.map +1 -0
- package/lib/ActionRuntimeContext.js +56 -0
- package/lib/ActionRuntimeContext.js.map +1 -0
- package/lib/Apply.d.ts.map +1 -1
- package/lib/Apply.js +40 -6
- package/lib/Apply.js.map +1 -1
- package/lib/Auth/AuthProvider.d.ts +3 -3
- package/lib/Auth/AuthProvider.d.ts.map +1 -1
- package/lib/Auth/AuthProvider.js +1 -1
- package/lib/Auth/AuthProvider.js.map +1 -1
- package/lib/Auth/Lock.d.ts.map +1 -1
- package/lib/Auth/Lock.js +5 -2
- package/lib/Auth/Lock.js.map +1 -1
- package/lib/Bundle/PurePlugin.d.ts.map +1 -1
- package/lib/Bundle/PurePlugin.js +26 -1
- package/lib/Bundle/PurePlugin.js.map +1 -1
- package/lib/Bundle/Vite.d.ts +2 -0
- package/lib/Bundle/Vite.d.ts.map +1 -1
- package/lib/Bundle/Vite.js +24 -1
- package/lib/Bundle/Vite.js.map +1 -1
- package/lib/Cli/LoggingCli.d.ts.map +1 -1
- package/lib/Cli/LoggingCli.js +7 -4
- package/lib/Cli/LoggingCli.js.map +1 -1
- package/lib/Cli/commands/_shared.d.ts +19 -0
- package/lib/Cli/commands/_shared.d.ts.map +1 -1
- package/lib/Cli/commands/_shared.js +22 -0
- package/lib/Cli/commands/_shared.js.map +1 -1
- package/lib/Cli/commands/login.d.ts +7 -3
- package/lib/Cli/commands/login.d.ts.map +1 -1
- package/lib/Cli/commands/login.js +70 -12
- package/lib/Cli/commands/login.js.map +1 -1
- package/lib/Cli/commands/profile.d.ts.map +1 -1
- package/lib/Cli/commands/profile.js +7 -20
- package/lib/Cli/commands/profile.js.map +1 -1
- package/lib/Cloudflare/AI/LanguageModel.js +21 -4
- package/lib/Cloudflare/AI/LanguageModel.js.map +1 -1
- package/lib/Cloudflare/AI/QuerySearchLocal.d.ts +37 -0
- package/lib/Cloudflare/AI/QuerySearchLocal.d.ts.map +1 -0
- package/lib/Cloudflare/AI/QuerySearchLocal.js +53 -0
- package/lib/Cloudflare/AI/QuerySearchLocal.js.map +1 -0
- package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.d.ts +35 -0
- package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.d.ts.map +1 -0
- package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.js +47 -0
- package/lib/Cloudflare/AI/QuerySearchNamespaceLocal.js.map +1 -0
- package/lib/Cloudflare/AI/SearchHttpClient.d.ts +34 -0
- package/lib/Cloudflare/AI/SearchHttpClient.d.ts.map +1 -0
- package/lib/Cloudflare/AI/SearchHttpClient.js +262 -0
- package/lib/Cloudflare/AI/SearchHttpClient.js.map +1 -0
- package/lib/Cloudflare/AI/index.d.ts +2 -0
- package/lib/Cloudflare/AI/index.d.ts.map +1 -1
- package/lib/Cloudflare/AI/index.js +2 -0
- package/lib/Cloudflare/AI/index.js.map +1 -1
- package/lib/Cloudflare/Auth/AuthProvider.js +1 -1
- package/lib/Cloudflare/Auth/AuthProvider.js.map +1 -1
- package/lib/Cloudflare/Containers/ContainerBundle.d.ts.map +1 -1
- package/lib/Cloudflare/Containers/ContainerBundle.js +11 -1
- package/lib/Cloudflare/Containers/ContainerBundle.js.map +1 -1
- package/lib/Cloudflare/Containers/ContainerPlatform.d.ts.map +1 -1
- package/lib/Cloudflare/Containers/ContainerPlatform.js +12 -33
- package/lib/Cloudflare/Containers/ContainerPlatform.js.map +1 -1
- package/lib/Cloudflare/D1/QueryDatabaseHttpClient.d.ts +24 -0
- package/lib/Cloudflare/D1/QueryDatabaseHttpClient.d.ts.map +1 -0
- package/lib/Cloudflare/D1/QueryDatabaseHttpClient.js +106 -0
- package/lib/Cloudflare/D1/QueryDatabaseHttpClient.js.map +1 -0
- package/lib/Cloudflare/D1/QueryDatabaseLocal.d.ts +38 -0
- package/lib/Cloudflare/D1/QueryDatabaseLocal.d.ts.map +1 -0
- package/lib/Cloudflare/D1/QueryDatabaseLocal.js +54 -0
- package/lib/Cloudflare/D1/QueryDatabaseLocal.js.map +1 -0
- package/lib/Cloudflare/D1/index.d.ts +1 -0
- package/lib/Cloudflare/D1/index.d.ts.map +1 -1
- package/lib/Cloudflare/D1/index.js +1 -0
- package/lib/Cloudflare/D1/index.js.map +1 -1
- package/lib/Cloudflare/DNS/DnsHttp.d.ts +16 -1
- package/lib/Cloudflare/DNS/DnsHttp.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/DnsHttp.js +6 -1
- package/lib/Cloudflare/DNS/DnsHttp.js.map +1 -1
- package/lib/Cloudflare/DNS/DnsLocal.d.ts +22 -0
- package/lib/Cloudflare/DNS/DnsLocal.d.ts.map +1 -0
- package/lib/Cloudflare/DNS/DnsLocal.js +31 -0
- package/lib/Cloudflare/DNS/DnsLocal.js.map +1 -0
- package/lib/Cloudflare/DNS/ReadDnsHttp.d.ts +3 -3
- package/lib/Cloudflare/DNS/ReadDnsHttp.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/ReadDnsHttp.js +3 -4
- package/lib/Cloudflare/DNS/ReadDnsHttp.js.map +1 -1
- package/lib/Cloudflare/DNS/ReadDnsLocal.d.ts +32 -0
- package/lib/Cloudflare/DNS/ReadDnsLocal.d.ts.map +1 -0
- package/lib/Cloudflare/DNS/ReadDnsLocal.js +35 -0
- package/lib/Cloudflare/DNS/ReadDnsLocal.js.map +1 -0
- package/lib/Cloudflare/DNS/ReadWriteDnsHttp.d.ts +3 -3
- package/lib/Cloudflare/DNS/ReadWriteDnsHttp.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/ReadWriteDnsHttp.js +4 -4
- package/lib/Cloudflare/DNS/ReadWriteDnsHttp.js.map +1 -1
- package/lib/Cloudflare/DNS/ReadWriteDnsLocal.d.ts +40 -0
- package/lib/Cloudflare/DNS/ReadWriteDnsLocal.d.ts.map +1 -0
- package/lib/Cloudflare/DNS/ReadWriteDnsLocal.js +43 -0
- package/lib/Cloudflare/DNS/ReadWriteDnsLocal.js.map +1 -0
- package/lib/Cloudflare/DNS/WriteDnsHttp.d.ts +3 -3
- package/lib/Cloudflare/DNS/WriteDnsHttp.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/WriteDnsHttp.js +3 -4
- package/lib/Cloudflare/DNS/WriteDnsHttp.js.map +1 -1
- package/lib/Cloudflare/DNS/WriteDnsLocal.d.ts +38 -0
- package/lib/Cloudflare/DNS/WriteDnsLocal.d.ts.map +1 -0
- package/lib/Cloudflare/DNS/WriteDnsLocal.js +41 -0
- package/lib/Cloudflare/DNS/WriteDnsLocal.js.map +1 -0
- package/lib/Cloudflare/DNS/index.d.ts +3 -0
- package/lib/Cloudflare/DNS/index.d.ts.map +1 -1
- package/lib/Cloudflare/DNS/index.js +3 -0
- package/lib/Cloudflare/DNS/index.js.map +1 -1
- package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.d.ts +27 -0
- package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.d.ts.map +1 -0
- package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.js +86 -0
- package/lib/Cloudflare/Flagship/ReadFlagsHttpClient.js.map +1 -0
- package/lib/Cloudflare/Flagship/ReadFlagsLocal.d.ts +41 -0
- package/lib/Cloudflare/Flagship/ReadFlagsLocal.d.ts.map +1 -0
- package/lib/Cloudflare/Flagship/ReadFlagsLocal.js +57 -0
- package/lib/Cloudflare/Flagship/ReadFlagsLocal.js.map +1 -0
- package/lib/Cloudflare/Flagship/index.d.ts +1 -0
- package/lib/Cloudflare/Flagship/index.d.ts.map +1 -1
- package/lib/Cloudflare/Flagship/index.js +1 -0
- package/lib/Cloudflare/Flagship/index.js.map +1 -1
- package/lib/Cloudflare/KV/NamespaceHttp.d.ts +16 -1
- package/lib/Cloudflare/KV/NamespaceHttp.d.ts.map +1 -1
- package/lib/Cloudflare/KV/NamespaceHttp.js +8 -2
- package/lib/Cloudflare/KV/NamespaceHttp.js.map +1 -1
- package/lib/Cloudflare/KV/NamespaceLocal.d.ts +22 -0
- package/lib/Cloudflare/KV/NamespaceLocal.d.ts.map +1 -0
- package/lib/Cloudflare/KV/NamespaceLocal.js +32 -0
- package/lib/Cloudflare/KV/NamespaceLocal.js.map +1 -0
- package/lib/Cloudflare/KV/ReadNamespaceHttp.d.ts +2 -2
- package/lib/Cloudflare/KV/ReadNamespaceHttp.d.ts.map +1 -1
- package/lib/Cloudflare/KV/ReadNamespaceHttp.js +5 -6
- package/lib/Cloudflare/KV/ReadNamespaceHttp.js.map +1 -1
- package/lib/Cloudflare/KV/ReadNamespaceLocal.d.ts +27 -0
- package/lib/Cloudflare/KV/ReadNamespaceLocal.d.ts.map +1 -0
- package/lib/Cloudflare/KV/ReadNamespaceLocal.js +30 -0
- package/lib/Cloudflare/KV/ReadNamespaceLocal.js.map +1 -0
- package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.d.ts +3 -3
- package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.d.ts.map +1 -1
- package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.js +6 -6
- package/lib/Cloudflare/KV/ReadWriteNamespaceHttp.js.map +1 -1
- package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.d.ts +34 -0
- package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.d.ts.map +1 -0
- package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.js +37 -0
- package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.js.map +1 -0
- package/lib/Cloudflare/KV/WriteNamespaceHttp.d.ts +2 -2
- package/lib/Cloudflare/KV/WriteNamespaceHttp.d.ts.map +1 -1
- package/lib/Cloudflare/KV/WriteNamespaceHttp.js +5 -6
- package/lib/Cloudflare/KV/WriteNamespaceHttp.js.map +1 -1
- package/lib/Cloudflare/KV/WriteNamespaceLocal.d.ts +27 -0
- package/lib/Cloudflare/KV/WriteNamespaceLocal.d.ts.map +1 -0
- package/lib/Cloudflare/KV/WriteNamespaceLocal.js +30 -0
- package/lib/Cloudflare/KV/WriteNamespaceLocal.js.map +1 -0
- package/lib/Cloudflare/KV/index.d.ts +3 -0
- package/lib/Cloudflare/KV/index.d.ts.map +1 -1
- package/lib/Cloudflare/KV/index.js +3 -0
- package/lib/Cloudflare/KV/index.js.map +1 -1
- package/lib/Cloudflare/Queues/QueueHttp.d.ts +20 -1
- package/lib/Cloudflare/Queues/QueueHttp.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/QueueHttp.js +2 -2
- package/lib/Cloudflare/Queues/QueueHttp.js.map +1 -1
- package/lib/Cloudflare/Queues/WriteQueueHttp.d.ts +9 -3
- package/lib/Cloudflare/Queues/WriteQueueHttp.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/WriteQueueHttp.js +11 -6
- package/lib/Cloudflare/Queues/WriteQueueHttp.js.map +1 -1
- package/lib/Cloudflare/Queues/WriteQueueLocal.d.ts +36 -0
- package/lib/Cloudflare/Queues/WriteQueueLocal.d.ts.map +1 -0
- package/lib/Cloudflare/Queues/WriteQueueLocal.js +51 -0
- package/lib/Cloudflare/Queues/WriteQueueLocal.js.map +1 -0
- package/lib/Cloudflare/Queues/index.d.ts +1 -0
- package/lib/Cloudflare/Queues/index.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/index.js +1 -0
- package/lib/Cloudflare/Queues/index.js.map +1 -1
- package/lib/Cloudflare/R2/BucketHttp.d.ts +15 -1
- package/lib/Cloudflare/R2/BucketHttp.d.ts.map +1 -1
- package/lib/Cloudflare/R2/BucketHttp.js +3 -3
- package/lib/Cloudflare/R2/BucketHttp.js.map +1 -1
- package/lib/Cloudflare/R2/BucketLocal.d.ts +21 -0
- package/lib/Cloudflare/R2/BucketLocal.d.ts.map +1 -0
- package/lib/Cloudflare/R2/BucketLocal.js +32 -0
- package/lib/Cloudflare/R2/BucketLocal.js.map +1 -0
- package/lib/Cloudflare/R2/ReadBucketHttp.d.ts +2 -2
- package/lib/Cloudflare/R2/ReadBucketHttp.d.ts.map +1 -1
- package/lib/Cloudflare/R2/ReadBucketHttp.js +4 -4
- package/lib/Cloudflare/R2/ReadBucketHttp.js.map +1 -1
- package/lib/Cloudflare/R2/ReadBucketLocal.d.ts +27 -0
- package/lib/Cloudflare/R2/ReadBucketLocal.d.ts.map +1 -0
- package/lib/Cloudflare/R2/ReadBucketLocal.js +30 -0
- package/lib/Cloudflare/R2/ReadBucketLocal.js.map +1 -0
- package/lib/Cloudflare/R2/ReadWriteBucketHttp.d.ts +2 -2
- package/lib/Cloudflare/R2/ReadWriteBucketHttp.d.ts.map +1 -1
- package/lib/Cloudflare/R2/ReadWriteBucketHttp.js +5 -4
- package/lib/Cloudflare/R2/ReadWriteBucketHttp.js.map +1 -1
- package/lib/Cloudflare/R2/ReadWriteBucketLocal.d.ts +30 -0
- package/lib/Cloudflare/R2/ReadWriteBucketLocal.d.ts.map +1 -0
- package/lib/Cloudflare/R2/ReadWriteBucketLocal.js +33 -0
- package/lib/Cloudflare/R2/ReadWriteBucketLocal.js.map +1 -0
- package/lib/Cloudflare/R2/WriteBucketHttp.d.ts +2 -2
- package/lib/Cloudflare/R2/WriteBucketHttp.d.ts.map +1 -1
- package/lib/Cloudflare/R2/WriteBucketHttp.js +4 -4
- package/lib/Cloudflare/R2/WriteBucketHttp.js.map +1 -1
- package/lib/Cloudflare/R2/WriteBucketLocal.d.ts +27 -0
- package/lib/Cloudflare/R2/WriteBucketLocal.d.ts.map +1 -0
- package/lib/Cloudflare/R2/WriteBucketLocal.js +30 -0
- package/lib/Cloudflare/R2/WriteBucketLocal.js.map +1 -0
- package/lib/Cloudflare/R2/index.d.ts +3 -0
- package/lib/Cloudflare/R2/index.d.ts.map +1 -1
- package/lib/Cloudflare/R2/index.js +3 -0
- package/lib/Cloudflare/R2/index.js.map +1 -1
- package/lib/Cloudflare/StateStore/Api.d.ts +2 -0
- package/lib/Cloudflare/Tunnel/ReadTunnel.d.ts +3 -3
- package/lib/Cloudflare/Tunnel/ReadTunnel.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/ReadTunnel.js +7 -8
- package/lib/Cloudflare/Tunnel/ReadTunnel.js.map +1 -1
- package/lib/Cloudflare/Tunnel/ReadTunnelLocal.d.ts +29 -0
- package/lib/Cloudflare/Tunnel/ReadTunnelLocal.d.ts.map +1 -0
- package/lib/Cloudflare/Tunnel/ReadTunnelLocal.js +30 -0
- package/lib/Cloudflare/Tunnel/ReadTunnelLocal.js.map +1 -0
- package/lib/Cloudflare/Tunnel/ReadWriteTunnel.d.ts +3 -3
- package/lib/Cloudflare/Tunnel/ReadWriteTunnel.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/ReadWriteTunnel.js +4 -4
- package/lib/Cloudflare/Tunnel/ReadWriteTunnel.js.map +1 -1
- package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.d.ts +35 -0
- package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.d.ts.map +1 -0
- package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.js +36 -0
- package/lib/Cloudflare/Tunnel/ReadWriteTunnelLocal.js.map +1 -0
- package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts +17 -1
- package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/TunnelBinding.js +7 -1
- package/lib/Cloudflare/Tunnel/TunnelBinding.js.map +1 -1
- package/lib/Cloudflare/Tunnel/TunnelLocalBinding.d.ts +19 -0
- package/lib/Cloudflare/Tunnel/TunnelLocalBinding.d.ts.map +1 -0
- package/lib/Cloudflare/Tunnel/TunnelLocalBinding.js +29 -0
- package/lib/Cloudflare/Tunnel/TunnelLocalBinding.js.map +1 -0
- package/lib/Cloudflare/Tunnel/WarpConnector.d.ts +3 -3
- package/lib/Cloudflare/Tunnel/WarpConnector.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/WarpConnector.js +7 -4
- package/lib/Cloudflare/Tunnel/WarpConnector.js.map +1 -1
- package/lib/Cloudflare/Tunnel/WriteTunnel.d.ts +3 -3
- package/lib/Cloudflare/Tunnel/WriteTunnel.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/WriteTunnel.js +7 -8
- package/lib/Cloudflare/Tunnel/WriteTunnel.js.map +1 -1
- package/lib/Cloudflare/Tunnel/WriteTunnelLocal.d.ts +29 -0
- package/lib/Cloudflare/Tunnel/WriteTunnelLocal.d.ts.map +1 -0
- package/lib/Cloudflare/Tunnel/WriteTunnelLocal.js +30 -0
- package/lib/Cloudflare/Tunnel/WriteTunnelLocal.js.map +1 -0
- package/lib/Cloudflare/Tunnel/index.d.ts +3 -0
- package/lib/Cloudflare/Tunnel/index.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/index.js +3 -0
- package/lib/Cloudflare/Tunnel/index.js.map +1 -1
- package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.d.ts +30 -0
- package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.d.ts.map +1 -0
- package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.js +100 -0
- package/lib/Cloudflare/Vectorize/SearchIndexHttpClient.js.map +1 -0
- package/lib/Cloudflare/Vectorize/SearchIndexLocal.d.ts +42 -0
- package/lib/Cloudflare/Vectorize/SearchIndexLocal.d.ts.map +1 -0
- package/lib/Cloudflare/Vectorize/SearchIndexLocal.js +58 -0
- package/lib/Cloudflare/Vectorize/SearchIndexLocal.js.map +1 -0
- package/lib/Cloudflare/Vectorize/index.d.ts +1 -0
- package/lib/Cloudflare/Vectorize/index.d.ts.map +1 -1
- package/lib/Cloudflare/Vectorize/index.js +1 -0
- package/lib/Cloudflare/Vectorize/index.js.map +1 -1
- package/lib/Cloudflare/Workers/BrowserHttpClient.d.ts +32 -0
- package/lib/Cloudflare/Workers/BrowserHttpClient.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/BrowserHttpClient.js +100 -0
- package/lib/Cloudflare/Workers/BrowserHttpClient.js.map +1 -0
- package/lib/Cloudflare/Workers/BrowserLocal.d.ts +37 -0
- package/lib/Cloudflare/Workers/BrowserLocal.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/BrowserLocal.js +53 -0
- package/lib/Cloudflare/Workers/BrowserLocal.js.map +1 -0
- package/lib/Cloudflare/Workers/ConfigProvider.d.ts +8 -0
- package/lib/Cloudflare/Workers/ConfigProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/ConfigProvider.js +10 -1
- package/lib/Cloudflare/Workers/ConfigProvider.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObject.d.ts +137 -3
- package/lib/Cloudflare/Workers/DurableObject.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObject.js +141 -6
- package/lib/Cloudflare/Workers/DurableObject.js.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +2 -185
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Vite.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Vite.js +81 -2
- package/lib/Cloudflare/Workers/Vite.js.map +1 -1
- package/lib/Cloudflare/Workers/Worker.d.ts +15 -1
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +2 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts +22 -1
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBridge.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBridge.js +7 -2
- package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerProvider.d.ts +81 -0
- package/lib/Cloudflare/Workers/WorkerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerProvider.js +450 -61
- package/lib/Cloudflare/Workers/WorkerProvider.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.js +11 -37
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.js.map +1 -1
- package/lib/Cloudflare/Workers/index.d.ts +1 -0
- package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/index.js +1 -0
- package/lib/Cloudflare/Workers/index.js.map +1 -1
- package/lib/Diff.d.ts +16 -0
- package/lib/Diff.d.ts.map +1 -1
- package/lib/Diff.js +33 -0
- package/lib/Diff.js.map +1 -1
- package/lib/GitHub/Secrets.d.ts +1 -1
- package/lib/GitHub/Secrets.js +1 -1
- package/lib/GitHub/Variables.d.ts +1 -1
- package/lib/GitHub/Variables.js +1 -1
- package/lib/Local/RpcSerialization.d.ts.map +1 -1
- package/lib/Local/RpcSerialization.js +6 -2
- package/lib/Local/RpcSerialization.js.map +1 -1
- package/lib/Local/RpcSpawner.d.ts.map +1 -1
- package/lib/Local/RpcSpawner.js +14 -8
- package/lib/Local/RpcSpawner.js.map +1 -1
- package/lib/Neon/AuthProvider.js +1 -1
- package/lib/Neon/AuthProvider.js.map +1 -1
- package/lib/Plan.d.ts.map +1 -1
- package/lib/Plan.js +11 -4
- package/lib/Plan.js.map +1 -1
- package/lib/Planetscale/Database.d.ts +2 -1
- package/lib/Planetscale/Database.d.ts.map +1 -1
- package/lib/Planetscale/MySQL/MySQLClusterSize.d.ts +41 -3
- package/lib/Planetscale/MySQL/MySQLClusterSize.d.ts.map +1 -1
- package/lib/Planetscale/MySQL/MySQLClusterSize.js +88 -11
- package/lib/Planetscale/MySQL/MySQLClusterSize.js.map +1 -1
- package/lib/Planetscale/MySQL/MySQLDatabase.d.ts +14 -0
- package/lib/Planetscale/MySQL/MySQLDatabase.d.ts.map +1 -1
- package/lib/Planetscale/MySQL/MySQLDatabase.js +24 -11
- package/lib/Planetscale/MySQL/MySQLDatabase.js.map +1 -1
- package/lib/Platform.d.ts.map +1 -1
- package/lib/Platform.js +11 -1
- package/lib/Platform.js.map +1 -1
- package/lib/Runtime.d.ts +23 -0
- package/lib/Runtime.d.ts.map +1 -1
- package/lib/Runtime.js +83 -0
- package/lib/Runtime.js.map +1 -1
- package/lib/RuntimeContext.d.ts +46 -0
- package/lib/RuntimeContext.d.ts.map +1 -1
- package/lib/RuntimeContext.js +60 -0
- package/lib/RuntimeContext.js.map +1 -1
- package/lib/Server/Process.d.ts +1 -1
- package/lib/Server/Process.d.ts.map +1 -1
- package/lib/Server/Process.js +8 -8
- package/lib/Server/Process.js.map +1 -1
- package/lib/Stack.js +1 -1
- package/lib/Stack.js.map +1 -1
- package/lib/State/HttpStateApi.d.ts +10 -10
- package/lib/Test/Alchemy.d.ts +74 -0
- package/lib/Test/Alchemy.d.ts.map +1 -0
- package/lib/Test/Alchemy.js +143 -0
- package/lib/Test/Alchemy.js.map +1 -0
- package/lib/Util/cached-function.d.ts +1 -1
- package/lib/Util/cached-function.d.ts.map +1 -1
- package/lib/Util/cached-function.js +2 -2
- package/lib/Util/cached-function.js.map +1 -1
- package/lib/Util/proxy-chain.js +3 -0
- package/lib/Util/proxy-chain.js.map +1 -1
- package/package.json +10 -10
- package/src/AWS/AuthProvider.ts +1 -1
- package/src/AWS/EC2/hosted.ts +2 -1
- package/src/AWS/ECS/Task.ts +2 -1
- package/src/AWS/Lambda/Function.ts +13 -47
- package/src/AWS/Lambda/MicrovmRuntimeContext.ts +11 -38
- package/src/Action.ts +39 -6
- package/src/ActionRuntimeContext.ts +68 -0
- package/src/Apply.ts +46 -8
- package/src/Auth/AuthProvider.ts +1 -1
- package/src/Auth/Lock.ts +5 -2
- package/src/Bundle/PurePlugin.ts +34 -1
- package/src/Bundle/Vite.ts +51 -1
- package/src/Cli/LoggingCli.ts +7 -4
- package/src/Cli/commands/_shared.ts +52 -0
- package/src/Cli/commands/login.ts +90 -14
- package/src/Cli/commands/profile.ts +7 -41
- package/src/Cloudflare/AI/LanguageModel.ts +25 -5
- package/src/Cloudflare/AI/QuerySearchLocal.ts +66 -0
- package/src/Cloudflare/AI/QuerySearchNamespaceLocal.ts +60 -0
- package/src/Cloudflare/AI/SearchHttpClient.ts +423 -0
- package/src/Cloudflare/AI/index.ts +2 -0
- package/src/Cloudflare/Auth/AuthProvider.ts +1 -1
- package/src/Cloudflare/Containers/ContainerBundle.ts +11 -1
- package/src/Cloudflare/Containers/ContainerPlatform.ts +14 -52
- package/src/Cloudflare/D1/QueryDatabaseHttpClient.ts +176 -0
- package/src/Cloudflare/D1/QueryDatabaseLocal.ts +66 -0
- package/src/Cloudflare/D1/index.ts +1 -0
- package/src/Cloudflare/DNS/DnsHttp.ts +24 -2
- package/src/Cloudflare/DNS/DnsLocal.ts +41 -0
- package/src/Cloudflare/DNS/ReadDnsHttp.ts +4 -5
- package/src/Cloudflare/DNS/ReadDnsLocal.ts +38 -0
- package/src/Cloudflare/DNS/ReadWriteDnsHttp.ts +5 -5
- package/src/Cloudflare/DNS/ReadWriteDnsLocal.ts +46 -0
- package/src/Cloudflare/DNS/WriteDnsHttp.ts +4 -5
- package/src/Cloudflare/DNS/WriteDnsLocal.ts +44 -0
- package/src/Cloudflare/DNS/index.ts +3 -0
- package/src/Cloudflare/Flagship/ReadFlagsHttpClient.ts +183 -0
- package/src/Cloudflare/Flagship/ReadFlagsLocal.ts +69 -0
- package/src/Cloudflare/Flagship/index.ts +1 -0
- package/src/Cloudflare/KV/NamespaceHttp.ts +25 -2
- package/src/Cloudflare/KV/NamespaceLocal.ts +42 -0
- package/src/Cloudflare/KV/ReadNamespaceHttp.ts +7 -6
- package/src/Cloudflare/KV/ReadNamespaceLocal.ts +35 -0
- package/src/Cloudflare/KV/ReadWriteNamespaceHttp.ts +11 -6
- package/src/Cloudflare/KV/ReadWriteNamespaceLocal.ts +42 -0
- package/src/Cloudflare/KV/WriteNamespaceHttp.ts +7 -6
- package/src/Cloudflare/KV/WriteNamespaceLocal.ts +35 -0
- package/src/Cloudflare/KV/index.ts +3 -0
- package/src/Cloudflare/Queues/QueueHttp.ts +24 -2
- package/src/Cloudflare/Queues/WriteQueueHttp.ts +16 -7
- package/src/Cloudflare/Queues/WriteQueueLocal.ts +64 -0
- package/src/Cloudflare/Queues/index.ts +1 -0
- package/src/Cloudflare/R2/BucketHttp.ts +20 -3
- package/src/Cloudflare/R2/BucketLocal.ts +47 -0
- package/src/Cloudflare/R2/ReadBucketHttp.ts +10 -5
- package/src/Cloudflare/R2/ReadBucketLocal.ts +33 -0
- package/src/Cloudflare/R2/ReadWriteBucketHttp.ts +11 -5
- package/src/Cloudflare/R2/ReadWriteBucketLocal.ts +36 -0
- package/src/Cloudflare/R2/WriteBucketHttp.ts +10 -5
- package/src/Cloudflare/R2/WriteBucketLocal.ts +33 -0
- package/src/Cloudflare/R2/index.ts +3 -0
- package/src/Cloudflare/Tunnel/ReadTunnel.ts +8 -9
- package/src/Cloudflare/Tunnel/ReadTunnelLocal.ts +33 -0
- package/src/Cloudflare/Tunnel/ReadWriteTunnel.ts +5 -5
- package/src/Cloudflare/Tunnel/ReadWriteTunnelLocal.ts +39 -0
- package/src/Cloudflare/Tunnel/TunnelBinding.ts +26 -2
- package/src/Cloudflare/Tunnel/TunnelLocalBinding.ts +38 -0
- package/src/Cloudflare/Tunnel/WarpConnector.ts +8 -5
- package/src/Cloudflare/Tunnel/WriteTunnel.ts +8 -9
- package/src/Cloudflare/Tunnel/WriteTunnelLocal.ts +33 -0
- package/src/Cloudflare/Tunnel/index.ts +3 -0
- package/src/Cloudflare/Vectorize/SearchIndexHttpClient.ts +183 -0
- package/src/Cloudflare/Vectorize/SearchIndexLocal.ts +70 -0
- package/src/Cloudflare/Vectorize/index.ts +1 -0
- package/src/Cloudflare/Workers/BrowserHttpClient.ts +201 -0
- package/src/Cloudflare/Workers/BrowserLocal.ts +65 -0
- package/src/Cloudflare/Workers/ConfigProvider.ts +15 -1
- package/src/Cloudflare/Workers/DurableObject.ts +227 -6
- package/src/Cloudflare/Workers/Vite.ts +93 -11
- package/src/Cloudflare/Workers/Worker.ts +19 -1
- package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +6 -5
- package/src/Cloudflare/Workers/WorkerBinding.ts +20 -1
- package/src/Cloudflare/Workers/WorkerBridge.ts +12 -2
- package/src/Cloudflare/Workers/WorkerProvider.ts +664 -117
- package/src/Cloudflare/Workers/WorkerRuntimeContext.ts +14 -45
- package/src/Cloudflare/Workers/index.ts +1 -0
- package/src/Diff.ts +33 -0
- package/src/GitHub/Secrets.ts +1 -1
- package/src/GitHub/Variables.ts +1 -1
- package/src/Local/RpcSerialization.ts +6 -2
- package/src/Local/RpcSpawner.ts +21 -8
- package/src/Neon/AuthProvider.ts +1 -1
- package/src/Plan.ts +17 -4
- package/src/Planetscale/Database.ts +2 -1
- package/src/Planetscale/MySQL/MySQLClusterSize.ts +120 -21
- package/src/Planetscale/MySQL/MySQLDatabase.ts +84 -44
- package/src/Platform.ts +12 -3
- package/src/Runtime.ts +92 -0
- package/src/RuntimeContext.ts +79 -0
- package/src/Server/Process.ts +11 -18
- package/src/Stack.ts +1 -1
- package/src/Test/Alchemy.ts +282 -0
- package/src/Util/cached-function.ts +5 -5
- package/src/Util/proxy-chain.ts +3 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import { AccountApiToken } from "../ApiToken/AccountApiToken.js";
|
|
3
3
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
|
|
4
|
+
import { authorizeWith } from "../HttpClientUtils.js";
|
|
4
5
|
import { Worker } from "../Workers/Worker.js";
|
|
5
6
|
/**
|
|
6
7
|
* Shared runtime body for a tunnel binding. Mints a scoped
|
|
@@ -30,9 +31,14 @@ export const makeTunnelClient = (sid, permissionGroups, makeClient) => Effect.ge
|
|
|
30
31
|
],
|
|
31
32
|
});
|
|
32
33
|
}
|
|
33
|
-
return makeClient(yield* bindTunnelToken(token));
|
|
34
|
+
return makeClient(makeTunnelAuth(yield* bindTunnelToken(token)));
|
|
34
35
|
});
|
|
35
36
|
});
|
|
37
|
+
/** Build a scoped-token {@link TunnelAuth} from a bound {@link Token}. */
|
|
38
|
+
export const makeTunnelAuth = (token) => ({
|
|
39
|
+
authorize: authorizeWith(token),
|
|
40
|
+
accountId: token.accountId,
|
|
41
|
+
});
|
|
36
42
|
/**
|
|
37
43
|
* Bind an {@link AccountApiToken}'s outputs into the Worker so they can be read
|
|
38
44
|
* at runtime: `token.value` is injected as a `secret_text` binding and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TunnelBinding.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/TunnelBinding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"TunnelBinding.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/TunnelBinding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,GAAW,EACX,gBAAsC,EACtC,UAAmC,EACnC,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC;IACrC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,qBAAqB,CAAC;IAEzC,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,SAAS,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;YACpC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;YACjC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrB,QAAQ,EAAE;oBACR;wBACE,MAAM,EAAE,OAAO;wBACf,gBAAgB;wBAChB,SAAS,EAAE;4BACT,CAAC,8BAA8B,SAAS,EAAE,CAAC,EAAE,GAAG;yBACjD;qBACF;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAgBL,0EAA0E;AAC1E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAAc,EAAE,CAAC,CAAC;IAC3D,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC;IAC/B,SAAS,EAAE,KAAK,CAAC,SAAS;CAC3B,CAAC,CAAC;AAcH;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAsB,EAAE,EAAE,CACxD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IACjC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;IACzC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAkB,CAAC;AAC9C,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import type * as HttpClient from "effect/unstable/http/HttpClient";
|
|
3
|
+
import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
4
|
+
import type { Credentials } from "../Credentials.ts";
|
|
5
|
+
import type { TunnelAuth } from "./TunnelBinding.ts";
|
|
6
|
+
/**
|
|
7
|
+
* Shared scaffolding for the `*Local` tunnel services.
|
|
8
|
+
*
|
|
9
|
+
* Instead of minting a scoped {@link AccountApiToken} (the `*Binding` path), it
|
|
10
|
+
* captures the ambient current-credentials context available during stack-eval
|
|
11
|
+
* and builds a {@link TunnelAuth} that provides those credentials directly to
|
|
12
|
+
* the cfd_tunnel HTTP ops. It then delegates to the same client builders the
|
|
13
|
+
* `*Binding` variant uses.
|
|
14
|
+
*
|
|
15
|
+
* NOT exported from `index.ts` — this is internal scaffolding shared by the
|
|
16
|
+
* three access-level Local layers.
|
|
17
|
+
*/
|
|
18
|
+
export declare const makeLocalTunnelClient: <Client>(makeClient: (auth: TunnelAuth) => Client) => Effect.Effect<() => Effect.Effect<Client, never, never>, never, CloudflareEnvironment | Credentials | HttpClient.HttpClient>;
|
|
19
|
+
//# sourceMappingURL=TunnelLocalBinding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TunnelLocalBinding.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/TunnelLocalBinding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,UAAU,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM,cAC9B,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,iIAkBtC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
|
|
3
|
+
/**
|
|
4
|
+
* Shared scaffolding for the `*Local` tunnel services.
|
|
5
|
+
*
|
|
6
|
+
* Instead of minting a scoped {@link AccountApiToken} (the `*Binding` path), it
|
|
7
|
+
* captures the ambient current-credentials context available during stack-eval
|
|
8
|
+
* and builds a {@link TunnelAuth} that provides those credentials directly to
|
|
9
|
+
* the cfd_tunnel HTTP ops. It then delegates to the same client builders the
|
|
10
|
+
* `*Binding` variant uses.
|
|
11
|
+
*
|
|
12
|
+
* NOT exported from `index.ts` — this is internal scaffolding shared by the
|
|
13
|
+
* three access-level Local layers.
|
|
14
|
+
*/
|
|
15
|
+
export const makeLocalTunnelClient = (makeClient) => Effect.gen(function* () {
|
|
16
|
+
// Account + credentials are ambient during stack-eval (the stack's
|
|
17
|
+
// providers layer). Capture the full context so cfd_tunnel HTTP ops can run
|
|
18
|
+
// with the current credentials — no `host.bind`, no minted token.
|
|
19
|
+
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
20
|
+
const context = yield* Effect.context();
|
|
21
|
+
return Effect.fn(function* () {
|
|
22
|
+
const auth = {
|
|
23
|
+
authorize: (eff) => eff.pipe(Effect.provideContext(context)),
|
|
24
|
+
accountId: Effect.succeed(accountId),
|
|
25
|
+
};
|
|
26
|
+
return makeClient(auth);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=TunnelLocalBinding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TunnelLocalBinding.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/TunnelLocalBinding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAIpE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,UAAwC,EACxC,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,mEAAmE;IACnE,4EAA4E;IAC5E,kEAAkE;IAClE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC;IAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAElC,CAAC;IAEJ,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;QACxB,MAAM,IAAI,GAAe;YACvB,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC5D,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;SACrC,CAAC;QACF,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -9,7 +9,7 @@ export interface WarpConnectorProps {
|
|
|
9
9
|
/**
|
|
10
10
|
* User-friendly name for the WARP Connector tunnel. Tunnel names are
|
|
11
11
|
* unique per account, which makes the name the resource's identity
|
|
12
|
-
* during adoption and state recovery.
|
|
12
|
+
* during adoption and state recovery. Changing it replaces the tunnel.
|
|
13
13
|
*
|
|
14
14
|
* @default ${app}-${stage}-${id}
|
|
15
15
|
*/
|
|
@@ -66,9 +66,9 @@ export type WarpConnector = Resource<TypeId, WarpConnectorProps, WarpConnectorAt
|
|
|
66
66
|
* ```
|
|
67
67
|
*
|
|
68
68
|
* @section Renaming
|
|
69
|
-
* @example
|
|
69
|
+
* @example Replace with a new name
|
|
70
70
|
* ```typescript
|
|
71
|
-
* // Renaming
|
|
71
|
+
* // Renaming creates a new tunnel with a new tunnelId.
|
|
72
72
|
* const connector = yield* Cloudflare.Tunnel.WarpConnector("SiteA", {
|
|
73
73
|
* name: "site-a-connector-v2",
|
|
74
74
|
* });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WarpConnector.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/WarpConnector.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"WarpConnector.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/WarpConnector.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAM5C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,QAAA,MAAM,MAAM,EAAG,iCAA0C,CAAC;AAC1D,KAAK,MAAM,GAAG,OAAO,MAAM,CAAC;AAE5B,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,yDAAyD;IACzD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;OAGG;IACH,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,CAClC,MAAM,EACN,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,aAAa,0DAAkC,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,eAAe,UAAW,OAAO,KAAG,KAAK,IAAI,aACK,CAAC;AAEhE,eAAO,MAAM,qBAAqB,iRAyH9B,CAAC"}
|
|
@@ -5,6 +5,7 @@ import * as Predicate from "effect/Predicate";
|
|
|
5
5
|
import * as Redacted from "effect/Redacted";
|
|
6
6
|
import * as Stream from "effect/Stream";
|
|
7
7
|
import { Unowned } from "../../AdoptPolicy.js";
|
|
8
|
+
import { isResolved } from "../../Diff.js";
|
|
8
9
|
import { createPhysicalName } from "../../PhysicalName.js";
|
|
9
10
|
import * as Provider from "../../Provider.js";
|
|
10
11
|
import { Resource } from "../../Resource.js";
|
|
@@ -40,9 +41,9 @@ const TypeId = "Cloudflare.Tunnel.WarpConnector";
|
|
|
40
41
|
* ```
|
|
41
42
|
*
|
|
42
43
|
* @section Renaming
|
|
43
|
-
* @example
|
|
44
|
+
* @example Replace with a new name
|
|
44
45
|
* ```typescript
|
|
45
|
-
* // Renaming
|
|
46
|
+
* // Renaming creates a new tunnel with a new tunnelId.
|
|
46
47
|
* const connector = yield* Cloudflare.Tunnel.WarpConnector("SiteA", {
|
|
47
48
|
* name: "site-a-connector-v2",
|
|
48
49
|
* });
|
|
@@ -57,12 +58,14 @@ export const WarpConnector = Resource(TypeId);
|
|
|
57
58
|
export const isWarpConnector = (value) => Predicate.hasProperty(value, "Type") && value.Type === TypeId;
|
|
58
59
|
export const WarpConnectorProvider = () => Provider.succeed(WarpConnector, {
|
|
59
60
|
stables: ["tunnelId", "accountId", "createdAt"],
|
|
60
|
-
diff: Effect.fn(function* ({ output }) {
|
|
61
|
+
diff: Effect.fn(function* ({ olds, news, output }) {
|
|
61
62
|
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
62
63
|
if ((output?.accountId ?? accountId) !== accountId) {
|
|
63
64
|
return { action: "replace" };
|
|
64
65
|
}
|
|
65
|
-
|
|
66
|
+
if (isResolved(news) && olds !== undefined && olds.name !== news.name) {
|
|
67
|
+
return { action: "replace" };
|
|
68
|
+
}
|
|
66
69
|
return undefined;
|
|
67
70
|
}),
|
|
68
71
|
read: Effect.fn(function* ({ id, output, olds }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WarpConnector.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/WarpConnector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,wCAAwC,CAAC;AACpE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,MAAM,MAAM,GAAG,iCAA0C,CAAC;AA2C1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAgB,MAAM,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAc,EAA0B,EAAE,CACxE,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;AAEhE,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE,CACxC,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE;IAC9B,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC;IAE/C,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"WarpConnector.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/WarpConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import * as Binding from "../../Binding.ts";
|
|
|
4
4
|
import type { Worker } from "../Workers/Worker.ts";
|
|
5
5
|
import type { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
6
6
|
import type { RuntimeContext } from "../../RuntimeContext.ts";
|
|
7
|
-
import { type
|
|
7
|
+
import { type TunnelAuth } from "./TunnelBinding.ts";
|
|
8
8
|
/**
|
|
9
9
|
* Binding that lets a Worker create, update, and delete Cloudflare Tunnels at
|
|
10
10
|
* runtime.
|
|
@@ -77,6 +77,6 @@ export interface WriteTunnelClient {
|
|
|
77
77
|
/** Replace the remotely-managed configuration (ingress rules) for a tunnel. */
|
|
78
78
|
putConfiguration(tunnelId: string, config: ConfigurationBody): Effect.Effect<PutTunnelCloudflaredConfigurationResponse, PutTunnelCloudflaredConfigurationError, RuntimeContext>;
|
|
79
79
|
}
|
|
80
|
-
/** Build the write client over
|
|
81
|
-
export declare const writeClient: (
|
|
80
|
+
/** Build the write client over an injectable {@link TunnelAuth}. */
|
|
81
|
+
export declare const writeClient: (auth: TunnelAuth) => WriteTunnelClient;
|
|
82
82
|
//# sourceMappingURL=WriteTunnel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WriteTunnel.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/WriteTunnel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,4BAA4B,EAC5B,+BAA+B,EAC/B,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,sCAAsC,EACtC,wCAAwC,EACxC,yCAAyC,EAC1C,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"WriteTunnel.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/WriteTunnel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,4BAA4B,EAC5B,+BAA+B,EAC/B,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,sCAAsC,EACtC,wCAAwC,EACxC,yCAAyC,EAC1C,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO,CAAC,OAAO,CAClD,WAAW,EACX,+BAA+B,EAC/B,MAAM,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAAC,CAC9E;CAAG;AAEJ,eAAO,MAAM,WAAW,aAEvB,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,8BAA8B,EAC9B,WAAW,CACZ,CAAC;AAEF,8EAA8E;AAC9E,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,6BAA6B,EAC7B,WAAW,GAAG,UAAU,CACzB,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,GAAG,WAAW,CACzC,wCAAwC,CAAC,QAAQ,CAAC,CACnD,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,2BAA2B;IAC3B,MAAM,CACJ,OAAO,EAAE,mBAAmB,GAC3B,MAAM,CAAC,MAAM,CACd,+BAA+B,EAC/B,4BAA4B,EAC5B,cAAc,CACf,CAAC;IACF,uDAAuD;IACvD,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,mBAAmB,GAC3B,MAAM,CAAC,MAAM,CACd,8BAA8B,EAC9B,2BAA2B,EAC3B,cAAc,CACf,CAAC;IACF,6BAA6B;IAC7B,MAAM,CACJ,QAAQ,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,CACd,+BAA+B,EAC/B,4BAA4B,EAC5B,cAAc,CACf,CAAC;IACF,+EAA+E;IAC/E,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,iBAAiB,GACxB,MAAM,CAAC,MAAM,CACd,yCAAyC,EACzC,sCAAsC,EACtC,cAAc,CACf,CAAC;CACH;AAED,oEAAoE;AACpE,eAAO,MAAM,WAAW,SAAU,UAAU,KAAG,iBAoC9C,CAAC"}
|
|
@@ -2,26 +2,25 @@ import * as zeroTrust from "@distilled.cloud/cloudflare/zero-trust";
|
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
3
|
import * as Binding from "../../Binding.js";
|
|
4
4
|
import {} from "./TunnelBinding.js";
|
|
5
|
-
import { authorizeWith } from "../HttpClientUtils.js";
|
|
6
5
|
export const WriteTunnel = Binding.Service("Cloudflare.Tunnel.WriteTunnel");
|
|
7
|
-
/** Build the write client over
|
|
8
|
-
export const writeClient = (
|
|
9
|
-
const authorize =
|
|
6
|
+
/** Build the write client over an injectable {@link TunnelAuth}. */
|
|
7
|
+
export const writeClient = (auth) => {
|
|
8
|
+
const { authorize } = auth;
|
|
10
9
|
return {
|
|
11
10
|
create: Effect.fn("Cloudflare.Tunnel.create")(function* (request) {
|
|
12
|
-
const accountId = yield*
|
|
11
|
+
const accountId = yield* auth.accountId;
|
|
13
12
|
return yield* authorize(zeroTrust.createTunnelCloudflared({ accountId, ...request }));
|
|
14
13
|
}),
|
|
15
14
|
update: Effect.fn("Cloudflare.Tunnel.update")(function* (tunnelId, request) {
|
|
16
|
-
const accountId = yield*
|
|
15
|
+
const accountId = yield* auth.accountId;
|
|
17
16
|
return yield* authorize(zeroTrust.patchTunnelCloudflared({ accountId, tunnelId, ...request }));
|
|
18
17
|
}),
|
|
19
18
|
delete: Effect.fn("Cloudflare.Tunnel.delete")(function* (tunnelId) {
|
|
20
|
-
const accountId = yield*
|
|
19
|
+
const accountId = yield* auth.accountId;
|
|
21
20
|
return yield* authorize(zeroTrust.deleteTunnelCloudflared({ accountId, tunnelId }));
|
|
22
21
|
}),
|
|
23
22
|
putConfiguration: Effect.fn("Cloudflare.Tunnel.putConfiguration")(function* (tunnelId, config) {
|
|
24
|
-
const accountId = yield*
|
|
23
|
+
const accountId = yield* auth.accountId;
|
|
25
24
|
return yield* authorize(zeroTrust.putTunnelCloudflaredConfiguration({
|
|
26
25
|
accountId,
|
|
27
26
|
tunnelId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WriteTunnel.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/WriteTunnel.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,SAAS,MAAM,wCAAwC,CAAC;AACpE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAI5C,OAAO,
|
|
1
|
+
{"version":3,"file":"WriteTunnel.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/WriteTunnel.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,SAAS,MAAM,wCAAwC,CAAC;AACpE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAI5C,OAAO,EAAmB,MAAM,oBAAoB,CAAC;AAyDrD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CACxC,+BAA+B,CAChC,CAAC;AA4DF,oEAAoE;AACpE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAgB,EAAqB,EAAE;IACjE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC3B,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO;YAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,SAAS,CAAC,uBAAuB,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,CAC7D,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAC3C,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO;YAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,SAAS,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC,CACtE,CAAC;QACJ,CAAC,CACF;QACD,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ;YAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,SAAS,CAAC,uBAAuB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAC3D,CAAC;QACJ,CAAC,CAAC;QACF,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC,oCAAoC,CAAC,CAC/D,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM;YACzB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,SAAS,CAAC,iCAAiC,CAAC;gBAC1C,SAAS;gBACT,QAAQ;gBACR,MAAM;aACP,CAAC,CACH,CAAC;QACJ,CAAC,CACF;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as Layer from "effect/Layer";
|
|
2
|
+
import { WriteTunnel } from "./WriteTunnel.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Local implementation of the {@link WriteTunnel} binding — creates, updates,
|
|
5
|
+
* and deletes Cloudflare Tunnels over the cfd_tunnel HTTP API using the
|
|
6
|
+
* **current credentials** instead of a native Worker binding
|
|
7
|
+
* (`WriteTunnelBinding`) or a scoped API token. No `host.bind`, no minted
|
|
8
|
+
* token, no Worker host.
|
|
9
|
+
*
|
|
10
|
+
* Provide it on an {@link Action} (or any deploy-time Effect) so you can mutate
|
|
11
|
+
* tunnels with the same `create`/`update`/`delete`/`putConfiguration` client
|
|
12
|
+
* you'd use inside a Worker.
|
|
13
|
+
*
|
|
14
|
+
* @example Provision a tunnel from an Action
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const Provision = Alchemy.Action(
|
|
17
|
+
* "Provision",
|
|
18
|
+
* Effect.gen(function* () {
|
|
19
|
+
* const tunnels = yield* Cloudflare.Tunnel.WriteTunnel();
|
|
20
|
+
* return Effect.fn(function* () {
|
|
21
|
+
* const tunnel = yield* tunnels.create({ name: "on-demand-tunnel" });
|
|
22
|
+
* return tunnel.result?.id;
|
|
23
|
+
* });
|
|
24
|
+
* }).pipe(Effect.provide(Cloudflare.Tunnel.WriteTunnelLocal)),
|
|
25
|
+
* );
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare const WriteTunnelLocal: Layer.Layer<WriteTunnel, never, import("../CloudflareEnvironment.ts").CloudflareEnvironment | import("@distilled.cloud/cloudflare").Credentials | import("effect/unstable/http/HttpClient").HttpClient>;
|
|
29
|
+
//# sourceMappingURL=WriteTunnelLocal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteTunnelLocal.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/WriteTunnelLocal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAe,MAAM,kBAAkB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB,yMAG5B,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as Layer from "effect/Layer";
|
|
2
|
+
import { makeLocalTunnelClient } from "./TunnelLocalBinding.js";
|
|
3
|
+
import { WriteTunnel, writeClient } from "./WriteTunnel.js";
|
|
4
|
+
/**
|
|
5
|
+
* Local implementation of the {@link WriteTunnel} binding — creates, updates,
|
|
6
|
+
* and deletes Cloudflare Tunnels over the cfd_tunnel HTTP API using the
|
|
7
|
+
* **current credentials** instead of a native Worker binding
|
|
8
|
+
* (`WriteTunnelBinding`) or a scoped API token. No `host.bind`, no minted
|
|
9
|
+
* token, no Worker host.
|
|
10
|
+
*
|
|
11
|
+
* Provide it on an {@link Action} (or any deploy-time Effect) so you can mutate
|
|
12
|
+
* tunnels with the same `create`/`update`/`delete`/`putConfiguration` client
|
|
13
|
+
* you'd use inside a Worker.
|
|
14
|
+
*
|
|
15
|
+
* @example Provision a tunnel from an Action
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const Provision = Alchemy.Action(
|
|
18
|
+
* "Provision",
|
|
19
|
+
* Effect.gen(function* () {
|
|
20
|
+
* const tunnels = yield* Cloudflare.Tunnel.WriteTunnel();
|
|
21
|
+
* return Effect.fn(function* () {
|
|
22
|
+
* const tunnel = yield* tunnels.create({ name: "on-demand-tunnel" });
|
|
23
|
+
* return tunnel.result?.id;
|
|
24
|
+
* });
|
|
25
|
+
* }).pipe(Effect.provide(Cloudflare.Tunnel.WriteTunnelLocal)),
|
|
26
|
+
* );
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export const WriteTunnelLocal = Layer.effect(WriteTunnel, makeLocalTunnelClient(writeClient));
|
|
30
|
+
//# sourceMappingURL=WriteTunnelLocal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteTunnelLocal.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/WriteTunnelLocal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAC1C,WAAW,EACX,qBAAqB,CAAC,WAAW,CAAC,CACnC,CAAC"}
|
|
@@ -5,10 +5,13 @@ export * from "./Tunnel.ts";
|
|
|
5
5
|
export * from "./TunnelBinding.ts";
|
|
6
6
|
export * from "./ReadTunnel.ts";
|
|
7
7
|
export * from "./ReadTunnelBinding.ts";
|
|
8
|
+
export * from "./ReadTunnelLocal.ts";
|
|
8
9
|
export * from "./ReadWriteTunnel.ts";
|
|
9
10
|
export * from "./ReadWriteTunnelBinding.ts";
|
|
11
|
+
export * from "./ReadWriteTunnelLocal.ts";
|
|
10
12
|
export * from "./WriteTunnel.ts";
|
|
11
13
|
export * from "./WriteTunnelBinding.ts";
|
|
14
|
+
export * from "./WriteTunnelLocal.ts";
|
|
12
15
|
export * from "./VirtualNetwork.ts";
|
|
13
16
|
export * from "./WarpConnector.ts";
|
|
14
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
|
@@ -5,10 +5,13 @@ export * from "./Tunnel.js";
|
|
|
5
5
|
export * from "./TunnelBinding.js";
|
|
6
6
|
export * from "./ReadTunnel.js";
|
|
7
7
|
export * from "./ReadTunnelBinding.js";
|
|
8
|
+
export * from "./ReadTunnelLocal.js";
|
|
8
9
|
export * from "./ReadWriteTunnel.js";
|
|
9
10
|
export * from "./ReadWriteTunnelBinding.js";
|
|
11
|
+
export * from "./ReadWriteTunnelLocal.js";
|
|
10
12
|
export * from "./WriteTunnel.js";
|
|
11
13
|
export * from "./WriteTunnelBinding.js";
|
|
14
|
+
export * from "./WriteTunnelLocal.js";
|
|
12
15
|
export * from "./VirtualNetwork.js";
|
|
13
16
|
export * from "./WarpConnector.js";
|
|
14
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import type * as HttpClient from "effect/unstable/http/HttpClient";
|
|
3
|
+
import type { Credentials } from "../Credentials.ts";
|
|
4
|
+
import type { SearchIndexClient } from "./SearchIndex.ts";
|
|
5
|
+
/**
|
|
6
|
+
* Injectable auth shared by the Local (current-credentials) impl and a future
|
|
7
|
+
* Http (scoped-token) impl. `authorize` discharges the
|
|
8
|
+
* `Credentials | HttpClient` requirement of a distilled op; `accountId` is the
|
|
9
|
+
* Cloudflare account the ops run against.
|
|
10
|
+
*/
|
|
11
|
+
export interface SearchIndexAuth {
|
|
12
|
+
authorize: <A, E>(eff: Effect.Effect<A, E, Credentials | HttpClient.HttpClient>) => Effect.Effect<A, E>;
|
|
13
|
+
accountId: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Build a {@link SearchIndexClient} over the Vectorize HTTP API.
|
|
17
|
+
*
|
|
18
|
+
* `indexName` is an Effect so the resolution stays deferred to each call —
|
|
19
|
+
* inside an Action it resolves through the apply-time RuntimeContext. The
|
|
20
|
+
* credentials are provided ONLY around the distilled op (via `auth.authorize`),
|
|
21
|
+
* never around the name accessor, matching the D1 / KV Local variants. `orDie`
|
|
22
|
+
* mirrors the native binding, whose client methods surface transport failures
|
|
23
|
+
* as defects.
|
|
24
|
+
*
|
|
25
|
+
* Two methods have no Cloudflare HTTP equivalent and `Effect.die`:
|
|
26
|
+
* - `raw` — there is no HTTP-backed `runtime.Vectorize` object to hand back.
|
|
27
|
+
* - `queryById` — the HTTP query endpoint only accepts a raw vector, not an id.
|
|
28
|
+
*/
|
|
29
|
+
export declare const makeHttpSearchIndexClient: (auth: SearchIndexAuth, indexName: Effect.Effect<string>) => SearchIndexClient;
|
|
30
|
+
//# sourceMappingURL=SearchIndexHttpClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchIndexHttpClient.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Vectorize/SearchIndexHttpClient.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,UAAU,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAQ1D;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EACd,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,KAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,yBAAyB,SAC9B,eAAe,aACV,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAC/B,iBA8EF,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import * as vectorize from "@distilled.cloud/cloudflare/vectorize";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
/**
|
|
4
|
+
* Build a {@link SearchIndexClient} over the Vectorize HTTP API.
|
|
5
|
+
*
|
|
6
|
+
* `indexName` is an Effect so the resolution stays deferred to each call —
|
|
7
|
+
* inside an Action it resolves through the apply-time RuntimeContext. The
|
|
8
|
+
* credentials are provided ONLY around the distilled op (via `auth.authorize`),
|
|
9
|
+
* never around the name accessor, matching the D1 / KV Local variants. `orDie`
|
|
10
|
+
* mirrors the native binding, whose client methods surface transport failures
|
|
11
|
+
* as defects.
|
|
12
|
+
*
|
|
13
|
+
* Two methods have no Cloudflare HTTP equivalent and `Effect.die`:
|
|
14
|
+
* - `raw` — there is no HTTP-backed `runtime.Vectorize` object to hand back.
|
|
15
|
+
* - `queryById` — the HTTP query endpoint only accepts a raw vector, not an id.
|
|
16
|
+
*/
|
|
17
|
+
export const makeHttpSearchIndexClient = (auth, indexName) => {
|
|
18
|
+
const { accountId } = auth;
|
|
19
|
+
const local = (fn) => Effect.flatMap(indexName, (name) => auth.authorize(fn(name))).pipe(Effect.orDie);
|
|
20
|
+
return {
|
|
21
|
+
raw: Effect.die(new Error("SearchIndex over HTTP: `raw` is not available — use a native Worker binding (SearchIndexBinding) for direct access.")),
|
|
22
|
+
describe: () => local((name) => vectorize
|
|
23
|
+
.infoIndex({ accountId, indexName: name })
|
|
24
|
+
.pipe(Effect.map(toIndexInfo))),
|
|
25
|
+
query: (vector, options) => local((name) => vectorize
|
|
26
|
+
.queryIndex({
|
|
27
|
+
accountId,
|
|
28
|
+
indexName: name,
|
|
29
|
+
vector: Array.from(vector),
|
|
30
|
+
topK: options?.topK,
|
|
31
|
+
returnValues: options?.returnValues,
|
|
32
|
+
returnMetadata: toReturnMetadata(options?.returnMetadata),
|
|
33
|
+
filter: options?.filter,
|
|
34
|
+
})
|
|
35
|
+
.pipe(Effect.map(toMatches))),
|
|
36
|
+
queryById: () => Effect.die(new Error("SearchIndex over HTTP: `queryById` is not supported — the HTTP query endpoint only accepts a raw query vector. Fetch the vector with `getByIds` and pass its values to `query`.")),
|
|
37
|
+
insert: (vectors) => local((name) => vectorize
|
|
38
|
+
.insertIndex({
|
|
39
|
+
accountId,
|
|
40
|
+
indexName: name,
|
|
41
|
+
body: toNdjsonBlob(vectors),
|
|
42
|
+
})
|
|
43
|
+
.pipe(Effect.map(toMutation))),
|
|
44
|
+
upsert: (vectors) => local((name) => vectorize
|
|
45
|
+
.upsertIndex({
|
|
46
|
+
accountId,
|
|
47
|
+
indexName: name,
|
|
48
|
+
body: toNdjsonBlob(vectors),
|
|
49
|
+
})
|
|
50
|
+
.pipe(Effect.map(toMutation))),
|
|
51
|
+
deleteByIds: (ids) => local((name) => vectorize
|
|
52
|
+
.deleteByIdsIndex({ accountId, indexName: name, ids })
|
|
53
|
+
.pipe(Effect.map(toMutation))),
|
|
54
|
+
getByIds: (ids) => local((name) => vectorize
|
|
55
|
+
.getByIdsIndex({ accountId, indexName: name, ids })
|
|
56
|
+
.pipe(Effect.map((result) => (result ?? [])))),
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
// ── shape adapters (runtime types <-> distilled HTTP types) ─────────────────
|
|
60
|
+
/**
|
|
61
|
+
* Serialize vectors to an ndjson Blob — the raw `application/x-ndjson` request
|
|
62
|
+
* body of the Vectorize v2 insert/upsert endpoints.
|
|
63
|
+
*/
|
|
64
|
+
const toNdjsonBlob = (vectors) => new Blob([toNdjson(vectors)]);
|
|
65
|
+
/** Serialize vectors to ndjson — one JSON vector per line. */
|
|
66
|
+
const toNdjson = (vectors) => vectors
|
|
67
|
+
.map((v) => JSON.stringify({
|
|
68
|
+
id: v.id,
|
|
69
|
+
// A `VectorFloatArray` (Float32Array) would `JSON.stringify` to an
|
|
70
|
+
// object, not an array — normalize to a plain number array.
|
|
71
|
+
values: Array.from(v.values),
|
|
72
|
+
...(v.namespace !== undefined ? { namespace: v.namespace } : {}),
|
|
73
|
+
...(v.metadata !== undefined ? { metadata: v.metadata } : {}),
|
|
74
|
+
}))
|
|
75
|
+
.join("\n");
|
|
76
|
+
const toReturnMetadata = (value) => value === undefined
|
|
77
|
+
? undefined
|
|
78
|
+
: typeof value === "boolean"
|
|
79
|
+
? value
|
|
80
|
+
? "all"
|
|
81
|
+
: "none"
|
|
82
|
+
: value;
|
|
83
|
+
const toMutation = (r) => ({ mutationId: r.mutationId ?? "" });
|
|
84
|
+
const toIndexInfo = (r) => ({
|
|
85
|
+
vectorCount: r.vectorCount ?? 0,
|
|
86
|
+
dimensions: r.dimensions ?? 0,
|
|
87
|
+
processedUpToDatetime: r.processedUpToDatetime ?? undefined,
|
|
88
|
+
processedUpToMutation: r.processedUpToMutation ?? undefined,
|
|
89
|
+
});
|
|
90
|
+
const toMatches = (r) => ({
|
|
91
|
+
count: r.count ?? r.matches?.length ?? 0,
|
|
92
|
+
matches: (r.matches ?? []).map((m) => ({
|
|
93
|
+
id: m.id ?? "",
|
|
94
|
+
score: m.score ?? 0,
|
|
95
|
+
...(m.values != null ? { values: m.values } : {}),
|
|
96
|
+
...(m.namespace != null ? { namespace: m.namespace } : {}),
|
|
97
|
+
...(m.metadata != null ? { metadata: m.metadata } : {}),
|
|
98
|
+
})),
|
|
99
|
+
});
|
|
100
|
+
//# sourceMappingURL=SearchIndexHttpClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchIndexHttpClient.js","sourceRoot":"","sources":["../../../src/Cloudflare/Vectorize/SearchIndexHttpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Credentials } from "@distilled.cloud/cloudflare/Credentials";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import type * as HttpClient from "effect/unstable/http/HttpClient";
|
|
4
|
+
import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
5
|
+
import { SearchIndex } from "./SearchIndex.ts";
|
|
6
|
+
/**
|
|
7
|
+
* Local implementation of the {@link SearchIndex} binding — talks to a
|
|
8
|
+
* Vectorize index over the Cloudflare HTTP API using the **current
|
|
9
|
+
* credentials** instead of a native Worker binding (`SearchIndexBinding`).
|
|
10
|
+
*
|
|
11
|
+
* Provide it on an {@link Action} (or any deploy-time Effect) so you can
|
|
12
|
+
* insert, upsert, query, and fetch vectors with the same client you'd use
|
|
13
|
+
* inside a Worker — no Worker host, no `host.bind`, no minted token:
|
|
14
|
+
*
|
|
15
|
+
* @example Seeding an index from an Action
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const Seed = Alchemy.Action(
|
|
18
|
+
* "Seed",
|
|
19
|
+
* Effect.gen(function* () {
|
|
20
|
+
* const vec = yield* Cloudflare.Vectorize.SearchIndex(index);
|
|
21
|
+
* return Effect.fn(function* () {
|
|
22
|
+
* yield* vec.upsert([
|
|
23
|
+
* { id: "1", values: [0.1, 0.2, 0.3, 0.4] },
|
|
24
|
+
* { id: "2", values: [0.9, 0.8, 0.7, 0.6] },
|
|
25
|
+
* ]);
|
|
26
|
+
* const matches = yield* vec.query([0.1, 0.2, 0.3, 0.4], { topK: 1 });
|
|
27
|
+
* return matches;
|
|
28
|
+
* });
|
|
29
|
+
* }).pipe(Effect.provide(Cloudflare.Vectorize.SearchIndexLocal)),
|
|
30
|
+
* );
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* The index name is resolved at apply time through the ambient
|
|
34
|
+
* {@link RuntimeContext} (in an Action, that's the resolve context the engine
|
|
35
|
+
* provides around the body), so `SearchIndex(index)` works even though the
|
|
36
|
+
* index is created in the same deploy.
|
|
37
|
+
*
|
|
38
|
+
* `raw` and `queryById` have no Cloudflare HTTP equivalent and `Effect.die` —
|
|
39
|
+
* see {@link makeHttpSearchIndexClient}.
|
|
40
|
+
*/
|
|
41
|
+
export declare const SearchIndexLocal: Layer.Layer<SearchIndex, never, CloudflareEnvironment | Credentials | HttpClient.HttpClient>;
|
|
42
|
+
//# sourceMappingURL=SearchIndexLocal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchIndexLocal.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Vectorize/SearchIndexLocal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAE3E,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,KAAK,UAAU,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAO/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,gBAAgB,8FAsB5B,CAAC"}
|