@workflow/world-testing 5.0.0-beta.0 → 5.0.0-beta.10

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 (36) hide show
  1. package/dist/.well-known/workflow/v1/flow.mjs +112379 -0
  2. package/dist/.well-known/workflow/v1/manifest.json +314 -19
  3. package/dist/.well-known/workflow/v1/step.mjs +27154 -0
  4. package/dist/src/addition.mjs +1 -1
  5. package/dist/src/errors.mjs +1 -1
  6. package/dist/src/hooks.mjs +1 -1
  7. package/dist/src/idempotency.mjs +1 -1
  8. package/dist/src/index.d.mts.map +1 -1
  9. package/dist/src/index.mjs +3 -1
  10. package/dist/src/inline-batches-debug.d.mts +15 -0
  11. package/dist/src/inline-batches-debug.d.mts.map +1 -0
  12. package/dist/src/inline-batches-debug.mjs +208 -0
  13. package/dist/src/inline-execution.d.mts +13 -0
  14. package/dist/src/inline-execution.d.mts.map +1 -0
  15. package/dist/src/inline-execution.mjs +80 -0
  16. package/dist/src/jsonlines.mjs +1 -1
  17. package/dist/src/null-byte.mjs +1 -1
  18. package/dist/src/server.mjs +58 -9
  19. package/dist/src/util.d.mts +23 -16
  20. package/dist/src/util.d.mts.map +1 -1
  21. package/dist/src/util.mjs +21 -4
  22. package/dist/workflows/hooks.js +1 -1
  23. package/package.json +6 -6
  24. package/dist/.well-known/workflow/v1/flow.js +0 -69316
  25. package/dist/.well-known/workflow/v1/step.js +0 -63436
  26. package/dist/src/addition.mjs.map +0 -1
  27. package/dist/src/errors.mjs.map +0 -1
  28. package/dist/src/hooks.mjs.map +0 -1
  29. package/dist/src/idempotency.mjs.map +0 -1
  30. package/dist/src/index.mjs.map +0 -1
  31. package/dist/src/jsonlines.mjs.map +0 -1
  32. package/dist/src/null-byte.mjs.map +0 -1
  33. package/dist/src/server.mjs.map +0 -1
  34. package/dist/src/util.mjs.map +0 -1
  35. package/dist/workflows/hooks.js.map +0 -1
  36. /package/dist/.well-known/workflow/v1/{webhook.js → webhook.mjs} +0 -0
@@ -4,11 +4,10 @@ import { Hono } from 'hono';
4
4
  import { getHookByToken, getRun, resumeHook, start } from 'workflow/api';
5
5
  import { getWorld } from 'workflow/runtime';
6
6
  import * as z from 'zod';
7
- import flow from '../.well-known/workflow/v1/flow.js';
7
+ import { POST as flowPOST } from '../.well-known/workflow/v1/flow.mjs';
8
8
  import manifest from '../.well-known/workflow/v1/manifest.json' with {
9
9
  type: 'json'
10
10
  };
11
- import step from '../.well-known/workflow/v1/step.js';
12
11
  if (!process.env.WORKFLOW_TARGET_WORLD) {
13
12
  console.error('Error: WORKFLOW_TARGET_WORLD environment variable is not set.');
14
13
  process.exit(1);
@@ -29,12 +28,37 @@ const Invoke = z
29
28
  workflow: manifest.workflows[file][workflow],
30
29
  };
31
30
  });
31
+ // Track flow handler invocations per run for testing inline execution
32
+ const flowInvocationCounts = new Map();
32
33
  const app = new Hono()
33
- .post('/.well-known/workflow/v1/flow', (ctx) => {
34
- return flow.POST(ctx.req.raw);
34
+ .post('/.well-known/workflow/v1/flow', async (ctx) => {
35
+ // Clone the request to read the body for tracking without consuming it.
36
+ // We must increment the invocation counter *before* awaiting flowPOST,
37
+ // otherwise the workflow may complete (and the test may observe the
38
+ // completed status) before the counter is bumped, producing a flaky
39
+ // `expected 0 to be 1` failure when the test immediately queries
40
+ // /_flow-invocations after seeing the run as completed.
41
+ const cloned = ctx.req.raw.clone();
42
+ try {
43
+ const body = (await cloned.json());
44
+ const runId = typeof body?.runId === 'string'
45
+ ? body.runId
46
+ : typeof body.payload
47
+ ?.runId === 'string'
48
+ ? body.payload.runId
49
+ : undefined;
50
+ if (runId) {
51
+ flowInvocationCounts.set(runId, (flowInvocationCounts.get(runId) ?? 0) + 1);
52
+ }
53
+ }
54
+ catch {
55
+ // Health check or non-JSON messages — ignore
56
+ }
57
+ return flowPOST(ctx.req.raw);
35
58
  })
36
- .post('/.well-known/workflow/v1/step', (ctx) => {
37
- return step.POST(ctx.req.raw);
59
+ .get('/_flow-invocations/:runId', (ctx) => {
60
+ const count = flowInvocationCounts.get(ctx.req.param('runId')) ?? 0;
61
+ return ctx.json({ count });
38
62
  })
39
63
  .get('/_manifest', (ctx) => ctx.json(manifest))
40
64
  .post('/invoke', async (ctx) => {
@@ -51,7 +75,8 @@ const app = new Hono()
51
75
  return ctx.json({ runId, hookId: hook.hookId });
52
76
  })
53
77
  .get('/runs/:runId', async (ctx) => {
54
- const run = await getWorld().runs.get(ctx.req.param('runId'));
78
+ const world = await getWorld();
79
+ const run = await world.runs.get(ctx.req.param('runId'));
55
80
  // Custom JSON serialization to handle Uint8Array as base64
56
81
  const json = JSON.stringify(run, (_key, value) => {
57
82
  if (value instanceof Uint8Array) {
@@ -70,6 +95,30 @@ const app = new Hono()
70
95
  const runId = ctx.req.param('runId');
71
96
  const run = getRun(runId);
72
97
  return new Response(run.getReadable());
98
+ })
99
+ .get('/runs/:runId/events', async (ctx) => {
100
+ const runId = ctx.req.param('runId');
101
+ const world = await getWorld();
102
+ const allEvents = [];
103
+ let cursor = undefined;
104
+ while (true) {
105
+ const page = await world.events.list({
106
+ runId,
107
+ pagination: { sortOrder: 'asc', cursor },
108
+ });
109
+ for (const e of page.data) {
110
+ allEvents.push({
111
+ eventType: e.eventType,
112
+ correlationId: e.correlationId,
113
+ });
114
+ }
115
+ if (!page.hasMore)
116
+ break;
117
+ cursor = page.cursor ?? undefined;
118
+ if (!cursor)
119
+ break;
120
+ }
121
+ return ctx.json({ events: allEvents });
73
122
  });
74
123
  serve({
75
124
  fetch: app.fetch,
@@ -86,7 +135,7 @@ serve({
86
135
  })}'`);
87
136
  }
88
137
  }
89
- const world = getWorld();
138
+ const world = await getWorld();
90
139
  if (world.start) {
91
140
  console.log(`starting background tasks...`);
92
141
  await world.start().then(() => console.log('background tasks started.'), (err) => console.error('❗ error starting background tasks:', err));
@@ -97,4 +146,4 @@ serve({
97
146
  control.end();
98
147
  }
99
148
  });
100
- //# sourceMappingURL=server.mjs.map
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLm1qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2ZXIubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztBQUN6QixPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sUUFBUSxNQUFNLDBDQUEwQyxDQUFDO0lBQzlELElBQUksRUFBRSxNQUFNO0NBQ2IsQ0FBQztBQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDdkMsT0FBTyxDQUFDLEtBQUssQ0FDWCwrREFBK0QsQ0FDaEUsQ0FBQztJQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQU1ELE1BQU0sTUFBTSxHQUFHLENBQUM7S0FDYixNQUFNLENBQUM7SUFDTixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQXlCLENBQUM7SUFDckUsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0NBQ3RDLENBQUM7S0FDRCxTQUFTLENBQUMsQ0FBQyxH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UUFBUSxFQUFFLENBQUM7SUFDL0IsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FDdEIsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxFQUM5QyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsRUFBRSxHQUFHLENBQUMsQ0FDbEUsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ25DLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLENBQUM7QUFDSCxDQUFDLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IHNlcnZlIH0gZnJvbSAnQGhvbm8vbm9kZS1zZXJ2ZXInO1xuaW1wb3J0IHsgSG9ubyB9IGZyb20gJ2hvbm8nO1xuaW1wb3J0IHsgZ2V0SG9va0J5VG9rZW4sIGdldFJ1biwgcmVzdW1lSG9vaywgc3RhcnQgfSBmcm9tICd3b3JrZmxvdy9hcGknO1xuaW1wb3J0IHsgZ2V0V29ybGQgfSBmcm9tICd3b3JrZmxvdy9ydW50aW1lJztcbmltcG9ydCAqIGFzIHogZnJvbSAnem9kJztcbmltcG9ydCB7IFBPU1QgYXMgZmxvd1BPU1QgfSBmcm9tICcuLi8ud2VsbC1rbm93bi93b3JrZmxvdy92MS9mbG93Lm1qcyc7XG5pbXBvcnQgbWFuaWZlc3QgZnJvbSAnLi4vLndlbGwta25vd24vd29ya2Zsb3cvdjEvbWFuaWZlc3QuanNvbicgd2l0aCB7XG4gIHR5cGU6ICdqc29uJyxcbn07XG5cbmlmICghcHJvY2Vzcy5lbnYuV09SS0ZMT1dfVEFSR0VUX1dPUkxEKSB7XG4gIGNvbnNvbGUuZXJyb3IoXG4gICAgJ0Vycm9yOiBXT1JLRkxPV19UQVJHRVRfV09STEQgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IHNldC4nXG4gICk7XG4gIHByb2Nlc3MuZXhpdCgxKTtcbn1cblxudHlwZSBGaWxlcyA9IGtleW9mIHR5cGVvZiBtYW5pZmVzdC53b3JrZmxvd3M7XG50eXBlIFdvcmtmbG93czxGIGV4dGVuZHMgRmlsZXM+ID0ga2V5b2YgKHR5cGVvZiBtYW5pZmVzdC53b3JrZmxvd3MpW0ZdO1xudHlwZSBOb25FbXB0eUFycmF5PFQ+ID0gW1QsIC4uLlRbXV07XG5cbmNvbnN0IEludm9rZSA9IHpcbiAgLm9iamVjdCh7XG4gICAgZmlsZTogei5lbnVtKE9iamVjdC5rZXlzKG1hbmlmZXN0LndvcmtmbG93cykgYXMgTm9uRW1wdHlBcnJheTxGaWxlcz4pLFxuICAgIHdvcmtmbG93OiB6LnN0cmluZygpLFxuICAgIGFyZ3M6IHoudW5rbm93bigpLmFycmF5KCkuZGVmYXVsdChbXSksXG4gIH0pXG4gIC50cmFuc2Zvcm0oKG9iaikgPT4ge1xuICAgIGNvbnN0IGZpbGUgPSBvYmouZmlsZSBhcyBrZXlvZiB0eXBlb2YgbWFuaWZlc3Qud29ya2Zsb3dzO1xuICAgIGNvbnN0IHdvcmtmbG93ID0gelxuICAgICAgLmVudW0oXG4gICAgICAgIE9iamVjdC5rZXlzKG1hbmlmZXN0LndvcmtmbG93c1tmaWxlXSkgYXMgTm9uRW1wdHlBcnJheTxcbiAgICAgICAgICBXb3JrZmxvd3M8dHlwZW9mIGZpbGU+XG4gICAgICAgID5cbiAgICAgIClcbiAgICAgIC5wYXJzZShvYmoud29ya2Zsb3cpO1xuICAgIHJldHVybiB7XG4gICAgICBhcmdzOiBvYmouYXJncyxcbiAgICAgIHdvcmtmbG93OiBtYW5pZmVzdC53b3JrZmxvd3NbZmlsZV1bd29ya2Zsb3ddLFxuICAgIH07XG4gIH0pO1xuXG4vLyBUcmFjayBmbG93IGhhbmRsZXIgaW52b2NhdGlvbnMgcGVyIHJ1biBmb3IgdGVzdGluZyBpbmxpbmUgZXhlY3V0aW9uXG5jb25zdCBmbG93SW52b2NhdGlvbkNvdW50cyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG5cbmNvbnN0IGFwcCA9IG5ldyBIb25vKClcbiAgLnBvc3QoJy8ud2VsbC1rbm93bi93b3JrZmxvdy92MS9mbG93JywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIC8vIENsb25lIHRoZSByZXF1ZXN0IHRvIHJlYWQgdGhlIGJvZHkgZm9yIHRyYWNraW5nIHdpdGhvdXQgY29uc3VtaW5nIGl0LlxuICAgIC8vIFdlIG11c3QgaW5jcmVtZW50IHRoZSBpbnZvY2F0aW9uIGNvdW50ZXIgKmJlZm9yZSogYXdhaXRpbmcgZmxvd1BPU1QsXG4gICAgLy8gb3RoZXJ3aXNlIHRoZSB3b3JrZmxvdyBtYXkgY29tcGxldGUgKGFuZCB0aGUgdGVzdCBtYXkgb2JzZXJ2ZSB0aGVcbiAgICAvLyBjb21wbGV0ZWQgc3RhdHVzKSBiZWZvcmUgdGhlIGNvdW50ZXIgaXMgYnVtcGVkLCBwcm9kdWNpbmcgYSBmbGFreVxuICAgIC8vIGBleHBlY3RlZCAwIHRvIGJlIDFgIGZhaWx1cmUgd2hlbiB0aGUgdGVzdCBpbW1lZGlhdGVseSBxdWVyaWVzXG4gICAgLy8gL19mbG93LWludm9jYXRpb25zIGFmdGVyIHNlZWluZyB0aGUgcnVuIGFzIGNvbXBsZXRlZC5cbiAgICBjb25zdCBjbG9uZWQgPSBjdHgucmVxLnJhdy5jbG9uZSgpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBib2R5ID0gKGF3YWl0IGNsb25lZC5qc29uKCkpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgY29uc3QgcnVuSWQgPVxuICAgICAgICB0eXBlb2YgYm9keT8ucnVuSWQgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyBib2R5LnJ1bklkXG4gICAgICAgICAgOiB0eXBlb2YgKGJvZHkucGF5bG9hZCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICA/LnJ1bklkID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyAoKGJvZHkucGF5bG9hZCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikucnVuSWQgYXMgc3RyaW5nKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICBpZiAocnVuSWQpIHtcbiAgICAgICAgZmxvd0ludm9jYXRpb25Db3VudHMuc2V0KFxuICAgICAgICAgIHJ1bklkLFxuICAgICAgICAgIChmbG93SW52b2NhdGlvbkNvdW50cy5nZXQocnVuSWQpID8/IDApICsgMVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gSGVhbHRoIGNoZWNrIG9yIG5vbi1KU09OIG1lc3NhZ2VzIOKAlCBpZ25vcmVcbiAgICB9XG4gICAgcmV0dXJuIGZsb3dQT1NUKGN0eC5yZXEucmF3KTtcbiAgfSlcbiAgLmdldCgnL19mbG93LWludm9jYXRpb25zLzpydW5JZCcsIChjdHgpID0+IHtcbiAgICBjb25zdCBjb3VudCA9IGZsb3dJbnZvY2F0aW9uQ291bnRzLmdldChjdHgucmVxLnBhcmFtKCdydW5JZCcpKSA/PyAwO1xuICAgIHJldHVybiBjdHguanNvbih7IGNvdW50IH0pO1xuICB9KVxuICAuZ2V0KCcvX21hbmlmZXN0JywgKGN0eCkgPT4gY3R4Lmpzb24obWFuaWZlc3QpKVxuICAucG9zdCgnL2ludm9rZScsIGFzeW5jIChjdHgpID0+IHtcbiAgICBjb25zdCBqc29uID0gYXdhaXQgY3R4LnJlcS5qc29uKCkudGhlbihJbnZva2UucGFyc2UpO1xuICAgIGNvbnN0IGhhbmRsZXIgPSBhd2FpdCBzdGFydChqc29uLndvcmtmbG93LCBqc29uLmFyZ3MpO1xuXG4gICAgcmV0dXJuIGN0eC5qc29uKHsgcnVuSWQ6IGhhbmRsZXIucnVuSWQgfSk7XG4gIH0pXG4gIC5wb3N0KCcvaG9va3MvOnRva2VuJywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIGNvbnN0IGhvb2sgPSBhd2FpdCBnZXRIb29rQnlUb2tlbihjdHgucmVxLnBhcmFtKCd0b2tlbicpKTtcbiAgICBjb25zdCB7IHJ1bklkIH0gPSBhd2FpdCByZXN1bWVIb29rKGhvb2sudG9rZW4sIHtcbiAgICAgIC4uLihhd2FpdCBjdHgucmVxLmpzb24oKSksXG4gICAgICBtZXRhZGF0YTogaG9vay5tZXRhZGF0YSxcbiAgICB9KTtcbiAgICByZXR1cm4gY3R4Lmpzb24oeyBydW5JZCwgaG9va0lkOiBob29rLmhvb2tJZCB9KTtcbiAgfSlcbiAgLmdldCgnL3J1bnMvOnJ1bklkJywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIGNvbnN0IHdvcmxkID0gYXdhaXQgZ2V0V29ybGQoKTtcbiAgICBjb25zdCBydW4gPSBhd2FpdCB3b3JsZC5ydW5zLmdldChjdHgucmVxLnBhcmFtKCdydW5JZCcpKTtcbiAgICAvLyBDdXN0b20gSlNPTiBzZXJpYWxpemF0aW9uIHRvIGhhbmRsZSBVaW50OEFycmF5IGFzIGJhc2U2NFxuICAgIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeShydW4sIChfa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIF9fdHlwZTogJ1VpbnQ4QXJyYXknLFxuICAgICAgICAgIGRhdGE6IEJ1ZmZlci5mcm9tKHZhbHVlKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZShqc29uLCB7XG4gICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICB9KTtcbiAgfSlcbiAgLmdldCgnL3J1bnMvOnJ1bklkL3JlYWRhYmxlJywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIGNvbnN0IHJ1bklkID0gY3R4LnJlcS5wYXJhbSgncnVuSWQnKTtcbiAgICBjb25zdCBydW4gPSBnZXRSdW4ocnVuSWQpO1xuICAgIHJldHVybiBuZXcgUmVzcG9uc2UocnVuLmdldFJlYWRhYmxlKCkpO1xuICB9KVxuICAuZ2V0KCcvcnVucy86cnVuSWQvZXZlbnRzJywgYXN5bmMgKGN0eCkgPT4ge1xuICAgIGNvbnN0IHJ1bklkID0gY3R4LnJlcS5wYXJhbSgncnVuSWQnKTtcbiAgICBjb25zdCB3b3JsZCA9IGF3YWl0IGdldFdvcmxkKCk7XG4gICAgY29uc3QgYWxsRXZlbnRzOiB7IGV2ZW50VHlwZTogc3RyaW5nOyBjb3JyZWxhdGlvbklkPzogc3RyaW5nIH1bXSA9IFtdO1xuICAgIGxldCBjdXJzb3I6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgcGFnZSA9IGF3YWl0IHdvcmxkLmV2ZW50cy5saXN0KHtcbiAgICAgICAgcnVuSWQsXG4gICAgICAgIHBhZ2luYXRpb246IHsgc29ydE9yZGVyOiAnYXNjJywgY3Vyc29yIH0sXG4gICAgICB9KTtcbiAgICAgIGZvciAoY29uc3QgZSBvZiBwYWdlLmRhdGEpIHtcbiAgICAgICAgYWxsRXZlbnRzLnB1c2goe1xuICAgICAgICAgIGV2ZW50VHlwZTogZS5ldmVudFR5cGUsXG4gICAgICAgICAgY29ycmVsYXRpb25JZDogZS5jb3JyZWxhdGlvbklkLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICghcGFnZS5oYXNNb3JlKSBicmVhaztcbiAgICAgIGN1cnNvciA9IHBhZ2UuY3Vyc29yID8/IHVuZGVmaW5lZDtcbiAgICAgIGlmICghY3Vyc29yKSBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGN0eC5qc29uKHsgZXZlbnRzOiBhbGxFdmVudHMgfSk7XG4gIH0pO1xuXG5zZXJ2ZShcbiAge1xuICAgIGZldGNoOiBhcHAuZmV0Y2gsXG4gICAgcG9ydDogTnVtYmVyKHByb2Nlc3MuZW52LlBPUlQpIHx8IDAsXG4gIH0sXG4gIGFzeW5jIChpbmZvKSA9PiB7XG4gICAgY29uc29sZS5sb2coYPCfkYIgbGlzdGVuaW5nIG9uIGh0dHA6Ly8ke2luZm8uYWRkcmVzc306JHtpbmZvLnBvcnR9YCk7XG4gICAgY29uc29sZS5sb2coJycpO1xuXG4gICAgcHJvY2Vzcy5lbnYuUE9SVCA9IGluZm8ucG9ydC50b1N0cmluZygpO1xuXG4gICAgZm9yIChjb25zdCBbZmlsZW5hbWUsIHdvcmtmbG93c10gb2YgT2JqZWN0LmVudHJpZXMobWFuaWZlc3Qud29ya2Zsb3dzKSkge1xuICAgICAgZm9yIChjb25zdCB3b3JrZmxvd05hbWUgb2YgT2JqZWN0LmtleXMoXG4gICAgICAgIHdvcmtmbG93cyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgKSkge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgJCBjdXJsIC1YIFBPU1QgaHR0cDovL2xvY2FsaG9zdDoke2luZm8ucG9ydH0vaW52b2tlIC1kICcke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmaWxlOiBmaWxlbmFtZSxcbiAgICAgICAgICAgICAgd29ya2Zsb3c6IHdvcmtmbG93TmFtZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApfSdgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgd29ybGQgPSBhd2FpdCBnZXRXb3JsZCgpO1xuICAgIGlmICh3b3JsZC5zdGFydCkge1xuICAgICAgY29uc29sZS5sb2coYHN0YXJ0aW5nIGJhY2tncm91bmQgdGFza3MuLi5gKTtcbiAgICAgIGF3YWl0IHdvcmxkLnN0YXJ0KCkudGhlbihcbiAgICAgICAgKCkgPT4gY29uc29sZS5sb2coJ2JhY2tncm91bmQgdGFza3Mgc3RhcnRlZC4nKSxcbiAgICAgICAgKGVycikgPT4gY29uc29sZS5lcnJvcign4p2XIGVycm9yIHN0YXJ0aW5nIGJhY2tncm91bmQgdGFza3M6JywgZXJyKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuQ09OVFJPTF9GRCA9PT0gJzMnKSB7XG4gICAgICBjb25zdCBjb250cm9sID0gZnMuY3JlYXRlV3JpdGVTdHJlYW0oJycsIHsgZmQ6IDMgfSk7XG4gICAgICBjb250cm9sLndyaXRlKGAke0pTT04uc3RyaW5naWZ5KHsgc3RhdGU6ICdsaXN0ZW5pbmcnLCBpbmZvIH0pfVxcbmApO1xuICAgICAgY29udHJvbC5lbmQoKTtcbiAgICB9XG4gIH1cbik7XG4iXX0=
@@ -12,7 +12,9 @@ type Files = keyof typeof manifest.workflows;
12
12
  type Workflows<F extends Files> = keyof (typeof manifest.workflows)[F];
13
13
  export declare function startServer(opts: {
14
14
  world: string;
15
+ env?: Record<string, string | undefined>;
15
16
  }): Promise<{
17
+ getOutput: () => string;
16
18
  state: "listening";
17
19
  info: {
18
20
  port: number;
@@ -22,70 +24,75 @@ export declare function createFetcher(control: Control): {
22
24
  invoke<F extends Files, W extends Workflows<F>>(file: F, workflow: W, args: unknown[]): Promise<{
23
25
  runId: string;
24
26
  }>;
27
+ getFlowInvocationCount(runId: string): Promise<number>;
25
28
  getRun(id: string): Promise<{
26
29
  runId: string;
27
30
  deploymentId: string;
28
31
  workflowName: string;
29
- input: unknown;
32
+ attributes: Record<string, string>;
30
33
  createdAt: Date;
31
34
  updatedAt: Date;
32
35
  status: "pending" | "running";
33
- output: undefined;
34
- error: undefined;
35
- completedAt: undefined;
36
36
  specVersion?: number | undefined;
37
37
  executionContext?: Record<string, any> | undefined;
38
+ input?: unknown;
39
+ errorCode?: string | undefined;
38
40
  expiredAt?: Date | undefined;
39
41
  startedAt?: Date | undefined;
42
+ output?: undefined;
43
+ error?: undefined;
44
+ completedAt?: undefined;
40
45
  } | {
41
46
  runId: string;
42
47
  deploymentId: string;
43
48
  workflowName: string;
44
- input: unknown;
49
+ attributes: Record<string, string>;
45
50
  createdAt: Date;
46
51
  updatedAt: Date;
47
52
  status: "cancelled";
48
- output: undefined;
49
- error: undefined;
50
53
  completedAt: Date;
51
54
  specVersion?: number | undefined;
52
55
  executionContext?: Record<string, any> | undefined;
56
+ input?: unknown;
57
+ errorCode?: string | undefined;
53
58
  expiredAt?: Date | undefined;
54
59
  startedAt?: Date | undefined;
60
+ output?: undefined;
61
+ error?: undefined;
55
62
  } | {
56
63
  runId: string;
57
64
  deploymentId: string;
58
65
  workflowName: string;
59
- input: unknown;
66
+ attributes: Record<string, string>;
60
67
  createdAt: Date;
61
68
  updatedAt: Date;
62
69
  status: "completed";
63
70
  output: unknown;
64
- error: undefined;
65
71
  completedAt: Date;
66
72
  specVersion?: number | undefined;
67
73
  executionContext?: Record<string, any> | undefined;
74
+ input?: unknown;
75
+ errorCode?: string | undefined;
68
76
  expiredAt?: Date | undefined;
69
77
  startedAt?: Date | undefined;
78
+ error?: undefined;
70
79
  } | {
71
80
  runId: string;
72
81
  deploymentId: string;
73
82
  workflowName: string;
74
- input: unknown;
83
+ attributes: Record<string, string>;
75
84
  createdAt: Date;
76
85
  updatedAt: Date;
77
86
  status: "failed";
78
- output: undefined;
79
- error: {
80
- message: string;
81
- stack?: string | undefined;
82
- code?: string | undefined;
83
- };
87
+ error: unknown;
84
88
  completedAt: Date;
85
89
  specVersion?: number | undefined;
86
90
  executionContext?: Record<string, any> | undefined;
91
+ input?: unknown;
92
+ errorCode?: string | undefined;
87
93
  expiredAt?: Date | undefined;
88
94
  startedAt?: Date | undefined;
95
+ output?: undefined;
89
96
  }>;
90
97
  getReadable(id: string): Promise<ReadableStream<Uint8Array>>;
91
98
  resumeHook<T extends TypedHook<any, any>>(token: string, payload: Omit<NoInfer<TypedHook.Input<T>>, "metadata">): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.mts","sourceRoot":"","sources":["../../src/util.mts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,QAAQ,MAAM,0CAA0C,CAAC;AAErE,eAAO,MAAM,OAAO;;;;;iBAKlB,CAAC;AACH,KAAK,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAEvC,KAAK,KAAK,GAAG,MAAM,OAAO,QAAQ,CAAC,SAAS,CAAC;AAC7C,KAAK,SAAS,CAAC,CAAC,SAAS,KAAK,IAAI,MAAM,CAAC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvE,wBAAsB,WAAW,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE;;;;;GA4CxD;AAID,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO;WAE7B,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,QAC5C,CAAC,YACG,CAAC,QACL,OAAO,EAAE;;;eAeA,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAmBD,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;eAcjD,CAAC,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,SACrC,MAAM,WACJ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;EAoB3D"}
1
+ {"version":3,"file":"util.d.mts","sourceRoot":"","sources":["../../src/util.mts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,QAAQ,MAAM,0CAA0C,CAAC;AAErE,eAAO,MAAM,OAAO;;;;;iBAKlB,CAAC;AACH,KAAK,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAEvC,KAAK,KAAK,GAAG,MAAM,OAAO,QAAQ,CAAC,SAAS,CAAC;AAC7C,KAAK,SAAS,CAAC,CAAC,SAAS,KAAK,IAAI,MAAM,CAAC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvE,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C;;;;;;GAwDA;AAID,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO;WAE7B,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,QAC5C,CAAC,YACG,CAAC,QACL,OAAO,EAAE;;;kCAemB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;eAO3C,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAmBD,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;eAcjD,CAAC,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,SACrC,MAAM,WACJ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;EAoB3D"}
package/dist/src/util.mjs CHANGED
@@ -23,17 +23,25 @@ export async function startServer(opts) {
23
23
  ...process.env,
24
24
  WORKFLOW_TARGET_WORLD: opts.world,
25
25
  CONTROL_FD: '3',
26
+ ...(opts.env ?? {}),
26
27
  },
27
28
  });
28
29
  onTestFinished(() => {
29
30
  proc.kill();
30
31
  });
31
32
  const stdio = [];
33
+ // Accumulated raw server output — used by tests that want to inspect
34
+ // debug logs (e.g., count runtime iterations, event loads, etc.).
35
+ const outputBuffer = [];
32
36
  proc.stdout?.on('data', (chunk) => {
33
- stdio.push({ stream: chalk.white, chunk: chunk.toString() });
37
+ const str = chunk.toString();
38
+ stdio.push({ stream: chalk.white, chunk: str });
39
+ outputBuffer.push(str);
34
40
  });
35
41
  proc.stderr?.on('data', (chunk) => {
36
- stdio.push({ stream: chalk.red, chunk: chunk.toString() });
42
+ const str = chunk.toString();
43
+ stdio.push({ stream: chalk.red, chunk: str });
44
+ outputBuffer.push(str);
37
45
  });
38
46
  onTestFailed(() => {
39
47
  console.log('=== SERVER STDIO ===');
@@ -46,7 +54,11 @@ export async function startServer(opts) {
46
54
  const fd3 = proc.stdio[3];
47
55
  assert(fd3, 'fd3 should be defined');
48
56
  for await (const chunk of fd3.pipe(jsonlines.parse())) {
49
- return Control.parse(chunk);
57
+ const control = Control.parse(chunk);
58
+ return {
59
+ ...control,
60
+ getOutput: () => outputBuffer.join(''),
61
+ };
50
62
  }
51
63
  throw new Error('Server did not start correctly');
52
64
  }
@@ -67,6 +79,11 @@ export function createFetcher(control) {
67
79
  });
68
80
  return data;
69
81
  },
82
+ async getFlowInvocationCount(runId) {
83
+ const x = await fetch(`http://localhost:${control.info.port}/_flow-invocations/${encodeURIComponent(runId)}`);
84
+ const data = (await x.json());
85
+ return data.count;
86
+ },
70
87
  async getRun(id) {
71
88
  const x = await fetch(`http://localhost:${control.info.port}/runs/${encodeURIComponent(id)}`);
72
89
  const text = await x.text();
@@ -107,4 +124,4 @@ export function createFetcher(control) {
107
124
  },
108
125
  };
109
126
  }
110
- //# sourceMappingURL=util.mjs.map
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5tanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC5tdHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sS0FBNkIsTUFBTSxPQUFPLENBQUM7QUFDbEQsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU5RCxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztBQUd6QixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM5QixLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDN0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDYixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtLQUNqQixDQUFDO0NBQ0gsQ0FBQyxDQUFDO0FBTUgsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQUMsSUFHakM7SUFDQyxJQUFJLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUxRCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDNUIsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMs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QyxVQUFVLENBQ2QsS0FBYSxFQUNiLE9BQXNEO1lBRXRELE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxDQUNyQixvQkFBb0IsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsS0FBSyxFQUFFLEVBQ3REO2dCQUNFLE1BQU0sRUFBRSxNQUFNO2dCQUNkLE9BQU8sRUFBRTtvQkFDUCxjQUFjLEVBQUUsa0JBQWtCO2lCQUNuQztnQkFDRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7YUFDOUIsQ0FDRixDQUFDO1lBQ0YsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLHlDQUF5QztZQUM1RSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQ2IsMEJBQTBCLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUN6RCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcCBmcm9tICdub2RlOmNoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB7IFdvcmtmbG93UnVuU2NoZW1hIH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcbmltcG9ydCBjaGFsaywgeyB0eXBlIENoYWxrSW5zdGFuY2UgfSBmcm9tICdjaGFsayc7XG5pbXBvcnQganNvbmxpbmVzIGZyb20gJ2pzb25saW5lcyc7XG5pbXBvcnQgeyBhc3NlcnQsIG9uVGVzdEZhaWxlZCwgb25UZXN0RmluaXNoZWQgfSBmcm9tICd2aXRlc3QnO1xuaW1wb3J0IHR5cGUgeyBUeXBlZEhvb2sgfSBmcm9tICd3b3JrZmxvdyc7XG5pbXBvcnQgKiBhcyB6IGZyb20gJ3pvZCc7XG5pbXBvcnQgdHlwZSBtYW5pZmVzdCBmcm9tICcuLi8ud2VsbC1rbm93bi93b3JrZmxvdy92MS9tYW5pZmVzdC5qc29uJztcblxuZXhwb3J0IGNvbnN0IENvbnRyb2wgPSB6Lm9iamVjdCh7XG4gIHN0YXRlOiB6LmxpdGVyYWwoJ2xpc3RlbmluZycpLFxuICBpbmZvOiB6Lm9iamVjdCh7XG4gICAgcG9ydDogei5udW1iZXIoKSxcbiAgfSksXG59KTtcbnR5cGUgQ29udHJvbCA9IHouaW5mZXI8dHlwZW9mIENvbnRyb2w+O1xuXG50eXBlIEZpbGVzID0ga2V5b2YgdHlwZW9mIG1hbmlmZXN0LndvcmtmbG93cztcbnR5cGUgV29ya2Zsb3dzPEYgZXh0ZW5kcyBGaWxlcz4gPSBrZXlvZiAodHlwZW9mIG1hbmlmZXN0LndvcmtmbG93cylbRl07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdGFydFNlcnZlcihvcHRzOiB7XG4gIHdvcmxkOiBzdHJpbmc7XG4gIGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD47XG59KSB7XG4gIGxldCBzZXJ2ZXJQYXRoID0gbmV3IFVSTCgnLi9zZXJ2ZXIubXRzJywgaW1wb3J0Lm1ldGEudXJsKTtcblxuICBpZiAoIWV4aXN0c1N5bmMoc2VydmVyUGF0aCkpIHtcbiAgICBzZXJ2ZXJQYXRoID0gbmV3IFVSTCgnLi9zZXJ2ZXIubWpzJywgaW1wb3J0Lm1ldGEudXJsKTtcbiAgfVxuXG4gIGNvbnN0IHByb2MgPSBjcC5zcGF3bignbm9kZScsIFtmaWxlVVJMVG9QYXRoKHNlcnZlclBhdGgpXSwge1xuICAgIHN0ZGlvOiBbJ2lnbm9yZScsICdwaXBlJywgJ3BpcGUnLCAncGlwZSddLFxuICAgIGVudjoge1xuICAgICAgLi4ucHJvY2Vzcy5lbnYsXG4gICAgICBXT1JLRkxPV19UQVJHRVRfV09STEQ6IG9wdHMud29ybGQsXG4gICAgICBDT05UUk9MX0ZEOiAnMycsXG4gICAgICAuLi4ob3B0cy5lbnYgPz8ge30pLFxuICAgIH0sXG4gIH0pO1xuICBvblRlc3RGaW5pc2hlZCgoKSA9PiB7XG4gICAgcHJvYy5raWxsKCk7XG4gIH0pO1xuXG4gIGNvbnN0IHN0ZGlvID0gW10gYXMgeyBzdHJlYW06IENoYWxrSW5zdGFuY2U7IGNodW5rOiBzdHJpbmcgfVtdO1xuICAvLyBBY2N1bXVsYXRlZCByYXcgc2VydmVyIG91dHB1dCDigJQgdXNlZCBieSB0ZXN0cyB0aGF0IHdhbnQgdG8gaW5zcGVjdFxuICAvLyBkZWJ1ZyBsb2dzIChlLmcuLCBjb3VudCBydW50aW1lIGl0ZXJhdGlvbnMsIGV2ZW50IGxvYWRzLCBldGMuKS5cbiAgY29uc3Qgb3V0cHV0QnVmZmVyOiBzdHJpbmdbXSA9IFtdO1xuICBwcm9jLnN0ZG91dD8ub24oJ2RhdGEnLCAoY2h1bmspID0+IHtcbiAgICBjb25zdCBzdHIgPSBjaHVuay50b1N0cmluZygpO1xuICAgIHN0ZGlvLnB1c2goeyBzdHJlYW06IGNoYWxrLndoaXRlLCBjaHVuazogc3RyIH0pO1xuICAgIG91dHB1dEJ1ZmZlci5wdXNoKHN0cik7XG4gIH0pO1xuICBwcm9jLnN0ZGVycj8ub24oJ2RhdGEnLCAoY2h1bmspID0+IHtcbiAgICBjb25zdCBzdHIgPSBjaHVuay50b1N0cmluZygpO1xuICAgIHN0ZGlvLnB1c2goeyBzdHJlYW06IGNoYWxrLnJlZCwgY2h1bms6IHN0ciB9KTtcbiAgICBvdXRwdXRCdWZmZXIucHVzaChzdHIpO1xuICB9KTtcblxuICBvblRlc3RGYWlsZWQoKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKCc9PT0gU0VSVkVSIFNURElPID09PScpO1xuICAgIGxldCBidWZmZXIgPSAnJztcbiAgICBmb3IgKGNvbnN0IHsgc3RyZWFtLCBjaHVuayB9IG9mIHN0ZGlvKSB7XG4gICAgICBidWZmZXIgKz0gc3RyZWFtLmludmVyc2UoY2h1bmspO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhidWZmZXIpO1xuICB9KTtcblxuICBjb25zdCBmZDMgPSBwcm9jLnN0ZGlvWzNdO1xuICBhc3NlcnQoZmQzLCAnZmQzIHNob3VsZCBiZSBkZWZpbmVkJyk7XG5cbiAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBmZDMucGlwZShqc29ubGluZXMucGFyc2UoKSkpIHtcbiAgICBjb25zdCBjb250cm9sID0gQ29udHJvbC5wYXJzZShjaHVuayk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbnRyb2wsXG4gICAgICBnZXRPdXRwdXQ6ICgpID0+IG91dHB1dEJ1ZmZlci5qb2luKCcnKSxcbiAgICB9O1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKCdTZXJ2ZXIgZGlkIG5vdCBzdGFydCBjb3JyZWN0bHknKTtcbn1cblxuY29uc3QgSW52b2tlID0gei5vYmplY3QoeyBydW5JZDogei5jb2VyY2Uuc3RyaW5nKCkgfSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGZXRjaGVyKGNvbnRyb2w6IENvbnRyb2wpIHtcbiAgcmV0dXJuIHtcbiAgICBhc3luYyBpbnZva2U8RiBleHRlbmRzIEZpbGVzLCBXIGV4dGVuZHMgV29ya2Zsb3dzPEY+PihcbiAgICAgIGZpbGU6IEYsXG4gICAgICB3b3JrZmxvdzogVyxcbiAgICAgIGFyZ3M6IHVua25vd25bXVxuICAgICkge1xuICAgICAgY29uc3QgeCA9IGF3YWl0IGZldGNoKGBodHRwOi8vbG9jYWxob3N0OiR7Y29udHJvbC5pbmZvLnBvcnR9L2ludm9rZWAsIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGZpbGUsIHdvcmtmbG93LCBhcmdzIH0pLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgeC5qc29uKCkudGhlbihJbnZva2UucGFyc2UpO1xuICAgICAgb25UZXN0RmFpbGVkKCgpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignV29ya2Zsb3cgcnVuOicsIGRhdGEucnVuSWQpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9LFxuICAgIGFzeW5jIGdldEZsb3dJbnZvY2F0aW9uQ291bnQocnVuSWQ6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgICBjb25zdCB4ID0gYXdhaXQgZmV0Y2goXG4gICAgICAgIGBodHRwOi8vbG9jYWxob3N0OiR7Y29udHJvbC5pbmZvLnBvcnR9L19mbG93LWludm9jYXRpb25zLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHJ1bklkKX1gXG4gICAgICApO1xuICAgICAgY29uc3QgZGF0YSA9IChhd2FpdCB4Lmpzb24oKSkgYXMgeyBjb3VudDogbnVtYmVyIH07XG4gICAgICByZXR1cm4gZGF0YS5jb3VudDtcbiAgICB9LFxuICAgIGFzeW5jIGdldFJ1bihpZDogc3RyaW5nKSB7XG4gICAgICBjb25zdCB4ID0gYXdhaXQgZmV0Y2goXG4gICAgICAgIGBodHRwOi8vbG9jYWxob3N0OiR7Y29udHJvbC5pbmZvLnBvcnR9L3J1bnMvJHtlbmNvZGVVUklDb21wb25lbnQoaWQpfWBcbiAgICAgICk7XG4gICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgeC50ZXh0KCk7XG4gICAgICAvLyBDdXN0b20gSlNPTiByZXZpdmVyIHRvIGRlY29kZSBiYXNlNjQgYmFjayB0byBVaW50OEFycmF5XG4gICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZSh0ZXh0LCAoX2tleSwgdmFsdWUpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICh2YWx1ZSBhcyBhbnkpLl9fdHlwZSA9PT0gJ1VpbnQ4QXJyYXknICYmXG4gICAgICAgICAgdHlwZW9mICh2YWx1ZSBhcyBhbnkpLmRhdGEgPT09ICdzdHJpbmcnXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbSgodmFsdWUgYXMgYW55KS5kYXRhLCAnYmFzZTY0JykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIFdvcmtmbG93UnVuU2NoZW1hLnBhcnNlQXN5bmMoZGF0YSk7XG4gICAgfSxcbiAgICBhc3luYyBnZXRSZWFkYWJsZShpZDogc3RyaW5nKTogUHJvbWlzZTxSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5Pj4ge1xuICAgICAgY29uc3QgeCA9IGF3YWl0IGZldGNoKFxuICAgICAgICBgaHR0cDovL2xvY2FsaG9zdDoke2NvbnRyb2wuaW5mby5wb3J0fS9ydW5zLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGlkKX0vcmVhZGFibGVgXG4gICAgICApO1xuICAgICAgaWYgKCF4Lm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgRmFpbGVkIHRvIGdldCByZWFkYWJsZSBzdHJlYW06ICR7eC5zdGF0dXN9ICR7eC5zdGF0dXNUZXh0fWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICgheC5ib2R5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gYm9keSBpbiByZXNwb25zZScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHguYm9keTtcbiAgICB9LFxuICAgIGFzeW5jIHJlc3VtZUhvb2s8VCBleHRlbmRzIFR5cGVkSG9vazxhbnksIGFueT4+KFxuICAgICAgdG9rZW46IHN0cmluZyxcbiAgICAgIHBheWxvYWQ6IE9taXQ8Tm9JbmZlcjxUeXBlZEhvb2suSW5wdXQ8VD4+LCAnbWV0YWRhdGEnPlxuICAgICkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goXG4gICAgICAgIGBodHRwOi8vbG9jYWxob3N0OiR7Y29udHJvbC5pbmZvLnBvcnR9L2hvb2tzLyR7dG9rZW59YCxcbiAgICAgICAge1xuICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJlcy5hcnJheUJ1ZmZlcigpLmNhdGNoKCgpID0+IHt9KTsgLy8gRHJhaW4gdGhlIGJvZHkgdG8gYXZvaWQgcmVzb3VyY2UgbGVha3NcbiAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgRmFpbGVkIHRvIHJlc3VtZSBob29rOiAke3Jlcy5zdGF0dXN9ICR7cmVzLnN0YXR1c1RleHR9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG4iXX0=
@@ -67,4 +67,4 @@ async function writeEvent(writable, event, payload) {
67
67
  payload,
68
68
  })}\r\n`));
69
69
  }
70
- //# sourceMappingURL=hooks.js.map
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9va3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi93b3JrZmxvd3MvaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV0EsMENBY0M7QUF6QkQseUNBQXlEO0FBQ3pELHVDQUF5QjtBQUVaLFFBQUEsSUFBSSxHQUFHLElBQUEsaUJBQVUsRUFBQztJQUM3QixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNmLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO1FBQ2hCLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQzVCLFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFO0tBQ3RCLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFFSSxLQUFLLFVBQVUsZUFBZSxDQUFDLEtBQWEsRUFBRSxVQUFrQjtJQUNyRSxjQUFjLENBQUM7SUFFZixNQUFNLElBQUksR0FBRyxZQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM5RCxNQUFNLFNBQVMsR0FBNkMsRUFBRSxDQUFDO0lBQy9ELE1BQU0sRUFBRSxHQUFHLElBQUEsa0JBQVcsR0FBRSxDQUFDO0lBQ3pCLE1BQU0sVUFBVSxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNwQyxJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMvQixNQUFNLFVBQVUsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsSUFBSSxLQUFLLENBQUMsSUFBSTtZQUFFLE1BQU07SUFDeEIsQ0FBQztJQUVELE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUN2QixDQUFDO0FBRUQsS0FBSyxVQUFVLFVBQVUsQ0FDdkIsUUFBd0IsRUFDeEIsS0FBYSxFQUNiLE9BQWlCO0lBRWpCLFVBQVUsQ0FBQztJQUVYLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDcEMsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUNoQixJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FDdEIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hCLEtBQUs7UUFDTCxPQUFPO0tBQ1IsQ0FBQyxNQUFNLENBQ1QsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZUhvb2ssIGdldFdyaXRhYmxlIH0gZnJvbSAnQHdvcmtmbG93L2NvcmUnO1xuaW1wb3J0ICogYXMgeiBmcm9tICd6b2QnO1xuXG5leHBvcnQgY29uc3QgSG9vayA9IGRlZmluZUhvb2soe1xuICBzY2hlbWE6IHoub2JqZWN0KHtcbiAgICBkYXRhOiB6LnN0cmluZygpLFxuICAgIGRvbmU6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gICAgbWV0YWRhdGE6IHoudW5rbm93bigpLFxuICB9KSxcbn0pO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29sbGVjdFdpdGhIb29rKHRva2VuOiBzdHJpbmcsIGN1c3RvbURhdGE6IHN0cmluZykge1xuICAndXNlIHdvcmtmbG93JztcblxuICBjb25zdCBob29rID0gSG9vay5jcmVhdGUoeyB0b2tlbiwgbWV0YWRhdGE6IHsgY3VzdG9tRGF0YSB9IH0pO1xuICBjb25zdCBjb2xsZWN0ZWQ6IFBhcmFtZXRlcnM8KHR5cGVvZiBIb29rKVsncmVzdW1lJ10+WzFdW10gPSBbXTtcbiAgY29uc3Qgd2YgPSBnZXRXcml0YWJsZSgpO1xuICBhd2FpdCB3cml0ZUV2ZW50KHdmLCAnaG9va0NyZWF0ZWQnKTtcbiAgZm9yIGF3YWl0IChjb25zdCBldmVudCBvZiBob29rKSB7XG4gICAgYXdhaXQgd3JpdGVFdmVudCh3ZiwgJ2hvb2tSZXN1bWVkJywgZXZlbnQpO1xuICAgIGNvbGxlY3RlZC5wdXNoKGV2ZW50KTtcbiAgICBpZiAoZXZlbnQuZG9uZSkgYnJlYWs7XG4gIH1cblxuICByZXR1cm4geyBjb2xsZWN0ZWQgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gd3JpdGVFdmVudChcbiAgd3JpdGFibGU6IFdyaXRhYmxlU3RyZWFtLFxuICBldmVudDogc3RyaW5nLFxuICBwYXlsb2FkPzogdW5rbm93blxuKSB7XG4gICd1c2Ugc3RlcCc7XG5cbiAgY29uc29sZS5sb2coJ3dyaXRpbmcgZXZlbnQnLCBldmVudCwgcGF5bG9hZCk7XG4gIGNvbnN0IHdyaXRlciA9IHdyaXRhYmxlLmdldFdyaXRlcigpO1xuICBhd2FpdCB3cml0ZXIud3JpdGUoXG4gICAgbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKFxuICAgICAgYCR7SlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBldmVudCxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgIH0pfVxcclxcbmBcbiAgICApXG4gICk7XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workflow/world-testing",
3
- "version": "5.0.0-beta.0",
3
+ "version": "5.0.0-beta.10",
4
4
  "description": "Testing utilities and World implementation for Workflow SDK",
5
5
  "main": "dist/src/index.mjs",
6
6
  "files": [
@@ -21,10 +21,10 @@
21
21
  "hono": "4.12.3",
22
22
  "jsonlines": "0.1.1",
23
23
  "zod": "4.3.6",
24
- "@workflow/core": "5.0.0-beta.0",
25
- "@workflow/cli": "5.0.0-beta.0",
26
- "workflow": "5.0.0-beta.0",
27
- "@workflow/world": "5.0.0-beta.0"
24
+ "@workflow/cli": "5.0.0-beta.10",
25
+ "@workflow/core": "5.0.0-beta.10",
26
+ "workflow": "5.0.0-beta.10",
27
+ "@workflow/world": "5.0.0-beta.5"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/node": "22.19.0",
@@ -38,7 +38,7 @@
38
38
  "keywords": [],
39
39
  "author": "",
40
40
  "scripts": {
41
- "build": "wf build && node scripts/generate-well-known-dts.mjs && tsc && cp .well-known/workflow/v1/*.js dist/.well-known/workflow/v1/",
41
+ "build": "wf build && node scripts/generate-well-known-dts.mjs && tsc && cp .well-known/workflow/v1/*.mjs dist/.well-known/workflow/v1/",
42
42
  "clean": "tsc --build --clean && rm -rf dist .well-known* .workflow-data",
43
43
  "start": "node --watch src/server.mts",
44
44
  "test": "vitest"