@effect/platform-cloudflare 0.0.0 → 4.1.3

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 (237) hide show
  1. package/AGENTS.md +434 -0
  2. package/CLAUDE.md +434 -0
  3. package/LICENSE +21 -0
  4. package/README.md +506 -0
  5. package/ai-docs/README.md +44 -0
  6. package/ai-docs/package.json +36 -0
  7. package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
  8. package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +52 -0
  9. package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
  10. package/ai-docs/src/01_effect/01_basics/index.md +7 -0
  11. package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
  12. package/ai-docs/src/01_effect/02_schema/index.md +7 -0
  13. package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
  14. package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
  15. package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
  16. package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
  17. package/ai-docs/src/01_effect/03_services/index.md +5 -0
  18. package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
  19. package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
  20. package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
  21. package/ai-docs/src/01_effect/04_errors/index.md +1 -0
  22. package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
  23. package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
  24. package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
  25. package/ai-docs/src/01_effect/05_resources/index.md +3 -0
  26. package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
  27. package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
  28. package/ai-docs/src/01_effect/06_running/index.md +1 -0
  29. package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
  30. package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
  31. package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
  32. package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
  33. package/ai-docs/src/03_stream/30_encoding.ts +163 -0
  34. package/ai-docs/src/03_stream/index.md +4 -0
  35. package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
  36. package/ai-docs/src/04_integration/index.md +5 -0
  37. package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
  38. package/ai-docs/src/05_batching/index.md +3 -0
  39. package/ai-docs/src/06_schedule/10_schedules.ts +111 -0
  40. package/ai-docs/src/06_schedule/index.md +3 -0
  41. package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
  42. package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
  43. package/ai-docs/src/07_datetime/index.md +5 -0
  44. package/ai-docs/src/08_observability/10_logging.ts +66 -0
  45. package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
  46. package/ai-docs/src/08_observability/index.md +7 -0
  47. package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
  48. package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
  49. package/ai-docs/src/09_testing/index.md +1 -0
  50. package/ai-docs/src/10_predicate/01_basics.ts +14 -0
  51. package/ai-docs/src/10_predicate/index.md +9 -0
  52. package/ai-docs/src/40_sql/10_basics.ts +175 -0
  53. package/ai-docs/src/40_sql/index.md +6 -0
  54. package/ai-docs/src/50_http-client/10_basics.ts +102 -0
  55. package/ai-docs/src/50_http-client/index.md +3 -0
  56. package/ai-docs/src/51_http-server/10_basics.ts +118 -0
  57. package/ai-docs/src/51_http-server/20_testing.ts +100 -0
  58. package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
  59. package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
  60. package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
  61. package/ai-docs/src/51_http-server/fixtures/api/Users.ts +107 -0
  62. package/ai-docs/src/51_http-server/fixtures/domain/User.ts +21 -0
  63. package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
  64. package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +37 -0
  65. package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +80 -0
  66. package/ai-docs/src/51_http-server/fixtures/server/Users.ts +183 -0
  67. package/ai-docs/src/51_http-server/index.md +3 -0
  68. package/ai-docs/src/52_graphql/10_basics.ts +117 -0
  69. package/ai-docs/src/52_graphql/20_testing.ts +45 -0
  70. package/ai-docs/src/52_graphql/30_batching.ts +118 -0
  71. package/ai-docs/src/52_graphql/40_aliased-batching.ts +124 -0
  72. package/ai-docs/src/52_graphql/50_errors-and-retries.ts +74 -0
  73. package/ai-docs/src/52_graphql/index.md +6 -0
  74. package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
  75. package/ai-docs/src/60_child-process/index.md +3 -0
  76. package/ai-docs/src/70_cli/10_basics.ts +162 -0
  77. package/ai-docs/src/70_cli/index.md +5 -0
  78. package/ai-docs/src/71_ai/10_language-model.ts +156 -0
  79. package/ai-docs/src/71_ai/20_tools.ts +226 -0
  80. package/ai-docs/src/71_ai/30_chat.ts +158 -0
  81. package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
  82. package/ai-docs/src/71_ai/index.md +5 -0
  83. package/ai-docs/src/80_cluster/10_entities.ts +97 -0
  84. package/ai-docs/src/80_cluster/index.md +4 -0
  85. package/ai-docs/src/index.md +10 -0
  86. package/ai-docs/tsconfig.json +28 -0
  87. package/dist/AlchemyCloudflareCluster.d.ts +134 -0
  88. package/dist/AlchemyCloudflareCluster.d.ts.map +1 -0
  89. package/dist/AlchemyCloudflareCluster.js +111 -0
  90. package/dist/AlchemyCloudflareCluster.js.map +1 -0
  91. package/dist/CloudflareCluster.d.ts +196 -0
  92. package/dist/CloudflareCluster.d.ts.map +1 -0
  93. package/dist/CloudflareCluster.js +533 -0
  94. package/dist/CloudflareCluster.js.map +1 -0
  95. package/dist/CloudflareDurableObjectPrograms.d.ts +279 -0
  96. package/dist/CloudflareDurableObjectPrograms.d.ts.map +1 -0
  97. package/dist/CloudflareDurableObjectPrograms.js +295 -0
  98. package/dist/CloudflareDurableObjectPrograms.js.map +1 -0
  99. package/dist/CloudflareDurableObjects.d.ts +149 -0
  100. package/dist/CloudflareDurableObjects.d.ts.map +1 -0
  101. package/dist/CloudflareDurableObjects.js +337 -0
  102. package/dist/CloudflareDurableObjects.js.map +1 -0
  103. package/dist/CloudflarePersistedQueue.d.ts +36 -0
  104. package/dist/CloudflarePersistedQueue.d.ts.map +1 -0
  105. package/dist/CloudflarePersistedQueue.js +122 -0
  106. package/dist/CloudflarePersistedQueue.js.map +1 -0
  107. package/dist/CloudflareWorkflowEngine.d.ts +72 -0
  108. package/dist/CloudflareWorkflowEngine.d.ts.map +1 -0
  109. package/dist/CloudflareWorkflowEngine.js +187 -0
  110. package/dist/CloudflareWorkflowEngine.js.map +1 -0
  111. package/dist/index.d.ts +29 -0
  112. package/dist/index.d.ts.map +1 -0
  113. package/dist/index.js +33 -0
  114. package/dist/index.js.map +1 -0
  115. package/dist/internal/alchemyCluster.d.ts +2 -0
  116. package/dist/internal/alchemyCluster.d.ts.map +1 -0
  117. package/dist/internal/alchemyCluster.js +75 -0
  118. package/dist/internal/alchemyCluster.js.map +1 -0
  119. package/dist/internal/boundedMap.d.ts +3 -0
  120. package/dist/internal/boundedMap.d.ts.map +1 -0
  121. package/dist/internal/boundedMap.js +15 -0
  122. package/dist/internal/boundedMap.js.map +1 -0
  123. package/dist/internal/cluster.d.ts +57 -0
  124. package/dist/internal/cluster.d.ts.map +1 -0
  125. package/dist/internal/cluster.js +2 -0
  126. package/dist/internal/cluster.js.map +1 -0
  127. package/dist/internal/clusterName.d.ts +2 -0
  128. package/dist/internal/clusterName.d.ts.map +1 -0
  129. package/dist/internal/clusterName.js +16 -0
  130. package/dist/internal/clusterName.js.map +1 -0
  131. package/dist/internal/entityKeepAlive.d.ts +2 -0
  132. package/dist/internal/entityKeepAlive.d.ts.map +1 -0
  133. package/dist/internal/entityKeepAlive.js +73 -0
  134. package/dist/internal/entityKeepAlive.js.map +1 -0
  135. package/dist/internal/entityMailbox.d.ts +2 -0
  136. package/dist/internal/entityMailbox.d.ts.map +1 -0
  137. package/dist/internal/entityMailbox.js +160 -0
  138. package/dist/internal/entityMailbox.js.map +1 -0
  139. package/dist/internal/entityRegistry.d.ts +16 -0
  140. package/dist/internal/entityRegistry.d.ts.map +1 -0
  141. package/dist/internal/entityRegistry.js +22 -0
  142. package/dist/internal/entityRegistry.js.map +1 -0
  143. package/dist/internal/entityReply.d.ts +2 -0
  144. package/dist/internal/entityReply.d.ts.map +1 -0
  145. package/dist/internal/entityReply.js +35 -0
  146. package/dist/internal/entityReply.js.map +1 -0
  147. package/dist/internal/entityRuntime.d.ts +2 -0
  148. package/dist/internal/entityRuntime.d.ts.map +1 -0
  149. package/dist/internal/entityRuntime.js +823 -0
  150. package/dist/internal/entityRuntime.js.map +1 -0
  151. package/dist/internal/entitySql.d.ts +2 -0
  152. package/dist/internal/entitySql.d.ts.map +1 -0
  153. package/dist/internal/entitySql.js +29 -0
  154. package/dist/internal/entitySql.js.map +1 -0
  155. package/dist/internal/entityStorage.d.ts +2 -0
  156. package/dist/internal/entityStorage.d.ts.map +1 -0
  157. package/dist/internal/entityStorage.js +98 -0
  158. package/dist/internal/entityStorage.js.map +1 -0
  159. package/dist/internal/entityWire.d.ts +2 -0
  160. package/dist/internal/entityWire.d.ts.map +1 -0
  161. package/dist/internal/entityWire.js +146 -0
  162. package/dist/internal/entityWire.js.map +1 -0
  163. package/dist/internal/queueRuntime.d.ts +2 -0
  164. package/dist/internal/queueRuntime.d.ts.map +1 -0
  165. package/dist/internal/queueRuntime.js +88 -0
  166. package/dist/internal/queueRuntime.js.map +1 -0
  167. package/dist/internal/queueStorage.d.ts +2 -0
  168. package/dist/internal/queueStorage.d.ts.map +1 -0
  169. package/dist/internal/queueStorage.js +129 -0
  170. package/dist/internal/queueStorage.js.map +1 -0
  171. package/dist/internal/registry.d.ts +10 -0
  172. package/dist/internal/registry.d.ts.map +1 -0
  173. package/dist/internal/registry.js +24 -0
  174. package/dist/internal/registry.js.map +1 -0
  175. package/dist/internal/singletonRegistry.d.ts +2 -0
  176. package/dist/internal/singletonRegistry.d.ts.map +1 -0
  177. package/dist/internal/singletonRegistry.js +9 -0
  178. package/dist/internal/singletonRegistry.js.map +1 -0
  179. package/dist/internal/singletonRuntime.d.ts +2 -0
  180. package/dist/internal/singletonRuntime.d.ts.map +1 -0
  181. package/dist/internal/singletonRuntime.js +42 -0
  182. package/dist/internal/singletonRuntime.js.map +1 -0
  183. package/dist/internal/singletonStorage.d.ts +2 -0
  184. package/dist/internal/singletonStorage.d.ts.map +1 -0
  185. package/dist/internal/singletonStorage.js +34 -0
  186. package/dist/internal/singletonStorage.js.map +1 -0
  187. package/dist/internal/transport.d.ts +2 -0
  188. package/dist/internal/transport.d.ts.map +1 -0
  189. package/dist/internal/transport.js +49 -0
  190. package/dist/internal/transport.js.map +1 -0
  191. package/dist/internal/workflowRegistry.d.ts +2 -0
  192. package/dist/internal/workflowRegistry.d.ts.map +1 -0
  193. package/dist/internal/workflowRegistry.js +29 -0
  194. package/dist/internal/workflowRegistry.js.map +1 -0
  195. package/dist/internal/workflowRuntime.d.ts +2 -0
  196. package/dist/internal/workflowRuntime.d.ts.map +1 -0
  197. package/dist/internal/workflowRuntime.js +322 -0
  198. package/dist/internal/workflowRuntime.js.map +1 -0
  199. package/dist/internal/workflowStorage.d.ts +2 -0
  200. package/dist/internal/workflowStorage.d.ts.map +1 -0
  201. package/dist/internal/workflowStorage.js +113 -0
  202. package/dist/internal/workflowStorage.js.map +1 -0
  203. package/dist/internal/workflowWire.d.ts +2 -0
  204. package/dist/internal/workflowWire.d.ts.map +1 -0
  205. package/dist/internal/workflowWire.js +52 -0
  206. package/dist/internal/workflowWire.js.map +1 -0
  207. package/package.json +77 -1
  208. package/src/AlchemyCloudflareCluster.ts +200 -0
  209. package/src/CloudflareCluster.ts +704 -0
  210. package/src/CloudflareDurableObjectPrograms.ts +543 -0
  211. package/src/CloudflareDurableObjects.ts +430 -0
  212. package/src/CloudflarePersistedQueue.ts +189 -0
  213. package/src/CloudflareWorkflowEngine.ts +220 -0
  214. package/src/index.ts +38 -0
  215. package/src/internal/alchemyCluster.ts +120 -0
  216. package/src/internal/boundedMap.ts +15 -0
  217. package/src/internal/cluster.ts +57 -0
  218. package/src/internal/clusterName.ts +19 -0
  219. package/src/internal/entityKeepAlive.ts +121 -0
  220. package/src/internal/entityMailbox.ts +324 -0
  221. package/src/internal/entityRegistry.ts +46 -0
  222. package/src/internal/entityReply.ts +54 -0
  223. package/src/internal/entityRuntime.ts +1318 -0
  224. package/src/internal/entitySql.ts +60 -0
  225. package/src/internal/entityStorage.ts +168 -0
  226. package/src/internal/entityWire.ts +204 -0
  227. package/src/internal/queueRuntime.ts +174 -0
  228. package/src/internal/queueStorage.ts +255 -0
  229. package/src/internal/registry.ts +31 -0
  230. package/src/internal/singletonRegistry.ts +21 -0
  231. package/src/internal/singletonRuntime.ts +88 -0
  232. package/src/internal/singletonStorage.ts +64 -0
  233. package/src/internal/transport.ts +67 -0
  234. package/src/internal/workflowRegistry.ts +78 -0
  235. package/src/internal/workflowRuntime.ts +443 -0
  236. package/src/internal/workflowStorage.ts +234 -0
  237. package/src/internal/workflowWire.ts +123 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflowRuntime.js","names":[],"sources":["../../src/internal/workflowRuntime.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=workflowStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflowStorage.d.ts","sourceRoot":"","sources":["../../src/internal/workflowStorage.ts"],"names":[],"mappings":""}
@@ -0,0 +1,113 @@
1
+ const ddl = [`CREATE TABLE IF NOT EXISTS workflow_execution (
2
+ id INTEGER PRIMARY KEY CHECK (id = 0),
3
+ workflow_name TEXT NOT NULL,
4
+ execution_id TEXT NOT NULL,
5
+ payload TEXT NOT NULL,
6
+ parent_name TEXT,
7
+ parent_execution_id TEXT,
8
+ result TEXT,
9
+ resume_pending INTEGER NOT NULL DEFAULT 0
10
+ )`, `CREATE TABLE IF NOT EXISTS workflow_activities (
11
+ key TEXT PRIMARY KEY,
12
+ exit TEXT NOT NULL
13
+ )`, `CREATE TABLE IF NOT EXISTS workflow_deferreds (
14
+ name TEXT PRIMARY KEY,
15
+ exit TEXT NOT NULL
16
+ )`, `CREATE TABLE IF NOT EXISTS workflow_clocks (
17
+ name TEXT PRIMARY KEY,
18
+ deferred_name TEXT NOT NULL,
19
+ wake_up INTEGER NOT NULL,
20
+ fired INTEGER NOT NULL DEFAULT 0
21
+ )`];
22
+ /** @internal */
23
+ export const ensureWorkflowStorage = sql => {
24
+ for (const statement of ddl) {
25
+ sql.exec(statement);
26
+ }
27
+ };
28
+ // 1 predates wake modes, so a row written before them replays as explicit.
29
+ const encodeWakeMode = mode => mode === undefined ? 0 : mode === "explicit" ? 1 : 2;
30
+ const decodeWakeMode = value => value === 1 ? "explicit" : value === 2 ? "automatic" : undefined;
31
+ /** @internal */
32
+ export const loadExecution = sql => {
33
+ const row = sql.exec(`SELECT workflow_name, execution_id, payload, parent_name, parent_execution_id, result, resume_pending
34
+ FROM workflow_execution WHERE id = 0`).toArray()[0];
35
+ if (row === undefined) return undefined;
36
+ return {
37
+ workflowName: row.workflow_name,
38
+ executionId: row.execution_id,
39
+ payload: row.payload,
40
+ parent: row.parent_name !== null && row.parent_execution_id !== null ? {
41
+ workflowName: row.parent_name,
42
+ executionId: row.parent_execution_id
43
+ } : undefined,
44
+ result: row.result ?? undefined,
45
+ resumePending: decodeWakeMode(row.resume_pending)
46
+ };
47
+ };
48
+ /** @internal */
49
+ export const createExecution = (sql, workflowName, executionId, payload, parent) => {
50
+ sql.exec(`INSERT OR IGNORE INTO workflow_execution
51
+ (id, workflow_name, execution_id, payload, parent_name, parent_execution_id, result)
52
+ VALUES (0, ?, ?, ?, ?, ?, NULL)`, workflowName, executionId, payload, parent?.workflowName ?? null, parent?.executionId ?? null);
53
+ };
54
+ /** @internal */
55
+ export const setParent = (sql, parent) => {
56
+ sql.exec("UPDATE workflow_execution SET parent_name = ?, parent_execution_id = ? WHERE id = 0 AND parent_name IS NULL", parent.workflowName, parent.executionId);
57
+ };
58
+ /** @internal */
59
+ export const saveSuspension = (sql, result, pending) => {
60
+ sql.exec("UPDATE workflow_execution SET result = ?, resume_pending = ? WHERE id = 0", result, encodeWakeMode(pending));
61
+ };
62
+ /** @internal */
63
+ export const saveCompletion = (sql, result, wakeParent) => {
64
+ sql.exec("UPDATE workflow_execution SET result = ?, resume_pending = ? WHERE id = 0", result, wakeParent ? 1 : 0);
65
+ };
66
+ /** @internal */
67
+ export const setResumePending = (sql, pending) => {
68
+ sql.exec("UPDATE workflow_execution SET resume_pending = ? WHERE id = 0", encodeWakeMode(pending));
69
+ };
70
+ /** @internal */
71
+ export const loadActivity = (sql, key) => {
72
+ const row = sql.exec("SELECT exit FROM workflow_activities WHERE key = ?", key).toArray()[0];
73
+ return row?.exit;
74
+ };
75
+ /** @internal */
76
+ export const saveActivity = (sql, key, exit) => {
77
+ sql.exec("INSERT OR IGNORE INTO workflow_activities (key, exit) VALUES (?, ?)", key, exit);
78
+ };
79
+ /** @internal */
80
+ export const loadDeferred = (sql, name) => {
81
+ const row = sql.exec("SELECT exit FROM workflow_deferreds WHERE name = ?", name).toArray()[0];
82
+ return row?.exit;
83
+ };
84
+ /**
85
+ * First write wins; safe without a conflict clause because a Durable Object's
86
+ * SQLite access is single-threaded.
87
+ *
88
+ * @internal
89
+ */
90
+ export const saveDeferred = (sql, name, exit) => {
91
+ if (loadDeferred(sql, name) !== undefined) return false;
92
+ sql.exec("INSERT INTO workflow_deferreds (name, exit) VALUES (?, ?)", name, exit);
93
+ return true;
94
+ };
95
+ /** @internal */
96
+ export const saveClock = (sql, name, deferredName, wakeUp) => {
97
+ sql.exec("INSERT OR IGNORE INTO workflow_clocks (name, deferred_name, wake_up, fired) VALUES (?, ?, ?, 0)", name, deferredName, wakeUp);
98
+ };
99
+ /** @internal */
100
+ export const earliestClockWakeUp = sql => {
101
+ const row = sql.exec("SELECT min(wake_up) AS wake_up FROM workflow_clocks WHERE fired = 0").toArray()[0];
102
+ return row?.wake_up ?? undefined;
103
+ };
104
+ /** @internal */
105
+ export const dueClocks = (sql, now) => sql.exec("SELECT name, deferred_name FROM workflow_clocks WHERE fired = 0 AND wake_up <= ?", now).toArray().map(row => ({
106
+ name: row.name,
107
+ deferredName: row.deferred_name
108
+ }));
109
+ /** @internal */
110
+ export const markClockFired = (sql, name) => {
111
+ sql.exec("UPDATE workflow_clocks SET fired = 1 WHERE name = ?", name);
112
+ };
113
+ //# sourceMappingURL=workflowStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflowStorage.js","names":[],"sources":["../../src/internal/workflowStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=workflowWire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflowWire.d.ts","sourceRoot":"","sources":["../../src/internal/workflowWire.ts"],"names":[],"mappings":""}
@@ -0,0 +1,52 @@
1
+ /** @internal */
2
+ import * as Context from "effect/Context";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Exit from "effect/Exit";
5
+ import * as Schema from "effect/Schema";
6
+ import * as Workflow from "effect/workflow/Workflow";
7
+ import { runWith } from "./entityWire.js";
8
+ const AnyOrVoid = /*#__PURE__*/Schema.Union([Schema.Undefined, Schema.Any]);
9
+ const ExitJson = /*#__PURE__*/Schema.toCodecJson(/*#__PURE__*/Schema.Exit(AnyOrVoid, AnyOrVoid, /*#__PURE__*/Schema.Defect()));
10
+ /** @internal */
11
+ export const encodeExit = (exit, context) => runWith(Effect.map(Schema.encodeUnknownEffect(ExitJson)(exit), encoded => JSON.stringify(encoded)), context);
12
+ /** @internal */
13
+ export const decodeExit = (text, context) => runWith(Schema.decodeUnknownEffect(ExitJson)(JSON.parse(text)), context);
14
+ const cachedCodec = compute => {
15
+ const cache = new WeakMap();
16
+ return workflow => {
17
+ let codec = cache.get(workflow);
18
+ if (codec === undefined) {
19
+ codec = compute(workflow);
20
+ cache.set(workflow, codec);
21
+ }
22
+ return codec;
23
+ };
24
+ };
25
+ const resultCodec = /*#__PURE__*/cachedCodec(workflow => Schema.toCodecJson(Workflow.Result({
26
+ success: workflow.successSchema,
27
+ error: workflow.errorSchema
28
+ })));
29
+ const defectResultCodec = /*#__PURE__*/Schema.toCodecJson(/*#__PURE__*/Workflow.Result({
30
+ success: AnyOrVoid,
31
+ error: AnyOrVoid
32
+ }));
33
+ /**
34
+ * Encodes a terminal `Complete(Die)` result. A defect never touches the
35
+ * workflow's success or error schema, so this works without the workflow
36
+ * definition, for example when none is registered.
37
+ *
38
+ * @internal
39
+ */
40
+ export const encodeDefectResult = defect => runWith(Effect.map(Schema.encodeUnknownEffect(defectResultCodec)(new Workflow.Complete({
41
+ exit: Exit.die(defect)
42
+ })), encoded => JSON.stringify(encoded)), Context.empty());
43
+ const payloadCodec = /*#__PURE__*/cachedCodec(workflow => Schema.toCodecJson(workflow.payloadSchema));
44
+ /** @internal */
45
+ export const encodeResult = (workflow, result, context) => runWith(Effect.map(Schema.encodeUnknownEffect(resultCodec(workflow))(result), encoded => JSON.stringify(encoded)), context);
46
+ /** @internal */
47
+ export const decodeResult = (workflow, text, context) => runWith(Schema.decodeUnknownEffect(resultCodec(workflow))(JSON.parse(text)), context);
48
+ /** @internal */
49
+ export const encodePayload = (workflow, payload, context) => runWith(Effect.map(Schema.encodeUnknownEffect(payloadCodec(workflow))(payload), encoded => JSON.stringify(encoded)), context);
50
+ /** @internal */
51
+ export const decodePayload = (workflow, text, context) => runWith(Schema.decodeUnknownEffect(payloadCodec(workflow))(JSON.parse(text)), context);
52
+ //# sourceMappingURL=workflowWire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflowWire.js","names":[],"sources":["../../src/internal/workflowWire.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1 +1,77 @@
1
- {"name":"@effect/platform-cloudflare","version":"0.0.0","license":"MIT","repository":{"type":"git","url":"https://github.com/Effect-TS/effect.git"}}
1
+ {
2
+ "name": "@effect/platform-cloudflare",
3
+ "type": "module",
4
+ "version": "4.1.3",
5
+ "license": "MIT",
6
+ "description": "Platform specific implementations for Cloudflare Workers and Durable Objects",
7
+ "homepage": "https://effect.website",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/Effect-TS/effect.git",
11
+ "directory": "packages/platform/cloudflare"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/Effect-TS/effect/issues"
15
+ },
16
+ "tags": [
17
+ "cloudflare",
18
+ "typescript",
19
+ "algebraic-data-types",
20
+ "functional-programming"
21
+ ],
22
+ "keywords": [
23
+ "cloudflare",
24
+ "typescript",
25
+ "algebraic-data-types",
26
+ "functional-programming"
27
+ ],
28
+ "sideEffects": [],
29
+ "exports": {
30
+ "./package.json": "./package.json",
31
+ ".": "./dist/index.js",
32
+ "./*": "./dist/*.js",
33
+ "./internal/*": null,
34
+ "./index": null,
35
+ "./*/index": null
36
+ },
37
+ "files": [
38
+ "src/**/*.ts",
39
+ "dist/**/*.js",
40
+ "dist/**/*.js.map",
41
+ "dist/**/*.d.ts",
42
+ "dist/**/*.d.ts.map",
43
+ "AGENTS.md",
44
+ "CLAUDE.md",
45
+ "ai-docs/**/*"
46
+ ],
47
+ "publishConfig": {
48
+ "access": "public",
49
+ "provenance": true
50
+ },
51
+ "peerDependencies": {
52
+ "@alchemy.run/cloudflare": ">=2.0.0-beta.85 <3",
53
+ "effect": "^4.1.3"
54
+ },
55
+ "peerDependenciesMeta": {
56
+ "@alchemy.run/cloudflare": {
57
+ "optional": true
58
+ }
59
+ },
60
+ "dependencies": {
61
+ "@cloudflare/workers-types": "^5.20260822.1",
62
+ "@effect/sql-sqlite-do": "^4.1.3"
63
+ },
64
+ "devDependencies": {
65
+ "@alchemy.run/cloudflare": "2.0.0-beta.85",
66
+ "alchemy": "2.0.0-beta.85",
67
+ "esbuild": "^0.25.12",
68
+ "miniflare": "^4.20260730.0",
69
+ "effect": "^4.1.3"
70
+ },
71
+ "scripts": {
72
+ "codegen": "effect-utils codegen",
73
+ "build": "tsc -b tsconfig.json && pnpm babel",
74
+ "babel": "babel dist --plugins annotate-pure-calls --out-dir dist --source-maps",
75
+ "check": "tsc -b tsconfig.json"
76
+ }
77
+ }
@@ -0,0 +1,200 @@
1
+ /**
2
+ * Deploys the Cloudflare cluster with Alchemy v2 ("Infrastructure as
3
+ * Effects").
4
+ *
5
+ * `make` runs inside an Effect-native `Cloudflare.Worker` init program. It
6
+ * registers the four cluster Durable Object classes on the hosting Worker
7
+ * (bindings, class exports, and SQLite migrations are all owned by Alchemy),
8
+ * builds the cluster layer together with the user's handler layer into the
9
+ * isolate-lifetime scope, and returns a handle for wiring the built context
10
+ * into the Worker's handlers. The user never declares or re-exports Durable
11
+ * Object classes.
12
+ *
13
+ * The Wrangler path (`CloudflareDurableObjects` + `CloudflareCluster.layer`)
14
+ * never imports this module; `@alchemy.run/cloudflare` is an optional peer
15
+ * dependency needed only here.
16
+ *
17
+ * **Example** (Declaring a cluster)
18
+ *
19
+ * ```ts
20
+ * import * as Cloudflare from "@alchemy.run/cloudflare"
21
+ * import { Effect, Layer } from "effect"
22
+ * import { make } from "@effect/platform-cloudflare/AlchemyCloudflareCluster"
23
+ * import { CloudflareCluster } from "@effect/platform-cloudflare"
24
+ *
25
+ * export default Cloudflare.Worker("MyApp", {
26
+ * main: import.meta.url
27
+ * }, Effect.gen(function*() {
28
+ * const cluster = yield* make({
29
+ * entities: [Counter],
30
+ * layer: Layer.mergeAll(CounterLayer, MaintenanceLayer, NightlyReport)
31
+ * })
32
+ *
33
+ * yield* Cloudflare.Workers.cron("0 * * * *", cluster.wake("hourly-maintenance"))
34
+ * // A ClusterCron fires only after a Cron Trigger wakes its seed singleton
35
+ * yield* Cloudflare.Workers.cron(
36
+ * "30 * * * *",
37
+ * cluster.wake(CloudflareCluster.clusterCronSingletonName("nightly-report"))
38
+ * )
39
+ *
40
+ * return {
41
+ * fetch: cluster.provide(handler)
42
+ * }
43
+ * }).pipe(Effect.provide(Cloudflare.Workers.CronEventSourceLive)))
44
+ * ```
45
+ *
46
+ * @stability experimental
47
+ * @since 4.1.3
48
+ */
49
+ import * as Cloudflare from "@alchemy.run/cloudflare"
50
+ import type * as Entity from "effect/cluster/Entity"
51
+ import type { Sharding } from "effect/cluster/Sharding"
52
+ import type * as Duration from "effect/Duration"
53
+ import * as Effect from "effect/Effect"
54
+ import type * as Layer from "effect/Layer"
55
+ import type { PersistedQueueFactory } from "effect/persistence/PersistedQueue"
56
+ import type { WorkflowEngine } from "effect/workflow/WorkflowEngine"
57
+ import {
58
+ type DurableObjectProgramState,
59
+ makeClusterDurableQueueProgram,
60
+ makeClusterEntityProgram,
61
+ makeClusterSingletonProgram,
62
+ makeClusterWorkflowProgram
63
+ } from "./CloudflareDurableObjectPrograms.ts"
64
+ import { inertClusterHandle, makeClusterHandle } from "./internal/alchemyCluster.ts"
65
+ import type { Cluster } from "./internal/cluster.ts"
66
+
67
+ declare global {
68
+ // Set by Alchemy's bundler in deployed Workers; unset while planning.
69
+ // Declared by `alchemy/Phase` too, which this module does not import.
70
+ var __ALCHEMY_RUNTIME__: boolean | undefined
71
+ }
72
+
73
+ /**
74
+ * The services `make` builds on top of the user layer: the cluster `Sharding`
75
+ * service, the workflow engine, and the persisted queue factory.
76
+ *
77
+ * @stability experimental
78
+ * @category models
79
+ * @since 4.1.3
80
+ */
81
+ export type ClusterServices = Sharding | WorkflowEngine | PersistedQueueFactory
82
+
83
+ export type {
84
+ /**
85
+ * The handle returned by {@link make}.
86
+ *
87
+ * **Gotchas**
88
+ *
89
+ * Namespace bindings and `context` are available only in the deployed runtime.
90
+ * Reading them during plan evaluation throws a diagnostic; `provide` and
91
+ * `wake` remain inert during planning.
92
+ *
93
+ * @stability experimental
94
+ * @category models
95
+ * @since 4.1.3
96
+ */
97
+ Cluster
98
+ } from "./internal/cluster.ts"
99
+
100
+ /**
101
+ * The entity definitions and handler layer the cluster is built from.
102
+ *
103
+ * @stability experimental
104
+ * @category models
105
+ * @since 4.1.3
106
+ */
107
+ export interface MakeOptions<ROut, E, RIn> {
108
+ /**
109
+ * The complete set of entity definitions the Worker serves, as in
110
+ * `CloudflareCluster.LayerOptions`.
111
+ */
112
+ readonly entities: ReadonlyArray<Entity.Entity<any, any>>
113
+ /**
114
+ * The user's merged handler layers: entity handlers, singletons, workflow
115
+ * handlers, and any services they need.
116
+ */
117
+ readonly layer: Layer.Layer<ROut, E, RIn>
118
+ /**
119
+ * Interval of the entity keep-alive heartbeat alarm, as in
120
+ * `CloudflareCluster.LayerOptions`. Defaults to 30 seconds.
121
+ */
122
+ readonly keepAliveHeartbeat?: Duration.Input | undefined
123
+ }
124
+
125
+ // One alchemy Durable Object class per cluster program. The outer effect
126
+ // resolves the instance state; the inner effect runs per activation, under
127
+ // alchemy's blockConcurrencyWhile, once the shared isolate init (and so the
128
+ // user's handler registrations) has completed. The program handle is the RPC
129
+ // shape: every method returns an Effect and `alarm` matches alchemy's hook.
130
+ // `fetch` is omitted on purpose: cluster RPCs use the native bindings, so
131
+ // alchemy's default 404 stands in for the Wrangler classes' rejection.
132
+ const durableObject = <Shape extends Record<string, (...args: Array<any>) => Effect.Effect<any>>>(
133
+ className: string,
134
+ program: (state: DurableObjectProgramState) => Effect.Effect<Shape>
135
+ ) =>
136
+ Cloudflare.DurableObject<Shape>()(
137
+ className,
138
+ Effect.map(Cloudflare.DurableObjectState, (state) => program(state.raw as DurableObjectProgramState))
139
+ )
140
+
141
+ const ClusterEntity = durableObject("ClusterEntity", makeClusterEntityProgram)
142
+ const ClusterWorkflow = durableObject("ClusterWorkflow", makeClusterWorkflowProgram)
143
+ const ClusterDurableQueue = durableObject("ClusterDurableQueue", makeClusterDurableQueueProgram)
144
+ const ClusterSingleton = durableObject("ClusterSingleton", makeClusterSingletonProgram)
145
+
146
+ const makeUnsafe = Effect.fnUntraced(function*(options: MakeOptions<any, any, any>) {
147
+ // Register the four Durable Object classes on the hosting Worker. At plan
148
+ // time this declares the bindings and class exports Alchemy deploys; at
149
+ // runtime it resolves the same bindings in every isolate, Worker and
150
+ // Durable Object alike.
151
+ yield* ClusterEntity
152
+ yield* ClusterWorkflow
153
+ yield* ClusterDurableQueue
154
+ yield* ClusterSingleton
155
+
156
+ if (!globalThis.__ALCHEMY_RUNTIME__) {
157
+ // Plan/deploy evaluation only discovers the declarations above.
158
+ return inertClusterHandle()
159
+ }
160
+
161
+ const env = yield* Cloudflare.WorkerEnvironment
162
+ return yield* makeClusterHandle({
163
+ entities: options.entities,
164
+ layer: options.layer,
165
+ env,
166
+ keepAliveHeartbeat: options.keepAliveHeartbeat
167
+ })
168
+ })
169
+
170
+ /**
171
+ * Builds the Cloudflare cluster inside an Effect-native Alchemy Worker.
172
+ *
173
+ * **Details**
174
+ *
175
+ * Always registers all four Durable Object classes (entity, workflow, durable
176
+ * queue, singleton) on the hosting Worker, so Alchemy owns their bindings and
177
+ * SQLite migrations across deploys. At runtime it builds
178
+ * `CloudflareCluster.layer` merged with the user's handler layer into the
179
+ * isolate-lifetime Scope — the Scope is never closed, so do not wrap the
180
+ * Worker init program in `Effect.provide(layer)` for cluster services.
181
+ *
182
+ * The returned handle exposes `provide` for the Worker's handlers, `wake` for
183
+ * user-declared Cron Triggers
184
+ * (`Cloudflare.Workers.cron(expr, cluster.wake("name"))`), and the four
185
+ * native namespace bindings as escape hatches.
186
+ *
187
+ * A `ClusterCron` fires only after a Cron Trigger wakes its seed singleton.
188
+ * Pass `CloudflareCluster.clusterCronSingletonName(name)` to `wake` for it.
189
+ *
190
+ * @stability experimental
191
+ * @category constructors
192
+ * @since 4.1.3
193
+ */
194
+ export const make: <ROut, E, RIn>(
195
+ options: MakeOptions<ROut, E, RIn>
196
+ ) => Effect.Effect<
197
+ Cluster<ROut | ClusterServices>,
198
+ E,
199
+ Cloudflare.Worker | Exclude<RIn, ClusterServices>
200
+ > = makeUnsafe as any