alchemy 2.0.0-beta.44 → 2.0.0-beta.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/exec.js +67 -8
- package/bin/exec.js.map +1 -1
- package/lib/AWS/Lambda/Function.d.ts +17 -0
- package/lib/AWS/Lambda/Function.d.ts.map +1 -1
- package/lib/AWS/Lambda/Function.js +61 -16
- package/lib/AWS/Lambda/Function.js.map +1 -1
- package/lib/AWS/Providers.d.ts +2 -1
- package/lib/AWS/Providers.d.ts.map +1 -1
- package/lib/AWS/Providers.js +3 -1
- package/lib/AWS/Providers.js.map +1 -1
- package/lib/Apply.js +17 -1
- package/lib/Apply.js.map +1 -1
- package/lib/Auth/AuthProvider.d.ts.map +1 -1
- package/lib/Auth/AuthProvider.js +24 -6
- package/lib/Auth/AuthProvider.js.map +1 -1
- package/lib/Auth/Credentials.d.ts.map +1 -1
- package/lib/Auth/Credentials.js +3 -3
- package/lib/Auth/Credentials.js.map +1 -1
- package/lib/Cli/commands/_shared.d.ts +13 -1
- package/lib/Cli/commands/_shared.d.ts.map +1 -1
- package/lib/Cli/commands/_shared.js +33 -2
- package/lib/Cli/commands/_shared.js.map +1 -1
- package/lib/Cli/commands/dev.d.ts.map +1 -1
- package/lib/Cli/commands/dev.js +10 -1
- package/lib/Cli/commands/dev.js.map +1 -1
- package/lib/Cli/commands/login.d.ts.map +1 -1
- package/lib/Cli/commands/login.js +19 -5
- 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 -27
- package/lib/Cli/commands/profile.js.map +1 -1
- package/lib/Cli/main.d.ts.map +1 -1
- package/lib/Cli/main.js +0 -2
- package/lib/Cli/main.js.map +1 -1
- package/lib/Cloudflare/AiGateway/AiGateway.d.ts +0 -2
- package/lib/Cloudflare/AiGateway/AiGateway.d.ts.map +1 -1
- package/lib/Cloudflare/AiGateway/AiGateway.js +2 -4
- package/lib/Cloudflare/AiGateway/AiGateway.js.map +1 -1
- package/lib/Cloudflare/BrowserRendering/BrowserRendering.d.ts +116 -0
- package/lib/Cloudflare/BrowserRendering/BrowserRendering.d.ts.map +1 -0
- package/lib/Cloudflare/BrowserRendering/BrowserRendering.js +92 -0
- package/lib/Cloudflare/BrowserRendering/BrowserRendering.js.map +1 -0
- package/lib/Cloudflare/BrowserRendering/BrowserRenderingBinding.d.ts +55 -0
- package/lib/Cloudflare/BrowserRendering/BrowserRenderingBinding.d.ts.map +1 -0
- package/lib/Cloudflare/BrowserRendering/BrowserRenderingBinding.js +55 -0
- package/lib/Cloudflare/BrowserRendering/BrowserRenderingBinding.js.map +1 -0
- package/lib/Cloudflare/BrowserRendering/index.d.ts +3 -0
- package/lib/Cloudflare/BrowserRendering/index.d.ts.map +1 -0
- package/lib/Cloudflare/BrowserRendering/index.js +3 -0
- package/lib/Cloudflare/BrowserRendering/index.js.map +1 -0
- package/lib/Cloudflare/Container/Container.d.ts +3 -3
- package/lib/Cloudflare/Container/Container.js +3 -3
- package/lib/Cloudflare/Container/StartContainer.d.ts.map +1 -1
- package/lib/Cloudflare/Container/StartContainer.js.map +1 -1
- package/lib/Cloudflare/D1/D1Database.d.ts +1 -0
- package/lib/Cloudflare/D1/D1Database.d.ts.map +1 -1
- package/lib/Cloudflare/D1/D1Database.js +2 -1
- package/lib/Cloudflare/D1/D1Database.js.map +1 -1
- package/lib/Cloudflare/D1/D1DatabaseBinding.js +1 -1
- package/lib/Cloudflare/D1/D1DatabaseBinding.js.map +1 -1
- package/lib/Cloudflare/Fetcher.d.ts.map +1 -1
- package/lib/Cloudflare/Fetcher.js +0 -2
- package/lib/Cloudflare/Fetcher.js.map +1 -1
- package/lib/Cloudflare/Hyperdrive/Hyperdrive.d.ts +1 -0
- package/lib/Cloudflare/Hyperdrive/Hyperdrive.d.ts.map +1 -1
- package/lib/Cloudflare/Hyperdrive/Hyperdrive.js +3 -0
- package/lib/Cloudflare/Hyperdrive/Hyperdrive.js.map +1 -1
- package/lib/Cloudflare/Hyperdrive/HyperdriveBinding.d.ts +3 -2
- package/lib/Cloudflare/Hyperdrive/HyperdriveBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Hyperdrive/HyperdriveBinding.js +32 -33
- package/lib/Cloudflare/Hyperdrive/HyperdriveBinding.js.map +1 -1
- package/lib/Cloudflare/KV/KVNamespace.d.ts +1 -0
- package/lib/Cloudflare/KV/KVNamespace.d.ts.map +1 -1
- package/lib/Cloudflare/KV/KVNamespace.js +2 -0
- package/lib/Cloudflare/KV/KVNamespace.js.map +1 -1
- package/lib/Cloudflare/Local.js +1 -1
- package/lib/Cloudflare/Local.js.map +1 -1
- package/lib/Cloudflare/Providers.d.ts +2 -1
- package/lib/Cloudflare/Providers.d.ts.map +1 -1
- package/lib/Cloudflare/Providers.js +21 -17
- package/lib/Cloudflare/Providers.js.map +1 -1
- package/lib/Cloudflare/Queue/Queue.d.ts +1 -0
- package/lib/Cloudflare/Queue/Queue.d.ts.map +1 -1
- package/lib/Cloudflare/Queue/Queue.js +1 -0
- package/lib/Cloudflare/Queue/Queue.js.map +1 -1
- package/lib/Cloudflare/Queue/QueueConsumer.d.ts +2 -1
- package/lib/Cloudflare/Queue/QueueConsumer.d.ts.map +1 -1
- package/lib/Cloudflare/Queue/QueueConsumer.js +11 -3
- package/lib/Cloudflare/Queue/QueueConsumer.js.map +1 -1
- package/lib/Cloudflare/Queue/QueueEventSource.d.ts +30 -4
- package/lib/Cloudflare/Queue/QueueEventSource.d.ts.map +1 -1
- package/lib/Cloudflare/Queue/QueueEventSource.js +22 -1
- package/lib/Cloudflare/Queue/QueueEventSource.js.map +1 -1
- package/lib/Cloudflare/R2/R2Bucket.d.ts +1 -0
- package/lib/Cloudflare/R2/R2Bucket.d.ts.map +1 -1
- package/lib/Cloudflare/R2/R2Bucket.js +18 -0
- package/lib/Cloudflare/R2/R2Bucket.js.map +1 -1
- package/lib/Cloudflare/SecretsStore/Secret.d.ts.map +1 -1
- package/lib/Cloudflare/SecretsStore/Secret.js +13 -34
- package/lib/Cloudflare/SecretsStore/Secret.js.map +1 -1
- package/lib/Cloudflare/SecretsStore/SecretBinding.d.ts +3 -2
- package/lib/Cloudflare/SecretsStore/SecretBinding.d.ts.map +1 -1
- package/lib/Cloudflare/SecretsStore/SecretBinding.js +3 -2
- package/lib/Cloudflare/SecretsStore/SecretBinding.js.map +1 -1
- package/lib/Cloudflare/StateStore/Api.d.ts +5 -13
- package/lib/Cloudflare/StateStore/Api.d.ts.map +1 -1
- package/lib/Cloudflare/StateStore/Api.js +14 -8
- package/lib/Cloudflare/StateStore/Api.js.map +1 -1
- package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
- package/lib/Cloudflare/StateStore/State.js +45 -9
- package/lib/Cloudflare/StateStore/State.js.map +1 -1
- package/lib/Cloudflare/StateStore/Store.d.ts.map +1 -1
- package/lib/Cloudflare/StateStore/Store.js +5 -2
- package/lib/Cloudflare/StateStore/Store.js.map +1 -1
- package/lib/Cloudflare/VpcService/VpcService.d.ts +2 -2
- package/lib/Cloudflare/VpcService/VpcService.d.ts.map +1 -1
- package/lib/Cloudflare/Website/StaticSite.d.ts +5 -5
- package/lib/Cloudflare/Website/StaticSite.d.ts.map +1 -1
- package/lib/Cloudflare/Website/StaticSite.js +3 -0
- package/lib/Cloudflare/Website/StaticSite.js.map +1 -1
- package/lib/Cloudflare/Website/Vite.d.ts +5 -5
- package/lib/Cloudflare/Website/Vite.d.ts.map +1 -1
- package/lib/Cloudflare/Website/Vite.js.map +1 -1
- package/lib/Cloudflare/Workers/Assets.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Assets.js +1 -1
- package/lib/Cloudflare/Workers/Assets.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectBridge.js +4 -2
- package/lib/Cloudflare/Workers/DurableObjectBridge.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts +183 -6
- package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectNamespace.js +279 -76
- package/lib/Cloudflare/Workers/DurableObjectNamespace.js.map +1 -1
- package/lib/Cloudflare/Workers/HttpServer.d.ts +6 -4
- package/lib/Cloudflare/Workers/HttpServer.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/HttpServer.js +20 -15
- package/lib/Cloudflare/Workers/HttpServer.js.map +1 -1
- package/lib/Cloudflare/Workers/InferEnv.d.ts +3 -2
- package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +4 -7
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js +111 -66
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
- package/lib/Cloudflare/Workers/Rpc.d.ts +16 -0
- package/lib/Cloudflare/Workers/Rpc.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Rpc.js +22 -0
- package/lib/Cloudflare/Workers/Rpc.js.map +1 -1
- package/lib/Cloudflare/Workers/RpcDurableObjectNamespace.d.ts +285 -0
- package/lib/Cloudflare/Workers/RpcDurableObjectNamespace.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/RpcDurableObjectNamespace.js +288 -0
- package/lib/Cloudflare/Workers/RpcDurableObjectNamespace.js.map +1 -0
- package/lib/Cloudflare/Workers/RpcWorker.d.ts +305 -0
- package/lib/Cloudflare/Workers/RpcWorker.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/RpcWorker.js +350 -0
- package/lib/Cloudflare/Workers/RpcWorker.js.map +1 -0
- package/lib/Cloudflare/Workers/Vite.d.ts +1 -1
- package/lib/Cloudflare/Workers/Vite.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Vite.js +2 -1
- package/lib/Cloudflare/Workers/Vite.js.map +1 -1
- package/lib/Cloudflare/Workers/Worker.d.ts +69 -24
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +168 -47
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +158 -97
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts +11 -23
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.js +3 -0
- 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 +5 -2
- package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBundle.js +4 -1
- package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.js +9 -10
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.js.map +1 -1
- package/lib/Cloudflare/Workers/Workflow.d.ts +5 -3
- package/lib/Cloudflare/Workers/Workflow.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Workflow.js +19 -1
- package/lib/Cloudflare/Workers/Workflow.js.map +1 -1
- package/lib/Cloudflare/Workers/index.d.ts +2 -0
- package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/index.js +2 -0
- package/lib/Cloudflare/Workers/index.js.map +1 -1
- package/lib/Cloudflare/index.d.ts +1 -0
- package/lib/Cloudflare/index.d.ts.map +1 -1
- package/lib/Cloudflare/index.js +1 -0
- package/lib/Cloudflare/index.js.map +1 -1
- package/lib/Dependencies.d.ts +10 -0
- package/lib/Dependencies.d.ts.map +1 -0
- package/lib/Dependencies.js +1 -0
- package/lib/Dependencies.js.map +1 -0
- package/lib/Deploy.d.ts +2 -1
- package/lib/Deploy.d.ts.map +1 -1
- package/lib/Deploy.js +2 -2
- package/lib/Deploy.js.map +1 -1
- package/lib/Diff.d.ts +11 -0
- package/lib/Diff.d.ts.map +1 -1
- package/lib/Diff.js +11 -0
- package/lib/Diff.js.map +1 -1
- package/lib/Input.d.ts +2 -1
- package/lib/Input.d.ts.map +1 -1
- package/lib/KeyPair.d.ts +77 -0
- package/lib/KeyPair.d.ts.map +1 -0
- package/lib/KeyPair.js +102 -0
- package/lib/KeyPair.js.map +1 -0
- package/lib/Local/RpcProvider.d.ts +3 -1
- package/lib/Local/RpcProvider.d.ts.map +1 -1
- package/lib/Local/RpcProvider.js +28 -2
- package/lib/Local/RpcProvider.js.map +1 -1
- package/lib/Local/RpcServerEnvironment.js +1 -1
- package/lib/Local/RpcServerEnvironment.js.map +1 -1
- package/lib/Neon/Project.d.ts.map +1 -1
- package/lib/Neon/Project.js +14 -3
- package/lib/Neon/Project.js.map +1 -1
- package/lib/Output.d.ts.map +1 -1
- package/lib/Output.js +9 -2
- package/lib/Output.js.map +1 -1
- package/lib/Phase.d.ts +2 -1
- package/lib/Phase.d.ts.map +1 -1
- package/lib/Phase.js +6 -1
- package/lib/Phase.js.map +1 -1
- package/lib/Plan.d.ts.map +1 -1
- package/lib/Plan.js +14 -3
- package/lib/Plan.js.map +1 -1
- package/lib/Platform.d.ts +8 -6
- package/lib/Platform.d.ts.map +1 -1
- package/lib/Platform.js +33 -3
- package/lib/Platform.js.map +1 -1
- package/lib/Random.d.ts.map +1 -1
- package/lib/Random.js +9 -14
- package/lib/Random.js.map +1 -1
- package/lib/RuntimeContext.d.ts +21 -1
- package/lib/RuntimeContext.d.ts.map +1 -1
- package/lib/RuntimeContext.js +12 -0
- package/lib/RuntimeContext.js.map +1 -1
- package/lib/Stack.d.ts +3 -3
- package/lib/Stack.d.ts.map +1 -1
- package/lib/Stack.js.map +1 -1
- package/lib/State/HttpStateApi.d.ts +2 -2
- package/lib/State/StateEncoding.d.ts +8 -0
- package/lib/State/StateEncoding.d.ts.map +1 -1
- package/lib/State/StateEncoding.js +55 -5
- package/lib/State/StateEncoding.js.map +1 -1
- package/lib/Test/Bun.d.ts.map +1 -1
- package/lib/Test/Bun.js +0 -2
- package/lib/Test/Bun.js.map +1 -1
- package/lib/Test/Vitest.d.ts.map +1 -1
- package/lib/Test/Vitest.js +0 -2
- package/lib/Test/Vitest.js.map +1 -1
- package/lib/Util/Duration.d.ts +14 -0
- package/lib/Util/Duration.d.ts.map +1 -0
- package/lib/Util/Duration.js +18 -0
- package/lib/Util/Duration.js.map +1 -0
- package/lib/Util/index.d.ts +0 -6
- package/lib/Util/index.d.ts.map +1 -1
- package/lib/Util/index.js +0 -6
- package/lib/Util/index.js.map +1 -1
- package/lib/Util/types.d.ts +3 -1
- package/lib/Util/types.d.ts.map +1 -1
- package/lib/Util/types.js +5 -1
- package/lib/Util/types.js.map +1 -1
- package/lib/index.d.ts +2 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -3
- package/lib/index.js.map +1 -1
- package/lib/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +20 -19
- package/src/AWS/Lambda/Function.ts +87 -34
- package/src/AWS/Providers.ts +3 -0
- package/src/Apply.ts +18 -1
- package/src/Auth/AuthProvider.ts +25 -5
- package/src/Auth/Credentials.ts +8 -7
- package/src/Cli/commands/_shared.ts +47 -4
- package/src/Cli/commands/dev.ts +13 -1
- package/src/Cli/commands/login.ts +20 -4
- package/src/Cli/commands/profile.ts +24 -34
- package/src/Cli/main.ts +0 -3
- package/src/Cloudflare/AiGateway/AiGateway.ts +2 -6
- package/src/Cloudflare/BrowserRendering/BrowserRendering.ts +132 -0
- package/src/Cloudflare/BrowserRendering/BrowserRenderingBinding.ts +137 -0
- package/src/Cloudflare/BrowserRendering/index.ts +11 -0
- package/src/Cloudflare/Container/Container.ts +3 -3
- package/src/Cloudflare/Container/StartContainer.ts +1 -2
- package/src/Cloudflare/D1/D1Database.ts +4 -1
- package/src/Cloudflare/D1/D1DatabaseBinding.ts +1 -1
- package/src/Cloudflare/Fetcher.ts +0 -2
- package/src/Cloudflare/Hyperdrive/Hyperdrive.ts +5 -0
- package/src/Cloudflare/Hyperdrive/HyperdriveBinding.ts +41 -43
- package/src/Cloudflare/KV/KVNamespace.ts +4 -0
- package/src/Cloudflare/Local.ts +1 -1
- package/src/Cloudflare/Providers.ts +25 -16
- package/src/Cloudflare/Queue/Queue.ts +3 -0
- package/src/Cloudflare/Queue/QueueConsumer.ts +23 -8
- package/src/Cloudflare/Queue/QueueEventSource.ts +33 -5
- package/src/Cloudflare/R2/R2Bucket.ts +26 -0
- package/src/Cloudflare/SecretsStore/Secret.ts +14 -41
- package/src/Cloudflare/SecretsStore/SecretBinding.ts +11 -11
- package/src/Cloudflare/StateStore/Api.ts +15 -15
- package/src/Cloudflare/StateStore/State.ts +68 -6
- package/src/Cloudflare/StateStore/Store.ts +5 -2
- package/src/Cloudflare/VpcService/VpcService.ts +2 -2
- package/src/Cloudflare/Website/StaticSite.ts +8 -10
- package/src/Cloudflare/Website/Vite.ts +4 -7
- package/src/Cloudflare/Workers/Assets.ts +1 -1
- package/src/Cloudflare/Workers/DurableObjectBridge.ts +7 -4
- package/src/Cloudflare/Workers/DurableObjectNamespace.ts +380 -121
- package/src/Cloudflare/Workers/HttpServer.ts +31 -25
- package/src/Cloudflare/Workers/InferEnv.ts +15 -8
- package/src/Cloudflare/Workers/LocalWorkerProvider.ts +139 -78
- package/src/Cloudflare/Workers/Rpc.ts +50 -0
- package/src/Cloudflare/Workers/RpcDurableObjectNamespace.ts +502 -0
- package/src/Cloudflare/Workers/RpcWorker.ts +562 -0
- package/src/Cloudflare/Workers/Vite.ts +2 -0
- package/src/Cloudflare/Workers/Worker.ts +274 -93
- package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +158 -103
- package/src/Cloudflare/Workers/WorkerBinding.ts +10 -0
- package/src/Cloudflare/Workers/WorkerBridge.ts +7 -4
- package/src/Cloudflare/Workers/WorkerBundle.ts +4 -1
- package/src/Cloudflare/Workers/WorkerRuntimeContext.ts +8 -15
- package/src/Cloudflare/Workers/Workflow.ts +22 -3
- package/src/Cloudflare/Workers/index.ts +2 -0
- package/src/Cloudflare/index.ts +1 -0
- package/src/Dependencies.ts +10 -0
- package/src/Deploy.ts +3 -1
- package/src/Diff.ts +13 -0
- package/src/Input.ts +2 -0
- package/src/KeyPair.ts +146 -0
- package/src/Local/RpcProvider.ts +45 -1
- package/src/Local/RpcServerEnvironment.ts +1 -1
- package/src/Neon/Project.ts +16 -3
- package/src/Output.ts +8 -2
- package/src/Phase.ts +8 -0
- package/src/Plan.ts +16 -3
- package/src/Platform.ts +74 -27
- package/src/Random.ts +22 -27
- package/src/RuntimeContext.ts +23 -1
- package/src/Stack.ts +3 -3
- package/src/State/StateEncoding.ts +58 -7
- package/src/Test/Bun.ts +0 -3
- package/src/Test/Vitest.ts +0 -3
- package/src/Util/Duration.ts +21 -0
- package/src/Util/index.ts +0 -6
- package/src/Util/types.ts +9 -2
- package/src/index.ts +2 -3
- package/lib/Secret.d.ts +0 -50
- package/lib/Secret.d.ts.map +0 -1
- package/lib/Secret.js +0 -23
- package/lib/Secret.js.map +0 -1
- package/lib/Trait.d.ts +0 -43
- package/lib/Trait.d.ts.map +0 -1
- package/lib/Trait.js +0 -17
- package/lib/Trait.js.map +0 -1
- package/lib/Util/LocalhostDns.d.ts +0 -23
- package/lib/Util/LocalhostDns.d.ts.map +0 -1
- package/lib/Util/LocalhostDns.js +0 -46
- package/lib/Util/LocalhostDns.js.map +0 -1
- package/lib/Util/assert-never.d.ts +0 -12
- package/lib/Util/assert-never.d.ts.map +0 -1
- package/lib/Util/assert-never.js +0 -11
- package/lib/Util/assert-never.js.map +0 -1
- package/lib/Util/class.d.ts +0 -3
- package/lib/Util/class.d.ts.map +0 -1
- package/lib/Util/class.js +0 -1
- package/lib/Util/class.js.map +0 -1
- package/lib/Util/ignore.d.ts +0 -40
- package/lib/Util/ignore.d.ts.map +0 -1
- package/lib/Util/ignore.js +0 -591
- package/lib/Util/ignore.js.map +0 -1
- package/lib/Util/instance.d.ts +0 -4
- package/lib/Util/instance.d.ts.map +0 -1
- package/lib/Util/instance.js +0 -1
- package/lib/Util/instance.js.map +0 -1
- package/lib/Util/pointer.d.ts +0 -5
- package/lib/Util/pointer.d.ts.map +0 -1
- package/lib/Util/pointer.js +0 -1
- package/lib/Util/pointer.js.map +0 -1
- package/lib/Util/schema-to-type.d.ts +0 -42
- package/lib/Util/schema-to-type.d.ts.map +0 -1
- package/lib/Util/schema-to-type.js +0 -364
- package/lib/Util/schema-to-type.js.map +0 -1
- package/lib/Util/todo.d.ts +0 -3
- package/lib/Util/todo.d.ts.map +0 -1
- package/lib/Util/todo.js +0 -3
- package/lib/Util/todo.js.map +0 -1
- package/lib/Variable.d.ts +0 -29
- package/lib/Variable.d.ts.map +0 -1
- package/lib/Variable.js +0 -9
- package/lib/Variable.js.map +0 -1
- package/src/Secret.ts +0 -87
- package/src/Trait.ts +0 -105
- package/src/Util/LocalhostDns.ts +0 -52
- package/src/Util/assert-never.ts +0 -18
- package/src/Util/class.ts +0 -7
- package/src/Util/ignore.ts +0 -815
- package/src/Util/instance.ts +0 -9
- package/src/Util/pointer.ts +0 -5
- package/src/Util/schema-to-type.ts +0 -456
- package/src/Util/todo.ts +0 -4
- package/src/Variable.ts +0 -44
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as Context from "effect/Context";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
3
4
|
import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest";
|
|
4
5
|
import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
|
|
5
6
|
import * as Output from "../../Output.js";
|
|
6
7
|
import { ALCHEMY_PHASE } from "../../Phase.js";
|
|
7
8
|
import { effectClass, taggedFunction } from "../../Util/effect.js";
|
|
9
|
+
import { asEffect } from "../../Util/types.js";
|
|
8
10
|
import { DurableObjectState } from "./DurableObjectState.js";
|
|
9
11
|
import { makeRpcStub } from "./Rpc.js";
|
|
10
12
|
import {} from "./WebSocket.js";
|
|
@@ -97,7 +99,7 @@ export class DurableObjectNamespaceScope extends Context.Service()("Cloudflare.D
|
|
|
97
99
|
* @example Modular Durable Object (class + .make() in one file)
|
|
98
100
|
* ```typescript
|
|
99
101
|
* // src/Counter.ts
|
|
100
|
-
* export
|
|
102
|
+
* export class Counter extends Cloudflare.DurableObjectNamespace<Counter>()(
|
|
101
103
|
* "Counter",
|
|
102
104
|
* ) {}
|
|
103
105
|
*
|
|
@@ -142,6 +144,115 @@ export class DurableObjectNamespaceScope extends Context.Service()("Cloudflare.D
|
|
|
142
144
|
* };
|
|
143
145
|
* ```
|
|
144
146
|
*
|
|
147
|
+
* @section Cross-Worker Binding
|
|
148
|
+
* A Durable Object is _hosted_ by exactly one Worker, but any
|
|
149
|
+
* number of other Workers can bind to the same DO. This is how
|
|
150
|
+
* you share state across Workers: one Worker hosts the DO, every
|
|
151
|
+
* other Worker addresses it by `scriptName` and gets a typed stub.
|
|
152
|
+
*
|
|
153
|
+
* To make this type-safe, the **host Worker** must declare the DO
|
|
154
|
+
* as part of its public contract via the third type argument to
|
|
155
|
+
* `Cloudflare.Worker<Self, Bindings, Deps>()`. `Deps` is the set
|
|
156
|
+
* of DO classes (or other Workers) the script exposes for other
|
|
157
|
+
* scripts to bind to.
|
|
158
|
+
*
|
|
159
|
+
* @example Host Worker declares the DO in its contract
|
|
160
|
+
* ```typescript
|
|
161
|
+
* // workerA.ts — hosts Counter
|
|
162
|
+
* import { Counter, CounterLive } from "./object.ts";
|
|
163
|
+
*
|
|
164
|
+
* // ^^^^^^^ declared as part of WorkerA's public contract
|
|
165
|
+
* export class WorkerA extends Cloudflare.Worker<WorkerA, {}, Counter>()(
|
|
166
|
+
* "WorkerA",
|
|
167
|
+
* { main: import.meta.filename },
|
|
168
|
+
* ) {}
|
|
169
|
+
*
|
|
170
|
+
* // WorkerA's Layer also provides the DO's Live implementation.
|
|
171
|
+
* export default WorkerA.make(
|
|
172
|
+
* Effect.gen(function* () {
|
|
173
|
+
* const counter = yield* Counter;
|
|
174
|
+
* return { fetch: Effect.gen(function* () { ... }) };
|
|
175
|
+
* }).pipe(Effect.provide(CounterLive)),
|
|
176
|
+
* );
|
|
177
|
+
* ```
|
|
178
|
+
*
|
|
179
|
+
* @example Consumer Worker binds the DO via `Counter.from(WorkerA)`
|
|
180
|
+
* ```typescript
|
|
181
|
+
* // workerB.ts — binds to the same Counter, hosted by WorkerA
|
|
182
|
+
* import { Counter } from "./object.ts";
|
|
183
|
+
* import { WorkerA } from "./workerA.ts";
|
|
184
|
+
*
|
|
185
|
+
* export default class WorkerB extends Cloudflare.Worker<WorkerB>()(
|
|
186
|
+
* "WorkerB",
|
|
187
|
+
* { main: import.meta.filename },
|
|
188
|
+
* Effect.gen(function* () {
|
|
189
|
+
* // ^^^^^^^^^^^^ scriptName-bound stub of WorkerA's Counter
|
|
190
|
+
* const counter = yield* Counter.from(WorkerA);
|
|
191
|
+
* return {
|
|
192
|
+
* fetch: Effect.gen(function* () {
|
|
193
|
+
* const value = yield* counter.getByName("shared").get();
|
|
194
|
+
* return HttpServerResponse.text(String(value));
|
|
195
|
+
* }),
|
|
196
|
+
* };
|
|
197
|
+
* }),
|
|
198
|
+
* ) {}
|
|
199
|
+
* ```
|
|
200
|
+
*
|
|
201
|
+
* :::tip
|
|
202
|
+
* The `, Counter` in `Worker<WorkerA, {}, Counter>` is what makes
|
|
203
|
+
* `Counter.from(WorkerA)` type-check. You can still bind across
|
|
204
|
+
* scripts without it (the runtime works either way), but consumers
|
|
205
|
+
* will get a TypeScript error because `WorkerA` doesn't declare
|
|
206
|
+
* `Counter` as part of its public contract.
|
|
207
|
+
* :::
|
|
208
|
+
*
|
|
209
|
+
* Only the host Worker's Stack provides `CounterLive` — the
|
|
210
|
+
* consumer Worker just imports the `Counter` class as a typed
|
|
211
|
+
* identifier. Rolldown tree-shakes `CounterLive` (and its
|
|
212
|
+
* dependencies) out of WorkerB's bundle.
|
|
213
|
+
*
|
|
214
|
+
* @section Using `.from(Self)` Inside the Host
|
|
215
|
+
* Inside the host Worker, `yield* Counter` and
|
|
216
|
+
* `yield* Counter.from(Self)` resolve to the same local namespace.
|
|
217
|
+
* The `.from(Self)` form is preferred — especially in code that
|
|
218
|
+
* may be extracted into a reusable Layer — because it makes the
|
|
219
|
+
* scriptName explicit and lets the same Layer shape work whether
|
|
220
|
+
* the consumer is the host or another script.
|
|
221
|
+
*
|
|
222
|
+
* @example `Counter.from(WorkerA)` inside WorkerA itself
|
|
223
|
+
* ```typescript
|
|
224
|
+
* // workerA.ts — host uses `.from(Self)` instead of bare `yield* Counter`
|
|
225
|
+
* export default WorkerA.make(
|
|
226
|
+
* Effect.gen(function* () {
|
|
227
|
+
* const counter = yield* Counter.from(WorkerA); // same as `yield* Counter`
|
|
228
|
+
* return { fetch: Effect.gen(function* () { ... }) };
|
|
229
|
+
* }).pipe(Effect.provide(CounterLive)),
|
|
230
|
+
* );
|
|
231
|
+
* ```
|
|
232
|
+
*
|
|
233
|
+
* A Worker can also host its **own isolated** namespace this way.
|
|
234
|
+
* If a second host Worker declares `Counter` in its contract and
|
|
235
|
+
* provides `CounterLive`, the DO instances under that script are
|
|
236
|
+
* separate from the original host's — same class, two namespaces.
|
|
237
|
+
*
|
|
238
|
+
* @example Two hosts, two isolated namespaces
|
|
239
|
+
* ```typescript
|
|
240
|
+
* // workerC.ts — another host of Counter, isolated from WorkerA
|
|
241
|
+
* export class WorkerC extends Cloudflare.Worker<WorkerC, {}, Counter>()(
|
|
242
|
+
* "WorkerC",
|
|
243
|
+
* { main: import.meta.filename },
|
|
244
|
+
* ) {}
|
|
245
|
+
*
|
|
246
|
+
* export default WorkerC.make(
|
|
247
|
+
* Effect.gen(function* () {
|
|
248
|
+
* // .from(WorkerC) binds to WorkerC's own Counter namespace —
|
|
249
|
+
* // writes here are NOT visible from WorkerA's Counter.
|
|
250
|
+
* const counter = yield* Counter.from(WorkerC);
|
|
251
|
+
* return { fetch: Effect.gen(function* () { ... }) };
|
|
252
|
+
* }).pipe(Effect.provide(CounterLive)),
|
|
253
|
+
* );
|
|
254
|
+
* ```
|
|
255
|
+
*
|
|
145
256
|
* @section RPC Methods
|
|
146
257
|
* Any function you return from the inner Effect becomes an RPC method
|
|
147
258
|
* that Workers can call through a stub. Methods must return an `Effect`.
|
|
@@ -358,7 +469,8 @@ export class DurableObjectNamespaceScope extends Context.Service()("Cloudflare.D
|
|
|
358
469
|
* runtime), declare Durable Objects in the `bindings` prop of the
|
|
359
470
|
* Worker resource. Pass a `DurableObjectNamespace` reference with a
|
|
360
471
|
* `className` matching the exported `DurableObject` subclass in your
|
|
361
|
-
* worker source file.
|
|
472
|
+
* worker source file. If `className` is omitted, it defaults to the
|
|
473
|
+
* namespace name. Use `Cloudflare.InferEnv` to get a fully typed
|
|
362
474
|
* `env` object that includes the namespace.
|
|
363
475
|
*
|
|
364
476
|
* @example Declaring a DO binding in the stack
|
|
@@ -371,9 +483,7 @@ export class DurableObjectNamespaceScope extends Context.Service()("Cloudflare.D
|
|
|
371
483
|
* export const Worker = Cloudflare.Worker("Worker", {
|
|
372
484
|
* main: "./src/worker.ts",
|
|
373
485
|
* bindings: {
|
|
374
|
-
* Counter: Cloudflare.DurableObjectNamespace<Counter>("Counter",
|
|
375
|
-
* className: "Counter",
|
|
376
|
-
* }),
|
|
486
|
+
* Counter: Cloudflare.DurableObjectNamespace<Counter>("Counter"),
|
|
377
487
|
* },
|
|
378
488
|
* });
|
|
379
489
|
* ```
|
|
@@ -399,78 +509,171 @@ export class DurableObjectNamespaceScope extends Context.Service()("Cloudflare.D
|
|
|
399
509
|
* }
|
|
400
510
|
* }
|
|
401
511
|
* ```
|
|
512
|
+
*
|
|
513
|
+
* @section Cross-Script Binding in an Async Worker
|
|
514
|
+
* Async Workers can also bind to a Durable Object hosted by another
|
|
515
|
+
* Worker script. The host Worker declares and exports the DO class. The
|
|
516
|
+
* consumer Worker declares a `DurableObjectNamespace` with `scriptName`
|
|
517
|
+
* set to the host Worker's script name.
|
|
518
|
+
*
|
|
519
|
+
* Cross-script async bindings are references only: the consumer uploads
|
|
520
|
+
* the binding metadata, but Alchemy does not drive class migrations for
|
|
521
|
+
* the foreign class. Deploy the host first so Cloudflare can verify that
|
|
522
|
+
* the target script exports the requested class.
|
|
523
|
+
*
|
|
524
|
+
* @example Host Worker owns the Durable Object class
|
|
525
|
+
* ```typescript
|
|
526
|
+
* const host = yield* Cloudflare.Worker("Host", {
|
|
527
|
+
* main: "./src/host.ts",
|
|
528
|
+
* bindings: {
|
|
529
|
+
* Counter: Cloudflare.DurableObjectNamespace<Counter>("Counter"),
|
|
530
|
+
* },
|
|
531
|
+
* });
|
|
532
|
+
* ```
|
|
533
|
+
*
|
|
534
|
+
* @example Consumer Worker binds to the host script
|
|
535
|
+
* ```typescript
|
|
536
|
+
* const consumer = yield* Cloudflare.Worker("Consumer", {
|
|
537
|
+
* main: "./src/consumer.ts",
|
|
538
|
+
* bindings: {
|
|
539
|
+
* Counter: Cloudflare.DurableObjectNamespace<Counter>("Counter", {
|
|
540
|
+
* scriptName: host.workerName,
|
|
541
|
+
* }),
|
|
542
|
+
* },
|
|
543
|
+
* });
|
|
544
|
+
* ```
|
|
545
|
+
*
|
|
546
|
+
* @example Binding to a different exported class name
|
|
547
|
+
* ```typescript
|
|
548
|
+
* const consumer = yield* Cloudflare.Worker("Consumer", {
|
|
549
|
+
* main: "./src/consumer.ts",
|
|
550
|
+
* bindings: {
|
|
551
|
+
* Counter: Cloudflare.DurableObjectNamespace<Counter>("Counter", {
|
|
552
|
+
* className: "CounterV2",
|
|
553
|
+
* scriptName: host.workerName,
|
|
554
|
+
* }),
|
|
555
|
+
* },
|
|
556
|
+
* });
|
|
557
|
+
* ```
|
|
402
558
|
*/
|
|
403
|
-
export const DurableObjectNamespace = taggedFunction(DurableObjectNamespaceScope, (
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
559
|
+
export const DurableObjectNamespace = taggedFunction(DurableObjectNamespaceScope, function (...args) {
|
|
560
|
+
if (args.length === 0) {
|
|
561
|
+
return (name, propsOrImpl) =>
|
|
562
|
+
// @ts-expect-error
|
|
563
|
+
DurableObjectNamespace(name, propsOrImpl, true);
|
|
564
|
+
}
|
|
565
|
+
const namespace = args[0];
|
|
566
|
+
const isClassForm = args[2] === true;
|
|
567
|
+
const propsOrImpl = args[1];
|
|
568
|
+
const tag = Context.Service(namespace);
|
|
569
|
+
const binding = (scriptName) => Effect.gen(function* () {
|
|
570
|
+
const worker = yield* Worker;
|
|
571
|
+
yield* worker.bind `${namespace}`({
|
|
572
|
+
// TODO(sam): automate class migrations, probably in the provider
|
|
573
|
+
bindings: [
|
|
574
|
+
{
|
|
575
|
+
type: "durable_object_namespace",
|
|
576
|
+
name: namespace,
|
|
577
|
+
className: namespace,
|
|
578
|
+
scriptName,
|
|
579
|
+
},
|
|
580
|
+
],
|
|
581
|
+
});
|
|
582
|
+
const binding = yield* Effect.all([
|
|
583
|
+
WorkerEnvironment,
|
|
584
|
+
ALCHEMY_PHASE,
|
|
585
|
+
]).pipe(Effect.flatMap(([env, phase]) => {
|
|
586
|
+
if (env === undefined || phase === "plan") {
|
|
587
|
+
// should be fine to return undefined here (it is only undefined at plantime)
|
|
588
|
+
return Effect.succeed(undefined);
|
|
589
|
+
}
|
|
590
|
+
const ns = env[namespace];
|
|
591
|
+
if (!ns) {
|
|
592
|
+
return Effect.die(new Error(`DurableObjectNamespace '${namespace}' not found`));
|
|
593
|
+
}
|
|
594
|
+
else if (typeof ns.getByName === "function") {
|
|
595
|
+
return Effect.succeed(ns);
|
|
596
|
+
}
|
|
597
|
+
else {
|
|
598
|
+
return Effect.die(new Error(`DurableObjectNamespace '${namespace}' is not a DurableObjectNamespace`));
|
|
599
|
+
}
|
|
600
|
+
}));
|
|
601
|
+
return {
|
|
602
|
+
Type: TypeId,
|
|
603
|
+
LogicalId: namespace,
|
|
604
|
+
name: namespace,
|
|
605
|
+
namespaceId: worker.durableObjectNamespaces.pipe(Output.map((durableObjectNamespaces) => durableObjectNamespaces?.[namespace])),
|
|
606
|
+
getByName: (name) => makeRpcStub(binding.getByName(name)),
|
|
607
|
+
// newUniqueId: () => use((ns) => ns.newUniqueId()),
|
|
608
|
+
// idFromName: (name: string) => use((ns) => ns.idFromName(name)),
|
|
609
|
+
// idFromString: (id: string) => use((ns) => ns.idFromString(id)),
|
|
610
|
+
// get: (
|
|
611
|
+
// id: cf.DurableObjectId,
|
|
612
|
+
// options?: cf.DurableObjectNamespaceGetDurableObjectOptions,
|
|
613
|
+
// ) => use((ns) => makeRpcStub(ns.get(id, options))),
|
|
614
|
+
// jurisdiction: (jurisdiction: cf.DurableObjectJurisdiction) =>
|
|
615
|
+
// use((ns) => ns.jurisdiction(jurisdiction) as any),
|
|
616
|
+
};
|
|
617
|
+
});
|
|
618
|
+
const make = Effect.fnUntraced(function* (impl) {
|
|
619
|
+
// Register the local DO binding (no `scriptName`) and obtain the
|
|
620
|
+
// namespace handle. We provide this same handle as
|
|
621
|
+
// `DurableObjectNamespaceScope` to the user's constructor effect
|
|
622
|
+
// and also return it so a `Layer.effect(tag, make(impl))` Layer
|
|
623
|
+
// resolves the tag to a concrete namespace value.
|
|
624
|
+
const self = yield* binding();
|
|
625
|
+
yield* (yield* Worker).export(namespace, {
|
|
626
|
+
kind: "durableObject",
|
|
627
|
+
// initialize the object's constructor (apply infra dependencies)
|
|
628
|
+
constructor: yield* impl.pipe(Effect.provideService(DurableObjectNamespaceScope, self)),
|
|
629
|
+
// grab the object's infra dependencies so we can apply them when calling the instance's methods
|
|
630
|
+
services: yield* Effect.context(),
|
|
631
|
+
});
|
|
632
|
+
return self;
|
|
633
|
+
});
|
|
634
|
+
if (!isClassForm && !Effect.isEffect(args[1])) {
|
|
635
|
+
// this is an in-line, async only DO (no implementation, props only)
|
|
636
|
+
return {
|
|
407
637
|
kind: TypeId,
|
|
408
|
-
name:
|
|
409
|
-
className: args[1]
|
|
410
|
-
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
}
|
|
446
|
-
else {
|
|
447
|
-
return Effect.die(new Error(`DurableObjectNamespace '${namespace}' is not a DurableObjectNamespace`));
|
|
448
|
-
}
|
|
449
|
-
}));
|
|
450
|
-
const namespaceId = worker.durableObjectNamespaces.pipe(Output.map((durableObjectNamespaces) => durableObjectNamespaces?.[namespace]));
|
|
451
|
-
const self = {
|
|
452
|
-
Type: TypeId,
|
|
453
|
-
LogicalId: namespace,
|
|
454
|
-
name: namespace,
|
|
455
|
-
namespaceId,
|
|
456
|
-
getByName: (name) => makeRpcStub(binding.getByName(name)),
|
|
457
|
-
// newUniqueId: () => use((ns) => ns.newUniqueId()),
|
|
458
|
-
// idFromName: (name: string) => use((ns) => ns.idFromName(name)),
|
|
459
|
-
// idFromString: (id: string) => use((ns) => ns.idFromString(id)),
|
|
460
|
-
// get: (
|
|
461
|
-
// id: cf.DurableObjectId,
|
|
462
|
-
// options?: cf.DurableObjectNamespaceGetDurableObjectOptions,
|
|
463
|
-
// ) => use((ns) => makeRpcStub(ns.get(id, options))),
|
|
464
|
-
// jurisdiction: (jurisdiction: cf.DurableObjectJurisdiction) =>
|
|
465
|
-
// use((ns) => ns.jurisdiction(jurisdiction) as any),
|
|
638
|
+
name: namespace,
|
|
639
|
+
className: args[1]?.className || namespace,
|
|
640
|
+
scriptName: args[1]?.scriptName,
|
|
641
|
+
};
|
|
642
|
+
}
|
|
643
|
+
else if (Effect.isEffect(propsOrImpl)) {
|
|
644
|
+
// inline Effect DO
|
|
645
|
+
return effectClass(Effect.tap(binding(), () => make(propsOrImpl)));
|
|
646
|
+
}
|
|
647
|
+
else {
|
|
648
|
+
// Tagged Effect DO. Yielding the class resolves the `tag`, which
|
|
649
|
+
// forces the `CounterLive` Layer (built by `Counter.make(impl)`) to
|
|
650
|
+
// run so `worker.export(namespace, …)` is invoked — without this,
|
|
651
|
+
// the class would never be registered with the Worker's exports
|
|
652
|
+
// map and the deployed bundle would have no DO class for
|
|
653
|
+
// Cloudflare to instantiate.
|
|
654
|
+
return class extends effectClass(tag) {
|
|
655
|
+
static make = (impl) => Layer.effect(tag, make(impl));
|
|
656
|
+
static from = (worker) => {
|
|
657
|
+
// Resolve `worker` to an Effect that yields the actual Worker
|
|
658
|
+
// instance (or a plain string scriptName).
|
|
659
|
+
//
|
|
660
|
+
// A class produced by `Cloudflare.Worker<T>()(...)` exposes
|
|
661
|
+
// `asEffect()` returning the Self tag — yielding that tag
|
|
662
|
+
// resolves to the live Worker instance whose `workerName`
|
|
663
|
+
// is a `PropExpr`, which is what we need so the engine can:
|
|
664
|
+
// 1) Track WorkerB → WorkerA as a binding-level upstream
|
|
665
|
+
// dependency (so WorkerA reconciles first).
|
|
666
|
+
// 2) Persist `scriptName` as a real value (not `undefined`)
|
|
667
|
+
// on the cross-script binding so the migration code in
|
|
668
|
+
// Worker.ts can detect it and skip emitting class
|
|
669
|
+
// migrations for the foreign class.
|
|
670
|
+
// Plain Effects and string literals are passed through as-is.
|
|
671
|
+
const resolved = typeof worker === "string"
|
|
672
|
+
? Effect.succeed(worker)
|
|
673
|
+
: asEffect(worker);
|
|
674
|
+
return resolved.pipe(Effect.flatMap((w) => binding(typeof w === "string" ? w : w.workerName)));
|
|
466
675
|
};
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
constructor: yield* impl.pipe(Effect.provideService(DurableObjectNamespaceScope, self)),
|
|
471
|
-
// grab the object's infra dependencies so we can apply them when calling the instance's methods
|
|
472
|
-
services: yield* Effect.context(),
|
|
473
|
-
});
|
|
474
|
-
return self;
|
|
475
|
-
}))));
|
|
676
|
+
};
|
|
677
|
+
}
|
|
678
|
+
});
|
|
476
679
|
//# sourceMappingURL=DurableObjectNamespace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DurableObjectNamespace.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/DurableObjectNamespace.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"DurableObjectNamespace.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/DurableObjectNamespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type * as cf from "@cloudflare/workers-types";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
|
-
import
|
|
4
|
-
import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest";
|
|
3
|
+
import * as Scope from "effect/Scope";
|
|
5
4
|
import * as Http from "../../Http.ts";
|
|
6
5
|
import { type WorkerServices } from "./Worker.ts";
|
|
7
6
|
export type HttpEffect = Http.HttpEffect<WorkerServices>;
|
|
8
|
-
export declare const makeRequestHandler: <Req = never>(handler: Http.HttpEffect<Req> | Effect.Effect<Http.HttpEffect<Req>>) => (event: any) =>
|
|
9
|
-
export declare const makeRequestEffect: <Req = never>(webRequest: cf.Request, handler: Http.HttpEffect<Req> | Effect.Effect<Http.HttpEffect<Req>>) =>
|
|
7
|
+
export declare const makeRequestHandler: <Req = never>(handler: Http.HttpEffect<Req> | Effect.Effect<Http.HttpEffect<Req>>) => (event: any) => any;
|
|
8
|
+
export declare const makeRequestEffect: <Req = never>(webRequest: cf.Request, handler: Http.HttpEffect<Req> | Effect.Effect<Http.HttpEffect<Req>>) => any;
|
|
9
|
+
declare const scopeEjected: unique symbol;
|
|
10
|
+
export declare const isScopeEjected: (scope: Scope.Scope) => scope is Scope.Scope & Record<typeof scopeEjected, unknown>;
|
|
11
|
+
export {};
|
|
10
12
|
//# sourceMappingURL=HttpServer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpServer.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/HttpServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"HttpServer.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/HttpServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjE,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEzD,eAAO,MAAM,kBAAkB,GAC5B,GAAG,GAAG,KAAK,EACV,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAEpE,OAAO,GAAG,QAGI,CAAC;AAElB,eAAO,MAAM,iBAAiB,GAAI,GAAG,GAAG,KAAK,EAC3C,YAAY,EAAE,CAAC,OAAO,EACtB,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAyB7D,GACP,CAAC;AAwBF,QAAA,MAAM,YAAY,eAAoD,CAAC;AAEvE,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK,CAAC,KAAK,gEAA0B,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as Deferred from "effect/Deferred";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
3
|
import * as Layer from "effect/Layer";
|
|
4
4
|
import * as Option from "effect/Option";
|
|
5
|
+
import * as Scope from "effect/Scope";
|
|
6
|
+
import * as EffectHttp from "effect/unstable/http/HttpEffect";
|
|
5
7
|
import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest";
|
|
6
8
|
import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
|
|
7
9
|
import * as Http from "../../Http.js";
|
|
@@ -21,22 +23,25 @@ export const makeRequestEffect = (webRequest, handler) => {
|
|
|
21
23
|
raw: webRequest.body,
|
|
22
24
|
}),
|
|
23
25
|
});
|
|
24
|
-
|
|
26
|
+
return yield* toHandledWebResponse(safeHandler).pipe(Effect.provide([
|
|
25
27
|
Layer.succeed(HttpServerRequest.HttpServerRequest, request),
|
|
26
28
|
Layer.succeed(Request, webRequest),
|
|
27
|
-
])
|
|
28
|
-
const message = Option.match(Cause.findErrorOption(cause), {
|
|
29
|
-
onNone: () => "Internal Server Error",
|
|
30
|
-
onSome: (error) => error instanceof Error && error.message
|
|
31
|
-
? error.message
|
|
32
|
-
: "Internal Server Error",
|
|
33
|
-
});
|
|
34
|
-
return Effect.succeed(HttpServerResponse.text(message, {
|
|
35
|
-
status: 500,
|
|
36
|
-
statusText: message,
|
|
37
|
-
}));
|
|
38
|
-
}));
|
|
39
|
-
return HttpServerResponse.toWeb(response);
|
|
29
|
+
]));
|
|
40
30
|
});
|
|
41
31
|
};
|
|
32
|
+
const toHandledWebResponse = (handler) => Effect.gen(function* () {
|
|
33
|
+
// `toHandled` exposes the final response through this callback, not its
|
|
34
|
+
// return value. Keep the assignment isolated here so callers get Response.
|
|
35
|
+
const context = yield* Effect.context();
|
|
36
|
+
const webResponse = yield* Deferred.make();
|
|
37
|
+
yield* EffectHttp.toHandled(handler, (request, response) => Deferred.succeed(webResponse,
|
|
38
|
+
// Conversion to web response with options matches `EffectHttp.toWebHandler`'s callback.
|
|
39
|
+
HttpServerResponse.toWeb(EffectHttp.scopeTransferToStream(response), {
|
|
40
|
+
withoutBody: request.method === "HEAD",
|
|
41
|
+
context,
|
|
42
|
+
})));
|
|
43
|
+
return yield* Deferred.await(webResponse);
|
|
44
|
+
});
|
|
45
|
+
const scopeEjected = Symbol.for("effect/http/HttpEffect/scopeEjected");
|
|
46
|
+
export const isScopeEjected = (scope) => scopeEjected in scope;
|
|
42
47
|
//# sourceMappingURL=HttpServer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpServer.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/HttpServer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"HttpServer.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/HttpServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type * as Effect from "effect/Effect";
|
|
2
|
+
import type { Redacted } from "effect/Redacted";
|
|
2
3
|
import type * as Stream from "effect/Stream";
|
|
3
4
|
import type { Rpc } from "../../Rpc.ts";
|
|
4
5
|
import type * as Cloudflare from "../index.ts";
|
|
5
6
|
import type { RpcErrorEnvelope, RpcStreamEnvelope } from "./Rpc.ts";
|
|
6
7
|
import type { Worker } from "./Worker.ts";
|
|
7
|
-
export type InferEnv<W> = W extends Effect.Effect<infer A, infer _E, infer _R> ? InferEnv<A> : W extends Worker<any> ? InferEnv<Exclude<W["Props"]["
|
|
8
|
+
export type InferEnv<W> = W extends Effect.Effect<infer A, infer _E, infer _R> ? InferEnv<A> : W extends Worker<any> ? InferEnv<Exclude<W["Props"]["env"], undefined>> : {
|
|
8
9
|
[k in keyof W]: GetBindingType<W[k]>;
|
|
9
10
|
};
|
|
10
|
-
export type GetBindingType<T> = T extends Effect.Effect<infer A, infer _E, infer _R> ? GetBindingType<A> : T extends Cloudflare.Assets ? Service : T extends Rpc<infer Shape extends object> ? RpcWireShape<Shape> & Service : T extends Cloudflare.D1Database ? D1Database : T extends Cloudflare.R2Bucket ? R2Bucket : T extends Cloudflare.KVNamespace ? KVNamespace : T extends Cloudflare.Queue ? Queue<unknown> : T extends Cloudflare.AiGateway ? Ai : T extends Cloudflare.SendEmail ? SendEmail : T extends Cloudflare.AnalyticsEngineDataset ? AnalyticsEngineDataset : T extends Cloudflare.Artifacts ? Artifacts : T extends Cloudflare.Images ? ImagesBinding : T extends Cloudflare.Hyperdrive ? Hyperdrive : T extends Cloudflare.DurableObjectNamespaceLike ? DurableObjectNamespace<Exclude<T["Shape"], undefined>> : T;
|
|
11
|
+
export type GetBindingType<T> = T extends Effect.Effect<infer A, infer _E, infer _R> ? GetBindingType<A> : T extends Cloudflare.Assets ? Service : T extends Rpc<infer Shape extends object> ? RpcWireShape<Shape> & Service : T extends Cloudflare.D1Database ? D1Database : T extends Cloudflare.R2Bucket ? R2Bucket : T extends Cloudflare.KVNamespace ? KVNamespace : T extends Cloudflare.Queue ? Queue<unknown> : T extends Cloudflare.AiGateway ? Ai : T extends Cloudflare.SendEmail ? SendEmail : T extends Cloudflare.AnalyticsEngineDataset ? AnalyticsEngineDataset : T extends Cloudflare.Artifacts ? Artifacts : T extends Cloudflare.Images ? ImagesBinding : T extends Cloudflare.BrowserRendering ? Fetcher : T extends Cloudflare.Hyperdrive ? Hyperdrive : T extends Cloudflare.DurableObjectNamespaceLike ? DurableObjectNamespace<Exclude<T["Shape"], undefined>> : T extends Redacted<any> ? string : T;
|
|
11
12
|
/**
|
|
12
13
|
* Cloudflare service-binding wire shape for an Effect-native Worker.
|
|
13
14
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InferEnv.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/InferEnv.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,KAAK,UAAU,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,MAAM,QAAQ,CAAC,CAAC,IACpB,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,GAChD,QAAQ,CAAC,CAAC,CAAC,GACX,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,GACnB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"InferEnv.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/InferEnv.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Runtime, type RuntimeServices } from "@distilled.cloud/cloudflare-runtime";
|
|
2
|
-
import { Assets, Hyperdrive } from "@distilled.cloud/cloudflare-runtime/bindings";
|
|
3
|
-
import * as
|
|
2
|
+
import { AnalyticsEngine, Assets, DispatchNamespace, Hyperdrive, RateLimit, SendEmail, Workflows } from "@distilled.cloud/cloudflare-runtime/bindings";
|
|
3
|
+
import * as WorkerProxy from "@distilled.cloud/cloudflare-runtime/proxy/WorkerProxy";
|
|
4
4
|
import * as Cause from "effect/Cause";
|
|
5
|
-
import * as Layer from "effect/Layer";
|
|
6
5
|
import * as Path from "effect/Path";
|
|
7
6
|
import * as Schema from "effect/Schema";
|
|
8
7
|
import * as Scope from "effect/Scope";
|
|
@@ -17,9 +16,7 @@ declare const WorkerValidationError_base: Schema.Class<WorkerValidationError, Sc
|
|
|
17
16
|
}>, Cause.YieldableError>;
|
|
18
17
|
export declare class WorkerValidationError extends WorkerValidationError_base {
|
|
19
18
|
}
|
|
20
|
-
export declare const localRuntimeServices: (
|
|
21
|
-
|
|
22
|
-
}) => Layer.Layer<import("@distilled.cloud/cloudflare-runtime/remote-bindings/RemoteBindings").RemoteBindings | Assets.Assets | import("@distilled.cloud/cloudflare-runtime/dev-registry/DevRegistryProxy").DevRegistryProxy | Hyperdrive.Hyperdrive | import("@distilled.cloud/cloudflare-runtime/globals/Loopback").Loopback | Runtime | LocalProxy.LocalProxy, import("effect/Config").ConfigError | import("effect/PlatformError").PlatformError | import("@distilled.cloud/cloudflare-runtime").ConfigError | import("@distilled.cloud/cloudflare-runtime").SystemError, import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/FileSystem").FileSystem | Path.Path | import("effect/unstable/http/HttpClient").HttpClient | AlchemyContext | import("@distilled.cloud/cloudflare").Credentials | CloudflareEnvironment>;
|
|
23
|
-
export declare const LocalWorkerProvider: () => Layer.Layer<import("../../Provider.ts").Provider<Worker<any>>, never, Scope.Scope | import("effect/FileSystem").FileSystem | Path.Path | AlchemyContext | Stack | CloudflareEnvironment | LocalProxy.LocalProxy | RuntimeServices>;
|
|
19
|
+
export declare const localRuntimeServices: () => import("effect/Layer").Layer<import("@distilled.cloud/cloudflare-runtime/remote-bindings/RemoteBindings").RemoteBindings | AnalyticsEngine.AnalyticsEngine | Assets.Assets | DispatchNamespace.DispatchNamespace | import("@distilled.cloud/cloudflare-runtime/dev-registry/DevRegistryProxy").DevRegistryProxy | Hyperdrive.Hyperdrive | RateLimit.RateLimit | SendEmail.SendEmail | Workflows.Workflows | Runtime | import("@distilled.cloud/cloudflare-runtime/globals/Loopback").Loopback | WorkerProxy.WorkerProxy, import("effect/Config").ConfigError | import("effect/PlatformError").PlatformError | import("@distilled.cloud/cloudflare-runtime").SystemError, import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/FileSystem").FileSystem | Path.Path | import("effect/unstable/http/HttpClient").HttpClient | AlchemyContext | import("@distilled.cloud/cloudflare").Credentials | CloudflareEnvironment>;
|
|
20
|
+
export declare const LocalWorkerProvider: () => import("effect/Layer").Layer<import("../../Provider.ts").Provider<Worker<any>>, never, Scope.Scope | import("effect/FileSystem").FileSystem | Path.Path | AlchemyContext | import("../../Stage.ts").Stage | Stack | CloudflareEnvironment | WorkerProxy.WorkerProxy | RuntimeServices>;
|
|
24
21
|
export {};
|
|
25
22
|
//# sourceMappingURL=LocalWorkerProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalWorkerProvider.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/LocalWorkerProvider.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"LocalWorkerProvider.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/LocalWorkerProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAQP,KAAK,eAAe,EACrB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAEL,eAAe,EAEf,MAAM,EAIN,iBAAiB,EAEjB,UAAU,EAOV,SAAS,EACT,SAAS,EAOT,SAAS,EACV,MAAM,8CAA8C,CAAC;AACtD,OAAO,KAAK,WAAW,MAAM,uDAAuD,CAAC;AACrF,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAMtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAGpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAKzD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAIpE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;;;;;;AAMrC,qBAAa,qBAAsB,SAAQ,0BAO1C;CAAG;AAEJ,eAAO,MAAM,oBAAoB,o6BAe9B,CAAC;AAEJ,eAAO,MAAM,mBAAmB,8RA6X7B,CAAC"}
|