@hotmeshio/hotmesh 0.3.32 → 0.4.0
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 +128 -823
- package/build/index.d.ts +9 -9
- package/build/index.js +10 -10
- package/build/package.json +22 -21
- package/build/types/error.d.ts +5 -5
- package/build/types/exporter.d.ts +1 -1
- package/build/types/index.d.ts +3 -3
- package/build/types/manifest.d.ts +2 -2
- package/build/types/{meshflow.d.ts → memflow.d.ts} +15 -15
- package/build/types/meshdata.d.ts +3 -3
- package/build/types/postgres.d.ts +7 -0
- package/build/types/stream.d.ts +3 -0
- package/index.ts +11 -11
- package/package.json +22 -21
- package/typedoc.json +8 -7
- package/types/error.ts +5 -5
- package/types/exporter.ts +1 -1
- package/types/index.ts +7 -7
- package/types/manifest.ts +2 -2
- package/types/{meshflow.ts → memflow.ts} +15 -15
- package/types/meshdata.ts +3 -3
- package/types/postgres.ts +9 -0
- package/types/stream.ts +4 -0
- package/build/modules/enums.d.ts +0 -110
- package/build/modules/enums.js +0 -134
- package/build/modules/errors.d.ts +0 -124
- package/build/modules/errors.js +0 -191
- package/build/modules/key.d.ts +0 -66
- package/build/modules/key.js +0 -1
- package/build/modules/storage.d.ts +0 -3
- package/build/modules/storage.js +0 -5
- package/build/modules/utils.d.ts +0 -119
- package/build/modules/utils.js +0 -1
- package/build/services/activities/activity.d.ts +0 -104
- package/build/services/activities/activity.js +0 -1
- package/build/services/activities/await.d.ts +0 -12
- package/build/services/activities/await.js +0 -1
- package/build/services/activities/cycle.d.ts +0 -19
- package/build/services/activities/cycle.js +0 -1
- package/build/services/activities/hook.d.ts +0 -27
- package/build/services/activities/hook.js +0 -1
- package/build/services/activities/index.d.ts +0 -19
- package/build/services/activities/index.js +0 -1
- package/build/services/activities/interrupt.d.ts +0 -16
- package/build/services/activities/interrupt.js +0 -1
- package/build/services/activities/signal.d.ts +0 -20
- package/build/services/activities/signal.js +0 -1
- package/build/services/activities/trigger.d.ts +0 -37
- package/build/services/activities/trigger.js +0 -1
- package/build/services/activities/worker.d.ts +0 -12
- package/build/services/activities/worker.js +0 -1
- package/build/services/collator/index.d.ts +0 -111
- package/build/services/collator/index.js +0 -1
- package/build/services/compiler/deployer.d.ts +0 -40
- package/build/services/compiler/deployer.js +0 -1
- package/build/services/compiler/index.d.ts +0 -32
- package/build/services/compiler/index.js +0 -1
- package/build/services/compiler/validator.d.ts +0 -34
- package/build/services/compiler/validator.js +0 -1
- package/build/services/connector/factory.d.ts +0 -22
- package/build/services/connector/factory.js +0 -99
- package/build/services/connector/index.d.ts +0 -30
- package/build/services/connector/index.js +0 -54
- package/build/services/connector/providers/ioredis.d.ts +0 -9
- package/build/services/connector/providers/ioredis.js +0 -26
- package/build/services/connector/providers/nats.d.ts +0 -9
- package/build/services/connector/providers/nats.js +0 -34
- package/build/services/connector/providers/postgres.d.ts +0 -20
- package/build/services/connector/providers/postgres.js +0 -102
- package/build/services/connector/providers/redis.d.ts +0 -9
- package/build/services/connector/providers/redis.js +0 -38
- package/build/services/engine/index.d.ts +0 -264
- package/build/services/engine/index.js +0 -1
- package/build/services/exporter/index.d.ts +0 -44
- package/build/services/exporter/index.js +0 -1
- package/build/services/hotmesh/index.d.ts +0 -340
- package/build/services/hotmesh/index.js +0 -479
- package/build/services/logger/index.d.ts +0 -16
- package/build/services/logger/index.js +0 -54
- package/build/services/mapper/index.d.ts +0 -28
- package/build/services/mapper/index.js +0 -1
- package/build/services/meshcall/index.d.ts +0 -194
- package/build/services/meshcall/index.js +0 -452
- package/build/services/meshcall/schemas/factory.d.ts +0 -9
- package/build/services/meshcall/schemas/factory.js +0 -189
- package/build/services/meshdata/index.d.ts +0 -795
- package/build/services/meshdata/index.js +0 -1235
- package/build/services/meshflow/client.d.ts +0 -108
- package/build/services/meshflow/client.js +0 -371
- package/build/services/meshflow/connection.d.ts +0 -23
- package/build/services/meshflow/connection.js +0 -33
- package/build/services/meshflow/exporter.d.ts +0 -51
- package/build/services/meshflow/exporter.js +0 -1
- package/build/services/meshflow/handle.d.ts +0 -90
- package/build/services/meshflow/handle.js +0 -176
- package/build/services/meshflow/index.d.ts +0 -111
- package/build/services/meshflow/index.js +0 -117
- package/build/services/meshflow/schemas/factory.d.ts +0 -29
- package/build/services/meshflow/schemas/factory.js +0 -2492
- package/build/services/meshflow/search.d.ts +0 -142
- package/build/services/meshflow/search.js +0 -320
- package/build/services/meshflow/worker.d.ts +0 -124
- package/build/services/meshflow/worker.js +0 -514
- package/build/services/meshflow/workflow/all.d.ts +0 -7
- package/build/services/meshflow/workflow/all.js +0 -15
- package/build/services/meshflow/workflow/common.d.ts +0 -18
- package/build/services/meshflow/workflow/common.js +0 -45
- package/build/services/meshflow/workflow/context.d.ts +0 -6
- package/build/services/meshflow/workflow/context.js +0 -45
- package/build/services/meshflow/workflow/didRun.d.ts +0 -7
- package/build/services/meshflow/workflow/didRun.js +0 -22
- package/build/services/meshflow/workflow/emit.d.ts +0 -11
- package/build/services/meshflow/workflow/emit.js +0 -29
- package/build/services/meshflow/workflow/enrich.d.ts +0 -9
- package/build/services/meshflow/workflow/enrich.js +0 -17
- package/build/services/meshflow/workflow/execChild.d.ts +0 -18
- package/build/services/meshflow/workflow/execChild.js +0 -102
- package/build/services/meshflow/workflow/hook.d.ts +0 -9
- package/build/services/meshflow/workflow/hook.js +0 -40
- package/build/services/meshflow/workflow/index.d.ts +0 -70
- package/build/services/meshflow/workflow/index.js +0 -83
- package/build/services/meshflow/workflow/interrupt.d.ts +0 -9
- package/build/services/meshflow/workflow/interrupt.js +0 -24
- package/build/services/meshflow/workflow/isSideEffectAllowed.d.ts +0 -10
- package/build/services/meshflow/workflow/isSideEffectAllowed.js +0 -33
- package/build/services/meshflow/workflow/proxyActivities.d.ts +0 -20
- package/build/services/meshflow/workflow/proxyActivities.js +0 -97
- package/build/services/meshflow/workflow/random.d.ts +0 -6
- package/build/services/meshflow/workflow/random.js +0 -16
- package/build/services/meshflow/workflow/searchMethods.d.ts +0 -6
- package/build/services/meshflow/workflow/searchMethods.js +0 -25
- package/build/services/meshflow/workflow/signal.d.ts +0 -7
- package/build/services/meshflow/workflow/signal.js +0 -28
- package/build/services/meshflow/workflow/sleepFor.d.ts +0 -8
- package/build/services/meshflow/workflow/sleepFor.js +0 -35
- package/build/services/meshflow/workflow/trace.d.ts +0 -14
- package/build/services/meshflow/workflow/trace.js +0 -33
- package/build/services/meshflow/workflow/waitFor.d.ts +0 -8
- package/build/services/meshflow/workflow/waitFor.js +0 -35
- package/build/services/meshos/index.d.ts +0 -293
- package/build/services/meshos/index.js +0 -547
- package/build/services/pipe/functions/array.d.ts +0 -17
- package/build/services/pipe/functions/array.js +0 -1
- package/build/services/pipe/functions/bitwise.d.ts +0 -9
- package/build/services/pipe/functions/bitwise.js +0 -1
- package/build/services/pipe/functions/conditional.d.ts +0 -13
- package/build/services/pipe/functions/conditional.js +0 -1
- package/build/services/pipe/functions/cron.d.ts +0 -12
- package/build/services/pipe/functions/cron.js +0 -1
- package/build/services/pipe/functions/date.d.ts +0 -58
- package/build/services/pipe/functions/date.js +0 -1
- package/build/services/pipe/functions/index.d.ts +0 -29
- package/build/services/pipe/functions/index.js +0 -1
- package/build/services/pipe/functions/json.d.ts +0 -5
- package/build/services/pipe/functions/json.js +0 -1
- package/build/services/pipe/functions/logical.d.ts +0 -5
- package/build/services/pipe/functions/logical.js +0 -1
- package/build/services/pipe/functions/math.d.ts +0 -42
- package/build/services/pipe/functions/math.js +0 -1
- package/build/services/pipe/functions/number.d.ts +0 -21
- package/build/services/pipe/functions/number.js +0 -1
- package/build/services/pipe/functions/object.d.ts +0 -25
- package/build/services/pipe/functions/object.js +0 -1
- package/build/services/pipe/functions/string.d.ts +0 -23
- package/build/services/pipe/functions/string.js +0 -1
- package/build/services/pipe/functions/symbol.d.ts +0 -12
- package/build/services/pipe/functions/symbol.js +0 -1
- package/build/services/pipe/functions/unary.d.ts +0 -7
- package/build/services/pipe/functions/unary.js +0 -1
- package/build/services/pipe/index.d.ts +0 -48
- package/build/services/pipe/index.js +0 -1
- package/build/services/quorum/index.d.ts +0 -90
- package/build/services/quorum/index.js +0 -1
- package/build/services/reporter/index.d.ts +0 -50
- package/build/services/reporter/index.js +0 -1
- package/build/services/router/index.d.ts +0 -60
- package/build/services/router/index.js +0 -1
- package/build/services/search/factory.d.ts +0 -7
- package/build/services/search/factory.js +0 -24
- package/build/services/search/index.d.ts +0 -22
- package/build/services/search/index.js +0 -10
- package/build/services/search/providers/postgres/postgres.d.ts +0 -24
- package/build/services/search/providers/postgres/postgres.js +0 -1
- package/build/services/search/providers/redis/ioredis.d.ts +0 -18
- package/build/services/search/providers/redis/ioredis.js +0 -1
- package/build/services/search/providers/redis/redis.d.ts +0 -18
- package/build/services/search/providers/redis/redis.js +0 -1
- package/build/services/serializer/index.d.ts +0 -42
- package/build/services/serializer/index.js +0 -1
- package/build/services/store/cache.d.ts +0 -67
- package/build/services/store/cache.js +0 -128
- package/build/services/store/factory.d.ts +0 -8
- package/build/services/store/factory.js +0 -24
- package/build/services/store/index.d.ts +0 -89
- package/build/services/store/index.js +0 -9
- package/build/services/store/providers/postgres/kvsql.d.ts +0 -168
- package/build/services/store/providers/postgres/kvsql.js +0 -1
- package/build/services/store/providers/postgres/kvtables.d.ts +0 -20
- package/build/services/store/providers/postgres/kvtables.js +0 -1
- package/build/services/store/providers/postgres/kvtransaction.d.ts +0 -36
- package/build/services/store/providers/postgres/kvtransaction.js +0 -1
- package/build/services/store/providers/postgres/kvtypes/hash.d.ts +0 -60
- package/build/services/store/providers/postgres/kvtypes/hash.js +0 -1
- package/build/services/store/providers/postgres/kvtypes/list.d.ts +0 -33
- package/build/services/store/providers/postgres/kvtypes/list.js +0 -1
- package/build/services/store/providers/postgres/kvtypes/string.d.ts +0 -20
- package/build/services/store/providers/postgres/kvtypes/string.js +0 -1
- package/build/services/store/providers/postgres/kvtypes/zset.d.ts +0 -41
- package/build/services/store/providers/postgres/kvtypes/zset.js +0 -1
- package/build/services/store/providers/postgres/postgres.d.ts +0 -145
- package/build/services/store/providers/postgres/postgres.js +0 -1
- package/build/services/store/providers/redis/_base.d.ts +0 -137
- package/build/services/store/providers/redis/_base.js +0 -1
- package/build/services/store/providers/redis/ioredis.d.ts +0 -20
- package/build/services/store/providers/redis/ioredis.js +0 -1
- package/build/services/store/providers/redis/redis.d.ts +0 -18
- package/build/services/store/providers/redis/redis.js +0 -1
- package/build/services/store/providers/store-initializable.d.ts +0 -5
- package/build/services/store/providers/store-initializable.js +0 -1
- package/build/services/stream/factory.d.ts +0 -8
- package/build/services/stream/factory.js +0 -37
- package/build/services/stream/index.d.ts +0 -64
- package/build/services/stream/index.js +0 -11
- package/build/services/stream/providers/nats/nats.d.ts +0 -59
- package/build/services/stream/providers/nats/nats.js +0 -1
- package/build/services/stream/providers/postgres/kvtables.d.ts +0 -2
- package/build/services/stream/providers/postgres/kvtables.js +0 -1
- package/build/services/stream/providers/postgres/postgres.d.ts +0 -88
- package/build/services/stream/providers/postgres/postgres.js +0 -1
- package/build/services/stream/providers/redis/ioredis.d.ts +0 -60
- package/build/services/stream/providers/redis/ioredis.js +0 -1
- package/build/services/stream/providers/redis/redis.d.ts +0 -60
- package/build/services/stream/providers/redis/redis.js +0 -1
- package/build/services/stream/providers/stream-initializable.d.ts +0 -4
- package/build/services/stream/providers/stream-initializable.js +0 -1
- package/build/services/sub/factory.d.ts +0 -7
- package/build/services/sub/factory.js +0 -29
- package/build/services/sub/index.d.ts +0 -22
- package/build/services/sub/index.js +0 -10
- package/build/services/sub/providers/nats/nats.d.ts +0 -19
- package/build/services/sub/providers/nats/nats.js +0 -1
- package/build/services/sub/providers/postgres/postgres.d.ts +0 -19
- package/build/services/sub/providers/postgres/postgres.js +0 -1
- package/build/services/sub/providers/redis/ioredis.d.ts +0 -17
- package/build/services/sub/providers/redis/ioredis.js +0 -1
- package/build/services/sub/providers/redis/redis.d.ts +0 -17
- package/build/services/sub/providers/redis/redis.js +0 -1
- package/build/services/task/index.d.ts +0 -36
- package/build/services/task/index.js +0 -1
- package/build/services/telemetry/index.d.ts +0 -52
- package/build/services/telemetry/index.js +0 -1
- package/build/services/worker/index.d.ts +0 -77
- package/build/services/worker/index.js +0 -1
- /package/build/types/{meshflow.js → memflow.js} +0 -0
|
@@ -1,514 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var _a;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.WorkerService = void 0;
|
|
5
|
-
const enums_1 = require("../../modules/enums");
|
|
6
|
-
const errors_1 = require("../../modules/errors");
|
|
7
|
-
const storage_1 = require("../../modules/storage");
|
|
8
|
-
const utils_1 = require("../../modules/utils");
|
|
9
|
-
const hotmesh_1 = require("../hotmesh");
|
|
10
|
-
const stream_1 = require("../../types/stream");
|
|
11
|
-
const search_1 = require("./search");
|
|
12
|
-
const factory_1 = require("./schemas/factory");
|
|
13
|
-
/**
|
|
14
|
-
* The *Worker* service Registers worker functions and connects them to the mesh,
|
|
15
|
-
* using the target backend provider/s (Redis, Postgres, NATS, etc).
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* import { MeshFlow } from '@hotmeshio/hotmesh';
|
|
20
|
-
* import { Client as Postgres } from 'pg';
|
|
21
|
-
* import * as workflows from './workflows';
|
|
22
|
-
*
|
|
23
|
-
* async function run() {
|
|
24
|
-
* const worker = await MeshFlow.Worker.create({
|
|
25
|
-
* connection: {
|
|
26
|
-
* class: Postgres,
|
|
27
|
-
* options: { connectionString: 'postgres://user:password@localhost:5432/db' }
|
|
28
|
-
* },
|
|
29
|
-
* taskQueue: 'default',
|
|
30
|
-
* workflow: workflows.example,
|
|
31
|
-
* });
|
|
32
|
-
*
|
|
33
|
-
* await worker.run();
|
|
34
|
-
* }
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
class WorkerService {
|
|
38
|
-
static hashOptions(connection) {
|
|
39
|
-
if ('options' in connection) {
|
|
40
|
-
//shorthand format
|
|
41
|
-
return (0, utils_1.hashOptions)(connection.options);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
//longhand format (sub, store, stream, pub, search)
|
|
45
|
-
const response = [];
|
|
46
|
-
for (const p in connection) {
|
|
47
|
-
if (connection[p].options) {
|
|
48
|
-
response.push((0, utils_1.hashOptions)(connection[p].options));
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return response.join('');
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* @private
|
|
56
|
-
*/
|
|
57
|
-
constructor() { }
|
|
58
|
-
/**
|
|
59
|
-
* @private
|
|
60
|
-
*/
|
|
61
|
-
static async activateWorkflow(hotMesh) {
|
|
62
|
-
const app = await hotMesh.engine.store.getApp(hotMesh.engine.appId);
|
|
63
|
-
const appVersion = app?.version;
|
|
64
|
-
if (!appVersion) {
|
|
65
|
-
try {
|
|
66
|
-
await hotMesh.deploy((0, factory_1.getWorkflowYAML)(hotMesh.engine.appId, factory_1.APP_VERSION));
|
|
67
|
-
await hotMesh.activate(factory_1.APP_VERSION);
|
|
68
|
-
}
|
|
69
|
-
catch (err) {
|
|
70
|
-
hotMesh.engine.logger.error('meshflow-worker-deploy-activate-err', err);
|
|
71
|
-
throw err;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
else if (app && !app.active) {
|
|
75
|
-
try {
|
|
76
|
-
await hotMesh.activate(factory_1.APP_VERSION);
|
|
77
|
-
}
|
|
78
|
-
catch (err) {
|
|
79
|
-
hotMesh.engine.logger.error('meshflow-worker-activate-err', err);
|
|
80
|
-
throw err;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* @private
|
|
86
|
-
*/
|
|
87
|
-
static registerActivities(activities) {
|
|
88
|
-
if (typeof activities === 'function' &&
|
|
89
|
-
typeof WorkerService.activityRegistry[activities.name] !== 'function') {
|
|
90
|
-
WorkerService.activityRegistry[activities.name] = activities;
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
Object.keys(activities).forEach((key) => {
|
|
94
|
-
if (activities[key].name &&
|
|
95
|
-
typeof WorkerService.activityRegistry[activities[key].name] !==
|
|
96
|
-
'function') {
|
|
97
|
-
WorkerService.activityRegistry[activities[key].name] = activities[key];
|
|
98
|
-
}
|
|
99
|
-
else if (typeof activities[key] === 'function') {
|
|
100
|
-
WorkerService.activityRegistry[key] = activities[key];
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
return WorkerService.activityRegistry;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Connects a worker to the mesh.
|
|
108
|
-
*
|
|
109
|
-
* @example
|
|
110
|
-
* ```typescript
|
|
111
|
-
* import { MeshFlow } from '@hotmeshio/hotmesh';
|
|
112
|
-
* import { Client as Postgres } from 'pg';
|
|
113
|
-
* import * as workflows from './workflows';
|
|
114
|
-
*
|
|
115
|
-
* async function run() {
|
|
116
|
-
* const worker = await MeshFlow.Worker.create({
|
|
117
|
-
* connection: {
|
|
118
|
-
* class: Postgres,
|
|
119
|
-
* options: {
|
|
120
|
-
* connectionString: 'postgres://user:password@localhost:5432/db'
|
|
121
|
-
* },
|
|
122
|
-
* },
|
|
123
|
-
* taskQueue: 'default',
|
|
124
|
-
* workflow: workflows.example,
|
|
125
|
-
* });
|
|
126
|
-
*
|
|
127
|
-
* await worker.run();
|
|
128
|
-
* }
|
|
129
|
-
* ```
|
|
130
|
-
*/
|
|
131
|
-
static async create(config) {
|
|
132
|
-
const workflow = config.workflow;
|
|
133
|
-
const [workflowFunctionName, workflowFunction] = WorkerService.resolveWorkflowTarget(workflow);
|
|
134
|
-
const baseTopic = `${config.taskQueue}-${workflowFunctionName}`;
|
|
135
|
-
const activityTopic = `${baseTopic}-activity`;
|
|
136
|
-
const workflowTopic = `${baseTopic}`;
|
|
137
|
-
//initialize supporting workflows
|
|
138
|
-
const worker = new WorkerService();
|
|
139
|
-
worker.activityRunner = await worker.initActivityWorker(config, activityTopic);
|
|
140
|
-
worker.workflowRunner = await worker.initWorkflowWorker(config, workflowTopic, workflowFunction);
|
|
141
|
-
search_1.Search.configureSearchIndex(worker.workflowRunner, config.search);
|
|
142
|
-
await WorkerService.activateWorkflow(worker.workflowRunner);
|
|
143
|
-
return worker;
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* @private
|
|
147
|
-
*/
|
|
148
|
-
static resolveWorkflowTarget(workflow, name) {
|
|
149
|
-
let workflowFunction;
|
|
150
|
-
if (typeof workflow === 'function') {
|
|
151
|
-
workflowFunction = workflow;
|
|
152
|
-
return [workflowFunction.name ?? name, workflowFunction];
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
const workflowFunctionNames = Object.keys(workflow);
|
|
156
|
-
const lastFunctionName = workflowFunctionNames[workflowFunctionNames.length - 1];
|
|
157
|
-
workflowFunction = workflow[lastFunctionName];
|
|
158
|
-
return WorkerService.resolveWorkflowTarget(workflowFunction, lastFunctionName);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Run the connected worker; no-op (unnecessary to call)
|
|
163
|
-
*/
|
|
164
|
-
async run() {
|
|
165
|
-
this.workflowRunner.engine.logger.info('meshflow-worker-running');
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* @private
|
|
169
|
-
*/
|
|
170
|
-
async initActivityWorker(config, activityTopic) {
|
|
171
|
-
const providerConfig = config.connection;
|
|
172
|
-
const targetNamespace = config?.namespace ?? factory_1.APP_ID;
|
|
173
|
-
const optionsHash = WorkerService.hashOptions(config?.connection);
|
|
174
|
-
const targetTopic = `${optionsHash}.${targetNamespace}.${activityTopic}`;
|
|
175
|
-
const hotMeshWorker = await hotmesh_1.HotMesh.init({
|
|
176
|
-
guid: config.guid ? `${config.guid}XA` : undefined,
|
|
177
|
-
logLevel: config.options?.logLevel ?? enums_1.HMSH_LOGLEVEL,
|
|
178
|
-
appId: targetNamespace,
|
|
179
|
-
engine: { connection: providerConfig },
|
|
180
|
-
workers: [
|
|
181
|
-
{
|
|
182
|
-
topic: activityTopic,
|
|
183
|
-
connection: providerConfig,
|
|
184
|
-
callback: this.wrapActivityFunctions().bind(this),
|
|
185
|
-
},
|
|
186
|
-
],
|
|
187
|
-
});
|
|
188
|
-
WorkerService.instances.set(targetTopic, hotMeshWorker);
|
|
189
|
-
return hotMeshWorker;
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* @private
|
|
193
|
-
*/
|
|
194
|
-
wrapActivityFunctions() {
|
|
195
|
-
return async (data) => {
|
|
196
|
-
try {
|
|
197
|
-
//always run the activity function when instructed; return the response
|
|
198
|
-
const activityInput = data.data;
|
|
199
|
-
const activityName = activityInput.activityName;
|
|
200
|
-
const activityFunction = WorkerService.activityRegistry[activityName];
|
|
201
|
-
const pojoResponse = await activityFunction.apply(this, activityInput.arguments);
|
|
202
|
-
return {
|
|
203
|
-
status: stream_1.StreamStatus.SUCCESS,
|
|
204
|
-
metadata: { ...data.metadata },
|
|
205
|
-
data: { response: pojoResponse },
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
catch (err) {
|
|
209
|
-
this.activityRunner.engine.logger.error('meshflow-worker-activity-err', {
|
|
210
|
-
name: err.name,
|
|
211
|
-
message: err.message,
|
|
212
|
-
stack: err.stack,
|
|
213
|
-
});
|
|
214
|
-
if (!(err instanceof errors_1.MeshFlowTimeoutError) &&
|
|
215
|
-
!(err instanceof errors_1.MeshFlowMaxedError) &&
|
|
216
|
-
!(err instanceof errors_1.MeshFlowFatalError)) {
|
|
217
|
-
//use code 599 as a proxy for all retryable errors
|
|
218
|
-
// (basically anything not 596, 597, 598)
|
|
219
|
-
return {
|
|
220
|
-
status: stream_1.StreamStatus.SUCCESS,
|
|
221
|
-
code: enums_1.HMSH_CODE_MESHFLOW_RETRYABLE,
|
|
222
|
-
metadata: { ...data.metadata },
|
|
223
|
-
data: {
|
|
224
|
-
$error: {
|
|
225
|
-
message: err.message,
|
|
226
|
-
stack: err.stack,
|
|
227
|
-
timestamp: (0, utils_1.formatISODate)(new Date()),
|
|
228
|
-
},
|
|
229
|
-
},
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
return {
|
|
233
|
-
//always returrn success (the MeshFlow module is just fine);
|
|
234
|
-
// it's the user's function that has failed
|
|
235
|
-
status: stream_1.StreamStatus.SUCCESS,
|
|
236
|
-
code: err.code,
|
|
237
|
-
stack: err.stack,
|
|
238
|
-
metadata: { ...data.metadata },
|
|
239
|
-
data: {
|
|
240
|
-
$error: {
|
|
241
|
-
message: err.message,
|
|
242
|
-
stack: err.stack,
|
|
243
|
-
timestamp: (0, utils_1.formatISODate)(new Date()),
|
|
244
|
-
code: err.code,
|
|
245
|
-
},
|
|
246
|
-
},
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* @private
|
|
253
|
-
*/
|
|
254
|
-
async initWorkflowWorker(config, workflowTopic, workflowFunction) {
|
|
255
|
-
const providerConfig = config.connection;
|
|
256
|
-
const targetNamespace = config?.namespace ?? factory_1.APP_ID;
|
|
257
|
-
const optionsHash = WorkerService.hashOptions(config?.connection);
|
|
258
|
-
const targetTopic = `${optionsHash}.${targetNamespace}.${workflowTopic}`;
|
|
259
|
-
const hotMeshWorker = await hotmesh_1.HotMesh.init({
|
|
260
|
-
guid: config.guid,
|
|
261
|
-
logLevel: config.options?.logLevel ?? enums_1.HMSH_LOGLEVEL,
|
|
262
|
-
appId: config.namespace ?? factory_1.APP_ID,
|
|
263
|
-
engine: { connection: providerConfig },
|
|
264
|
-
workers: [
|
|
265
|
-
{
|
|
266
|
-
topic: workflowTopic,
|
|
267
|
-
connection: providerConfig,
|
|
268
|
-
callback: this.wrapWorkflowFunction(workflowFunction, workflowTopic, config).bind(this),
|
|
269
|
-
},
|
|
270
|
-
],
|
|
271
|
-
});
|
|
272
|
-
WorkerService.instances.set(targetTopic, hotMeshWorker);
|
|
273
|
-
return hotMeshWorker;
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* @private
|
|
277
|
-
*/
|
|
278
|
-
wrapWorkflowFunction(workflowFunction, workflowTopic, config) {
|
|
279
|
-
return async (data) => {
|
|
280
|
-
const counter = { counter: 0 };
|
|
281
|
-
const interruptionRegistry = [];
|
|
282
|
-
let isProcessing = false;
|
|
283
|
-
try {
|
|
284
|
-
//incoming data payload has arguments and workflowId
|
|
285
|
-
const workflowInput = data.data;
|
|
286
|
-
const context = new Map();
|
|
287
|
-
context.set('canRetry', workflowInput.canRetry);
|
|
288
|
-
context.set('expire', workflowInput.expire);
|
|
289
|
-
context.set('counter', counter);
|
|
290
|
-
context.set('interruptionRegistry', interruptionRegistry);
|
|
291
|
-
context.set('connection', config.connection);
|
|
292
|
-
context.set('namespace', config.namespace ?? factory_1.APP_ID);
|
|
293
|
-
context.set('raw', data);
|
|
294
|
-
context.set('workflowId', workflowInput.workflowId);
|
|
295
|
-
if (workflowInput.originJobId) {
|
|
296
|
-
//if present there is an origin job to which this job is subordinated;
|
|
297
|
-
// garbage collect (expire) this job when originJobId is expired
|
|
298
|
-
context.set('originJobId', workflowInput.originJobId);
|
|
299
|
-
}
|
|
300
|
-
//TODO: the query is provider-specific;
|
|
301
|
-
// refactor as an abstract interface the provider must implement
|
|
302
|
-
let replayQuery = '';
|
|
303
|
-
if (workflowInput.workflowDimension) {
|
|
304
|
-
//every hook function runs in an isolated dimension controlled
|
|
305
|
-
//by the index assigned when the signal was received; even if the
|
|
306
|
-
//hook function re-runs, its scope will always remain constant
|
|
307
|
-
context.set('workflowDimension', workflowInput.workflowDimension);
|
|
308
|
-
replayQuery = `-*${workflowInput.workflowDimension}-*`;
|
|
309
|
-
}
|
|
310
|
-
else {
|
|
311
|
-
//last letter of words like 'hook', 'sleep', 'wait', 'signal', 'search', 'start', 'proxy', 'child', 'collator', 'trace', 'enrich', 'publish'
|
|
312
|
-
replayQuery = '-*[ehklptydr]-*';
|
|
313
|
-
}
|
|
314
|
-
context.set('workflowTopic', workflowTopic);
|
|
315
|
-
context.set('workflowName', workflowTopic.split('-').pop());
|
|
316
|
-
context.set('workflowTrace', data.metadata.trc);
|
|
317
|
-
context.set('workflowSpan', data.metadata.spn);
|
|
318
|
-
const store = this.workflowRunner.engine.store;
|
|
319
|
-
const [cursor, replay] = await store.findJobFields(workflowInput.workflowId, replayQuery, 50000, 5000);
|
|
320
|
-
context.set('replay', replay);
|
|
321
|
-
context.set('cursor', cursor); // if != 0, more remain
|
|
322
|
-
const workflowResponse = await storage_1.asyncLocalStorage.run(context, async () => {
|
|
323
|
-
return await workflowFunction.apply(this, workflowInput.arguments);
|
|
324
|
-
});
|
|
325
|
-
return {
|
|
326
|
-
code: 200,
|
|
327
|
-
status: stream_1.StreamStatus.SUCCESS,
|
|
328
|
-
metadata: { ...data.metadata },
|
|
329
|
-
data: { response: workflowResponse, done: true },
|
|
330
|
-
};
|
|
331
|
-
}
|
|
332
|
-
catch (err) {
|
|
333
|
-
if (isProcessing) {
|
|
334
|
-
return;
|
|
335
|
-
}
|
|
336
|
-
if (err instanceof errors_1.MeshFlowWaitForError ||
|
|
337
|
-
interruptionRegistry.length > 1) {
|
|
338
|
-
isProcessing = true;
|
|
339
|
-
//NOTE: this type is spawned when `Promise.all` is used OR if the interruption is a `waitFor`
|
|
340
|
-
const workflowInput = data.data;
|
|
341
|
-
const execIndex = counter.counter - interruptionRegistry.length + 1;
|
|
342
|
-
const { workflowId, workflowTopic, workflowDimension, originJobId, expire, } = workflowInput;
|
|
343
|
-
const collatorFlowId = `${(0, utils_1.guid)()}$C`;
|
|
344
|
-
return {
|
|
345
|
-
status: stream_1.StreamStatus.SUCCESS,
|
|
346
|
-
code: enums_1.HMSH_CODE_MESHFLOW_ALL,
|
|
347
|
-
metadata: { ...data.metadata },
|
|
348
|
-
data: {
|
|
349
|
-
code: enums_1.HMSH_CODE_MESHFLOW_ALL,
|
|
350
|
-
items: [...interruptionRegistry],
|
|
351
|
-
size: interruptionRegistry.length,
|
|
352
|
-
workflowDimension: workflowDimension || '',
|
|
353
|
-
index: execIndex,
|
|
354
|
-
originJobId: originJobId || workflowId,
|
|
355
|
-
parentWorkflowId: workflowId,
|
|
356
|
-
workflowId: collatorFlowId,
|
|
357
|
-
workflowTopic: workflowTopic,
|
|
358
|
-
expire,
|
|
359
|
-
},
|
|
360
|
-
};
|
|
361
|
-
}
|
|
362
|
-
else if (err instanceof errors_1.MeshFlowSleepError) {
|
|
363
|
-
//return the sleep interruption
|
|
364
|
-
isProcessing = true;
|
|
365
|
-
return {
|
|
366
|
-
status: stream_1.StreamStatus.SUCCESS,
|
|
367
|
-
code: err.code,
|
|
368
|
-
metadata: { ...data.metadata },
|
|
369
|
-
data: {
|
|
370
|
-
code: err.code,
|
|
371
|
-
message: JSON.stringify({
|
|
372
|
-
duration: err.duration,
|
|
373
|
-
index: err.index,
|
|
374
|
-
workflowDimension: err.workflowDimension,
|
|
375
|
-
}),
|
|
376
|
-
duration: err.duration,
|
|
377
|
-
index: err.index,
|
|
378
|
-
workflowDimension: err.workflowDimension,
|
|
379
|
-
},
|
|
380
|
-
};
|
|
381
|
-
}
|
|
382
|
-
else if (err instanceof errors_1.MeshFlowProxyError) {
|
|
383
|
-
//return the proxyActivity interruption
|
|
384
|
-
isProcessing = true;
|
|
385
|
-
return {
|
|
386
|
-
status: stream_1.StreamStatus.SUCCESS,
|
|
387
|
-
code: err.code,
|
|
388
|
-
metadata: { ...data.metadata },
|
|
389
|
-
data: {
|
|
390
|
-
code: err.code,
|
|
391
|
-
message: JSON.stringify({
|
|
392
|
-
message: err.message,
|
|
393
|
-
workflowId: err.workflowId,
|
|
394
|
-
activityName: err.activityName,
|
|
395
|
-
dimension: err.workflowDimension,
|
|
396
|
-
}),
|
|
397
|
-
arguments: err.arguments,
|
|
398
|
-
workflowDimension: err.workflowDimension,
|
|
399
|
-
index: err.index,
|
|
400
|
-
originJobId: err.originJobId,
|
|
401
|
-
parentWorkflowId: err.parentWorkflowId,
|
|
402
|
-
expire: err.expire,
|
|
403
|
-
workflowId: err.workflowId,
|
|
404
|
-
workflowTopic: err.workflowTopic,
|
|
405
|
-
activityName: err.activityName,
|
|
406
|
-
backoffCoefficient: err.backoffCoefficient,
|
|
407
|
-
maximumAttempts: err.maximumAttempts,
|
|
408
|
-
maximumInterval: err.maximumInterval,
|
|
409
|
-
},
|
|
410
|
-
};
|
|
411
|
-
}
|
|
412
|
-
else if (err instanceof errors_1.MeshFlowChildError) {
|
|
413
|
-
//return the child interruption
|
|
414
|
-
isProcessing = true;
|
|
415
|
-
const msg = {
|
|
416
|
-
message: err.message,
|
|
417
|
-
workflowId: err.workflowId,
|
|
418
|
-
dimension: err.workflowDimension,
|
|
419
|
-
};
|
|
420
|
-
return {
|
|
421
|
-
status: stream_1.StreamStatus.SUCCESS,
|
|
422
|
-
code: err.code,
|
|
423
|
-
metadata: { ...data.metadata },
|
|
424
|
-
data: {
|
|
425
|
-
arguments: err.arguments,
|
|
426
|
-
await: err.await,
|
|
427
|
-
backoffCoefficient: err.backoffCoefficient || enums_1.HMSH_MESHFLOW_EXP_BACKOFF,
|
|
428
|
-
code: err.code,
|
|
429
|
-
index: err.index,
|
|
430
|
-
message: JSON.stringify(msg),
|
|
431
|
-
maximumAttempts: err.maximumAttempts || enums_1.HMSH_MESHFLOW_MAX_ATTEMPTS,
|
|
432
|
-
maximumInterval: err.maximumInterval || (0, utils_1.s)(enums_1.HMSH_MESHFLOW_MAX_INTERVAL),
|
|
433
|
-
originJobId: err.originJobId,
|
|
434
|
-
parentWorkflowId: err.parentWorkflowId,
|
|
435
|
-
expire: err.expire,
|
|
436
|
-
persistent: err.persistent,
|
|
437
|
-
signalIn: err.signalIn,
|
|
438
|
-
workflowDimension: err.workflowDimension,
|
|
439
|
-
workflowId: err.workflowId,
|
|
440
|
-
workflowTopic: err.workflowTopic,
|
|
441
|
-
},
|
|
442
|
-
};
|
|
443
|
-
}
|
|
444
|
-
// ALL other errors are actual fatal errors (598, 597, 596)
|
|
445
|
-
// OR will be retried (599)
|
|
446
|
-
isProcessing = true;
|
|
447
|
-
return {
|
|
448
|
-
status: stream_1.StreamStatus.SUCCESS,
|
|
449
|
-
code: err.code || new errors_1.MeshFlowRetryError(err.message).code,
|
|
450
|
-
metadata: { ...data.metadata },
|
|
451
|
-
data: {
|
|
452
|
-
$error: {
|
|
453
|
-
message: err.message,
|
|
454
|
-
type: err.name,
|
|
455
|
-
name: err.name,
|
|
456
|
-
stack: err.stack,
|
|
457
|
-
code: err.code || new errors_1.MeshFlowRetryError(err.message).code,
|
|
458
|
-
},
|
|
459
|
-
},
|
|
460
|
-
};
|
|
461
|
-
}
|
|
462
|
-
};
|
|
463
|
-
}
|
|
464
|
-
/**
|
|
465
|
-
* @private
|
|
466
|
-
*/
|
|
467
|
-
static async shutdown() {
|
|
468
|
-
for (const [_, hotMeshInstance] of WorkerService.instances) {
|
|
469
|
-
(await hotMeshInstance).stop();
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
_a = WorkerService;
|
|
474
|
-
/**
|
|
475
|
-
* @private
|
|
476
|
-
*/
|
|
477
|
-
WorkerService.activityRegistry = {}; //user's activities
|
|
478
|
-
/**
|
|
479
|
-
* @private
|
|
480
|
-
*/
|
|
481
|
-
WorkerService.instances = new Map();
|
|
482
|
-
/**
|
|
483
|
-
* @private
|
|
484
|
-
*/
|
|
485
|
-
WorkerService.getHotMesh = async (workflowTopic, config, options) => {
|
|
486
|
-
const targetNamespace = config?.namespace ?? factory_1.APP_ID;
|
|
487
|
-
const optionsHash = WorkerService.hashOptions(config?.connection);
|
|
488
|
-
const targetTopic = `${optionsHash}.${targetNamespace}.${workflowTopic}`;
|
|
489
|
-
if (WorkerService.instances.has(targetTopic)) {
|
|
490
|
-
return await WorkerService.instances.get(targetTopic);
|
|
491
|
-
}
|
|
492
|
-
const hotMeshClient = hotmesh_1.HotMesh.init({
|
|
493
|
-
logLevel: options?.logLevel ?? enums_1.HMSH_LOGLEVEL,
|
|
494
|
-
appId: targetNamespace,
|
|
495
|
-
engine: {
|
|
496
|
-
connection: { ...config?.connection },
|
|
497
|
-
},
|
|
498
|
-
});
|
|
499
|
-
WorkerService.instances.set(targetTopic, hotMeshClient);
|
|
500
|
-
await WorkerService.activateWorkflow(await hotMeshClient);
|
|
501
|
-
return hotMeshClient;
|
|
502
|
-
};
|
|
503
|
-
/**
|
|
504
|
-
* @private
|
|
505
|
-
*/
|
|
506
|
-
WorkerService.Context = {
|
|
507
|
-
info: () => {
|
|
508
|
-
return {
|
|
509
|
-
workflowId: '',
|
|
510
|
-
workflowTopic: '',
|
|
511
|
-
};
|
|
512
|
-
},
|
|
513
|
-
};
|
|
514
|
-
exports.WorkerService = WorkerService;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A workflow-safe version of Promise.all, currently limited to certain concurrency.
|
|
3
|
-
* @private
|
|
4
|
-
* @param {...Promise<T>[]} promises - An array of promises.
|
|
5
|
-
* @returns {Promise<T[]>} A promise resolving to an array of results.
|
|
6
|
-
*/
|
|
7
|
-
export declare function all<T>(...promises: Promise<T>[]): Promise<T[]>;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.all = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* A workflow-safe version of Promise.all, currently limited to certain concurrency.
|
|
6
|
-
* @private
|
|
7
|
-
* @param {...Promise<T>[]} promises - An array of promises.
|
|
8
|
-
* @returns {Promise<T[]>} A promise resolving to an array of results.
|
|
9
|
-
*/
|
|
10
|
-
async function all(...promises) {
|
|
11
|
-
// a micro-delay to ensure correct sequencing
|
|
12
|
-
await new Promise((resolve) => setTimeout(resolve, 1));
|
|
13
|
-
return await Promise.all(promises);
|
|
14
|
-
}
|
|
15
|
-
exports.all = all;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { MeshFlowChildError, MeshFlowFatalError, MeshFlowMaxedError, MeshFlowProxyError, MeshFlowRetryError, MeshFlowSleepError, MeshFlowTimeoutError, MeshFlowWaitForError } from '../../../modules/errors';
|
|
2
|
-
import { KeyService, KeyType } from '../../../modules/key';
|
|
3
|
-
import { asyncLocalStorage } from '../../../modules/storage';
|
|
4
|
-
import { deterministicRandom, guid, s, sleepImmediate } from '../../../modules/utils';
|
|
5
|
-
import { HotMesh } from '../../hotmesh';
|
|
6
|
-
import { SerializerService } from '../../serializer';
|
|
7
|
-
import { ActivityConfig, ChildResponseType, HookOptions, ProxyResponseType, ProxyType, WorkflowContext, WorkflowOptions } from '../../../types/meshflow';
|
|
8
|
-
import { JobInterruptOptions } from '../../../types/job';
|
|
9
|
-
import { StreamCode, StreamStatus } from '../../../types/stream';
|
|
10
|
-
import { StringAnyType, StringScalarType, StringStringType } from '../../../types/serializer';
|
|
11
|
-
import { HMSH_CODE_MESHFLOW_CHILD, HMSH_CODE_MESHFLOW_FATAL, HMSH_CODE_MESHFLOW_MAXED, HMSH_CODE_MESHFLOW_PROXY, HMSH_CODE_MESHFLOW_SLEEP, HMSH_CODE_MESHFLOW_TIMEOUT, HMSH_CODE_MESHFLOW_WAIT, HMSH_MESHFLOW_EXP_BACKOFF, HMSH_MESHFLOW_MAX_ATTEMPTS, HMSH_MESHFLOW_MAX_INTERVAL } from '../../../modules/enums';
|
|
12
|
-
import { MeshFlowChildErrorType, MeshFlowProxyErrorType } from '../../../types/error';
|
|
13
|
-
import { TelemetryService } from '../../telemetry';
|
|
14
|
-
import { QuorumMessage } from '../../../types';
|
|
15
|
-
import { UserMessage } from '../../../types/quorum';
|
|
16
|
-
import { Search } from '../search';
|
|
17
|
-
import { WorkerService } from '../worker';
|
|
18
|
-
export { MeshFlowChildError, MeshFlowFatalError, MeshFlowMaxedError, MeshFlowProxyError, MeshFlowRetryError, MeshFlowSleepError, MeshFlowTimeoutError, MeshFlowWaitForError, KeyService, KeyType, asyncLocalStorage, deterministicRandom, guid, s, sleepImmediate, HotMesh, SerializerService, ActivityConfig, ChildResponseType, HookOptions, ProxyResponseType, ProxyType, WorkflowContext, WorkflowOptions, JobInterruptOptions, StreamCode, StreamStatus, StringAnyType, StringScalarType, StringStringType, HMSH_CODE_MESHFLOW_CHILD, HMSH_CODE_MESHFLOW_FATAL, HMSH_CODE_MESHFLOW_MAXED, HMSH_CODE_MESHFLOW_PROXY, HMSH_CODE_MESHFLOW_SLEEP, HMSH_CODE_MESHFLOW_TIMEOUT, HMSH_CODE_MESHFLOW_WAIT, HMSH_MESHFLOW_EXP_BACKOFF, HMSH_MESHFLOW_MAX_ATTEMPTS, HMSH_MESHFLOW_MAX_INTERVAL, MeshFlowChildErrorType, MeshFlowProxyErrorType, TelemetryService, QuorumMessage, UserMessage, Search, WorkerService, };
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WorkerService = exports.Search = exports.TelemetryService = exports.HMSH_MESHFLOW_MAX_INTERVAL = exports.HMSH_MESHFLOW_MAX_ATTEMPTS = exports.HMSH_MESHFLOW_EXP_BACKOFF = exports.HMSH_CODE_MESHFLOW_WAIT = exports.HMSH_CODE_MESHFLOW_TIMEOUT = exports.HMSH_CODE_MESHFLOW_SLEEP = exports.HMSH_CODE_MESHFLOW_PROXY = exports.HMSH_CODE_MESHFLOW_MAXED = exports.HMSH_CODE_MESHFLOW_FATAL = exports.HMSH_CODE_MESHFLOW_CHILD = exports.StreamStatus = exports.SerializerService = exports.HotMesh = exports.sleepImmediate = exports.s = exports.guid = exports.deterministicRandom = exports.asyncLocalStorage = exports.KeyType = exports.KeyService = exports.MeshFlowWaitForError = exports.MeshFlowTimeoutError = exports.MeshFlowSleepError = exports.MeshFlowRetryError = exports.MeshFlowProxyError = exports.MeshFlowMaxedError = exports.MeshFlowFatalError = exports.MeshFlowChildError = void 0;
|
|
4
|
-
const errors_1 = require("../../../modules/errors");
|
|
5
|
-
Object.defineProperty(exports, "MeshFlowChildError", { enumerable: true, get: function () { return errors_1.MeshFlowChildError; } });
|
|
6
|
-
Object.defineProperty(exports, "MeshFlowFatalError", { enumerable: true, get: function () { return errors_1.MeshFlowFatalError; } });
|
|
7
|
-
Object.defineProperty(exports, "MeshFlowMaxedError", { enumerable: true, get: function () { return errors_1.MeshFlowMaxedError; } });
|
|
8
|
-
Object.defineProperty(exports, "MeshFlowProxyError", { enumerable: true, get: function () { return errors_1.MeshFlowProxyError; } });
|
|
9
|
-
Object.defineProperty(exports, "MeshFlowRetryError", { enumerable: true, get: function () { return errors_1.MeshFlowRetryError; } });
|
|
10
|
-
Object.defineProperty(exports, "MeshFlowSleepError", { enumerable: true, get: function () { return errors_1.MeshFlowSleepError; } });
|
|
11
|
-
Object.defineProperty(exports, "MeshFlowTimeoutError", { enumerable: true, get: function () { return errors_1.MeshFlowTimeoutError; } });
|
|
12
|
-
Object.defineProperty(exports, "MeshFlowWaitForError", { enumerable: true, get: function () { return errors_1.MeshFlowWaitForError; } });
|
|
13
|
-
const key_1 = require("../../../modules/key");
|
|
14
|
-
Object.defineProperty(exports, "KeyService", { enumerable: true, get: function () { return key_1.KeyService; } });
|
|
15
|
-
Object.defineProperty(exports, "KeyType", { enumerable: true, get: function () { return key_1.KeyType; } });
|
|
16
|
-
const storage_1 = require("../../../modules/storage");
|
|
17
|
-
Object.defineProperty(exports, "asyncLocalStorage", { enumerable: true, get: function () { return storage_1.asyncLocalStorage; } });
|
|
18
|
-
const utils_1 = require("../../../modules/utils");
|
|
19
|
-
Object.defineProperty(exports, "deterministicRandom", { enumerable: true, get: function () { return utils_1.deterministicRandom; } });
|
|
20
|
-
Object.defineProperty(exports, "guid", { enumerable: true, get: function () { return utils_1.guid; } });
|
|
21
|
-
Object.defineProperty(exports, "s", { enumerable: true, get: function () { return utils_1.s; } });
|
|
22
|
-
Object.defineProperty(exports, "sleepImmediate", { enumerable: true, get: function () { return utils_1.sleepImmediate; } });
|
|
23
|
-
const hotmesh_1 = require("../../hotmesh");
|
|
24
|
-
Object.defineProperty(exports, "HotMesh", { enumerable: true, get: function () { return hotmesh_1.HotMesh; } });
|
|
25
|
-
const serializer_1 = require("../../serializer");
|
|
26
|
-
Object.defineProperty(exports, "SerializerService", { enumerable: true, get: function () { return serializer_1.SerializerService; } });
|
|
27
|
-
const stream_1 = require("../../../types/stream");
|
|
28
|
-
Object.defineProperty(exports, "StreamStatus", { enumerable: true, get: function () { return stream_1.StreamStatus; } });
|
|
29
|
-
const enums_1 = require("../../../modules/enums");
|
|
30
|
-
Object.defineProperty(exports, "HMSH_CODE_MESHFLOW_CHILD", { enumerable: true, get: function () { return enums_1.HMSH_CODE_MESHFLOW_CHILD; } });
|
|
31
|
-
Object.defineProperty(exports, "HMSH_CODE_MESHFLOW_FATAL", { enumerable: true, get: function () { return enums_1.HMSH_CODE_MESHFLOW_FATAL; } });
|
|
32
|
-
Object.defineProperty(exports, "HMSH_CODE_MESHFLOW_MAXED", { enumerable: true, get: function () { return enums_1.HMSH_CODE_MESHFLOW_MAXED; } });
|
|
33
|
-
Object.defineProperty(exports, "HMSH_CODE_MESHFLOW_PROXY", { enumerable: true, get: function () { return enums_1.HMSH_CODE_MESHFLOW_PROXY; } });
|
|
34
|
-
Object.defineProperty(exports, "HMSH_CODE_MESHFLOW_SLEEP", { enumerable: true, get: function () { return enums_1.HMSH_CODE_MESHFLOW_SLEEP; } });
|
|
35
|
-
Object.defineProperty(exports, "HMSH_CODE_MESHFLOW_TIMEOUT", { enumerable: true, get: function () { return enums_1.HMSH_CODE_MESHFLOW_TIMEOUT; } });
|
|
36
|
-
Object.defineProperty(exports, "HMSH_CODE_MESHFLOW_WAIT", { enumerable: true, get: function () { return enums_1.HMSH_CODE_MESHFLOW_WAIT; } });
|
|
37
|
-
Object.defineProperty(exports, "HMSH_MESHFLOW_EXP_BACKOFF", { enumerable: true, get: function () { return enums_1.HMSH_MESHFLOW_EXP_BACKOFF; } });
|
|
38
|
-
Object.defineProperty(exports, "HMSH_MESHFLOW_MAX_ATTEMPTS", { enumerable: true, get: function () { return enums_1.HMSH_MESHFLOW_MAX_ATTEMPTS; } });
|
|
39
|
-
Object.defineProperty(exports, "HMSH_MESHFLOW_MAX_INTERVAL", { enumerable: true, get: function () { return enums_1.HMSH_MESHFLOW_MAX_INTERVAL; } });
|
|
40
|
-
const telemetry_1 = require("../../telemetry");
|
|
41
|
-
Object.defineProperty(exports, "TelemetryService", { enumerable: true, get: function () { return telemetry_1.TelemetryService; } });
|
|
42
|
-
const search_1 = require("../search");
|
|
43
|
-
Object.defineProperty(exports, "Search", { enumerable: true, get: function () { return search_1.Search; } });
|
|
44
|
-
const worker_1 = require("../worker");
|
|
45
|
-
Object.defineProperty(exports, "WorkerService", { enumerable: true, get: function () { return worker_1.WorkerService; } });
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getContext = void 0;
|
|
4
|
-
const common_1 = require("./common");
|
|
5
|
-
/**
|
|
6
|
-
* Returns the current workflow context, restored from storage.
|
|
7
|
-
* @returns {WorkflowContext} The current workflow context.
|
|
8
|
-
*/
|
|
9
|
-
function getContext() {
|
|
10
|
-
const store = common_1.asyncLocalStorage.getStore();
|
|
11
|
-
const workflowId = store.get('workflowId');
|
|
12
|
-
const replay = store.get('replay');
|
|
13
|
-
const cursor = store.get('cursor');
|
|
14
|
-
const interruptionRegistry = store.get('interruptionRegistry');
|
|
15
|
-
const workflowDimension = store.get('workflowDimension') ?? '';
|
|
16
|
-
const workflowTopic = store.get('workflowTopic');
|
|
17
|
-
const connection = store.get('connection');
|
|
18
|
-
const namespace = store.get('namespace');
|
|
19
|
-
const originJobId = store.get('originJobId');
|
|
20
|
-
const workflowTrace = store.get('workflowTrace');
|
|
21
|
-
const canRetry = store.get('canRetry');
|
|
22
|
-
const workflowSpan = store.get('workflowSpan');
|
|
23
|
-
const expire = store.get('expire');
|
|
24
|
-
const COUNTER = store.get('counter');
|
|
25
|
-
const raw = store.get('raw');
|
|
26
|
-
return {
|
|
27
|
-
canRetry,
|
|
28
|
-
COUNTER,
|
|
29
|
-
counter: COUNTER.counter,
|
|
30
|
-
cursor,
|
|
31
|
-
interruptionRegistry,
|
|
32
|
-
connection,
|
|
33
|
-
expire,
|
|
34
|
-
namespace,
|
|
35
|
-
originJobId,
|
|
36
|
-
raw,
|
|
37
|
-
replay,
|
|
38
|
-
workflowId,
|
|
39
|
-
workflowDimension,
|
|
40
|
-
workflowTopic,
|
|
41
|
-
workflowTrace,
|
|
42
|
-
workflowSpan,
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
exports.getContext = getContext;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Determines if a replayed execution result already exists for the given prefix.
|
|
3
|
-
* @private
|
|
4
|
-
* @param {string} prefix - Identifier prefix (e.g., 'proxy', 'child', 'start', 'wait', etc.)
|
|
5
|
-
* @returns {Promise<[boolean, number, any]>} A tuple: [alreadyRan, executionIndex, restoredData]
|
|
6
|
-
*/
|
|
7
|
-
export declare function didRun(prefix: string): Promise<[boolean, number, any]>;
|