@hotmeshio/hotmesh 0.4.0 → 0.4.2
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 +39 -14
- package/build/modules/enums.d.ts +110 -0
- package/build/modules/enums.js +134 -0
- package/build/modules/errors.d.ts +124 -0
- package/build/modules/errors.js +191 -0
- package/build/modules/key.d.ts +66 -0
- package/build/modules/key.js +190 -0
- package/build/modules/storage.d.ts +3 -0
- package/build/modules/storage.js +5 -0
- package/build/modules/utils.d.ts +119 -0
- package/build/modules/utils.js +374 -0
- package/build/package.json +1 -1
- package/build/services/activities/activity.d.ts +104 -0
- package/build/services/activities/activity.js +549 -0
- package/build/services/activities/await.d.ts +12 -0
- package/build/services/activities/await.js +114 -0
- package/build/services/activities/cycle.d.ts +19 -0
- package/build/services/activities/cycle.js +112 -0
- package/build/services/activities/hook.d.ts +27 -0
- package/build/services/activities/hook.js +168 -0
- package/build/services/activities/index.d.ts +19 -0
- package/build/services/activities/index.js +20 -0
- package/build/services/activities/interrupt.d.ts +16 -0
- package/build/services/activities/interrupt.js +158 -0
- package/build/services/activities/signal.d.ts +20 -0
- package/build/services/activities/signal.js +134 -0
- package/build/services/activities/trigger.d.ts +37 -0
- package/build/services/activities/trigger.js +246 -0
- package/build/services/activities/worker.d.ts +12 -0
- package/build/services/activities/worker.js +106 -0
- package/build/services/collator/index.d.ts +111 -0
- package/build/services/collator/index.js +293 -0
- package/build/services/compiler/deployer.d.ts +40 -0
- package/build/services/compiler/deployer.js +488 -0
- package/build/services/compiler/index.d.ts +32 -0
- package/build/services/compiler/index.js +112 -0
- package/build/services/compiler/validator.d.ts +34 -0
- package/build/services/compiler/validator.js +147 -0
- package/build/services/connector/factory.d.ts +22 -0
- package/build/services/connector/factory.js +99 -0
- package/build/services/connector/index.d.ts +30 -0
- package/build/services/connector/index.js +54 -0
- package/build/services/connector/providers/ioredis.d.ts +9 -0
- package/build/services/connector/providers/ioredis.js +26 -0
- package/build/services/connector/providers/nats.d.ts +9 -0
- package/build/services/connector/providers/nats.js +34 -0
- package/build/services/connector/providers/postgres.d.ts +20 -0
- package/build/services/connector/providers/postgres.js +102 -0
- package/build/services/connector/providers/redis.d.ts +9 -0
- package/build/services/connector/providers/redis.js +38 -0
- package/build/services/engine/index.d.ts +264 -0
- package/build/services/engine/index.js +761 -0
- package/build/services/exporter/index.d.ts +44 -0
- package/build/services/exporter/index.js +126 -0
- package/build/services/hotmesh/index.d.ts +483 -0
- package/build/services/hotmesh/index.js +622 -0
- package/build/services/logger/index.d.ts +16 -0
- package/build/services/logger/index.js +54 -0
- package/build/services/mapper/index.d.ts +28 -0
- package/build/services/mapper/index.js +81 -0
- package/build/services/memflow/client.d.ts +108 -0
- package/build/services/memflow/client.js +372 -0
- package/build/services/memflow/connection.d.ts +23 -0
- package/build/services/memflow/connection.js +33 -0
- package/build/services/memflow/context.d.ts +143 -0
- package/build/services/memflow/context.js +299 -0
- package/build/services/memflow/exporter.d.ts +51 -0
- package/build/services/memflow/exporter.js +215 -0
- package/build/services/memflow/handle.d.ts +90 -0
- package/build/services/memflow/handle.js +176 -0
- package/build/services/memflow/index.d.ts +116 -0
- package/build/services/memflow/index.js +122 -0
- package/build/services/memflow/schemas/factory.d.ts +29 -0
- package/build/services/memflow/schemas/factory.js +2492 -0
- package/build/services/memflow/search.d.ts +142 -0
- package/build/services/memflow/search.js +320 -0
- package/build/services/memflow/worker.d.ts +124 -0
- package/build/services/memflow/worker.js +514 -0
- package/build/services/memflow/workflow/all.d.ts +7 -0
- package/build/services/memflow/workflow/all.js +15 -0
- package/build/services/memflow/workflow/common.d.ts +20 -0
- package/build/services/memflow/workflow/common.js +47 -0
- package/build/services/memflow/workflow/context.d.ts +6 -0
- package/build/services/memflow/workflow/context.js +45 -0
- package/build/services/memflow/workflow/contextMethods.d.ts +14 -0
- package/build/services/memflow/workflow/contextMethods.js +33 -0
- package/build/services/memflow/workflow/didRun.d.ts +7 -0
- package/build/services/memflow/workflow/didRun.js +22 -0
- package/build/services/memflow/workflow/emit.d.ts +11 -0
- package/build/services/memflow/workflow/emit.js +29 -0
- package/build/services/memflow/workflow/enrich.d.ts +9 -0
- package/build/services/memflow/workflow/enrich.js +17 -0
- package/build/services/memflow/workflow/execChild.d.ts +18 -0
- package/build/services/memflow/workflow/execChild.js +102 -0
- package/build/services/memflow/workflow/execHook.d.ts +65 -0
- package/build/services/memflow/workflow/execHook.js +73 -0
- package/build/services/memflow/workflow/hook.d.ts +9 -0
- package/build/services/memflow/workflow/hook.js +56 -0
- package/build/services/memflow/workflow/index.d.ts +74 -0
- package/build/services/memflow/workflow/index.js +87 -0
- package/build/services/memflow/workflow/interrupt.d.ts +9 -0
- package/build/services/memflow/workflow/interrupt.js +24 -0
- package/build/services/memflow/workflow/isSideEffectAllowed.d.ts +10 -0
- package/build/services/memflow/workflow/isSideEffectAllowed.js +33 -0
- package/build/services/memflow/workflow/proxyActivities.d.ts +20 -0
- package/build/services/memflow/workflow/proxyActivities.js +97 -0
- package/build/services/memflow/workflow/random.d.ts +6 -0
- package/build/services/memflow/workflow/random.js +16 -0
- package/build/services/memflow/workflow/searchMethods.d.ts +6 -0
- package/build/services/memflow/workflow/searchMethods.js +25 -0
- package/build/services/memflow/workflow/signal.d.ts +29 -0
- package/build/services/memflow/workflow/signal.js +50 -0
- package/build/services/memflow/workflow/sleepFor.d.ts +24 -0
- package/build/services/memflow/workflow/sleepFor.js +51 -0
- package/build/services/memflow/workflow/trace.d.ts +14 -0
- package/build/services/memflow/workflow/trace.js +33 -0
- package/build/services/memflow/workflow/waitFor.d.ts +29 -0
- package/build/services/memflow/workflow/waitFor.js +56 -0
- package/build/services/meshcall/index.d.ts +194 -0
- package/build/services/meshcall/index.js +452 -0
- package/build/services/meshcall/schemas/factory.d.ts +9 -0
- package/build/services/meshcall/schemas/factory.js +189 -0
- package/build/services/meshdata/index.d.ts +795 -0
- package/build/services/meshdata/index.js +1235 -0
- package/build/services/meshos/index.d.ts +293 -0
- package/build/services/meshos/index.js +547 -0
- package/build/services/pipe/functions/array.d.ts +17 -0
- package/build/services/pipe/functions/array.js +74 -0
- package/build/services/pipe/functions/bitwise.d.ts +9 -0
- package/build/services/pipe/functions/bitwise.js +24 -0
- package/build/services/pipe/functions/conditional.d.ts +13 -0
- package/build/services/pipe/functions/conditional.js +36 -0
- package/build/services/pipe/functions/cron.d.ts +12 -0
- package/build/services/pipe/functions/cron.js +40 -0
- package/build/services/pipe/functions/date.d.ts +58 -0
- package/build/services/pipe/functions/date.js +171 -0
- package/build/services/pipe/functions/index.d.ts +29 -0
- package/build/services/pipe/functions/index.js +30 -0
- package/build/services/pipe/functions/json.d.ts +5 -0
- package/build/services/pipe/functions/json.js +12 -0
- package/build/services/pipe/functions/logical.d.ts +5 -0
- package/build/services/pipe/functions/logical.js +12 -0
- package/build/services/pipe/functions/math.d.ts +42 -0
- package/build/services/pipe/functions/math.js +184 -0
- package/build/services/pipe/functions/number.d.ts +21 -0
- package/build/services/pipe/functions/number.js +60 -0
- package/build/services/pipe/functions/object.d.ts +25 -0
- package/build/services/pipe/functions/object.js +81 -0
- package/build/services/pipe/functions/string.d.ts +23 -0
- package/build/services/pipe/functions/string.js +69 -0
- package/build/services/pipe/functions/symbol.d.ts +12 -0
- package/build/services/pipe/functions/symbol.js +33 -0
- package/build/services/pipe/functions/unary.d.ts +7 -0
- package/build/services/pipe/functions/unary.js +18 -0
- package/build/services/pipe/index.d.ts +48 -0
- package/build/services/pipe/index.js +242 -0
- package/build/services/quorum/index.d.ts +90 -0
- package/build/services/quorum/index.js +263 -0
- package/build/services/reporter/index.d.ts +50 -0
- package/build/services/reporter/index.js +348 -0
- package/build/services/router/config/index.d.ts +11 -0
- package/build/services/router/config/index.js +36 -0
- package/build/services/router/consumption/index.d.ts +34 -0
- package/build/services/router/consumption/index.js +395 -0
- package/build/services/router/error-handling/index.d.ts +8 -0
- package/build/services/router/error-handling/index.js +98 -0
- package/build/services/router/index.d.ts +57 -0
- package/build/services/router/index.js +121 -0
- package/build/services/router/lifecycle/index.d.ts +27 -0
- package/build/services/router/lifecycle/index.js +80 -0
- package/build/services/router/telemetry/index.d.ts +11 -0
- package/build/services/router/telemetry/index.js +32 -0
- package/build/services/router/throttling/index.d.ts +23 -0
- package/build/services/router/throttling/index.js +76 -0
- package/build/services/search/factory.d.ts +7 -0
- package/build/services/search/factory.js +24 -0
- package/build/services/search/index.d.ts +23 -0
- package/build/services/search/index.js +10 -0
- package/build/services/search/providers/postgres/postgres.d.ts +25 -0
- package/build/services/search/providers/postgres/postgres.js +149 -0
- package/build/services/search/providers/redis/ioredis.d.ts +19 -0
- package/build/services/search/providers/redis/ioredis.js +121 -0
- package/build/services/search/providers/redis/redis.d.ts +19 -0
- package/build/services/search/providers/redis/redis.js +134 -0
- package/build/services/serializer/index.d.ts +42 -0
- package/build/services/serializer/index.js +282 -0
- package/build/services/store/cache.d.ts +67 -0
- package/build/services/store/cache.js +128 -0
- package/build/services/store/factory.d.ts +8 -0
- package/build/services/store/factory.js +24 -0
- package/build/services/store/index.d.ts +89 -0
- package/build/services/store/index.js +9 -0
- package/build/services/store/providers/postgres/kvsql.d.ts +168 -0
- package/build/services/store/providers/postgres/kvsql.js +198 -0
- package/build/services/store/providers/postgres/kvtables.d.ts +20 -0
- package/build/services/store/providers/postgres/kvtables.js +441 -0
- package/build/services/store/providers/postgres/kvtransaction.d.ts +36 -0
- package/build/services/store/providers/postgres/kvtransaction.js +248 -0
- package/build/services/store/providers/postgres/kvtypes/hash.d.ts +60 -0
- package/build/services/store/providers/postgres/kvtypes/hash.js +1287 -0
- package/build/services/store/providers/postgres/kvtypes/list.d.ts +33 -0
- package/build/services/store/providers/postgres/kvtypes/list.js +194 -0
- package/build/services/store/providers/postgres/kvtypes/string.d.ts +20 -0
- package/build/services/store/providers/postgres/kvtypes/string.js +115 -0
- package/build/services/store/providers/postgres/kvtypes/zset.d.ts +41 -0
- package/build/services/store/providers/postgres/kvtypes/zset.js +214 -0
- package/build/services/store/providers/postgres/postgres.d.ts +178 -0
- package/build/services/store/providers/postgres/postgres.js +1244 -0
- package/build/services/store/providers/redis/_base.d.ts +137 -0
- package/build/services/store/providers/redis/_base.js +980 -0
- package/build/services/store/providers/redis/ioredis.d.ts +20 -0
- package/build/services/store/providers/redis/ioredis.js +180 -0
- package/build/services/store/providers/redis/redis.d.ts +18 -0
- package/build/services/store/providers/redis/redis.js +199 -0
- package/build/services/store/providers/store-initializable.d.ts +5 -0
- package/build/services/store/providers/store-initializable.js +2 -0
- package/build/services/stream/factory.d.ts +8 -0
- package/build/services/stream/factory.js +37 -0
- package/build/services/stream/index.d.ts +69 -0
- package/build/services/stream/index.js +11 -0
- package/build/services/stream/providers/nats/nats.d.ts +60 -0
- package/build/services/stream/providers/nats/nats.js +225 -0
- package/build/services/stream/providers/postgres/kvtables.d.ts +3 -0
- package/build/services/stream/providers/postgres/kvtables.js +146 -0
- package/build/services/stream/providers/postgres/postgres.d.ts +107 -0
- package/build/services/stream/providers/postgres/postgres.js +519 -0
- package/build/services/stream/providers/redis/ioredis.d.ts +61 -0
- package/build/services/stream/providers/redis/ioredis.js +272 -0
- package/build/services/stream/providers/redis/redis.d.ts +61 -0
- package/build/services/stream/providers/redis/redis.js +305 -0
- package/build/services/stream/providers/stream-initializable.d.ts +4 -0
- package/build/services/stream/providers/stream-initializable.js +2 -0
- package/build/services/sub/factory.d.ts +7 -0
- package/build/services/sub/factory.js +29 -0
- package/build/services/sub/index.d.ts +22 -0
- package/build/services/sub/index.js +10 -0
- package/build/services/sub/providers/nats/nats.d.ts +19 -0
- package/build/services/sub/providers/nats/nats.js +105 -0
- package/build/services/sub/providers/postgres/postgres.d.ts +19 -0
- package/build/services/sub/providers/postgres/postgres.js +92 -0
- package/build/services/sub/providers/redis/ioredis.d.ts +17 -0
- package/build/services/sub/providers/redis/ioredis.js +81 -0
- package/build/services/sub/providers/redis/redis.d.ts +17 -0
- package/build/services/sub/providers/redis/redis.js +72 -0
- package/build/services/task/index.d.ts +48 -0
- package/build/services/task/index.js +253 -0
- package/build/services/telemetry/index.d.ts +52 -0
- package/build/services/telemetry/index.js +306 -0
- package/build/services/worker/index.d.ts +77 -0
- package/build/services/worker/index.js +197 -0
- package/package.json +1 -1
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/typedoc.json +0 -47
- package/types/activity.ts +0 -268
- package/types/app.ts +0 -20
- package/types/async.ts +0 -6
- package/types/cache.ts +0 -1
- package/types/collator.ts +0 -9
- package/types/error.ts +0 -56
- package/types/exporter.ts +0 -102
- package/types/hook.ts +0 -44
- package/types/hotmesh.ts +0 -314
- package/types/index.ts +0 -306
- package/types/job.ts +0 -233
- package/types/logger.ts +0 -8
- package/types/manifest.ts +0 -70
- package/types/map.ts +0 -5
- package/types/memflow.ts +0 -645
- package/types/meshcall.ts +0 -235
- package/types/meshdata.ts +0 -278
- package/types/ms.d.ts +0 -7
- package/types/nats.ts +0 -270
- package/types/pipe.ts +0 -90
- package/types/postgres.ts +0 -114
- package/types/provider.ts +0 -161
- package/types/quorum.ts +0 -167
- package/types/redis.ts +0 -404
- package/types/serializer.ts +0 -40
- package/types/stats.ts +0 -117
- package/types/stream.ts +0 -231
- package/types/task.ts +0 -7
- package/types/telemetry.ts +0 -16
- package/types/transition.ts +0 -20
package/README.md
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
# HotMesh
|
|
1
|
+
# HotMesh
|
|
2
2
|
|
|
3
3
|
**Permanent-Memory Workflows & AI Agents**
|
|
4
4
|
|
|
5
5
|
 
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
**HotMesh** is a Temporal-style workflow engine that runs natively on PostgreSQL — with a powerful twist: every workflow maintains a permanent, JSON-backed context that persists independently of the workflow itself.
|
|
8
|
+
|
|
9
|
+
This means:
|
|
10
|
+
|
|
11
|
+
* Any number of lightweight, thread-safe **hook workers** can attach to the same workflow record at any time.
|
|
12
|
+
* These hooks can safely **read and incrementally write** to shared state.
|
|
13
|
+
* The result is a **durable execution model** with **evolving memory**, ideal for **human-in-the-loop processes** and **AI agents that learn over time**.
|
|
13
14
|
|
|
14
15
|
---
|
|
15
16
|
|
|
@@ -61,10 +62,11 @@ async function main() {
|
|
|
61
62
|
main().catch(console.error);
|
|
62
63
|
```
|
|
63
64
|
|
|
65
|
+
---
|
|
64
66
|
|
|
65
67
|
## 🧠 How Permanent Memory Works
|
|
66
68
|
|
|
67
|
-
* **Context = JSONB row
|
|
69
|
+
* **Context = persistent JSON record** – each workflow's memory is stored as a JSONB row in your Postgres database
|
|
68
70
|
* **Atomic operations** (`set`, `merge`, `append`, `increment`, `toggle`, `delete`, …)
|
|
69
71
|
* **Transactional** – every update participates in the workflow/DB transaction
|
|
70
72
|
* **Time-travel-safe** – full replay compatibility; side-effect detector guarantees determinism
|
|
@@ -135,14 +137,37 @@ export async function hook2(name: string, kind: string): Promise<void> {
|
|
|
135
137
|
await ctx.merge({ user: { lastSeen: new Date().toISOString() } });
|
|
136
138
|
await MemFlow.workflow.signal('hook2-complete', { ok: true });
|
|
137
139
|
}
|
|
138
|
-
```
|
|
139
140
|
|
|
140
|
-
|
|
141
|
+
/* ------------ Worker/Hook Registration ------------ */
|
|
142
|
+
async function startWorker() {
|
|
143
|
+
const mf = await MemFlow.init({
|
|
144
|
+
appId: 'my-app',
|
|
145
|
+
engine: {
|
|
146
|
+
connection: {
|
|
147
|
+
class: Postgres,
|
|
148
|
+
options: { connectionString: process.env.DATABASE_URL }
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
const worker = await mf.worker.create({
|
|
154
|
+
taskQueue: 'contextual',
|
|
155
|
+
workflow: example
|
|
156
|
+
});
|
|
141
157
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
158
|
+
await mf.worker.create({
|
|
159
|
+
taskQueue: 'contextual',
|
|
160
|
+
workflow: hook1
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
await mf.worker.create({
|
|
164
|
+
taskQueue: 'contextual',
|
|
165
|
+
workflow: hook2
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
console.log('Workers and hooks started and listening...');
|
|
169
|
+
}
|
|
170
|
+
```
|
|
146
171
|
|
|
147
172
|
---
|
|
148
173
|
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { LogLevel } from '../types/logger';
|
|
2
|
+
/**
|
|
3
|
+
* Determines the log level for the application. The default is 'info'.
|
|
4
|
+
*/
|
|
5
|
+
export declare const HMSH_LOGLEVEL: LogLevel;
|
|
6
|
+
/**
|
|
7
|
+
* Determines the log level for telemetry. The default is 'info' which emits worker and trigger spans. 'debug' emits all spans.
|
|
8
|
+
*/
|
|
9
|
+
export declare const HMSH_TELEMETRY: "debug" | "info";
|
|
10
|
+
/**
|
|
11
|
+
* If Redis, explicitly sets whether the application is running in a cluster. The default is false.
|
|
12
|
+
* @deprecated
|
|
13
|
+
*/
|
|
14
|
+
export declare const HMSH_IS_CLUSTER: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Default cleanup time for signal in the db when its associated job is completed.
|
|
17
|
+
*/
|
|
18
|
+
export declare const HMSH_SIGNAL_EXPIRE = 3600;
|
|
19
|
+
export declare const HMSH_CODE_SUCCESS = 200;
|
|
20
|
+
export declare const HMSH_CODE_PENDING = 202;
|
|
21
|
+
export declare const HMSH_CODE_NOTFOUND = 404;
|
|
22
|
+
export declare const HMSH_CODE_INTERRUPT = 410;
|
|
23
|
+
export declare const HMSH_CODE_UNKNOWN = 500;
|
|
24
|
+
export declare const HMSH_CODE_TIMEOUT = 504;
|
|
25
|
+
export declare const HMSH_CODE_UNACKED = 999;
|
|
26
|
+
/**
|
|
27
|
+
* This is thrown when a MemFlow has been interrupted by a sleepFor call.
|
|
28
|
+
*/
|
|
29
|
+
export declare const HMSH_CODE_MEMFLOW_SLEEP = 588;
|
|
30
|
+
/**
|
|
31
|
+
* This is thrown when a MemFlow has been interrupted by a Promise.all call.
|
|
32
|
+
*/
|
|
33
|
+
export declare const HMSH_CODE_MEMFLOW_ALL = 589;
|
|
34
|
+
/**
|
|
35
|
+
* This is thrown when a MemFlow has been interrupted by an execChild or startChild call.
|
|
36
|
+
*/
|
|
37
|
+
export declare const HMSH_CODE_MEMFLOW_CHILD = 590;
|
|
38
|
+
/**
|
|
39
|
+
* This is thrown when a MemFlow has been interrupted by a proxyActivity call.
|
|
40
|
+
*/
|
|
41
|
+
export declare const HMSH_CODE_MEMFLOW_PROXY = 591;
|
|
42
|
+
/**
|
|
43
|
+
* This is thrown when a MemFlow has been interrupted by a waitForSignal call.
|
|
44
|
+
*/
|
|
45
|
+
export declare const HMSH_CODE_MEMFLOW_WAIT = 595;
|
|
46
|
+
/**
|
|
47
|
+
* The timeout status code for MemFlow. This status code is thrown when MemFlow has encountered a timeout error and needs to aler the caller why the call failed.
|
|
48
|
+
*/
|
|
49
|
+
export declare const HMSH_CODE_MEMFLOW_TIMEOUT = 596;
|
|
50
|
+
/**
|
|
51
|
+
* The maxed status code for MemFlow. This status code is used to indicate that the MemFlow has reached the maximum
|
|
52
|
+
* number of attempts and should be halted. Thrown from a proxied activity or a flow to halt standard execution
|
|
53
|
+
* and prevent further attempts.
|
|
54
|
+
*/
|
|
55
|
+
export declare const HMSH_CODE_MEMFLOW_MAXED = 597;
|
|
56
|
+
/**
|
|
57
|
+
* The fatal status code for MemFlow. This status code is used to indicate that the MemFlow has encountered a fatal error. Throw from a proxied activity or a flow to halt standard execution.
|
|
58
|
+
*/
|
|
59
|
+
export declare const HMSH_CODE_MEMFLOW_FATAL = 598;
|
|
60
|
+
/**
|
|
61
|
+
* The retryable status code for MemFlow. This status code is used to indicate that the MemFlow has encountered a retryable error (essentially unknown and covered by the standard retry policy).
|
|
62
|
+
*/
|
|
63
|
+
export declare const HMSH_CODE_MEMFLOW_RETRYABLE = 599;
|
|
64
|
+
export declare const HMSH_STATUS_UNKNOWN = "unknown";
|
|
65
|
+
/**
|
|
66
|
+
* The number of cycles to re/try for a quorum to be established.
|
|
67
|
+
*/
|
|
68
|
+
export declare const HMSH_QUORUM_ROLLCALL_CYCLES = 12;
|
|
69
|
+
/**
|
|
70
|
+
* The delay in milliseconds between quorum rollcall cycles.
|
|
71
|
+
*/
|
|
72
|
+
export declare const HMSH_QUORUM_DELAY_MS = 250;
|
|
73
|
+
/**
|
|
74
|
+
* The number of times the call-response exchange must succeed in succession to establish a quorum.
|
|
75
|
+
*/
|
|
76
|
+
export declare const HMSH_ACTIVATION_MAX_RETRY = 3;
|
|
77
|
+
export declare const HMSH_DEPLOYMENT_DELAY: number;
|
|
78
|
+
export declare const HMSH_DEPLOYMENT_PAUSE: number;
|
|
79
|
+
export declare const HMSH_OTT_WAIT_TIME: number;
|
|
80
|
+
export declare const HMSH_EXPIRE_JOB_SECONDS: number;
|
|
81
|
+
export declare const MAX_STREAM_BACKOFF: number;
|
|
82
|
+
export declare const INITIAL_STREAM_BACKOFF: number;
|
|
83
|
+
export declare const MAX_STREAM_RETRIES: number;
|
|
84
|
+
export declare const MAX_DELAY = 2147483647;
|
|
85
|
+
export declare const HMSH_MAX_RETRIES: number;
|
|
86
|
+
export declare const HMSH_MAX_TIMEOUT_MS: number;
|
|
87
|
+
export declare const HMSH_GRADUATED_INTERVAL_MS: number;
|
|
88
|
+
/**
|
|
89
|
+
* The maximum number of attempts to retry a MemFlow job before it is considered failed.
|
|
90
|
+
* @default 3
|
|
91
|
+
*/
|
|
92
|
+
export declare const HMSH_MEMFLOW_MAX_ATTEMPTS = 3;
|
|
93
|
+
/**
|
|
94
|
+
* The maximum interval to wait before retrying a MemFlow job.
|
|
95
|
+
* @default 120s
|
|
96
|
+
*/
|
|
97
|
+
export declare const HMSH_MEMFLOW_MAX_INTERVAL = "120s";
|
|
98
|
+
/**
|
|
99
|
+
* The exponential backoff factor to apply to the interval between retries.
|
|
100
|
+
* @default 10
|
|
101
|
+
*/
|
|
102
|
+
export declare const HMSH_MEMFLOW_EXP_BACKOFF = 10;
|
|
103
|
+
export declare const HMSH_BLOCK_TIME_MS: number;
|
|
104
|
+
export declare const HMSH_XCLAIM_DELAY_MS: number;
|
|
105
|
+
export declare const HMSH_XCLAIM_COUNT: number;
|
|
106
|
+
export declare const HMSH_XPENDING_COUNT: number;
|
|
107
|
+
export declare const HMSH_EXPIRE_DURATION: number;
|
|
108
|
+
export declare const HMSH_FIDELITY_SECONDS: number;
|
|
109
|
+
export declare const HMSH_SCOUT_INTERVAL_SECONDS: number;
|
|
110
|
+
export declare const HMSH_GUID_SIZE: number;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HMSH_GUID_SIZE = exports.HMSH_SCOUT_INTERVAL_SECONDS = exports.HMSH_FIDELITY_SECONDS = exports.HMSH_EXPIRE_DURATION = exports.HMSH_XPENDING_COUNT = exports.HMSH_XCLAIM_COUNT = exports.HMSH_XCLAIM_DELAY_MS = exports.HMSH_BLOCK_TIME_MS = exports.HMSH_MEMFLOW_EXP_BACKOFF = exports.HMSH_MEMFLOW_MAX_INTERVAL = exports.HMSH_MEMFLOW_MAX_ATTEMPTS = exports.HMSH_GRADUATED_INTERVAL_MS = exports.HMSH_MAX_TIMEOUT_MS = exports.HMSH_MAX_RETRIES = exports.MAX_DELAY = exports.MAX_STREAM_RETRIES = exports.INITIAL_STREAM_BACKOFF = exports.MAX_STREAM_BACKOFF = exports.HMSH_EXPIRE_JOB_SECONDS = exports.HMSH_OTT_WAIT_TIME = exports.HMSH_DEPLOYMENT_PAUSE = exports.HMSH_DEPLOYMENT_DELAY = exports.HMSH_ACTIVATION_MAX_RETRY = exports.HMSH_QUORUM_DELAY_MS = exports.HMSH_QUORUM_ROLLCALL_CYCLES = exports.HMSH_STATUS_UNKNOWN = exports.HMSH_CODE_MEMFLOW_RETRYABLE = exports.HMSH_CODE_MEMFLOW_FATAL = exports.HMSH_CODE_MEMFLOW_MAXED = exports.HMSH_CODE_MEMFLOW_TIMEOUT = exports.HMSH_CODE_MEMFLOW_WAIT = exports.HMSH_CODE_MEMFLOW_PROXY = exports.HMSH_CODE_MEMFLOW_CHILD = exports.HMSH_CODE_MEMFLOW_ALL = exports.HMSH_CODE_MEMFLOW_SLEEP = exports.HMSH_CODE_UNACKED = exports.HMSH_CODE_TIMEOUT = exports.HMSH_CODE_UNKNOWN = exports.HMSH_CODE_INTERRUPT = exports.HMSH_CODE_NOTFOUND = exports.HMSH_CODE_PENDING = exports.HMSH_CODE_SUCCESS = exports.HMSH_SIGNAL_EXPIRE = exports.HMSH_IS_CLUSTER = exports.HMSH_TELEMETRY = exports.HMSH_LOGLEVEL = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Determines the log level for the application. The default is 'info'.
|
|
6
|
+
*/
|
|
7
|
+
exports.HMSH_LOGLEVEL = process.env.HMSH_LOGLEVEL || 'info';
|
|
8
|
+
/**
|
|
9
|
+
* Determines the log level for telemetry. The default is 'info' which emits worker and trigger spans. 'debug' emits all spans.
|
|
10
|
+
*/
|
|
11
|
+
exports.HMSH_TELEMETRY = process.env.HMSH_TELEMETRY || 'info';
|
|
12
|
+
/**
|
|
13
|
+
* If Redis, explicitly sets whether the application is running in a cluster. The default is false.
|
|
14
|
+
* @deprecated
|
|
15
|
+
*/
|
|
16
|
+
exports.HMSH_IS_CLUSTER = process.env.HMSH_IS_CLUSTER === 'true';
|
|
17
|
+
/**
|
|
18
|
+
* Default cleanup time for signal in the db when its associated job is completed.
|
|
19
|
+
*/
|
|
20
|
+
exports.HMSH_SIGNAL_EXPIRE = 3600; //seconds
|
|
21
|
+
// HOTMESH STATUS CODES
|
|
22
|
+
exports.HMSH_CODE_SUCCESS = 200;
|
|
23
|
+
exports.HMSH_CODE_PENDING = 202;
|
|
24
|
+
exports.HMSH_CODE_NOTFOUND = 404;
|
|
25
|
+
exports.HMSH_CODE_INTERRUPT = 410;
|
|
26
|
+
exports.HMSH_CODE_UNKNOWN = 500;
|
|
27
|
+
exports.HMSH_CODE_TIMEOUT = 504;
|
|
28
|
+
exports.HMSH_CODE_UNACKED = 999;
|
|
29
|
+
// MEMFLOW STATUS CODES
|
|
30
|
+
/**
|
|
31
|
+
* This is thrown when a MemFlow has been interrupted by a sleepFor call.
|
|
32
|
+
*/
|
|
33
|
+
exports.HMSH_CODE_MEMFLOW_SLEEP = 588;
|
|
34
|
+
/**
|
|
35
|
+
* This is thrown when a MemFlow has been interrupted by a Promise.all call.
|
|
36
|
+
*/
|
|
37
|
+
exports.HMSH_CODE_MEMFLOW_ALL = 589;
|
|
38
|
+
/**
|
|
39
|
+
* This is thrown when a MemFlow has been interrupted by an execChild or startChild call.
|
|
40
|
+
*/
|
|
41
|
+
exports.HMSH_CODE_MEMFLOW_CHILD = 590;
|
|
42
|
+
/**
|
|
43
|
+
* This is thrown when a MemFlow has been interrupted by a proxyActivity call.
|
|
44
|
+
*/
|
|
45
|
+
exports.HMSH_CODE_MEMFLOW_PROXY = 591;
|
|
46
|
+
/**
|
|
47
|
+
* This is thrown when a MemFlow has been interrupted by a waitForSignal call.
|
|
48
|
+
*/
|
|
49
|
+
exports.HMSH_CODE_MEMFLOW_WAIT = 595;
|
|
50
|
+
/**
|
|
51
|
+
* The timeout status code for MemFlow. This status code is thrown when MemFlow has encountered a timeout error and needs to aler the caller why the call failed.
|
|
52
|
+
*/
|
|
53
|
+
exports.HMSH_CODE_MEMFLOW_TIMEOUT = 596;
|
|
54
|
+
/**
|
|
55
|
+
* The maxed status code for MemFlow. This status code is used to indicate that the MemFlow has reached the maximum
|
|
56
|
+
* number of attempts and should be halted. Thrown from a proxied activity or a flow to halt standard execution
|
|
57
|
+
* and prevent further attempts.
|
|
58
|
+
*/
|
|
59
|
+
exports.HMSH_CODE_MEMFLOW_MAXED = 597;
|
|
60
|
+
/**
|
|
61
|
+
* The fatal status code for MemFlow. This status code is used to indicate that the MemFlow has encountered a fatal error. Throw from a proxied activity or a flow to halt standard execution.
|
|
62
|
+
*/
|
|
63
|
+
exports.HMSH_CODE_MEMFLOW_FATAL = 598;
|
|
64
|
+
/**
|
|
65
|
+
* The retryable status code for MemFlow. This status code is used to indicate that the MemFlow has encountered a retryable error (essentially unknown and covered by the standard retry policy).
|
|
66
|
+
*/
|
|
67
|
+
exports.HMSH_CODE_MEMFLOW_RETRYABLE = 599;
|
|
68
|
+
// HOTMESH MESSAGES
|
|
69
|
+
exports.HMSH_STATUS_UNKNOWN = 'unknown';
|
|
70
|
+
// QUORUM
|
|
71
|
+
/**
|
|
72
|
+
* The number of cycles to re/try for a quorum to be established.
|
|
73
|
+
*/
|
|
74
|
+
exports.HMSH_QUORUM_ROLLCALL_CYCLES = 12;
|
|
75
|
+
/**
|
|
76
|
+
* The delay in milliseconds between quorum rollcall cycles.
|
|
77
|
+
*/
|
|
78
|
+
exports.HMSH_QUORUM_DELAY_MS = 250;
|
|
79
|
+
/**
|
|
80
|
+
* The number of times the call-response exchange must succeed in succession to establish a quorum.
|
|
81
|
+
*/
|
|
82
|
+
exports.HMSH_ACTIVATION_MAX_RETRY = 3;
|
|
83
|
+
//backend provisioning
|
|
84
|
+
exports.HMSH_DEPLOYMENT_DELAY = parseInt(process.env.HMSH_DEPLOYMENT_DELAY, 10) || 10000; //in ms
|
|
85
|
+
exports.HMSH_DEPLOYMENT_PAUSE = parseInt(process.env.HMSH_DEPLOYMENT_PAUSE, 10) || 250; //in ms
|
|
86
|
+
// ENGINE
|
|
87
|
+
exports.HMSH_OTT_WAIT_TIME = parseInt(process.env.HMSH_OTT_WAIT_TIME, 10) || 1000;
|
|
88
|
+
exports.HMSH_EXPIRE_JOB_SECONDS = parseInt(process.env.HMSH_EXPIRE_JOB_SECONDS, 10) || 1;
|
|
89
|
+
// STREAM ROUTER
|
|
90
|
+
exports.MAX_STREAM_BACKOFF = parseInt(process.env.MAX_STREAM_BACKOFF, 10) || 500;
|
|
91
|
+
exports.INITIAL_STREAM_BACKOFF = parseInt(process.env.INITIAL_STREAM_BACKOFF, 10) || 250;
|
|
92
|
+
exports.MAX_STREAM_RETRIES = parseInt(process.env.MAX_STREAM_RETRIES, 10) || 2;
|
|
93
|
+
exports.MAX_DELAY = 2147483647; // Maximum allowed delay in milliseconds for setTimeout
|
|
94
|
+
exports.HMSH_MAX_RETRIES = parseInt(process.env.HMSH_MAX_RETRIES, 10) || 3;
|
|
95
|
+
exports.HMSH_MAX_TIMEOUT_MS = parseInt(process.env.HMSH_MAX_TIMEOUT_MS, 10) || 60000;
|
|
96
|
+
exports.HMSH_GRADUATED_INTERVAL_MS = parseInt(process.env.HMSH_GRADUATED_INTERVAL_MS, 10) || 5000;
|
|
97
|
+
// MEMFLOW
|
|
98
|
+
/**
|
|
99
|
+
* The maximum number of attempts to retry a MemFlow job before it is considered failed.
|
|
100
|
+
* @default 3
|
|
101
|
+
*/
|
|
102
|
+
exports.HMSH_MEMFLOW_MAX_ATTEMPTS = 3;
|
|
103
|
+
/**
|
|
104
|
+
* The maximum interval to wait before retrying a MemFlow job.
|
|
105
|
+
* @default 120s
|
|
106
|
+
*/
|
|
107
|
+
exports.HMSH_MEMFLOW_MAX_INTERVAL = '120s';
|
|
108
|
+
/**
|
|
109
|
+
* The exponential backoff factor to apply to the interval between retries.
|
|
110
|
+
* @default 10
|
|
111
|
+
*/
|
|
112
|
+
exports.HMSH_MEMFLOW_EXP_BACKOFF = 10;
|
|
113
|
+
const BASE_BLOCK_DURATION = 10000;
|
|
114
|
+
const TEST_BLOCK_DURATION = 1000;
|
|
115
|
+
exports.HMSH_BLOCK_TIME_MS = process.env.HMSH_BLOCK_TIME_MS
|
|
116
|
+
? parseInt(process.env.HMSH_BLOCK_TIME_MS, 10)
|
|
117
|
+
: process.env.NODE_ENV === 'test'
|
|
118
|
+
? TEST_BLOCK_DURATION
|
|
119
|
+
: BASE_BLOCK_DURATION;
|
|
120
|
+
exports.HMSH_XCLAIM_DELAY_MS = parseInt(process.env.HMSH_XCLAIM_DELAY_MS, 10) || 1000 * 60;
|
|
121
|
+
exports.HMSH_XCLAIM_COUNT = parseInt(process.env.HMSH_XCLAIM_COUNT, 10) || 3;
|
|
122
|
+
exports.HMSH_XPENDING_COUNT = parseInt(process.env.HMSH_XPENDING_COUNT, 10) || 10;
|
|
123
|
+
// TASK WORKER
|
|
124
|
+
exports.HMSH_EXPIRE_DURATION = parseInt(process.env.HMSH_EXPIRE_DURATION, 10) || 1;
|
|
125
|
+
const BASE_FIDELITY_SECONDS = 5;
|
|
126
|
+
const TEST_FIDELITY_SECONDS = 1;
|
|
127
|
+
exports.HMSH_FIDELITY_SECONDS = process.env.HMSH_FIDELITY_SECONDS
|
|
128
|
+
? parseInt(process.env.HMSH_FIDELITY_SECONDS, 10)
|
|
129
|
+
: process.env.NODE_ENV === 'test'
|
|
130
|
+
? TEST_FIDELITY_SECONDS
|
|
131
|
+
: BASE_FIDELITY_SECONDS;
|
|
132
|
+
exports.HMSH_SCOUT_INTERVAL_SECONDS = parseInt(process.env.HMSH_SCOUT_INTERVAL_SECONDS, 10) || 60;
|
|
133
|
+
// UTILS
|
|
134
|
+
exports.HMSH_GUID_SIZE = Math.min(parseInt(process.env.HMSH_GUID_SIZE, 10) || 22, 32);
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { ActivityDuplex } from '../types/activity';
|
|
2
|
+
import { CollationFaultType, CollationStage } from '../types/collator';
|
|
3
|
+
import { MemFlowChildErrorType, MemFlowProxyErrorType, MemFlowSleepErrorType, MemFlowWaitForAllErrorType, MemFlowWaitForErrorType } from '../types/error';
|
|
4
|
+
declare class GetStateError extends Error {
|
|
5
|
+
jobId: string;
|
|
6
|
+
code: number;
|
|
7
|
+
constructor(jobId: string);
|
|
8
|
+
}
|
|
9
|
+
declare class SetStateError extends Error {
|
|
10
|
+
constructor();
|
|
11
|
+
}
|
|
12
|
+
declare class MemFlowWaitForError extends Error {
|
|
13
|
+
code: number;
|
|
14
|
+
signalId: string;
|
|
15
|
+
workflowId: string;
|
|
16
|
+
index: number;
|
|
17
|
+
workflowDimension: string;
|
|
18
|
+
constructor(params: MemFlowWaitForErrorType);
|
|
19
|
+
}
|
|
20
|
+
declare class MemFlowProxyError extends Error {
|
|
21
|
+
activityName: string;
|
|
22
|
+
arguments: string[];
|
|
23
|
+
backoffCoefficient: number;
|
|
24
|
+
code: number;
|
|
25
|
+
index: number;
|
|
26
|
+
maximumAttempts: number;
|
|
27
|
+
maximumInterval: number;
|
|
28
|
+
originJobId: string | null;
|
|
29
|
+
parentWorkflowId: string;
|
|
30
|
+
expire: number;
|
|
31
|
+
workflowDimension: string;
|
|
32
|
+
workflowId: string;
|
|
33
|
+
workflowTopic: string;
|
|
34
|
+
constructor(params: MemFlowProxyErrorType);
|
|
35
|
+
}
|
|
36
|
+
declare class MemFlowChildError extends Error {
|
|
37
|
+
await: boolean;
|
|
38
|
+
arguments: string[];
|
|
39
|
+
backoffCoefficient: number;
|
|
40
|
+
code: number;
|
|
41
|
+
expire: number;
|
|
42
|
+
persistent: boolean;
|
|
43
|
+
signalIn: boolean;
|
|
44
|
+
workflowDimension: string;
|
|
45
|
+
index: number;
|
|
46
|
+
maximumAttempts: number;
|
|
47
|
+
maximumInterval: number;
|
|
48
|
+
originJobId: string | null;
|
|
49
|
+
parentWorkflowId: string;
|
|
50
|
+
workflowId: string;
|
|
51
|
+
workflowTopic: string;
|
|
52
|
+
constructor(params: MemFlowChildErrorType);
|
|
53
|
+
}
|
|
54
|
+
declare class MemFlowWaitForAllError extends Error {
|
|
55
|
+
items: any[];
|
|
56
|
+
code: number;
|
|
57
|
+
workflowDimension: string;
|
|
58
|
+
size: number;
|
|
59
|
+
index: number;
|
|
60
|
+
originJobId: string | null;
|
|
61
|
+
parentWorkflowId: string;
|
|
62
|
+
workflowId: string;
|
|
63
|
+
workflowTopic: string;
|
|
64
|
+
constructor(params: MemFlowWaitForAllErrorType);
|
|
65
|
+
}
|
|
66
|
+
declare class MemFlowSleepError extends Error {
|
|
67
|
+
workflowId: string;
|
|
68
|
+
code: number;
|
|
69
|
+
duration: number;
|
|
70
|
+
index: number;
|
|
71
|
+
workflowDimension: string;
|
|
72
|
+
constructor(params: MemFlowSleepErrorType);
|
|
73
|
+
}
|
|
74
|
+
declare class MemFlowTimeoutError extends Error {
|
|
75
|
+
code: number;
|
|
76
|
+
constructor(message: string, stack?: string);
|
|
77
|
+
}
|
|
78
|
+
declare class MemFlowMaxedError extends Error {
|
|
79
|
+
code: number;
|
|
80
|
+
constructor(message: string, stackTrace?: string);
|
|
81
|
+
}
|
|
82
|
+
declare class MemFlowFatalError extends Error {
|
|
83
|
+
code: number;
|
|
84
|
+
constructor(message: string, stackTrace?: string);
|
|
85
|
+
}
|
|
86
|
+
declare class MemFlowRetryError extends Error {
|
|
87
|
+
code: number;
|
|
88
|
+
constructor(message: string, stackTrace?: string);
|
|
89
|
+
}
|
|
90
|
+
declare class MapDataError extends Error {
|
|
91
|
+
constructor();
|
|
92
|
+
}
|
|
93
|
+
declare class RegisterTimeoutError extends Error {
|
|
94
|
+
constructor();
|
|
95
|
+
}
|
|
96
|
+
declare class DuplicateJobError extends Error {
|
|
97
|
+
jobId: string;
|
|
98
|
+
constructor(jobId: string);
|
|
99
|
+
}
|
|
100
|
+
declare class InactiveJobError extends Error {
|
|
101
|
+
jobId: string;
|
|
102
|
+
activityId: string;
|
|
103
|
+
status: number;
|
|
104
|
+
constructor(jobId: string, status: number, activityId: string);
|
|
105
|
+
}
|
|
106
|
+
declare class GenerationalError extends Error {
|
|
107
|
+
expected: string;
|
|
108
|
+
actual: string;
|
|
109
|
+
jobId: string;
|
|
110
|
+
activityId: string;
|
|
111
|
+
dimensionalAddress: string;
|
|
112
|
+
constructor(expected: string, actual: string, jobId: string, activityId: string, dimensionalAddress: string);
|
|
113
|
+
}
|
|
114
|
+
declare class ExecActivityError extends Error {
|
|
115
|
+
constructor();
|
|
116
|
+
}
|
|
117
|
+
declare class CollationError extends Error {
|
|
118
|
+
status: number;
|
|
119
|
+
leg: ActivityDuplex;
|
|
120
|
+
stage: CollationStage;
|
|
121
|
+
fault: CollationFaultType;
|
|
122
|
+
constructor(status: number, leg: ActivityDuplex, stage: CollationStage, fault?: CollationFaultType);
|
|
123
|
+
}
|
|
124
|
+
export { CollationError, MemFlowChildError, MemFlowFatalError, MemFlowMaxedError, MemFlowProxyError, MemFlowRetryError, MemFlowSleepError, MemFlowTimeoutError, MemFlowWaitForAllError, MemFlowWaitForError, DuplicateJobError, ExecActivityError, GenerationalError, GetStateError, InactiveJobError, MapDataError, RegisterTimeoutError, SetStateError, };
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SetStateError = exports.RegisterTimeoutError = exports.MapDataError = exports.InactiveJobError = exports.GetStateError = exports.GenerationalError = exports.ExecActivityError = exports.DuplicateJobError = exports.MemFlowWaitForError = exports.MemFlowWaitForAllError = exports.MemFlowTimeoutError = exports.MemFlowSleepError = exports.MemFlowRetryError = exports.MemFlowProxyError = exports.MemFlowMaxedError = exports.MemFlowFatalError = exports.MemFlowChildError = exports.CollationError = void 0;
|
|
4
|
+
const enums_1 = require("./enums");
|
|
5
|
+
class GetStateError extends Error {
|
|
6
|
+
constructor(jobId) {
|
|
7
|
+
super(`${jobId} Not Found`);
|
|
8
|
+
this.code = enums_1.HMSH_CODE_NOTFOUND;
|
|
9
|
+
this.jobId = jobId;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.GetStateError = GetStateError;
|
|
13
|
+
class SetStateError extends Error {
|
|
14
|
+
constructor() {
|
|
15
|
+
super('Error occurred while setting job state');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.SetStateError = SetStateError;
|
|
19
|
+
class MemFlowWaitForError extends Error {
|
|
20
|
+
constructor(params) {
|
|
21
|
+
super(`WaitFor Interruption`);
|
|
22
|
+
this.signalId = params.signalId;
|
|
23
|
+
this.index = params.index;
|
|
24
|
+
this.workflowDimension = params.workflowDimension;
|
|
25
|
+
this.code = enums_1.HMSH_CODE_MEMFLOW_WAIT;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.MemFlowWaitForError = MemFlowWaitForError;
|
|
29
|
+
class MemFlowProxyError extends Error {
|
|
30
|
+
constructor(params) {
|
|
31
|
+
super(`ProxyActivity Interruption`);
|
|
32
|
+
this.arguments = params.arguments;
|
|
33
|
+
this.workflowId = params.workflowId;
|
|
34
|
+
this.workflowTopic = params.workflowTopic;
|
|
35
|
+
this.parentWorkflowId = params.parentWorkflowId;
|
|
36
|
+
this.expire = params.expire;
|
|
37
|
+
this.originJobId = params.originJobId;
|
|
38
|
+
this.index = params.index;
|
|
39
|
+
this.activityName = params.activityName;
|
|
40
|
+
this.workflowDimension = params.workflowDimension;
|
|
41
|
+
this.backoffCoefficient = params.backoffCoefficient;
|
|
42
|
+
this.maximumAttempts = params.maximumAttempts;
|
|
43
|
+
this.maximumInterval = params.maximumInterval;
|
|
44
|
+
this.code = enums_1.HMSH_CODE_MEMFLOW_PROXY;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.MemFlowProxyError = MemFlowProxyError;
|
|
48
|
+
class MemFlowChildError extends Error {
|
|
49
|
+
constructor(params) {
|
|
50
|
+
super(`ExecChild Interruption`);
|
|
51
|
+
this.arguments = params.arguments;
|
|
52
|
+
this.workflowId = params.workflowId;
|
|
53
|
+
this.workflowTopic = params.workflowTopic;
|
|
54
|
+
this.parentWorkflowId = params.parentWorkflowId;
|
|
55
|
+
this.expire = params.expire;
|
|
56
|
+
this.persistent = params.persistent;
|
|
57
|
+
this.signalIn = params.signalIn;
|
|
58
|
+
this.originJobId = params.originJobId;
|
|
59
|
+
this.index = params.index;
|
|
60
|
+
this.workflowDimension = params.workflowDimension;
|
|
61
|
+
this.code = enums_1.HMSH_CODE_MEMFLOW_CHILD;
|
|
62
|
+
this.await = params.await;
|
|
63
|
+
this.backoffCoefficient = params.backoffCoefficient;
|
|
64
|
+
this.maximumAttempts = params.maximumAttempts;
|
|
65
|
+
this.maximumInterval = params.maximumInterval;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.MemFlowChildError = MemFlowChildError;
|
|
69
|
+
class MemFlowWaitForAllError extends Error {
|
|
70
|
+
constructor(params) {
|
|
71
|
+
super(`Collation Interruption`);
|
|
72
|
+
this.items = params.items;
|
|
73
|
+
this.size = params.size;
|
|
74
|
+
this.workflowId = params.workflowId;
|
|
75
|
+
this.workflowTopic = params.workflowTopic;
|
|
76
|
+
this.parentWorkflowId = params.parentWorkflowId;
|
|
77
|
+
this.originJobId = params.originJobId;
|
|
78
|
+
this.index = params.index;
|
|
79
|
+
this.workflowDimension = params.workflowDimension;
|
|
80
|
+
this.code = enums_1.HMSH_CODE_MEMFLOW_ALL;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.MemFlowWaitForAllError = MemFlowWaitForAllError;
|
|
84
|
+
class MemFlowSleepError extends Error {
|
|
85
|
+
constructor(params) {
|
|
86
|
+
super(`SleepFor Interruption`);
|
|
87
|
+
this.duration = params.duration;
|
|
88
|
+
this.workflowId = params.workflowId;
|
|
89
|
+
this.index = params.index;
|
|
90
|
+
this.workflowDimension = params.workflowDimension;
|
|
91
|
+
this.code = enums_1.HMSH_CODE_MEMFLOW_SLEEP;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.MemFlowSleepError = MemFlowSleepError;
|
|
95
|
+
class MemFlowTimeoutError extends Error {
|
|
96
|
+
constructor(message, stack) {
|
|
97
|
+
super(message);
|
|
98
|
+
if (this.stack) {
|
|
99
|
+
this.stack = stack;
|
|
100
|
+
}
|
|
101
|
+
this.code = enums_1.HMSH_CODE_MEMFLOW_TIMEOUT;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.MemFlowTimeoutError = MemFlowTimeoutError;
|
|
105
|
+
class MemFlowMaxedError extends Error {
|
|
106
|
+
constructor(message, stackTrace) {
|
|
107
|
+
super(message);
|
|
108
|
+
if (stackTrace) {
|
|
109
|
+
this.stack = stackTrace;
|
|
110
|
+
}
|
|
111
|
+
this.code = enums_1.HMSH_CODE_MEMFLOW_MAXED;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.MemFlowMaxedError = MemFlowMaxedError;
|
|
115
|
+
class MemFlowFatalError extends Error {
|
|
116
|
+
constructor(message, stackTrace) {
|
|
117
|
+
super(message);
|
|
118
|
+
if (stackTrace) {
|
|
119
|
+
this.stack = stackTrace;
|
|
120
|
+
}
|
|
121
|
+
this.code = enums_1.HMSH_CODE_MEMFLOW_FATAL;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.MemFlowFatalError = MemFlowFatalError;
|
|
125
|
+
class MemFlowRetryError extends Error {
|
|
126
|
+
constructor(message, stackTrace) {
|
|
127
|
+
super(message);
|
|
128
|
+
if (stackTrace) {
|
|
129
|
+
this.stack = stackTrace;
|
|
130
|
+
}
|
|
131
|
+
this.code = enums_1.HMSH_CODE_MEMFLOW_RETRYABLE;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.MemFlowRetryError = MemFlowRetryError;
|
|
135
|
+
class MapDataError extends Error {
|
|
136
|
+
constructor() {
|
|
137
|
+
super('Error occurred while mapping data');
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.MapDataError = MapDataError;
|
|
141
|
+
class RegisterTimeoutError extends Error {
|
|
142
|
+
constructor() {
|
|
143
|
+
super('Error occurred while registering activity timeout');
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.RegisterTimeoutError = RegisterTimeoutError;
|
|
147
|
+
class DuplicateJobError extends Error {
|
|
148
|
+
constructor(jobId) {
|
|
149
|
+
super('Duplicate job');
|
|
150
|
+
this.jobId = jobId;
|
|
151
|
+
this.message = `Duplicate job: ${jobId}`;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.DuplicateJobError = DuplicateJobError;
|
|
155
|
+
class InactiveJobError extends Error {
|
|
156
|
+
constructor(jobId, status, activityId) {
|
|
157
|
+
super('Inactive job');
|
|
158
|
+
this.jobId = jobId;
|
|
159
|
+
this.activityId = activityId;
|
|
160
|
+
this.message = `Inactive job: ${jobId}`;
|
|
161
|
+
this.status = status;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
exports.InactiveJobError = InactiveJobError;
|
|
165
|
+
class GenerationalError extends Error {
|
|
166
|
+
constructor(expected, actual, jobId, activityId, dimensionalAddress) {
|
|
167
|
+
super('Generational Error');
|
|
168
|
+
this.expected = expected;
|
|
169
|
+
this.actual = actual;
|
|
170
|
+
this.jobId = jobId;
|
|
171
|
+
this.activityId = activityId;
|
|
172
|
+
this.dimensionalAddress = dimensionalAddress;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
exports.GenerationalError = GenerationalError;
|
|
176
|
+
class ExecActivityError extends Error {
|
|
177
|
+
constructor() {
|
|
178
|
+
super('Error occurred while executing activity');
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
exports.ExecActivityError = ExecActivityError;
|
|
182
|
+
class CollationError extends Error {
|
|
183
|
+
constructor(status, leg, stage, fault) {
|
|
184
|
+
super('collation-error');
|
|
185
|
+
this.leg = leg;
|
|
186
|
+
this.status = status;
|
|
187
|
+
this.stage = stage;
|
|
188
|
+
this.fault = fault;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
exports.CollationError = CollationError;
|