@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.
- package/AGENTS.md +434 -0
- package/CLAUDE.md +434 -0
- package/LICENSE +21 -0
- package/README.md +506 -0
- package/ai-docs/README.md +44 -0
- package/ai-docs/package.json +36 -0
- package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
- package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +52 -0
- package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
- package/ai-docs/src/01_effect/01_basics/index.md +7 -0
- package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
- package/ai-docs/src/01_effect/02_schema/index.md +7 -0
- package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
- package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
- package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
- package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
- package/ai-docs/src/01_effect/03_services/index.md +5 -0
- package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
- package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
- package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
- package/ai-docs/src/01_effect/04_errors/index.md +1 -0
- package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
- package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
- package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
- package/ai-docs/src/01_effect/05_resources/index.md +3 -0
- package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
- package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
- package/ai-docs/src/01_effect/06_running/index.md +1 -0
- package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
- package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
- package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
- package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
- package/ai-docs/src/03_stream/30_encoding.ts +163 -0
- package/ai-docs/src/03_stream/index.md +4 -0
- package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
- package/ai-docs/src/04_integration/index.md +5 -0
- package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
- package/ai-docs/src/05_batching/index.md +3 -0
- package/ai-docs/src/06_schedule/10_schedules.ts +111 -0
- package/ai-docs/src/06_schedule/index.md +3 -0
- package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
- package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
- package/ai-docs/src/07_datetime/index.md +5 -0
- package/ai-docs/src/08_observability/10_logging.ts +66 -0
- package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
- package/ai-docs/src/08_observability/index.md +7 -0
- package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
- package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
- package/ai-docs/src/09_testing/index.md +1 -0
- package/ai-docs/src/10_predicate/01_basics.ts +14 -0
- package/ai-docs/src/10_predicate/index.md +9 -0
- package/ai-docs/src/40_sql/10_basics.ts +175 -0
- package/ai-docs/src/40_sql/index.md +6 -0
- package/ai-docs/src/50_http-client/10_basics.ts +102 -0
- package/ai-docs/src/50_http-client/index.md +3 -0
- package/ai-docs/src/51_http-server/10_basics.ts +118 -0
- package/ai-docs/src/51_http-server/20_testing.ts +100 -0
- package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
- package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
- package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
- package/ai-docs/src/51_http-server/fixtures/api/Users.ts +107 -0
- package/ai-docs/src/51_http-server/fixtures/domain/User.ts +21 -0
- package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
- package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +37 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +80 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users.ts +183 -0
- package/ai-docs/src/51_http-server/index.md +3 -0
- package/ai-docs/src/52_graphql/10_basics.ts +117 -0
- package/ai-docs/src/52_graphql/20_testing.ts +45 -0
- package/ai-docs/src/52_graphql/30_batching.ts +118 -0
- package/ai-docs/src/52_graphql/40_aliased-batching.ts +124 -0
- package/ai-docs/src/52_graphql/50_errors-and-retries.ts +74 -0
- package/ai-docs/src/52_graphql/index.md +6 -0
- package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
- package/ai-docs/src/60_child-process/index.md +3 -0
- package/ai-docs/src/70_cli/10_basics.ts +162 -0
- package/ai-docs/src/70_cli/index.md +5 -0
- package/ai-docs/src/71_ai/10_language-model.ts +156 -0
- package/ai-docs/src/71_ai/20_tools.ts +226 -0
- package/ai-docs/src/71_ai/30_chat.ts +158 -0
- package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
- package/ai-docs/src/71_ai/index.md +5 -0
- package/ai-docs/src/80_cluster/10_entities.ts +97 -0
- package/ai-docs/src/80_cluster/index.md +4 -0
- package/ai-docs/src/index.md +10 -0
- package/ai-docs/tsconfig.json +28 -0
- package/dist/AlchemyCloudflareCluster.d.ts +134 -0
- package/dist/AlchemyCloudflareCluster.d.ts.map +1 -0
- package/dist/AlchemyCloudflareCluster.js +111 -0
- package/dist/AlchemyCloudflareCluster.js.map +1 -0
- package/dist/CloudflareCluster.d.ts +196 -0
- package/dist/CloudflareCluster.d.ts.map +1 -0
- package/dist/CloudflareCluster.js +533 -0
- package/dist/CloudflareCluster.js.map +1 -0
- package/dist/CloudflareDurableObjectPrograms.d.ts +279 -0
- package/dist/CloudflareDurableObjectPrograms.d.ts.map +1 -0
- package/dist/CloudflareDurableObjectPrograms.js +295 -0
- package/dist/CloudflareDurableObjectPrograms.js.map +1 -0
- package/dist/CloudflareDurableObjects.d.ts +149 -0
- package/dist/CloudflareDurableObjects.d.ts.map +1 -0
- package/dist/CloudflareDurableObjects.js +337 -0
- package/dist/CloudflareDurableObjects.js.map +1 -0
- package/dist/CloudflarePersistedQueue.d.ts +36 -0
- package/dist/CloudflarePersistedQueue.d.ts.map +1 -0
- package/dist/CloudflarePersistedQueue.js +122 -0
- package/dist/CloudflarePersistedQueue.js.map +1 -0
- package/dist/CloudflareWorkflowEngine.d.ts +72 -0
- package/dist/CloudflareWorkflowEngine.d.ts.map +1 -0
- package/dist/CloudflareWorkflowEngine.js +187 -0
- package/dist/CloudflareWorkflowEngine.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/alchemyCluster.d.ts +2 -0
- package/dist/internal/alchemyCluster.d.ts.map +1 -0
- package/dist/internal/alchemyCluster.js +75 -0
- package/dist/internal/alchemyCluster.js.map +1 -0
- package/dist/internal/boundedMap.d.ts +3 -0
- package/dist/internal/boundedMap.d.ts.map +1 -0
- package/dist/internal/boundedMap.js +15 -0
- package/dist/internal/boundedMap.js.map +1 -0
- package/dist/internal/cluster.d.ts +57 -0
- package/dist/internal/cluster.d.ts.map +1 -0
- package/dist/internal/cluster.js +2 -0
- package/dist/internal/cluster.js.map +1 -0
- package/dist/internal/clusterName.d.ts +2 -0
- package/dist/internal/clusterName.d.ts.map +1 -0
- package/dist/internal/clusterName.js +16 -0
- package/dist/internal/clusterName.js.map +1 -0
- package/dist/internal/entityKeepAlive.d.ts +2 -0
- package/dist/internal/entityKeepAlive.d.ts.map +1 -0
- package/dist/internal/entityKeepAlive.js +73 -0
- package/dist/internal/entityKeepAlive.js.map +1 -0
- package/dist/internal/entityMailbox.d.ts +2 -0
- package/dist/internal/entityMailbox.d.ts.map +1 -0
- package/dist/internal/entityMailbox.js +160 -0
- package/dist/internal/entityMailbox.js.map +1 -0
- package/dist/internal/entityRegistry.d.ts +16 -0
- package/dist/internal/entityRegistry.d.ts.map +1 -0
- package/dist/internal/entityRegistry.js +22 -0
- package/dist/internal/entityRegistry.js.map +1 -0
- package/dist/internal/entityReply.d.ts +2 -0
- package/dist/internal/entityReply.d.ts.map +1 -0
- package/dist/internal/entityReply.js +35 -0
- package/dist/internal/entityReply.js.map +1 -0
- package/dist/internal/entityRuntime.d.ts +2 -0
- package/dist/internal/entityRuntime.d.ts.map +1 -0
- package/dist/internal/entityRuntime.js +823 -0
- package/dist/internal/entityRuntime.js.map +1 -0
- package/dist/internal/entitySql.d.ts +2 -0
- package/dist/internal/entitySql.d.ts.map +1 -0
- package/dist/internal/entitySql.js +29 -0
- package/dist/internal/entitySql.js.map +1 -0
- package/dist/internal/entityStorage.d.ts +2 -0
- package/dist/internal/entityStorage.d.ts.map +1 -0
- package/dist/internal/entityStorage.js +98 -0
- package/dist/internal/entityStorage.js.map +1 -0
- package/dist/internal/entityWire.d.ts +2 -0
- package/dist/internal/entityWire.d.ts.map +1 -0
- package/dist/internal/entityWire.js +146 -0
- package/dist/internal/entityWire.js.map +1 -0
- package/dist/internal/queueRuntime.d.ts +2 -0
- package/dist/internal/queueRuntime.d.ts.map +1 -0
- package/dist/internal/queueRuntime.js +88 -0
- package/dist/internal/queueRuntime.js.map +1 -0
- package/dist/internal/queueStorage.d.ts +2 -0
- package/dist/internal/queueStorage.d.ts.map +1 -0
- package/dist/internal/queueStorage.js +129 -0
- package/dist/internal/queueStorage.js.map +1 -0
- package/dist/internal/registry.d.ts +10 -0
- package/dist/internal/registry.d.ts.map +1 -0
- package/dist/internal/registry.js +24 -0
- package/dist/internal/registry.js.map +1 -0
- package/dist/internal/singletonRegistry.d.ts +2 -0
- package/dist/internal/singletonRegistry.d.ts.map +1 -0
- package/dist/internal/singletonRegistry.js +9 -0
- package/dist/internal/singletonRegistry.js.map +1 -0
- package/dist/internal/singletonRuntime.d.ts +2 -0
- package/dist/internal/singletonRuntime.d.ts.map +1 -0
- package/dist/internal/singletonRuntime.js +42 -0
- package/dist/internal/singletonRuntime.js.map +1 -0
- package/dist/internal/singletonStorage.d.ts +2 -0
- package/dist/internal/singletonStorage.d.ts.map +1 -0
- package/dist/internal/singletonStorage.js +34 -0
- package/dist/internal/singletonStorage.js.map +1 -0
- package/dist/internal/transport.d.ts +2 -0
- package/dist/internal/transport.d.ts.map +1 -0
- package/dist/internal/transport.js +49 -0
- package/dist/internal/transport.js.map +1 -0
- package/dist/internal/workflowRegistry.d.ts +2 -0
- package/dist/internal/workflowRegistry.d.ts.map +1 -0
- package/dist/internal/workflowRegistry.js +29 -0
- package/dist/internal/workflowRegistry.js.map +1 -0
- package/dist/internal/workflowRuntime.d.ts +2 -0
- package/dist/internal/workflowRuntime.d.ts.map +1 -0
- package/dist/internal/workflowRuntime.js +322 -0
- package/dist/internal/workflowRuntime.js.map +1 -0
- package/dist/internal/workflowStorage.d.ts +2 -0
- package/dist/internal/workflowStorage.d.ts.map +1 -0
- package/dist/internal/workflowStorage.js +113 -0
- package/dist/internal/workflowStorage.js.map +1 -0
- package/dist/internal/workflowWire.d.ts +2 -0
- package/dist/internal/workflowWire.d.ts.map +1 -0
- package/dist/internal/workflowWire.js +52 -0
- package/dist/internal/workflowWire.js.map +1 -0
- package/package.json +77 -1
- package/src/AlchemyCloudflareCluster.ts +200 -0
- package/src/CloudflareCluster.ts +704 -0
- package/src/CloudflareDurableObjectPrograms.ts +543 -0
- package/src/CloudflareDurableObjects.ts +430 -0
- package/src/CloudflarePersistedQueue.ts +189 -0
- package/src/CloudflareWorkflowEngine.ts +220 -0
- package/src/index.ts +38 -0
- package/src/internal/alchemyCluster.ts +120 -0
- package/src/internal/boundedMap.ts +15 -0
- package/src/internal/cluster.ts +57 -0
- package/src/internal/clusterName.ts +19 -0
- package/src/internal/entityKeepAlive.ts +121 -0
- package/src/internal/entityMailbox.ts +324 -0
- package/src/internal/entityRegistry.ts +46 -0
- package/src/internal/entityReply.ts +54 -0
- package/src/internal/entityRuntime.ts +1318 -0
- package/src/internal/entitySql.ts +60 -0
- package/src/internal/entityStorage.ts +168 -0
- package/src/internal/entityWire.ts +204 -0
- package/src/internal/queueRuntime.ts +174 -0
- package/src/internal/queueStorage.ts +255 -0
- package/src/internal/registry.ts +31 -0
- package/src/internal/singletonRegistry.ts +21 -0
- package/src/internal/singletonRuntime.ts +88 -0
- package/src/internal/singletonStorage.ts +64 -0
- package/src/internal/transport.ts +67 -0
- package/src/internal/workflowRegistry.ts +78 -0
- package/src/internal/workflowRuntime.ts +443 -0
- package/src/internal/workflowStorage.ts +234 -0
- 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 @@
|
|
|
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 @@
|
|
|
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
|
-
{
|
|
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
|