alchemy 2.0.0-beta.40 → 2.0.0-beta.41
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 +16 -3
- package/bin/exec.js.map +1 -1
- package/lib/AWS/EC2/hosted.js +1 -1
- package/lib/AWS/EC2/hosted.js.map +1 -1
- package/lib/AWS/ECS/Task.js +1 -1
- package/lib/AWS/ECS/Task.js.map +1 -1
- package/lib/AWS/Lambda/BucketEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/BucketEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/EventBridgeEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/Function.js +1 -1
- package/lib/AWS/Lambda/Function.js.map +1 -1
- package/lib/AWS/Lambda/QueueEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/QueueEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/StreamEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/StreamEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/TableEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/TableEventSource.d.ts.map +1 -1
- package/lib/AWS/Lambda/TopicEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/TopicEventSource.d.ts.map +1 -1
- package/lib/Apply.d.ts.map +1 -1
- package/lib/Apply.js +41 -7
- package/lib/Apply.js.map +1 -1
- package/lib/Cloudflare/Bridge.d.ts +1 -0
- package/lib/Cloudflare/Bridge.d.ts.map +1 -1
- package/lib/Cloudflare/Bridge.js +1 -0
- package/lib/Cloudflare/Bridge.js.map +1 -1
- package/lib/Cloudflare/Container/ContainerApplication.js +1 -1
- package/lib/Cloudflare/Container/ContainerApplication.js.map +1 -1
- package/lib/Cloudflare/Container/ContainerBinding.d.ts +1 -1
- package/lib/Cloudflare/Container/ContainerBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Container/ContainerBinding.js +1 -1
- package/lib/Cloudflare/Container/ContainerBinding.js.map +1 -1
- package/lib/Cloudflare/Fetcher.d.ts +9 -0
- package/lib/Cloudflare/Fetcher.d.ts.map +1 -1
- package/lib/Cloudflare/Fetcher.js +20 -1
- package/lib/Cloudflare/Fetcher.js.map +1 -1
- package/lib/Cloudflare/Local/SidecarHandlers.d.ts.map +1 -1
- package/lib/Cloudflare/Local/SidecarHandlers.js +1 -1
- package/lib/Cloudflare/Local/SidecarHandlers.js.map +1 -1
- package/lib/Cloudflare/StateStore/Api.d.ts +2 -2
- package/lib/Cloudflare/Website/StaticSite.d.ts +5 -4
- package/lib/Cloudflare/Website/StaticSite.d.ts.map +1 -1
- package/lib/Cloudflare/Website/StaticSite.js.map +1 -1
- package/lib/Cloudflare/Website/Vite.d.ts +4 -4
- package/lib/Cloudflare/Website/Vite.d.ts.map +1 -1
- package/lib/Cloudflare/Website/Vite.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts +17 -0
- package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/DurableObjectBridge.js +86 -0
- package/lib/Cloudflare/Workers/DurableObjectBridge.js.map +1 -0
- package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts +2 -1
- package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectNamespace.js +10 -39
- package/lib/Cloudflare/Workers/DurableObjectNamespace.js.map +1 -1
- package/lib/Cloudflare/Workers/HttpServer.d.ts +2 -8
- package/lib/Cloudflare/Workers/HttpServer.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/HttpServer.js +29 -33
- package/lib/Cloudflare/Workers/HttpServer.js.map +1 -1
- package/lib/Cloudflare/Workers/InferEnv.d.ts +5 -24
- package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Rpc.d.ts +0 -101
- package/lib/Cloudflare/Workers/Rpc.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Rpc.js +9 -286
- package/lib/Cloudflare/Workers/Rpc.js.map +1 -1
- package/lib/Cloudflare/Workers/RpcAsync.d.ts +8 -0
- package/lib/Cloudflare/Workers/RpcAsync.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/RpcAsync.js +45 -0
- package/lib/Cloudflare/Workers/RpcAsync.js.map +1 -0
- package/lib/Cloudflare/Workers/Worker.d.ts +16 -162
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +49 -354
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts +8 -0
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +129 -0
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -0
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts +154 -0
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/WorkerBinding.js +51 -0
- package/lib/Cloudflare/Workers/WorkerBinding.js.map +1 -0
- package/lib/Cloudflare/Workers/WorkerBridge.d.ts +35 -0
- package/lib/Cloudflare/Workers/WorkerBridge.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/WorkerBridge.js +149 -0
- package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -0
- package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBundle.js +18 -84
- package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.d.ts +8 -0
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.js +113 -0
- package/lib/Cloudflare/Workers/WorkerRuntimeContext.js.map +1 -0
- package/lib/Cloudflare/Workers/WorkflowBridge.d.ts +26 -0
- package/lib/Cloudflare/Workers/WorkflowBridge.d.ts.map +1 -0
- package/lib/Cloudflare/Workers/WorkflowBridge.js +41 -0
- package/lib/Cloudflare/Workers/WorkflowBridge.js.map +1 -0
- package/lib/Cloudflare/Workers/index.d.ts +4 -0
- package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/index.js +4 -0
- package/lib/Cloudflare/Workers/index.js.map +1 -1
- package/lib/Cloudflare/index.d.ts +4 -2
- package/lib/Cloudflare/index.d.ts.map +1 -1
- package/lib/Cloudflare/index.js +4 -2
- package/lib/Cloudflare/index.js.map +1 -1
- package/lib/Neon/Project.d.ts.map +1 -1
- package/lib/Neon/Project.js +2 -1
- package/lib/Neon/Project.js.map +1 -1
- package/lib/Platform.d.ts +3 -4
- package/lib/Platform.d.ts.map +1 -1
- package/lib/Platform.js.map +1 -1
- package/lib/Rpc.d.ts +17 -0
- package/lib/Rpc.d.ts.map +1 -0
- package/lib/Rpc.js +1 -0
- package/lib/Rpc.js.map +1 -0
- package/lib/RuntimeContext.d.ts +1 -0
- package/lib/RuntimeContext.d.ts.map +1 -1
- package/lib/RuntimeContext.js.map +1 -1
- package/lib/Sidecar/RpcHandler.d.ts.map +1 -1
- package/lib/Sidecar/RpcHandler.js +13 -9
- package/lib/Sidecar/RpcHandler.js.map +1 -1
- package/lib/State/HttpStateApi.d.ts +10 -0
- package/lib/State/HttpStateApi.d.ts.map +1 -1
- package/lib/State/HttpStateApi.js +10 -0
- package/lib/State/HttpStateApi.js.map +1 -1
- package/lib/State/HttpStateStore.d.ts.map +1 -1
- package/lib/State/HttpStateStore.js +2 -1
- package/lib/State/HttpStateStore.js.map +1 -1
- package/lib/State/InMemoryState.d.ts.map +1 -1
- package/lib/State/InMemoryState.js +2 -0
- package/lib/State/InMemoryState.js.map +1 -1
- package/lib/State/LocalState.d.ts.map +1 -1
- package/lib/State/LocalState.js +2 -0
- package/lib/State/LocalState.js.map +1 -1
- package/lib/State/State.d.ts +8 -0
- package/lib/State/State.d.ts.map +1 -1
- package/lib/State/StateEncoding.d.ts.map +1 -1
- package/lib/State/StateEncoding.js +5 -1
- package/lib/State/StateEncoding.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/Apply.ts +44 -10
- package/src/Cli/Event.ts +1 -1
- package/src/Cloudflare/Bridge.ts +1 -0
- package/src/Cloudflare/Container/ContainerBinding.ts +1 -1
- package/src/Cloudflare/Fetcher.ts +38 -1
- package/src/Cloudflare/Local/SidecarHandlers.ts +3 -6
- package/src/Cloudflare/Website/StaticSite.ts +10 -5
- package/src/Cloudflare/Website/Vite.ts +7 -4
- package/src/Cloudflare/Workers/DurableObjectBridge.ts +180 -0
- package/src/Cloudflare/Workers/DurableObjectNamespace.ts +22 -70
- package/src/Cloudflare/Workers/HttpServer.ts +25 -39
- package/src/Cloudflare/Workers/InferEnv.ts +42 -78
- package/src/Cloudflare/Workers/Rpc.ts +18 -417
- package/src/Cloudflare/Workers/RpcAsync.ts +63 -0
- package/src/Cloudflare/Workers/Worker.ts +107 -548
- package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +149 -0
- package/src/Cloudflare/Workers/WorkerBinding.ts +103 -0
- package/src/Cloudflare/Workers/WorkerBridge.ts +304 -0
- package/src/Cloudflare/Workers/WorkerBundle.ts +17 -83
- package/src/Cloudflare/Workers/WorkerRuntimeContext.ts +164 -0
- package/src/Cloudflare/Workers/WorkflowBridge.ts +92 -0
- package/src/Cloudflare/Workers/index.ts +4 -0
- package/src/Cloudflare/index.ts +4 -2
- package/src/Neon/Project.ts +3 -1
- package/src/Platform.ts +3 -4
- package/src/Rpc.ts +25 -0
- package/src/RuntimeContext.ts +1 -0
- package/src/Sidecar/RpcHandler.ts +18 -9
- package/src/State/HttpStateApi.ts +11 -0
- package/src/State/HttpStateStore.ts +7 -2
- package/src/State/InMemoryState.ts +2 -0
- package/src/State/LocalState.ts +2 -0
- package/src/State/State.ts +8 -0
- package/src/State/StateEncoding.ts +8 -1
- package/src/index.ts +7 -6
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Redacted from "effect/Redacted";
|
|
2
3
|
import { Command, type CommandProps } from "../../Build/Command.ts";
|
|
3
4
|
import type { InputProps } from "../../Input.ts";
|
|
4
5
|
import type { AssetsConfig } from "../Workers/Assets.ts";
|
|
5
|
-
import { Worker, type WorkerAssetsConfig, type WorkerBindingProps, type WorkerProps } from "../Workers/Worker.ts";
|
|
6
|
-
export interface StaticSiteProps<Bindings extends WorkerBindingProps = {}> extends Omit<WorkerProps<Bindings, WorkerAssetsConfig>, "assets">, Omit<CommandProps, "env"> {
|
|
6
|
+
import { Worker, type WorkerAssetsConfig, type WorkerBindingProps, type WorkerEnv, type WorkerProps } from "../Workers/Worker.ts";
|
|
7
|
+
export interface StaticSiteProps<Bindings extends WorkerBindingProps = {}, Env extends WorkerEnv = WorkerEnv> extends Omit<WorkerProps<Bindings, Env, WorkerAssetsConfig>, "assets">, Omit<CommandProps, "env"> {
|
|
7
8
|
/**
|
|
8
9
|
* Optional configuration for static asset routing behavior.
|
|
9
10
|
* Supports `runWorkerFirst`, `htmlHandling`, `notFoundHandling`, etc.
|
|
@@ -101,9 +102,9 @@ export type StaticSite = ReturnType<typeof StaticSite>;
|
|
|
101
102
|
* });
|
|
102
103
|
* ```
|
|
103
104
|
*/
|
|
104
|
-
export declare const StaticSite: <const Bindings extends WorkerBindingProps = {}, Req = never>(id: string, propsEff: InputProps<StaticSiteProps<Bindings>> | Effect.Effect<InputProps<StaticSiteProps<Bindings>>, never, Req>) => Effect.Effect<Worker<{ [binding in keyof ({ [B in keyof Bindings]: Bindings[B] extends Effect.Effect<infer T extends import("../index.ts").WorkerBindingResource, any, any> ? T : Extract<Bindings[B], import("../index.ts").WorkerBindingResource>; } & {
|
|
105
|
+
export declare const StaticSite: <const Bindings extends WorkerBindingProps = {}, const Env extends WorkerEnv = WorkerEnv, Req = never>(id: string, propsEff: InputProps<StaticSiteProps<Bindings, Env>> | Effect.Effect<InputProps<StaticSiteProps<Bindings, Env>>, never, Req>) => Effect.Effect<Worker<{ [binding in keyof ({ [B in keyof Bindings]: Bindings[B] extends Effect.Effect<infer T extends import("../index.ts").WorkerBindingResource, any, any> ? T : Extract<Bindings[B], import("../index.ts").WorkerBindingResource>; } & {
|
|
105
106
|
ASSETS: import("../index.ts").Assets;
|
|
106
107
|
})]: ({ [B in keyof Bindings]: Bindings[B] extends Effect.Effect<infer T extends import("../index.ts").WorkerBindingResource, any, any> ? T : Extract<Bindings[B], import("../index.ts").WorkerBindingResource>; } & {
|
|
107
108
|
ASSETS: import("../index.ts").Assets;
|
|
108
|
-
})[binding]; }>, never, import("../../Provider.ts").Provider<Command> | import("../Providers.ts").Providers | Req>;
|
|
109
|
+
})[binding]; } & { [K in keyof Env]: Env[K] extends Redacted.Redacted<infer T> ? T : Env[K]; }>, never, import("../../Provider.ts").Provider<Command> | import("../Providers.ts").Providers | Req>;
|
|
109
110
|
//# sourceMappingURL=StaticSite.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticSite.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Website/StaticSite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"StaticSite.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Website/StaticSite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,MAAM,EACN,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,eAAe,CAC9B,QAAQ,SAAS,kBAAkB,GAAG,EAAE,EACxC,GAAG,SAAS,SAAS,GAAG,SAAS,CAEjC,SACE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,kBAAkB,CAAC,EAAE,QAAQ,CAAC,EAC9D,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,GAAG,CAAC,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AACH,eAAO,MAAM,UAAU,GACrB,KAAK,CAAC,QAAQ,SAAS,kBAAkB,GAAG,EAAE,EAC9C,KAAK,CAAC,GAAG,SAAS,SAAS,GAAG,SAAS,EACvC,GAAG,GAAG,KAAK,EAEX,IAAI,MAAM,EACV,UACI,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAC1C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC;;;;kMAuC9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticSite.js","sourceRoot":"","sources":["../../../src/Cloudflare/Website/StaticSite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAqB,MAAM,wBAAwB,CAAC;AAEpE,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EACL,MAAM,
|
|
1
|
+
{"version":3,"file":"StaticSite.js","sourceRoot":"","sources":["../../../src/Cloudflare/Website/StaticSite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAqB,MAAM,wBAAwB,CAAC;AAEpE,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EACL,MAAM,GAKP,MAAM,sBAAsB,CAAC;AAqB9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAKxB,EAAU,EACV,QAEyE,EACzE,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACrC,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7B,oCAAoC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,OAAO,CAC1B,OAAO,EACP,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,EAAE,KAAK,CAAC,GAAG;YACZ,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC3C,IAAI,CAAC,KAAK,SAAS;oBAAE,OAAO,EAAE,CAAC;gBAC/B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;oBACjD,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClB,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC,CAAC,CACH;YACH,CAAC,CAAC,SAAS;KACd,CAAC,CAAC,CACJ,CAAC;IAEF,OAAO,KAAK,CAAC,CAAC,MAAM,CAClB,QAAQ,EACR,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B,GAAG,KAAK;QACR,MAAM,EAAE;YACN,IAAI,EAAE,KAAK,CAAC,MAAM;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,YAAY;SAC3B;KACF,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import type { MemoOptions } from "../../Build/Memo.ts";
|
|
3
3
|
import type { InputProps } from "../../Input.ts";
|
|
4
|
-
import { Worker, type WorkerBindingProps, type WorkerProps } from "../Workers/Worker.ts";
|
|
5
|
-
export interface ViteProps<Bindings extends WorkerBindingProps = {}> extends Omit<WorkerProps<Bindings>, "vite" | "main"> {
|
|
4
|
+
import { Worker, type WorkerBindingProps, type WorkerEnv, type WorkerProps } from "../Workers/Worker.ts";
|
|
5
|
+
export interface ViteProps<Bindings extends WorkerBindingProps = {}, Env extends WorkerEnv = {}> extends Omit<WorkerProps<Bindings, Env>, "vite" | "main"> {
|
|
6
6
|
/**
|
|
7
7
|
* Root directory passed to Vite's `root` option.
|
|
8
8
|
* Defaults to the current working directory (`process.cwd()`).
|
|
@@ -98,9 +98,9 @@ export interface ViteProps<Bindings extends WorkerBindingProps = {}> extends Omi
|
|
|
98
98
|
* });
|
|
99
99
|
* ```
|
|
100
100
|
*/
|
|
101
|
-
export declare const Vite: <const Bindings extends WorkerBindingProps = {}, Req = never>(id: string, propsEff?: InputProps<ViteProps<Bindings>> | Effect.Effect<InputProps<ViteProps<Bindings>>, never, Req>) => Effect.Effect<Worker<{ [binding in keyof ({ [B in keyof Bindings]: Bindings[B] extends Effect.Effect<infer T extends import("../index.ts").WorkerBindingResource, any, any> ? T : Extract<Bindings[B], import("../index.ts").WorkerBindingResource>; } & {
|
|
101
|
+
export declare const Vite: <const Bindings extends WorkerBindingProps = {}, const Env extends WorkerEnv = {}, Req = never>(id: string, propsEff?: InputProps<ViteProps<Bindings, Env>> | Effect.Effect<InputProps<ViteProps<Bindings, Env>>, never, Req>) => Effect.Effect<Worker<{ [binding in keyof ({ [B in keyof Bindings]: Bindings[B] extends Effect.Effect<infer T extends import("../index.ts").WorkerBindingResource, any, any> ? T : Extract<Bindings[B], import("../index.ts").WorkerBindingResource>; } & {
|
|
102
102
|
ASSETS: import("../index.ts").Assets;
|
|
103
103
|
})]: ({ [B in keyof Bindings]: Bindings[B] extends Effect.Effect<infer T extends import("../index.ts").WorkerBindingResource, any, any> ? T : Extract<Bindings[B], import("../index.ts").WorkerBindingResource>; } & {
|
|
104
104
|
ASSETS: import("../index.ts").Assets;
|
|
105
|
-
})[binding]; }>, never, import("../Providers.ts").Providers | Req>;
|
|
105
|
+
})[binding]; } & { [K in keyof Env]: Env[K] extends import("effect/Redacted").Redacted<infer T> ? T : Env[K]; }>, never, import("../Providers.ts").Providers | Req>;
|
|
106
106
|
//# sourceMappingURL=Vite.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vite.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Website/Vite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,MAAM,EAEN,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,SAAS,CACxB,QAAQ,SAAS,kBAAkB,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"Vite.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Website/Vite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,MAAM,EAEN,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,SAAS,CACxB,QAAQ,SAAS,kBAAkB,GAAG,EAAE,EACxC,GAAG,SAAS,SAAS,GAAG,EAAE,CAC1B,SAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzD;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,eAAO,MAAM,IAAI,GACf,KAAK,CAAC,QAAQ,SAAS,kBAAkB,GAAG,EAAE,EAC9C,KAAK,CAAC,GAAG,SAAS,SAAS,GAAG,EAAE,EAChC,GAAG,GAAG,KAAK,EAEX,IAAI,MAAM,EACV,WACI,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GACpC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC;;;;mKAelE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vite.js","sourceRoot":"","sources":["../../../src/Cloudflare/Website/Vite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EACL,MAAM,
|
|
1
|
+
{"version":3,"file":"Vite.js","sourceRoot":"","sources":["../../../src/Cloudflare/Website/Vite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EACL,MAAM,GAKP,MAAM,sBAAsB,CAAC;AAqB9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAKlB,EAAU,EACV,QAEmE,EACnE,EAAE,CACF,MAAM,CACJ,EAAE,EACF,MAAM,CAAC,GAAG,CACR,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAC/D,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACV,GAAG,KAAK;IACR,IAAI,EAAE,SAAU;IAChB,IAAI,EAAE;QACJ,OAAO,EAAE,KAAK,EAAE,OAAO;QACvB,IAAI,EAAE,KAAK,EAAE,IAAI;KAClB;CACF,CAAC,CACH,CACF,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { DurableObject as DurableObjectClass } from "cloudflare:workers";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
/**
|
|
4
|
+
* Create a DurableObjectBridge class that proxies RPC method calls through
|
|
5
|
+
* the Effect runtime, encoding success/fail/stream results as RPC envelopes.
|
|
6
|
+
*
|
|
7
|
+
* Accepts the `DurableObject` base class and a `getExport` resolver so the
|
|
8
|
+
* implementation lives in real TypeScript instead of a generated string template.
|
|
9
|
+
*/
|
|
10
|
+
export declare const makeDurableObjectBridge: (DurableObject: typeof DurableObjectClass, { entrypoint, stack, }: {
|
|
11
|
+
entrypoint: Effect.Effect<Record<string, any>>;
|
|
12
|
+
stack: {
|
|
13
|
+
name: string;
|
|
14
|
+
stage: string;
|
|
15
|
+
};
|
|
16
|
+
}) => (className: string) => any;
|
|
17
|
+
//# sourceMappingURL=DurableObjectBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DurableObjectBridge.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/DurableObjectBridge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG9E,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAkBxC;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAEhC,eAAe,OAAO,kBAAkB,EACxC,wBAGG;IACD,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/C,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,MAEF,WAAW,MAAM,KAwIX,GAAG,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import * as Cause from "effect/Cause";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Exit from "effect/Exit";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
import * as Scope from "effect/Scope";
|
|
6
|
+
import { HttpServerResponse } from "effect/unstable/http";
|
|
7
|
+
import { DurableObjectState, fromDurableObjectState, } from "./DurableObjectState.js";
|
|
8
|
+
import { makeRequestEffect } from "./HttpServer.js";
|
|
9
|
+
import { fromWebSocket } from "./WebSocket.js";
|
|
10
|
+
import { getWorkerExport, handleRpcExit } from "./WorkerBridge.js";
|
|
11
|
+
/**
|
|
12
|
+
* Create a DurableObjectBridge class that proxies RPC method calls through
|
|
13
|
+
* the Effect runtime, encoding success/fail/stream results as RPC envelopes.
|
|
14
|
+
*
|
|
15
|
+
* Accepts the `DurableObject` base class and a `getExport` resolver so the
|
|
16
|
+
* implementation lives in real TypeScript instead of a generated string template.
|
|
17
|
+
*/
|
|
18
|
+
export const makeDurableObjectBridge = (DurableObject, { entrypoint, stack, }) => (className) => class DurableObjectBridge extends DurableObject {
|
|
19
|
+
#state;
|
|
20
|
+
#globalContext;
|
|
21
|
+
#exported;
|
|
22
|
+
#instance;
|
|
23
|
+
constructor(state, env) {
|
|
24
|
+
super(state, env);
|
|
25
|
+
this.#state = state;
|
|
26
|
+
const { globalContext, exported } = getWorkerExport({
|
|
27
|
+
entrypoint,
|
|
28
|
+
stack,
|
|
29
|
+
exportName: className,
|
|
30
|
+
});
|
|
31
|
+
this.#globalContext = globalContext;
|
|
32
|
+
this.#exported = exported;
|
|
33
|
+
this.#instance = state.blockConcurrencyWhile(() => this.#exported.pipe(Effect.flatMap(({ constructor, services }) => constructor.pipe(Effect.provide(Layer.succeed(DurableObjectState, fromDurableObjectState(this.#state)).pipe(Layer.provideMerge(Layer.succeedContext(services)))), Effect.map((instance) => ({ instance, services })))), Effect.provide(this.#globalContext), Effect.runPromise));
|
|
34
|
+
return new Proxy(this, {
|
|
35
|
+
get: (target, prop) => {
|
|
36
|
+
console.log(target, prop, prop in target);
|
|
37
|
+
const bind = (f) => typeof f === "function" ? f.bind(target) : f;
|
|
38
|
+
if (typeof prop !== "string")
|
|
39
|
+
return bind(target[prop]);
|
|
40
|
+
if (prop in target)
|
|
41
|
+
return bind(target[prop]);
|
|
42
|
+
return async (...args) => this.#execute((instance) => {
|
|
43
|
+
const method = instance[prop];
|
|
44
|
+
if (typeof method === "function") {
|
|
45
|
+
return method(...args);
|
|
46
|
+
}
|
|
47
|
+
else if (Effect.isEffect(method)) {
|
|
48
|
+
return method;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
return Effect.succeed(method);
|
|
52
|
+
}
|
|
53
|
+
}, handleRpcExit);
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
async #execute(fn, onExit) {
|
|
58
|
+
const scope = Scope.makeUnsafe();
|
|
59
|
+
const { instance, services } = await this.#instance;
|
|
60
|
+
return fn(instance)
|
|
61
|
+
.pipe(Effect.provide(Layer.succeed(DurableObjectState, fromDurableObjectState(this.#state)).pipe(Layer.provideMerge(Layer.succeed(Scope.Scope, scope)), Layer.provideMerge(Layer.succeedContext(services)), Layer.provideMerge(this.#globalContext))), Effect.runPromiseExit)
|
|
62
|
+
.then(onExit ??
|
|
63
|
+
((exit) => exit._tag === "Success"
|
|
64
|
+
? Promise.resolve(exit.value)
|
|
65
|
+
: Promise.reject(Cause.squash(exit.cause))))
|
|
66
|
+
.finally(() => Scope.close(scope, Exit.void).pipe(Effect.runPromise, (promise) => this.#state.waitUntil(promise)));
|
|
67
|
+
}
|
|
68
|
+
async fetch(request) {
|
|
69
|
+
return this.#execute((instance) => instance.fetch
|
|
70
|
+
? makeRequestEffect(request, instance.fetch)
|
|
71
|
+
: Effect.succeed(HttpServerResponse.text("Not implemented", {
|
|
72
|
+
status: 404,
|
|
73
|
+
})));
|
|
74
|
+
}
|
|
75
|
+
async alarm(alarmInfo) {
|
|
76
|
+
return this.#execute((instance) => instance.alarm(alarmInfo));
|
|
77
|
+
}
|
|
78
|
+
async webSocketMessage(ws, message) {
|
|
79
|
+
return this.#execute((instance) => instance.webSocketMessage?.(fromWebSocket(ws), message) ??
|
|
80
|
+
Effect.void);
|
|
81
|
+
}
|
|
82
|
+
async webSocketClose(ws, code, reason, wasClean) {
|
|
83
|
+
return this.#execute((instance) => instance.webSocketClose?.(fromWebSocket(ws), code, reason, wasClean) ?? Effect.void);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=DurableObjectBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DurableObjectBridge.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/DurableObjectBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,8 @@ import { type DurableWebSocket } from "./WebSocket.ts";
|
|
|
12
12
|
import { Worker, WorkerEnvironment, type WorkerServices } from "./Worker.ts";
|
|
13
13
|
export interface DurableObjectExport {
|
|
14
14
|
readonly kind: "durableObject";
|
|
15
|
-
readonly
|
|
15
|
+
readonly constructor: Effect.Effect<DurableObjectShape, never, DurableObjectState>;
|
|
16
|
+
readonly services: Context.Context<never>;
|
|
16
17
|
}
|
|
17
18
|
export declare const isDurableObjectExport: (value: unknown) => value is DurableObjectExport;
|
|
18
19
|
export type DurableObjectId = cf.DurableObjectId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DurableObjectNamespace.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/DurableObjectNamespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,iBAAiB,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,kBAAkB,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,
|
|
1
|
+
{"version":3,"file":"DurableObjectNamespace.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/DurableObjectNamespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,19 +5,13 @@ import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest";
|
|
|
5
5
|
import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
|
|
6
6
|
import * as Output from "../../Output.js";
|
|
7
7
|
import { effectClass, taggedFunction } from "../../Util/effect.js";
|
|
8
|
-
import { DurableObjectState
|
|
8
|
+
import { DurableObjectState } from "./DurableObjectState.js";
|
|
9
9
|
import { makeRpcStub } from "./Rpc.js";
|
|
10
10
|
import {} from "./WebSocket.js";
|
|
11
11
|
import { Worker, WorkerEnvironment } from "./Worker.js";
|
|
12
|
-
export const isDurableObjectExport = (value) => typeof value === "object" &&
|
|
13
|
-
value !== null &&
|
|
14
|
-
"kind" in value &&
|
|
15
|
-
value.kind === "durableObject";
|
|
12
|
+
export const isDurableObjectExport = (value) => typeof value === "object" && value?.kind === "durableObject";
|
|
16
13
|
const TypeId = "Cloudflare.DurableObjectNamespace";
|
|
17
|
-
export const isDurableObjectNamespaceLike = (value) => typeof value === "object" &&
|
|
18
|
-
value !== null &&
|
|
19
|
-
"kind" in value &&
|
|
20
|
-
value.kind === TypeId;
|
|
14
|
+
export const isDurableObjectNamespaceLike = (value) => typeof value === "object" && value?.kind === TypeId;
|
|
21
15
|
export class DurableObjectNamespaceScope extends Context.Service()("Cloudflare.DurableObjectNamespace") {
|
|
22
16
|
}
|
|
23
17
|
/**
|
|
@@ -434,35 +428,6 @@ export const DurableObjectNamespace = taggedFunction(DurableObjectNamespaceScope
|
|
|
434
428
|
},
|
|
435
429
|
],
|
|
436
430
|
});
|
|
437
|
-
const services = yield* Effect.context();
|
|
438
|
-
yield* worker.export(namespace, {
|
|
439
|
-
kind: "durableObject",
|
|
440
|
-
make: (state, env) => {
|
|
441
|
-
const doState = fromDurableObjectState(state);
|
|
442
|
-
return constructor.pipe(Effect.provideContext(services), Effect.provideService(DurableObjectState, doState), Effect.provideService(WorkerEnvironment, env), Effect.map((methods) => {
|
|
443
|
-
const wrapped = {};
|
|
444
|
-
for (const key of Object.getOwnPropertyNames(methods)) {
|
|
445
|
-
const value = methods[key];
|
|
446
|
-
if (Effect.isEffect(value)) {
|
|
447
|
-
wrapped[key] = value.pipe(Effect.provideService(DurableObjectState, doState));
|
|
448
|
-
}
|
|
449
|
-
else if (typeof value === "function") {
|
|
450
|
-
wrapped[key] = (...args) => {
|
|
451
|
-
const result = value(...args);
|
|
452
|
-
if (Effect.isEffect(result)) {
|
|
453
|
-
return result.pipe(Effect.provideService(DurableObjectState, doState));
|
|
454
|
-
}
|
|
455
|
-
return result;
|
|
456
|
-
};
|
|
457
|
-
}
|
|
458
|
-
else {
|
|
459
|
-
wrapped[key] = value;
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
return wrapped;
|
|
463
|
-
}));
|
|
464
|
-
},
|
|
465
|
-
});
|
|
466
431
|
const binding = yield* Effect.serviceOption(WorkerEnvironment).pipe(Effect.map(Option.getOrUndefined), Effect.flatMap((env) => {
|
|
467
432
|
if (env === undefined) {
|
|
468
433
|
// should be fine to return undefined here (it is only undefined at plantime)
|
|
@@ -496,7 +461,13 @@ export const DurableObjectNamespace = taggedFunction(DurableObjectNamespaceScope
|
|
|
496
461
|
// jurisdiction: (jurisdiction: cf.DurableObjectJurisdiction) =>
|
|
497
462
|
// use((ns) => ns.jurisdiction(jurisdiction) as any),
|
|
498
463
|
};
|
|
499
|
-
|
|
464
|
+
yield* worker.export(namespace, {
|
|
465
|
+
kind: "durableObject",
|
|
466
|
+
// initialize the object's constructor (apply infra dependencies)
|
|
467
|
+
constructor: yield* impl.pipe(Effect.provideService(DurableObjectNamespaceScope, self)),
|
|
468
|
+
// grab the object's infra dependencies so we can apply them when calling the instance's methods
|
|
469
|
+
services: yield* Effect.context(),
|
|
470
|
+
});
|
|
500
471
|
return self;
|
|
501
472
|
}))));
|
|
502
473
|
//# 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;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,iBAAiB,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,kBAAkB,MAAM,yCAAyC,CAAC;AAE9E,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"DurableObjectNamespace.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/DurableObjectNamespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
import type * as cf from "@cloudflare/workers-types";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
3
|
import type { Scope } from "effect/Scope";
|
|
4
|
-
import type { HttpBodyError } from "effect/unstable/http/HttpBody";
|
|
5
|
-
import * as HttpServerError from "effect/unstable/http/HttpServerError";
|
|
6
4
|
import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest";
|
|
7
|
-
import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
|
|
8
5
|
import * as Http from "../../Http.ts";
|
|
9
6
|
import { type WorkerServices } from "./Worker.ts";
|
|
10
7
|
export type HttpEffect = Http.HttpEffect<WorkerServices>;
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const
|
|
13
|
-
remoteAddress?: string;
|
|
14
|
-
acceptWebSocket?: (socket: cf.WebSocket) => void;
|
|
15
|
-
}) => Effect.Effect<Response, never, Exclude<Req, HttpServerRequest.HttpServerRequest | Scope>>;
|
|
8
|
+
export declare const makeRequestHandler: <Req = never>(handler: Http.HttpEffect<Req> | Effect.Effect<Http.HttpEffect<Req>>) => (event: any) => Effect.Effect<Response, never, Exclude<Req, Scope | HttpServerRequest.HttpServerRequest>> | undefined;
|
|
9
|
+
export declare const makeRequestEffect: <Req = never>(webRequest: cf.Request, handler: Http.HttpEffect<Req> | Effect.Effect<Http.HttpEffect<Req>>) => Effect.Effect<Response, never, Exclude<Req, HttpServerRequest.HttpServerRequest | Scope>>;
|
|
16
10
|
//# 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;
|
|
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,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,iBAAiB,MAAM,wCAAwC,CAAC;AAE5E,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,0GAGI,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,KAClE,MAAM,CAAC,MAAM,CACd,QAAQ,EACR,KAAK,EACL,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,iBAAiB,GAAG,KAAK,CAAC,CA2C1D,CAAC"}
|
|
@@ -1,46 +1,42 @@
|
|
|
1
1
|
import * as Cause from "effect/Cause";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
3
4
|
import * as Option from "effect/Option";
|
|
4
|
-
import * as HttpServerError from "effect/unstable/http/HttpServerError";
|
|
5
5
|
import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest";
|
|
6
6
|
import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
|
|
7
7
|
import * as Http from "../../Http.js";
|
|
8
8
|
import { Request } from "./Request.js";
|
|
9
9
|
import { isWorkerEvent } from "./Worker.js";
|
|
10
|
-
export const
|
|
10
|
+
export const makeRequestHandler = (handler) => (event) => isWorkerEvent(event) && event.type === "fetch"
|
|
11
|
+
? makeRequestEffect(event.input, handler)
|
|
12
|
+
: undefined;
|
|
13
|
+
export const makeRequestEffect = (webRequest, handler) => {
|
|
11
14
|
const safeHandler = Http.safeHttpEffect(handler);
|
|
12
|
-
return (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return serveWebRequest(webRequest, safeHandler, {
|
|
16
|
-
remoteAddress: webRequest.headers.get("cf-connecting-ip") ?? undefined,
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
export const serveWebRequest = (webRequest, handler, options = {}) => Effect.gen(function* () {
|
|
22
|
-
const request = HttpServerRequest.fromWeb(webRequest).modify({
|
|
23
|
-
remoteAddress: Option.fromUndefinedOr(options.remoteAddress),
|
|
24
|
-
});
|
|
25
|
-
Object.defineProperty(request, "raw", {
|
|
26
|
-
get: () => Object.assign(request.stream, {
|
|
27
|
-
raw: webRequest.body,
|
|
28
|
-
}),
|
|
29
|
-
});
|
|
30
|
-
const response = yield* handler.pipe(Effect.provideService(HttpServerRequest.HttpServerRequest, request), Effect.provideService(Request, webRequest), Effect.catchCause((cause) => {
|
|
31
|
-
const message = Option.match(Cause.findErrorOption(cause), {
|
|
32
|
-
onNone: () => "Internal Server Error",
|
|
33
|
-
onSome: (error) => error instanceof Error && error.message
|
|
34
|
-
? error.message
|
|
35
|
-
: "Internal Server Error",
|
|
15
|
+
return Effect.gen(function* () {
|
|
16
|
+
const request = HttpServerRequest.fromWeb(webRequest).modify({
|
|
17
|
+
remoteAddress: Option.fromUndefinedOr(webRequest.headers.get("cf-connecting-ip") ?? undefined),
|
|
36
18
|
});
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
19
|
+
Object.defineProperty(request, "raw", {
|
|
20
|
+
get: () => Object.assign(request.stream, {
|
|
21
|
+
raw: webRequest.body,
|
|
22
|
+
}),
|
|
23
|
+
});
|
|
24
|
+
const response = yield* safeHandler.pipe(Effect.provide([
|
|
25
|
+
Layer.succeed(HttpServerRequest.HttpServerRequest, request),
|
|
26
|
+
Layer.succeed(Request, webRequest),
|
|
27
|
+
]), Effect.catchCause((cause) => {
|
|
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
|
+
}));
|
|
40
38
|
}));
|
|
41
|
-
|
|
42
|
-
return HttpServerResponse.toWeb(response, {
|
|
43
|
-
context: yield* Effect.context(),
|
|
39
|
+
return HttpServerResponse.toWeb(response);
|
|
44
40
|
});
|
|
45
|
-
}
|
|
41
|
+
};
|
|
46
42
|
//# 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,
|
|
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,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,iBAAiB,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,kBAAkB,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAuB,MAAM,aAAa,CAAC;AAIjE,MAAM,CAAC,MAAM,kBAAkB,GAC7B,CACE,OAAmE,EACnE,EAAE,CACJ,CAAC,KAAU,EAAE,EAAE,CACb,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;IAC5C,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC;IACzC,CAAC,CAAC,SAAS,CAAC;AAElB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,UAAsB,EACtB,OAAmE,EAKnE,EAAE;IACF,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CACvC,UAAuC,CACxC,CAAC,MAAM,CAAC;YACP,aAAa,EAAE,MAAM,CAAC,eAAe,CACnC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,SAAS,CACxD;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE;YACpC,GAAG,EAAE,GAAG,EAAE,CACR,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;gBAC5B,GAAG,EAAE,UAAU,CAAC,IAAI;aACrB,CAAC;SACL,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CACtC,MAAM,CAAC,OAAO,CAAC;YACb,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,CAAC;YAC3D,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,UAAiB,CAAC;SAC1C,CAAC,EACF,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;gBACzD,MAAM,EAAE,GAAG,EAAE,CAAC,uBAAuB;gBACrC,MAAM,EAAE,CAAC,KAAU,EAAE,EAAE,CACrB,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO;oBACrC,CAAC,CAAC,KAAK,CAAC,OAAO;oBACf,CAAC,CAAC,uBAAuB;aAC9B,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,OAAO,CACnB,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE;gBAC/B,MAAM,EAAE,GAAG;gBACX,UAAU,EAAE,OAAO;aACpB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC,CAAQ,CAAC;AACZ,CAAC,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type * as Effect from "effect/Effect";
|
|
2
2
|
import type * as Stream from "effect/Stream";
|
|
3
|
-
import type { Rpc } from "../../
|
|
4
|
-
import type { UnwrapEffect } from "../../Util/effect.ts";
|
|
3
|
+
import type { Rpc } from "../../Rpc.ts";
|
|
5
4
|
import type * as Cloudflare from "../index.ts";
|
|
6
5
|
import type { RpcErrorEnvelope, RpcStreamEnvelope } from "./Rpc.ts";
|
|
7
6
|
import type { Worker } from "./Worker.ts";
|
|
8
|
-
export type InferEnv<W> = W extends
|
|
9
|
-
[
|
|
10
|
-
}
|
|
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"]["bindings"], undefined>> : {
|
|
8
|
+
[k in keyof W]: GetBindingType<W[k]>;
|
|
9
|
+
};
|
|
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
11
|
/**
|
|
12
12
|
* Cloudflare service-binding wire shape for an Effect-native Worker.
|
|
13
13
|
*
|
|
@@ -23,23 +23,4 @@ export type InferEnv<W> = W extends Worker<infer Bindings> | Effect.Effect<Worke
|
|
|
23
23
|
export type RpcWireShape<Shape> = {
|
|
24
24
|
[K in keyof Shape as K extends "fetch" ? never : K]: Shape[K] extends (...args: infer A) => Effect.Effect<infer T, any, any> ? (...args: A) => Promise<T | RpcErrorEnvelope> : Shape[K] extends (...args: infer A) => Stream.Stream<any, any, any> ? (...args: A) => Promise<RpcStreamEnvelope | RpcErrorEnvelope> : Shape[K] extends Effect.Effect<infer T, any, any> ? Promise<T | RpcErrorEnvelope> : Shape[K] extends Stream.Stream<any, any, any> ? Promise<RpcStreamEnvelope | RpcErrorEnvelope> : Shape[K] extends (...args: infer A) => infer R ? (...args: A) => Promise<Awaited<R>> : Promise<Shape[K]>;
|
|
25
25
|
};
|
|
26
|
-
/**
|
|
27
|
-
* Recover the user's RPC `Shape` from any of the forms a caller might pass
|
|
28
|
-
* to {@link toPromiseApi}:
|
|
29
|
-
*
|
|
30
|
-
* - the Worker class value's type, e.g. `typeof Backend`, which extends
|
|
31
|
-
* `Effect.Effect<Worker & Rpc<Shape>, …>`
|
|
32
|
-
* - the unwrapped `Worker & Rpc<Shape>` type
|
|
33
|
-
* - a bare `Shape` (when the caller types it explicitly)
|
|
34
|
-
*/
|
|
35
|
-
export type ExtractRpcShape<W> = W extends Effect.Effect<infer R, any, any> ? R extends Rpc<infer Shape> ? Shape : R : W extends Rpc<infer Shape> ? Shape : W;
|
|
36
|
-
/**
|
|
37
|
-
* Promise-flavored consumer view returned by {@link toPromiseApi}: error
|
|
38
|
-
* envelopes are thrown as exceptions and stream envelopes are unwrapped to
|
|
39
|
-
* their raw `ReadableStream<Uint8Array>` body.
|
|
40
|
-
*/
|
|
41
|
-
export type RpcPromiseShape<Shape> = {
|
|
42
|
-
[K in keyof Shape as K extends "fetch" ? never : K]: Shape[K] extends (...args: infer A) => Effect.Effect<infer T, any, any> ? (...args: A) => Promise<T> : Shape[K] extends (...args: infer A) => Stream.Stream<any, any, any> ? (...args: A) => Promise<ReadableStream<Uint8Array>> : Shape[K] extends Effect.Effect<infer T, any, any> ? Promise<T> : Shape[K] extends Stream.Stream<any, any, any> ? Promise<ReadableStream<Uint8Array>> : Shape[K] extends (...args: infer A) => infer R ? (...args: A) => Promise<Awaited<R>> : Promise<Shape[K]>;
|
|
43
|
-
};
|
|
44
|
-
export type GetBindingType<T> = 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>> : never;
|
|
45
26
|
//# sourceMappingURL=InferEnv.d.ts.map
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"InferEnv.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/InferEnv.ts"],"names":[],"mappings":"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"}
|