@fluidgrids/workflows 2026.1029.1 → 2026.1030.1
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.
- package/README.md +112 -4
- package/dist/{activation-CESehfYi.d.cts → activation-DqUfpHzk.d.cts} +1 -1
- package/dist/{activation-BnVQMv9y.d.ts → activation-xpx1oWuo.d.ts} +1 -1
- package/dist/{chunk-MJ5TGYVG.js → chunk-2D3MYIIF.js} +969 -153
- package/dist/{chunk-2B37XAFQ.cjs → chunk-3U2NU7YC.cjs} +24 -11
- package/dist/{chunk-NEIUQASE.cjs → chunk-4QKB4ARC.cjs} +3 -3
- package/dist/{chunk-GBQ33SIZ.cjs → chunk-54FLQNUM.cjs} +12 -1
- package/dist/{chunk-2DDULZFM.js → chunk-5HIVIV53.js} +86 -75
- package/dist/chunk-5MFVJM76.js +1222 -0
- package/dist/{chunk-EWYADREB.cjs → chunk-672KMMBK.cjs} +2 -2
- package/dist/{chunk-KXJDRQ6G.js → chunk-6A2FGSUS.js} +22 -2
- package/dist/{chunk-OIX4O6UR.js → chunk-6OLN6BMB.js} +16 -3
- package/dist/{chunk-6FSHT5IL.js → chunk-7EZIANC7.js} +1 -1
- package/dist/chunk-A5SXCA62.cjs +93 -0
- package/dist/chunk-AC6ZEXVR.js +85 -0
- package/dist/{chunk-FWBRQWRX.js → chunk-AE5Q6ZAJ.js} +167 -10
- package/dist/{chunk-7ILGCUI6.js → chunk-C4F5KJTI.js} +142 -3
- package/dist/{chunk-WXXNCHUY.js → chunk-G5H32GIG.js} +1 -1
- package/dist/{chunk-OMY3CKUZ.cjs → chunk-GEQDGUGB.cjs} +1042 -226
- package/dist/{chunk-25BKWR2O.js → chunk-HCM7ZC7Q.js} +1 -1
- package/dist/{chunk-I47EENR4.cjs → chunk-HMZUGSMU.cjs} +673 -156
- package/dist/{chunk-NXFBVDOI.cjs → chunk-IQPXHQQQ.cjs} +8 -4
- package/dist/{chunk-RUQIMTN5.cjs → chunk-ISOIA7NV.cjs} +178 -15
- package/dist/chunk-JSC75O5C.cjs +167 -0
- package/dist/{chunk-BD7ZPG53.js → chunk-NWQ5WRLE.js} +10 -2
- package/dist/chunk-ODZ2IAR2.cjs +1247 -0
- package/dist/{chunk-FQSJI5NV.js → chunk-SR7TR5KX.js} +6 -2
- package/dist/{chunk-OKX3FYIM.cjs → chunk-TCTE7DX5.cjs} +3 -3
- package/dist/{chunk-3FIDHONL.cjs → chunk-TYF56RGB.cjs} +99 -80
- package/dist/{chunk-J3PYFGKA.cjs → chunk-VA4OFR72.cjs} +162 -4
- package/dist/chunk-VU5S5A7V.js +150 -0
- package/dist/{chunk-A36CCOWS.js → chunk-YEHR4NNE.js} +633 -128
- package/dist/{chunk-ELL2RBML.cjs → chunk-ZCGKGDCL.cjs} +23 -1
- package/dist/codegen/index.d.cts +2 -2
- package/dist/codegen/index.d.ts +2 -2
- package/dist/{collect-BTHjQaSp.d.ts → collect-6NIEufHd.d.ts} +20 -3
- package/dist/{collect-CSyOg5XC.d.cts → collect-CcTCKqx6.d.cts} +20 -3
- package/dist/{file-cgL9l9l8.d.cts → file-BxYpwjRQ.d.cts} +250 -15
- package/dist/{file-olQudcx5.d.ts → file-CFdPQJI9.d.ts} +250 -15
- package/dist/history/index.cjs +283 -106
- package/dist/history/index.d.cts +549 -10
- package/dist/history/index.d.ts +549 -10
- package/dist/history/index.js +5 -4
- package/dist/index.cjs +146 -53
- package/dist/index.d.cts +38 -14
- package/dist/index.d.ts +38 -14
- package/dist/index.js +6 -5
- package/dist/interceptors-CNcr2dlk.d.ts +159 -0
- package/dist/interceptors-CqkNZVfI.d.cts +159 -0
- package/dist/ir/index.cjs +339 -36
- package/dist/ir/index.d.cts +244 -8
- package/dist/ir/index.d.ts +244 -8
- package/dist/ir/index.js +306 -21
- package/dist/{lower-3S6PsqjJ.d.cts → lower-BtRfIW2A.d.cts} +23 -9
- package/dist/{lower-DmZpQ8hJ.d.ts → lower-CpsMFOFX.d.ts} +23 -9
- package/dist/{manifest-BJjrQt77.d.ts → manifest-D-I_twys.d.ts} +1 -1
- package/dist/{manifest-gRI2Q5Fj.d.cts → manifest-DahBQVM8.d.cts} +1 -1
- package/dist/node-evaluator-DGQDPSPI.cjs +24 -0
- package/dist/node-evaluator-LEEVD7H7.js +14 -0
- package/dist/payload-fields-BVRQn2yH.d.cts +122 -0
- package/dist/payload-fields-oOBWxDiG.d.ts +122 -0
- package/dist/quickjs/index.cjs +27 -27
- package/dist/quickjs/index.d.cts +6 -6
- package/dist/quickjs/index.d.ts +6 -6
- package/dist/quickjs/index.js +9 -9
- package/dist/roundtrip/index.cjs +72 -66
- package/dist/roundtrip/index.d.cts +25 -11
- package/dist/roundtrip/index.d.ts +25 -11
- package/dist/roundtrip/index.js +13 -11
- package/dist/runtime/index.cjs +19 -19
- package/dist/runtime/index.d.cts +139 -12
- package/dist/runtime/index.d.ts +139 -12
- package/dist/runtime/index.js +6 -6
- package/dist/testing/index.cjs +688 -121
- package/dist/testing/index.d.cts +174 -10
- package/dist/testing/index.d.ts +174 -10
- package/dist/testing/index.js +646 -82
- package/dist/{types-CnIOinoz.d.ts → types-Bv2i4cBX.d.cts} +126 -23
- package/dist/{types-CQKOhPTa.d.cts → types-DGx-b9eq.d.ts} +126 -23
- package/dist/{types-Bb2wRnJ5.d.cts → types-V7jEEUaL.d.cts} +1 -1
- package/dist/{types-Bb2wRnJ5.d.ts → types-V7jEEUaL.d.ts} +1 -1
- package/dist/{workflow-8uRU9rhL.d.ts → workflow-B18OeF7g.d.ts} +2 -2
- package/dist/{workflow-DWTPHFbt.d.ts → workflow-BGnv8SS6.d.ts} +261 -14
- package/dist/{workflow-CZOXUlQ5.d.cts → workflow-BJPFv3cp.d.cts} +2 -2
- package/dist/{workflow-O6e64ZcG.d.cts → workflow-DS32Gtws.d.cts} +261 -14
- package/fixtures/histories/activity-options-updated.history.json +159 -0
- package/fixtures/histories/activity-paused-unpaused.history.json +160 -0
- package/fixtures/histories/codec-opaque.history.json +229 -0
- package/fixtures/histories/dynamic-workflow.history.json +150 -0
- package/fixtures/histories/interceptor-headers.history.json +339 -0
- package/fixtures/histories/query-custom.history.json +213 -0
- package/fixtures/histories/query-default-handler.history.json +120 -0
- package/fixtures/histories/reset-forked-reapplied-signals.history.json +239 -0
- package/fixtures/histories/reset-reapplied-update-admitted.history.json +228 -0
- package/fixtures/histories/search-attributes-upserted.history.json +177 -0
- package/fixtures/histories/update-accepted-completed.history.json +45 -30
- package/fixtures/histories/update-default-handler.history.json +246 -0
- package/fixtures/histories/update-handler-awaits-activity.history.json +196 -0
- package/fixtures/histories/update-not-handled.history.json +138 -0
- package/fixtures/histories/update-rejected-no-event.history.json +190 -0
- package/fixtures/histories/update-with-start-admitted.history.json +150 -0
- package/fixtures/histories/user-activity-cancel.history.json +149 -0
- package/fixtures/histories/user-activity-retry.history.json +143 -0
- package/fixtures/histories/user-activity.history.json +149 -0
- package/package.json +1 -1
- package/schema/bridge-v2.schema.json +1062 -0
- package/schema/history-file.schema.json +255 -81
- package/schema/ir-v2.schema.json +246 -1
- package/schema/payload-fields.json +162 -0
- package/schema/run-event.schema.json +239 -80
- package/schema/workflow-command.schema.json +210 -84
- package/schema/workflow-task.schema.json +532 -167
- package/dist/chunk-6QPOJZT6.cjs +0 -1180
- package/dist/chunk-A2OHX3UQ.js +0 -1156
- package/dist/chunk-PWIUEWC3.js +0 -81
- package/dist/chunk-YHBVMOMK.cjs +0 -87
- package/dist/node-evaluator-SOADN23V.js +0 -14
- package/dist/node-evaluator-YGDEXK4U.cjs +0 -24
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkIQPXHQQQ_cjs = require('./chunk-IQPXHQQQ.cjs');
|
|
4
4
|
var chunkGVTZMA5C_cjs = require('./chunk-GVTZMA5C.cjs');
|
|
5
5
|
var chunkSAENRNBJ_cjs = require('./chunk-SAENRNBJ.cjs');
|
|
6
|
-
var
|
|
6
|
+
var chunkVA4OFR72_cjs = require('./chunk-VA4OFR72.cjs');
|
|
7
7
|
|
|
8
8
|
// src/builder/collect.ts
|
|
9
9
|
var COLLECTION_FORMAT = "fluidgrids.tier1-collection";
|
|
10
10
|
function configDuration(value) {
|
|
11
|
-
return typeof value === "string" ? value :
|
|
11
|
+
return typeof value === "string" ? value : chunkVA4OFR72_cjs.toMs(value) / 1e3;
|
|
12
12
|
}
|
|
13
13
|
function runSettingsOf(options) {
|
|
14
14
|
const config = {};
|
|
15
15
|
const features = [];
|
|
16
|
-
if (options.runTimeout !== void 0) config.timeout =
|
|
16
|
+
if (options.runTimeout !== void 0) config.timeout = chunkVA4OFR72_cjs.toMs(options.runTimeout) / 1e3;
|
|
17
17
|
if (options.executionTimeout !== void 0)
|
|
18
18
|
config.executionTimeout = configDuration(options.executionTimeout);
|
|
19
19
|
if (options.workflowTaskTimeout !== void 0)
|
|
@@ -42,13 +42,13 @@ function runSettingsOf(options) {
|
|
|
42
42
|
}
|
|
43
43
|
function triggerOf(spec, where) {
|
|
44
44
|
if (spec === void 0) return void 0;
|
|
45
|
-
const operation =
|
|
46
|
-
if (!
|
|
45
|
+
const operation = chunkIQPXHQQQ_cjs.isOperation(spec) ? spec : chunkSAENRNBJ_cjs.isRecord(spec) ? spec.operation : void 0;
|
|
46
|
+
if (!chunkIQPXHQQQ_cjs.isOperation(operation))
|
|
47
47
|
throw new chunkGVTZMA5C_cjs.BuilderError(`${where}: trigger must be a trigger operation`);
|
|
48
48
|
const out = { nodeType: operation.nodeType };
|
|
49
49
|
if (operation.version !== void 0) out.version = operation.version;
|
|
50
50
|
if (operation.operation !== void 0) out.operation = operation.operation;
|
|
51
|
-
if (!
|
|
51
|
+
if (!chunkIQPXHQQQ_cjs.isOperation(spec)) {
|
|
52
52
|
if (spec.args !== void 0) out.args = spec.args;
|
|
53
53
|
if (spec.id !== void 0) out.id = spec.id;
|
|
54
54
|
}
|
|
@@ -57,10 +57,17 @@ function triggerOf(spec, where) {
|
|
|
57
57
|
function collectWorkflowExports(modules) {
|
|
58
58
|
const exportNames = /* @__PURE__ */ new Map();
|
|
59
59
|
const durable = [];
|
|
60
|
+
const implementations = [];
|
|
61
|
+
const interceptorModules = [];
|
|
60
62
|
for (const [module, namespace] of modules) {
|
|
63
|
+
if (Object.hasOwn(namespace, "interceptors")) interceptorModules.push(module);
|
|
61
64
|
for (const exportName of Object.keys(namespace).sort()) {
|
|
62
65
|
const value = namespace[exportName];
|
|
63
|
-
if (
|
|
66
|
+
if (chunkVA4OFR72_cjs.isActivityImplementation(value)) {
|
|
67
|
+
implementations.push({ module, exportName, name: value.name });
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (!chunkVA4OFR72_cjs.isDurableWorkflow(value) || exportNames.has(value)) continue;
|
|
64
71
|
exportNames.set(value, exportName);
|
|
65
72
|
const options = value.options;
|
|
66
73
|
const entry = {
|
|
@@ -68,7 +75,7 @@ function collectWorkflowExports(modules) {
|
|
|
68
75
|
exportName,
|
|
69
76
|
name: value.name,
|
|
70
77
|
taskQueue: options.taskQueue ?? "managed",
|
|
71
|
-
interface:
|
|
78
|
+
interface: chunkVA4OFR72_cjs.interfaceOf(value)
|
|
72
79
|
};
|
|
73
80
|
if (options.title !== void 0) entry.title = options.title;
|
|
74
81
|
if (options.description !== void 0) entry.description = options.description;
|
|
@@ -76,6 +83,10 @@ function collectWorkflowExports(modules) {
|
|
|
76
83
|
const trigger = triggerOf(options.trigger, `workflow("${value.name}")`);
|
|
77
84
|
if (trigger) entry.trigger = trigger;
|
|
78
85
|
const settings = runSettingsOf(options);
|
|
86
|
+
if (value.dynamic === true) {
|
|
87
|
+
entry.dynamic = true;
|
|
88
|
+
settings.features.push("dynamic");
|
|
89
|
+
}
|
|
79
90
|
if (Object.keys(settings.config).length > 0) entry.config = settings.config;
|
|
80
91
|
if (settings.features.length > 0) entry.features = settings.features;
|
|
81
92
|
durable.push(entry);
|
|
@@ -85,7 +96,7 @@ function collectWorkflowExports(modules) {
|
|
|
85
96
|
for (const [module, namespace] of modules) {
|
|
86
97
|
for (const exportName of Object.keys(namespace).sort()) {
|
|
87
98
|
const value = namespace[exportName];
|
|
88
|
-
if (!
|
|
99
|
+
if (!chunkIQPXHQQQ_cjs.isTier1Workflow(value)) continue;
|
|
89
100
|
for (const ref of value.durableRefs ?? []) {
|
|
90
101
|
const resolved = exportNames.get(ref.definition);
|
|
91
102
|
if (resolved === void 0)
|
|
@@ -102,7 +113,9 @@ function collectWorkflowExports(modules) {
|
|
|
102
113
|
const collection = {
|
|
103
114
|
format: COLLECTION_FORMAT,
|
|
104
115
|
workflows,
|
|
105
|
-
...durable.length > 0 ? { durable } : {}
|
|
116
|
+
...durable.length > 0 ? { durable } : {},
|
|
117
|
+
...implementations.length > 0 ? { activityImplementations: implementations } : {},
|
|
118
|
+
...interceptorModules.length > 0 ? { interceptorModules } : {}
|
|
106
119
|
};
|
|
107
120
|
return JSON.stringify(collection);
|
|
108
121
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk54FLQNUM_cjs = require('./chunk-54FLQNUM.cjs');
|
|
4
4
|
var chunkSAENRNBJ_cjs = require('./chunk-SAENRNBJ.cjs');
|
|
5
5
|
|
|
6
6
|
// src/ir/diff.ts
|
|
@@ -53,8 +53,8 @@ function diffCollection(before, after, path, out) {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
function diffDefinitions(before, after) {
|
|
56
|
-
const left =
|
|
57
|
-
const right =
|
|
56
|
+
const left = chunk54FLQNUM_cjs.hashedProjection(before);
|
|
57
|
+
const right = chunk54FLQNUM_cjs.hashedProjection(after);
|
|
58
58
|
const out = [];
|
|
59
59
|
if (!chunkSAENRNBJ_cjs.isRecord(left) || !chunkSAENRNBJ_cjs.isRecord(right)) {
|
|
60
60
|
diffValues(left, right, "", out);
|
|
@@ -49,9 +49,17 @@ var EXECUTOR_INTERNAL_TYPES = /* @__PURE__ */ new Set([
|
|
|
49
49
|
]);
|
|
50
50
|
var CODE_WORKFLOW_NODE_TYPE = "internal:code-workflow";
|
|
51
51
|
var WAIT_FOR_SIGNAL_NODE_TYPE = "internal:wait-for-signal";
|
|
52
|
+
var SIGNAL_RUN_NODE_TYPE = "internal:signal-run";
|
|
53
|
+
var SET_SEARCH_ATTRIBUTES_NODE_TYPE = "internal:set-search-attributes";
|
|
52
54
|
var V2_NODE_TYPES = /* @__PURE__ */ new Set([
|
|
53
55
|
CODE_WORKFLOW_NODE_TYPE,
|
|
54
|
-
WAIT_FOR_SIGNAL_NODE_TYPE
|
|
56
|
+
WAIT_FOR_SIGNAL_NODE_TYPE,
|
|
57
|
+
SIGNAL_RUN_NODE_TYPE,
|
|
58
|
+
SET_SEARCH_ATTRIBUTES_NODE_TYPE
|
|
59
|
+
]);
|
|
60
|
+
var PHASE_C_NODE_TYPES = /* @__PURE__ */ new Set([
|
|
61
|
+
SIGNAL_RUN_NODE_TYPE,
|
|
62
|
+
SET_SEARCH_ATTRIBUTES_NODE_TYPE
|
|
55
63
|
]);
|
|
56
64
|
var INTERNAL_TRIGGER_TYPES = /* @__PURE__ */ new Set([
|
|
57
65
|
"internal:api",
|
|
@@ -264,6 +272,9 @@ function buildIdOf(bundle) {
|
|
|
264
272
|
|
|
265
273
|
exports.CODE_WORKFLOW_NODE_TYPE = CODE_WORKFLOW_NODE_TYPE;
|
|
266
274
|
exports.INTERNAL_TRIGGER_TYPES = INTERNAL_TRIGGER_TYPES;
|
|
275
|
+
exports.PHASE_C_NODE_TYPES = PHASE_C_NODE_TYPES;
|
|
276
|
+
exports.SET_SEARCH_ATTRIBUTES_NODE_TYPE = SET_SEARCH_ATTRIBUTES_NODE_TYPE;
|
|
277
|
+
exports.SIGNAL_RUN_NODE_TYPE = SIGNAL_RUN_NODE_TYPE;
|
|
267
278
|
exports.V2_NODE_TYPES = V2_NODE_TYPES;
|
|
268
279
|
exports.WAIT_FOR_SIGNAL_NODE_TYPE = WAIT_FOR_SIGNAL_NODE_TYPE;
|
|
269
280
|
exports.buildIdOf = buildIdOf;
|
|
@@ -1,84 +1,87 @@
|
|
|
1
|
-
// src/history/
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
]);
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
external: "allowed"
|
|
27
|
-
};
|
|
28
|
-
var LEGACY_SHORT_NAMES = /* @__PURE__ */ new Set([
|
|
29
|
-
"if",
|
|
30
|
-
"switch",
|
|
31
|
-
"loop",
|
|
32
|
-
"merge",
|
|
33
|
-
"set",
|
|
34
|
-
"filter",
|
|
35
|
-
"aggregate",
|
|
36
|
-
"wait",
|
|
37
|
-
"noop",
|
|
38
|
-
"code",
|
|
39
|
-
"http",
|
|
40
|
-
"transform",
|
|
41
|
-
"validate",
|
|
42
|
-
"log",
|
|
43
|
-
"error",
|
|
44
|
-
"subworkflow",
|
|
45
|
-
"end",
|
|
46
|
-
"trigger",
|
|
47
|
-
"webhook",
|
|
48
|
-
"schedule",
|
|
49
|
-
"manual",
|
|
50
|
-
"api"
|
|
51
|
-
]);
|
|
52
|
-
function canonicalType(nodeType) {
|
|
53
|
-
const lower = nodeType.trim().toLowerCase();
|
|
54
|
-
return LEGACY_SHORT_NAMES.has(lower) ? `internal:${lower}` : lower;
|
|
1
|
+
// src/history/retry.ts
|
|
2
|
+
var DEFAULT_ACTIVITY_RETRY = Object.freeze({
|
|
3
|
+
retryDelay: 1e3,
|
|
4
|
+
backoffMultiplier: 2,
|
|
5
|
+
maxDelay: 1e5
|
|
6
|
+
});
|
|
7
|
+
var FINAL_TIMEOUTS = /* @__PURE__ */ new Set(["SCHEDULE_TO_START", "SCHEDULE_TO_CLOSE"]);
|
|
8
|
+
function computeRetryDelay(policy, attempt, failure) {
|
|
9
|
+
if (failure?.nonRetryable === true) return { retry: false, reason: "nonRetryable" };
|
|
10
|
+
if (failure?.timeoutType !== void 0 && FINAL_TIMEOUTS.has(failure.timeoutType))
|
|
11
|
+
return { retry: false, reason: "finalTimeout" };
|
|
12
|
+
if (failure?.type !== void 0 && policy.nonRetryableErrorTypes !== void 0 && policy.nonRetryableErrorTypes.includes(failure.type))
|
|
13
|
+
return { retry: false, reason: "typeDenied" };
|
|
14
|
+
if (failure !== void 0 && policy.retryOnErrorTypes !== void 0 && policy.retryOnErrorTypes.length > 0 && !policy.retryOnErrorTypes.includes(failure.errorType))
|
|
15
|
+
return { retry: false, reason: "errorTypeNotListed" };
|
|
16
|
+
if (policy.maxRetries !== void 0 && attempt > policy.maxRetries)
|
|
17
|
+
return { retry: false, reason: "maxRetries" };
|
|
18
|
+
if (failure?.nextRetryDelayMs !== void 0)
|
|
19
|
+
return { retry: true, delayMs: Math.max(0, Math.round(failure.nextRetryDelayMs)) };
|
|
20
|
+
const base = Math.max(0, policy.retryDelay);
|
|
21
|
+
const multiplier = policy.backoffMultiplier ?? 2;
|
|
22
|
+
const cap = policy.maxDelay ?? base * 100;
|
|
23
|
+
const exponent = Math.max(0, attempt - 1);
|
|
24
|
+
const delay = Math.min(base * Math.pow(multiplier, exponent), cap);
|
|
25
|
+
return { retry: true, delayMs: Math.round(Number.isFinite(delay) ? delay : cap) };
|
|
55
26
|
}
|
|
56
|
-
function
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
27
|
+
function explicitRetryPolicy(policy) {
|
|
28
|
+
const retryDelay = policy?.retryDelay ?? DEFAULT_ACTIVITY_RETRY.retryDelay;
|
|
29
|
+
const out = {
|
|
30
|
+
retryDelay,
|
|
31
|
+
backoffMultiplier: policy?.backoffMultiplier ?? DEFAULT_ACTIVITY_RETRY.backoffMultiplier ?? 2,
|
|
32
|
+
maxDelay: policy?.maxDelay ?? (policy?.retryDelay === void 0 ? 1e5 : Math.max(retryDelay, retryDelay * 100))
|
|
33
|
+
};
|
|
34
|
+
if (policy?.maxRetries !== void 0) out.maxRetries = policy.maxRetries;
|
|
35
|
+
if (policy?.retryOnErrorTypes !== void 0)
|
|
36
|
+
out.retryOnErrorTypes = [...policy.retryOnErrorTypes];
|
|
37
|
+
if (policy?.nonRetryableErrorTypes !== void 0)
|
|
38
|
+
out.nonRetryableErrorTypes = [...policy.nonRetryableErrorTypes];
|
|
39
|
+
return out;
|
|
61
40
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
41
|
+
function computeRunRetryDelay(policy, attempt, failure) {
|
|
42
|
+
if (policy === void 0) return { retry: false, reason: "noPolicy" };
|
|
43
|
+
if (failure.timeoutType === "WORKFLOW_EXECUTION")
|
|
44
|
+
return { retry: false, reason: "executionTimeout" };
|
|
45
|
+
if (policy.maxAttempts !== void 0 && attempt >= policy.maxAttempts)
|
|
46
|
+
return { retry: false, reason: "maxAttempts" };
|
|
47
|
+
const activityPolicy = {
|
|
48
|
+
retryDelay: policy.initialDelayMs,
|
|
49
|
+
...policy.backoffMultiplier !== void 0 ? { backoffMultiplier: policy.backoffMultiplier } : {},
|
|
50
|
+
...policy.maxDelayMs !== void 0 ? { maxDelay: policy.maxDelayMs } : {},
|
|
51
|
+
...policy.retryOnErrorTypes !== void 0 ? { retryOnErrorTypes: policy.retryOnErrorTypes } : {},
|
|
52
|
+
...policy.nonRetryableErrorTypes !== void 0 ? { nonRetryableErrorTypes: policy.nonRetryableErrorTypes } : {}
|
|
53
|
+
};
|
|
54
|
+
const classified = { ...failure };
|
|
55
|
+
if (classified.timeoutType === "WORKFLOW_RUN") delete classified.timeoutType;
|
|
56
|
+
const decision = computeRetryDelay(activityPolicy, attempt, classified);
|
|
57
|
+
if (decision.retry) return decision;
|
|
58
|
+
switch (decision.reason) {
|
|
59
|
+
case "nonRetryable":
|
|
60
|
+
case "typeDenied":
|
|
61
|
+
case "errorTypeNotListed":
|
|
62
|
+
return { retry: false, reason: decision.reason };
|
|
63
|
+
default:
|
|
64
|
+
return { retry: false, reason: "maxAttempts" };
|
|
69
65
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
66
|
+
}
|
|
67
|
+
function explicitRunRetryPolicy(policy) {
|
|
68
|
+
const initialDelayMs = policy.initialDelayMs ?? DEFAULT_ACTIVITY_RETRY.retryDelay;
|
|
69
|
+
const out = {
|
|
70
|
+
initialDelayMs,
|
|
71
|
+
backoffMultiplier: policy.backoffMultiplier ?? 2,
|
|
72
|
+
maxDelayMs: policy.maxDelayMs ?? (policy.initialDelayMs === void 0 ? 1e5 : Math.max(initialDelayMs, initialDelayMs * 100))
|
|
73
|
+
};
|
|
74
|
+
if (policy.maxAttempts !== void 0) out.maxAttempts = policy.maxAttempts;
|
|
75
|
+
if (policy.retryOnErrorTypes !== void 0) out.retryOnErrorTypes = [...policy.retryOnErrorTypes];
|
|
76
|
+
if (policy.nonRetryableErrorTypes !== void 0)
|
|
77
|
+
out.nonRetryableErrorTypes = [...policy.nonRetryableErrorTypes];
|
|
78
|
+
return out;
|
|
77
79
|
}
|
|
78
80
|
|
|
79
81
|
// src/history/types.ts
|
|
80
82
|
var HISTORY_PROTOCOL = 1;
|
|
81
|
-
var RUNTIME_RELEASE =
|
|
83
|
+
var RUNTIME_RELEASE = 3;
|
|
84
|
+
var RUNTIME_CAPABILITIES = ["updates", "queries", "dynamic"];
|
|
82
85
|
var EVENT_TYPES = [
|
|
83
86
|
"WORKFLOW_STARTED",
|
|
84
87
|
"WORKFLOW_TASK_SCHEDULED",
|
|
@@ -230,6 +233,14 @@ var WORKFLOW_ID_CONFLICT_POLICIES = [
|
|
|
230
233
|
];
|
|
231
234
|
var VERSIONING_BEHAVIORS = ["PINNED", "AUTO_UPGRADE"];
|
|
232
235
|
var WORKFLOW_TIMEOUT_TYPES = ["WORKFLOW_RUN", "WORKFLOW_EXECUTION"];
|
|
236
|
+
var FAIRNESS_KEY_MAX_LENGTH = 255;
|
|
237
|
+
var FAIRNESS_WEIGHT_MIN = 0.1;
|
|
238
|
+
var FAIRNESS_WEIGHT_MAX = 10;
|
|
239
|
+
var ACTIVITY_NAME_PATTERN = "^[A-Za-z_][A-Za-z0-9_.-]{0,127}$";
|
|
240
|
+
var TASK_QUEUE_NAME_PATTERN = "^[a-z0-9][a-z0-9-]{0,62}$";
|
|
241
|
+
var MAX_ACTIVITY_CONNECTIONS = 16;
|
|
242
|
+
var MAX_HEADERS_BYTES = 16 * 1024;
|
|
243
|
+
var MAX_SINK_CALLS = 256;
|
|
233
244
|
var DEFAULT_HISTORY_LIMIT = { events: 1e4, bytes: 16 * 1024 * 1024 };
|
|
234
245
|
var CONTINUE_AS_NEW_SUGGESTED_RATIO = 0.8;
|
|
235
246
|
var HISTORY_LIMIT_EXCEEDED_RATIO = 0.95;
|
|
@@ -316,4 +327,4 @@ function isCommandEvent(event) {
|
|
|
316
327
|
return COMMAND_EVENTS.has(event.type);
|
|
317
328
|
}
|
|
318
329
|
|
|
319
|
-
export { ACTIVITY_CANCELLATION_TYPES,
|
|
330
|
+
export { ACTIVITY_CANCELLATION_TYPES, ACTIVITY_NAME_PATTERN, BUILT_IN_QUERIES, CHILD_CANCELLATION_TYPES, COMMAND_EVENTS, COMMAND_EVENT_TYPES, COMMAND_TYPES, CONTINUE_AS_NEW_SUGGESTED_RATIO, DEFAULT_ACTIVITY_RETRY, DEFAULT_HISTORY_LIMIT, ERROR_TYPES, EVENT_TYPES, EXECUTION_KINDS, FAIRNESS_KEY_MAX_LENGTH, FAIRNESS_WEIGHT_MAX, FAIRNESS_WEIGHT_MIN, HISTORY_LIMIT_EXCEEDED_RATIO, HISTORY_PROTOCOL, INPUT_EVENTS, LOCAL_ACTIVITY_MAX_TIMEOUT_MS, MAX_ACTIVITY_CONNECTIONS, MAX_HEADERS_BYTES, MAX_SINK_CALLS, PARENT_CLOSE_POLICIES, PHASE_B_CORE_COMMANDS, PHASE_B_PARITY_COMMANDS, PHASE_C_COMMANDS, RUNTIME_CAPABILITIES, RUNTIME_RELEASE, TASK_FAILURE_CAUSES, TASK_QUEUE_NAME_PATTERN, TERMINAL_COMMANDS, TERMINAL_EVENTS, VERSIONING_BEHAVIORS, WORKFLOW_ID_CONFLICT_POLICIES, WORKFLOW_ID_REUSE_POLICIES, WORKFLOW_TIMEOUT_TYPES, computeRetryDelay, computeRunRetryDelay, explicitRetryPolicy, explicitRunRetryPolicy, isCommandEvent, isInputEvent };
|