@hotmeshio/hotmesh 0.1.15 → 0.1.17
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 +623 -209
- package/build/index.d.ts +14 -3
- package/build/index.js +17 -4
- package/build/modules/enums.d.ts +12 -12
- package/build/modules/enums.js +15 -25
- package/build/modules/errors.d.ts +16 -16
- package/build/modules/errors.js +28 -28
- package/build/modules/key.d.ts +0 -37
- package/build/modules/key.js +4 -45
- package/build/modules/utils.d.ts +7 -15
- package/build/modules/utils.js +21 -44
- package/build/package.json +18 -15
- package/build/services/activities/activity.d.ts +0 -31
- package/build/services/activities/activity.js +1 -50
- package/build/services/activities/await.js +0 -4
- package/build/services/activities/cycle.d.ts +0 -7
- package/build/services/activities/cycle.js +1 -16
- package/build/services/activities/hook.d.ts +0 -6
- package/build/services/activities/hook.js +2 -12
- package/build/services/activities/interrupt.js +0 -8
- package/build/services/activities/signal.d.ts +0 -6
- package/build/services/activities/signal.js +0 -15
- package/build/services/activities/trigger.d.ts +4 -5
- package/build/services/activities/trigger.js +22 -16
- package/build/services/activities/worker.js +0 -4
- package/build/services/collator/index.d.ts +0 -70
- package/build/services/collator/index.js +1 -91
- package/build/services/compiler/deployer.js +6 -38
- package/build/services/compiler/index.d.ts +0 -15
- package/build/services/compiler/index.js +0 -20
- package/build/services/compiler/validator.d.ts +0 -3
- package/build/services/compiler/validator.js +0 -25
- package/build/services/connector/clients/ioredis.js +0 -2
- package/build/services/connector/clients/redis.js +0 -2
- package/build/services/connector/index.js +0 -2
- package/build/services/engine/index.d.ts +1 -10
- package/build/services/engine/index.js +1 -48
- package/build/services/exporter/index.d.ts +0 -27
- package/build/services/exporter/index.js +0 -33
- package/build/services/hotmesh/index.d.ts +8 -4
- package/build/services/hotmesh/index.js +20 -19
- package/build/services/logger/index.js +0 -2
- package/build/services/mapper/index.d.ts +0 -14
- package/build/services/mapper/index.js +0 -14
- package/build/services/meshcall/index.d.ts +21 -0
- package/build/services/meshcall/index.js +202 -0
- package/build/services/meshcall/schemas/factory.d.ts +2 -0
- package/build/services/meshcall/schemas/factory.js +179 -0
- package/build/services/meshdata/index.d.ts +75 -0
- package/build/services/meshdata/index.js +541 -0
- package/build/services/meshflow/client.d.ts +18 -0
- package/build/services/{durable → meshflow}/client.js +9 -40
- package/build/services/{durable → meshflow}/connection.d.ts +2 -1
- package/build/services/{durable → meshflow}/connection.js +1 -0
- package/build/services/meshflow/exporter.d.ts +29 -0
- package/build/services/{durable → meshflow}/exporter.js +0 -29
- package/build/services/meshflow/handle.d.ts +22 -0
- package/build/services/{durable → meshflow}/handle.js +0 -46
- package/build/services/meshflow/index.d.ts +17 -0
- package/build/services/meshflow/index.js +23 -0
- package/build/services/meshflow/schemas/factory.d.ts +4 -0
- package/build/services/{durable → meshflow}/schemas/factory.js +2 -30
- package/build/services/meshflow/search.d.ts +23 -0
- package/build/services/{durable → meshflow}/search.js +0 -99
- package/build/services/{durable → meshflow}/worker.d.ts +3 -2
- package/build/services/{durable → meshflow}/worker.js +23 -39
- package/build/services/meshflow/workflow.d.ts +27 -0
- package/build/services/{durable → meshflow}/workflow.js +27 -169
- package/build/services/pipe/functions/date.d.ts +0 -7
- package/build/services/pipe/functions/date.js +0 -7
- package/build/services/pipe/functions/math.js +0 -2
- package/build/services/pipe/index.d.ts +0 -15
- package/build/services/pipe/index.js +2 -23
- package/build/services/quorum/index.d.ts +1 -7
- package/build/services/quorum/index.js +0 -21
- package/build/services/reporter/index.d.ts +0 -5
- package/build/services/reporter/index.js +0 -9
- package/build/services/router/index.d.ts +0 -9
- package/build/services/router/index.js +2 -30
- package/build/services/serializer/index.js +6 -23
- package/build/services/store/cache.d.ts +0 -19
- package/build/services/store/cache.js +0 -19
- package/build/services/store/clients/ioredis.d.ts +0 -6
- package/build/services/store/clients/ioredis.js +0 -7
- package/build/services/store/clients/redis.d.ts +0 -6
- package/build/services/store/clients/redis.js +0 -6
- package/build/services/store/index.d.ts +0 -55
- package/build/services/store/index.js +14 -87
- package/build/services/stream/clients/ioredis.js +1 -4
- package/build/services/task/index.d.ts +0 -9
- package/build/services/task/index.js +0 -31
- package/build/services/telemetry/index.d.ts +0 -7
- package/build/services/telemetry/index.js +1 -13
- package/build/services/worker/index.d.ts +1 -4
- package/build/services/worker/index.js +0 -6
- package/build/types/activity.d.ts +0 -81
- package/build/types/error.d.ts +5 -5
- package/build/types/exporter.d.ts +1 -14
- package/build/types/hotmesh.d.ts +4 -12
- package/build/types/hotmesh.js +0 -3
- package/build/types/index.d.ts +5 -3
- package/build/types/index.js +1 -1
- package/build/types/job.d.ts +1 -95
- package/build/types/meshcall.d.ts +54 -0
- package/build/types/meshdata.d.ts +59 -0
- package/build/types/meshdata.js +2 -0
- package/build/types/meshflow.d.ts +202 -0
- package/build/types/meshflow.js +2 -0
- package/build/types/pipe.d.ts +0 -65
- package/build/types/quorum.d.ts +0 -12
- package/build/types/redis.d.ts +0 -6
- package/build/types/stream.d.ts +0 -59
- package/build/types/stream.js +0 -4
- package/index.ts +12 -3
- package/package.json +18 -15
- package/typedoc.json +38 -0
- package/types/error.ts +5 -5
- package/types/exporter.ts +1 -1
- package/types/hotmesh.ts +3 -2
- package/types/index.ts +25 -7
- package/types/job.ts +19 -1
- package/types/meshcall.ts +192 -0
- package/types/meshdata.ts +273 -0
- package/types/{durable.ts → meshflow.ts} +33 -9
- package/build/services/durable/client.d.ts +0 -49
- package/build/services/durable/exporter.d.ts +0 -51
- package/build/services/durable/handle.d.ts +0 -58
- package/build/services/durable/index.d.ts +0 -19
- package/build/services/durable/index.js +0 -25
- package/build/services/durable/schemas/factory.d.ts +0 -33
- package/build/services/durable/search.d.ts +0 -120
- package/build/services/durable/workflow.d.ts +0 -143
- package/build/types/durable.d.ts +0 -467
- /package/build/types/{durable.js → meshcall.js} +0 -0
|
@@ -103,7 +103,6 @@ class WorkerService {
|
|
|
103
103
|
self.logger.debug('worker-event-received', { topic, type: message.type });
|
|
104
104
|
if (message.type === 'throttle') {
|
|
105
105
|
if (message.topic !== null) {
|
|
106
|
-
//undefined allows passthrough
|
|
107
106
|
self.throttle(message.throttle);
|
|
108
107
|
}
|
|
109
108
|
}
|
|
@@ -112,16 +111,11 @@ class WorkerService {
|
|
|
112
111
|
}
|
|
113
112
|
else if (message.type === 'rollcall') {
|
|
114
113
|
if (message.topic !== null) {
|
|
115
|
-
//undefined allows passthrough
|
|
116
114
|
self.doRollCall(message);
|
|
117
115
|
}
|
|
118
116
|
}
|
|
119
117
|
};
|
|
120
118
|
}
|
|
121
|
-
/**
|
|
122
|
-
* A quorum-wide command to broadcaset system details.
|
|
123
|
-
*
|
|
124
|
-
*/
|
|
125
119
|
async doRollCall(message) {
|
|
126
120
|
let iteration = 0;
|
|
127
121
|
const max = !isNaN(message.max) ? message.max : enums_1.HMSH_QUORUM_ROLLCALL_CYCLES;
|
|
@@ -34,18 +34,7 @@ interface Measure {
|
|
|
34
34
|
target: string;
|
|
35
35
|
}
|
|
36
36
|
interface TriggerActivityStats {
|
|
37
|
-
/**
|
|
38
|
-
* dependent parent job id; including this allows the parent's
|
|
39
|
-
* expiration/interruption events to cascade; set
|
|
40
|
-
* `expire` in the YAML for the dependent graph
|
|
41
|
-
* to 0 and provide the parent for dependent,
|
|
42
|
-
* cascading interruption and cleanup
|
|
43
|
-
*/
|
|
44
37
|
parent?: string;
|
|
45
|
-
/**
|
|
46
|
-
* adjacent parent job id; this is the actual adjacent
|
|
47
|
-
* parent in the graph, but it is not used for cascading expiration
|
|
48
|
-
*/
|
|
49
38
|
adjacent?: string;
|
|
50
39
|
id?: {
|
|
51
40
|
[key: string]: unknown;
|
|
@@ -53,19 +42,7 @@ interface TriggerActivityStats {
|
|
|
53
42
|
key?: {
|
|
54
43
|
[key: string]: unknown;
|
|
55
44
|
} | string;
|
|
56
|
-
/**
|
|
57
|
-
* @deprecated
|
|
58
|
-
* return 'infinity' to disable; default behavior
|
|
59
|
-
* is to always segment keys by time to ensure
|
|
60
|
-
* indexes (Redis LIST) never grow unbounded
|
|
61
|
-
* as a default behavior; for now, 5m is default
|
|
62
|
-
* and infinity can be set to override
|
|
63
|
-
*/
|
|
64
45
|
granularity?: string;
|
|
65
|
-
/**
|
|
66
|
-
* @deprecated
|
|
67
|
-
* what to capture
|
|
68
|
-
*/
|
|
69
46
|
measures?: Measure[];
|
|
70
47
|
}
|
|
71
48
|
interface TriggerActivity extends BaseActivity {
|
|
@@ -104,84 +81,26 @@ interface SignalActivity extends BaseActivity {
|
|
|
104
81
|
}
|
|
105
82
|
interface InterruptActivity extends BaseActivity {
|
|
106
83
|
type: 'interrupt';
|
|
107
|
-
/**
|
|
108
|
-
* Optional Reason; will be used as the error `message` when thrown
|
|
109
|
-
* @default 'Job Interrupted'
|
|
110
|
-
*/
|
|
111
84
|
reason?: string;
|
|
112
|
-
/**
|
|
113
|
-
* throw JobInterrupted error upon interrupting
|
|
114
|
-
* @default true
|
|
115
|
-
*/
|
|
116
85
|
throw?: boolean;
|
|
117
|
-
/**
|
|
118
|
-
* Interrupt child/descendant jobs
|
|
119
|
-
* @default false
|
|
120
|
-
*/
|
|
121
86
|
descend?: boolean;
|
|
122
|
-
/**
|
|
123
|
-
* Target job id (if not present the current job will be targeted)
|
|
124
|
-
*/
|
|
125
87
|
target?: string;
|
|
126
|
-
/**
|
|
127
|
-
* Optional topic to publish the interrupt message (if not present the current job topic will be used
|
|
128
|
-
*/
|
|
129
88
|
topic?: string;
|
|
130
|
-
/**
|
|
131
|
-
* Optional Error Code; will be used as the error `code` when thrown
|
|
132
|
-
* @default 410
|
|
133
|
-
*/
|
|
134
89
|
code?: number;
|
|
135
|
-
/**
|
|
136
|
-
* Optional stack trace
|
|
137
|
-
*/
|
|
138
90
|
stack?: string;
|
|
139
91
|
}
|
|
140
92
|
type ActivityType = BaseActivity | TriggerActivity | AwaitActivity | WorkerActivity | InterruptActivity | HookActivity | SignalActivity | CycleActivity;
|
|
141
93
|
type ActivityData = Record<string, any>;
|
|
142
|
-
/**
|
|
143
|
-
* Type definition for activity metadata.
|
|
144
|
-
*/
|
|
145
94
|
type ActivityMetadata = {
|
|
146
|
-
/**
|
|
147
|
-
* Unique identifier for the activity.
|
|
148
|
-
*/
|
|
149
95
|
aid: string;
|
|
150
|
-
/**
|
|
151
|
-
* Type of the activity.
|
|
152
|
-
*/
|
|
153
96
|
atp: string;
|
|
154
|
-
/**
|
|
155
|
-
* Subtype of the activity.
|
|
156
|
-
*/
|
|
157
97
|
stp: string;
|
|
158
|
-
/**
|
|
159
|
-
* Timestamp when the activity was created, in GMT.
|
|
160
|
-
*/
|
|
161
98
|
ac: string;
|
|
162
|
-
/**
|
|
163
|
-
* Timestamp when the activity was last updated, in GMT.
|
|
164
|
-
*/
|
|
165
99
|
au: string;
|
|
166
|
-
/**
|
|
167
|
-
* Optional stringified JSON containing error details such as message, code, and an optional error object.
|
|
168
|
-
*/
|
|
169
100
|
err?: string;
|
|
170
|
-
/**
|
|
171
|
-
* OpenTelemetry span context for the first leg of the activity.
|
|
172
|
-
*/
|
|
173
101
|
l1s?: string;
|
|
174
|
-
/**
|
|
175
|
-
* OpenTelemetry span context for the second leg of the activity.
|
|
176
|
-
*/
|
|
177
102
|
l2s?: string;
|
|
178
|
-
/**
|
|
179
|
-
* Dimensional address, used for additional metadata.
|
|
180
|
-
*/
|
|
181
103
|
dad?: string;
|
|
182
|
-
/**
|
|
183
|
-
* Status of the activity, could be codes representing different states.
|
|
184
|
-
*/
|
|
185
104
|
as?: string;
|
|
186
105
|
};
|
|
187
106
|
type ActivityContext = {
|
package/build/types/error.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type
|
|
1
|
+
export type MeshFlowChildErrorType = {
|
|
2
2
|
arguments: string[];
|
|
3
3
|
await?: boolean;
|
|
4
4
|
backoffCoefficient?: number;
|
|
@@ -13,7 +13,7 @@ export type DurableChildErrorType = {
|
|
|
13
13
|
workflowId: string;
|
|
14
14
|
workflowTopic: string;
|
|
15
15
|
};
|
|
16
|
-
export type
|
|
16
|
+
export type MeshFlowWaitForAllErrorType = {
|
|
17
17
|
items: string[];
|
|
18
18
|
workflowId: string;
|
|
19
19
|
workflowTopic: string;
|
|
@@ -23,7 +23,7 @@ export type DurableWaitForAllErrorType = {
|
|
|
23
23
|
index: number;
|
|
24
24
|
workflowDimension: string;
|
|
25
25
|
};
|
|
26
|
-
export type
|
|
26
|
+
export type MeshFlowProxyErrorType = {
|
|
27
27
|
arguments: string[];
|
|
28
28
|
activityName: string;
|
|
29
29
|
backoffCoefficient?: number;
|
|
@@ -37,13 +37,13 @@ export type DurableProxyErrorType = {
|
|
|
37
37
|
workflowId: string;
|
|
38
38
|
workflowTopic: string;
|
|
39
39
|
};
|
|
40
|
-
export type
|
|
40
|
+
export type MeshFlowWaitForErrorType = {
|
|
41
41
|
signalId: string;
|
|
42
42
|
index: number;
|
|
43
43
|
workflowDimension: string;
|
|
44
44
|
workflowId: string;
|
|
45
45
|
};
|
|
46
|
-
export type
|
|
46
|
+
export type MeshFlowSleepErrorType = {
|
|
47
47
|
duration: number;
|
|
48
48
|
index: number;
|
|
49
49
|
workflowDimension: string;
|
|
@@ -1,22 +1,9 @@
|
|
|
1
1
|
import { StringAnyType } from './serializer';
|
|
2
2
|
export type ExportItem = [string | null, string, any];
|
|
3
|
-
/**
|
|
4
|
-
* job export data can be large, particularly transitions the timeline
|
|
5
|
-
*/
|
|
6
3
|
export type ExportFields = 'data' | 'state' | 'status' | 'timeline' | 'transitions';
|
|
7
4
|
export interface ExportOptions {
|
|
8
|
-
/**
|
|
9
|
-
* limit the export byte size by specifying an allowlist
|
|
10
|
-
*/
|
|
11
5
|
allow?: Array<ExportFields>;
|
|
12
|
-
/**
|
|
13
|
-
* limit the export byte size by specifying a block list
|
|
14
|
-
*/
|
|
15
6
|
block?: Array<ExportFields>;
|
|
16
|
-
/**
|
|
17
|
-
* If false, do not return timeline values (like child job response, proxy activity response, etc)
|
|
18
|
-
* @default true
|
|
19
|
-
*/
|
|
20
7
|
values?: boolean;
|
|
21
8
|
}
|
|
22
9
|
export type JobAction = {
|
|
@@ -67,7 +54,7 @@ export interface TransitionType {
|
|
|
67
54
|
created: string;
|
|
68
55
|
updated: string;
|
|
69
56
|
}
|
|
70
|
-
export interface
|
|
57
|
+
export interface MeshFlowJobExport {
|
|
71
58
|
data?: StringAnyType;
|
|
72
59
|
state?: StringAnyType;
|
|
73
60
|
status?: number;
|
package/build/types/hotmesh.d.ts
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { ILogger } from '../services/logger';
|
|
2
|
-
import { HotMeshService } from '../services/hotmesh';
|
|
2
|
+
import { HotMesh as HotMeshService } from '../services/hotmesh';
|
|
3
3
|
import { HookRules } from './hook';
|
|
4
4
|
import { RedisClass, RedisClient, RedisOptions } from './redis';
|
|
5
5
|
import { StreamData, StreamDataResponse } from './stream';
|
|
6
6
|
import { LogLevel } from './logger';
|
|
7
|
-
/**
|
|
8
|
-
* the full set of entity types that are stored in the key/value store
|
|
9
|
-
*/
|
|
10
7
|
declare enum KeyType {
|
|
11
8
|
APP = "APP",
|
|
12
9
|
THROTTLE_RATE = "THROTTLE_RATE",
|
|
@@ -28,9 +25,6 @@ declare enum KeyType {
|
|
|
28
25
|
TIME_RANGE = "TIME_RANGE",
|
|
29
26
|
WORK_ITEMS = "WORK_ITEMS"
|
|
30
27
|
}
|
|
31
|
-
/**
|
|
32
|
-
* minting keys, requires one or more of the following parameters
|
|
33
|
-
*/
|
|
34
28
|
type KeyStoreParams = {
|
|
35
29
|
appId?: string;
|
|
36
30
|
engineId?: string;
|
|
@@ -65,12 +59,13 @@ type HotMeshWorker = {
|
|
|
65
59
|
redis?: RedisConfig;
|
|
66
60
|
reclaimDelay?: number;
|
|
67
61
|
reclaimCount?: number;
|
|
68
|
-
callback: (payload: StreamData) => Promise<StreamDataResponse
|
|
62
|
+
callback: (payload: StreamData) => Promise<StreamDataResponse>;
|
|
69
63
|
};
|
|
70
64
|
type HotMeshConfig = {
|
|
71
65
|
appId: string;
|
|
72
66
|
namespace?: string;
|
|
73
67
|
name?: string;
|
|
68
|
+
guid?: string;
|
|
74
69
|
logger?: ILogger;
|
|
75
70
|
logLevel?: LogLevel;
|
|
76
71
|
engine?: HotMeshEngine;
|
|
@@ -114,7 +109,4 @@ type HotMeshApp = VersionedFields & {
|
|
|
114
109
|
type HotMeshApps = {
|
|
115
110
|
[appId: string]: HotMeshApp;
|
|
116
111
|
};
|
|
117
|
-
export { HotMesh, HotMeshEngine, RedisConfig, HotMeshWorker, HotMeshSettings, HotMeshApp,
|
|
118
|
-
HotMeshApps, //object array of all apps in the db
|
|
119
|
-
HotMeshConfig, //customer config
|
|
120
|
-
HotMeshManifest, HotMeshGraph, KeyType, KeyStoreParams, };
|
|
112
|
+
export { HotMesh, HotMeshEngine, RedisConfig, HotMeshWorker, HotMeshSettings, HotMeshApp, HotMeshApps, HotMeshConfig, HotMeshManifest, HotMeshGraph, KeyType, KeyStoreParams, };
|
package/build/types/hotmesh.js
CHANGED
package/build/types/index.d.ts
CHANGED
|
@@ -3,15 +3,17 @@ export { App, AppVID, AppTransitions, AppSubscriptions } from './app';
|
|
|
3
3
|
export { AsyncSignal } from './async';
|
|
4
4
|
export { CacheMode } from './cache';
|
|
5
5
|
export { CollationFaultType, CollationStage } from './collator';
|
|
6
|
-
export { ActivityConfig, ActivityWorkflowDataType, ChildResponseType, ClientConfig, ContextType, ConnectionConfig, Connection, ProxyResponseType, ProxyType, Registry, SignalOptions, FindJobsOptions, FindOptions, FindWhereOptions, FindWhereQuery, HookOptions, SearchResults, WorkflowConfig, WorkerConfig, WorkerOptions, WorkflowContext, WorkflowSearchOptions, WorkflowSearchSchema, WorkflowDataType, WorkflowOptions, } from './
|
|
7
|
-
export {
|
|
8
|
-
export { ActivityAction, DependencyExport,
|
|
6
|
+
export { ActivityConfig, ActivityWorkflowDataType, ChildResponseType, ClientConfig, ClientWorkflow, ContextType, ConnectionConfig, Connection, ProxyResponseType, ProxyType, Registry, SignalOptions, FindJobsOptions, FindOptions, FindWhereOptions, FindWhereQuery, HookOptions, SearchResults, WorkflowConfig, WorkerConfig, WorkerOptions, WorkflowContext, WorkflowSearchOptions, WorkflowSearchSchema, WorkflowDataType, WorkflowOptions, } from './meshflow';
|
|
7
|
+
export { MeshFlowChildErrorType, MeshFlowProxyErrorType, MeshFlowSleepErrorType, MeshFlowWaitForAllErrorType, MeshFlowWaitForErrorType, } from './error';
|
|
8
|
+
export { ActivityAction, DependencyExport, MeshFlowJobExport, ExportCycles, ExportItem, ExportOptions, ExportTransitions, JobAction, JobExport, JobActionExport, JobTimeline, } from './exporter';
|
|
9
9
|
export { HookCondition, HookConditions, HookGate, HookInterface, HookRule, HookRules, HookSignal, } from './hook';
|
|
10
10
|
export { ILogger, LogLevel, } from './logger';
|
|
11
11
|
export { ExtensionType, JobCompletionOptions, JobData, JobsData, JobInterruptOptions, JobMetadata, JobOutput, JobState, JobStatus, PartialJobState, } from './job';
|
|
12
12
|
export { MappingStatements } from './map';
|
|
13
13
|
export { Pipe, PipeContext, PipeItem, PipeItems, PipeObject, ReduceObject, } from './pipe';
|
|
14
14
|
export { HotMesh, HotMeshApp, HotMeshApps, HotMeshConfig, HotMeshEngine, RedisConfig, HotMeshGraph, HotMeshManifest, HotMeshSettings, HotMeshWorker, KeyStoreParams, KeyType, } from './hotmesh';
|
|
15
|
+
export { MeshCallConnectParams, MeshCallExecParams, MeshCallCronParams, MeshCallExecOptions, MeshCallCronOptions, MeshCallInterruptOptions, MeshCallInterruptParams, MeshCallFlushParams, } from './meshcall';
|
|
16
|
+
export { CallOptions, MeshDataWorkflowOptions, ConnectOptions, ConnectionInput, ExecInput, } from './meshdata';
|
|
15
17
|
export { ActivateMessage, CronMessage, JobMessage, JobMessageCallback, PingMessage, PongMessage, QuorumMessage, QuorumMessageCallback, QuorumProfile, RollCallMessage, RollCallOptions, SubscriptionCallback, SubscriptionOptions, SystemHealth, ThrottleMessage, ThrottleOptions, WorkMessage, } from './quorum';
|
|
16
18
|
export { RedisClass, RedisRedisClientType, RedisRedisClientOptions, RedisRedisClassType, IORedisClientType, RedisClient, RedisMulti, RedisRedisMultiType, IORedisClientOptions, IORedisClassType, IORedisMultiType, RedisOptions, MultiResponseFlags, isRedisClient, isIORedisClient, } from './redis';
|
|
17
19
|
export { JSONSchema, StringAnyType, StringScalarType, StringStringType, SymbolMap, SymbolMaps, SymbolRanges, Symbols, SymbolSets, } from './serializer';
|
package/build/types/index.js
CHANGED
|
@@ -7,7 +7,7 @@ var hook_1 = require("./hook");
|
|
|
7
7
|
Object.defineProperty(exports, "HookGate", { enumerable: true, get: function () { return hook_1.HookGate; } });
|
|
8
8
|
var hotmesh_1 = require("./hotmesh");
|
|
9
9
|
Object.defineProperty(exports, "KeyType", { enumerable: true, get: function () { return hotmesh_1.KeyType; } });
|
|
10
|
-
var redis_1 = require("./redis");
|
|
10
|
+
var redis_1 = require("./redis");
|
|
11
11
|
Object.defineProperty(exports, "isRedisClient", { enumerable: true, get: function () { return redis_1.isRedisClient; } });
|
|
12
12
|
Object.defineProperty(exports, "isIORedisClient", { enumerable: true, get: function () { return redis_1.isIORedisClient; } });
|
|
13
13
|
var stream_1 = require("./stream");
|
package/build/types/job.d.ts
CHANGED
|
@@ -6,92 +6,38 @@ type ActivityData = {
|
|
|
6
6
|
metadata?: Record<string, unknown>;
|
|
7
7
|
};
|
|
8
8
|
type JobMetadata = {
|
|
9
|
-
/** job_key */
|
|
10
9
|
key?: string;
|
|
11
|
-
/** system assigned guid that corresponds to the transition message guid that spawned reentry */
|
|
12
10
|
guid?: string;
|
|
13
|
-
/** system assigned guid; ensured created/deleted/created jobs are unique */
|
|
14
11
|
gid: string;
|
|
15
|
-
/** job_id (jid+dad+aid) is composite key for activity */
|
|
16
12
|
jid: string;
|
|
17
|
-
/** dimensional address for the activity (,0,0,1) */
|
|
18
13
|
dad: string;
|
|
19
|
-
/** activity_id as in the YAML file */
|
|
20
14
|
aid: string;
|
|
21
|
-
/** parent_job_id (pj+pd+pa) is composite key for parent activity */
|
|
22
15
|
pj?: string;
|
|
23
|
-
/** parent_generational_id (system assigned at trigger inception); pg is the parent job's gid (just in case user created/deleted/created a job with same jid) */
|
|
24
16
|
pg?: string;
|
|
25
|
-
/** parent_dimensional_address */
|
|
26
17
|
pd?: string;
|
|
27
|
-
/** parent_activity_id */
|
|
28
18
|
pa?: string;
|
|
29
|
-
/** sever the dependency chain if true (startChild/vs/execChild) */
|
|
30
19
|
px?: boolean;
|
|
31
|
-
/** engine guid (one time subscriptions) */
|
|
32
20
|
ngn?: string;
|
|
33
|
-
/** app_id */
|
|
34
21
|
app: string;
|
|
35
|
-
/** app version */
|
|
36
22
|
vrs: string;
|
|
37
|
-
/** subscription topic */
|
|
38
23
|
tpc: string;
|
|
39
|
-
/** 201203120005 (slice of time) //time series */
|
|
40
24
|
ts: string;
|
|
41
|
-
/** GMT created //job_created */
|
|
42
25
|
jc: string;
|
|
43
|
-
/** GMT updated //job_updated */
|
|
44
26
|
ju: string;
|
|
45
27
|
js: JobStatus;
|
|
46
|
-
/** activity_type */
|
|
47
28
|
atp: string;
|
|
48
|
-
/** activity_subtype */
|
|
49
29
|
stp: string;
|
|
50
|
-
/** open telemetry span context */
|
|
51
30
|
spn: string;
|
|
52
|
-
/** open telemetry trace context */
|
|
53
31
|
trc: string;
|
|
54
|
-
/** stringified job error json: {message: string, code: number, error?} */
|
|
55
32
|
err?: string;
|
|
56
|
-
/** process data expire policy */
|
|
57
33
|
expire?: number;
|
|
58
34
|
};
|
|
59
|
-
/**
|
|
60
|
-
* User-defined (extended) types for job data. Users may interleave
|
|
61
|
-
* data into the job hash safely by using the `ExtensionType` interface.
|
|
62
|
-
* The data will be prefixed as necessary using an underscore or
|
|
63
|
-
* dash to ensure it is not confused with system process data.
|
|
64
|
-
*/
|
|
65
35
|
type ExtensionType = {
|
|
66
|
-
/**
|
|
67
|
-
* Custom search data field (name/value pairs) to seed the Hash.
|
|
68
|
-
* Every field will be prefixed with an underscore before being
|
|
69
|
-
* stored with the initial Hash data set along side system
|
|
70
|
-
* process data.
|
|
71
|
-
*/
|
|
72
36
|
search?: StringStringType;
|
|
73
|
-
/**
|
|
74
|
-
* Custom marker data field used for adding a searchable marker to the job.
|
|
75
|
-
* markers always begin with a dash (-). Any field that does not
|
|
76
|
-
* begin with a dash will be removed and will not be inserted with
|
|
77
|
-
* the initial data set.
|
|
78
|
-
*/
|
|
79
37
|
marker?: StringStringType;
|
|
80
|
-
/**
|
|
81
|
-
* If provided, the job will initialize in a pending state, reserving
|
|
82
|
-
* only the job ID (HSETNX) and persisting search and marker (if provided).
|
|
83
|
-
* If a `resume` signal is sent before the specified number of seconds,
|
|
84
|
-
* the job will resume as normal, transitioning to the adjacent children
|
|
85
|
-
* of the trigger. If the job is not resumed within the number
|
|
86
|
-
* of seconds specified, the job will be scrubbed. No dependencies
|
|
87
|
-
* are added for a job in a pending state; however, dependencies
|
|
88
|
-
* will be added after the job is resumed if relevant.
|
|
89
|
-
*/
|
|
90
38
|
pending?: number;
|
|
39
|
+
statusThreshold?: number;
|
|
91
40
|
};
|
|
92
|
-
/**
|
|
93
|
-
* job_status semaphore
|
|
94
|
-
*/
|
|
95
41
|
type JobStatus = number;
|
|
96
42
|
type JobState = {
|
|
97
43
|
metadata: JobMetadata;
|
|
@@ -105,65 +51,25 @@ type JobState = {
|
|
|
105
51
|
};
|
|
106
52
|
};
|
|
107
53
|
type JobInterruptOptions = {
|
|
108
|
-
/**
|
|
109
|
-
* optional Reason; will be used as the error `message` when thrown
|
|
110
|
-
* @default 'Job Interrupted'
|
|
111
|
-
*/
|
|
112
54
|
reason?: string;
|
|
113
|
-
/**
|
|
114
|
-
* throw JobInterrupted error upon interrupting
|
|
115
|
-
* @default true
|
|
116
|
-
*/
|
|
117
55
|
throw?: boolean;
|
|
118
|
-
/**
|
|
119
|
-
* interrupt child/descendant jobs
|
|
120
|
-
* @default false
|
|
121
|
-
*/
|
|
122
56
|
descend?: boolean;
|
|
123
|
-
/**
|
|
124
|
-
* if true, errors related to inactivation (like overage...already inactive) are suppressed/ignored
|
|
125
|
-
* @default false
|
|
126
|
-
*/
|
|
127
57
|
suppress?: boolean;
|
|
128
|
-
/**
|
|
129
|
-
* how long to wait in seconds before fully expiring/removing the hash from Redis;
|
|
130
|
-
* the job is inactive, but can remain in the cache indefinitely;
|
|
131
|
-
* @default 1 second.
|
|
132
|
-
*/
|
|
133
58
|
expire?: number;
|
|
134
|
-
/**
|
|
135
|
-
* Optional Error Code; will be used as the error `code` when thrown
|
|
136
|
-
* @default 410
|
|
137
|
-
*/
|
|
138
59
|
code?: number;
|
|
139
|
-
/**
|
|
140
|
-
* Optional stack trace
|
|
141
|
-
*/
|
|
142
60
|
stack?: string;
|
|
143
61
|
};
|
|
144
|
-
/**
|
|
145
|
-
* format when publishing job meta/data on the wire when it completes
|
|
146
|
-
*/
|
|
147
62
|
type JobOutput = {
|
|
148
63
|
metadata: JobMetadata;
|
|
149
64
|
data: JobData;
|
|
150
65
|
};
|
|
151
|
-
/**
|
|
152
|
-
* jid+dad+aid is a composite guid; signal in and restore the full job context
|
|
153
|
-
*/
|
|
154
66
|
type PartialJobState = {
|
|
155
67
|
metadata: JobMetadata | Pick<JobMetadata, 'jid' | 'dad' | 'aid'>;
|
|
156
68
|
data: JobData;
|
|
157
69
|
};
|
|
158
70
|
type JobCompletionOptions = {
|
|
159
|
-
/** default false */
|
|
160
71
|
emit?: boolean;
|
|
161
|
-
/** default undefined */
|
|
162
72
|
interrupt?: boolean;
|
|
163
|
-
/**
|
|
164
|
-
* in seconds to wait before deleting/expiring job hash
|
|
165
|
-
* @default 1 second
|
|
166
|
-
*/
|
|
167
73
|
expire?: number;
|
|
168
74
|
};
|
|
169
75
|
export { JobCompletionOptions, JobData, JobsData, JobInterruptOptions, JobMetadata, JobOutput, JobState, JobStatus, PartialJobState, ExtensionType, };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { RedisConfig } from "./hotmesh";
|
|
2
|
+
import { LogLevel } from "./logger";
|
|
3
|
+
interface MeshCallExecOptions {
|
|
4
|
+
id: string;
|
|
5
|
+
ttl?: string;
|
|
6
|
+
flush?: boolean;
|
|
7
|
+
}
|
|
8
|
+
interface MeshCallConnectParams {
|
|
9
|
+
logLevel?: LogLevel;
|
|
10
|
+
guid?: string;
|
|
11
|
+
namespace?: string;
|
|
12
|
+
topic: string;
|
|
13
|
+
redis: RedisConfig;
|
|
14
|
+
callback: <T extends any[], U>(...args: T) => Promise<U>;
|
|
15
|
+
}
|
|
16
|
+
interface MeshCallExecParams {
|
|
17
|
+
namespace?: string;
|
|
18
|
+
topic: string;
|
|
19
|
+
args: any[];
|
|
20
|
+
redis: RedisConfig;
|
|
21
|
+
options?: MeshCallExecOptions;
|
|
22
|
+
}
|
|
23
|
+
interface MeshCallFlushParams {
|
|
24
|
+
namespace?: string;
|
|
25
|
+
id: string;
|
|
26
|
+
topic: string;
|
|
27
|
+
redis: RedisConfig;
|
|
28
|
+
}
|
|
29
|
+
interface MeshCallCronOptions {
|
|
30
|
+
id: string;
|
|
31
|
+
interval: string;
|
|
32
|
+
maxCycles?: number;
|
|
33
|
+
maxDuration?: string;
|
|
34
|
+
}
|
|
35
|
+
interface MeshCallInterruptOptions {
|
|
36
|
+
id: string;
|
|
37
|
+
}
|
|
38
|
+
interface MeshCallCronParams {
|
|
39
|
+
logLevel?: LogLevel;
|
|
40
|
+
guid?: string;
|
|
41
|
+
namespace?: string;
|
|
42
|
+
topic: string;
|
|
43
|
+
redis: RedisConfig;
|
|
44
|
+
args: any[];
|
|
45
|
+
callback: <T extends any[], U>(...args: T) => Promise<U>;
|
|
46
|
+
options: MeshCallCronOptions;
|
|
47
|
+
}
|
|
48
|
+
interface MeshCallInterruptParams {
|
|
49
|
+
namespace?: string;
|
|
50
|
+
topic: string;
|
|
51
|
+
redis: RedisConfig;
|
|
52
|
+
options: MeshCallInterruptOptions;
|
|
53
|
+
}
|
|
54
|
+
export { MeshCallConnectParams, MeshCallExecParams, MeshCallCronParams, MeshCallExecOptions, MeshCallCronOptions, MeshCallInterruptOptions, MeshCallInterruptParams, MeshCallFlushParams, };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { HookOptions, WorkflowConfig, WorkflowSearchOptions } from "./meshflow";
|
|
2
|
+
import { StringStringType } from "./serializer";
|
|
3
|
+
export type CallOptions = {
|
|
4
|
+
id?: string;
|
|
5
|
+
ttl?: string;
|
|
6
|
+
$guid?: string;
|
|
7
|
+
$type?: string;
|
|
8
|
+
await?: boolean;
|
|
9
|
+
taskQueue?: string;
|
|
10
|
+
prefix?: string;
|
|
11
|
+
search?: WorkflowSearchOptions;
|
|
12
|
+
fields?: string[];
|
|
13
|
+
namespace?: string;
|
|
14
|
+
marker?: StringStringType;
|
|
15
|
+
pending?: number;
|
|
16
|
+
};
|
|
17
|
+
export type ConnectOptions = {
|
|
18
|
+
ttl?: string;
|
|
19
|
+
taskQueue?: string;
|
|
20
|
+
prefix?: string;
|
|
21
|
+
namespace?: string;
|
|
22
|
+
options?: WorkerOptions;
|
|
23
|
+
search?: WorkflowSearchOptions;
|
|
24
|
+
};
|
|
25
|
+
export type ConnectionInput<T> = {
|
|
26
|
+
entity: string;
|
|
27
|
+
target: (...args: any[]) => T;
|
|
28
|
+
options?: ConnectOptions;
|
|
29
|
+
};
|
|
30
|
+
export type ExecInput = {
|
|
31
|
+
entity: string;
|
|
32
|
+
args: any[];
|
|
33
|
+
options?: Partial<MeshDataWorkflowOptions>;
|
|
34
|
+
};
|
|
35
|
+
export type HookInput = {
|
|
36
|
+
entity: string;
|
|
37
|
+
id: string;
|
|
38
|
+
hookEntity: string;
|
|
39
|
+
hookArgs: any[];
|
|
40
|
+
options?: Partial<HookOptions>;
|
|
41
|
+
};
|
|
42
|
+
export type MeshDataWorkflowOptions = {
|
|
43
|
+
namespace?: string;
|
|
44
|
+
taskQueue?: string;
|
|
45
|
+
prefix?: string;
|
|
46
|
+
id?: string;
|
|
47
|
+
workflowId?: string;
|
|
48
|
+
workflowName?: string;
|
|
49
|
+
workflowTrace?: string;
|
|
50
|
+
workflowSpan?: string;
|
|
51
|
+
search?: WorkflowSearchOptions;
|
|
52
|
+
config?: WorkflowConfig;
|
|
53
|
+
ttl?: string;
|
|
54
|
+
await?: boolean;
|
|
55
|
+
marker?: StringStringType;
|
|
56
|
+
pending?: number;
|
|
57
|
+
expire?: number;
|
|
58
|
+
signalIn?: boolean;
|
|
59
|
+
};
|