@workflow/core 4.1.0-beta.52 → 4.1.0-beta.54

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 (44) hide show
  1. package/dist/class-serialization.d.ts +5 -4
  2. package/dist/class-serialization.d.ts.map +1 -1
  3. package/dist/class-serialization.js +7 -16
  4. package/dist/events-consumer.d.ts.map +1 -1
  5. package/dist/events-consumer.js +1 -9
  6. package/dist/logger.d.ts.map +1 -1
  7. package/dist/logger.js +10 -1
  8. package/dist/observability.d.ts.map +1 -1
  9. package/dist/observability.js +6 -5
  10. package/dist/private.d.ts +3 -1
  11. package/dist/private.d.ts.map +1 -1
  12. package/dist/private.js +4 -2
  13. package/dist/runtime/helpers.d.ts +9 -1
  14. package/dist/runtime/helpers.d.ts.map +1 -1
  15. package/dist/runtime/helpers.js +64 -24
  16. package/dist/runtime/resume-hook.d.ts.map +1 -1
  17. package/dist/runtime/resume-hook.js +4 -3
  18. package/dist/runtime/runs.d.ts +49 -0
  19. package/dist/runtime/runs.d.ts.map +1 -0
  20. package/dist/runtime/runs.js +156 -0
  21. package/dist/runtime/start.d.ts.map +1 -1
  22. package/dist/runtime/start.js +18 -11
  23. package/dist/runtime/step-handler.d.ts.map +1 -1
  24. package/dist/runtime/step-handler.js +230 -119
  25. package/dist/runtime/suspension-handler.d.ts.map +1 -1
  26. package/dist/runtime/suspension-handler.js +39 -5
  27. package/dist/runtime.d.ts +2 -1
  28. package/dist/runtime.d.ts.map +1 -1
  29. package/dist/runtime.js +153 -129
  30. package/dist/serialization.d.ts +7 -11
  31. package/dist/serialization.d.ts.map +1 -1
  32. package/dist/serialization.js +150 -63
  33. package/dist/telemetry/semantic-conventions.d.ts +81 -5
  34. package/dist/telemetry/semantic-conventions.d.ts.map +1 -1
  35. package/dist/telemetry/semantic-conventions.js +56 -8
  36. package/dist/telemetry.d.ts +25 -0
  37. package/dist/telemetry.d.ts.map +1 -1
  38. package/dist/telemetry.js +48 -2
  39. package/dist/version.d.ts +1 -1
  40. package/dist/version.js +1 -1
  41. package/dist/workflow.js +3 -3
  42. package/package.json +39 -10
  43. package/runtime.d.ts +1 -0
  44. package/runtime.js +1 -0
@@ -0,0 +1,156 @@
1
+ import { hydrateWorkflowArguments } from '../serialization.js';
2
+ import { isLegacySpecVersion, SPEC_VERSION_LEGACY, } from '@workflow/world';
3
+ import { getWorkflowQueueName } from './helpers.js';
4
+ import { start } from './start.js';
5
+ const normalizeWorkflowArgs = (args) => {
6
+ return Array.isArray(args) ? args : [args];
7
+ };
8
+ /**
9
+ * Start a new workflow run based on an existing run.
10
+ */
11
+ export async function recreateRunFromExisting(world, runId, options = {}) {
12
+ try {
13
+ const run = await world.runs.get(runId, { resolveData: 'all' });
14
+ const workflowArgs = normalizeWorkflowArgs(hydrateWorkflowArguments(run.input, globalThis));
15
+ const specVersion = options.specVersion ?? run.specVersion ?? SPEC_VERSION_LEGACY;
16
+ const deploymentId = options.deploymentId ?? run.deploymentId;
17
+ const newRun = await start({ workflowId: run.workflowName }, workflowArgs, {
18
+ deploymentId,
19
+ world,
20
+ specVersion,
21
+ });
22
+ return newRun.runId;
23
+ }
24
+ catch (err) {
25
+ throw new Error(`Failed to recreate run from ${runId}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
26
+ }
27
+ }
28
+ /**
29
+ * Cancel a workflow run.
30
+ */
31
+ export async function cancelRun(world, runId) {
32
+ try {
33
+ const run = await world.runs.get(runId, { resolveData: 'none' });
34
+ const specVersion = run.specVersion ?? SPEC_VERSION_LEGACY;
35
+ const compatMode = isLegacySpecVersion(specVersion);
36
+ const eventData = {
37
+ eventType: 'run_cancelled',
38
+ specVersion,
39
+ };
40
+ await world.events.create(runId, eventData, { v1Compat: compatMode });
41
+ }
42
+ catch (err) {
43
+ throw new Error(`Failed to cancel run ${runId}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
44
+ }
45
+ }
46
+ /**
47
+ * Re-enqueue a workflow run.
48
+ */
49
+ export async function reenqueueRun(world, runId) {
50
+ try {
51
+ const run = await world.runs.get(runId, { resolveData: 'none' });
52
+ await world.queue(getWorkflowQueueName(run.workflowName), {
53
+ runId,
54
+ }, {
55
+ deploymentId: run.deploymentId,
56
+ });
57
+ }
58
+ catch (err) {
59
+ throw new Error(`Failed to re-enqueue run ${runId}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
60
+ }
61
+ }
62
+ /**
63
+ * Wake up a workflow run by interrupting pending sleep() calls.
64
+ */
65
+ export async function wakeUpRun(world, runId, options) {
66
+ try {
67
+ const run = await world.runs.get(runId, { resolveData: 'none' });
68
+ const compatMode = isLegacySpecVersion(run.specVersion);
69
+ // Paginate through all events to ensure we don't miss any sleeps
70
+ // in long-running workflows with more than 1000 events.
71
+ const allEvents = [];
72
+ let cursor = null;
73
+ do {
74
+ const eventsResult = await world.events.list({
75
+ runId,
76
+ pagination: { limit: 1000, ...(cursor ? { cursor } : {}) },
77
+ resolveData: 'none',
78
+ });
79
+ allEvents.push(...eventsResult.data);
80
+ cursor = eventsResult.hasMore ? eventsResult.cursor : null;
81
+ } while (cursor);
82
+ const waitCreatedEvents = allEvents.filter((event) => event.eventType === 'wait_created');
83
+ const waitCompletedCorrelationIds = new Set(allEvents
84
+ .filter((event) => event.eventType === 'wait_completed')
85
+ .map((event) => event.correlationId));
86
+ let pendingWaits = waitCreatedEvents.filter((event) => !waitCompletedCorrelationIds.has(event.correlationId));
87
+ if (options?.correlationIds && options.correlationIds.length > 0) {
88
+ const targetCorrelationIds = new Set(options.correlationIds);
89
+ pendingWaits = pendingWaits.filter((event) => event.correlationId && targetCorrelationIds.has(event.correlationId));
90
+ }
91
+ const errors = [];
92
+ let stoppedCount = 0;
93
+ for (const waitEvent of pendingWaits) {
94
+ if (!waitEvent.correlationId)
95
+ continue;
96
+ const eventData = compatMode
97
+ ? {
98
+ eventType: 'wait_completed',
99
+ correlationId: waitEvent.correlationId,
100
+ }
101
+ : {
102
+ eventType: 'wait_completed',
103
+ correlationId: waitEvent.correlationId,
104
+ specVersion: run.specVersion,
105
+ };
106
+ try {
107
+ await world.events.create(runId, eventData, { v1Compat: compatMode });
108
+ stoppedCount++;
109
+ }
110
+ catch (err) {
111
+ errors.push(err instanceof Error ? err : new Error(String(err)));
112
+ }
113
+ }
114
+ if (stoppedCount > 0) {
115
+ await world.queue(getWorkflowQueueName(run.workflowName), {
116
+ runId,
117
+ }, {
118
+ deploymentId: run.deploymentId,
119
+ });
120
+ }
121
+ if (errors.length > 0) {
122
+ throw new AggregateError(errors, `Failed to complete ${errors.length}/${pendingWaits.length} pending wait(s) for run ${runId}`);
123
+ }
124
+ return { stoppedCount };
125
+ }
126
+ catch (err) {
127
+ if (err instanceof AggregateError) {
128
+ throw err;
129
+ }
130
+ throw new Error(`Failed to wake up run ${runId}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
131
+ }
132
+ }
133
+ /**
134
+ * Read from a stream by stream ID.
135
+ * Returns a ReadableStream of Uint8Array chunks.
136
+ */
137
+ export async function readStream(world, streamId, options) {
138
+ try {
139
+ return await world.readFromStream(streamId, options?.startIndex);
140
+ }
141
+ catch (err) {
142
+ throw new Error(`Failed to read stream ${streamId}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
143
+ }
144
+ }
145
+ /**
146
+ * List all stream IDs for a workflow run.
147
+ */
148
+ export async function listStreams(world, runId) {
149
+ try {
150
+ return await world.listStreamsByRunId(runId);
151
+ }
152
+ catch (err) {
153
+ throw new Error(`Failed to list streams for run ${runId}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
154
+ }
155
+ }
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW50aW1lL3J1bnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0QsT0FBTyxFQUVMLG1CQUFtQixFQUNuQixtQkFBbUIsR0FFcEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQTRCbkMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLElBQWEsRUFBYSxFQUFFO0lBQ3pELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSx1QkFBdUIsQ0FDM0MsS0FBWSxFQUNaLEtBQWEsRUFDYixVQUE4QixFQUFFO0lBRWhDLElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEUsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQ3hDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQ2hELENBQUM7UUFDRixNQUFNLFdBQVcsR0FDZixPQUFPLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxXQUFXLElBQUksbUJBQW1CLENBQUM7UUFDaEUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDO1FBRTlELE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxD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
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/runtime/start.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAyB,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAS/B,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,IAAI,CAC/D,GAAG,IAAI,EAAE,KAAK,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,EACpD,QAAQ,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAC7D,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzB,wBAAgB,KAAK,CAAC,OAAO,EAC3B,QAAQ,EAAE,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAC1D,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/runtime/start.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAyB,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAUpE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAM/B,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,IAAI,CAC/D,GAAG,IAAI,EAAE,KAAK,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,EACpD,QAAQ,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAC7D,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzB,wBAAgB,KAAK,CAAC,OAAO,EAC3B,QAAQ,EAAE,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAC1D,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC"}
@@ -1,14 +1,17 @@
1
1
  import { waitUntil } from '@vercel/functions';
2
2
  import { WorkflowRuntimeError } from '@workflow/errors';
3
- import { withResolvers } from '@workflow/utils';
4
3
  import { isLegacySpecVersion, SPEC_VERSION_CURRENT } from '@workflow/world';
5
- import { Run } from './run.js';
4
+ import { monotonicFactory } from 'ulid';
6
5
  import { dehydrateWorkflowArguments } from '../serialization.js';
7
6
  import * as Attribute from '../telemetry/semantic-conventions.js';
8
7
  import { serializeTraceCarrier, trace } from '../telemetry.js';
9
8
  import { waitedUntil } from '../util.js';
10
9
  import { version as workflowCoreVersion } from '../version.js';
10
+ import { getWorkflowQueueName } from './helpers.js';
11
+ import { Run } from './run.js';
11
12
  import { getWorld } from './world.js';
13
+ /** ULID generator for client-side runId generation */
14
+ const ulid = monotonicFactory();
12
15
  export async function start(workflow, argsOrOptions, options) {
13
16
  return await waitedUntil(() => {
14
17
  // @ts-expect-error this field is added by our client transform
@@ -16,7 +19,7 @@ export async function start(workflow, argsOrOptions, options) {
16
19
  if (!workflowName) {
17
20
  throw new WorkflowRuntimeError(`'start' received an invalid workflow function. Ensure the Workflow Development Kit is configured correctly and the function includes a 'use workflow' directive.`, { slug: 'start-invalid-workflow-function' });
18
21
  }
19
- return trace(`WORKFLOW.start ${workflowName}`, async (span) => {
22
+ return trace(`workflow.start ${workflowName}`, async (span) => {
20
23
  span?.setAttributes({
21
24
  ...Attribute.WorkflowName(workflowName),
22
25
  ...Attribute.WorkflowOperation('start'),
@@ -35,15 +38,17 @@ export async function start(workflow, argsOrOptions, options) {
35
38
  const world = opts?.world ?? getWorld();
36
39
  const deploymentId = opts.deploymentId ?? (await world.getDeploymentId());
37
40
  const ops = [];
38
- const { promise: runIdPromise, resolve: resolveRunId } = withResolvers();
41
+ // Generate runId client-side so we have it before serialization
42
+ // (required for future E2E encryption where runId is part of the encryption context)
43
+ const runId = `wrun_${ulid()}`;
39
44
  // Serialize current trace context to propagate across queue boundary
40
45
  const traceCarrier = await serializeTraceCarrier();
41
46
  const specVersion = opts.specVersion ?? SPEC_VERSION_CURRENT;
42
47
  const v1Compat = isLegacySpecVersion(specVersion);
43
48
  // Create run via run_created event (event-sourced architecture)
44
- // Pass null for runId - the server generates it and returns it in the response
45
- const workflowArguments = dehydrateWorkflowArguments(args, ops, runIdPromise, globalThis, v1Compat);
46
- const result = await world.events.create(null, {
49
+ // Pass client-generated runId - server will accept and use it
50
+ const workflowArguments = dehydrateWorkflowArguments(args, ops, runId, globalThis, v1Compat);
51
+ const result = await world.events.create(runId, {
47
52
  eventType: 'run_created',
48
53
  specVersion,
49
54
  eventData: {
@@ -57,8 +62,10 @@ export async function start(workflow, argsOrOptions, options) {
57
62
  if (!result.run) {
58
63
  throw new WorkflowRuntimeError("Missing 'run' in server response for 'run_created' event");
59
64
  }
60
- const runId = result.run.runId;
61
- resolveRunId(runId);
65
+ // Verify server accepted our runId
66
+ if (result.run.runId !== runId) {
67
+ throw new WorkflowRuntimeError(`Server returned different runId than requested: expected ${runId}, got ${result.run.runId}`);
68
+ }
62
69
  waitUntil(Promise.all(ops).catch((err) => {
63
70
  // Ignore expected client disconnect errors (e.g., browser refresh during streaming)
64
71
  const isAbortError = err?.name === 'AbortError' || err?.name === 'ResponseAborted';
@@ -70,7 +77,7 @@ export async function start(workflow, argsOrOptions, options) {
70
77
  ...Attribute.WorkflowRunStatus(result.run.status),
71
78
  ...Attribute.DeploymentId(deploymentId),
72
79
  });
73
- await world.queue(`__wkf_workflow_${workflowName}`, {
80
+ await world.queue(getWorkflowQueueName(workflowName), {
74
81
  runId,
75
82
  traceCarrier,
76
83
  }, {
@@ -80,4 +87,4 @@ export async function start(workflow, argsOrOptions, options) {
80
87
  });
81
88
  });
82
89
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS9zdGFydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFL0IsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxLQUFLLFNBQVMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxJQUFJLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUF1RHRDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsS0FBSyxDQUN6QixRQUE2RCxFQUM3RCxhQUFvQyxFQUNwQyxPQUFzQjtJQUV0QixPQUFPLE1BQU0sV0FBVyxDQUFDLEdBQUcsRUFBRTtRQUM1QiwrREFBK0Q7UUFDL0QsTUFBTSxZQUFZLEdBQUcsUUFBUSxFQUFFLFVBQVUsQ0FBQztRQUUxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLG9CQUFvQixDQUM1QixrS0FBa0ssRUFDbEssRUFBRSxJQUFJLEVBQUUsaUNBQWlDLEVBQUUsQ0FDNUMsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFP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
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVudGltZS9zdGFydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxTQUFTLE1BQU0sc0NBQXNDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sSUFBSSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXRDLHNEQUFzRDtBQUN0RCxNQUFNLElBQUksR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0FBdURoQyxNQUFNLENBQUMsS0FBSyxVQUFVLEtBQUssQ0FDekIsUUFBNkQsRUFDN0QsYUFBb0MsRUFDcEMsT0FBc0I7SUFFdEIsT0FBTyxNQUFNLFdBQVcsQ0FBQyxHQUFHLEVBQUU7UUFDNUIsK0RBQStEO1FBQy9ELE1BQU0sWUFBWSxHQUFHLFFBQVEsRUFBRSxVQUFVLENBQUM7UUFFMUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xC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
@@ -1 +1 @@
1
- {"version":3,"file":"step-handler.d.ts","sourceRoot":"","sources":["../../src/runtime/step-handler.ts"],"names":[],"mappings":"AA8aA;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CACjB,CAAC"}
1
+ {"version":3,"file":"step-handler.d.ts","sourceRoot":"","sources":["../../src/runtime/step-handler.ts"],"names":[],"mappings":"AAikBA;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CACjB,CAAC"}