@workflow/world-testing 4.1.21 → 4.1.23
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.
|
@@ -33710,9 +33710,9 @@ var require_redirect = __commonJS({
|
|
|
33710
33710
|
var require_response_error = __commonJS({
|
|
33711
33711
|
"../../node_modules/.pnpm/undici@7.28.0/node_modules/undici/lib/interceptor/response-error.js"(exports2, module2) {
|
|
33712
33712
|
"use strict";
|
|
33713
|
-
var
|
|
33713
|
+
var DecoratorHandler2 = require_decorator_handler();
|
|
33714
33714
|
var { ResponseError } = require_errors();
|
|
33715
|
-
var ResponseErrorHandler = class extends
|
|
33715
|
+
var ResponseErrorHandler = class extends DecoratorHandler2 {
|
|
33716
33716
|
static {
|
|
33717
33717
|
__name(this, "ResponseErrorHandler");
|
|
33718
33718
|
}
|
|
@@ -33820,8 +33820,8 @@ var require_dump = __commonJS({
|
|
|
33820
33820
|
"../../node_modules/.pnpm/undici@7.28.0/node_modules/undici/lib/interceptor/dump.js"(exports2, module2) {
|
|
33821
33821
|
"use strict";
|
|
33822
33822
|
var { InvalidArgumentError, RequestAbortedError } = require_errors();
|
|
33823
|
-
var
|
|
33824
|
-
var DumpHandler = class extends
|
|
33823
|
+
var DecoratorHandler2 = require_decorator_handler();
|
|
33824
|
+
var DumpHandler = class extends DecoratorHandler2 {
|
|
33825
33825
|
static {
|
|
33826
33826
|
__name(this, "DumpHandler");
|
|
33827
33827
|
}
|
|
@@ -33911,7 +33911,7 @@ var require_dns = __commonJS({
|
|
|
33911
33911
|
"use strict";
|
|
33912
33912
|
var { isIP } = require("node:net");
|
|
33913
33913
|
var { lookup } = require("node:dns");
|
|
33914
|
-
var
|
|
33914
|
+
var DecoratorHandler2 = require_decorator_handler();
|
|
33915
33915
|
var { InvalidArgumentError, InformationalError } = require_errors();
|
|
33916
33916
|
var maxInt = Math.pow(2, 31) - 1;
|
|
33917
33917
|
function hasSafeIterator(headers) {
|
|
@@ -34220,7 +34220,7 @@ var require_dns = __commonJS({
|
|
|
34220
34220
|
return new DNSDispatchHandler(this, meta3, opts);
|
|
34221
34221
|
}
|
|
34222
34222
|
};
|
|
34223
|
-
var DNSDispatchHandler = class extends
|
|
34223
|
+
var DNSDispatchHandler = class extends DecoratorHandler2 {
|
|
34224
34224
|
static {
|
|
34225
34225
|
__name(this, "DNSDispatchHandler");
|
|
34226
34226
|
}
|
|
@@ -36150,7 +36150,7 @@ var require_decompress = __commonJS({
|
|
|
36150
36150
|
"use strict";
|
|
36151
36151
|
var { createInflate, createGunzip, createBrotliDecompress, createZstdDecompress } = require("node:zlib");
|
|
36152
36152
|
var { pipeline } = require("node:stream");
|
|
36153
|
-
var
|
|
36153
|
+
var DecoratorHandler2 = require_decorator_handler();
|
|
36154
36154
|
var { runtimeFeatures } = require_runtime_features();
|
|
36155
36155
|
var supportedEncodings = {
|
|
36156
36156
|
gzip: createGunzip,
|
|
@@ -36169,7 +36169,7 @@ var require_decompress = __commonJS({
|
|
|
36169
36169
|
/** @type {boolean} */
|
|
36170
36170
|
false
|
|
36171
36171
|
);
|
|
36172
|
-
var DecompressHandler = class extends
|
|
36172
|
+
var DecompressHandler = class extends DecoratorHandler2 {
|
|
36173
36173
|
static {
|
|
36174
36174
|
__name(this, "DecompressHandler");
|
|
36175
36175
|
}
|
|
@@ -44146,7 +44146,7 @@ var require_undici = __commonJS({
|
|
|
44146
44146
|
var mockErrors = require_mock_errors();
|
|
44147
44147
|
var RetryHandler = require_retry_handler();
|
|
44148
44148
|
var { getGlobalDispatcher, setGlobalDispatcher } = require_global2();
|
|
44149
|
-
var
|
|
44149
|
+
var DecoratorHandler2 = require_decorator_handler();
|
|
44150
44150
|
var RedirectHandler = require_redirect_handler();
|
|
44151
44151
|
Object.assign(Dispatcher.prototype, api);
|
|
44152
44152
|
module2.exports.Dispatcher = Dispatcher;
|
|
@@ -44161,7 +44161,7 @@ var require_undici = __commonJS({
|
|
|
44161
44161
|
module2.exports.RetryAgent = RetryAgent2;
|
|
44162
44162
|
module2.exports.H2CClient = H2CClient;
|
|
44163
44163
|
module2.exports.RetryHandler = RetryHandler;
|
|
44164
|
-
module2.exports.DecoratorHandler =
|
|
44164
|
+
module2.exports.DecoratorHandler = DecoratorHandler2;
|
|
44165
44165
|
module2.exports.RedirectHandler = RedirectHandler;
|
|
44166
44166
|
module2.exports.interceptors = {
|
|
44167
44167
|
redirect: require_redirect(),
|
|
@@ -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.8";
|
|
50530
50530
|
|
|
50531
50531
|
// ../core/dist/runtime/world.js
|
|
50532
50532
|
var import_node_module = require("node:module");
|
|
@@ -53893,6 +53893,7 @@ init_zod();
|
|
|
53893
53893
|
init_dist();
|
|
53894
53894
|
var import_undici2 = __toESM(require_undici(), 1);
|
|
53895
53895
|
var _dispatcher;
|
|
53896
|
+
var _queueDispatcher;
|
|
53896
53897
|
var _streamDispatcher;
|
|
53897
53898
|
var _streamCloseDispatcher;
|
|
53898
53899
|
var _nodeHttpAgents;
|
|
@@ -53947,6 +53948,61 @@ function getAgentOptions() {
|
|
|
53947
53948
|
};
|
|
53948
53949
|
}
|
|
53949
53950
|
__name(getAgentOptions, "getAgentOptions");
|
|
53951
|
+
var QUEUE_AGENT_CONNECTIONS = 64;
|
|
53952
|
+
var QUEUE_REQUEST_TIMEOUT_MS = 3e4;
|
|
53953
|
+
var getQueueRequestTimeoutMs = /* @__PURE__ */ __name(() => envNumber("WORKFLOW_VERCEL_QUEUE_TIMEOUT_MS", QUEUE_REQUEST_TIMEOUT_MS, {
|
|
53954
|
+
integer: true,
|
|
53955
|
+
min: 5e3,
|
|
53956
|
+
max: 12e4
|
|
53957
|
+
}), "getQueueRequestTimeoutMs");
|
|
53958
|
+
function getQueueAgentOptions() {
|
|
53959
|
+
const timeoutMs = getQueueRequestTimeoutMs();
|
|
53960
|
+
return {
|
|
53961
|
+
...getAgentOptions(),
|
|
53962
|
+
connections: envNumber("WORKFLOW_VERCEL_QUEUE_CONNECTIONS", QUEUE_AGENT_CONNECTIONS, { integer: true, min: 1, max: 1024 }),
|
|
53963
|
+
headersTimeout: timeoutMs,
|
|
53964
|
+
bodyTimeout: timeoutMs
|
|
53965
|
+
};
|
|
53966
|
+
}
|
|
53967
|
+
__name(getQueueAgentOptions, "getQueueAgentOptions");
|
|
53968
|
+
var ForwardingHandler = import_undici2.DecoratorHandler;
|
|
53969
|
+
function deadlineInterceptor(timeoutMs) {
|
|
53970
|
+
class DeadlineHandler extends ForwardingHandler {
|
|
53971
|
+
static {
|
|
53972
|
+
__name(this, "DeadlineHandler");
|
|
53973
|
+
}
|
|
53974
|
+
#expired = false;
|
|
53975
|
+
#controller;
|
|
53976
|
+
#timer;
|
|
53977
|
+
constructor(handler) {
|
|
53978
|
+
super(handler);
|
|
53979
|
+
this.#timer = setTimeout(() => {
|
|
53980
|
+
this.#expired = true;
|
|
53981
|
+
this.#abort();
|
|
53982
|
+
}, timeoutMs);
|
|
53983
|
+
this.#timer.unref?.();
|
|
53984
|
+
}
|
|
53985
|
+
#abort() {
|
|
53986
|
+
this.#controller?.abort(new Error(`Queue request exceeded its ${timeoutMs}ms deadline`));
|
|
53987
|
+
}
|
|
53988
|
+
onRequestStart(controller, context2) {
|
|
53989
|
+
this.#controller = controller;
|
|
53990
|
+
super.onRequestStart(controller, context2);
|
|
53991
|
+
if (this.#expired)
|
|
53992
|
+
this.#abort();
|
|
53993
|
+
}
|
|
53994
|
+
onResponseEnd(controller, trailers) {
|
|
53995
|
+
clearTimeout(this.#timer);
|
|
53996
|
+
super.onResponseEnd(controller, trailers);
|
|
53997
|
+
}
|
|
53998
|
+
onResponseError(controller, error48) {
|
|
53999
|
+
clearTimeout(this.#timer);
|
|
54000
|
+
super.onResponseError(controller, error48);
|
|
54001
|
+
}
|
|
54002
|
+
}
|
|
54003
|
+
return (dispatch) => (opts, handler) => dispatch(opts, new DeadlineHandler(handler));
|
|
54004
|
+
}
|
|
54005
|
+
__name(deadlineInterceptor, "deadlineInterceptor");
|
|
53950
54006
|
function getEventsAgentOptions() {
|
|
53951
54007
|
return {
|
|
53952
54008
|
...getBaseAgentOptions(),
|
|
@@ -54137,7 +54193,7 @@ function getDispatcher(config3) {
|
|
|
54137
54193
|
}
|
|
54138
54194
|
__name(getDispatcher, "getDispatcher");
|
|
54139
54195
|
function getQueueDispatcher(config3) {
|
|
54140
|
-
return config3
|
|
54196
|
+
return resolveDispatcher(config3, getDefaultQueueDispatcher);
|
|
54141
54197
|
}
|
|
54142
54198
|
__name(getQueueDispatcher, "getQueueDispatcher");
|
|
54143
54199
|
function getEventsDispatcher(config3) {
|
|
@@ -54174,6 +54230,15 @@ function createStreamDispatcher(retryOptions, agentOverrides) {
|
|
|
54174
54230
|
return new import_undici2.RetryAgent(new import_undici2.Agent({ ...getStreamAgentOptions(), ...agentOverrides }), retryOptions);
|
|
54175
54231
|
}
|
|
54176
54232
|
__name(createStreamDispatcher, "createStreamDispatcher");
|
|
54233
|
+
function createQueueDispatcher() {
|
|
54234
|
+
return new import_undici2.RetryAgent(new import_undici2.Agent(getQueueAgentOptions()).compose(deadlineInterceptor(getQueueRequestTimeoutMs())), getRetryAgentOptions());
|
|
54235
|
+
}
|
|
54236
|
+
__name(createQueueDispatcher, "createQueueDispatcher");
|
|
54237
|
+
function getDefaultQueueDispatcher() {
|
|
54238
|
+
_queueDispatcher ??= createQueueDispatcher();
|
|
54239
|
+
return _queueDispatcher;
|
|
54240
|
+
}
|
|
54241
|
+
__name(getDefaultQueueDispatcher, "getDefaultQueueDispatcher");
|
|
54177
54242
|
function getDefaultDispatcher() {
|
|
54178
54243
|
_dispatcher ??= new import_undici2.RetryAgent(new import_undici2.Agent(getAgentOptions()), getRetryAgentOptions());
|
|
54179
54244
|
return _dispatcher;
|
|
@@ -54274,6 +54339,36 @@ var WorkflowHttpTransport = SemanticConvention3("workflow.http.transport");
|
|
|
54274
54339
|
|
|
54275
54340
|
// ../world-vercel/dist/http-core.js
|
|
54276
54341
|
var REQUEST_TIMEOUT_MS = 6e4;
|
|
54342
|
+
var TRANSIENT_TRANSPORT_ERROR_CODES = /* @__PURE__ */ new Set([
|
|
54343
|
+
"UND_ERR_INFO",
|
|
54344
|
+
"UND_ERR_REQ_RETRY",
|
|
54345
|
+
"UND_ERR_SOCKET",
|
|
54346
|
+
"UND_ERR_CONNECT",
|
|
54347
|
+
"UND_ERR_CONNECT_TIMEOUT",
|
|
54348
|
+
"UND_ERR_HEADERS_TIMEOUT",
|
|
54349
|
+
"UND_ERR_BODY_TIMEOUT",
|
|
54350
|
+
"UND_ERR_CLOSED",
|
|
54351
|
+
"ECONNRESET",
|
|
54352
|
+
"ECONNREFUSED",
|
|
54353
|
+
"ENOTFOUND",
|
|
54354
|
+
"EAI_AGAIN",
|
|
54355
|
+
"EPIPE",
|
|
54356
|
+
"ETIMEDOUT"
|
|
54357
|
+
]);
|
|
54358
|
+
function getTransientTransportCode(error48) {
|
|
54359
|
+
let current = error48;
|
|
54360
|
+
for (let depth = 0; current != null && depth < 8; depth++) {
|
|
54361
|
+
if (typeof current === "object" && "code" in current) {
|
|
54362
|
+
const code = current.code;
|
|
54363
|
+
if (typeof code === "string" && TRANSIENT_TRANSPORT_ERROR_CODES.has(code)) {
|
|
54364
|
+
return code;
|
|
54365
|
+
}
|
|
54366
|
+
}
|
|
54367
|
+
current = current?.cause;
|
|
54368
|
+
}
|
|
54369
|
+
return void 0;
|
|
54370
|
+
}
|
|
54371
|
+
__name(getTransientTransportCode, "getTransientTransportCode");
|
|
54277
54372
|
var HTTP_DEBUG_ENABLED = typeof process !== "undefined" && typeof process.env.DEBUG === "string" && (process.env.DEBUG.includes("workflow:") || process.env.DEBUG === "*");
|
|
54278
54373
|
var DIAGNOSTIC_HEADERS = [
|
|
54279
54374
|
"x-vercel-id",
|
|
@@ -54414,11 +54509,18 @@ async function instrumentedFetch(opts) {
|
|
|
54414
54509
|
const elapsed = Date.now() - start2;
|
|
54415
54510
|
onTransportOutcome?.(error48);
|
|
54416
54511
|
if (error48 instanceof Error && (error48.name === "TimeoutError" || error48.name === "AbortError")) {
|
|
54417
|
-
const timeoutError = new WorkflowWorldError(`${method} ${label} timed out after ${elapsed}ms`, { url: url2, cause: error48 });
|
|
54512
|
+
const timeoutError = new WorkflowWorldError(`${method} ${label} timed out after ${elapsed}ms`, { url: url2, code: "TIMEOUT", cause: error48 });
|
|
54418
54513
|
span?.setAttributes({ ...ErrorType2("TIMEOUT") });
|
|
54419
54514
|
span?.recordException?.(timeoutError);
|
|
54420
54515
|
throw timeoutError;
|
|
54421
54516
|
}
|
|
54517
|
+
const transportCode = getTransientTransportCode(error48);
|
|
54518
|
+
if (transportCode) {
|
|
54519
|
+
const transportError2 = new WorkflowWorldError(`${method} ${label} transport failure after ${elapsed}ms (${transportCode})`, { url: url2, code: "TRANSPORT", cause: error48 });
|
|
54520
|
+
span?.setAttributes({ ...ErrorType2("TRANSPORT") });
|
|
54521
|
+
span?.recordException?.(transportError2);
|
|
54522
|
+
throw transportError2;
|
|
54523
|
+
}
|
|
54422
54524
|
throw error48;
|
|
54423
54525
|
}
|
|
54424
54526
|
const ms2 = Date.now() - start2;
|
|
@@ -54434,6 +54536,16 @@ async function instrumentedFetch(opts) {
|
|
|
54434
54536
|
try {
|
|
54435
54537
|
error49 = await buildError(response);
|
|
54436
54538
|
} catch (cause) {
|
|
54539
|
+
const transportCode = getTransientTransportCode(cause);
|
|
54540
|
+
if (transportCode) {
|
|
54541
|
+
if (deferTransportSuccessUntilBody) {
|
|
54542
|
+
onTransportOutcome?.(cause);
|
|
54543
|
+
}
|
|
54544
|
+
const transportError2 = new WorkflowWorldError(`${method} ${label} response body transport failure (${transportCode})`, { url: url2, code: "TRANSPORT", cause });
|
|
54545
|
+
span?.setAttributes({ ...ErrorType2("TRANSPORT") });
|
|
54546
|
+
span?.recordException?.(transportError2);
|
|
54547
|
+
throw transportError2;
|
|
54548
|
+
}
|
|
54437
54549
|
if (deferTransportSuccessUntilBody) {
|
|
54438
54550
|
onTransportOutcome?.(cause);
|
|
54439
54551
|
}
|
|
@@ -61591,42 +61703,13 @@ var import_oidc3 = __toESM(require_dist(), 1);
|
|
|
61591
61703
|
init_dist();
|
|
61592
61704
|
|
|
61593
61705
|
// ../world-vercel/dist/version.js
|
|
61594
|
-
var version3 = "4.7.
|
|
61706
|
+
var version3 = "4.7.4";
|
|
61595
61707
|
|
|
61596
61708
|
// ../world-vercel/dist/utils.js
|
|
61597
61709
|
var WORKFLOW_SERVER_URL_OVERRIDE = "";
|
|
61598
61710
|
var IDEMPOTENT_METHODS = /* @__PURE__ */ new Set(["GET", "HEAD"]);
|
|
61599
61711
|
var MAX_BODY_PARSE_RETRIES = 2;
|
|
61600
61712
|
var BODY_PARSE_RETRY_BASE_MS = 100;
|
|
61601
|
-
var TRANSIENT_TRANSPORT_ERROR_CODES = /* @__PURE__ */ new Set([
|
|
61602
|
-
"UND_ERR_REQ_RETRY",
|
|
61603
|
-
"UND_ERR_SOCKET",
|
|
61604
|
-
"UND_ERR_CONNECT",
|
|
61605
|
-
"UND_ERR_CONNECT_TIMEOUT",
|
|
61606
|
-
"UND_ERR_HEADERS_TIMEOUT",
|
|
61607
|
-
"UND_ERR_BODY_TIMEOUT",
|
|
61608
|
-
"UND_ERR_CLOSED",
|
|
61609
|
-
"ECONNRESET",
|
|
61610
|
-
"ECONNREFUSED",
|
|
61611
|
-
"ENOTFOUND",
|
|
61612
|
-
"EAI_AGAIN",
|
|
61613
|
-
"EPIPE",
|
|
61614
|
-
"ETIMEDOUT"
|
|
61615
|
-
]);
|
|
61616
|
-
function getTransientTransportCode(error48) {
|
|
61617
|
-
let current = error48;
|
|
61618
|
-
for (let depth = 0; current != null && depth < 5; depth++) {
|
|
61619
|
-
if (typeof current === "object" && "code" in current) {
|
|
61620
|
-
const code = current.code;
|
|
61621
|
-
if (typeof code === "string" && TRANSIENT_TRANSPORT_ERROR_CODES.has(code)) {
|
|
61622
|
-
return code;
|
|
61623
|
-
}
|
|
61624
|
-
}
|
|
61625
|
-
current = current?.cause;
|
|
61626
|
-
}
|
|
61627
|
-
return void 0;
|
|
61628
|
-
}
|
|
61629
|
-
__name(getTransientTransportCode, "getTransientTransportCode");
|
|
61630
61713
|
var getWorkflowServerUrlOverride = /* @__PURE__ */ __name(() => WORKFLOW_SERVER_URL_OVERRIDE || process.env.VERCEL_WORKFLOW_SERVER_URL || "", "getWorkflowServerUrlOverride");
|
|
61631
61714
|
var DEFAULT_RESOLVE_DATA_OPTION2 = "all";
|
|
61632
61715
|
function deserializeError(obj) {
|
|
@@ -62468,7 +62551,8 @@ async function fetchV4(url2, init, config3, opName) {
|
|
|
62468
62551
|
}
|
|
62469
62552
|
} catch (cause) {
|
|
62470
62553
|
noteEventsTransportOutcome(dispatcher, cause);
|
|
62471
|
-
|
|
62554
|
+
const transportCode = getTransientTransportCode(cause);
|
|
62555
|
+
controller.error(transportCode ? new WorkflowWorldError(`v4 ${opName}: response stream transport failure (${transportCode})`, { url: url2, code: "TRANSPORT", cause }) : cause);
|
|
62472
62556
|
}
|
|
62473
62557
|
},
|
|
62474
62558
|
cancel(reason) {
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "1.0.0",
|
|
3
3
|
"steps": {
|
|
4
|
+
"workflows/retriable-and-fatal.ts": {
|
|
5
|
+
"stepThatFails": {
|
|
6
|
+
"stepId": "step//./workflows/retriable-and-fatal//stepThatFails"
|
|
7
|
+
},
|
|
8
|
+
"stepThatThrowsRetryableError": {
|
|
9
|
+
"stepId": "step//./workflows/retriable-and-fatal//stepThatThrowsRetryableError"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
4
12
|
"workflows/hooks.ts": {
|
|
5
13
|
"writeEvent": {
|
|
6
14
|
"stepId": "step//./workflows/hooks//writeEvent"
|
|
@@ -11,24 +19,14 @@
|
|
|
11
19
|
"stepId": "step//./workflows/addition//add"
|
|
12
20
|
}
|
|
13
21
|
},
|
|
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
22
|
"workflows/event-limit.ts": {
|
|
25
23
|
"tick": {
|
|
26
24
|
"stepId": "step//./workflows/event-limit//tick"
|
|
27
25
|
}
|
|
28
26
|
},
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"stepId": "step//
|
|
27
|
+
"workflows/noop.ts": {
|
|
28
|
+
"noop": {
|
|
29
|
+
"stepId": "step//./workflows/noop//noop"
|
|
32
30
|
}
|
|
33
31
|
},
|
|
34
32
|
"workflow/dist/internal/builtins.js": {
|
|
@@ -42,16 +40,66 @@
|
|
|
42
40
|
"stepId": "__builtin_response_text"
|
|
43
41
|
}
|
|
44
42
|
},
|
|
45
|
-
"workflows/
|
|
46
|
-
"
|
|
47
|
-
"stepId": "step//./workflows/
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
43
|
+
"workflows/null-byte.ts": {
|
|
44
|
+
"nullByteStep": {
|
|
45
|
+
"stepId": "step//./workflows/null-byte//nullByteStep"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"workflow/dist/stdlib.js": {
|
|
49
|
+
"fetch": {
|
|
50
|
+
"stepId": "step//workflow@4.8.8//fetch"
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
},
|
|
54
54
|
"workflows": {
|
|
55
|
+
"workflows/retriable-and-fatal.ts": {
|
|
56
|
+
"retryableAndFatalErrorWorkflow": {
|
|
57
|
+
"workflowId": "workflow//./workflows/retriable-and-fatal//retryableAndFatalErrorWorkflow",
|
|
58
|
+
"graph": {
|
|
59
|
+
"nodes": [
|
|
60
|
+
{
|
|
61
|
+
"id": "start",
|
|
62
|
+
"type": "workflowStart",
|
|
63
|
+
"data": {
|
|
64
|
+
"label": "Start: retryableAndFatalErrorWorkflow",
|
|
65
|
+
"nodeKind": "workflow_start"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"id": "node_0",
|
|
70
|
+
"type": "step",
|
|
71
|
+
"data": {
|
|
72
|
+
"label": "stepThatThrowsRetryableError",
|
|
73
|
+
"nodeKind": "step",
|
|
74
|
+
"stepId": "step//./workflows/retriable-and-fatal//stepThatThrowsRetryableError"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "end",
|
|
79
|
+
"type": "workflowEnd",
|
|
80
|
+
"data": {
|
|
81
|
+
"label": "Return",
|
|
82
|
+
"nodeKind": "workflow_end"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
],
|
|
86
|
+
"edges": [
|
|
87
|
+
{
|
|
88
|
+
"id": "e_start_node_0",
|
|
89
|
+
"source": "start",
|
|
90
|
+
"target": "node_0",
|
|
91
|
+
"type": "default"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "e_node_0_end",
|
|
95
|
+
"source": "node_0",
|
|
96
|
+
"target": "end",
|
|
97
|
+
"type": "default"
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
55
103
|
"workflows/hooks.ts": {
|
|
56
104
|
"collectWithHook": {
|
|
57
105
|
"workflowId": "workflow//./workflows/hooks//collectWithHook",
|
|
@@ -173,16 +221,16 @@
|
|
|
173
221
|
}
|
|
174
222
|
}
|
|
175
223
|
},
|
|
176
|
-
"workflows/
|
|
177
|
-
"
|
|
178
|
-
"workflowId": "workflow//./workflows/
|
|
224
|
+
"workflows/event-limit.ts": {
|
|
225
|
+
"runawayWorkflow": {
|
|
226
|
+
"workflowId": "workflow//./workflows/event-limit//runawayWorkflow",
|
|
179
227
|
"graph": {
|
|
180
228
|
"nodes": [
|
|
181
229
|
{
|
|
182
230
|
"id": "start",
|
|
183
231
|
"type": "workflowStart",
|
|
184
232
|
"data": {
|
|
185
|
-
"label": "Start:
|
|
233
|
+
"label": "Start: runawayWorkflow",
|
|
186
234
|
"nodeKind": "workflow_start"
|
|
187
235
|
}
|
|
188
236
|
},
|
|
@@ -190,9 +238,12 @@
|
|
|
190
238
|
"id": "node_0",
|
|
191
239
|
"type": "step",
|
|
192
240
|
"data": {
|
|
193
|
-
"label": "
|
|
241
|
+
"label": "tick",
|
|
194
242
|
"nodeKind": "step",
|
|
195
|
-
"stepId": "step//./workflows/
|
|
243
|
+
"stepId": "step//./workflows/event-limit//tick"
|
|
244
|
+
},
|
|
245
|
+
"metadata": {
|
|
246
|
+
"loopId": "loop_0"
|
|
196
247
|
}
|
|
197
248
|
},
|
|
198
249
|
{
|
|
@@ -205,6 +256,12 @@
|
|
|
205
256
|
}
|
|
206
257
|
],
|
|
207
258
|
"edges": [
|
|
259
|
+
{
|
|
260
|
+
"id": "e_node_0_back_node_0",
|
|
261
|
+
"source": "node_0",
|
|
262
|
+
"target": "node_0",
|
|
263
|
+
"type": "loop"
|
|
264
|
+
},
|
|
208
265
|
{
|
|
209
266
|
"id": "e_start_node_0",
|
|
210
267
|
"source": "start",
|
|
@@ -284,73 +341,16 @@
|
|
|
284
341
|
}
|
|
285
342
|
}
|
|
286
343
|
},
|
|
287
|
-
"workflows/
|
|
288
|
-
"
|
|
289
|
-
"workflowId": "workflow//./workflows/
|
|
290
|
-
"graph": {
|
|
291
|
-
"nodes": [
|
|
292
|
-
{
|
|
293
|
-
"id": "start",
|
|
294
|
-
"type": "workflowStart",
|
|
295
|
-
"data": {
|
|
296
|
-
"label": "Start: runawayWorkflow",
|
|
297
|
-
"nodeKind": "workflow_start"
|
|
298
|
-
}
|
|
299
|
-
},
|
|
300
|
-
{
|
|
301
|
-
"id": "node_0",
|
|
302
|
-
"type": "step",
|
|
303
|
-
"data": {
|
|
304
|
-
"label": "tick",
|
|
305
|
-
"nodeKind": "step",
|
|
306
|
-
"stepId": "step//./workflows/event-limit//tick"
|
|
307
|
-
},
|
|
308
|
-
"metadata": {
|
|
309
|
-
"loopId": "loop_0"
|
|
310
|
-
}
|
|
311
|
-
},
|
|
312
|
-
{
|
|
313
|
-
"id": "end",
|
|
314
|
-
"type": "workflowEnd",
|
|
315
|
-
"data": {
|
|
316
|
-
"label": "Return",
|
|
317
|
-
"nodeKind": "workflow_end"
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
],
|
|
321
|
-
"edges": [
|
|
322
|
-
{
|
|
323
|
-
"id": "e_node_0_back_node_0",
|
|
324
|
-
"source": "node_0",
|
|
325
|
-
"target": "node_0",
|
|
326
|
-
"type": "loop"
|
|
327
|
-
},
|
|
328
|
-
{
|
|
329
|
-
"id": "e_start_node_0",
|
|
330
|
-
"source": "start",
|
|
331
|
-
"target": "node_0",
|
|
332
|
-
"type": "default"
|
|
333
|
-
},
|
|
334
|
-
{
|
|
335
|
-
"id": "e_node_0_end",
|
|
336
|
-
"source": "node_0",
|
|
337
|
-
"target": "end",
|
|
338
|
-
"type": "default"
|
|
339
|
-
}
|
|
340
|
-
]
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
},
|
|
344
|
-
"workflows/retriable-and-fatal.ts": {
|
|
345
|
-
"retryableAndFatalErrorWorkflow": {
|
|
346
|
-
"workflowId": "workflow//./workflows/retriable-and-fatal//retryableAndFatalErrorWorkflow",
|
|
344
|
+
"workflows/null-byte.ts": {
|
|
345
|
+
"nullByteWorkflow": {
|
|
346
|
+
"workflowId": "workflow//./workflows/null-byte//nullByteWorkflow",
|
|
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: nullByteWorkflow",
|
|
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": "nullByteStep",
|
|
362
362
|
"nodeKind": "step",
|
|
363
|
-
"stepId": "step//./workflows/
|
|
363
|
+
"stepId": "step//./workflows/null-byte//nullByteStep"
|
|
364
364
|
}
|
|
365
365
|
},
|
|
366
366
|
{
|