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
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import { makeLocalDnsBinding } from "./DnsLocal.js";
|
|
4
|
+
import { ReadDns } from "./ReadDns.js";
|
|
5
|
+
import { dnsReadClient } from "./ReadDnsHttp.js";
|
|
6
|
+
/**
|
|
7
|
+
* Local implementation of the {@link ReadDns} binding — reads Cloudflare DNS
|
|
8
|
+
* records over the HTTP API using the **current credentials** instead of a
|
|
9
|
+
* scoped API token ({@link ReadDnsHttp}). DNS is a zone-management capability
|
|
10
|
+
* with no native Worker binding.
|
|
11
|
+
*
|
|
12
|
+
* Provide it on an {@link Action} (or any deploy-time Effect) so you can read a
|
|
13
|
+
* zone's DNS records with the same `getDnsRecord`/`listDnsRecords` client you'd
|
|
14
|
+
* use inside a Worker:
|
|
15
|
+
*
|
|
16
|
+
* @example Reading records from an Action
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const Check = Alchemy.Action(
|
|
19
|
+
* "Check",
|
|
20
|
+
* Effect.gen(function* () {
|
|
21
|
+
* const dns = yield* Cloudflare.DNS.ReadDns(zone);
|
|
22
|
+
* return Effect.fn(function* () {
|
|
23
|
+
* return yield* dns.listDnsRecords({ type: "TXT" });
|
|
24
|
+
* });
|
|
25
|
+
* }).pipe(Effect.provide(Cloudflare.DNS.ReadDnsLocal)),
|
|
26
|
+
* );
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* The zone id is resolved at apply time through the ambient
|
|
30
|
+
* {@link RuntimeContext} (in an Action, that's the resolve context the engine
|
|
31
|
+
* provides around the body), so `ReadDns(zone)` works even though the zone may
|
|
32
|
+
* be created/adopted in the same deploy.
|
|
33
|
+
*/
|
|
34
|
+
export const ReadDnsLocal = Layer.effect(ReadDns, Effect.suspend(() => makeLocalDnsBinding({ makeClient: dnsReadClient })));
|
|
35
|
+
//# sourceMappingURL=ReadDnsLocal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadDnsLocal.js","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/ReadDnsLocal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CACtC,OAAO,EACP,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC,CACzE,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as Layer from "effect/Layer";
|
|
3
|
-
import { type
|
|
3
|
+
import { type DnsAuth } from "./DnsHttp.ts";
|
|
4
4
|
import { ReadWriteDns, type ReadWriteDnsClient } from "./ReadWriteDns.ts";
|
|
5
5
|
/** Runtime layer for {@link ReadWriteDns}. */
|
|
6
6
|
export declare const ReadWriteDnsHttp: Layer.Layer<ReadWriteDns, never, import("../../Self.ts").Self<{
|
|
7
7
|
Type: string;
|
|
8
8
|
LogicalId: string;
|
|
9
9
|
}>>;
|
|
10
|
-
/** Build the combined read + write client over
|
|
11
|
-
export declare const dnsReadWriteClient: (
|
|
10
|
+
/** Build the combined read + write client over an injectable auth and zone id. */
|
|
11
|
+
export declare const dnsReadWriteClient: (auth: DnsAuth, zoneId: Effect.Effect<string>) => ReadWriteDnsClient;
|
|
12
12
|
//# sourceMappingURL=ReadWriteDnsHttp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadWriteDnsHttp.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/ReadWriteDnsHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"ReadWriteDnsHttp.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/ReadWriteDnsHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,KAAK,OAAO,EAAsB,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG1E,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB;;;GAQ5B,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,SACvB,OAAO,UACL,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAC5B,kBAGD,CAAC"}
|
|
@@ -9,9 +9,9 @@ export const ReadWriteDnsHttp = Layer.effect(ReadWriteDns, Effect.suspend(() =>
|
|
|
9
9
|
permissionGroups: ["DNS Read", "DNS Write"],
|
|
10
10
|
makeClient: dnsReadWriteClient,
|
|
11
11
|
})));
|
|
12
|
-
/** Build the combined read + write client over
|
|
13
|
-
export const dnsReadWriteClient = (
|
|
14
|
-
...dnsReadClient(
|
|
15
|
-
...dnsWriteClient(
|
|
12
|
+
/** Build the combined read + write client over an injectable auth and zone id. */
|
|
13
|
+
export const dnsReadWriteClient = (auth, zoneId) => ({
|
|
14
|
+
...dnsReadClient(auth, zoneId),
|
|
15
|
+
...dnsWriteClient(auth, zoneId),
|
|
16
16
|
});
|
|
17
17
|
//# sourceMappingURL=ReadWriteDnsHttp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadWriteDnsHttp.js","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/ReadWriteDnsHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"ReadWriteDnsHttp.js","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/ReadWriteDnsHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAgB,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAA2B,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAC1C,YAAY,EACZ,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,kBAAkB,CAAC;IACjB,gBAAgB,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;IAC3C,UAAU,EAAE,kBAAkB;CAC/B,CAAC,CACH,CACF,CAAC;AAEF,kFAAkF;AAClF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,IAAa,EACb,MAA6B,EACT,EAAE,CAAC,CAAC;IACxB,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;IAC9B,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;CAChC,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as Layer from "effect/Layer";
|
|
2
|
+
import { ReadWriteDns } from "./ReadWriteDns.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Local implementation of the {@link ReadWriteDns} binding — performs the full
|
|
5
|
+
* Cloudflare DNS record CRUD surface over the HTTP API using the **current
|
|
6
|
+
* credentials** instead of a scoped API token ({@link ReadWriteDnsHttp}). DNS
|
|
7
|
+
* is a zone-management capability with no native Worker binding.
|
|
8
|
+
*
|
|
9
|
+
* Provide it on an {@link Action} (or any deploy-time Effect) so you can manage
|
|
10
|
+
* a zone's DNS records with the same read + write client you'd use inside a
|
|
11
|
+
* Worker:
|
|
12
|
+
*
|
|
13
|
+
* @example Seeding and reading records from an Action
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const Seed = Alchemy.Action(
|
|
16
|
+
* "Seed",
|
|
17
|
+
* Effect.gen(function* () {
|
|
18
|
+
* const dns = yield* Cloudflare.DNS.ReadWriteDns(zone);
|
|
19
|
+
* return Effect.fn(function* () {
|
|
20
|
+
* const created = yield* dns.createDnsRecord({
|
|
21
|
+
* type: "TXT",
|
|
22
|
+
* name: "_seed.example.com",
|
|
23
|
+
* content: '"hello"',
|
|
24
|
+
* ttl: 60,
|
|
25
|
+
* });
|
|
26
|
+
* const record = yield* dns.getDnsRecord(created.id);
|
|
27
|
+
* yield* dns.deleteDnsRecord(created.id);
|
|
28
|
+
* return record;
|
|
29
|
+
* });
|
|
30
|
+
* }).pipe(Effect.provide(Cloudflare.DNS.ReadWriteDnsLocal)),
|
|
31
|
+
* );
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* The zone id is resolved at apply time through the ambient
|
|
35
|
+
* {@link RuntimeContext} (in an Action, that's the resolve context the engine
|
|
36
|
+
* provides around the body), so `ReadWriteDns(zone)` works even though the zone
|
|
37
|
+
* may be created/adopted in the same deploy.
|
|
38
|
+
*/
|
|
39
|
+
export declare const ReadWriteDnsLocal: Layer.Layer<ReadWriteDns, never, import("@distilled.cloud/cloudflare").Credentials | import("effect/unstable/http/HttpClient").HttpClient>;
|
|
40
|
+
//# sourceMappingURL=ReadWriteDnsLocal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadWriteDnsLocal.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/ReadWriteDnsLocal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,iBAAiB,4IAG7B,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import { makeLocalDnsBinding } from "./DnsLocal.js";
|
|
4
|
+
import { ReadWriteDns } from "./ReadWriteDns.js";
|
|
5
|
+
import { dnsReadWriteClient } from "./ReadWriteDnsHttp.js";
|
|
6
|
+
/**
|
|
7
|
+
* Local implementation of the {@link ReadWriteDns} binding — performs the full
|
|
8
|
+
* Cloudflare DNS record CRUD surface over the HTTP API using the **current
|
|
9
|
+
* credentials** instead of a scoped API token ({@link ReadWriteDnsHttp}). DNS
|
|
10
|
+
* is a zone-management capability with no native Worker binding.
|
|
11
|
+
*
|
|
12
|
+
* Provide it on an {@link Action} (or any deploy-time Effect) so you can manage
|
|
13
|
+
* a zone's DNS records with the same read + write client you'd use inside a
|
|
14
|
+
* Worker:
|
|
15
|
+
*
|
|
16
|
+
* @example Seeding and reading records from an Action
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const Seed = Alchemy.Action(
|
|
19
|
+
* "Seed",
|
|
20
|
+
* Effect.gen(function* () {
|
|
21
|
+
* const dns = yield* Cloudflare.DNS.ReadWriteDns(zone);
|
|
22
|
+
* return Effect.fn(function* () {
|
|
23
|
+
* const created = yield* dns.createDnsRecord({
|
|
24
|
+
* type: "TXT",
|
|
25
|
+
* name: "_seed.example.com",
|
|
26
|
+
* content: '"hello"',
|
|
27
|
+
* ttl: 60,
|
|
28
|
+
* });
|
|
29
|
+
* const record = yield* dns.getDnsRecord(created.id);
|
|
30
|
+
* yield* dns.deleteDnsRecord(created.id);
|
|
31
|
+
* return record;
|
|
32
|
+
* });
|
|
33
|
+
* }).pipe(Effect.provide(Cloudflare.DNS.ReadWriteDnsLocal)),
|
|
34
|
+
* );
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* The zone id is resolved at apply time through the ambient
|
|
38
|
+
* {@link RuntimeContext} (in an Action, that's the resolve context the engine
|
|
39
|
+
* provides around the body), so `ReadWriteDns(zone)` works even though the zone
|
|
40
|
+
* may be created/adopted in the same deploy.
|
|
41
|
+
*/
|
|
42
|
+
export const ReadWriteDnsLocal = Layer.effect(ReadWriteDns, Effect.suspend(() => makeLocalDnsBinding({ makeClient: dnsReadWriteClient })));
|
|
43
|
+
//# sourceMappingURL=ReadWriteDnsLocal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadWriteDnsLocal.js","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/ReadWriteDnsLocal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAC3C,YAAY,EACZ,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAC9E,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as Layer from "effect/Layer";
|
|
3
|
-
import { type
|
|
3
|
+
import { type DnsAuth } from "./DnsHttp.ts";
|
|
4
4
|
import { WriteDns, type WriteDnsClient } from "./WriteDns.ts";
|
|
5
5
|
/** Runtime layer for {@link WriteDns}. */
|
|
6
6
|
export declare const WriteDnsHttp: Layer.Layer<WriteDns, never, import("../../Self.ts").Self<{
|
|
7
7
|
Type: string;
|
|
8
8
|
LogicalId: string;
|
|
9
9
|
}>>;
|
|
10
|
-
/** Build the write client over
|
|
11
|
-
export declare const dnsWriteClient: (
|
|
10
|
+
/** Build the write client over an injectable auth and zone id. */
|
|
11
|
+
export declare const dnsWriteClient: (auth: DnsAuth, zoneId: Effect.Effect<string>) => WriteDnsClient;
|
|
12
12
|
//# sourceMappingURL=WriteDnsHttp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WriteDnsHttp.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/WriteDnsHttp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"WriteDnsHttp.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/WriteDnsHttp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,KAAK,OAAO,EAAsB,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAE9D,0CAA0C;AAC1C,eAAO,MAAM,YAAY;;;GAQxB,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,cAAc,SACnB,OAAO,UACL,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAC5B,cAuCF,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as dns from "@distilled.cloud/cloudflare/dns";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
3
|
import * as Layer from "effect/Layer";
|
|
4
|
-
import { authorizeWith } from "../HttpClientUtils.js";
|
|
5
4
|
import { makeHttpDnsBinding } from "./DnsHttp.js";
|
|
6
5
|
import { WriteDns } from "./WriteDns.js";
|
|
7
6
|
/** Runtime layer for {@link WriteDns}. */
|
|
@@ -9,9 +8,9 @@ export const WriteDnsHttp = Layer.effect(WriteDns, Effect.suspend(() => makeHttp
|
|
|
9
8
|
permissionGroups: ["DNS Write"],
|
|
10
9
|
makeClient: dnsWriteClient,
|
|
11
10
|
})));
|
|
12
|
-
/** Build the write client over
|
|
13
|
-
export const dnsWriteClient = (
|
|
14
|
-
const authorize =
|
|
11
|
+
/** Build the write client over an injectable auth and zone id. */
|
|
12
|
+
export const dnsWriteClient = (auth, zoneId) => {
|
|
13
|
+
const authorize = auth.authorize;
|
|
15
14
|
return {
|
|
16
15
|
createDnsRecord: Effect.fn("Cloudflare.DNS.createDnsRecord")(function* (request) {
|
|
17
16
|
return yield* authorize(dns.createRecord({ zoneId: yield* zoneId, ...request }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WriteDnsHttp.js","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/WriteDnsHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iCAAiC,CAAC;AACvD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"WriteDnsHttp.js","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/WriteDnsHttp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iCAAiC,CAAC;AACvD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAgB,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAuB,MAAM,eAAe,CAAC;AAE9D,0CAA0C;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CACtC,QAAQ,EACR,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,kBAAkB,CAAC;IACjB,gBAAgB,EAAE,CAAC,WAAW,CAAC;IAC/B,UAAU,EAAE,cAAc;CAC3B,CAAC,CACH,CACF,CAAC;AAEF,kEAAkE;AAClE,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,IAAa,EACb,MAA6B,EACb,EAAE;IAClB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,OAAO;QACL,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAC1D,QAAQ,CAAC,EAAE,OAAO;YAChB,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CACxD,CAAC;QACJ,CAAC,CACF;QACD,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAC1D,QAAQ,CAAC,EAAE,WAAW,EAAE,OAAO;YAC7B,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC,CACrE,CAAC;QACJ,CAAC,CACF;QACD,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC,+BAA+B,CAAC,CACxD,QAAQ,CAAC,EAAE,WAAW,EAAE,OAAO;YAC7B,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC,CACpE,CAAC;QACJ,CAAC,CACF;QACD,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAC1D,QAAQ,CAAC,EAAE,WAAW;YACpB,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CACzD,CAAC;QACJ,CAAC,CACF;QACD,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAC1D,QAAQ,CAAC,EAAE,OAAO;YAChB,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CACvD,CAAC;QACJ,CAAC,CACF;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as Layer from "effect/Layer";
|
|
2
|
+
import { WriteDns } from "./WriteDns.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Local implementation of the {@link WriteDns} binding — creates, updates, and
|
|
5
|
+
* deletes Cloudflare DNS records over the HTTP API using the **current
|
|
6
|
+
* credentials** instead of a scoped API token ({@link WriteDnsHttp}). DNS is a
|
|
7
|
+
* zone-management capability with no native Worker binding.
|
|
8
|
+
*
|
|
9
|
+
* Provide it on an {@link Action} (or any deploy-time Effect) so you can mutate
|
|
10
|
+
* a zone's DNS records with the same
|
|
11
|
+
* `createDnsRecord`/`updateDnsRecord`/`deleteDnsRecord`/`batchDnsRecords`
|
|
12
|
+
* client you'd use inside a Worker:
|
|
13
|
+
*
|
|
14
|
+
* @example Creating a record from an Action
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const Seed = Alchemy.Action(
|
|
17
|
+
* "Seed",
|
|
18
|
+
* Effect.gen(function* () {
|
|
19
|
+
* const dns = yield* Cloudflare.DNS.WriteDns(zone);
|
|
20
|
+
* return Effect.fn(function* () {
|
|
21
|
+
* return yield* dns.createDnsRecord({
|
|
22
|
+
* type: "TXT",
|
|
23
|
+
* name: "_seed.example.com",
|
|
24
|
+
* content: '"hello"',
|
|
25
|
+
* ttl: 60,
|
|
26
|
+
* });
|
|
27
|
+
* });
|
|
28
|
+
* }).pipe(Effect.provide(Cloudflare.DNS.WriteDnsLocal)),
|
|
29
|
+
* );
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* The zone id is resolved at apply time through the ambient
|
|
33
|
+
* {@link RuntimeContext} (in an Action, that's the resolve context the engine
|
|
34
|
+
* provides around the body), so `WriteDns(zone)` works even though the zone may
|
|
35
|
+
* be created/adopted in the same deploy.
|
|
36
|
+
*/
|
|
37
|
+
export declare const WriteDnsLocal: Layer.Layer<WriteDns, never, import("@distilled.cloud/cloudflare").Credentials | import("effect/unstable/http/HttpClient").HttpClient>;
|
|
38
|
+
//# sourceMappingURL=WriteDnsLocal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteDnsLocal.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/WriteDnsLocal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,aAAa,wIAGzB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import { makeLocalDnsBinding } from "./DnsLocal.js";
|
|
4
|
+
import { WriteDns } from "./WriteDns.js";
|
|
5
|
+
import { dnsWriteClient } from "./WriteDnsHttp.js";
|
|
6
|
+
/**
|
|
7
|
+
* Local implementation of the {@link WriteDns} binding — creates, updates, and
|
|
8
|
+
* deletes Cloudflare DNS records over the HTTP API using the **current
|
|
9
|
+
* credentials** instead of a scoped API token ({@link WriteDnsHttp}). DNS is a
|
|
10
|
+
* zone-management capability with no native Worker binding.
|
|
11
|
+
*
|
|
12
|
+
* Provide it on an {@link Action} (or any deploy-time Effect) so you can mutate
|
|
13
|
+
* a zone's DNS records with the same
|
|
14
|
+
* `createDnsRecord`/`updateDnsRecord`/`deleteDnsRecord`/`batchDnsRecords`
|
|
15
|
+
* client you'd use inside a Worker:
|
|
16
|
+
*
|
|
17
|
+
* @example Creating a record from an Action
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const Seed = Alchemy.Action(
|
|
20
|
+
* "Seed",
|
|
21
|
+
* Effect.gen(function* () {
|
|
22
|
+
* const dns = yield* Cloudflare.DNS.WriteDns(zone);
|
|
23
|
+
* return Effect.fn(function* () {
|
|
24
|
+
* return yield* dns.createDnsRecord({
|
|
25
|
+
* type: "TXT",
|
|
26
|
+
* name: "_seed.example.com",
|
|
27
|
+
* content: '"hello"',
|
|
28
|
+
* ttl: 60,
|
|
29
|
+
* });
|
|
30
|
+
* });
|
|
31
|
+
* }).pipe(Effect.provide(Cloudflare.DNS.WriteDnsLocal)),
|
|
32
|
+
* );
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* The zone id is resolved at apply time through the ambient
|
|
36
|
+
* {@link RuntimeContext} (in an Action, that's the resolve context the engine
|
|
37
|
+
* provides around the body), so `WriteDns(zone)` works even though the zone may
|
|
38
|
+
* be created/adopted in the same deploy.
|
|
39
|
+
*/
|
|
40
|
+
export const WriteDnsLocal = Layer.effect(WriteDns, Effect.suspend(() => makeLocalDnsBinding({ makeClient: dnsWriteClient })));
|
|
41
|
+
//# sourceMappingURL=WriteDnsLocal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteDnsLocal.js","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/WriteDnsLocal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CACvC,QAAQ,EACR,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,CAC1E,CAAC"}
|
|
@@ -4,12 +4,15 @@ export * from "./Dnssec.ts";
|
|
|
4
4
|
export * from "./Firewall.ts";
|
|
5
5
|
export * from "./ReadDns.ts";
|
|
6
6
|
export * from "./ReadDnsHttp.ts";
|
|
7
|
+
export * from "./ReadDnsLocal.ts";
|
|
7
8
|
export * from "./ReadWriteDns.ts";
|
|
8
9
|
export * from "./ReadWriteDnsHttp.ts";
|
|
10
|
+
export * from "./ReadWriteDnsLocal.ts";
|
|
9
11
|
export * from "./Record.ts";
|
|
10
12
|
export * from "./View.ts";
|
|
11
13
|
export * from "./WriteDns.ts";
|
|
12
14
|
export * from "./WriteDnsHttp.ts";
|
|
15
|
+
export * from "./WriteDnsLocal.ts";
|
|
13
16
|
export * from "./ZoneSettings.ts";
|
|
14
17
|
export * from "./ZoneTransferAcl.ts";
|
|
15
18
|
export * from "./ZoneTransferIncoming.ts";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
|
|
@@ -4,12 +4,15 @@ export * from "./Dnssec.js";
|
|
|
4
4
|
export * from "./Firewall.js";
|
|
5
5
|
export * from "./ReadDns.js";
|
|
6
6
|
export * from "./ReadDnsHttp.js";
|
|
7
|
+
export * from "./ReadDnsLocal.js";
|
|
7
8
|
export * from "./ReadWriteDns.js";
|
|
8
9
|
export * from "./ReadWriteDnsHttp.js";
|
|
10
|
+
export * from "./ReadWriteDnsLocal.js";
|
|
9
11
|
export * from "./Record.js";
|
|
10
12
|
export * from "./View.js";
|
|
11
13
|
export * from "./WriteDns.js";
|
|
12
14
|
export * from "./WriteDnsHttp.js";
|
|
15
|
+
export * from "./WriteDnsLocal.js";
|
|
13
16
|
export * from "./ZoneSettings.js";
|
|
14
17
|
export * from "./ZoneTransferAcl.js";
|
|
15
18
|
export * from "./ZoneTransferIncoming.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/DNS/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
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 ReadFlagsClient } from "./ReadFlags.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 FlagshipAuth {
|
|
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 ReadFlagsClient} over the Flagship HTTP evaluate endpoint
|
|
17
|
+
* (`GET .../flagship/apps/{appId}/evaluate`).
|
|
18
|
+
*
|
|
19
|
+
* `appId` is an Effect so the resolution stays deferred to each call — inside
|
|
20
|
+
* an Action it resolves through the apply-time RuntimeContext. Mirrors the
|
|
21
|
+
* Worker binding's fall-back-to-default semantics: evaluation never fails the
|
|
22
|
+
* effect — an HTTP error or a value whose type does not match the requested
|
|
23
|
+
* method resolves to `defaultValue` instead. The `raw` runtime binding has no
|
|
24
|
+
* HTTP equivalent and dies if used.
|
|
25
|
+
*/
|
|
26
|
+
export declare const makeHttpFlagshipClient: (auth: FlagshipAuth, appId: Effect.Effect<string>) => ReadFlagsClient;
|
|
27
|
+
//# sourceMappingURL=ReadFlagsHttpClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadFlagsHttpClient.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Flagship/ReadFlagsHttpClient.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,UAAU,MAAM,iCAAiC,CAAC;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAQxB;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,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;AAaD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,SAC3B,YAAY,SACX,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAC3B,eA6HF,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import * as flagship from "@distilled.cloud/cloudflare/flagship";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import { FlagshipError, } from "./ReadFlags.js";
|
|
4
|
+
/**
|
|
5
|
+
* The HTTP evaluate endpoint only supports a single `targetingKey` query
|
|
6
|
+
* param, not the full flat evaluation context the Worker binding accepts.
|
|
7
|
+
*/
|
|
8
|
+
const targetingKeyOf = (context) => {
|
|
9
|
+
const value = context?.["targetingKey"];
|
|
10
|
+
return value === undefined ? undefined : String(value);
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Build a {@link ReadFlagsClient} over the Flagship HTTP evaluate endpoint
|
|
14
|
+
* (`GET .../flagship/apps/{appId}/evaluate`).
|
|
15
|
+
*
|
|
16
|
+
* `appId` is an Effect so the resolution stays deferred to each call — inside
|
|
17
|
+
* an Action it resolves through the apply-time RuntimeContext. Mirrors the
|
|
18
|
+
* Worker binding's fall-back-to-default semantics: evaluation never fails the
|
|
19
|
+
* effect — an HTTP error or a value whose type does not match the requested
|
|
20
|
+
* method resolves to `defaultValue` instead. The `raw` runtime binding has no
|
|
21
|
+
* HTTP equivalent and dies if used.
|
|
22
|
+
*/
|
|
23
|
+
export const makeHttpFlagshipClient = (auth, appId) => {
|
|
24
|
+
const evaluate = (flagKey, context) => appId.pipe(Effect.flatMap((id) => auth.authorize(flagship.getAppEvaluate({
|
|
25
|
+
accountId: auth.accountId,
|
|
26
|
+
appId: id,
|
|
27
|
+
flagKey,
|
|
28
|
+
targetingKey: targetingKeyOf(context),
|
|
29
|
+
}))));
|
|
30
|
+
const details = (flagKey, defaultValue, match, context) => evaluate(flagKey, context).pipe(Effect.map((r) => match(r.value)
|
|
31
|
+
? { flagKey, value: r.value, variant: r.variant, reason: r.reason }
|
|
32
|
+
: {
|
|
33
|
+
flagKey,
|
|
34
|
+
value: defaultValue,
|
|
35
|
+
variant: r.variant,
|
|
36
|
+
reason: r.reason,
|
|
37
|
+
errorCode: "TYPE_MISMATCH",
|
|
38
|
+
}), Effect.catch((error) => Effect.succeed({
|
|
39
|
+
flagKey,
|
|
40
|
+
value: defaultValue,
|
|
41
|
+
reason: "ERROR",
|
|
42
|
+
errorCode: error._tag,
|
|
43
|
+
})));
|
|
44
|
+
const value = (flagKey, defaultValue, match, context) => evaluate(flagKey, context).pipe(Effect.map((r) => (match(r.value) ? r.value : defaultValue)), Effect.catch(() => Effect.succeed(defaultValue)));
|
|
45
|
+
const isBoolean = (v) => typeof v === "boolean";
|
|
46
|
+
const isString = (v) => typeof v === "string";
|
|
47
|
+
const isNumber = (v) => typeof v === "number";
|
|
48
|
+
const isObjectLike = (v) => v !== null && typeof v === "object";
|
|
49
|
+
return {
|
|
50
|
+
// The raw runtime binding is a workerd object with no HTTP surface.
|
|
51
|
+
raw: Effect.die(new FlagshipError({
|
|
52
|
+
message: "the raw Flagship runtime binding is unavailable over HTTP; use ReadFlagsBinding inside a Worker",
|
|
53
|
+
cause: undefined,
|
|
54
|
+
})),
|
|
55
|
+
get: (flagKey, defaultValue, context) => evaluate(flagKey, context).pipe(Effect.map((r) => r.value ?? defaultValue), Effect.catch(() => Effect.succeed(defaultValue))),
|
|
56
|
+
getBooleanValue: (flagKey, defaultValue, context) => value(flagKey, defaultValue, isBoolean, context),
|
|
57
|
+
getStringValue: (flagKey, defaultValue, context) => value(flagKey, defaultValue, isString, context),
|
|
58
|
+
getNumberValue: (flagKey, defaultValue, context) => value(flagKey, defaultValue, isNumber, context),
|
|
59
|
+
getObjectValue: (flagKey, defaultValue, context) => evaluate(flagKey, context).pipe(Effect.map((r) => isObjectLike(r.value)
|
|
60
|
+
? r.value
|
|
61
|
+
: defaultValue), Effect.catch(() => Effect.succeed(defaultValue))),
|
|
62
|
+
getBooleanDetails: (flagKey, defaultValue, context) => details(flagKey, defaultValue, isBoolean, context),
|
|
63
|
+
getStringDetails: (flagKey, defaultValue, context) => details(flagKey, defaultValue, isString, context),
|
|
64
|
+
getNumberDetails: (flagKey, defaultValue, context) => details(flagKey, defaultValue, isNumber, context),
|
|
65
|
+
getObjectDetails: (flagKey, defaultValue, context) => evaluate(flagKey, context).pipe(Effect.map((r) => isObjectLike(r.value)
|
|
66
|
+
? {
|
|
67
|
+
flagKey,
|
|
68
|
+
value: r.value,
|
|
69
|
+
variant: r.variant,
|
|
70
|
+
reason: r.reason,
|
|
71
|
+
}
|
|
72
|
+
: {
|
|
73
|
+
flagKey,
|
|
74
|
+
value: defaultValue,
|
|
75
|
+
variant: r.variant,
|
|
76
|
+
reason: r.reason,
|
|
77
|
+
errorCode: "TYPE_MISMATCH",
|
|
78
|
+
}), Effect.catch((error) => Effect.succeed({
|
|
79
|
+
flagKey,
|
|
80
|
+
value: defaultValue,
|
|
81
|
+
reason: "ERROR",
|
|
82
|
+
errorCode: error._tag,
|
|
83
|
+
}))),
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=ReadFlagsHttpClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadFlagsHttpClient.js","sourceRoot":"","sources":["../../../src/Cloudflare/Flagship/ReadFlagsHttpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as Layer from "effect/Layer";
|
|
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 { ReadFlags } from "./ReadFlags.ts";
|
|
6
|
+
/**
|
|
7
|
+
* Local implementation of the {@link ReadFlags} binding — evaluates Flagship
|
|
8
|
+
* feature flags over the Cloudflare HTTP API (`GET .../flagship/apps/{appId}/evaluate`)
|
|
9
|
+
* using the **current credentials** instead of a native Worker binding
|
|
10
|
+
* ({@link ReadFlagsBinding}).
|
|
11
|
+
*
|
|
12
|
+
* Provide it on an {@link Action} (or any deploy-time Effect) so you can read
|
|
13
|
+
* flag values with the same `getBooleanValue`/`getStringValue`/… client you'd
|
|
14
|
+
* use inside a Worker:
|
|
15
|
+
*
|
|
16
|
+
* @example Reading a flag from an Action
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const CheckFlag = Alchemy.Action(
|
|
19
|
+
* "CheckFlag",
|
|
20
|
+
* Effect.gen(function* () {
|
|
21
|
+
* const flags = yield* Cloudflare.Flagship.ReadFlags(app);
|
|
22
|
+
* return Effect.fn(function* () {
|
|
23
|
+
* return yield* flags.getBooleanValue("new-checkout", false);
|
|
24
|
+
* });
|
|
25
|
+
* }).pipe(Effect.provide(Cloudflare.Flagship.ReadFlagsLocal)),
|
|
26
|
+
* );
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* The app id is resolved at apply time through the ambient {@link RuntimeContext}
|
|
30
|
+
* (in an Action, that's the resolve context the engine provides around the
|
|
31
|
+
* body), so `ReadFlags(app)` works even though the app is created in the same
|
|
32
|
+
* deploy.
|
|
33
|
+
*
|
|
34
|
+
* Limitations vs. the Worker binding: the HTTP evaluate endpoint only accepts a
|
|
35
|
+
* single `targetingKey` (read from `context.targetingKey`), so attribute-based
|
|
36
|
+
* targeting rules that key off other context fields cannot be exercised locally.
|
|
37
|
+
* The `raw` runtime binding has no HTTP equivalent and dies if used — see
|
|
38
|
+
* {@link makeHttpFlagshipClient}.
|
|
39
|
+
*/
|
|
40
|
+
export declare const ReadFlagsLocal: Layer.Layer<ReadFlags, never, CloudflareEnvironment | Credentials | HttpClient.HttpClient>;
|
|
41
|
+
//# sourceMappingURL=ReadFlagsLocal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadFlagsLocal.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Flagship/ReadFlagsLocal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,KAAK,UAAU,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAM3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,cAAc,4FAsB1B,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
|
|
4
|
+
import { ReadFlags } from "./ReadFlags.js";
|
|
5
|
+
import { makeHttpFlagshipClient, } from "./ReadFlagsHttpClient.js";
|
|
6
|
+
/**
|
|
7
|
+
* Local implementation of the {@link ReadFlags} binding — evaluates Flagship
|
|
8
|
+
* feature flags over the Cloudflare HTTP API (`GET .../flagship/apps/{appId}/evaluate`)
|
|
9
|
+
* using the **current credentials** instead of a native Worker binding
|
|
10
|
+
* ({@link ReadFlagsBinding}).
|
|
11
|
+
*
|
|
12
|
+
* Provide it on an {@link Action} (or any deploy-time Effect) so you can read
|
|
13
|
+
* flag values with the same `getBooleanValue`/`getStringValue`/… client you'd
|
|
14
|
+
* use inside a Worker:
|
|
15
|
+
*
|
|
16
|
+
* @example Reading a flag from an Action
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const CheckFlag = Alchemy.Action(
|
|
19
|
+
* "CheckFlag",
|
|
20
|
+
* Effect.gen(function* () {
|
|
21
|
+
* const flags = yield* Cloudflare.Flagship.ReadFlags(app);
|
|
22
|
+
* return Effect.fn(function* () {
|
|
23
|
+
* return yield* flags.getBooleanValue("new-checkout", false);
|
|
24
|
+
* });
|
|
25
|
+
* }).pipe(Effect.provide(Cloudflare.Flagship.ReadFlagsLocal)),
|
|
26
|
+
* );
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* The app id is resolved at apply time through the ambient {@link RuntimeContext}
|
|
30
|
+
* (in an Action, that's the resolve context the engine provides around the
|
|
31
|
+
* body), so `ReadFlags(app)` works even though the app is created in the same
|
|
32
|
+
* deploy.
|
|
33
|
+
*
|
|
34
|
+
* Limitations vs. the Worker binding: the HTTP evaluate endpoint only accepts a
|
|
35
|
+
* single `targetingKey` (read from `context.targetingKey`), so attribute-based
|
|
36
|
+
* targeting rules that key off other context fields cannot be exercised locally.
|
|
37
|
+
* The `raw` runtime binding has no HTTP equivalent and dies if used — see
|
|
38
|
+
* {@link makeHttpFlagshipClient}.
|
|
39
|
+
*/
|
|
40
|
+
export const ReadFlagsLocal = Layer.effect(ReadFlags, Effect.gen(function* () {
|
|
41
|
+
// Account + credentials are ambient during stack-eval (the stack's
|
|
42
|
+
// providers layer). Capture the full context so the evaluate op can run
|
|
43
|
+
// with the current credentials — no `host.bind`, no minted token.
|
|
44
|
+
const { accountId } = yield* yield* CloudflareEnvironment;
|
|
45
|
+
const context = yield* Effect.context();
|
|
46
|
+
const auth = {
|
|
47
|
+
authorize: (eff) => eff.pipe(Effect.provideContext(context)),
|
|
48
|
+
accountId,
|
|
49
|
+
};
|
|
50
|
+
return Effect.fn(function* (app) {
|
|
51
|
+
// Deferred accessor — resolves the appId against the tracker at apply
|
|
52
|
+
// time (in an Action, that's the engine's resolve context).
|
|
53
|
+
const appId = yield* app.appId;
|
|
54
|
+
return makeHttpFlagshipClient(auth, appId);
|
|
55
|
+
});
|
|
56
|
+
}));
|
|
57
|
+
//# sourceMappingURL=ReadFlagsLocal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadFlagsLocal.js","sourceRoot":"","sources":["../../../src/Cloudflare/Flagship/ReadFlagsLocal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAEL,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CACxC,SAAS,EACT,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,mEAAmE;IACnE,wEAAwE;IACxE,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;IACJ,MAAM,IAAI,GAAiB;QACzB,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC5D,SAAS;KACV,CAAC;IAEF,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAQ;QAClC,sEAAsE;QACtE,4DAA4D;QAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;QAC/B,OAAO,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC"}
|
|
@@ -2,4 +2,5 @@ export * from "./App.ts";
|
|
|
2
2
|
export * from "./Flag.ts";
|
|
3
3
|
export { ReadFlags, FlagshipError, type ReadFlagsClient, type EvaluationContext, type EvaluationDetails, } from "./ReadFlags.ts";
|
|
4
4
|
export { ReadFlagsBinding } from "./ReadFlagsBinding.ts";
|
|
5
|
+
export { ReadFlagsLocal } from "./ReadFlagsLocal.ts";
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Flagship/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Flagship/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|