@sonamu-kit/tasks 0.1.3 → 0.3.0

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 (215) hide show
  1. package/.oxlintrc.json +3 -0
  2. package/AGENTS.md +21 -0
  3. package/dist/backend.d.ts +126 -103
  4. package/dist/backend.d.ts.map +1 -1
  5. package/dist/backend.js +4 -1
  6. package/dist/backend.js.map +1 -1
  7. package/dist/client.d.ts +145 -132
  8. package/dist/client.d.ts.map +1 -1
  9. package/dist/client.js +220 -212
  10. package/dist/client.js.map +1 -1
  11. package/dist/config.d.ts +15 -8
  12. package/dist/config.d.ts.map +1 -1
  13. package/dist/config.js +22 -17
  14. package/dist/config.js.map +1 -1
  15. package/dist/core/duration.d.ts +5 -4
  16. package/dist/core/duration.d.ts.map +1 -1
  17. package/dist/core/duration.js +54 -59
  18. package/dist/core/duration.js.map +1 -1
  19. package/dist/core/error.d.ts +10 -7
  20. package/dist/core/error.d.ts.map +1 -1
  21. package/dist/core/error.js +21 -21
  22. package/dist/core/error.js.map +1 -1
  23. package/dist/core/json.d.ts +8 -3
  24. package/dist/core/json.d.ts.map +1 -1
  25. package/dist/core/result.d.ts +10 -14
  26. package/dist/core/result.d.ts.map +1 -1
  27. package/dist/core/result.js +21 -16
  28. package/dist/core/result.js.map +1 -1
  29. package/dist/core/retry.d.ts +42 -20
  30. package/dist/core/retry.d.ts.map +1 -1
  31. package/dist/core/retry.js +49 -20
  32. package/dist/core/retry.js.map +1 -1
  33. package/dist/core/schema.d.ts +57 -53
  34. package/dist/core/schema.d.ts.map +1 -1
  35. package/dist/core/step.d.ts +28 -78
  36. package/dist/core/step.d.ts.map +1 -1
  37. package/dist/core/step.js +53 -63
  38. package/dist/core/step.js.map +1 -1
  39. package/dist/core/workflow.d.ts +33 -61
  40. package/dist/core/workflow.d.ts.map +1 -1
  41. package/dist/core/workflow.js +31 -41
  42. package/dist/core/workflow.js.map +1 -1
  43. package/dist/database/backend.d.ts +53 -46
  44. package/dist/database/backend.d.ts.map +1 -1
  45. package/dist/database/backend.js +544 -545
  46. package/dist/database/backend.js.map +1 -1
  47. package/dist/database/base.js +48 -25
  48. package/dist/database/base.js.map +1 -1
  49. package/dist/database/migrations/20251212000000_0_init.d.ts +10 -0
  50. package/dist/database/migrations/20251212000000_0_init.d.ts.map +1 -0
  51. package/dist/database/migrations/20251212000000_0_init.js +8 -4
  52. package/dist/database/migrations/20251212000000_0_init.js.map +1 -1
  53. package/dist/database/migrations/20251212000000_1_tables.d.ts +10 -0
  54. package/dist/database/migrations/20251212000000_1_tables.d.ts.map +1 -0
  55. package/dist/database/migrations/20251212000000_1_tables.js +81 -83
  56. package/dist/database/migrations/20251212000000_1_tables.js.map +1 -1
  57. package/dist/database/migrations/20251212000000_2_fk.d.ts +10 -0
  58. package/dist/database/migrations/20251212000000_2_fk.d.ts.map +1 -0
  59. package/dist/database/migrations/20251212000000_2_fk.js +20 -43
  60. package/dist/database/migrations/20251212000000_2_fk.js.map +1 -1
  61. package/dist/database/migrations/20251212000000_3_indexes.d.ts +10 -0
  62. package/dist/database/migrations/20251212000000_3_indexes.d.ts.map +1 -0
  63. package/dist/database/migrations/20251212000000_3_indexes.js +88 -102
  64. package/dist/database/migrations/20251212000000_3_indexes.js.map +1 -1
  65. package/dist/database/pubsub.d.ts +7 -16
  66. package/dist/database/pubsub.d.ts.map +1 -1
  67. package/dist/database/pubsub.js +75 -73
  68. package/dist/database/pubsub.js.map +1 -1
  69. package/dist/execution.d.ts +20 -57
  70. package/dist/execution.d.ts.map +1 -1
  71. package/dist/execution.js +175 -174
  72. package/dist/execution.js.map +1 -1
  73. package/dist/index.d.ts +5 -8
  74. package/dist/index.js +5 -5
  75. package/dist/internal.d.ts +12 -12
  76. package/dist/internal.js +4 -4
  77. package/dist/registry.d.ts +33 -27
  78. package/dist/registry.d.ts.map +1 -1
  79. package/dist/registry.js +58 -49
  80. package/dist/registry.js.map +1 -1
  81. package/dist/worker.d.ts +57 -50
  82. package/dist/worker.d.ts.map +1 -1
  83. package/dist/worker.js +194 -198
  84. package/dist/worker.js.map +1 -1
  85. package/dist/workflow.d.ts +26 -27
  86. package/dist/workflow.d.ts.map +1 -1
  87. package/dist/workflow.js +20 -15
  88. package/dist/workflow.js.map +1 -1
  89. package/nodemon.json +1 -1
  90. package/package.json +18 -20
  91. package/src/backend.ts +28 -8
  92. package/src/chaos.test.ts +3 -1
  93. package/src/client.test.ts +2 -0
  94. package/src/client.ts +32 -8
  95. package/src/config.test.ts +1 -0
  96. package/src/config.ts +3 -2
  97. package/src/core/duration.test.ts +2 -1
  98. package/src/core/duration.ts +1 -1
  99. package/src/core/error.test.ts +1 -0
  100. package/src/core/error.ts +1 -1
  101. package/src/core/result.test.ts +1 -0
  102. package/src/core/retry.test.ts +181 -11
  103. package/src/core/retry.ts +95 -19
  104. package/src/core/schema.ts +2 -2
  105. package/src/core/step.test.ts +2 -1
  106. package/src/core/step.ts +4 -3
  107. package/src/core/workflow.test.ts +2 -1
  108. package/src/core/workflow.ts +4 -3
  109. package/src/database/backend.test.ts +1 -0
  110. package/src/database/backend.testsuite.ts +162 -39
  111. package/src/database/backend.ts +271 -35
  112. package/src/database/base.test.ts +41 -0
  113. package/src/database/base.ts +51 -2
  114. package/src/database/migrations/20251212000000_0_init.ts +2 -1
  115. package/src/database/migrations/20251212000000_1_tables.ts +2 -1
  116. package/src/database/migrations/20251212000000_2_fk.ts +2 -1
  117. package/src/database/migrations/20251212000000_3_indexes.ts +2 -1
  118. package/src/database/pubsub.test.ts +6 -3
  119. package/src/database/pubsub.ts +55 -33
  120. package/src/execution.test.ts +117 -0
  121. package/src/execution.ts +65 -10
  122. package/src/internal.ts +21 -1
  123. package/src/practices/01-remote-workflow.ts +1 -0
  124. package/src/registry.test.ts +1 -0
  125. package/src/registry.ts +1 -1
  126. package/src/testing/connection.ts +3 -1
  127. package/src/worker.test.ts +2 -0
  128. package/src/worker.ts +31 -9
  129. package/src/workflow.test.ts +1 -0
  130. package/src/workflow.ts +5 -2
  131. package/templates/openworkflow.config.ts +2 -1
  132. package/tsdown.config.ts +31 -0
  133. package/.swcrc +0 -17
  134. package/dist/chaos.test.d.ts +0 -2
  135. package/dist/chaos.test.d.ts.map +0 -1
  136. package/dist/chaos.test.js +0 -92
  137. package/dist/chaos.test.js.map +0 -1
  138. package/dist/client.test.d.ts +0 -2
  139. package/dist/client.test.d.ts.map +0 -1
  140. package/dist/client.test.js +0 -340
  141. package/dist/client.test.js.map +0 -1
  142. package/dist/config.test.d.ts +0 -2
  143. package/dist/config.test.d.ts.map +0 -1
  144. package/dist/config.test.js +0 -24
  145. package/dist/config.test.js.map +0 -1
  146. package/dist/core/duration.test.d.ts +0 -2
  147. package/dist/core/duration.test.d.ts.map +0 -1
  148. package/dist/core/duration.test.js +0 -265
  149. package/dist/core/duration.test.js.map +0 -1
  150. package/dist/core/error.test.d.ts +0 -2
  151. package/dist/core/error.test.d.ts.map +0 -1
  152. package/dist/core/error.test.js +0 -63
  153. package/dist/core/error.test.js.map +0 -1
  154. package/dist/core/json.js +0 -3
  155. package/dist/core/json.js.map +0 -1
  156. package/dist/core/result.test.d.ts +0 -2
  157. package/dist/core/result.test.d.ts.map +0 -1
  158. package/dist/core/result.test.js +0 -19
  159. package/dist/core/result.test.js.map +0 -1
  160. package/dist/core/retry.test.d.ts +0 -2
  161. package/dist/core/retry.test.d.ts.map +0 -1
  162. package/dist/core/retry.test.js +0 -37
  163. package/dist/core/retry.test.js.map +0 -1
  164. package/dist/core/schema.js +0 -4
  165. package/dist/core/schema.js.map +0 -1
  166. package/dist/core/step.test.d.ts +0 -2
  167. package/dist/core/step.test.d.ts.map +0 -1
  168. package/dist/core/step.test.js +0 -356
  169. package/dist/core/step.test.js.map +0 -1
  170. package/dist/core/workflow.test.d.ts +0 -2
  171. package/dist/core/workflow.test.d.ts.map +0 -1
  172. package/dist/core/workflow.test.js +0 -172
  173. package/dist/core/workflow.test.js.map +0 -1
  174. package/dist/database/backend.test.d.ts +0 -2
  175. package/dist/database/backend.test.d.ts.map +0 -1
  176. package/dist/database/backend.test.js +0 -19
  177. package/dist/database/backend.test.js.map +0 -1
  178. package/dist/database/backend.testsuite.d.ts +0 -20
  179. package/dist/database/backend.testsuite.d.ts.map +0 -1
  180. package/dist/database/backend.testsuite.js +0 -1174
  181. package/dist/database/backend.testsuite.js.map +0 -1
  182. package/dist/database/base.d.ts +0 -12
  183. package/dist/database/base.d.ts.map +0 -1
  184. package/dist/database/pubsub.test.d.ts +0 -2
  185. package/dist/database/pubsub.test.d.ts.map +0 -1
  186. package/dist/database/pubsub.test.js +0 -86
  187. package/dist/database/pubsub.test.js.map +0 -1
  188. package/dist/execution.test.d.ts +0 -2
  189. package/dist/execution.test.d.ts.map +0 -1
  190. package/dist/execution.test.js +0 -558
  191. package/dist/execution.test.js.map +0 -1
  192. package/dist/index.d.ts.map +0 -1
  193. package/dist/index.js.map +0 -1
  194. package/dist/internal.d.ts.map +0 -1
  195. package/dist/internal.js.map +0 -1
  196. package/dist/practices/01-remote-workflow.d.ts +0 -2
  197. package/dist/practices/01-remote-workflow.d.ts.map +0 -1
  198. package/dist/practices/01-remote-workflow.js +0 -70
  199. package/dist/practices/01-remote-workflow.js.map +0 -1
  200. package/dist/registry.test.d.ts +0 -2
  201. package/dist/registry.test.d.ts.map +0 -1
  202. package/dist/registry.test.js +0 -95
  203. package/dist/registry.test.js.map +0 -1
  204. package/dist/testing/connection.d.ts +0 -7
  205. package/dist/testing/connection.d.ts.map +0 -1
  206. package/dist/testing/connection.js +0 -39
  207. package/dist/testing/connection.js.map +0 -1
  208. package/dist/worker.test.d.ts +0 -2
  209. package/dist/worker.test.d.ts.map +0 -1
  210. package/dist/worker.test.js +0 -1164
  211. package/dist/worker.test.js.map +0 -1
  212. package/dist/workflow.test.d.ts +0 -2
  213. package/dist/workflow.test.d.ts.map +0 -1
  214. package/dist/workflow.test.js +0 -73
  215. package/dist/workflow.test.js.map +0 -1
@@ -1,558 +0,0 @@
1
- import { randomUUID } from "node:crypto";
2
- import { afterAll, beforeAll, describe, expect, test } from "vitest";
3
- import { BackendPostgres } from "./index.js";
4
- import { OpenWorkflow } from "./client.js";
5
- import { KNEX_GLOBAL_CONFIG } from "./testing/connection.js";
6
- describe("StepExecutor", ()=>{
7
- let backend;
8
- beforeAll(async ()=>{
9
- backend = new BackendPostgres(KNEX_GLOBAL_CONFIG, {
10
- namespaceId: randomUUID(),
11
- runMigrations: false
12
- });
13
- await backend.initialize();
14
- });
15
- afterAll(async ()=>{
16
- await backend.stop();
17
- });
18
- test("executes step and returns result", async ()=>{
19
- const client = new OpenWorkflow({
20
- backend
21
- });
22
- const workflow = client.defineWorkflow({
23
- name: "executor-basic"
24
- }, async ({ step })=>{
25
- const result = await step.run({
26
- name: "add"
27
- }, ()=>5 + 3);
28
- return result;
29
- });
30
- const worker = client.newWorker();
31
- const handle = await workflow.run();
32
- await worker.tick();
33
- const result = await handle.result();
34
- expect(result).toBe(8);
35
- });
36
- test("caches step results for same step name", async ()=>{
37
- const client = new OpenWorkflow({
38
- backend
39
- });
40
- let executionCount = 0;
41
- const workflow = client.defineWorkflow({
42
- name: "executor-cached"
43
- }, async ({ step })=>{
44
- const first = await step.run({
45
- name: "cached-step"
46
- }, ()=>{
47
- executionCount++;
48
- return "first-execution";
49
- });
50
- const second = await step.run({
51
- name: "cached-step"
52
- }, ()=>{
53
- executionCount++;
54
- return "second-execution";
55
- });
56
- return {
57
- first,
58
- second
59
- };
60
- });
61
- const worker = client.newWorker();
62
- const handle = await workflow.run();
63
- await worker.tick();
64
- const result = await handle.result();
65
- expect(result).toEqual({
66
- first: "first-execution",
67
- second: "first-execution"
68
- });
69
- expect(executionCount).toBe(1);
70
- });
71
- test("different step names execute independently", async ()=>{
72
- const client = new OpenWorkflow({
73
- backend
74
- });
75
- let executionCount = 0;
76
- const workflow = client.defineWorkflow({
77
- name: "executor-different-steps"
78
- }, async ({ step })=>{
79
- const first = await step.run({
80
- name: "step-1"
81
- }, ()=>{
82
- executionCount++;
83
- return "a";
84
- });
85
- const second = await step.run({
86
- name: "step-2"
87
- }, ()=>{
88
- executionCount++;
89
- return "b";
90
- });
91
- return {
92
- first,
93
- second
94
- };
95
- });
96
- const worker = client.newWorker();
97
- const handle = await workflow.run();
98
- await worker.tick();
99
- const result = await handle.result();
100
- expect(result).toEqual({
101
- first: "a",
102
- second: "b"
103
- });
104
- expect(executionCount).toBe(2);
105
- });
106
- test("propagates step errors with deadline exceeded", async ()=>{
107
- const client = new OpenWorkflow({
108
- backend
109
- });
110
- const workflow = client.defineWorkflow({
111
- name: "executor-error"
112
- }, async ({ step })=>{
113
- await step.run({
114
- name: "failing-step"
115
- }, ()=>{
116
- throw new Error("Step failed intentionally");
117
- });
118
- return "should not reach";
119
- });
120
- const worker = client.newWorker();
121
- // Use deadline to force immediate failure without retries
122
- const handle = await workflow.run({}, {
123
- deadlineAt: new Date()
124
- });
125
- await worker.tick();
126
- await sleep(100);
127
- await expect(handle.result()).rejects.toThrow(/deadline exceeded/);
128
- });
129
- test("sleep puts workflow in sleeping status", async ()=>{
130
- const client = new OpenWorkflow({
131
- backend
132
- });
133
- const workflow = client.defineWorkflow({
134
- name: "executor-sleep"
135
- }, async ({ step })=>{
136
- await step.sleep("sleep-1", "5s");
137
- return "after sleep";
138
- });
139
- const handle = await workflow.run();
140
- const worker = client.newWorker();
141
- await worker.tick();
142
- await sleep(50); // Wait for sleep step to complete
143
- const workflowRun = await backend.getWorkflowRun({
144
- workflowRunId: handle.workflowRun.id
145
- });
146
- expect(workflowRun?.status).toBe("sleeping");
147
- expect(workflowRun?.availableAt).not.toBeNull();
148
- });
149
- test("workflow resumes after sleep duration", async ()=>{
150
- const client = new OpenWorkflow({
151
- backend
152
- });
153
- const workflow = client.defineWorkflow({
154
- name: "resume-after-sleep"
155
- }, async ({ step })=>{
156
- const value = await step.run({
157
- name: "before"
158
- }, ()=>5);
159
- await step.sleep("wait", "10ms");
160
- return value + 10;
161
- });
162
- const handle = await workflow.run();
163
- const worker = client.newWorker();
164
- // First tick - hits sleep
165
- await worker.tick();
166
- await sleep(50); // Wait for tick to complete
167
- const sleeping = await backend.getWorkflowRun({
168
- workflowRunId: handle.workflowRun.id
169
- });
170
- expect(sleeping?.status).toBe("sleeping");
171
- // Wait for sleep to elapse
172
- await sleep(50);
173
- // Second tick - completes
174
- await worker.tick();
175
- const result = await handle.result();
176
- expect(result).toBe(15);
177
- });
178
- });
179
- describe("executeWorkflow", ()=>{
180
- let backend;
181
- beforeAll(async ()=>{
182
- backend = new BackendPostgres(KNEX_GLOBAL_CONFIG, {
183
- namespaceId: randomUUID(),
184
- runMigrations: false
185
- });
186
- await backend.initialize();
187
- });
188
- afterAll(async ()=>{
189
- await backend.stop();
190
- });
191
- describe("successful execution", ()=>{
192
- test("executes a simple workflow", async ()=>{
193
- const client = new OpenWorkflow({
194
- backend
195
- });
196
- const workflow = client.defineWorkflow({
197
- name: "simple-workflow"
198
- }, ({ input })=>{
199
- return input.a + input.b;
200
- });
201
- const worker = client.newWorker();
202
- const handle = await workflow.run({
203
- a: 10,
204
- b: 5
205
- });
206
- await worker.tick();
207
- const result = await handle.result();
208
- expect(result).toBe(15);
209
- });
210
- test("executes a multi-step workflow", async ()=>{
211
- const client = new OpenWorkflow({
212
- backend
213
- });
214
- const workflow = client.defineWorkflow({
215
- name: "multi-step-workflow"
216
- }, async ({ input, step })=>{
217
- const sum = await step.run({
218
- name: "add"
219
- }, ()=>input.value + 5);
220
- const product = await step.run({
221
- name: "multiply"
222
- }, ()=>sum * 2);
223
- return product;
224
- });
225
- const worker = client.newWorker();
226
- const handle = await workflow.run({
227
- value: 10
228
- });
229
- await worker.tick();
230
- const result = await handle.result();
231
- expect(result).toBe(30);
232
- });
233
- test("returns null for workflows without return", async ()=>{
234
- const client = new OpenWorkflow({
235
- backend
236
- });
237
- const workflow = client.defineWorkflow({
238
- name: "void-workflow"
239
- }, ()=>null);
240
- const worker = client.newWorker();
241
- const handle = await workflow.run();
242
- await worker.tick();
243
- const result = await handle.result();
244
- expect(result).toBeNull();
245
- });
246
- test("returns null from workflow", async ()=>{
247
- const client = new OpenWorkflow({
248
- backend
249
- });
250
- const workflow = client.defineWorkflow({
251
- name: "null-workflow"
252
- }, ()=>null);
253
- const worker = client.newWorker();
254
- const handle = await workflow.run();
255
- await worker.tick();
256
- const result = await handle.result();
257
- expect(result).toBeNull();
258
- });
259
- });
260
- describe("error handling", ()=>{
261
- test("handles workflow errors with deadline exceeded", async ()=>{
262
- const client = new OpenWorkflow({
263
- backend
264
- });
265
- const workflow = client.defineWorkflow({
266
- name: "failing-workflow"
267
- }, ()=>{
268
- throw new Error("Workflow error");
269
- });
270
- const worker = client.newWorker();
271
- // Use deadline to skip retries - fails with deadline exceeded
272
- const handle = await workflow.run({}, {
273
- deadlineAt: new Date()
274
- });
275
- await worker.tick();
276
- await sleep(100);
277
- await expect(handle.result()).rejects.toThrow(/deadline exceeded/);
278
- });
279
- test("handles step errors with deadline exceeded", async ()=>{
280
- const client = new OpenWorkflow({
281
- backend
282
- });
283
- const workflow = client.defineWorkflow({
284
- name: "step-error-workflow"
285
- }, async ({ step })=>{
286
- await step.run({
287
- name: "failing"
288
- }, ()=>{
289
- throw new Error("Step error");
290
- });
291
- return "unreachable";
292
- });
293
- const worker = client.newWorker();
294
- const handle = await workflow.run({}, {
295
- deadlineAt: new Date()
296
- });
297
- await worker.tick();
298
- await sleep(100);
299
- await expect(handle.result()).rejects.toThrow(/deadline exceeded/);
300
- });
301
- test("serializes non-Error exceptions", async ()=>{
302
- const client = new OpenWorkflow({
303
- backend
304
- });
305
- const workflow = client.defineWorkflow({
306
- name: "non-error-workflow"
307
- }, async ({ step })=>{
308
- await step.run({
309
- name: "throw-object"
310
- }, ()=>{
311
- // eslint-disable-next-line @typescript-eslint/only-throw-error
312
- throw {
313
- custom: "error",
314
- code: 500
315
- };
316
- });
317
- return "nope";
318
- });
319
- const worker = client.newWorker();
320
- const handle = await workflow.run({}, {
321
- deadlineAt: new Date()
322
- });
323
- await worker.tick();
324
- await sleep(100);
325
- await expect(handle.result()).rejects.toThrow();
326
- });
327
- });
328
- describe("sleep handling", ()=>{
329
- test("workflow enters sleeping status", async ()=>{
330
- const client = new OpenWorkflow({
331
- backend
332
- });
333
- const workflow = client.defineWorkflow({
334
- name: "sleep-workflow"
335
- }, async ({ step })=>{
336
- await step.sleep("wait", "5s");
337
- return "after sleep";
338
- });
339
- const handle = await workflow.run();
340
- const worker = client.newWorker();
341
- await worker.tick();
342
- await sleep(50); // Wait for sleep step to complete
343
- const workflowRun = await backend.getWorkflowRun({
344
- workflowRunId: handle.workflowRun.id
345
- });
346
- expect(workflowRun?.status).toBe("sleeping");
347
- });
348
- test("resumes workflow after sleep duration", async ()=>{
349
- const client = new OpenWorkflow({
350
- backend
351
- });
352
- const workflow = client.defineWorkflow({
353
- name: "resume-after-sleep"
354
- }, async ({ input, step })=>{
355
- const sum = await step.run({
356
- name: "add"
357
- }, ()=>input.value + 1);
358
- await step.sleep("wait", "10ms");
359
- return sum + 10;
360
- });
361
- const handle = await workflow.run({
362
- value: 5
363
- });
364
- const worker = client.newWorker();
365
- // first tick - hits sleep
366
- await worker.tick();
367
- await sleep(50);
368
- const sleeping = await backend.getWorkflowRun({
369
- workflowRunId: handle.workflowRun.id
370
- });
371
- expect(sleeping?.status).toBe("sleeping");
372
- // wait for sleep
373
- await sleep(50);
374
- await worker.tick();
375
- const result = await handle.result();
376
- expect(result).toBe(16);
377
- });
378
- });
379
- describe("workflow with complex data", ()=>{
380
- test("handles objects as input and output", async ()=>{
381
- const client = new OpenWorkflow({
382
- backend
383
- });
384
- const workflow = client.defineWorkflow({
385
- name: "user-workflow"
386
- }, ({ input })=>{
387
- return {
388
- greeting: `Hello, ${input.name}! You are ${String(input.age)} years old.`,
389
- processed: true
390
- };
391
- });
392
- const worker = client.newWorker();
393
- const handle = await workflow.run({
394
- name: "Alice",
395
- age: 30
396
- });
397
- await worker.tick();
398
- const result = await handle.result();
399
- expect(result).toEqual({
400
- greeting: "Hello, Alice! You are 30 years old.",
401
- processed: true
402
- });
403
- });
404
- test("handles arrays in workflow", async ()=>{
405
- const client = new OpenWorkflow({
406
- backend
407
- });
408
- const workflow = client.defineWorkflow({
409
- name: "array-workflow"
410
- }, ({ input })=>{
411
- return input.numbers.reduce((a, b)=>a + b, 0);
412
- });
413
- const worker = client.newWorker();
414
- const handle = await workflow.run({
415
- numbers: [
416
- 1,
417
- 2,
418
- 3,
419
- 4,
420
- 5
421
- ]
422
- });
423
- await worker.tick();
424
- const result = await handle.result();
425
- expect(result).toBe(15);
426
- });
427
- });
428
- describe("result type handling", ()=>{
429
- test("returns success with numeric result", async ()=>{
430
- const client = new OpenWorkflow({
431
- backend
432
- });
433
- const workflow = client.defineWorkflow({
434
- name: "numeric-result"
435
- }, async ({ step })=>{
436
- return await step.run({
437
- name: "compute"
438
- }, ()=>100 + 200);
439
- });
440
- const worker = client.newWorker();
441
- const handle = await workflow.run();
442
- await worker.tick();
443
- const result = await handle.result();
444
- expect(result).toBe(300);
445
- });
446
- test("returns success with string result", async ()=>{
447
- const client = new OpenWorkflow({
448
- backend
449
- });
450
- const workflow = client.defineWorkflow({
451
- name: "string-result"
452
- }, ({ input })=>{
453
- return input.text.toUpperCase();
454
- });
455
- const worker = client.newWorker();
456
- const handle = await workflow.run({
457
- text: "hello world"
458
- });
459
- await worker.tick();
460
- const result = await handle.result();
461
- expect(result).toBe("HELLO WORLD");
462
- });
463
- test("returns success with boolean result", async ()=>{
464
- const client = new OpenWorkflow({
465
- backend
466
- });
467
- const workflow = client.defineWorkflow({
468
- name: "bool-result"
469
- }, ({ input })=>{
470
- return input.value > 0;
471
- });
472
- const worker = client.newWorker();
473
- const handle = await workflow.run({
474
- value: 42
475
- });
476
- await worker.tick();
477
- const result = await handle.result();
478
- expect(result).toBe(true);
479
- });
480
- });
481
- describe("step execution order", ()=>{
482
- test("executes steps in sequence", async ()=>{
483
- const client = new OpenWorkflow({
484
- backend
485
- });
486
- const order = [];
487
- const workflow = client.defineWorkflow({
488
- name: "sequence-workflow"
489
- }, async ({ step })=>{
490
- await step.run({
491
- name: "first"
492
- }, ()=>order.push("first"));
493
- await step.run({
494
- name: "second"
495
- }, ()=>order.push("second"));
496
- await step.run({
497
- name: "third"
498
- }, ()=>order.push("third"));
499
- return order;
500
- });
501
- const worker = client.newWorker();
502
- const handle = await workflow.run();
503
- await worker.tick();
504
- const result = await handle.result();
505
- expect(result).toEqual([
506
- "first",
507
- "second",
508
- "third"
509
- ]);
510
- });
511
- });
512
- describe("version handling", ()=>{
513
- test("passes version to workflow function", async ()=>{
514
- const client = new OpenWorkflow({
515
- backend
516
- });
517
- const workflow = client.defineWorkflow({
518
- name: "version-workflow",
519
- version: "1.0.0"
520
- }, ({ version })=>{
521
- return {
522
- receivedVersion: version
523
- };
524
- });
525
- const worker = client.newWorker();
526
- const handle = await workflow.run();
527
- await worker.tick();
528
- const result = await handle.result();
529
- expect(result).toEqual({
530
- receivedVersion: "1.0.0"
531
- });
532
- });
533
- test("passes null version when not specified", async ()=>{
534
- const client = new OpenWorkflow({
535
- backend
536
- });
537
- const workflow = client.defineWorkflow({
538
- name: "no-version-workflow"
539
- }, ({ version })=>{
540
- return {
541
- receivedVersion: version
542
- };
543
- });
544
- const worker = client.newWorker();
545
- const handle = await workflow.run();
546
- await worker.tick();
547
- const result = await handle.result();
548
- expect(result).toEqual({
549
- receivedVersion: null
550
- });
551
- });
552
- });
553
- });
554
- function sleep(ms) {
555
- return new Promise((resolve)=>setTimeout(resolve, ms));
556
- }
557
-
558
- //# sourceMappingURL=execution.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/execution.test.ts"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { afterAll, beforeAll, describe, expect, test } from \"vitest\";\nimport { BackendPostgres } from \".\";\nimport { OpenWorkflow } from \"./client\";\nimport { KNEX_GLOBAL_CONFIG } from \"./testing/connection\";\n\ndescribe(\"StepExecutor\", () => {\n let backend: BackendPostgres;\n\n beforeAll(async () => {\n backend = new BackendPostgres(KNEX_GLOBAL_CONFIG, {\n namespaceId: randomUUID(),\n runMigrations: false,\n });\n await backend.initialize();\n });\n\n afterAll(async () => {\n await backend.stop();\n });\n\n test(\"executes step and returns result\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow({ name: \"executor-basic\" }, async ({ step }) => {\n const result = await step.run({ name: \"add\" }, () => 5 + 3);\n return result;\n });\n\n const worker = client.newWorker();\n const handle = await workflow.run();\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toBe(8);\n });\n\n test(\"caches step results for same step name\", async () => {\n const client = new OpenWorkflow({ backend });\n\n let executionCount = 0;\n const workflow = client.defineWorkflow({ name: \"executor-cached\" }, async ({ step }) => {\n const first = await step.run({ name: \"cached-step\" }, () => {\n executionCount++;\n return \"first-execution\";\n });\n const second = await step.run({ name: \"cached-step\" }, () => {\n executionCount++;\n return \"second-execution\";\n });\n return { first, second };\n });\n\n const worker = client.newWorker();\n const handle = await workflow.run();\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toEqual({\n first: \"first-execution\",\n second: \"first-execution\",\n });\n expect(executionCount).toBe(1);\n });\n\n test(\"different step names execute independently\", async () => {\n const client = new OpenWorkflow({ backend });\n\n let executionCount = 0;\n const workflow = client.defineWorkflow(\n { name: \"executor-different-steps\" },\n async ({ step }) => {\n const first = await step.run({ name: \"step-1\" }, () => {\n executionCount++;\n return \"a\";\n });\n const second = await step.run({ name: \"step-2\" }, () => {\n executionCount++;\n return \"b\";\n });\n return { first, second };\n },\n );\n\n const worker = client.newWorker();\n const handle = await workflow.run();\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toEqual({ first: \"a\", second: \"b\" });\n expect(executionCount).toBe(2);\n });\n\n test(\"propagates step errors with deadline exceeded\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow({ name: \"executor-error\" }, async ({ step }) => {\n await step.run({ name: \"failing-step\" }, () => {\n throw new Error(\"Step failed intentionally\");\n });\n return \"should not reach\";\n });\n\n const worker = client.newWorker();\n // Use deadline to force immediate failure without retries\n const handle = await workflow.run({}, { deadlineAt: new Date() });\n await worker.tick();\n await sleep(100);\n\n await expect(handle.result()).rejects.toThrow(/deadline exceeded/);\n });\n\n test(\"sleep puts workflow in sleeping status\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow({ name: \"executor-sleep\" }, async ({ step }) => {\n await step.sleep(\"sleep-1\", \"5s\");\n return \"after sleep\";\n });\n\n const handle = await workflow.run();\n const worker = client.newWorker();\n await worker.tick();\n await sleep(50); // Wait for sleep step to complete\n\n const workflowRun = await backend.getWorkflowRun({\n workflowRunId: handle.workflowRun.id,\n });\n expect(workflowRun?.status).toBe(\"sleeping\");\n expect(workflowRun?.availableAt).not.toBeNull();\n });\n\n test(\"workflow resumes after sleep duration\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow({ name: \"resume-after-sleep\" }, async ({ step }) => {\n const value = await step.run({ name: \"before\" }, () => 5);\n await step.sleep(\"wait\", \"10ms\");\n return value + 10;\n });\n\n const handle = await workflow.run();\n const worker = client.newWorker();\n\n // First tick - hits sleep\n await worker.tick();\n await sleep(50); // Wait for tick to complete\n const sleeping = await backend.getWorkflowRun({\n workflowRunId: handle.workflowRun.id,\n });\n expect(sleeping?.status).toBe(\"sleeping\");\n\n // Wait for sleep to elapse\n await sleep(50);\n\n // Second tick - completes\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toBe(15);\n });\n});\n\ndescribe(\"executeWorkflow\", () => {\n let backend: BackendPostgres;\n\n beforeAll(async () => {\n backend = new BackendPostgres(KNEX_GLOBAL_CONFIG, {\n namespaceId: randomUUID(),\n runMigrations: false,\n });\n await backend.initialize();\n });\n\n afterAll(async () => {\n await backend.stop();\n });\n\n describe(\"successful execution\", () => {\n test(\"executes a simple workflow\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow(\n { name: \"simple-workflow\" },\n ({ input }: { input: { a: number; b: number } }) => {\n return input.a + input.b;\n },\n );\n\n const worker = client.newWorker();\n const handle = await workflow.run({ a: 10, b: 5 });\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toBe(15);\n });\n\n test(\"executes a multi-step workflow\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow<{ value: number }, number>(\n { name: \"multi-step-workflow\" },\n async ({ input, step }) => {\n const sum = await step.run({ name: \"add\" }, () => input.value + 5);\n const product = await step.run({ name: \"multiply\" }, () => sum * 2);\n return product;\n },\n );\n\n const worker = client.newWorker();\n const handle = await workflow.run({ value: 10 });\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toBe(30);\n });\n\n test(\"returns null for workflows without return\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow({ name: \"void-workflow\" }, () => null);\n\n const worker = client.newWorker();\n const handle = await workflow.run();\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toBeNull();\n });\n\n test(\"returns null from workflow\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow({ name: \"null-workflow\" }, () => null);\n\n const worker = client.newWorker();\n const handle = await workflow.run();\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toBeNull();\n });\n });\n\n describe(\"error handling\", () => {\n test(\"handles workflow errors with deadline exceeded\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow({ name: \"failing-workflow\" }, () => {\n throw new Error(\"Workflow error\");\n });\n\n const worker = client.newWorker();\n // Use deadline to skip retries - fails with deadline exceeded\n const handle = await workflow.run({}, { deadlineAt: new Date() });\n await worker.tick();\n await sleep(100);\n\n await expect(handle.result()).rejects.toThrow(/deadline exceeded/);\n });\n\n test(\"handles step errors with deadline exceeded\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow({ name: \"step-error-workflow\" }, async ({ step }) => {\n await step.run({ name: \"failing\" }, () => {\n throw new Error(\"Step error\");\n });\n return \"unreachable\";\n });\n\n const worker = client.newWorker();\n const handle = await workflow.run({}, { deadlineAt: new Date() });\n await worker.tick();\n await sleep(100);\n\n await expect(handle.result()).rejects.toThrow(/deadline exceeded/);\n });\n\n test(\"serializes non-Error exceptions\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow({ name: \"non-error-workflow\" }, async ({ step }) => {\n await step.run({ name: \"throw-object\" }, () => {\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw { custom: \"error\", code: 500 };\n });\n return \"nope\";\n });\n\n const worker = client.newWorker();\n const handle = await workflow.run({}, { deadlineAt: new Date() });\n await worker.tick();\n await sleep(100);\n\n await expect(handle.result()).rejects.toThrow();\n });\n });\n\n describe(\"sleep handling\", () => {\n test(\"workflow enters sleeping status\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow({ name: \"sleep-workflow\" }, async ({ step }) => {\n await step.sleep(\"wait\", \"5s\");\n return \"after sleep\";\n });\n\n const handle = await workflow.run();\n const worker = client.newWorker();\n await worker.tick();\n await sleep(50); // Wait for sleep step to complete\n\n const workflowRun = await backend.getWorkflowRun({\n workflowRunId: handle.workflowRun.id,\n });\n expect(workflowRun?.status).toBe(\"sleeping\");\n });\n\n test(\"resumes workflow after sleep duration\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow<{ value: number }, number>(\n { name: \"resume-after-sleep\" },\n async ({ input, step }) => {\n const sum = await step.run({ name: \"add\" }, () => input.value + 1);\n await step.sleep(\"wait\", \"10ms\");\n return sum + 10;\n },\n );\n\n const handle = await workflow.run({ value: 5 });\n const worker = client.newWorker();\n\n // first tick - hits sleep\n await worker.tick();\n await sleep(50);\n\n const sleeping = await backend.getWorkflowRun({\n workflowRunId: handle.workflowRun.id,\n });\n expect(sleeping?.status).toBe(\"sleeping\");\n\n // wait for sleep\n await sleep(50);\n\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toBe(16);\n });\n });\n\n describe(\"workflow with complex data\", () => {\n test(\"handles objects as input and output\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow(\n { name: \"user-workflow\" },\n ({ input }: { input: { name: string; age: number } }) => {\n return {\n greeting: `Hello, ${input.name}! You are ${String(input.age)} years old.`,\n processed: true,\n };\n },\n );\n\n const worker = client.newWorker();\n const handle = await workflow.run({ name: \"Alice\", age: 30 });\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toEqual({\n greeting: \"Hello, Alice! You are 30 years old.\",\n processed: true,\n });\n });\n\n test(\"handles arrays in workflow\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow(\n { name: \"array-workflow\" },\n ({ input }: { input: { numbers: number[] } }) => {\n return input.numbers.reduce((a, b) => a + b, 0);\n },\n );\n\n const worker = client.newWorker();\n const handle = await workflow.run({ numbers: [1, 2, 3, 4, 5] });\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toBe(15);\n });\n });\n\n describe(\"result type handling\", () => {\n test(\"returns success with numeric result\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow({ name: \"numeric-result\" }, async ({ step }) => {\n return await step.run({ name: \"compute\" }, () => 100 + 200);\n });\n\n const worker = client.newWorker();\n const handle = await workflow.run();\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toBe(300);\n });\n\n test(\"returns success with string result\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow(\n { name: \"string-result\" },\n ({ input }: { input: { text: string } }) => {\n return input.text.toUpperCase();\n },\n );\n\n const worker = client.newWorker();\n const handle = await workflow.run({ text: \"hello world\" });\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toBe(\"HELLO WORLD\");\n });\n\n test(\"returns success with boolean result\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow(\n { name: \"bool-result\" },\n ({ input }: { input: { value: number } }) => {\n return input.value > 0;\n },\n );\n\n const worker = client.newWorker();\n const handle = await workflow.run({ value: 42 });\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toBe(true);\n });\n });\n\n describe(\"step execution order\", () => {\n test(\"executes steps in sequence\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const order: string[] = [];\n const workflow = client.defineWorkflow({ name: \"sequence-workflow\" }, async ({ step }) => {\n await step.run({ name: \"first\" }, () => order.push(\"first\"));\n await step.run({ name: \"second\" }, () => order.push(\"second\"));\n await step.run({ name: \"third\" }, () => order.push(\"third\"));\n return order;\n });\n\n const worker = client.newWorker();\n const handle = await workflow.run();\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toEqual([\"first\", \"second\", \"third\"]);\n });\n });\n\n describe(\"version handling\", () => {\n test(\"passes version to workflow function\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow(\n { name: \"version-workflow\", version: \"1.0.0\" },\n ({ version }) => {\n return { receivedVersion: version };\n },\n );\n\n const worker = client.newWorker();\n const handle = await workflow.run();\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toEqual({ receivedVersion: \"1.0.0\" });\n });\n\n test(\"passes null version when not specified\", async () => {\n const client = new OpenWorkflow({ backend });\n\n const workflow = client.defineWorkflow({ name: \"no-version-workflow\" }, ({ version }) => {\n return { receivedVersion: version };\n });\n\n const worker = client.newWorker();\n const handle = await workflow.run();\n await worker.tick();\n\n const result = await handle.result();\n expect(result).toEqual({ receivedVersion: null });\n });\n });\n});\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n"],"names":["randomUUID","afterAll","beforeAll","describe","expect","test","BackendPostgres","OpenWorkflow","KNEX_GLOBAL_CONFIG","backend","namespaceId","runMigrations","initialize","stop","client","workflow","defineWorkflow","name","step","result","run","worker","newWorker","handle","tick","toBe","executionCount","first","second","toEqual","Error","deadlineAt","Date","sleep","rejects","toThrow","workflowRun","getWorkflowRun","workflowRunId","id","status","availableAt","not","toBeNull","value","sleeping","input","a","b","sum","product","custom","code","greeting","String","age","processed","numbers","reduce","text","toUpperCase","order","push","version","receivedVersion","ms","Promise","resolve","setTimeout"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export type { OpenWorkflowOptions } from \"./client\";\nexport { declareWorkflow, OpenWorkflow } from \"./client\";\nexport type { OpenWorkflowConfig, WorkerConfig } from \"./config\";\nexport { defineConfig } from \"./config\";\nexport { BackendPostgres } from \"./database/backend\";\nexport type { WorkerOptions } from \"./worker\";\nexport { Worker } from \"./worker\";\n"],"names":["declareWorkflow","OpenWorkflow","defineConfig","BackendPostgres","Worker"],"mappings":"AACA,SAASA,eAAe,EAAEC,YAAY,QAAQ,cAAW;AAEzD,SAASC,YAAY,QAAQ,cAAW;AACxC,SAASC,eAAe,QAAQ,wBAAqB;AAErD,SAASC,MAAM,QAAQ,cAAW"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,mBAAmB,UAAU,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9E,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/internal.ts"],"sourcesContent":["export * from \"./backend\";\nexport type * from \"./client\";\nexport { loadConfig } from \"./config\";\nexport type { DurationString } from \"./core/duration\";\nexport type { JsonValue } from \"./core/json\";\nexport { DEFAULT_RETRY_POLICY } from \"./core/retry\";\nexport type { StandardSchemaV1 } from \"./core/schema\";\nexport type { StepAttempt } from \"./core/step\";\nexport type { SchemaInput, SchemaOutput, WorkflowRun } from \"./core/workflow\";\nexport type { StepApi, WorkflowFunction } from \"./execution\";\nexport type { WorkflowSpec } from \"./workflow\";\n"],"names":["loadConfig","DEFAULT_RETRY_POLICY"],"mappings":"AAAA,cAAc,eAAY;AAE1B,SAASA,UAAU,QAAQ,cAAW;AAGtC,SAASC,oBAAoB,QAAQ,kBAAe"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=01-remote-workflow.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"01-remote-workflow.d.ts","sourceRoot":"","sources":["../../src/practices/01-remote-workflow.ts"],"names":[],"mappings":""}