alchemy 2.0.0-beta.22 → 2.0.0-beta.24

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 (186) hide show
  1. package/bin/alchemy.js +12590 -2452
  2. package/bin/alchemy.js.map +1 -1
  3. package/bin/alchemy.ts +2 -0
  4. package/bin/cli.js +18 -0
  5. package/bin/commands/bootstrap.ts +88 -4
  6. package/bin/commands/deploy.ts +54 -20
  7. package/bin/commands/dev.ts +45 -0
  8. package/bin/commands/logs.ts +1 -1
  9. package/bin/commands/tail.ts +1 -1
  10. package/bin/exec.ts +22 -0
  11. package/lib/AWS/Lambda/Function.d.ts.map +1 -1
  12. package/lib/AWS/Lambda/Function.js +25 -21
  13. package/lib/AWS/Lambda/Function.js.map +1 -1
  14. package/lib/AWS/Lambda/HttpServer.d.ts.map +1 -1
  15. package/lib/AWS/Lambda/HttpServer.js +3 -1
  16. package/lib/AWS/Lambda/HttpServer.js.map +1 -1
  17. package/lib/AdoptPolicy.d.ts +2 -2
  18. package/lib/AdoptPolicy.d.ts.map +1 -1
  19. package/lib/AdoptPolicy.js.map +1 -1
  20. package/lib/AlchemyContext.d.ts +1 -0
  21. package/lib/AlchemyContext.d.ts.map +1 -1
  22. package/lib/AlchemyContext.js +1 -0
  23. package/lib/AlchemyContext.js.map +1 -1
  24. package/lib/Build/Command.d.ts.map +1 -1
  25. package/lib/Build/Command.js +8 -1
  26. package/lib/Build/Command.js.map +1 -1
  27. package/lib/Bundle/Bundle.d.ts +21 -9
  28. package/lib/Bundle/Bundle.d.ts.map +1 -1
  29. package/lib/Bundle/Bundle.js +29 -15
  30. package/lib/Bundle/Bundle.js.map +1 -1
  31. package/lib/Cloudflare/Container/Container.d.ts +55 -2
  32. package/lib/Cloudflare/Container/Container.d.ts.map +1 -1
  33. package/lib/Cloudflare/Container/Container.js +55 -2
  34. package/lib/Cloudflare/Container/Container.js.map +1 -1
  35. package/lib/Cloudflare/D1/D1Export.d.ts.map +1 -1
  36. package/lib/Cloudflare/D1/D1Export.js.map +1 -1
  37. package/lib/Cloudflare/D1/D1SqlFile.d.ts.map +1 -1
  38. package/lib/Cloudflare/D1/D1SqlFile.js.map +1 -1
  39. package/lib/Cloudflare/Local/Sidecar.d.ts +27 -0
  40. package/lib/Cloudflare/Local/Sidecar.d.ts.map +1 -0
  41. package/lib/Cloudflare/Local/Sidecar.js +24 -0
  42. package/lib/Cloudflare/Local/Sidecar.js.map +1 -0
  43. package/lib/Cloudflare/Local/SidecarHandlers.d.ts +5 -0
  44. package/lib/Cloudflare/Local/SidecarHandlers.d.ts.map +1 -0
  45. package/lib/Cloudflare/Local/SidecarHandlers.js +119 -0
  46. package/lib/Cloudflare/Local/SidecarHandlers.js.map +1 -0
  47. package/lib/Cloudflare/Local/SidecarServer.d.ts +2 -0
  48. package/lib/Cloudflare/Local/SidecarServer.d.ts.map +1 -0
  49. package/lib/Cloudflare/Local/SidecarServer.js +27 -0
  50. package/lib/Cloudflare/Local/SidecarServer.js.map +1 -0
  51. package/lib/Cloudflare/Queue/Queue.d.ts +34 -4
  52. package/lib/Cloudflare/Queue/Queue.d.ts.map +1 -1
  53. package/lib/Cloudflare/Queue/Queue.js +34 -4
  54. package/lib/Cloudflare/Queue/Queue.js.map +1 -1
  55. package/lib/Cloudflare/Queue/QueueBinding.d.ts +33 -0
  56. package/lib/Cloudflare/Queue/QueueBinding.d.ts.map +1 -1
  57. package/lib/Cloudflare/Queue/QueueBinding.js +33 -0
  58. package/lib/Cloudflare/Queue/QueueBinding.js.map +1 -1
  59. package/lib/Cloudflare/SecretsStore/Secret.d.ts.map +1 -1
  60. package/lib/Cloudflare/SecretsStore/Secret.js +55 -7
  61. package/lib/Cloudflare/SecretsStore/Secret.js.map +1 -1
  62. package/lib/Cloudflare/SecretsStore/SecretsStore.d.ts.map +1 -1
  63. package/lib/Cloudflare/SecretsStore/SecretsStore.js +35 -11
  64. package/lib/Cloudflare/SecretsStore/SecretsStore.js.map +1 -1
  65. package/lib/Cloudflare/StateStore/State.d.ts +35 -0
  66. package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
  67. package/lib/Cloudflare/StateStore/State.js +187 -45
  68. package/lib/Cloudflare/StateStore/State.js.map +1 -1
  69. package/lib/Cloudflare/StateStore/index.d.ts +1 -1
  70. package/lib/Cloudflare/StateStore/index.d.ts.map +1 -1
  71. package/lib/Cloudflare/StateStore/index.js +1 -1
  72. package/lib/Cloudflare/StateStore/index.js.map +1 -1
  73. package/lib/Cloudflare/Workers/Assets.d.ts +1 -1
  74. package/lib/Cloudflare/Workers/Assets.d.ts.map +1 -1
  75. package/lib/Cloudflare/Workers/Assets.js +6 -1
  76. package/lib/Cloudflare/Workers/Assets.js.map +1 -1
  77. package/lib/Cloudflare/Workers/Compatibility.d.ts +6 -0
  78. package/lib/Cloudflare/Workers/Compatibility.d.ts.map +1 -0
  79. package/lib/Cloudflare/Workers/Compatibility.js +10 -0
  80. package/lib/Cloudflare/Workers/Compatibility.js.map +1 -0
  81. package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts +103 -6
  82. package/lib/Cloudflare/Workers/DurableObjectNamespace.d.ts.map +1 -1
  83. package/lib/Cloudflare/Workers/DurableObjectNamespace.js +103 -6
  84. package/lib/Cloudflare/Workers/DurableObjectNamespace.js.map +1 -1
  85. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +7 -0
  86. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -0
  87. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +81 -0
  88. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -0
  89. package/lib/Cloudflare/Workers/Worker.d.ts +3 -1
  90. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  91. package/lib/Cloudflare/Workers/Worker.js +54 -7
  92. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  93. package/lib/Cloudflare/Workers/WorkerBundle.d.ts +31 -0
  94. package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -0
  95. package/lib/Cloudflare/Workers/WorkerBundle.js +174 -0
  96. package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -0
  97. package/lib/Cloudflare/Workers/WorkerName.d.ts +3 -0
  98. package/lib/Cloudflare/Workers/WorkerName.d.ts.map +1 -0
  99. package/lib/Cloudflare/Workers/WorkerName.js +9 -0
  100. package/lib/Cloudflare/Workers/WorkerName.js.map +1 -0
  101. package/lib/Cloudflare/Workers/Workflow.d.ts +94 -0
  102. package/lib/Cloudflare/Workers/Workflow.d.ts.map +1 -1
  103. package/lib/Cloudflare/Workers/Workflow.js +94 -0
  104. package/lib/Cloudflare/Workers/Workflow.js.map +1 -1
  105. package/lib/Cloudflare/Workers/index.d.ts +1 -0
  106. package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
  107. package/lib/Cloudflare/Workers/index.js +1 -0
  108. package/lib/Cloudflare/Workers/index.js.map +1 -1
  109. package/lib/Platform.d.ts +1 -1
  110. package/lib/Platform.d.ts.map +1 -1
  111. package/lib/Platform.js +1 -1
  112. package/lib/Platform.js.map +1 -1
  113. package/lib/Sidecar/Lock.d.ts +24 -0
  114. package/lib/Sidecar/Lock.d.ts.map +1 -0
  115. package/lib/Sidecar/Lock.js +102 -0
  116. package/lib/Sidecar/Lock.js.map +1 -0
  117. package/lib/Sidecar/RpcClient.d.ts +15 -0
  118. package/lib/Sidecar/RpcClient.d.ts.map +1 -0
  119. package/lib/Sidecar/RpcClient.js +75 -0
  120. package/lib/Sidecar/RpcClient.js.map +1 -0
  121. package/lib/Sidecar/RpcHandler.d.ts +48 -0
  122. package/lib/Sidecar/RpcHandler.d.ts.map +1 -0
  123. package/lib/Sidecar/RpcHandler.js +64 -0
  124. package/lib/Sidecar/RpcHandler.js.map +1 -0
  125. package/lib/Sidecar/RpcPaths.d.ts +14 -0
  126. package/lib/Sidecar/RpcPaths.d.ts.map +1 -0
  127. package/lib/Sidecar/RpcPaths.js +22 -0
  128. package/lib/Sidecar/RpcPaths.js.map +1 -0
  129. package/lib/Sidecar/RpcServer.d.ts +10 -0
  130. package/lib/Sidecar/RpcServer.d.ts.map +1 -0
  131. package/lib/Sidecar/RpcServer.js +50 -0
  132. package/lib/Sidecar/RpcServer.js.map +1 -0
  133. package/lib/Sidecar/RpcTransport.d.ts +22 -0
  134. package/lib/Sidecar/RpcTransport.d.ts.map +1 -0
  135. package/lib/Sidecar/RpcTransport.js +81 -0
  136. package/lib/Sidecar/RpcTransport.js.map +1 -0
  137. package/lib/Telemetry/Metrics.d.ts +15 -0
  138. package/lib/Telemetry/Metrics.d.ts.map +1 -1
  139. package/lib/Telemetry/Metrics.js +20 -0
  140. package/lib/Telemetry/Metrics.js.map +1 -1
  141. package/lib/Util/PlatformServices.d.ts +3 -0
  142. package/lib/Util/PlatformServices.d.ts.map +1 -1
  143. package/lib/Util/PlatformServices.js +13 -0
  144. package/lib/Util/PlatformServices.js.map +1 -1
  145. package/lib/Util/layer-scoped.d.ts +16 -0
  146. package/lib/Util/layer-scoped.d.ts.map +1 -0
  147. package/lib/Util/layer-scoped.js +14 -0
  148. package/lib/Util/layer-scoped.js.map +1 -0
  149. package/package.json +4 -2
  150. package/src/AWS/Lambda/Function.ts +30 -24
  151. package/src/AWS/Lambda/HttpServer.ts +3 -1
  152. package/src/AdoptPolicy.ts +9 -9
  153. package/src/AlchemyContext.ts +2 -0
  154. package/src/Build/Command.ts +8 -1
  155. package/src/Bundle/Bundle.ts +65 -25
  156. package/src/Cloudflare/Container/Container.ts +55 -2
  157. package/src/Cloudflare/D1/D1Export.ts +1 -5
  158. package/src/Cloudflare/D1/D1SqlFile.ts +1 -3
  159. package/src/Cloudflare/Local/Sidecar.ts +44 -0
  160. package/src/Cloudflare/Local/SidecarHandlers.ts +182 -0
  161. package/src/Cloudflare/Local/SidecarServer.ts +57 -0
  162. package/src/Cloudflare/Queue/Queue.ts +34 -4
  163. package/src/Cloudflare/Queue/QueueBinding.ts +33 -0
  164. package/src/Cloudflare/SecretsStore/Secret.ts +78 -7
  165. package/src/Cloudflare/SecretsStore/SecretsStore.ts +47 -12
  166. package/src/Cloudflare/StateStore/State.ts +281 -64
  167. package/src/Cloudflare/StateStore/index.ts +1 -1
  168. package/src/Cloudflare/Workers/Assets.ts +10 -1
  169. package/src/Cloudflare/Workers/Compatibility.ts +12 -0
  170. package/src/Cloudflare/Workers/DurableObjectNamespace.ts +103 -6
  171. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +93 -0
  172. package/src/Cloudflare/Workers/Worker.ts +102 -19
  173. package/src/Cloudflare/Workers/WorkerBundle.ts +234 -0
  174. package/src/Cloudflare/Workers/WorkerName.ts +10 -0
  175. package/src/Cloudflare/Workers/Workflow.ts +94 -0
  176. package/src/Cloudflare/Workers/index.ts +1 -0
  177. package/src/Platform.ts +2 -2
  178. package/src/Sidecar/Lock.ts +190 -0
  179. package/src/Sidecar/RpcClient.ts +141 -0
  180. package/src/Sidecar/RpcHandler.ts +169 -0
  181. package/src/Sidecar/RpcPaths.ts +29 -0
  182. package/src/Sidecar/RpcServer.ts +80 -0
  183. package/src/Sidecar/RpcTransport.ts +85 -0
  184. package/src/Telemetry/Metrics.ts +38 -0
  185. package/src/Util/PlatformServices.ts +19 -0
  186. package/src/Util/layer-scoped.ts +25 -0
@@ -209,6 +209,51 @@ export declare class DurableObjectNamespaceScope extends DurableObjectNamespaceS
209
209
  * };
210
210
  * ```
211
211
  *
212
+ * @section Returning Streams from RPC
213
+ * RPC methods can return an Effect `Stream` and the caller will see
214
+ * the chunks as they're produced. Combine with `Stream.schedule` to
215
+ * pace emission, or with `Stream.fromQueue` to bridge an inbound
216
+ * subscription.
217
+ *
218
+ * @example Streaming sequential numbers
219
+ * ```typescript
220
+ * import * as Schedule from "effect/Schedule";
221
+ * import * as Stream from "effect/Stream";
222
+ *
223
+ * return {
224
+ * tick: (n: number) =>
225
+ * Stream.iterate(0, (i) => i + 1).pipe(
226
+ * Stream.take(n),
227
+ * Stream.schedule(Schedule.spaced("100 millis")),
228
+ * ),
229
+ * };
230
+ * ```
231
+ *
232
+ * @example Forwarding the stream as a chunked HTTP response
233
+ * ```typescript
234
+ * // in a Worker fetch handler
235
+ * const counter = counters.getByName("tick");
236
+ * const stream = counter.tick(5).pipe(
237
+ * Stream.map((i) => `${i}\n`),
238
+ * Stream.encodeText,
239
+ * );
240
+ * return HttpServerResponse.stream(stream, {
241
+ * headers: { "content-type": "text/plain" },
242
+ * });
243
+ * ```
244
+ *
245
+ * @section Worker → DO HTTP forwarding
246
+ * In addition to RPC methods, the typed stub exposes a `fetch`
247
+ * method that forwards an `HttpServerRequest` straight to the DO.
248
+ * The DO's own `fetch` Effect produces the response — useful for
249
+ * WebSocket upgrades and other request-shaped interactions.
250
+ *
251
+ * @example Forwarding an HTTP request to a DO
252
+ * ```typescript
253
+ * const room = rooms.getByName(roomId);
254
+ * return yield* room.fetch(request);
255
+ * ```
256
+ *
212
257
  * @section Accessing Instance State
213
258
  * Each Durable Object instance has its own transactional key-value
214
259
  * storage via `Cloudflare.DurableObjectState`. Use `storage.get` and
@@ -264,14 +309,66 @@ export declare class DurableObjectNamespaceScope extends DurableObjectNamespaceS
264
309
  * ```
265
310
  *
266
311
  * @example Recovering sessions after hibernation
312
+ * Place the rehydration loop **inside the inner `Effect.gen`** so
313
+ * it runs every time the DO instance is reconstructed (including
314
+ * after Cloudflare wakes the DO from hibernation).
315
+ *
267
316
  * ```typescript
268
- * const state = yield* Cloudflare.DurableObjectState;
269
- * const sockets = yield* state.getWebSockets();
317
+ * return Effect.gen(function* () {
318
+ * const state = yield* Cloudflare.DurableObjectState;
319
+ * const sessions = new Map<string, Cloudflare.DurableWebSocket>();
320
+ *
321
+ * // Rehydrate the in-memory session map after hibernation.
322
+ * for (const socket of yield* state.getWebSockets()) {
323
+ * const data = socket.deserializeAttachment<{ id: string }>();
324
+ * if (data) sessions.set(data.id, socket);
325
+ * }
270
326
  *
271
- * for (const socket of sockets) {
272
- * const data = socket.deserializeAttachment<{ id: string }>();
273
- * // re-populate your session map
274
- * }
327
+ * return {
328
+ * fetch: Effect.gen(function* () {
329
+ * const [response, socket] = yield* Cloudflare.upgrade();
330
+ * const id = crypto.randomUUID();
331
+ * socket.serializeAttachment({ id });
332
+ * sessions.set(id, socket);
333
+ * return response;
334
+ * }),
335
+ * webSocketMessage: Effect.fnUntraced(function* (socket, message) {
336
+ * const text =
337
+ * typeof message === "string" ? message : new TextDecoder().decode(message);
338
+ * for (const peer of sessions.values()) {
339
+ * yield* peer.send(text);
340
+ * }
341
+ * }),
342
+ * };
343
+ * });
344
+ * ```
345
+ *
346
+ * @section Scheduled Alarms
347
+ * Each Durable Object can have a single alarm timestamp. Alchemy
348
+ * layers a small SQLite-backed scheduler on top via
349
+ * `Cloudflare.scheduleEvent` and `Cloudflare.processScheduledEvents`,
350
+ * so you can register many named events with arbitrary payloads and
351
+ * fire them from a single `alarm` handler.
352
+ *
353
+ * @example Scheduling and processing events
354
+ * ```typescript
355
+ * // schedule from a request or message handler
356
+ * yield* Cloudflare.scheduleEvent(
357
+ * "reminder-1",
358
+ * new Date(Date.now() + 60_000),
359
+ * { message: "your meeting starts in a minute" },
360
+ * );
361
+ *
362
+ * return {
363
+ * alarm: () =>
364
+ * Effect.gen(function* () {
365
+ * const fired = yield* Cloudflare.processScheduledEvents;
366
+ * for (const event of fired) {
367
+ * const payload = event.payload as { message: string };
368
+ * // dispatch / broadcast / persist...
369
+ * }
370
+ * }),
371
+ * };
275
372
  * ```
276
373
  *
277
374
  * @section Using from a Worker
@@ -1 +1 @@
1
- {"version":3,"file":"DurableObjectNamespace.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/DurableObjectNamespace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DurableObjectNamespace.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/DurableObjectNamespace.ts"],"names":[],"mappings":"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"}
@@ -163,6 +163,51 @@ export class DurableObjectNamespaceScope extends Context.Service()("Cloudflare.D
163
163
  * };
164
164
  * ```
165
165
  *
166
+ * @section Returning Streams from RPC
167
+ * RPC methods can return an Effect `Stream` and the caller will see
168
+ * the chunks as they're produced. Combine with `Stream.schedule` to
169
+ * pace emission, or with `Stream.fromQueue` to bridge an inbound
170
+ * subscription.
171
+ *
172
+ * @example Streaming sequential numbers
173
+ * ```typescript
174
+ * import * as Schedule from "effect/Schedule";
175
+ * import * as Stream from "effect/Stream";
176
+ *
177
+ * return {
178
+ * tick: (n: number) =>
179
+ * Stream.iterate(0, (i) => i + 1).pipe(
180
+ * Stream.take(n),
181
+ * Stream.schedule(Schedule.spaced("100 millis")),
182
+ * ),
183
+ * };
184
+ * ```
185
+ *
186
+ * @example Forwarding the stream as a chunked HTTP response
187
+ * ```typescript
188
+ * // in a Worker fetch handler
189
+ * const counter = counters.getByName("tick");
190
+ * const stream = counter.tick(5).pipe(
191
+ * Stream.map((i) => `${i}\n`),
192
+ * Stream.encodeText,
193
+ * );
194
+ * return HttpServerResponse.stream(stream, {
195
+ * headers: { "content-type": "text/plain" },
196
+ * });
197
+ * ```
198
+ *
199
+ * @section Worker → DO HTTP forwarding
200
+ * In addition to RPC methods, the typed stub exposes a `fetch`
201
+ * method that forwards an `HttpServerRequest` straight to the DO.
202
+ * The DO's own `fetch` Effect produces the response — useful for
203
+ * WebSocket upgrades and other request-shaped interactions.
204
+ *
205
+ * @example Forwarding an HTTP request to a DO
206
+ * ```typescript
207
+ * const room = rooms.getByName(roomId);
208
+ * return yield* room.fetch(request);
209
+ * ```
210
+ *
166
211
  * @section Accessing Instance State
167
212
  * Each Durable Object instance has its own transactional key-value
168
213
  * storage via `Cloudflare.DurableObjectState`. Use `storage.get` and
@@ -218,14 +263,66 @@ export class DurableObjectNamespaceScope extends Context.Service()("Cloudflare.D
218
263
  * ```
219
264
  *
220
265
  * @example Recovering sessions after hibernation
266
+ * Place the rehydration loop **inside the inner `Effect.gen`** so
267
+ * it runs every time the DO instance is reconstructed (including
268
+ * after Cloudflare wakes the DO from hibernation).
269
+ *
221
270
  * ```typescript
222
- * const state = yield* Cloudflare.DurableObjectState;
223
- * const sockets = yield* state.getWebSockets();
271
+ * return Effect.gen(function* () {
272
+ * const state = yield* Cloudflare.DurableObjectState;
273
+ * const sessions = new Map<string, Cloudflare.DurableWebSocket>();
274
+ *
275
+ * // Rehydrate the in-memory session map after hibernation.
276
+ * for (const socket of yield* state.getWebSockets()) {
277
+ * const data = socket.deserializeAttachment<{ id: string }>();
278
+ * if (data) sessions.set(data.id, socket);
279
+ * }
224
280
  *
225
- * for (const socket of sockets) {
226
- * const data = socket.deserializeAttachment<{ id: string }>();
227
- * // re-populate your session map
228
- * }
281
+ * return {
282
+ * fetch: Effect.gen(function* () {
283
+ * const [response, socket] = yield* Cloudflare.upgrade();
284
+ * const id = crypto.randomUUID();
285
+ * socket.serializeAttachment({ id });
286
+ * sessions.set(id, socket);
287
+ * return response;
288
+ * }),
289
+ * webSocketMessage: Effect.fnUntraced(function* (socket, message) {
290
+ * const text =
291
+ * typeof message === "string" ? message : new TextDecoder().decode(message);
292
+ * for (const peer of sessions.values()) {
293
+ * yield* peer.send(text);
294
+ * }
295
+ * }),
296
+ * };
297
+ * });
298
+ * ```
299
+ *
300
+ * @section Scheduled Alarms
301
+ * Each Durable Object can have a single alarm timestamp. Alchemy
302
+ * layers a small SQLite-backed scheduler on top via
303
+ * `Cloudflare.scheduleEvent` and `Cloudflare.processScheduledEvents`,
304
+ * so you can register many named events with arbitrary payloads and
305
+ * fire them from a single `alarm` handler.
306
+ *
307
+ * @example Scheduling and processing events
308
+ * ```typescript
309
+ * // schedule from a request or message handler
310
+ * yield* Cloudflare.scheduleEvent(
311
+ * "reminder-1",
312
+ * new Date(Date.now() + 60_000),
313
+ * { message: "your meeting starts in a minute" },
314
+ * );
315
+ *
316
+ * return {
317
+ * alarm: () =>
318
+ * Effect.gen(function* () {
319
+ * const fired = yield* Cloudflare.processScheduledEvents;
320
+ * for (const event of fired) {
321
+ * const payload = event.payload as { message: string };
322
+ * // dispatch / broadcast / persist...
323
+ * }
324
+ * }),
325
+ * };
229
326
  * ```
230
327
  *
231
328
  * @section Using from a Worker
@@ -1 +1 @@
1
- {"version":3,"file":"DurableObjectNamespace.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/DurableObjectNamespace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DurableObjectNamespace.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/DurableObjectNamespace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import * as Provider from "../../Provider.ts";
2
+ import { Stack } from "../../Stack.ts";
3
+ import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
4
+ import { Sidecar } from "../Local/Sidecar.ts";
5
+ import { Worker } from "./Worker.ts";
6
+ export declare const LocalWorkerProvider: () => import("effect/Layer").Layer<Provider.Provider<Worker<any>>, never, import("../../Stage.ts").Stage | Stack | CloudflareEnvironment | Sidecar>;
7
+ //# sourceMappingURL=LocalWorkerProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalWorkerProvider.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/LocalWorkerProvider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAwC,MAAM,aAAa,CAAC;AAG3E,eAAO,MAAM,mBAAmB,qJAiF7B,CAAC"}
@@ -0,0 +1,81 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Redacted from "effect/Redacted";
3
+ import * as Provider from "../../Provider.js";
4
+ import { Stack } from "../../Stack.js";
5
+ import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
6
+ import { Sidecar } from "../Local/Sidecar.js";
7
+ import { getCompatibility } from "./Compatibility.js";
8
+ import { Worker } from "./Worker.js";
9
+ import { createWorkerName } from "./WorkerName.js";
10
+ export const LocalWorkerProvider = () => Provider.effect(Worker, Effect.gen(function* () {
11
+ const { accountId } = yield* CloudflareEnvironment;
12
+ const stack = yield* Stack;
13
+ const sidecar = yield* Sidecar;
14
+ const run = Effect.fn(function* (id, props, bindings) {
15
+ const name = yield* createWorkerName(id, props.name);
16
+ const workerBindings = [];
17
+ const durableObjectNamespaces = {};
18
+ for (const { sid, data } of bindings) {
19
+ for (const binding of data.bindings ?? []) {
20
+ workerBindings.push(binding);
21
+ if (binding.type === "durable_object_namespace") {
22
+ durableObjectNamespaces[binding.name] = sid;
23
+ }
24
+ }
25
+ }
26
+ for (const [key, value] of Object.entries(props.env ?? {})) {
27
+ if (Redacted.isRedacted(value)) {
28
+ workerBindings.push({
29
+ type: "secret_text",
30
+ name: key,
31
+ text: Redacted.value(value),
32
+ });
33
+ }
34
+ else {
35
+ workerBindings.push({
36
+ type: "plain_text",
37
+ name: key,
38
+ text: value,
39
+ });
40
+ }
41
+ }
42
+ const result = yield* sidecar.serve({
43
+ id,
44
+ name,
45
+ main: props.main,
46
+ compatibility: getCompatibility(props),
47
+ entry: props.isExternal
48
+ ? {
49
+ kind: "external",
50
+ }
51
+ : {
52
+ kind: "effect",
53
+ exports: (props.exports ?? {}),
54
+ },
55
+ stack: { name: stack.name, stage: stack.stage },
56
+ bindings: workerBindings,
57
+ durableObjectNamespaces: Object.entries(durableObjectNamespaces).map(([className, namespaceId]) => ({
58
+ className,
59
+ uniqueKey: namespaceId,
60
+ sql: true,
61
+ })),
62
+ });
63
+ return {
64
+ workerId: name,
65
+ workerName: name,
66
+ logpush: undefined,
67
+ url: result.address,
68
+ tags: [],
69
+ durableObjectNamespaces,
70
+ domains: [],
71
+ accountId,
72
+ };
73
+ });
74
+ return {
75
+ diff: () => Effect.succeed({ action: "update" }),
76
+ create: ({ id, news, bindings }) => run(id, news, bindings),
77
+ update: ({ id, news, bindings }) => run(id, news, bindings),
78
+ delete: ({ output }) => sidecar.stop(output.workerName),
79
+ };
80
+ }));
81
+ //# sourceMappingURL=LocalWorkerProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalWorkerProvider.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/LocalWorkerProvider.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import * as FileSystem from "effect/FileSystem";
6
6
  import * as Layer from "effect/Layer";
7
7
  import * as Path from "effect/Path";
8
8
  import * as Redacted from "effect/Redacted";
9
+ import { AlchemyContext } from "../../AlchemyContext.ts";
9
10
  import * as Binding from "../../Binding.ts";
10
11
  import { type Artifacts as ArtifactsBinding } from "../Artifacts/Artifacts.ts";
11
12
  import { type MemoOptions } from "../../Build/Memo.ts";
@@ -623,6 +624,7 @@ declare const BindWorkerPolicy_base: Binding.Policy<BindWorkerPolicy, "Policy<Cl
623
624
  export declare class BindWorkerPolicy extends BindWorkerPolicy_base {
624
625
  }
625
626
  export declare const BindWorkerPolicyLive: Layer.Layer<BindWorkerPolicy, never, never>;
626
- export declare const WorkerProvider: () => Layer.Layer<Provider.Provider<Worker<any>>, never, Path.Path | FileSystem.FileSystem | import("effect/unstable/http/HttpClient").HttpClient | import("../../Stage.ts").Stage | Stack | import("@distilled.cloud/cloudflare").Credentials | CloudflareEnvironment>;
627
+ export declare const WorkerProvider: () => Layer.Layer<Provider.Provider<Worker<any>>, never, AlchemyContext | Path.Path | FileSystem.FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/unstable/http/HttpClient").HttpClient | import("../../Stage.ts").Stage | Stack | import("@distilled.cloud/cloudflare").Credentials | CloudflareEnvironment>;
628
+ export declare const LiveWorkerProvider: () => Layer.Layer<Provider.Provider<Worker<any>>, never, Path.Path | FileSystem.FileSystem | import("effect/unstable/http/HttpClient").HttpClient | import("../../Stage.ts").Stage | Stack | import("@distilled.cloud/cloudflare").Credentials | CloudflareEnvironment>;
627
629
  export {};
628
630
  //# sourceMappingURL=Worker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Worker.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/Worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Worker.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/Worker.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,8 @@ import { createRequire } from "node:module";
26
26
  import path from "node:path";
27
27
  import { pathToFileURL } from "node:url";
28
28
  import Sonda from "sonda/rolldown";
29
+ import { AdoptPolicy } from "../../AdoptPolicy.js";
30
+ import { AlchemyContext } from "../../AlchemyContext.js";
29
31
  import * as Artifacts from "../../Artifacts.js";
30
32
  import * as Binding from "../../Binding.js";
31
33
  import { isArtifacts as isArtifactsBinding, } from "../Artifacts/Artifacts.js";
@@ -44,11 +46,13 @@ import { Stack } from "../../Stack.js";
44
46
  import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
45
47
  import { D1Database } from "../D1/D1Database.js";
46
48
  import { fromCloudflareFetcher } from "../Fetcher.js";
49
+ import { SidecarLive } from "../Local/Sidecar.js";
47
50
  import { CloudflareLogs } from "../Logs.js";
48
51
  import { isAssets, readAssets, uploadAssets, } from "./Assets.js";
49
52
  import cloudflare_workers from "./cloudflare_workers.js";
50
53
  import { isDurableObjectExport, isDurableObjectNamespaceLike, } from "./DurableObjectNamespace.js";
51
54
  import { workersHttpHandler } from "./HttpServer.js";
55
+ import { LocalWorkerProvider } from "./LocalWorkerProvider.js";
52
56
  import { Request } from "./Request.js";
53
57
  import { makeRpcStub } from "./Rpc.js";
54
58
  import { isWorkflowExport } from "./Workflow.js";
@@ -620,7 +624,12 @@ function getDurableObjectTagMap(tags) {
620
624
  return logicalId && className ? [[logicalId, className]] : [];
621
625
  }));
622
626
  }
623
- export const WorkerProvider = () => Provider.effect(Worker, Effect.gen(function* () {
627
+ const selectLayer = (input) => Layer.unwrap(AlchemyContext.useSync((context) => context.dev ? input.dev() : input.live()));
628
+ export const WorkerProvider = () => selectLayer({
629
+ live: LiveWorkerProvider,
630
+ dev: () => Layer.provide(LocalWorkerProvider(), SidecarLive),
631
+ });
632
+ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(function* () {
624
633
  const fs = yield* FileSystem.FileSystem;
625
634
  const path = yield* Path.Path;
626
635
  const { accountId } = yield* CloudflareEnvironment;
@@ -705,21 +714,59 @@ export const WorkerProvider = () => Provider.effect(Worker, Effect.gen(function*
705
714
  yield* Effect.all(toRemove.map((d) => deleteDomain({ accountId, domainId: d.id }).pipe(Effect.catchTag("DomainNotFound", () => Effect.void))), { concurrency: "unbounded" });
706
715
  if (desired.length === 0)
707
716
  return [];
717
+ const adoptEnabled = yield* Effect.serviceOption(AdoptPolicy).pipe(Effect.map(Option.getOrElse(() => false)));
708
718
  const zoneCache = new Map();
709
- const applied = yield* Effect.all(desired.map((hostname) => Effect.gen(function* () {
719
+ /**
720
+ * Attach `hostname` to `scriptName`, recovering from a "hostname
721
+ * already in use" conflict when adoption is enabled.
722
+ *
723
+ * The Cloudflare API rejects a `PUT /workers/domains` whose
724
+ * hostname is already registered (even when the existing entry
725
+ * points at the same Worker, which is exactly what happens
726
+ * after a state-store wipe). The SDK surfaces this as the
727
+ * unmatched `UnknownCloudflareError` channel because there's
728
+ * no dedicated error tag for it. With adoption opted-in we
729
+ * list domains for the hostname; if the existing entry
730
+ * already targets *this* Worker we adopt it in place. We
731
+ * never transfer a hostname off another Worker — that would
732
+ * silently re-route someone else's traffic.
733
+ */
734
+ const attachDomain = Effect.fnUntraced(function* (hostname) {
710
735
  const zoneId = yield* inferZoneIdForHostname(hostname, zoneCache);
711
- const res = yield* putDomain({
736
+ return yield* putDomain({
712
737
  accountId,
713
738
  hostname,
714
739
  service: scriptName,
715
740
  zoneId,
716
- });
717
- return {
741
+ }).pipe(Effect.map((res) => ({
718
742
  hostname,
719
743
  id: res.id ?? "",
720
744
  zoneId: res.zoneId ?? zoneId,
721
- };
722
- })), { concurrency: "unbounded" });
745
+ })), Effect.catchTag("UnknownCloudflareError", (err) => adoptEnabled && /already in use/i.test(err.message)
746
+ ? adoptDomainIfSameService(hostname, zoneId, err)
747
+ : Effect.fail(err)));
748
+ });
749
+ const adoptDomainIfSameService = Effect.fnUntraced(function* (hostname, zoneId, originalError) {
750
+ const existing = yield* listDomains({
751
+ accountId,
752
+ hostname,
753
+ }).pipe(Effect.map((r) => (r.result ?? []).find((d) => d.hostname === hostname)));
754
+ if (existing?.id && existing.service === scriptName) {
755
+ return {
756
+ hostname,
757
+ id: existing.id,
758
+ zoneId: existing.zoneId ?? zoneId,
759
+ };
760
+ }
761
+ // The hostname exists but on a different Worker. Refuse to
762
+ // hijack it; surface a more actionable message than the raw
763
+ // Cloudflare error.
764
+ return yield* Effect.die(new Error(`Cannot attach hostname '${hostname}' to Worker '${scriptName}': ` +
765
+ `it is already attached to Worker '${existing?.service ?? "<unknown>"}'. ` +
766
+ `Detach it from that Worker first, or pick a different hostname. ` +
767
+ `(Cloudflare reported: ${originalError.message})`));
768
+ });
769
+ const applied = yield* Effect.all(desired.map(attachDomain), { concurrency: "unbounded" });
723
770
  return applied;
724
771
  });
725
772
  const createAlchemyWorkerTags = (id) => [