@workflow/world-testing 4.1.20 → 4.1.21
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.
|
@@ -44746,7 +44746,7 @@ var require_token_util = __commonJS({
|
|
|
44746
44746
|
findProjectInfo: /* @__PURE__ */ __name(() => findProjectInfo, "findProjectInfo"),
|
|
44747
44747
|
getTokenPayload: /* @__PURE__ */ __name(() => getTokenPayload, "getTokenPayload"),
|
|
44748
44748
|
getVercelDataDir: /* @__PURE__ */ __name(() => getVercelDataDir, "getVercelDataDir"),
|
|
44749
|
-
getVercelOidcToken: /* @__PURE__ */ __name(() =>
|
|
44749
|
+
getVercelOidcToken: /* @__PURE__ */ __name(() => getVercelOidcToken6, "getVercelOidcToken"),
|
|
44750
44750
|
getVercelToken: /* @__PURE__ */ __name(() => getVercelToken2, "getVercelToken"),
|
|
44751
44751
|
isExpired: /* @__PURE__ */ __name(() => isExpired, "isExpired"),
|
|
44752
44752
|
loadToken: /* @__PURE__ */ __name(() => loadToken, "loadToken"),
|
|
@@ -44808,7 +44808,7 @@ var require_token_util = __commonJS({
|
|
|
44808
44808
|
}
|
|
44809
44809
|
}
|
|
44810
44810
|
__name(getVercelToken2, "getVercelToken");
|
|
44811
|
-
async function
|
|
44811
|
+
async function getVercelOidcToken6(authToken, projectId, teamId) {
|
|
44812
44812
|
const url2 = `https://api.vercel.com/v1/projects/${projectId}/token?source=vercel-oidc-refresh${teamId ? `&teamId=${teamId}` : ""}`;
|
|
44813
44813
|
const res = await fetch(url2, {
|
|
44814
44814
|
method: "POST",
|
|
@@ -44825,7 +44825,7 @@ var require_token_util = __commonJS({
|
|
|
44825
44825
|
assertVercelOidcTokenResponse(tokenRes);
|
|
44826
44826
|
return tokenRes;
|
|
44827
44827
|
}
|
|
44828
|
-
__name(
|
|
44828
|
+
__name(getVercelOidcToken6, "getVercelOidcToken");
|
|
44829
44829
|
function assertVercelOidcTokenResponse(res) {
|
|
44830
44830
|
if (!res || typeof res !== "object") {
|
|
44831
44831
|
throw new TypeError(
|
|
@@ -45000,13 +45000,13 @@ var require_get_vercel_oidc_token = __commonJS({
|
|
|
45000
45000
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
45001
45001
|
var get_vercel_oidc_token_exports = {};
|
|
45002
45002
|
__export2(get_vercel_oidc_token_exports, {
|
|
45003
|
-
getVercelOidcToken: /* @__PURE__ */ __name(() =>
|
|
45003
|
+
getVercelOidcToken: /* @__PURE__ */ __name(() => getVercelOidcToken6, "getVercelOidcToken"),
|
|
45004
45004
|
getVercelOidcTokenSync: /* @__PURE__ */ __name(() => getVercelOidcTokenSync2, "getVercelOidcTokenSync")
|
|
45005
45005
|
});
|
|
45006
45006
|
module2.exports = __toCommonJS2(get_vercel_oidc_token_exports);
|
|
45007
45007
|
var import_get_context = require_get_context();
|
|
45008
45008
|
var import_token_error = require_token_error();
|
|
45009
|
-
async function
|
|
45009
|
+
async function getVercelOidcToken6(options) {
|
|
45010
45010
|
let token = "";
|
|
45011
45011
|
let err;
|
|
45012
45012
|
try {
|
|
@@ -45036,7 +45036,7 @@ ${error48.message}`;
|
|
|
45036
45036
|
}
|
|
45037
45037
|
return token;
|
|
45038
45038
|
}
|
|
45039
|
-
__name(
|
|
45039
|
+
__name(getVercelOidcToken6, "getVercelOidcToken");
|
|
45040
45040
|
function getVercelOidcTokenSync2() {
|
|
45041
45041
|
const token = (0, import_get_context.getContext)().headers?.["x-vercel-oidc-token"] ?? process.env.VERCEL_OIDC_TOKEN;
|
|
45042
45042
|
if (!token) {
|
|
@@ -50526,7 +50526,7 @@ init_dist();
|
|
|
50526
50526
|
init_node();
|
|
50527
50527
|
|
|
50528
50528
|
// ../core/dist/version.js
|
|
50529
|
-
var version2 = "4.8.
|
|
50529
|
+
var version2 = "4.8.6";
|
|
50530
50530
|
|
|
50531
50531
|
// ../core/dist/runtime/world.js
|
|
50532
50532
|
var import_node_module = require("node:module");
|
|
@@ -51928,6 +51928,8 @@ function createQueue(config3) {
|
|
|
51928
51928
|
const transport = new TypedJsonTransport();
|
|
51929
51929
|
const generateId2 = monotonicFactory();
|
|
51930
51930
|
const semaphore = new import_async_sema.Sema(WORKFLOW_LOCAL_QUEUE_CONCURRENCY);
|
|
51931
|
+
const closeController = new AbortController();
|
|
51932
|
+
const closeSignal = closeController.signal;
|
|
51931
51933
|
const inflightMessages = /* @__PURE__ */ new Map();
|
|
51932
51934
|
const directHandlers = /* @__PURE__ */ new Map();
|
|
51933
51935
|
const queue = /* @__PURE__ */ __name(async (queueName, message, opts) => {
|
|
@@ -51986,6 +51988,7 @@ function createQueue(config3) {
|
|
|
51986
51988
|
headers: new Headers(headers),
|
|
51987
51989
|
body,
|
|
51988
51990
|
agents: nodeHttpAgents,
|
|
51991
|
+
signal: closeSignal,
|
|
51989
51992
|
headersTimeoutMs: agentOptions.headersTimeout,
|
|
51990
51993
|
bodyTimeoutMs: agentOptions.bodyTimeout
|
|
51991
51994
|
}) : (
|
|
@@ -51995,7 +51998,8 @@ function createQueue(config3) {
|
|
|
51995
51998
|
duplex: "half",
|
|
51996
51999
|
dispatcher: httpAgent,
|
|
51997
52000
|
headers,
|
|
51998
|
-
body
|
|
52001
|
+
body,
|
|
52002
|
+
signal: closeSignal
|
|
51999
52003
|
})
|
|
52000
52004
|
);
|
|
52001
52005
|
}
|
|
@@ -52101,6 +52105,9 @@ function createQueue(config3) {
|
|
|
52101
52105
|
directHandlers.set(prefix, handler);
|
|
52102
52106
|
},
|
|
52103
52107
|
async close() {
|
|
52108
|
+
if (closeSignal.aborted)
|
|
52109
|
+
return;
|
|
52110
|
+
closeController.abort();
|
|
52104
52111
|
if (nodeHttpAgents)
|
|
52105
52112
|
destroyNodeHttpAgents(nodeHttpAgents);
|
|
52106
52113
|
await httpAgent?.close();
|
|
@@ -54367,7 +54374,7 @@ function httpClientSpanAttributes(args) {
|
|
|
54367
54374
|
}
|
|
54368
54375
|
__name(httpClientSpanAttributes, "httpClientSpanAttributes");
|
|
54369
54376
|
async function instrumentedFetch(opts) {
|
|
54370
|
-
const { method, url: url2, headers, body, dispatcher, peerService = "workflow-server", timeoutMs = REQUEST_TIMEOUT_MS, signal: callerSignal, injectTraceContext = true, cacheBust = true, logLabel, buildError, onTransportOutcome } = opts;
|
|
54377
|
+
const { method, url: url2, headers, body, dispatcher, peerService = "workflow-server", timeoutMs = REQUEST_TIMEOUT_MS, signal: callerSignal, injectTraceContext = true, cacheBust = true, logLabel, buildError, onTransportOutcome, deferTransportSuccessUntilBody = false } = opts;
|
|
54371
54378
|
const label = logLabel ?? url2;
|
|
54372
54379
|
return trace4(`http ${method}`, { kind: await getSpanKind3("CLIENT") }, async (span) => {
|
|
54373
54380
|
span?.setAttributes(httpClientSpanAttributes({ method, url: url2, peerService }));
|
|
@@ -54415,18 +54422,31 @@ async function instrumentedFetch(opts) {
|
|
|
54415
54422
|
throw error48;
|
|
54416
54423
|
}
|
|
54417
54424
|
const ms2 = Date.now() - start2;
|
|
54418
|
-
|
|
54425
|
+
if (!deferTransportSuccessUntilBody)
|
|
54426
|
+
onTransportOutcome?.();
|
|
54419
54427
|
httpLog(method, label, response, ms2);
|
|
54420
54428
|
span?.setAttributes({ ...HttpResponseStatusCode2(response.status) });
|
|
54421
54429
|
if (!response.ok) {
|
|
54422
54430
|
span?.setAttributes({ ...ErrorType2(`HTTP ${response.status}`) });
|
|
54423
54431
|
logCurlRepro(method, url2, headers);
|
|
54424
54432
|
if (buildError) {
|
|
54425
|
-
|
|
54433
|
+
let error49;
|
|
54434
|
+
try {
|
|
54435
|
+
error49 = await buildError(response);
|
|
54436
|
+
} catch (cause) {
|
|
54437
|
+
if (deferTransportSuccessUntilBody) {
|
|
54438
|
+
onTransportOutcome?.(cause);
|
|
54439
|
+
}
|
|
54440
|
+
throw cause;
|
|
54441
|
+
}
|
|
54442
|
+
if (deferTransportSuccessUntilBody)
|
|
54443
|
+
onTransportOutcome?.();
|
|
54426
54444
|
span?.recordException?.(error49);
|
|
54427
54445
|
throw error49;
|
|
54428
54446
|
}
|
|
54429
54447
|
const text = await response.text().catch(() => "");
|
|
54448
|
+
if (deferTransportSuccessUntilBody)
|
|
54449
|
+
onTransportOutcome?.();
|
|
54430
54450
|
const error48 = errorForResponse(response.status, `${method} ${label} -> HTTP ${response.status}: ${response.statusText}${text ? ` ${text}` : ""}${formatVercelDiagnostics(response.headers)}`, {
|
|
54431
54451
|
url: url2,
|
|
54432
54452
|
retryAfter: parseRetryAfter(response.headers.get("Retry-After"))
|
|
@@ -61571,7 +61591,7 @@ var import_oidc3 = __toESM(require_dist(), 1);
|
|
|
61571
61591
|
init_dist();
|
|
61572
61592
|
|
|
61573
61593
|
// ../world-vercel/dist/version.js
|
|
61574
|
-
var version3 = "4.7.
|
|
61594
|
+
var version3 = "4.7.2";
|
|
61575
61595
|
|
|
61576
61596
|
// ../world-vercel/dist/utils.js
|
|
61577
61597
|
var WORKFLOW_SERVER_URL_OVERRIDE = "";
|
|
@@ -62088,21 +62108,35 @@ function createQueue2(config3) {
|
|
|
62088
62108
|
__name(createQueue2, "createQueue");
|
|
62089
62109
|
|
|
62090
62110
|
// ../world-vercel/dist/resolve-latest-deployment.js
|
|
62111
|
+
var import_oidc4 = __toESM(require_dist(), 1);
|
|
62091
62112
|
init_zod();
|
|
62092
62113
|
var ResolveLatestDeploymentResponseSchema = object({
|
|
62093
62114
|
id: string2()
|
|
62094
62115
|
});
|
|
62116
|
+
async function resolveDeploymentIdentityToken(config3) {
|
|
62117
|
+
if (config3?.token)
|
|
62118
|
+
return config3.token;
|
|
62119
|
+
if (process.env.VERCEL === "1") {
|
|
62120
|
+
const oidcToken = await (0, import_oidc4.getVercelOidcToken)().catch(() => null);
|
|
62121
|
+
if (oidcToken)
|
|
62122
|
+
return oidcToken;
|
|
62123
|
+
}
|
|
62124
|
+
return resolveVercelApiToken(config3);
|
|
62125
|
+
}
|
|
62126
|
+
__name(resolveDeploymentIdentityToken, "resolveDeploymentIdentityToken");
|
|
62095
62127
|
function createResolveLatestDeploymentId(config3) {
|
|
62096
62128
|
return /* @__PURE__ */ __name(async function resolveLatestDeploymentId() {
|
|
62097
62129
|
const currentDeploymentId = process.env.VERCEL_DEPLOYMENT_ID;
|
|
62098
62130
|
if (!currentDeploymentId) {
|
|
62099
62131
|
throw new Error("Cannot resolve latest deployment: VERCEL_DEPLOYMENT_ID environment variable is not set");
|
|
62100
62132
|
}
|
|
62101
|
-
const token = await
|
|
62133
|
+
const token = await resolveDeploymentIdentityToken(config3);
|
|
62102
62134
|
if (!token) {
|
|
62103
62135
|
throw new Error("Cannot resolve latest deployment: no OIDC token or VERCEL_TOKEN available");
|
|
62104
62136
|
}
|
|
62105
|
-
const
|
|
62137
|
+
const teamId = config3?.projectConfig?.teamId;
|
|
62138
|
+
const query = teamId ? `?${new URLSearchParams({ teamId })}` : "";
|
|
62139
|
+
const url2 = `https://api.vercel.com/v1/workflow/resolve-latest-deployment/${encodeURIComponent(currentDeploymentId)}${query}`;
|
|
62106
62140
|
const response = await instrumentedFetch({
|
|
62107
62141
|
method: "GET",
|
|
62108
62142
|
url: url2,
|
|
@@ -62119,7 +62153,8 @@ function createResolveLatestDeploymentId(config3) {
|
|
|
62119
62153
|
} catch {
|
|
62120
62154
|
body = "<unable to read response body>";
|
|
62121
62155
|
}
|
|
62122
|
-
|
|
62156
|
+
const hint = res.status === 404 ? ". The deployment exists but was not visible to the identity this request authenticated as, which means the request resolved to a different team. Set the World's `projectConfig.teamId` to scope it explicitly." : "";
|
|
62157
|
+
return new Error(`Failed to resolve latest deployment for ${currentDeploymentId}: HTTP ${res.status} ${res.statusText}${body ? ` \u2014 ${body}` : ""}${hint}`);
|
|
62123
62158
|
}, "buildError")
|
|
62124
62159
|
});
|
|
62125
62160
|
const data = await response.json();
|
|
@@ -62400,7 +62435,7 @@ __name(readerToIterator, "readerToIterator");
|
|
|
62400
62435
|
// ../world-vercel/dist/events-v4.js
|
|
62401
62436
|
async function fetchV4(url2, init, config3, opName) {
|
|
62402
62437
|
const dispatcher = getEventsDispatcher(config3);
|
|
62403
|
-
|
|
62438
|
+
const response = await instrumentedFetch({
|
|
62404
62439
|
method: init.method,
|
|
62405
62440
|
url: url2,
|
|
62406
62441
|
headers: init.headers,
|
|
@@ -62411,9 +62446,40 @@ async function fetchV4(url2, init, config3, opName) {
|
|
|
62411
62446
|
// service indefinitely, so without this every request routed onto it fails
|
|
62412
62447
|
// until the compute instance is recycled — see noteEventsTransportOutcome.
|
|
62413
62448
|
onTransportOutcome: /* @__PURE__ */ __name((error48) => noteEventsTransportOutcome(dispatcher, error48), "onTransportOutcome"),
|
|
62449
|
+
deferTransportSuccessUntilBody: true,
|
|
62414
62450
|
timeoutMs: null,
|
|
62415
62451
|
logLabel: opName,
|
|
62416
|
-
buildError: /* @__PURE__ */ __name(async (
|
|
62452
|
+
buildError: /* @__PURE__ */ __name(async (response2) => errorFromV4Response(response2.status, headersToRecord(response2.headers), await response2.text(), opName, url2), "buildError")
|
|
62453
|
+
});
|
|
62454
|
+
if (!response.body) {
|
|
62455
|
+
noteEventsTransportOutcome(dispatcher);
|
|
62456
|
+
return response;
|
|
62457
|
+
}
|
|
62458
|
+
const reader = response.body.getReader();
|
|
62459
|
+
const body = new ReadableStream({
|
|
62460
|
+
async pull(controller) {
|
|
62461
|
+
try {
|
|
62462
|
+
const chunk = await reader.read();
|
|
62463
|
+
if (chunk.done) {
|
|
62464
|
+
noteEventsTransportOutcome(dispatcher);
|
|
62465
|
+
controller.close();
|
|
62466
|
+
} else {
|
|
62467
|
+
controller.enqueue(chunk.value);
|
|
62468
|
+
}
|
|
62469
|
+
} catch (cause) {
|
|
62470
|
+
noteEventsTransportOutcome(dispatcher, cause);
|
|
62471
|
+
controller.error(cause);
|
|
62472
|
+
}
|
|
62473
|
+
},
|
|
62474
|
+
cancel(reason) {
|
|
62475
|
+
noteEventsTransportOutcome(dispatcher);
|
|
62476
|
+
return reader.cancel(reason);
|
|
62477
|
+
}
|
|
62478
|
+
});
|
|
62479
|
+
return new Response(body, {
|
|
62480
|
+
status: response.status,
|
|
62481
|
+
statusText: response.statusText,
|
|
62482
|
+
headers: response.headers
|
|
62417
62483
|
});
|
|
62418
62484
|
}
|
|
62419
62485
|
__name(fetchV4, "fetchV4");
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "1.0.0",
|
|
3
3
|
"steps": {
|
|
4
|
-
"workflows/noop.ts": {
|
|
5
|
-
"noop": {
|
|
6
|
-
"stepId": "step//./workflows/noop//noop"
|
|
7
|
-
}
|
|
8
|
-
},
|
|
9
4
|
"workflows/hooks.ts": {
|
|
10
5
|
"writeEvent": {
|
|
11
6
|
"stepId": "step//./workflows/hooks//writeEvent"
|
|
@@ -16,12 +11,24 @@
|
|
|
16
11
|
"stepId": "step//./workflows/addition//add"
|
|
17
12
|
}
|
|
18
13
|
},
|
|
19
|
-
"workflows/
|
|
20
|
-
"
|
|
21
|
-
"stepId": "step//./workflows/
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
14
|
+
"workflows/null-byte.ts": {
|
|
15
|
+
"nullByteStep": {
|
|
16
|
+
"stepId": "step//./workflows/null-byte//nullByteStep"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"workflows/noop.ts": {
|
|
20
|
+
"noop": {
|
|
21
|
+
"stepId": "step//./workflows/noop//noop"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"workflows/event-limit.ts": {
|
|
25
|
+
"tick": {
|
|
26
|
+
"stepId": "step//./workflows/event-limit//tick"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"workflow/dist/stdlib.js": {
|
|
30
|
+
"fetch": {
|
|
31
|
+
"stepId": "step//workflow@4.8.6//fetch"
|
|
25
32
|
}
|
|
26
33
|
},
|
|
27
34
|
"workflow/dist/internal/builtins.js": {
|
|
@@ -35,33 +42,26 @@
|
|
|
35
42
|
"stepId": "__builtin_response_text"
|
|
36
43
|
}
|
|
37
44
|
},
|
|
38
|
-
"workflows/
|
|
39
|
-
"
|
|
40
|
-
"stepId": "step//./workflows/
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"nullByteStep": {
|
|
45
|
-
"stepId": "step//./workflows/null-byte//nullByteStep"
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
"workflow/dist/stdlib.js": {
|
|
49
|
-
"fetch": {
|
|
50
|
-
"stepId": "step//workflow@4.8.5//fetch"
|
|
45
|
+
"workflows/retriable-and-fatal.ts": {
|
|
46
|
+
"stepThatFails": {
|
|
47
|
+
"stepId": "step//./workflows/retriable-and-fatal//stepThatFails"
|
|
48
|
+
},
|
|
49
|
+
"stepThatThrowsRetryableError": {
|
|
50
|
+
"stepId": "step//./workflows/retriable-and-fatal//stepThatThrowsRetryableError"
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
},
|
|
54
54
|
"workflows": {
|
|
55
|
-
"workflows/
|
|
56
|
-
"
|
|
57
|
-
"workflowId": "workflow//./workflows/
|
|
55
|
+
"workflows/hooks.ts": {
|
|
56
|
+
"collectWithHook": {
|
|
57
|
+
"workflowId": "workflow//./workflows/hooks//collectWithHook",
|
|
58
58
|
"graph": {
|
|
59
59
|
"nodes": [
|
|
60
60
|
{
|
|
61
61
|
"id": "start",
|
|
62
62
|
"type": "workflowStart",
|
|
63
63
|
"data": {
|
|
64
|
-
"label": "Start:
|
|
64
|
+
"label": "Start: collectWithHook",
|
|
65
65
|
"nodeKind": "workflow_start"
|
|
66
66
|
}
|
|
67
67
|
},
|
|
@@ -69,18 +69,22 @@
|
|
|
69
69
|
"id": "node_0",
|
|
70
70
|
"type": "step",
|
|
71
71
|
"data": {
|
|
72
|
-
"label": "
|
|
72
|
+
"label": "writeEvent",
|
|
73
73
|
"nodeKind": "step",
|
|
74
|
-
"stepId": "step//./workflows/
|
|
74
|
+
"stepId": "step//./workflows/hooks//writeEvent"
|
|
75
75
|
}
|
|
76
76
|
},
|
|
77
77
|
{
|
|
78
78
|
"id": "node_1",
|
|
79
79
|
"type": "step",
|
|
80
80
|
"data": {
|
|
81
|
-
"label": "
|
|
81
|
+
"label": "writeEvent",
|
|
82
82
|
"nodeKind": "step",
|
|
83
|
-
"stepId": "step//./workflows/
|
|
83
|
+
"stepId": "step//./workflows/hooks//writeEvent"
|
|
84
|
+
},
|
|
85
|
+
"metadata": {
|
|
86
|
+
"loopId": "loop_0",
|
|
87
|
+
"loopIsAwait": true
|
|
84
88
|
}
|
|
85
89
|
},
|
|
86
90
|
{
|
|
@@ -99,6 +103,12 @@
|
|
|
99
103
|
"target": "node_0",
|
|
100
104
|
"type": "default"
|
|
101
105
|
},
|
|
106
|
+
{
|
|
107
|
+
"id": "e_node_1_back_node_1",
|
|
108
|
+
"source": "node_1",
|
|
109
|
+
"target": "node_1",
|
|
110
|
+
"type": "loop"
|
|
111
|
+
},
|
|
102
112
|
{
|
|
103
113
|
"id": "e_node_0_node_1",
|
|
104
114
|
"source": "node_0",
|
|
@@ -115,16 +125,16 @@
|
|
|
115
125
|
}
|
|
116
126
|
}
|
|
117
127
|
},
|
|
118
|
-
"workflows/
|
|
119
|
-
"
|
|
120
|
-
"workflowId": "workflow//./workflows/
|
|
128
|
+
"workflows/addition.ts": {
|
|
129
|
+
"addition": {
|
|
130
|
+
"workflowId": "workflow//./workflows/addition//addition",
|
|
121
131
|
"graph": {
|
|
122
132
|
"nodes": [
|
|
123
133
|
{
|
|
124
134
|
"id": "start",
|
|
125
135
|
"type": "workflowStart",
|
|
126
136
|
"data": {
|
|
127
|
-
"label": "Start:
|
|
137
|
+
"label": "Start: addition",
|
|
128
138
|
"nodeKind": "workflow_start"
|
|
129
139
|
}
|
|
130
140
|
},
|
|
@@ -132,22 +142,9 @@
|
|
|
132
142
|
"id": "node_0",
|
|
133
143
|
"type": "step",
|
|
134
144
|
"data": {
|
|
135
|
-
"label": "
|
|
136
|
-
"nodeKind": "step",
|
|
137
|
-
"stepId": "step//./workflows/hooks//writeEvent"
|
|
138
|
-
}
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
"id": "node_1",
|
|
142
|
-
"type": "step",
|
|
143
|
-
"data": {
|
|
144
|
-
"label": "writeEvent",
|
|
145
|
+
"label": "add",
|
|
145
146
|
"nodeKind": "step",
|
|
146
|
-
"stepId": "step//./workflows/
|
|
147
|
-
},
|
|
148
|
-
"metadata": {
|
|
149
|
-
"loopId": "loop_0",
|
|
150
|
-
"loopIsAwait": true
|
|
147
|
+
"stepId": "step//./workflows/addition//add"
|
|
151
148
|
}
|
|
152
149
|
},
|
|
153
150
|
{
|
|
@@ -167,20 +164,8 @@
|
|
|
167
164
|
"type": "default"
|
|
168
165
|
},
|
|
169
166
|
{
|
|
170
|
-
"id": "
|
|
171
|
-
"source": "node_1",
|
|
172
|
-
"target": "node_1",
|
|
173
|
-
"type": "loop"
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
"id": "e_node_0_node_1",
|
|
167
|
+
"id": "e_node_0_end",
|
|
177
168
|
"source": "node_0",
|
|
178
|
-
"target": "node_1",
|
|
179
|
-
"type": "default"
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
"id": "e_node_1_end",
|
|
183
|
-
"source": "node_1",
|
|
184
169
|
"target": "end",
|
|
185
170
|
"type": "default"
|
|
186
171
|
}
|
|
@@ -188,16 +173,16 @@
|
|
|
188
173
|
}
|
|
189
174
|
}
|
|
190
175
|
},
|
|
191
|
-
"workflows/
|
|
192
|
-
"
|
|
193
|
-
"workflowId": "workflow//./workflows/
|
|
176
|
+
"workflows/null-byte.ts": {
|
|
177
|
+
"nullByteWorkflow": {
|
|
178
|
+
"workflowId": "workflow//./workflows/null-byte//nullByteWorkflow",
|
|
194
179
|
"graph": {
|
|
195
180
|
"nodes": [
|
|
196
181
|
{
|
|
197
182
|
"id": "start",
|
|
198
183
|
"type": "workflowStart",
|
|
199
184
|
"data": {
|
|
200
|
-
"label": "Start:
|
|
185
|
+
"label": "Start: nullByteWorkflow",
|
|
201
186
|
"nodeKind": "workflow_start"
|
|
202
187
|
}
|
|
203
188
|
},
|
|
@@ -205,9 +190,9 @@
|
|
|
205
190
|
"id": "node_0",
|
|
206
191
|
"type": "step",
|
|
207
192
|
"data": {
|
|
208
|
-
"label": "
|
|
193
|
+
"label": "nullByteStep",
|
|
209
194
|
"nodeKind": "step",
|
|
210
|
-
"stepId": "step//./workflows/
|
|
195
|
+
"stepId": "step//./workflows/null-byte//nullByteStep"
|
|
211
196
|
}
|
|
212
197
|
},
|
|
213
198
|
{
|
|
@@ -236,16 +221,16 @@
|
|
|
236
221
|
}
|
|
237
222
|
}
|
|
238
223
|
},
|
|
239
|
-
"workflows/
|
|
240
|
-
"
|
|
241
|
-
"workflowId": "workflow//./workflows/
|
|
224
|
+
"workflows/noop.ts": {
|
|
225
|
+
"brokenWf": {
|
|
226
|
+
"workflowId": "workflow//./workflows/noop//brokenWf",
|
|
242
227
|
"graph": {
|
|
243
228
|
"nodes": [
|
|
244
229
|
{
|
|
245
230
|
"id": "start",
|
|
246
231
|
"type": "workflowStart",
|
|
247
232
|
"data": {
|
|
248
|
-
"label": "Start:
|
|
233
|
+
"label": "Start: brokenWf",
|
|
249
234
|
"nodeKind": "workflow_start"
|
|
250
235
|
}
|
|
251
236
|
},
|
|
@@ -253,9 +238,18 @@
|
|
|
253
238
|
"id": "node_0",
|
|
254
239
|
"type": "step",
|
|
255
240
|
"data": {
|
|
256
|
-
"label": "
|
|
241
|
+
"label": "noop",
|
|
257
242
|
"nodeKind": "step",
|
|
258
|
-
"stepId": "step//./workflows/
|
|
243
|
+
"stepId": "step//./workflows/noop//noop"
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"id": "node_1",
|
|
248
|
+
"type": "step",
|
|
249
|
+
"data": {
|
|
250
|
+
"label": "noop",
|
|
251
|
+
"nodeKind": "step",
|
|
252
|
+
"stepId": "step//./workflows/noop//noop"
|
|
259
253
|
}
|
|
260
254
|
},
|
|
261
255
|
{
|
|
@@ -275,8 +269,14 @@
|
|
|
275
269
|
"type": "default"
|
|
276
270
|
},
|
|
277
271
|
{
|
|
278
|
-
"id": "
|
|
272
|
+
"id": "e_node_0_node_1",
|
|
279
273
|
"source": "node_0",
|
|
274
|
+
"target": "node_1",
|
|
275
|
+
"type": "default"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"id": "e_node_1_end",
|
|
279
|
+
"source": "node_1",
|
|
280
280
|
"target": "end",
|
|
281
281
|
"type": "default"
|
|
282
282
|
}
|
|
@@ -341,16 +341,16 @@
|
|
|
341
341
|
}
|
|
342
342
|
}
|
|
343
343
|
},
|
|
344
|
-
"workflows/
|
|
345
|
-
"
|
|
346
|
-
"workflowId": "workflow//./workflows/
|
|
344
|
+
"workflows/retriable-and-fatal.ts": {
|
|
345
|
+
"retryableAndFatalErrorWorkflow": {
|
|
346
|
+
"workflowId": "workflow//./workflows/retriable-and-fatal//retryableAndFatalErrorWorkflow",
|
|
347
347
|
"graph": {
|
|
348
348
|
"nodes": [
|
|
349
349
|
{
|
|
350
350
|
"id": "start",
|
|
351
351
|
"type": "workflowStart",
|
|
352
352
|
"data": {
|
|
353
|
-
"label": "Start:
|
|
353
|
+
"label": "Start: retryableAndFatalErrorWorkflow",
|
|
354
354
|
"nodeKind": "workflow_start"
|
|
355
355
|
}
|
|
356
356
|
},
|
|
@@ -358,9 +358,9 @@
|
|
|
358
358
|
"id": "node_0",
|
|
359
359
|
"type": "step",
|
|
360
360
|
"data": {
|
|
361
|
-
"label": "
|
|
361
|
+
"label": "stepThatThrowsRetryableError",
|
|
362
362
|
"nodeKind": "step",
|
|
363
|
-
"stepId": "step//./workflows/
|
|
363
|
+
"stepId": "step//./workflows/retriable-and-fatal//stepThatThrowsRetryableError"
|
|
364
364
|
}
|
|
365
365
|
},
|
|
366
366
|
{
|