@workflow/core 4.0.1-beta.10 → 4.0.1-beta.12

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.
@@ -50,8 +50,9 @@ export declare function defineHook<TInput, TOutput = TInput>({ schema, }?: {
50
50
  *
51
51
  * @param token - The unique token identifying the hook
52
52
  * @param payload - The payload to send; if a `schema` is configured it is validated/transformed before resuming
53
- * @returns Promise resolving to the hook entity, or null if the hook doesn't exist
53
+ * @returns Promise resolving to the hook entity
54
+ * @throws Error if the hook is not found or if there's an error during the process
54
55
  */
55
- resume(token: string, payload: TInput): Promise<HookEntity | null>;
56
+ resume(token: string, payload: TInput): Promise<HookEntity>;
56
57
  };
57
58
  //# sourceMappingURL=define-hook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-hook.d.ts","sourceRoot":"","sources":["../src/define-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,EACnD,MAAM,GACP,GAAE;IACD,MAAM,CAAC,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;IAEF;;;;;;;OAOG;sBACe,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;IAM7C;;;;;;;OAOG;kBACiB,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;EAkB3E"}
1
+ {"version":3,"file":"define-hook.d.ts","sourceRoot":"","sources":["../src/define-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,EACnD,MAAM,GACP,GAAE;IACD,MAAM,CAAC,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;IAEF;;;;;;;OAOG;sBACe,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;IAM7C;;;;;;;;OAQG;kBACiB,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;EAkBpE"}
@@ -49,7 +49,8 @@ export function defineHook({ schema, } = {}) {
49
49
  *
50
50
  * @param token - The unique token identifying the hook
51
51
  * @param payload - The payload to send; if a `schema` is configured it is validated/transformed before resuming
52
- * @returns Promise resolving to the hook entity, or null if the hook doesn't exist
52
+ * @returns Promise resolving to the hook entity
53
+ * @throws Error if the hook is not found or if there's an error during the process
53
54
  */
54
55
  async resume(token, payload) {
55
56
  if (!schema?.['~standard']) {
@@ -1 +1 @@
1
- {"version":3,"file":"define-hook.js","sourceRoot":"","sources":["../src/define-hook.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,UAAU,CAA2B,EACnD,MAAM,MAGJ,EAAE;IACJ,OAAO;QACL;;;;;;;WAOG;QACH,MAAM,CAAC,QAAsB;YAC3B,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;QACJ,CAAC;QAED;;;;;;;WAOG;QACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAAe;YACzC,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3B,OAAO,MAAM,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC9B,MAAM,GAAG,MAAM,MAAM,CAAC;YACxB,CAAC;YAED,sDAAsD;YACtD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1D,CAAC;YAED,OAAO,MAAM,UAAU,CAAU,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"define-hook.js","sourceRoot":"","sources":["../src/define-hook.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,UAAU,CAA2B,EACnD,MAAM,MAGJ,EAAE;IACJ,OAAO;QACL;;;;;;;WAOG;QACH,MAAM,CAAC,QAAsB;YAC3B,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;QACJ,CAAC;QAED;;;;;;;;WAQG;QACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAAe;YACzC,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3B,OAAO,MAAM,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC9B,MAAM,GAAG,MAAM,MAAM,CAAC;YACxB,CAAC;YAED,sDAAsD;YACtD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1D,CAAC;YAED,OAAO,MAAM,UAAU,CAAU,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -15,7 +15,8 @@ export declare function getHookByToken(token: string): Promise<Hook>;
15
15
  *
16
16
  * @param token - The unique token identifying the hook
17
17
  * @param payload - The data payload to send to the hook
18
- * @returns Promise resolving to an object with the runId, or null if the hook doesn't exist
18
+ * @returns Promise resolving to the hook
19
+ * @throws Error if the hook is not found or if there's an error during the process
19
20
  *
20
21
  * @example
21
22
  *
@@ -25,17 +26,17 @@ export declare function getHookByToken(token: string): Promise<Hook>;
25
26
  *
26
27
  * export async function POST(request: Request) {
27
28
  * const { token, data } = await request.json();
28
- * const result = await resumeHook(token, data);
29
29
  *
30
- * if (!result) {
30
+ * try {
31
+ * const hook = await resumeHook(token, data);
32
+ * return Response.json({ runId: hook.runId });
33
+ * } catch (error) {
31
34
  * return new Response('Hook not found', { status: 404 });
32
35
  * }
33
- *
34
- * return Response.json({ runId: result.runId });
35
36
  * }
36
37
  * ```
37
38
  */
38
- export declare function resumeHook<T = any>(token: string, payload: T): Promise<Hook | null>;
39
+ export declare function resumeHook<T = any>(token: string, payload: T): Promise<Hook>;
39
40
  /**
40
41
  * Resumes a webhook by sending a {@link https://developer.mozilla.org/en-US/docs/Web/API/Request | Request}
41
42
  * object to a hook identified by its token.
@@ -45,7 +46,8 @@ export declare function resumeHook<T = any>(token: string, payload: T): Promise<
45
46
  *
46
47
  * @param token - The unique token identifying the hook
47
48
  * @param request - The request to send to the hook
48
- * @returns Promise resolving to the response, or null if the hook doesn't exist
49
+ * @returns Promise resolving to the response
50
+ * @throws Error if the hook is not found or if there's an error during the process
49
51
  *
50
52
  * @example
51
53
  *
@@ -61,9 +63,12 @@ export declare function resumeHook<T = any>(token: string, payload: T): Promise<
61
63
  * return new Response('Missing token', { status: 400 });
62
64
  * }
63
65
  *
64
- * const response = await resumeWebhook(token, request);
65
- *
66
- * return response ?? new Response('Webhook not found', { status: 404 });
66
+ * try {
67
+ * const response = await resumeWebhook(token, request);
68
+ * return response;
69
+ * } catch (error) {
70
+ * return new Response('Webhook not found', { status: 404 });
71
+ * }
67
72
  * }
68
73
  * ```
69
74
  */
@@ -1 +1 @@
1
- {"version":3,"file":"resume-hook.d.ts","sourceRoot":"","sources":["../../src/runtime/resume-hook.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAW5C;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,UAAU,CAAC,CAAC,GAAG,GAAG,EACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,GACT,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAuEtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC,CAkDnB"}
1
+ {"version":3,"file":"resume-hook.d.ts","sourceRoot":"","sources":["../../src/runtime/resume-hook.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAY5C;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,UAAU,CAAC,CAAC,GAAG,GAAG,EACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,GACT,OAAO,CAAC,IAAI,CAAC,CAwEf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC,CAkDnB"}
@@ -4,6 +4,7 @@ import { dehydrateStepReturnValue, hydrateStepArguments, } from '../serializatio
4
4
  import { WEBHOOK_RESPONSE_WRITABLE } from '../symbols.js';
5
5
  import * as Attribute from '../telemetry/semantic-conventions.js';
6
6
  import { getSpanContextForTraceCarrier, trace } from '../telemetry.js';
7
+ import { waitedUntil } from '../util.js';
7
8
  import { getWorld } from './world.js';
8
9
  /**
9
10
  * Get the hook by token to find the associated workflow run,
@@ -28,7 +29,8 @@ export async function getHookByToken(token) {
28
29
  *
29
30
  * @param token - The unique token identifying the hook
30
31
  * @param payload - The data payload to send to the hook
31
- * @returns Promise resolving to an object with the runId, or null if the hook doesn't exist
32
+ * @returns Promise resolving to the hook
33
+ * @throws Error if the hook is not found or if there's an error during the process
32
34
  *
33
35
  * @example
34
36
  *
@@ -38,69 +40,69 @@ export async function getHookByToken(token) {
38
40
  *
39
41
  * export async function POST(request: Request) {
40
42
  * const { token, data } = await request.json();
41
- * const result = await resumeHook(token, data);
42
43
  *
43
- * if (!result) {
44
+ * try {
45
+ * const hook = await resumeHook(token, data);
46
+ * return Response.json({ runId: hook.runId });
47
+ * } catch (error) {
44
48
  * return new Response('Hook not found', { status: 404 });
45
49
  * }
46
- *
47
- * return Response.json({ runId: result.runId });
48
50
  * }
49
51
  * ```
50
52
  */
51
53
  export async function resumeHook(token, payload) {
52
- return trace('HOOK.resume', async (span) => {
53
- const world = getWorld();
54
- try {
55
- const hook = await getHookByToken(token);
56
- span?.setAttributes({
57
- ...Attribute.HookToken(token),
58
- ...Attribute.HookId(hook.hookId),
59
- ...Attribute.WorkflowRunId(hook.runId),
60
- });
61
- // Dehydrate the payload for storage
62
- const ops = [];
63
- const dehydratedPayload = dehydrateStepReturnValue(payload, ops, globalThis);
64
- waitUntil(Promise.all(ops));
65
- // Create a hook_received event with the payload
66
- await world.events.create(hook.runId, {
67
- eventType: 'hook_received',
68
- correlationId: hook.hookId,
69
- eventData: {
70
- payload: dehydratedPayload,
71
- },
72
- });
73
- const workflowRun = await world.runs.get(hook.runId);
74
- span?.setAttributes({
75
- ...Attribute.WorkflowName(workflowRun.workflowName),
76
- });
77
- const traceCarrier = workflowRun.executionContext?.traceCarrier;
78
- if (traceCarrier) {
79
- const context = await getSpanContextForTraceCarrier(traceCarrier);
80
- if (context) {
81
- span?.addLink?.({ context });
54
+ return await waitedUntil(() => {
55
+ return trace('HOOK.resume', async (span) => {
56
+ const world = getWorld();
57
+ try {
58
+ const hook = await getHookByToken(token);
59
+ span?.setAttributes({
60
+ ...Attribute.HookToken(token),
61
+ ...Attribute.HookId(hook.hookId),
62
+ ...Attribute.WorkflowRunId(hook.runId),
63
+ });
64
+ // Dehydrate the payload for storage
65
+ const ops = [];
66
+ const dehydratedPayload = dehydrateStepReturnValue(payload, ops, globalThis);
67
+ waitUntil(Promise.all(ops));
68
+ // Create a hook_received event with the payload
69
+ await world.events.create(hook.runId, {
70
+ eventType: 'hook_received',
71
+ correlationId: hook.hookId,
72
+ eventData: {
73
+ payload: dehydratedPayload,
74
+ },
75
+ });
76
+ const workflowRun = await world.runs.get(hook.runId);
77
+ span?.setAttributes({
78
+ ...Attribute.WorkflowName(workflowRun.workflowName),
79
+ });
80
+ const traceCarrier = workflowRun.executionContext?.traceCarrier;
81
+ if (traceCarrier) {
82
+ const context = await getSpanContextForTraceCarrier(traceCarrier);
83
+ if (context) {
84
+ span?.addLink?.({ context });
85
+ }
82
86
  }
87
+ // Re-trigger the workflow against the deployment ID associated
88
+ // with the workflow run that the hook belongs to
89
+ await world.queue(`__wkf_workflow_${workflowRun.workflowName}`, {
90
+ runId: hook.runId,
91
+ // attach the trace carrier from the workflow run
92
+ traceCarrier: workflowRun.executionContext?.traceCarrier ?? undefined,
93
+ }, {
94
+ deploymentId: workflowRun.deploymentId,
95
+ });
96
+ return hook;
83
97
  }
84
- // Re-trigger the workflow against the deployment ID associated
85
- // with the workflow run that the hook belongs to
86
- await world.queue(`__wkf_workflow_${workflowRun.workflowName}`, {
87
- runId: hook.runId,
88
- // attach the trace carrier from the workflow run
89
- traceCarrier: workflowRun.executionContext?.traceCarrier ?? undefined,
90
- }, {
91
- deploymentId: workflowRun.deploymentId,
92
- });
93
- return hook;
94
- }
95
- catch (_err) {
96
- // If hook not found, return null
97
- span?.setAttributes({
98
- ...Attribute.HookToken(token),
99
- ...Attribute.HookFound(false),
100
- });
101
- // TODO: Check for specific error types
102
- return null;
103
- }
98
+ catch (err) {
99
+ span?.setAttributes({
100
+ ...Attribute.HookToken(token),
101
+ ...Attribute.HookFound(false),
102
+ });
103
+ throw err;
104
+ }
105
+ });
104
106
  });
105
107
  }
106
108
  /**
@@ -112,7 +114,8 @@ export async function resumeHook(token, payload) {
112
114
  *
113
115
  * @param token - The unique token identifying the hook
114
116
  * @param request - The request to send to the hook
115
- * @returns Promise resolving to the response, or null if the hook doesn't exist
117
+ * @returns Promise resolving to the response
118
+ * @throws Error if the hook is not found or if there's an error during the process
116
119
  *
117
120
  * @example
118
121
  *
@@ -128,9 +131,12 @@ export async function resumeHook(token, payload) {
128
131
  * return new Response('Missing token', { status: 400 });
129
132
  * }
130
133
  *
131
- * const response = await resumeWebhook(token, request);
132
- *
133
- * return response ?? new Response('Webhook not found', { status: 404 });
134
+ * try {
135
+ * const response = await resumeWebhook(token, request);
136
+ * return response;
137
+ * } catch (error) {
138
+ * return new Response('Webhook not found', { status: 404 });
139
+ * }
134
140
  * }
135
141
  * ```
136
142
  */
@@ -1 +1 @@
1
- {"version":3,"file":"resume-hook.js","sourceRoot":"","sources":["../../src/runtime/resume-hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume-hook.js","sourceRoot":"","sources":["../../src/runtime/resume-hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGrE,OAAO,EACL,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,SAAS,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAa;IAChD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAe,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,OAAU;IAEV,OAAO,MAAM,WAAW,CAAC,GAAG,EAAE;QAC5B,OAAO,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACzC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;YAEzB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;gBAEzC,IAAI,EAAE,aAAa,CAAC;oBAClB,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;oBAC7B,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;oBAChC,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;iBACvC,CAAC,CAAC;gBAEH,oCAAoC;gBACpC,MAAM,GAAG,GAAmB,EAAE,CAAC;gBAC/B,MAAM,iBAAiB,GAAG,wBAAwB,CAChD,OAAO,EACP,GAAG,EACH,UAAU,CACX,CAAC;gBACF,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAE5B,gDAAgD;gBAChD,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;oBACpC,SAAS,EAAE,eAAe;oBAC1B,aAAa,EAAE,IAAI,CAAC,MAAM;oBAC1B,SAAS,EAAE;wBACT,OAAO,EAAE,iBAAiB;qBAC3B;iBACF,CAAC,CAAC;gBAEH,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAErD,IAAI,EAAE,aAAa,CAAC;oBAClB,GAAG,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC;iBACpD,CAAC,CAAC;gBAEH,MAAM,YAAY,GAAG,WAAW,CAAC,gBAAgB,EAAE,YAAY,CAAC;gBAEhE,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,OAAO,GAAG,MAAM,6BAA6B,CAAC,YAAY,CAAC,CAAC;oBAClE,IAAI,OAAO,EAAE,CAAC;wBACZ,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;gBAED,+DAA+D;gBAC/D,iDAAiD;gBACjD,MAAM,KAAK,CAAC,KAAK,CACf,kBAAkB,WAAW,CAAC,YAAY,EAAE,EAC5C;oBACE,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,iDAAiD;oBACjD,YAAY,EACV,WAAW,CAAC,gBAAgB,EAAE,YAAY,IAAI,SAAS;iBAC1B,EACjC;oBACE,YAAY,EAAE,WAAW,CAAC,YAAY;iBACvC,CACF,CAAC;gBAEF,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,EAAE,aAAa,CAAC;oBAClB,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;oBAC7B,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;iBAC9B,CAAC,CAAC;gBACH,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAa,EACb,OAAgB;IAEhB,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAEzC,IAAI,QAA8B,CAAC;IACnC,IAAI,gBAAsD,CAAC;IAC3D,IACE,IAAI,CAAC,QAAQ;QACb,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;QACjC,aAAa,IAAI,IAAI,CAAC,QAAQ,EAC9B,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,eAAe,EAAsB,CAAC;YACzE,gBAAgB,GAAG,QAAQ,CAAC;YAE5B,uEAAuE;YACvE,mEAAmE;YAClE,OAAe,CAAC,yBAAyB,CAAC,GAAG,QAAQ,CAAC;QACzD,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,YAAY,QAAQ,EAAE,CAAC;YACzD,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,oBAAoB,CAC5B,kCAAkC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAC7D,EAAE,IAAI,EAAE,WAAW,CAAC,kCAAkC,EAAE,CACzD,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,yEAAyE;QACzE,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEtC,IAAI,gBAAgB,EAAE,CAAC;QACrB,kDAAkD;QAClD,iCAAiC;QACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,CAAC;QACD,MAAM,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,oBAAoB,CAAC,sCAAsC,EAAE;YACrE,IAAI,EAAE,WAAW,CAAC,yBAAyB;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/runtime/start.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAOpC,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;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,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAQpC,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;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"}
@@ -4,54 +4,57 @@ import { Run } from '../runtime.js';
4
4
  import { dehydrateWorkflowArguments } from '../serialization.js';
5
5
  import * as Attribute from '../telemetry/semantic-conventions.js';
6
6
  import { serializeTraceCarrier, trace } from '../telemetry.js';
7
+ import { waitedUntil } from '../util.js';
7
8
  import { getWorld } from './world.js';
8
9
  export async function start(workflow, argsOrOptions, options) {
9
- // @ts-expect-error this field is added by our client transform
10
- const workflowName = workflow.workflowId;
11
- if (!workflowName) {
12
- 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' });
13
- }
14
- return trace(`WORKFLOW.start ${workflowName}`, async (span) => {
15
- span?.setAttributes({
16
- ...Attribute.WorkflowName(workflowName),
17
- ...Attribute.WorkflowOperation('start'),
18
- });
19
- let args = [];
20
- let opts = options ?? {};
21
- if (Array.isArray(argsOrOptions)) {
22
- args = argsOrOptions;
23
- }
24
- else if (typeof argsOrOptions === 'object') {
25
- opts = argsOrOptions;
10
+ return await waitedUntil(() => {
11
+ // @ts-expect-error this field is added by our client transform
12
+ const workflowName = workflow.workflowId;
13
+ if (!workflowName) {
14
+ 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' });
26
15
  }
27
- span?.setAttributes({
28
- ...Attribute.WorkflowArgumentsCount(args.length),
29
- });
30
- const world = getWorld();
31
- const deploymentId = opts.deploymentId ?? (await world.getDeploymentId());
32
- const ops = [];
33
- const workflowArguments = dehydrateWorkflowArguments(args, ops);
34
- // Serialize current trace context to propagate across queue boundary
35
- const traceCarrier = await serializeTraceCarrier();
36
- const runResponse = await world.runs.create({
37
- deploymentId: deploymentId,
38
- workflowName: workflowName,
39
- input: workflowArguments,
40
- executionContext: { traceCarrier },
41
- });
42
- waitUntil(Promise.all(ops));
43
- span?.setAttributes({
44
- ...Attribute.WorkflowRunId(runResponse.runId),
45
- ...Attribute.WorkflowRunStatus(runResponse.status),
46
- ...Attribute.DeploymentId(deploymentId),
47
- });
48
- await world.queue(`__wkf_workflow_${workflowName}`, {
49
- runId: runResponse.runId,
50
- traceCarrier,
51
- }, {
52
- deploymentId,
16
+ return trace(`WORKFLOW.start ${workflowName}`, async (span) => {
17
+ span?.setAttributes({
18
+ ...Attribute.WorkflowName(workflowName),
19
+ ...Attribute.WorkflowOperation('start'),
20
+ });
21
+ let args = [];
22
+ let opts = options ?? {};
23
+ if (Array.isArray(argsOrOptions)) {
24
+ args = argsOrOptions;
25
+ }
26
+ else if (typeof argsOrOptions === 'object') {
27
+ opts = argsOrOptions;
28
+ }
29
+ span?.setAttributes({
30
+ ...Attribute.WorkflowArgumentsCount(args.length),
31
+ });
32
+ const world = getWorld();
33
+ const deploymentId = opts.deploymentId ?? (await world.getDeploymentId());
34
+ const ops = [];
35
+ const workflowArguments = dehydrateWorkflowArguments(args, ops);
36
+ // Serialize current trace context to propagate across queue boundary
37
+ const traceCarrier = await serializeTraceCarrier();
38
+ const runResponse = await world.runs.create({
39
+ deploymentId: deploymentId,
40
+ workflowName: workflowName,
41
+ input: workflowArguments,
42
+ executionContext: { traceCarrier },
43
+ });
44
+ waitUntil(Promise.all(ops));
45
+ span?.setAttributes({
46
+ ...Attribute.WorkflowRunId(runResponse.runId),
47
+ ...Attribute.WorkflowRunStatus(runResponse.status),
48
+ ...Attribute.DeploymentId(deploymentId),
49
+ });
50
+ await world.queue(`__wkf_workflow_${workflowName}`, {
51
+ runId: runResponse.runId,
52
+ traceCarrier,
53
+ }, {
54
+ deploymentId,
55
+ });
56
+ return new Run(runResponse.runId);
53
57
  });
54
- return new Run(runResponse.runId);
55
58
  });
56
59
  }
57
60
  //# sourceMappingURL=start.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/runtime/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,SAAS,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA4CtC,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,QAA6D,EAC7D,aAAoC,EACpC,OAAsB;IAEtB,+DAA+D;IAC/D,MAAM,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC;IAEzC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,oBAAoB,CAC5B,kKAAkK,EAClK,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAC5C,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,kBAAkB,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC5D,IAAI,EAAE,aAAa,CAAC;YAClB,GAAG,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC;YACvC,GAAG,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC;SACxC,CAAC,CAAC;QAEH,IAAI,IAAI,GAAmB,EAAE,CAAC;QAC9B,IAAI,IAAI,GAAiB,OAAO,IAAI,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,IAAI,GAAG,aAA+B,CAAC;QACzC,CAAC;aAAM,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YAC7C,IAAI,GAAG,aAAa,CAAC;QACvB,CAAC;QAED,IAAI,EAAE,aAAa,CAAC;YAClB,GAAG,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC;SACjD,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;QAC1E,MAAM,GAAG,GAAoB,EAAE,CAAC;QAChC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChE,qEAAqE;QACrE,MAAM,YAAY,GAAG,MAAM,qBAAqB,EAAE,CAAC;QAEnD,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;YAC1C,YAAY,EAAE,YAAY;YAC1B,YAAY,EAAE,YAAY;YAC1B,KAAK,EAAE,iBAAiB;YACxB,gBAAgB,EAAE,EAAE,YAAY,EAAE;SACnC,CAAC,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAE5B,IAAI,EAAE,aAAa,CAAC;YAClB,GAAG,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC;YAC7C,GAAG,SAAS,CAAC,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC;YAClD,GAAG,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC;SACxC,CAAC,CAAC;QAEH,MAAM,KAAK,CAAC,KAAK,CACf,kBAAkB,YAAY,EAAE,EAChC;YACE,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,YAAY;SACmB,EACjC;YACE,YAAY;SACb,CACF,CAAC;QAEF,OAAO,IAAI,GAAG,CAAU,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/runtime/start.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { createRequire } from 'node:module';
2
- import Path from 'node:path';
2
+ import { join } from 'node:path';
3
3
  import { createEmbeddedWorld } from '@workflow/world-local';
4
4
  import { createVercelWorld } from '@workflow/world-vercel';
5
- const require = createRequire(Path.join(process.cwd(), 'index.js'));
5
+ const require = createRequire(join(process.cwd(), 'index.js'));
6
6
  let worldCache;
7
7
  let stubbedWorldCache;
8
8
  function defaultWorld() {
@@ -1 +1 @@
1
- {"version":3,"file":"world.js","sourceRoot":"","sources":["../../src/runtime/world.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;AAEpE,IAAI,UAA6B,CAAC;AAClC,IAAI,iBAAoC,CAAC;AAEzC,SAAS,YAAY;IACnB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACrC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAU,EAAE;IACrC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,YAAY,EAAE,CAAC;IAExE,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,iBAAiB,CAAC;YACvB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;YAC9C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B;YAC7C,aAAa,EAAE;gBACb,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;gBAC5C,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;gBAC9C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;aACzC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,mBAAmB,CAAC;YACzB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B;SAChD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjC,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,GAAG,EAAW,CAAC;IACxB,CAAC;SAAM,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAC7C,OAAO,GAAG,CAAC,OAAO,EAAW,CAAC;IAChC,CAAC;SAAM,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QACjD,OAAO,GAAG,CAAC,WAAW,EAAW,CAAC;IACpC,CAAC;IAED,MAAM,IAAI,KAAK,CACb,gCAAgC,WAAW,yFAAyF,CACrI,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAsC,EAAE;IACtE,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAC7B,iBAAiB,GAAG,MAAM,CAAC;IAC3B,OAAO;QACL,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;KAC9C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAU,EAAE;IAClC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,UAAU,GAAG,WAAW,EAAE,CAAC;IAC3B,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAwB,EAAQ,EAAE;IACzD,UAAU,GAAG,KAAK,CAAC;IACnB,iBAAiB,GAAG,KAAK,CAAC;AAC5B,CAAC,CAAC"}
1
+ {"version":3,"file":"world.js","sourceRoot":"","sources":["../../src/runtime/world.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;AAE/D,IAAI,UAA6B,CAAC;AAClC,IAAI,iBAAoC,CAAC;AAEzC,SAAS,YAAY;IACnB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACrC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAU,EAAE;IACrC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,YAAY,EAAE,CAAC;IAExE,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,iBAAiB,CAAC;YACvB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;YAC9C,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B;YAC7C,aAAa,EAAE;gBACb,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;gBAC5C,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;gBAC9C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;aACzC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,mBAAmB,CAAC;YACzB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B;SAChD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjC,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,GAAG,EAAW,CAAC;IACxB,CAAC;SAAM,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAC7C,OAAO,GAAG,CAAC,OAAO,EAAW,CAAC;IAChC,CAAC;SAAM,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QACjD,OAAO,GAAG,CAAC,WAAW,EAAW,CAAC;IACpC,CAAC;IAED,MAAM,IAAI,KAAK,CACb,gCAAgC,WAAW,yFAAyF,CACrI,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAsC,EAAE;IACtE,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAC7B,iBAAiB,GAAG,MAAM,CAAC;IAC3B,OAAO;QACL,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;KAC9C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAU,EAAE;IAClC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,UAAU,GAAG,WAAW,EAAE,CAAC;IAC3B,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAwB,EAAQ,EAAE;IACzD,UAAU,GAAG,KAAK,CAAC;IACnB,iBAAiB,GAAG,KAAK,CAAC;AAC5B,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AA8BzB,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EACL,cAAc,EACd,UAAU,EACV,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EACL,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,GAAG,CAAC,OAAO;IACtB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,CAAC,KAAK,CAAQ;gBAET,KAAK,EAAE,MAAM;IAKzB;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAEvC;IAED;;;OAGG;IACH,IAAI,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAElC;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAElC;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7B;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAEzC;IAED;;;OAGG;IACH,IAAI,WAAW,IAAI,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAE3C;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,GAAG,GAAG,EACjB,OAAO,GAAE,6BAAkC,GAC1C,cAAc,CAAC,CAAC,CAAC;IASpB;;;;OAIG;YACW,eAAe;CA8B9B;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAE3D;AA8BD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,uCA+QtD;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,qCAgSxB,CAAC;AAIJ,wBAAgB,OAAO,SAAK"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AAgCzB,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EACL,cAAc,EACd,UAAU,EACV,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EACL,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,GAAG,CAAC,OAAO;IACtB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,CAAC,KAAK,CAAQ;gBAET,KAAK,EAAE,MAAM;IAKzB;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAEvC;IAED;;;OAGG;IACH,IAAI,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAElC;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAElC;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7B;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAEzC;IAED;;;OAGG;IACH,IAAI,WAAW,IAAI,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAE3C;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,GAAG,GAAG,EACjB,OAAO,GAAE,6BAAkC,GAC1C,cAAc,CAAC,CAAC,CAAC;IASpB;;;;OAIG;YACW,eAAe;CA2B9B;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAE3D;AA8BD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,uCA+RtD;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,qCAuSxB,CAAC;AAIJ,wBAAgB,OAAO,SAAK"}
package/dist/runtime.js CHANGED
@@ -3,10 +3,12 @@ import { FatalError, RetryableError, WorkflowAPIError, WorkflowRunCancelledError
3
3
  import { getPort } from '@workflow/utils/get-port';
4
4
  import { WorkflowSuspension } from './global.js';
5
5
  import { runtimeLogger } from './logger.js';
6
+ import { parseWorkflowName } from './parse-name.js';
6
7
  import { getStepFunction } from './private.js';
7
8
  import { getWorld, getWorldHandlers } from './runtime/world.js';
8
9
  import { StepInvokePayloadSchema, WorkflowInvokePayloadSchema, } from './schemas.js';
9
10
  import { dehydrateStepArguments, dehydrateStepReturnValue, getExternalRevivers, hydrateStepArguments, hydrateWorkflowReturnValue, } from './serialization.js';
11
+ import { remapErrorStack } from './source-map.js';
10
12
  // TODO: move step handler out to a separate file
11
13
  import { contextStorage } from './step/context-storage.js';
12
14
  import * as Attribute from './telemetry/semantic-conventions.js';
@@ -117,7 +119,7 @@ export class Run {
117
119
  throw new WorkflowRunCancelledError(this.runId);
118
120
  }
119
121
  if (run.status === 'failed') {
120
- throw new WorkflowRunFailedError(this.runId, run.error ?? 'Unknown error');
122
+ throw new WorkflowRunFailedError(this.runId, run.error);
121
123
  }
122
124
  throw new WorkflowRunNotCompletedError(this.runId, run.status);
123
125
  }
@@ -371,13 +373,22 @@ export function workflowEntrypoint(workflowCode) {
371
373
  }
372
374
  else {
373
375
  const errorName = getErrorName(err);
374
- const errorStack = getErrorStack(err);
376
+ const errorMessage = err instanceof Error ? err.message : String(err);
377
+ let errorStack = getErrorStack(err);
378
+ // Remap error stack using source maps to show original source locations
379
+ if (errorStack) {
380
+ const parsedName = parseWorkflowName(workflowName);
381
+ const filename = parsedName?.path || workflowName;
382
+ errorStack = remapErrorStack(errorStack, filename, workflowCode);
383
+ }
375
384
  console.error(`${errorName} while running "${runId}" workflow:\n\n${errorStack}`);
376
385
  await world.runs.update(runId, {
377
386
  status: 'failed',
378
- error: String(err),
379
- // TODO: include error codes when we define them
380
- // TODO: serialize/include the error name and stack?
387
+ error: {
388
+ message: errorMessage,
389
+ stack: errorStack,
390
+ // TODO: include error codes when we define them
391
+ },
381
392
  });
382
393
  span?.setAttributes({
383
394
  ...Attribute.WorkflowRunStatus('failed'),
@@ -491,7 +502,7 @@ export const stepEntrypoint =
491
502
  workflowRunId,
492
503
  workflowStartedAt: new Date(+workflowStartedAt),
493
504
  // TODO: there should be a getUrl method on the world interface itself. This
494
- // solution only works for vercel + embedded worlds.
505
+ // solution only works for vercel + local worlds.
495
506
  url: process.env.VERCEL_URL
496
507
  ? `https://${process.env.VERCEL_URL}`
497
508
  : `http://localhost:${port ?? 3000}`,
@@ -530,7 +541,8 @@ export const stepEntrypoint =
530
541
  }
531
542
  }
532
543
  if (FatalError.is(err)) {
533
- const stackLines = getErrorStack(err).split('\n').slice(0, 4);
544
+ const errorStack = getErrorStack(err);
545
+ const stackLines = errorStack.split('\n').slice(0, 4);
534
546
  console.error(`[Workflows] "${workflowRunId}" - Encountered \`FatalError\` while executing step "${stepName}":\n > ${stackLines.join('\n > ')}\n\nBubbling up error to parent workflow`);
535
547
  // Fatal error - store the error in the event log and re-invoke the workflow
536
548
  await world.events.create(workflowRunId, {
@@ -538,15 +550,17 @@ export const stepEntrypoint =
538
550
  correlationId: stepId,
539
551
  eventData: {
540
552
  error: String(err),
541
- stack: err.stack,
553
+ stack: errorStack,
542
554
  fatal: true,
543
555
  },
544
556
  });
545
557
  await world.steps.update(workflowRunId, stepId, {
546
558
  status: 'failed',
547
- error: String(err),
548
- // TODO: include error codes when we define them
549
- // TODO: serialize/include the error name and stack?
559
+ error: {
560
+ message: err.message || String(err),
561
+ stack: errorStack,
562
+ // TODO: include error codes when we define them
563
+ },
550
564
  });
551
565
  span?.setAttributes({
552
566
  ...Attribute.StepStatus('failed'),
@@ -561,7 +575,8 @@ export const stepEntrypoint =
561
575
  });
562
576
  if (attempt >= maxRetries) {
563
577
  // Max retries reached
564
- const stackLines = getErrorStack(err).split('\n').slice(0, 4);
578
+ const errorStack = getErrorStack(err);
579
+ const stackLines = errorStack.split('\n').slice(0, 4);
565
580
  console.error(`[Workflows] "${workflowRunId}" - Encountered \`Error\` while executing step "${stepName}" (attempt ${attempt}):\n > ${stackLines.join('\n > ')}\n\n Max retries reached\n Bubbling error to parent workflow`);
566
581
  const errorMessage = `Step "${stepName}" failed after max retries: ${String(err)}`;
567
582
  await world.events.create(workflowRunId, {
@@ -569,13 +584,16 @@ export const stepEntrypoint =
569
584
  correlationId: stepId,
570
585
  eventData: {
571
586
  error: errorMessage,
572
- stack: getErrorStack(err),
587
+ stack: errorStack,
573
588
  fatal: true,
574
589
  },
575
590
  });
576
591
  await world.steps.update(workflowRunId, stepId, {
577
592
  status: 'failed',
578
- error: errorMessage,
593
+ error: {
594
+ message: errorMessage,
595
+ stack: errorStack,
596
+ },
579
597
  });
580
598
  span?.setAttributes({
581
599
  ...Attribute.StepStatus('failed'),