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.
Files changed (179) hide show
  1. package/bin/exec.js +16 -3
  2. package/bin/exec.js.map +1 -1
  3. package/lib/AWS/EC2/hosted.js +1 -1
  4. package/lib/AWS/EC2/hosted.js.map +1 -1
  5. package/lib/AWS/ECS/Task.js +1 -1
  6. package/lib/AWS/ECS/Task.js.map +1 -1
  7. package/lib/AWS/Lambda/BucketEventSource.d.ts +1 -1
  8. package/lib/AWS/Lambda/BucketEventSource.d.ts.map +1 -1
  9. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +1 -1
  10. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts.map +1 -1
  11. package/lib/AWS/Lambda/Function.js +1 -1
  12. package/lib/AWS/Lambda/Function.js.map +1 -1
  13. package/lib/AWS/Lambda/QueueEventSource.d.ts +1 -1
  14. package/lib/AWS/Lambda/QueueEventSource.d.ts.map +1 -1
  15. package/lib/AWS/Lambda/StreamEventSource.d.ts +1 -1
  16. package/lib/AWS/Lambda/StreamEventSource.d.ts.map +1 -1
  17. package/lib/AWS/Lambda/TableEventSource.d.ts +1 -1
  18. package/lib/AWS/Lambda/TableEventSource.d.ts.map +1 -1
  19. package/lib/AWS/Lambda/TopicEventSource.d.ts +1 -1
  20. package/lib/AWS/Lambda/TopicEventSource.d.ts.map +1 -1
  21. package/lib/Apply.d.ts.map +1 -1
  22. package/lib/Apply.js +41 -7
  23. package/lib/Apply.js.map +1 -1
  24. package/lib/Cloudflare/Bridge.d.ts +1 -0
  25. package/lib/Cloudflare/Bridge.d.ts.map +1 -1
  26. package/lib/Cloudflare/Bridge.js +1 -0
  27. package/lib/Cloudflare/Bridge.js.map +1 -1
  28. package/lib/Cloudflare/Container/ContainerApplication.js +1 -1
  29. package/lib/Cloudflare/Container/ContainerApplication.js.map +1 -1
  30. package/lib/Cloudflare/Container/ContainerBinding.d.ts +1 -1
  31. package/lib/Cloudflare/Container/ContainerBinding.d.ts.map +1 -1
  32. package/lib/Cloudflare/Container/ContainerBinding.js +1 -1
  33. package/lib/Cloudflare/Container/ContainerBinding.js.map +1 -1
  34. package/lib/Cloudflare/Fetcher.d.ts +9 -0
  35. package/lib/Cloudflare/Fetcher.d.ts.map +1 -1
  36. package/lib/Cloudflare/Fetcher.js +20 -1
  37. package/lib/Cloudflare/Fetcher.js.map +1 -1
  38. package/lib/Cloudflare/Local/SidecarHandlers.d.ts.map +1 -1
  39. package/lib/Cloudflare/Local/SidecarHandlers.js +1 -1
  40. package/lib/Cloudflare/Local/SidecarHandlers.js.map +1 -1
  41. package/lib/Cloudflare/StateStore/Api.d.ts +2 -2
  42. package/lib/Cloudflare/Website/StaticSite.d.ts +5 -4
  43. package/lib/Cloudflare/Website/StaticSite.d.ts.map +1 -1
  44. package/lib/Cloudflare/Website/StaticSite.js.map +1 -1
  45. package/lib/Cloudflare/Website/Vite.d.ts +4 -4
  46. package/lib/Cloudflare/Website/Vite.d.ts.map +1 -1
  47. package/lib/Cloudflare/Website/Vite.js.map +1 -1
  48. package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts +17 -0
  49. package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts.map +1 -0
  50. package/lib/Cloudflare/Workers/DurableObjectBridge.js +86 -0
  51. package/lib/Cloudflare/Workers/DurableObjectBridge.js.map +1 -0
  52. package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts +2 -1
  53. package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts.map +1 -1
  54. package/lib/Cloudflare/Workers/DurableObjectNamespace.js +10 -39
  55. package/lib/Cloudflare/Workers/DurableObjectNamespace.js.map +1 -1
  56. package/lib/Cloudflare/Workers/HttpServer.d.ts +2 -8
  57. package/lib/Cloudflare/Workers/HttpServer.d.ts.map +1 -1
  58. package/lib/Cloudflare/Workers/HttpServer.js +29 -33
  59. package/lib/Cloudflare/Workers/HttpServer.js.map +1 -1
  60. package/lib/Cloudflare/Workers/InferEnv.d.ts +5 -24
  61. package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
  62. package/lib/Cloudflare/Workers/Rpc.d.ts +0 -101
  63. package/lib/Cloudflare/Workers/Rpc.d.ts.map +1 -1
  64. package/lib/Cloudflare/Workers/Rpc.js +9 -286
  65. package/lib/Cloudflare/Workers/Rpc.js.map +1 -1
  66. package/lib/Cloudflare/Workers/RpcAsync.d.ts +8 -0
  67. package/lib/Cloudflare/Workers/RpcAsync.d.ts.map +1 -0
  68. package/lib/Cloudflare/Workers/RpcAsync.js +45 -0
  69. package/lib/Cloudflare/Workers/RpcAsync.js.map +1 -0
  70. package/lib/Cloudflare/Workers/Worker.d.ts +16 -162
  71. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  72. package/lib/Cloudflare/Workers/Worker.js +49 -354
  73. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  74. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts +8 -0
  75. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -0
  76. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +129 -0
  77. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -0
  78. package/lib/Cloudflare/Workers/WorkerBinding.d.ts +154 -0
  79. package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -0
  80. package/lib/Cloudflare/Workers/WorkerBinding.js +51 -0
  81. package/lib/Cloudflare/Workers/WorkerBinding.js.map +1 -0
  82. package/lib/Cloudflare/Workers/WorkerBridge.d.ts +35 -0
  83. package/lib/Cloudflare/Workers/WorkerBridge.d.ts.map +1 -0
  84. package/lib/Cloudflare/Workers/WorkerBridge.js +149 -0
  85. package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -0
  86. package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -1
  87. package/lib/Cloudflare/Workers/WorkerBundle.js +18 -84
  88. package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -1
  89. package/lib/Cloudflare/Workers/WorkerRuntimeContext.d.ts +8 -0
  90. package/lib/Cloudflare/Workers/WorkerRuntimeContext.d.ts.map +1 -0
  91. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js +113 -0
  92. package/lib/Cloudflare/Workers/WorkerRuntimeContext.js.map +1 -0
  93. package/lib/Cloudflare/Workers/WorkflowBridge.d.ts +26 -0
  94. package/lib/Cloudflare/Workers/WorkflowBridge.d.ts.map +1 -0
  95. package/lib/Cloudflare/Workers/WorkflowBridge.js +41 -0
  96. package/lib/Cloudflare/Workers/WorkflowBridge.js.map +1 -0
  97. package/lib/Cloudflare/Workers/index.d.ts +4 -0
  98. package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
  99. package/lib/Cloudflare/Workers/index.js +4 -0
  100. package/lib/Cloudflare/Workers/index.js.map +1 -1
  101. package/lib/Cloudflare/index.d.ts +4 -2
  102. package/lib/Cloudflare/index.d.ts.map +1 -1
  103. package/lib/Cloudflare/index.js +4 -2
  104. package/lib/Cloudflare/index.js.map +1 -1
  105. package/lib/Neon/Project.d.ts.map +1 -1
  106. package/lib/Neon/Project.js +2 -1
  107. package/lib/Neon/Project.js.map +1 -1
  108. package/lib/Platform.d.ts +3 -4
  109. package/lib/Platform.d.ts.map +1 -1
  110. package/lib/Platform.js.map +1 -1
  111. package/lib/Rpc.d.ts +17 -0
  112. package/lib/Rpc.d.ts.map +1 -0
  113. package/lib/Rpc.js +1 -0
  114. package/lib/Rpc.js.map +1 -0
  115. package/lib/RuntimeContext.d.ts +1 -0
  116. package/lib/RuntimeContext.d.ts.map +1 -1
  117. package/lib/RuntimeContext.js.map +1 -1
  118. package/lib/Sidecar/RpcHandler.d.ts.map +1 -1
  119. package/lib/Sidecar/RpcHandler.js +13 -9
  120. package/lib/Sidecar/RpcHandler.js.map +1 -1
  121. package/lib/State/HttpStateApi.d.ts +10 -0
  122. package/lib/State/HttpStateApi.d.ts.map +1 -1
  123. package/lib/State/HttpStateApi.js +10 -0
  124. package/lib/State/HttpStateApi.js.map +1 -1
  125. package/lib/State/HttpStateStore.d.ts.map +1 -1
  126. package/lib/State/HttpStateStore.js +2 -1
  127. package/lib/State/HttpStateStore.js.map +1 -1
  128. package/lib/State/InMemoryState.d.ts.map +1 -1
  129. package/lib/State/InMemoryState.js +2 -0
  130. package/lib/State/InMemoryState.js.map +1 -1
  131. package/lib/State/LocalState.d.ts.map +1 -1
  132. package/lib/State/LocalState.js +2 -0
  133. package/lib/State/LocalState.js.map +1 -1
  134. package/lib/State/State.d.ts +8 -0
  135. package/lib/State/State.d.ts.map +1 -1
  136. package/lib/State/StateEncoding.d.ts.map +1 -1
  137. package/lib/State/StateEncoding.js +5 -1
  138. package/lib/State/StateEncoding.js.map +1 -1
  139. package/lib/index.d.ts +2 -1
  140. package/lib/index.d.ts.map +1 -1
  141. package/lib/index.js +1 -1
  142. package/lib/index.js.map +1 -1
  143. package/lib/tsconfig.test.tsbuildinfo +1 -1
  144. package/package.json +1 -1
  145. package/src/Apply.ts +44 -10
  146. package/src/Cli/Event.ts +1 -1
  147. package/src/Cloudflare/Bridge.ts +1 -0
  148. package/src/Cloudflare/Container/ContainerBinding.ts +1 -1
  149. package/src/Cloudflare/Fetcher.ts +38 -1
  150. package/src/Cloudflare/Local/SidecarHandlers.ts +3 -6
  151. package/src/Cloudflare/Website/StaticSite.ts +10 -5
  152. package/src/Cloudflare/Website/Vite.ts +7 -4
  153. package/src/Cloudflare/Workers/DurableObjectBridge.ts +180 -0
  154. package/src/Cloudflare/Workers/DurableObjectNamespace.ts +22 -70
  155. package/src/Cloudflare/Workers/HttpServer.ts +25 -39
  156. package/src/Cloudflare/Workers/InferEnv.ts +42 -78
  157. package/src/Cloudflare/Workers/Rpc.ts +18 -417
  158. package/src/Cloudflare/Workers/RpcAsync.ts +63 -0
  159. package/src/Cloudflare/Workers/Worker.ts +107 -548
  160. package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +149 -0
  161. package/src/Cloudflare/Workers/WorkerBinding.ts +103 -0
  162. package/src/Cloudflare/Workers/WorkerBridge.ts +304 -0
  163. package/src/Cloudflare/Workers/WorkerBundle.ts +17 -83
  164. package/src/Cloudflare/Workers/WorkerRuntimeContext.ts +164 -0
  165. package/src/Cloudflare/Workers/WorkflowBridge.ts +92 -0
  166. package/src/Cloudflare/Workers/index.ts +4 -0
  167. package/src/Cloudflare/index.ts +4 -2
  168. package/src/Neon/Project.ts +3 -1
  169. package/src/Platform.ts +3 -4
  170. package/src/Rpc.ts +25 -0
  171. package/src/RuntimeContext.ts +1 -0
  172. package/src/Sidecar/RpcHandler.ts +18 -9
  173. package/src/State/HttpStateApi.ts +11 -0
  174. package/src/State/HttpStateStore.ts +7 -2
  175. package/src/State/InMemoryState.ts +2 -0
  176. package/src/State/LocalState.ts +2 -0
  177. package/src/State/State.ts +8 -0
  178. package/src/State/StateEncoding.ts +8 -1
  179. package/src/index.ts +7 -6
@@ -0,0 +1,149 @@
1
+ import { NodeServices } from "@effect/platform-node";
2
+ import { Stream } from "effect";
3
+ import * as Cause from "effect/Cause";
4
+ import * as ConfigProvider from "effect/ConfigProvider";
5
+ import * as Context from "effect/Context";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Exit from "effect/Exit";
8
+ import { pipe } from "effect/Function";
9
+ import * as Layer from "effect/Layer";
10
+ import * as Logger from "effect/Logger";
11
+ import { MinimumLogLevel } from "effect/References";
12
+ import * as Scope from "effect/Scope";
13
+ import { FetchHttpClient } from "effect/unstable/http";
14
+ import { ExecutionContext } from "../../ExecutionContext.js";
15
+ import { makeEntrypointLayer } from "../../Runtime.js";
16
+ import { Self } from "../../Self.js";
17
+ import { Stack } from "../../Stack.js";
18
+ import { ErrorTag, encodeRpcError, toRpcStream, } from "./Rpc.js";
19
+ import { ExportedHandlerMethods, Worker, WorkerEnvironment, WorkerExecutionContext, } from "./Worker.js";
20
+ import cloudflare_workers from "./cloudflare_workers.js";
21
+ /**
22
+ * Makes the WorkerEntrypoint class and bridges to Effect fetch and RPC calls.
23
+ */
24
+ export const makeWorkerBridge = (Base, { stack, entrypoint, }) => {
25
+ const { globalContext, exported, shape } = getWorkerExport({
26
+ entrypoint,
27
+ stack,
28
+ exportName: "default",
29
+ });
30
+ const processEvent = (eff, ctx) => {
31
+ const scope = Scope.makeUnsafe();
32
+ return eff
33
+ .pipe(Effect.flatMap(([eff, context]) => Effect.provide(eff, pipe(Layer.succeedContext(context), Layer.provideMerge(Layer.succeedContext(context)), Layer.provideMerge(Layer.succeed(WorkerExecutionContext, ctx)), Layer.provideMerge(Layer.succeed(ExecutionContext, {
34
+ scope,
35
+ cache: {},
36
+ }))))), Effect.provide(Layer.provideMerge(globalContext, Layer.succeed(Scope.Scope, scope))), Effect.runPromiseExit)
37
+ .finally(() => Scope.close(scope, Exit.void).pipe(Effect.runPromise, (promise) => ctx.waitUntil(promise)));
38
+ };
39
+ class WorkerBridge extends Base {
40
+ ctx;
41
+ env;
42
+ constructor(ctx, env) {
43
+ super(ctx, env);
44
+ this.ctx = ctx;
45
+ this.env = env;
46
+ for (const methodName of ExportedHandlerMethods) {
47
+ this[methodName] = async (input) => exported
48
+ .pipe(Effect.map((_default) => _default[methodName]), Effect.map((f) => f(input, this.env, this.ctx)), (eff) => processEvent(eff, this.ctx))
49
+ .then((exit) => exit._tag === "Success"
50
+ ? Promise.resolve(exit.value)
51
+ : Promise.reject(Cause.squash(exit.cause)));
52
+ }
53
+ return new Proxy(this, {
54
+ get: (target, prop) => {
55
+ if (typeof prop !== "string")
56
+ return target[prop];
57
+ if (prop in target)
58
+ return target[prop];
59
+ return (...args) => shape
60
+ .pipe(Effect.map((shape) => shape[prop]), Effect.flatMap((dispatcher) => {
61
+ if (typeof dispatcher !== "function") {
62
+ return Effect.die(new Error(`Method "${prop}" not found on worker. ` +
63
+ `Make sure it's returned from the worker's default export.`));
64
+ }
65
+ console.log("dispatcher", dispatcher.toString());
66
+ return Effect.succeed([
67
+ dispatcher(...args),
68
+ Context.empty(),
69
+ ]);
70
+ }), (eff) => processEvent(eff, this.ctx))
71
+ .then(handleRpcExit);
72
+ },
73
+ });
74
+ }
75
+ }
76
+ // Stub prototype methods so Cloudflare's script-validate detects the
77
+ // standard handler set; per-instance overrides above are what actually
78
+ // run.
79
+ for (const method of ExportedHandlerMethods) {
80
+ Object.defineProperty(WorkerBridge.prototype, method, {
81
+ value: function () {
82
+ throw new Error(`Bridge method '${method}' was called before instance setup`);
83
+ },
84
+ writable: true,
85
+ configurable: true,
86
+ });
87
+ }
88
+ return WorkerBridge;
89
+ };
90
+ export const getWorkerExport = ({ entrypoint, stack, exportName, }) => {
91
+ const tag = Self;
92
+ const runtimeContext = tag.pipe(Effect.map((func) => func.RuntimeContext));
93
+ const shape = runtimeContext.pipe(Effect.map((context) => context.shape()));
94
+ const exported = runtimeContext.pipe(Effect.flatMap((context) => context.exports), Effect.flatMap((exports) => Effect.isEffect(exports[exportName])
95
+ ? exports[exportName]
96
+ : Effect.succeed(exports[exportName])));
97
+ const layer = makeEntrypointLayer(tag, entrypoint);
98
+ const platform = Layer.mergeAll(NodeServices.layer, FetchHttpClient.layer,
99
+ // TODO(sam): wire this up to telemetry more directly
100
+ Logger.layer([Logger.consolePretty()]));
101
+ const globalContext = Layer.unwrap(cloudflare_workers.pipe(Effect.map(({ env }) => layer.pipe(Layer.provideMerge(Layer.succeed(Stack, {
102
+ name: stack.name,
103
+ stage: stack.stage,
104
+ bindings: {},
105
+ resources: {},
106
+ actions: {},
107
+ })), Layer.provideMerge(platform), Layer.provideMerge(Layer.succeed(ConfigProvider.ConfigProvider, ConfigProvider.orElse(ConfigProvider.fromUnknown({ ALCHEMY_PHASE: "runtime" }), ConfigProvider.fromUnknown(env)))), Layer.provideMerge(Layer.succeed(WorkerEnvironment, env)), Layer.provideMerge(Layer.succeed(MinimumLogLevel, env.DEBUG ? "Debug" : "Info"))))));
108
+ return {
109
+ globalContext,
110
+ exported,
111
+ shape,
112
+ };
113
+ };
114
+ export const makeRpcProxy = (self, userShape, processEvent) => new Proxy(self, {
115
+ get: (target, prop) => {
116
+ if (typeof prop !== "string")
117
+ return target[prop];
118
+ if (prop in target)
119
+ return target[prop];
120
+ return (...args) => userShape
121
+ .pipe(Effect.map((shape) => shape[prop]), Effect.flatMap((dispatcher) => {
122
+ if (typeof dispatcher !== "function") {
123
+ return Effect.die(new Error(`Method "${prop}" not found on worker. ` +
124
+ `Make sure it's returned from the worker's default export.`));
125
+ }
126
+ console.log("dispatcher", dispatcher.toString());
127
+ return dispatcher(...args);
128
+ }), processEvent)
129
+ .then(handleRpcExit);
130
+ },
131
+ });
132
+ export const handleRpcExit = async (exit) => {
133
+ if (exit._tag === "Success") {
134
+ if (Stream.isStream(exit.value)) {
135
+ return await Effect.runPromise(toRpcStream(exit.value));
136
+ }
137
+ return exit.value;
138
+ }
139
+ const failReason = exit.cause.reasons.find(Cause.isFailReason);
140
+ if (failReason) {
141
+ return {
142
+ _tag: ErrorTag,
143
+ error: encodeRpcError(failReason.error),
144
+ };
145
+ }
146
+ const dieReason = exit.cause.reasons.find(Cause.isDieReason);
147
+ throw (dieReason?.defect ?? new Error("RPC method failed with an unexpected cause"));
148
+ };
149
+ //# sourceMappingURL=WorkerBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerBridge.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerBridge.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerBundle.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerBundle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,KAAK,EACD;QACE,IAAI,EAAE,UAAU,CAAC;KAClB,GACD;QACE,IAAI,EAAE,QAAQ,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAAC,CAAC;KAC/D,CAAC;IACN,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CAC/C;AAED,eAAO,MAAM,YAAY;;;4CA8FvB,CAAC;AAEH,eAAO,MAAM,sBAAsB,GACjC,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAAC,EAC7D,OAAO;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,MAa9B,YAAY,MAAM,WA8G3B,CAAC"}
1
+ {"version":3,"file":"WorkerBundle.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerBundle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,KAAK,EACD;QACE,IAAI,EAAE,UAAU,CAAC;KAClB,GACD;QACE,IAAI,EAAE,QAAQ,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAAC,CAAC;KAC/D,CAAC;IACN,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CAC/C;AAED,eAAO,MAAM,YAAY;;;4CAoGvB,CAAC;AAEH,eAAO,MAAM,sBAAsB,GACjC,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAAC,EAC7D,OAAO;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,MAa9B,YAAY,MAAM,WAuC3B,CAAC"}
@@ -7,7 +7,6 @@ import { fileURLToPath } from "node:url";
7
7
  import Sonda from "sonda/rolldown";
8
8
  import * as Bundle from "../../Bundle/Bundle.js";
9
9
  import { findCwdForBundle } from "../../Bundle/TempRoot.js";
10
- import { Self } from "../../Self.js";
11
10
  import { isDurableObjectExport, } from "./DurableObjectNamespace.js";
12
11
  import { isWorkflowExport } from "./Workflow.js";
13
12
  export const WorkerBundle = Effect.gen(function* () {
@@ -18,6 +17,12 @@ export const WorkerBundle = Effect.gen(function* () {
18
17
  const realMain = yield* sanitizeMain(options.main);
19
18
  const inputOptions = {
20
19
  input: realMain,
20
+ // Forever-devtool native modules that vite/chokidar reference behind
21
+ // runtime guards. Rolldown resolves before tree-shaking, so the dead
22
+ // `require('../pkg')` (lightningcss < 1.32) and `require('fsevents')`
23
+ // (darwin-only) trip [UNRESOLVED_IMPORT] before DCE can prune them.
24
+ // See rolldown/tsdown#212.
25
+ external: ["lightningcss", "fsevents"],
21
26
  cwd: yield* findCwdForBundle(realMain).pipe(Effect.mapError((cause) => new Bundle.BundleError({
22
27
  message: `Failed to find cwd for bundle: ${realMain}`,
23
28
  cause,
@@ -81,106 +86,35 @@ export const makeEffectVirtualEntry = (exports, stack) => {
81
86
  const hasDoClasses = doClasses.length > 0;
82
87
  const hasWfClasses = wfClasses.length > 0;
83
88
  return (importPath) => `
84
- import * as Config from "effect/Config";
85
- import * as ConfigProvider from "effect/ConfigProvider";
86
- import * as Console from "effect/Console";
87
89
  import * as Effect from "effect/Effect";
88
- import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
89
- import * as Layer from "effect/Layer";
90
- import * as Logger from "effect/Logger";
91
- import * as Context from "effect/Context";
92
- import * as Stream from "effect/Stream";
93
90
 
94
91
  import { env, DurableObject, WorkerEntrypoint${hasWfClasses ? ", WorkflowEntrypoint" : ""} } from "cloudflare:workers";
95
- import { MinimumLogLevel } from "effect/References";
96
- import * as NodeServices from "@effect/platform-node/NodeServices";
97
- import { Stack } from "alchemy/Stack";
98
- import { WorkerEnvironment, makeDurableObjectBridge, makeWorkerBridge${hasWfClasses ? ", makeWorkflowBridge" : ""}, ExportedHandlerMethods } from "alchemy/Cloudflare";
92
+ import { makeDurableObjectBridge, makeWorkerBridge${hasWfClasses ? ", makeWorkflowBridge" : ""} } from "alchemy/Cloudflare";
99
93
  import { makeEntrypointLayer } from "alchemy/Runtime";
100
94
 
101
- import entrypoint from "${importPath}";
102
-
103
- const tag = Context.Service("${Self.key}")
104
- const layer = makeEntrypointLayer(tag, entrypoint);
105
-
106
- const platform = Layer.mergeAll(
107
- NodeServices.layer,
108
- FetchHttpClient.layer,
109
- // TODO(sam): wire this up to telemetry more directly
110
- Logger.layer([Logger.consolePretty()]),
111
- );
112
-
113
- const stack = Layer.succeed(
114
- Stack,
115
- {
116
- name: "${stack.name}",
117
- stage: "${stack.stage}",
118
- bindings: {},
119
- resources: {}
120
- }
121
- );
95
+ import entrypoint from ${JSON.stringify(importPath)};
122
96
 
123
- const exportsEffect = tag.pipe(
124
- Effect.flatMap(func => func.RuntimeContext.exports),
125
- Effect.provide(
126
- layer.pipe(
127
- Layer.provideMerge(stack),
128
- Layer.provideMerge(platform),
129
- Layer.provideMerge(
130
- Layer.succeed(
131
- ConfigProvider.ConfigProvider,
132
- ConfigProvider.orElse(
133
- ConfigProvider.fromUnknown({ ALCHEMY_PHASE: "runtime" }),
134
- ConfigProvider.fromUnknown(env),
135
- ),
136
- ),
137
- ),
138
- Layer.provideMerge(Layer.succeed(WorkerEnvironment, env)),
139
- Layer.provideMerge(
140
- Layer.succeed(MinimumLogLevel, env.DEBUG ? "Debug" : "Info"),
141
- ),
142
- ),
143
- ),
144
- Effect.scoped,
145
- );
146
-
147
- // TODO(sam): we could kick this off during module init, but any I/O will break deploy
148
- // let exportsPromise = Effect.runPromise(exportsEffect);
149
-
150
- // for now, we delay initializing the worker until the first request
151
- let exportsPromise;
152
-
153
- // don't initialize the workerEffect during module init because Cloudflare does not allow I/O during module init
154
- // we cache it synchronously (??=) to guarnatee only one initialization ever happens
155
- const getExports = () => (exportsPromise ??= Effect.runPromise(exportsEffect))
156
- const getExport = (name) => getExports().then(exports => exports[name]?.make)
157
- const getDefault = () => getExports().then(exports => exports.default)
158
- const getRpc = () => getExports().then(exports => exports.__rpc__ ?? {})
97
+ const meta = {
98
+ entrypoint,
99
+ stack: {
100
+ name: ${JSON.stringify(stack.name)},
101
+ stage: ${JSON.stringify(stack.stage)},
102
+ },
103
+ };
159
104
 
160
- // Bridge the user's default-export shape onto a real \`WorkerEntrypoint\`
161
- // subclass so Cloudflare service bindings can dispatch both the standard
162
- // handler methods (fetch, scheduled, …) and any user-defined RPC methods.
163
- // RPC method results are wire-encoded by \`runtimeContext.exports\`;
164
- // consumers unwrap them with \`Cloudflare.toPromiseApi(env.X)\` (Promise
165
- // API) or \`bindWorker(WorkerClass)\` (Effect API).
166
- export default makeWorkerBridge(
167
- WorkerEntrypoint,
168
- ExportedHandlerMethods,
169
- getDefault,
170
- getRpc,
171
- );
105
+ export default makeWorkerBridge(WorkerEntrypoint, meta);
172
106
 
173
107
  // export class proxy stubs for Durable Objects and Workflows
174
108
  ${[
175
109
  ...(hasDoClasses
176
110
  ? [
177
- "const DurableObjectBridge = makeDurableObjectBridge(DurableObject, getExport);",
111
+ "const DurableObjectBridge = makeDurableObjectBridge(DurableObject, meta);",
178
112
  ...doClasses.map((id) => `export class ${id} extends DurableObjectBridge("${id}") {}`),
179
113
  ]
180
114
  : []),
181
115
  ...(hasWfClasses
182
116
  ? [
183
- "const WorkflowBridgeFn = makeWorkflowBridge(WorkflowEntrypoint, getExport);",
117
+ "const WorkflowBridgeFn = makeWorkflowBridge(WorkflowEntrypoint, meta);",
184
118
  ...wfClasses.map((id) => `export class ${id} extends WorkflowBridgeFn("${id}") {}`),
185
119
  ]
186
120
  : []),
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerBundle.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerBundle.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,6CAA6C,CAAC;AAC7E,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EACL,qBAAqB,GAEtB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAuB,MAAM,eAAe,CAAC;AAqBtE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC9C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAqC,CAAC;IAC3E,MAAM,kBAAkB,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC;IAE5D,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC7C,OAA4B;QAE5B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,YAAY,GAA0B;YAC1C,KAAK,EAAE,QAAQ;YACf,GAAG,EAAE,KAAK,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CACzC,MAAM,CAAC,QAAQ,CACb,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,MAAM,CAAC,WAAW,CAAC;gBACrB,OAAO,EAAE,kCAAkC,QAAQ,EAAE;gBACrD,KAAK;aACN,CAAC,CACL,EACD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CACxB;YACD,OAAO,EAAE;gBACP,kBAAkB,CAAC;oBACjB,iBAAiB,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI;oBAC7C,kBAAkB,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK;iBAChD,CAAC;gBACF,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;oBAC7B,CAAC,CAAC;wBACE,kBAAkB,CAChB,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAC7D;qBACF;oBACH,CAAC,CAAC,SAAS;gBACb,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACnE;YACD,MAAM,EAAE;gBACN,iEAAiE;gBACjE,gBAAgB,EAAE,KAAK;aACxB;SACF,CAAC;QACF,MAAM,aAAa,GAA2B;YAC5C,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI;YACf,GAAG,EAAE,oBAAoB,OAAO,CAAC,EAAE,EAAE;SACtC,CAAC;QACF,MAAM,YAAY,GAA8B;YAC9C,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI;SAChC,CAAC;QACF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE,CACpC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QACf,IAAI,CAAC;YACH,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAC3C,MAAM,CAAC,QAAQ,CACb,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,MAAM,CAAC,WAAW,CAAC;QACrB,OAAO,EAAE,wCAAwC,IAAI,EAAE;QACvD,KAAK;KACN,CAAC,CACL,CACF,CAAC;IAEJ,OAAO;QACL,KAAK,EAAE,IAAI,CACT,WAAW,EACX,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,MAAM,CAAC,KAAK,CACV,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,aAAa,EACtB,QAAQ,CAAC,YAAY,CACtB,CACF,CACF;QACD,KAAK,EAAE,IAAI,CACT,WAAW,EACX,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,MAAM,CAAC,KAAK,CACV,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,aAAa,EACtB,QAAQ,CAAC,YAAY,CACtB,CACF,CACF;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,OAA6D,EAC7D,KAAsC,EACtC,EAAE;IACF,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAkB,EAAE,EAAE,CAAC;;;;;;;;;;;+CAWc,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;;;;uEAIlB,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;;;0BAGvF,UAAU;;+BAEL,IAAI,CAAC,GAAG;;;;;;;;;;;;;aAa1B,KAAK,CAAC,IAAI;cACT,KAAK,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDvB;QACA,GAAG,CAAC,YAAY;YACd,CAAC,CAAC;gBACE,gFAAgF;gBAChF,GAAG,SAAS,CAAC,GAAG,CACd,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,EAAE,iCAAiC,EAAE,OAAO,CACrE;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,YAAY;YACd,CAAC,CAAC;gBACE,6EAA6E;gBAC7E,GAAG,SAAS,CAAC,GAAG,CACd,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,EAAE,8BAA8B,EAAE,OAAO,CAClE;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,IAAI,CAAC,IAAI,CAAC;CACX,CAAC;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"WorkerBundle.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerBundle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import * as Effect from "effect/Effect";
2
+ import type * as Serverless from "../../Serverless/index.ts";
3
+ export interface WorkerRuntimeContext extends Serverless.FunctionContext {
4
+ export(name: string, value: any): Effect.Effect<void>;
5
+ shape: () => Record<string, any>;
6
+ }
7
+ export declare const makeWorkerRuntimeContext: (id: string) => WorkerRuntimeContext;
8
+ //# sourceMappingURL=WorkerRuntimeContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerRuntimeContext.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerRuntimeContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,KAAK,KAAK,UAAU,MAAM,2BAA2B,CAAC;AAS7D,MAAM,WAAW,oBAAqB,SAAQ,UAAU,CAAC,eAAe;IACtE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtD,KAAK,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,wBAAwB,GAAI,IAAI,MAAM,KAAG,oBA+IrD,CAAC"}
@@ -0,0 +1,113 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Option from "effect/Option";
3
+ import * as Redacted from "effect/Redacted";
4
+ import * as Output from "../../Output.js";
5
+ import { makeRequestHandler } from "./HttpServer.js";
6
+ import { ExportedHandlerMethods, WorkerEnvironment, WorkerTypeId, } from "./Worker.js";
7
+ export const makeWorkerRuntimeContext = (id) => {
8
+ const listeners = [];
9
+ const exports = {};
10
+ const env = {};
11
+ let userShape;
12
+ const ctx = {
13
+ Type: WorkerTypeId,
14
+ id,
15
+ env,
16
+ shape: () => userShape,
17
+ get: (key) => Effect.serviceOption(WorkerEnvironment).pipe(Effect.map(Option.getOrUndefined), Effect.flatMap((env) => env
18
+ ? Effect.succeed(env[key])
19
+ : Effect.die("WorkerEnvironment not found")), Effect.flatMap((value) => value
20
+ ? Effect.succeed(value)
21
+ : Effect.die(`Environment variable '${key}' not found`)), Effect.map((json) => {
22
+ try {
23
+ const value = JSON.parse(json);
24
+ // The `set` path serializes Redacted values as
25
+ // `{_tag: "Redacted", value: ...}`. After JSON.parse the
26
+ // result is a plain object — `Redacted.isRedacted` would
27
+ // always return `false` on it — so detect the marker shape
28
+ // and rebuild the Redacted wrapper. Plain values pass
29
+ // through unchanged.
30
+ if (value !== null &&
31
+ typeof value === "object" &&
32
+ value._tag === "Redacted" &&
33
+ "value" in value) {
34
+ return Redacted.make(value.value);
35
+ }
36
+ return value;
37
+ }
38
+ catch {
39
+ return json;
40
+ }
41
+ })),
42
+ set: (id, output) => Effect.sync(() => {
43
+ const key = id.replaceAll(/[^a-zA-Z0-9]/g, "_");
44
+ // Preserve `Redacted`-ness across the Output → env → Cloudflare
45
+ // binding boundary so the put-worker loop can deploy secrets via
46
+ // `secret_text` instead of leaking them as `plain_text`. The JSON
47
+ // payload still carries the `{_tag: "Redacted", …}` marker so the
48
+ // runtime `get` accessor can rebuild the wrapper after Cloudflare
49
+ // hands the binding back as a plain string.
50
+ env[key] = output.pipe(Output.map((value) => Redacted.isRedacted(value)
51
+ ? Redacted.make(JSON.stringify({
52
+ _tag: "Redacted",
53
+ value: Redacted.value(value),
54
+ }))
55
+ : JSON.stringify(value)));
56
+ return key;
57
+ }),
58
+ serve: (handler, options) => {
59
+ // Capture the user's full default-export shape so `exports` can
60
+ // expose any non-handler methods on it as RPC methods on the
61
+ // deployed `WorkerEntrypoint` subclass — see `__rpc__` below.
62
+ if (options?.shape)
63
+ userShape = options.shape;
64
+ return ctx.listen(makeRequestHandler(handler));
65
+ },
66
+ listen: ((handler) => Effect.sync(() => Effect.isEffect(handler)
67
+ ? listeners.push(handler)
68
+ : listeners.push(Effect.succeed(handler)))),
69
+ export: (name, value) => Effect.sync(() => {
70
+ exports[name] = value;
71
+ }),
72
+ exports: Effect.gen(function* () {
73
+ const handlers = yield* Effect.all(listeners, {
74
+ concurrency: "unbounded",
75
+ });
76
+ const services = yield* Effect.context();
77
+ const dispatch = (type) => (request, env, context) => {
78
+ const event = {
79
+ kind: "Cloudflare.Workers.WorkerEvent",
80
+ type,
81
+ input: request,
82
+ env,
83
+ context,
84
+ };
85
+ for (const handler of handlers) {
86
+ const eff = handler(event);
87
+ if (Effect.isEffect(eff)) {
88
+ return [eff, services];
89
+ }
90
+ }
91
+ return [
92
+ Effect.die(new Error(`No event handler found for event type '${type}'`)),
93
+ services,
94
+ ];
95
+ };
96
+ // RPC method dispatchers — one per non-handler method on the user's
97
+ // shape. Each dispatcher is invoked by the WorkerEntrypoint bridge
98
+ // as `dispatcher(args, ctx)`: `args` are the user-facing call args,
99
+ // `ctx` is the `this.ctx` that Cloudflare hands the bridge per RPC
100
+ // request. The dispatcher runs the user effect with the same runtime
101
+ // layer the fetch path uses, then envelope-encodes the result so
102
+ // `Effect.fail` round-trips as `RpcErrorEnvelope` and `Stream` as
103
+ // `RpcStreamEnvelope` (consumers wrap the binding with
104
+ // `toPromiseApi`/`bindWorker` to decode).
105
+ return {
106
+ ...exports,
107
+ default: Object.fromEntries(ExportedHandlerMethods.map((method) => [method, dispatch(method)])),
108
+ };
109
+ }),
110
+ };
111
+ return ctx;
112
+ };
113
+ //# sourceMappingURL=WorkerRuntimeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerRuntimeContext.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerRuntimeContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import * as Effect from "effect/Effect";
2
+ import { type WorkflowImpl } from "./Workflow.ts";
3
+ /**
4
+ * Create a WorkflowBridge class that extends `WorkflowEntrypoint` and
5
+ * delegates the `run(event, step)` call to the Effect-native workflow body
6
+ * registered via `worker.export(...)`.
7
+ *
8
+ * The bridge provides `WorkflowEvent` and `WorkflowStep` as Effect
9
+ * services so the user writes `yield* WorkflowEvent` and `yield* task(...)`
10
+ * instead of receiving callback parameters.
11
+ */
12
+ export declare const makeWorkflowBridge: (WorkflowEntrypoint: abstract new (ctx: unknown, env: unknown) => {
13
+ run(event: any, step: any): Promise<unknown>;
14
+ }, { entrypoint, stack, }: {
15
+ entrypoint: Effect.Effect<Record<string, any>>;
16
+ stack: {
17
+ name: string;
18
+ stage: string;
19
+ };
20
+ }) => (className: string) => {
21
+ new (ctx: unknown, env: unknown): {
22
+ readonly fn: Promise<WorkflowImpl<unknown, unknown>>;
23
+ run(event: any, step: any): Promise<unknown>;
24
+ };
25
+ };
26
+ //# sourceMappingURL=WorkflowBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowBridge.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkflowBridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,eAAe,CAAC;AAGvB;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAE3B,oBAAoB,QAAQ,MAC1B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,OAAO,KACT;IAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,EACrD,wBAGG;IACD,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/C,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC,MAEF,WAAW,MAAM;cAIG,OAAO,OAAO,OAAO;qBAFzB,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;mBAkBnC,GAAG,QAAQ,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;;CAYnD,CAAC"}
@@ -0,0 +1,41 @@
1
+ import * as Effect from "effect/Effect";
2
+ import { WorkflowEvent as WorkflowEventService, WorkflowStep, } from "./Workflow.js";
3
+ import { getWorkerExport } from "./WorkerBridge.js";
4
+ /**
5
+ * Create a WorkflowBridge class that extends `WorkflowEntrypoint` and
6
+ * delegates the `run(event, step)` call to the Effect-native workflow body
7
+ * registered via `worker.export(...)`.
8
+ *
9
+ * The bridge provides `WorkflowEvent` and `WorkflowStep` as Effect
10
+ * services so the user writes `yield* WorkflowEvent` and `yield* task(...)`
11
+ * instead of receiving callback parameters.
12
+ */
13
+ export const makeWorkflowBridge = (WorkflowEntrypoint, { entrypoint, stack, }) => (className) => class WorkflowBridge extends WorkflowEntrypoint {
14
+ fn;
15
+ constructor(ctx, env) {
16
+ super(ctx, env);
17
+ const { globalContext, exported } = getWorkerExport({
18
+ entrypoint,
19
+ stack,
20
+ exportName: className,
21
+ });
22
+ this.fn = exported.pipe(Effect.flatMap((wf) => wf.make(env)), Effect.provide(globalContext), Effect.runPromise);
23
+ }
24
+ async run(event, step) {
25
+ const fn = await this.fn;
26
+ return Effect.runPromise(fn(event.payload).pipe(Effect.provideService(WorkflowEventService, wrapWorkflowEvent(event)), Effect.provideService(WorkflowStep, wrapWorkflowStep(step))));
27
+ }
28
+ };
29
+ const wrapWorkflowEvent = (event) => ({
30
+ payload: event.payload,
31
+ timestamp: event.timestamp instanceof Date
32
+ ? event.timestamp
33
+ : new Date(event.timestamp),
34
+ instanceId: event.instanceId ?? "",
35
+ });
36
+ const wrapWorkflowStep = (step) => ({
37
+ do: (name, effect) => Effect.tryPromise(() => step.do(name, () => Effect.runPromise(effect))),
38
+ sleep: (name, duration) => Effect.tryPromise(() => step.sleep(name, duration)),
39
+ sleepUntil: (name, timestamp) => Effect.tryPromise(() => step.sleepUntil(name, timestamp instanceof Date ? timestamp.toISOString() : timestamp)),
40
+ });
41
+ //# sourceMappingURL=WorkflowBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowBridge.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkflowBridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,aAAa,IAAI,oBAAoB,EAGrC,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAC7B,CACE,kBAGqD,EACrD,EACE,UAAU,EACV,KAAK,GAIN,EACD,EAAE,CACJ,CAAC,SAAiB,EAAE,EAAE,CACpB,MAAM,cAAe,SAAQ,kBAAkB;IACpC,EAAE,CAA0C;IAErD,YAAY,GAAY,EAAE,GAAY;QACpC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEhB,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAiB;YAClE,UAAU;YACV,KAAK;YACL,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CACrB,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACpC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAC7B,MAAM,CAAC,UAAU,CACyB,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAU,EAAE,IAAS;QAC7B,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,UAAU,CACtB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CACpB,MAAM,CAAC,cAAc,CACnB,oBAAoB,EACpB,iBAAiB,CAAC,KAAK,CAAC,CACzB,EACD,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAClC,CAC5B,CAAC;IACJ,CAAC;CACF,CAAC;AAEN,MAAM,iBAAiB,GAAG,CACxB,KAAU,EACiD,EAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,KAAK,CAAC,OAAO;IACtB,SAAS,EACP,KAAK,CAAC,SAAS,YAAY,IAAI;QAC7B,CAAC,CAAC,KAAK,CAAC,SAAS;QACjB,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC/B,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;CACnC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,IAAS,EAA2B,EAAE,CAAC,CAAC;IAChE,EAAE,EAAE,CAAI,IAAY,EAAE,MAAwB,EAAoB,EAAE,CAClE,MAAM,CAAC,UAAU,CACf,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAe,CACnE;IACH,KAAK,EAAE,CAAC,IAAY,EAAE,QAAyB,EAAuB,EAAE,CACtE,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrD,UAAU,EAAE,CAAC,IAAY,EAAE,SAAwB,EAAuB,EAAE,CAC1E,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CACrB,IAAI,CAAC,UAAU,CACb,IAAI,EACJ,SAAS,YAAY,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAChE,CACF;CACJ,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export * from "./Assets.ts";
2
2
  export * from "./ConfigProvider.ts";
3
3
  export * from "./CronEventSource.ts";
4
+ export * from "./DurableObjectBridge.ts";
4
5
  export * from "./DurableObjectNamespace.ts";
5
6
  export * from "./DurableObjectState.ts";
6
7
  export * from "./DurableObjectStorage.ts";
@@ -14,5 +15,8 @@ export * from "./Rpc.ts";
14
15
  export * from "./ScheduledEvents.ts";
15
16
  export * from "./WebSocket.ts";
16
17
  export * from "./Worker.ts";
18
+ export * from "./WorkerBinding.ts";
19
+ export * from "./WorkerBridge.ts";
17
20
  export * from "./Workflow.ts";
21
+ export * from "./WorkflowBridge.ts";
18
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export * from "./Assets.js";
2
2
  export * from "./ConfigProvider.js";
3
3
  export * from "./CronEventSource.js";
4
+ export * from "./DurableObjectBridge.js";
4
5
  export * from "./DurableObjectNamespace.js";
5
6
  export * from "./DurableObjectState.js";
6
7
  export * from "./DurableObjectStorage.js";
@@ -14,5 +15,8 @@ export * from "./Rpc.js";
14
15
  export * from "./ScheduledEvents.js";
15
16
  export * from "./WebSocket.js";
16
17
  export * from "./Worker.js";
18
+ export * from "./WorkerBinding.js";
19
+ export * from "./WorkerBridge.js";
17
20
  export * from "./Workflow.js";
21
+ export * from "./WorkflowBridge.js";
18
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC"}
@@ -1,11 +1,12 @@
1
- export * from "./ApiToken/index.ts";
2
- export * from "./Artifacts/index.ts";
3
1
  export * from "./AiGateway/index.ts";
4
2
  export * from "./AnalyticsEngine/index.ts";
3
+ export * from "./ApiToken/index.ts";
4
+ export * from "./Artifacts/index.ts";
5
5
  export * from "./CloudflareEnvironment.ts";
6
6
  export * from "./Container/index.ts";
7
7
  export * from "./D1/index.ts";
8
8
  export * from "./EdgeSession.ts";
9
+ export * from "./Fetcher.ts";
9
10
  export * from "./Email/index.ts";
10
11
  export * from "./Hyperdrive/index.ts";
11
12
  export * from "./Images/index.ts";
@@ -19,4 +20,5 @@ export * from "./Tunnel/index.ts";
19
20
  export * from "./VpcService/index.ts";
20
21
  export * from "./Website/index.ts";
21
22
  export * from "./Workers/index.ts";
23
+ export * from "./Workers/RpcAsync.ts";
22
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}