@cogitator-ai/workflows 0.5.16 → 0.5.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/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +2 -1
- package/dist/builder.js.map +1 -1
- package/dist/checkpoint.d.ts.map +1 -1
- package/dist/checkpoint.js +16 -13
- package/dist/checkpoint.js.map +1 -1
- package/dist/executor.d.ts +4 -1
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +6 -2
- package/dist/executor.js.map +1 -1
- package/dist/human/approval-store.d.ts +0 -4
- package/dist/human/approval-store.d.ts.map +1 -1
- package/dist/human/approval-store.js +50 -38
- package/dist/human/approval-store.js.map +1 -1
- package/dist/human/human-node.d.ts.map +1 -1
- package/dist/human/human-node.js +6 -2
- package/dist/human/human-node.js.map +1 -1
- package/dist/human/notifiers.d.ts +0 -3
- package/dist/human/notifiers.d.ts.map +1 -1
- package/dist/human/notifiers.js +67 -25
- package/dist/human/notifiers.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/manager/scheduler.d.ts.map +1 -1
- package/dist/manager/scheduler.js +6 -2
- package/dist/manager/scheduler.js.map +1 -1
- package/dist/manager/workflow-manager.d.ts +1 -1
- package/dist/manager/workflow-manager.d.ts.map +1 -1
- package/dist/manager/workflow-manager.js +21 -7
- package/dist/manager/workflow-manager.js.map +1 -1
- package/dist/nodes/agent.d.ts +0 -15
- package/dist/nodes/agent.d.ts.map +1 -1
- package/dist/nodes/agent.js +16 -16
- package/dist/nodes/agent.js.map +1 -1
- package/dist/nodes/base.d.ts +2 -7
- package/dist/nodes/base.d.ts.map +1 -1
- package/dist/nodes/base.js +0 -3
- package/dist/nodes/base.js.map +1 -1
- package/dist/nodes/function.d.ts +0 -18
- package/dist/nodes/function.d.ts.map +1 -1
- package/dist/nodes/function.js +0 -9
- package/dist/nodes/function.js.map +1 -1
- package/dist/nodes/index.d.ts +0 -3
- package/dist/nodes/index.d.ts.map +1 -1
- package/dist/nodes/index.js +0 -3
- package/dist/nodes/index.js.map +1 -1
- package/dist/nodes/tool.d.ts +1 -12
- package/dist/nodes/tool.d.ts.map +1 -1
- package/dist/nodes/tool.js +2 -9
- package/dist/nodes/tool.js.map +1 -1
- package/dist/observability/exporters.d.ts +4 -4
- package/dist/observability/exporters.d.ts.map +1 -1
- package/dist/observability/exporters.js +25 -9
- package/dist/observability/exporters.js.map +1 -1
- package/dist/observability/index.d.ts +1 -1
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +1 -1
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/metrics.d.ts +0 -21
- package/dist/observability/metrics.d.ts.map +1 -1
- package/dist/observability/metrics.js +22 -26
- package/dist/observability/metrics.js.map +1 -1
- package/dist/observability/tracer.d.ts +9 -69
- package/dist/observability/tracer.d.ts.map +1 -1
- package/dist/observability/tracer.js +82 -125
- package/dist/observability/tracer.js.map +1 -1
- package/dist/patterns/index.d.ts +0 -13
- package/dist/patterns/index.d.ts.map +1 -1
- package/dist/patterns/index.js +0 -13
- package/dist/patterns/index.js.map +1 -1
- package/dist/patterns/map-reduce.d.ts +0 -129
- package/dist/patterns/map-reduce.d.ts.map +1 -1
- package/dist/patterns/map-reduce.js +63 -92
- package/dist/patterns/map-reduce.js.map +1 -1
- package/dist/saga/circuit-breaker.d.ts.map +1 -1
- package/dist/saga/circuit-breaker.js +5 -2
- package/dist/saga/circuit-breaker.js.map +1 -1
- package/dist/saga/compensation.d.ts +5 -2
- package/dist/saga/compensation.d.ts.map +1 -1
- package/dist/saga/compensation.js +49 -44
- package/dist/saga/compensation.js.map +1 -1
- package/dist/saga/dead-letter.d.ts +3 -0
- package/dist/saga/dead-letter.d.ts.map +1 -1
- package/dist/saga/dead-letter.js +11 -5
- package/dist/saga/dead-letter.js.map +1 -1
- package/dist/saga/idempotency.d.ts +1 -1
- package/dist/saga/idempotency.d.ts.map +1 -1
- package/dist/saga/idempotency.js +46 -13
- package/dist/saga/idempotency.js.map +1 -1
- package/dist/saga/retry.d.ts.map +1 -1
- package/dist/saga/retry.js +37 -31
- package/dist/saga/retry.js.map +1 -1
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +18 -3
- package/dist/scheduler.js.map +1 -1
- package/dist/subworkflows/index.d.ts +0 -13
- package/dist/subworkflows/index.d.ts.map +1 -1
- package/dist/subworkflows/index.js +0 -13
- package/dist/subworkflows/index.js.map +1 -1
- package/dist/subworkflows/parallel-subworkflows.d.ts +1 -77
- package/dist/subworkflows/parallel-subworkflows.d.ts.map +1 -1
- package/dist/subworkflows/parallel-subworkflows.js +12 -40
- package/dist/subworkflows/parallel-subworkflows.js.map +1 -1
- package/dist/subworkflows/subworkflow-node.d.ts +1 -82
- package/dist/subworkflows/subworkflow-node.d.ts.map +1 -1
- package/dist/subworkflows/subworkflow-node.js +20 -36
- package/dist/subworkflows/subworkflow-node.js.map +1 -1
- package/dist/timers/cron-parser.d.ts.map +1 -1
- package/dist/timers/cron-parser.js +32 -10
- package/dist/timers/cron-parser.js.map +1 -1
- package/dist/timers/timer-manager.d.ts +10 -0
- package/dist/timers/timer-manager.d.ts.map +1 -1
- package/dist/timers/timer-manager.js +13 -0
- package/dist/timers/timer-manager.js.map +1 -1
- package/dist/timers/timer-node.d.ts.map +1 -1
- package/dist/timers/timer-node.js +1 -0
- package/dist/timers/timer-node.js.map +1 -1
- package/dist/timers/timer-store.d.ts.map +1 -1
- package/dist/timers/timer-store.js +16 -10
- package/dist/timers/timer-store.js.map +1 -1
- package/dist/triggers/cron-trigger.d.ts +6 -5
- package/dist/triggers/cron-trigger.d.ts.map +1 -1
- package/dist/triggers/cron-trigger.js +52 -18
- package/dist/triggers/cron-trigger.js.map +1 -1
- package/dist/triggers/rate-limiter.d.ts +4 -0
- package/dist/triggers/rate-limiter.d.ts.map +1 -1
- package/dist/triggers/rate-limiter.js +10 -1
- package/dist/triggers/rate-limiter.js.map +1 -1
- package/dist/triggers/trigger-manager.d.ts.map +1 -1
- package/dist/triggers/trigger-manager.js +55 -38
- package/dist/triggers/trigger-manager.js.map +1 -1
- package/dist/triggers/webhook-trigger.d.ts +1 -0
- package/dist/triggers/webhook-trigger.d.ts.map +1 -1
- package/dist/triggers/webhook-trigger.js +8 -8
- package/dist/triggers/webhook-trigger.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Map-Reduce pattern implementation for workflows
|
|
3
|
-
*
|
|
4
|
-
* Features:
|
|
5
|
-
* - Dynamic fan-out based on state
|
|
6
|
-
* - Configurable concurrency limits
|
|
7
|
-
* - Partial failure handling (continue with successful items)
|
|
8
|
-
* - Progress tracking per item
|
|
9
|
-
* - Streaming reduce (process as items complete)
|
|
10
|
-
* - Nested map-reduce support
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* Item result wrapper
|
|
14
|
-
*/
|
|
15
1
|
export interface MapItemResult<T> {
|
|
16
2
|
index: number;
|
|
17
3
|
item: unknown;
|
|
@@ -20,9 +6,6 @@ export interface MapItemResult<T> {
|
|
|
20
6
|
error?: Error;
|
|
21
7
|
duration: number;
|
|
22
8
|
}
|
|
23
|
-
/**
|
|
24
|
-
* Map progress event
|
|
25
|
-
*/
|
|
26
9
|
export interface MapProgressEvent<T> {
|
|
27
10
|
total: number;
|
|
28
11
|
completed: number;
|
|
@@ -32,85 +15,30 @@ export interface MapProgressEvent<T> {
|
|
|
32
15
|
pending: number;
|
|
33
16
|
running: number;
|
|
34
17
|
}
|
|
35
|
-
/**
|
|
36
|
-
* Map node configuration
|
|
37
|
-
*/
|
|
38
18
|
export interface MapNodeConfig<S, T> {
|
|
39
19
|
name: string;
|
|
40
|
-
/**
|
|
41
|
-
* Extract items to map over from state
|
|
42
|
-
*/
|
|
43
20
|
items: (state: S) => unknown[];
|
|
44
|
-
/**
|
|
45
|
-
* Map function to apply to each item
|
|
46
|
-
*/
|
|
47
21
|
mapper: (item: unknown, index: number, state: S) => Promise<T> | T;
|
|
48
|
-
/**
|
|
49
|
-
* Maximum concurrent mappers
|
|
50
|
-
* @default Infinity
|
|
51
|
-
*/
|
|
52
22
|
concurrency?: number;
|
|
53
|
-
/**
|
|
54
|
-
* Continue processing if some items fail
|
|
55
|
-
* @default false
|
|
56
|
-
*/
|
|
57
23
|
continueOnError?: boolean;
|
|
58
|
-
/**
|
|
59
|
-
* Progress callback
|
|
60
|
-
*/
|
|
61
24
|
onProgress?: (progress: MapProgressEvent<T>) => void;
|
|
62
|
-
/**
|
|
63
|
-
* Filter items before mapping
|
|
64
|
-
*/
|
|
65
25
|
filter?: (item: unknown, index: number, state: S) => boolean;
|
|
66
|
-
/**
|
|
67
|
-
* Transform items before mapping
|
|
68
|
-
*/
|
|
69
26
|
transform?: (item: unknown, index: number, state: S) => unknown;
|
|
70
|
-
/**
|
|
71
|
-
* Timeout per item (ms)
|
|
72
|
-
*/
|
|
73
27
|
timeout?: number;
|
|
74
|
-
/**
|
|
75
|
-
* Retry configuration per item
|
|
76
|
-
*/
|
|
77
28
|
retry?: {
|
|
78
29
|
maxAttempts: number;
|
|
79
30
|
delay?: number;
|
|
80
31
|
backoff?: 'linear' | 'exponential';
|
|
81
32
|
};
|
|
82
33
|
}
|
|
83
|
-
/**
|
|
84
|
-
* Reduce node configuration
|
|
85
|
-
*/
|
|
86
34
|
export interface ReduceNodeConfig<S, T, R> {
|
|
87
35
|
name: string;
|
|
88
|
-
/**
|
|
89
|
-
* Initial accumulator value
|
|
90
|
-
*/
|
|
91
36
|
initial: R | ((state: S) => R);
|
|
92
|
-
/**
|
|
93
|
-
* Reducer function
|
|
94
|
-
*/
|
|
95
37
|
reducer: (accumulator: R, item: MapItemResult<T>, state: S) => R;
|
|
96
|
-
/**
|
|
97
|
-
* Process items as they complete (streaming)
|
|
98
|
-
* @default false
|
|
99
|
-
*/
|
|
100
38
|
streaming?: boolean;
|
|
101
|
-
/**
|
|
102
|
-
* Only include successful items in reduce
|
|
103
|
-
* @default true
|
|
104
|
-
*/
|
|
105
39
|
successOnly?: boolean;
|
|
106
|
-
/**
|
|
107
|
-
* Final transformation
|
|
108
|
-
*/
|
|
109
40
|
finalize?: (result: R, state: S) => R;
|
|
110
41
|
}
|
|
111
|
-
/**
|
|
112
|
-
* Map-Reduce result
|
|
113
|
-
*/
|
|
114
42
|
export interface MapReduceResult<T, R> {
|
|
115
43
|
results: MapItemResult<T>[];
|
|
116
44
|
reduced: R;
|
|
@@ -122,97 +50,40 @@ export interface MapReduceResult<T, R> {
|
|
|
122
50
|
avgItemDuration: number;
|
|
123
51
|
};
|
|
124
52
|
}
|
|
125
|
-
/**
|
|
126
|
-
* Map-Reduce node configuration
|
|
127
|
-
*/
|
|
128
53
|
export interface MapReduceNodeConfig<S, T, R> {
|
|
129
54
|
name: string;
|
|
130
55
|
map: Omit<MapNodeConfig<S, T>, 'name'>;
|
|
131
56
|
reduce: Omit<ReduceNodeConfig<S, T, R>, 'name'>;
|
|
132
57
|
}
|
|
133
|
-
/**
|
|
134
|
-
* Execute a map operation
|
|
135
|
-
*/
|
|
136
58
|
export declare function executeMap<S, T>(state: S, config: MapNodeConfig<S, T>): Promise<MapItemResult<T>[]>;
|
|
137
|
-
/**
|
|
138
|
-
* Execute a reduce operation
|
|
139
|
-
*/
|
|
140
59
|
export declare function executeReduce<S, T, R>(results: MapItemResult<T>[], state: S, config: ReduceNodeConfig<S, T, R>): R;
|
|
141
|
-
/**
|
|
142
|
-
* Execute a map-reduce operation
|
|
143
|
-
*/
|
|
144
60
|
export declare function executeMapReduce<S, T, R>(state: S, config: MapReduceNodeConfig<S, T, R>): Promise<MapReduceResult<T, R>>;
|
|
145
|
-
/**
|
|
146
|
-
* Create a map node factory
|
|
147
|
-
*/
|
|
148
61
|
export declare function mapNode<S, T>(name: string, config: Omit<MapNodeConfig<S, T>, 'name'>): MapNodeConfig<S, T>;
|
|
149
|
-
/**
|
|
150
|
-
* Create a reduce node factory
|
|
151
|
-
*/
|
|
152
62
|
export declare function reduceNode<S, T, R>(name: string, config: Omit<ReduceNodeConfig<S, T, R>, 'name'>): ReduceNodeConfig<S, T, R>;
|
|
153
|
-
/**
|
|
154
|
-
* Create a map-reduce node factory
|
|
155
|
-
*/
|
|
156
63
|
export declare function mapReduceNode<S, T, R>(name: string, config: Omit<MapReduceNodeConfig<S, T, R>, 'name'>): MapReduceNodeConfig<S, T, R>;
|
|
157
|
-
/**
|
|
158
|
-
* Parallel map helper - execute all items in parallel
|
|
159
|
-
*/
|
|
160
64
|
export declare function parallelMap<S, T>(state: S, items: (state: S) => unknown[], mapper: (item: unknown, index: number, state: S) => Promise<T> | T, options?: {
|
|
161
65
|
continueOnError?: boolean;
|
|
162
66
|
onProgress?: (progress: MapProgressEvent<T>) => void;
|
|
163
67
|
}): Promise<MapItemResult<T>[]>;
|
|
164
|
-
/**
|
|
165
|
-
* Sequential map helper - execute items one by one
|
|
166
|
-
*/
|
|
167
68
|
export declare function sequentialMap<S, T>(state: S, items: (state: S) => unknown[], mapper: (item: unknown, index: number, state: S) => Promise<T> | T, options?: {
|
|
168
69
|
continueOnError?: boolean;
|
|
169
70
|
onProgress?: (progress: MapProgressEvent<T>) => void;
|
|
170
71
|
}): Promise<MapItemResult<T>[]>;
|
|
171
|
-
/**
|
|
172
|
-
* Batched map helper - process items in fixed-size batches
|
|
173
|
-
*/
|
|
174
72
|
export declare function batchedMap<S, T>(state: S, items: (state: S) => unknown[], mapper: (item: unknown, index: number, state: S) => Promise<T> | T, batchSize: number, options?: {
|
|
175
73
|
continueOnError?: boolean;
|
|
176
74
|
onProgress?: (progress: MapProgressEvent<T>) => void;
|
|
177
75
|
}): Promise<MapItemResult<T>[]>;
|
|
178
|
-
/**
|
|
179
|
-
* Collect helper - reduce results to an array
|
|
180
|
-
*/
|
|
181
76
|
export declare function collect<T>(): Omit<ReduceNodeConfig<unknown, T, T[]>, 'name'>;
|
|
182
|
-
/**
|
|
183
|
-
* Sum helper - reduce numbers to sum
|
|
184
|
-
*/
|
|
185
77
|
export declare function sum(): Omit<ReduceNodeConfig<unknown, number, number>, 'name'>;
|
|
186
|
-
/**
|
|
187
|
-
* Count helper - count successful items
|
|
188
|
-
*/
|
|
189
78
|
export declare function count(): Omit<ReduceNodeConfig<unknown, unknown, number>, 'name'>;
|
|
190
|
-
/**
|
|
191
|
-
* First helper - get first result
|
|
192
|
-
*/
|
|
193
79
|
export declare function first<T>(): Omit<ReduceNodeConfig<unknown, T, T | undefined>, 'name'>;
|
|
194
|
-
/**
|
|
195
|
-
* Last helper - get last result
|
|
196
|
-
*/
|
|
197
80
|
export declare function last<T>(): Omit<ReduceNodeConfig<unknown, T, T | undefined>, 'name'>;
|
|
198
|
-
/**
|
|
199
|
-
* GroupBy helper - group results by key
|
|
200
|
-
*/
|
|
201
81
|
export declare function groupBy<T, K extends string | number>(keyFn: (result: T, item: MapItemResult<T>) => K): Omit<ReduceNodeConfig<unknown, T, Record<K, T[]>>, 'name'>;
|
|
202
|
-
/**
|
|
203
|
-
* Partition helper - partition results by predicate
|
|
204
|
-
*/
|
|
205
82
|
export declare function partition<T>(predicate: (result: T, item: MapItemResult<T>) => boolean): Omit<ReduceNodeConfig<unknown, T, {
|
|
206
83
|
pass: T[];
|
|
207
84
|
fail: T[];
|
|
208
85
|
}>, 'name'>;
|
|
209
|
-
/**
|
|
210
|
-
* FlatMap helper - flatten arrays of results
|
|
211
|
-
*/
|
|
212
86
|
export declare function flatMap<T>(): Omit<ReduceNodeConfig<unknown, T[], T[]>, 'name'>;
|
|
213
|
-
/**
|
|
214
|
-
* Stats helper - compute statistics from numeric results
|
|
215
|
-
*/
|
|
216
87
|
export declare function stats(): Omit<ReduceNodeConfig<unknown, number, {
|
|
217
88
|
count: number;
|
|
218
89
|
sum: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-reduce.d.ts","sourceRoot":"","sources":["../../src/patterns/map-reduce.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"map-reduce.d.ts","sourceRoot":"","sources":["../../src/patterns/map-reduce.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Map-Reduce pattern implementation for workflows
|
|
3
|
-
*
|
|
4
|
-
* Features:
|
|
5
|
-
* - Dynamic fan-out based on state
|
|
6
|
-
* - Configurable concurrency limits
|
|
7
|
-
* - Partial failure handling (continue with successful items)
|
|
8
|
-
* - Progress tracking per item
|
|
9
|
-
* - Streaming reduce (process as items complete)
|
|
10
|
-
* - Nested map-reduce support
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* Execute items with concurrency limit
|
|
14
|
-
*/
|
|
15
1
|
async function executeWithConcurrency(items, mapper, concurrency, onComplete) {
|
|
16
2
|
const results = new Array(items.length);
|
|
17
3
|
const pending = [];
|
|
@@ -32,9 +18,6 @@ async function executeWithConcurrency(items, mapper, concurrency, onComplete) {
|
|
|
32
18
|
await Promise.all(pending);
|
|
33
19
|
return results;
|
|
34
20
|
}
|
|
35
|
-
/**
|
|
36
|
-
* Execute single item with timeout and retry
|
|
37
|
-
*/
|
|
38
21
|
async function executeItem(item, index, state, config) {
|
|
39
22
|
const startTime = Date.now();
|
|
40
23
|
let lastError;
|
|
@@ -47,10 +30,23 @@ async function executeItem(item, index, state, config) {
|
|
|
47
30
|
}
|
|
48
31
|
let resultPromise = Promise.resolve(config.mapper(processedItem, index, state));
|
|
49
32
|
if (config.timeout) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
33
|
+
let timer;
|
|
34
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
35
|
+
timer = setTimeout(() => reject(new Error('Item timeout exceeded')), config.timeout);
|
|
36
|
+
});
|
|
37
|
+
try {
|
|
38
|
+
const result = await Promise.race([resultPromise, timeoutPromise]);
|
|
39
|
+
return {
|
|
40
|
+
index,
|
|
41
|
+
item,
|
|
42
|
+
result,
|
|
43
|
+
success: true,
|
|
44
|
+
duration: Date.now() - startTime,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
clearTimeout(timer);
|
|
49
|
+
}
|
|
54
50
|
}
|
|
55
51
|
const result = await resultPromise;
|
|
56
52
|
return {
|
|
@@ -81,9 +77,6 @@ async function executeItem(item, index, state, config) {
|
|
|
81
77
|
duration: Date.now() - startTime,
|
|
82
78
|
};
|
|
83
79
|
}
|
|
84
|
-
/**
|
|
85
|
-
* Execute a map operation
|
|
86
|
-
*/
|
|
87
80
|
export async function executeMap(state, config) {
|
|
88
81
|
let items = config.items(state);
|
|
89
82
|
if (config.filter) {
|
|
@@ -93,6 +86,7 @@ export async function executeMap(state, config) {
|
|
|
93
86
|
let completed = 0;
|
|
94
87
|
let successful = 0;
|
|
95
88
|
let failed = 0;
|
|
89
|
+
let started = false;
|
|
96
90
|
const emitProgress = (current) => {
|
|
97
91
|
if (config.onProgress) {
|
|
98
92
|
config.onProgress({
|
|
@@ -102,12 +96,13 @@ export async function executeMap(state, config) {
|
|
|
102
96
|
failed,
|
|
103
97
|
currentItem: current,
|
|
104
98
|
pending: items.length - completed,
|
|
105
|
-
running: Math.min(concurrency, items.length - completed),
|
|
99
|
+
running: started ? Math.min(concurrency, items.length - completed) : 0,
|
|
106
100
|
});
|
|
107
101
|
}
|
|
108
102
|
};
|
|
109
103
|
emitProgress();
|
|
110
104
|
const mapper = async (item, index) => {
|
|
105
|
+
started = true;
|
|
111
106
|
const result = await executeItem(item, index, state, config);
|
|
112
107
|
completed++;
|
|
113
108
|
if (result.success) {
|
|
@@ -122,12 +117,25 @@ export async function executeMap(state, config) {
|
|
|
122
117
|
emitProgress(result);
|
|
123
118
|
return result;
|
|
124
119
|
};
|
|
125
|
-
|
|
126
|
-
|
|
120
|
+
try {
|
|
121
|
+
return await executeWithConcurrency(items, mapper, concurrency);
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
const err = error instanceof Error ? error : new Error(String(error));
|
|
125
|
+
const partialResults = [];
|
|
126
|
+
for (let i = 0; i < items.length; i++) {
|
|
127
|
+
partialResults.push({
|
|
128
|
+
index: i,
|
|
129
|
+
item: items[i],
|
|
130
|
+
result: undefined,
|
|
131
|
+
success: false,
|
|
132
|
+
error: err,
|
|
133
|
+
duration: 0,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
throw Object.assign(err, { partialResults });
|
|
137
|
+
}
|
|
127
138
|
}
|
|
128
|
-
/**
|
|
129
|
-
* Execute a reduce operation
|
|
130
|
-
*/
|
|
131
139
|
export function executeReduce(results, state, config) {
|
|
132
140
|
const initial = typeof config.initial === 'function'
|
|
133
141
|
? config.initial(state)
|
|
@@ -139,9 +147,6 @@ export function executeReduce(results, state, config) {
|
|
|
139
147
|
}
|
|
140
148
|
return result;
|
|
141
149
|
}
|
|
142
|
-
/**
|
|
143
|
-
* Execute a map-reduce operation
|
|
144
|
-
*/
|
|
145
150
|
export async function executeMapReduce(state, config) {
|
|
146
151
|
const startTime = Date.now();
|
|
147
152
|
const mapConfig = {
|
|
@@ -154,16 +159,27 @@ export async function executeMapReduce(state, config) {
|
|
|
154
159
|
typeof config.reduce.initial === 'function'
|
|
155
160
|
? config.reduce.initial(state)
|
|
156
161
|
: config.reduce.initial;
|
|
162
|
+
const reduceConfig = {
|
|
163
|
+
name: `${config.name}:reduce`,
|
|
164
|
+
...config.reduce,
|
|
165
|
+
};
|
|
166
|
+
const streamingQueue = [];
|
|
167
|
+
let nextExpectedIndex = 0;
|
|
168
|
+
const drainQueue = () => {
|
|
169
|
+
streamingQueue.sort((a, b) => a.index - b.index);
|
|
170
|
+
while (streamingQueue.length > 0 && streamingQueue[0].index === nextExpectedIndex) {
|
|
171
|
+
const item = streamingQueue.shift();
|
|
172
|
+
if (item.success && reduceConfig.successOnly !== false) {
|
|
173
|
+
streamingAccumulator = reduceConfig.reducer(streamingAccumulator, item, state);
|
|
174
|
+
}
|
|
175
|
+
nextExpectedIndex++;
|
|
176
|
+
}
|
|
177
|
+
};
|
|
157
178
|
const originalOnProgress = mapConfig.onProgress;
|
|
158
179
|
mapConfig.onProgress = (progress) => {
|
|
159
|
-
if (progress.currentItem
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
...config.reduce,
|
|
163
|
-
};
|
|
164
|
-
if (reduceConfig.successOnly !== false || progress.currentItem.success) {
|
|
165
|
-
streamingAccumulator = reduceConfig.reducer(streamingAccumulator, progress.currentItem, state);
|
|
166
|
-
}
|
|
180
|
+
if (progress.currentItem) {
|
|
181
|
+
streamingQueue.push(progress.currentItem);
|
|
182
|
+
drainQueue();
|
|
167
183
|
}
|
|
168
184
|
originalOnProgress?.(progress);
|
|
169
185
|
};
|
|
@@ -198,27 +214,15 @@ export async function executeMapReduce(state, config) {
|
|
|
198
214
|
},
|
|
199
215
|
};
|
|
200
216
|
}
|
|
201
|
-
/**
|
|
202
|
-
* Create a map node factory
|
|
203
|
-
*/
|
|
204
217
|
export function mapNode(name, config) {
|
|
205
218
|
return { name, ...config };
|
|
206
219
|
}
|
|
207
|
-
/**
|
|
208
|
-
* Create a reduce node factory
|
|
209
|
-
*/
|
|
210
220
|
export function reduceNode(name, config) {
|
|
211
221
|
return { name, ...config };
|
|
212
222
|
}
|
|
213
|
-
/**
|
|
214
|
-
* Create a map-reduce node factory
|
|
215
|
-
*/
|
|
216
223
|
export function mapReduceNode(name, config) {
|
|
217
224
|
return { name, ...config };
|
|
218
225
|
}
|
|
219
|
-
/**
|
|
220
|
-
* Parallel map helper - execute all items in parallel
|
|
221
|
-
*/
|
|
222
226
|
export async function parallelMap(state, items, mapper, options = {}) {
|
|
223
227
|
return executeMap(state, {
|
|
224
228
|
name: 'parallelMap',
|
|
@@ -228,9 +232,6 @@ export async function parallelMap(state, items, mapper, options = {}) {
|
|
|
228
232
|
...options,
|
|
229
233
|
});
|
|
230
234
|
}
|
|
231
|
-
/**
|
|
232
|
-
* Sequential map helper - execute items one by one
|
|
233
|
-
*/
|
|
234
235
|
export async function sequentialMap(state, items, mapper, options = {}) {
|
|
235
236
|
return executeMap(state, {
|
|
236
237
|
name: 'sequentialMap',
|
|
@@ -240,9 +241,6 @@ export async function sequentialMap(state, items, mapper, options = {}) {
|
|
|
240
241
|
...options,
|
|
241
242
|
});
|
|
242
243
|
}
|
|
243
|
-
/**
|
|
244
|
-
* Batched map helper - process items in fixed-size batches
|
|
245
|
-
*/
|
|
246
244
|
export async function batchedMap(state, items, mapper, batchSize, options = {}) {
|
|
247
245
|
return executeMap(state, {
|
|
248
246
|
name: 'batchedMap',
|
|
@@ -252,60 +250,42 @@ export async function batchedMap(state, items, mapper, batchSize, options = {})
|
|
|
252
250
|
...options,
|
|
253
251
|
});
|
|
254
252
|
}
|
|
255
|
-
/**
|
|
256
|
-
* Collect helper - reduce results to an array
|
|
257
|
-
*/
|
|
258
253
|
export function collect() {
|
|
259
254
|
return {
|
|
260
|
-
initial: [],
|
|
255
|
+
initial: () => [],
|
|
261
256
|
reducer: (acc, item) => {
|
|
262
257
|
acc.push(item.result);
|
|
263
258
|
return acc;
|
|
264
259
|
},
|
|
265
260
|
};
|
|
266
261
|
}
|
|
267
|
-
/**
|
|
268
|
-
* Sum helper - reduce numbers to sum
|
|
269
|
-
*/
|
|
270
262
|
export function sum() {
|
|
271
263
|
return {
|
|
272
264
|
initial: 0,
|
|
273
265
|
reducer: (acc, item) => acc + item.result,
|
|
274
266
|
};
|
|
275
267
|
}
|
|
276
|
-
/**
|
|
277
|
-
* Count helper - count successful items
|
|
278
|
-
*/
|
|
279
268
|
export function count() {
|
|
280
269
|
return {
|
|
281
270
|
initial: 0,
|
|
282
271
|
reducer: (acc) => acc + 1,
|
|
283
272
|
};
|
|
284
273
|
}
|
|
285
|
-
/**
|
|
286
|
-
* First helper - get first result
|
|
287
|
-
*/
|
|
288
274
|
export function first() {
|
|
289
275
|
return {
|
|
290
276
|
initial: undefined,
|
|
291
277
|
reducer: (acc, item) => acc ?? item.result,
|
|
292
278
|
};
|
|
293
279
|
}
|
|
294
|
-
/**
|
|
295
|
-
* Last helper - get last result
|
|
296
|
-
*/
|
|
297
280
|
export function last() {
|
|
298
281
|
return {
|
|
299
282
|
initial: undefined,
|
|
300
283
|
reducer: (_, item) => item.result,
|
|
301
284
|
};
|
|
302
285
|
}
|
|
303
|
-
/**
|
|
304
|
-
* GroupBy helper - group results by key
|
|
305
|
-
*/
|
|
306
286
|
export function groupBy(keyFn) {
|
|
307
287
|
return {
|
|
308
|
-
initial: {},
|
|
288
|
+
initial: () => ({}),
|
|
309
289
|
reducer: (acc, item) => {
|
|
310
290
|
const key = keyFn(item.result, item);
|
|
311
291
|
if (!acc[key]) {
|
|
@@ -316,12 +296,9 @@ export function groupBy(keyFn) {
|
|
|
316
296
|
},
|
|
317
297
|
};
|
|
318
298
|
}
|
|
319
|
-
/**
|
|
320
|
-
* Partition helper - partition results by predicate
|
|
321
|
-
*/
|
|
322
299
|
export function partition(predicate) {
|
|
323
300
|
return {
|
|
324
|
-
initial: { pass: [], fail: [] },
|
|
301
|
+
initial: () => ({ pass: [], fail: [] }),
|
|
325
302
|
reducer: (acc, item) => {
|
|
326
303
|
if (predicate(item.result, item)) {
|
|
327
304
|
acc.pass.push(item.result);
|
|
@@ -333,30 +310,24 @@ export function partition(predicate) {
|
|
|
333
310
|
},
|
|
334
311
|
};
|
|
335
312
|
}
|
|
336
|
-
/**
|
|
337
|
-
* FlatMap helper - flatten arrays of results
|
|
338
|
-
*/
|
|
339
313
|
export function flatMap() {
|
|
340
314
|
return {
|
|
341
|
-
initial: [],
|
|
315
|
+
initial: () => [],
|
|
342
316
|
reducer: (acc, item) => {
|
|
343
317
|
acc.push(...item.result);
|
|
344
318
|
return acc;
|
|
345
319
|
},
|
|
346
320
|
};
|
|
347
321
|
}
|
|
348
|
-
/**
|
|
349
|
-
* Stats helper - compute statistics from numeric results
|
|
350
|
-
*/
|
|
351
322
|
export function stats() {
|
|
352
323
|
return {
|
|
353
|
-
initial: {
|
|
324
|
+
initial: () => ({
|
|
354
325
|
count: 0,
|
|
355
326
|
sum: 0,
|
|
356
327
|
avg: 0,
|
|
357
328
|
min: Infinity,
|
|
358
329
|
max: -Infinity,
|
|
359
|
-
},
|
|
330
|
+
}),
|
|
360
331
|
reducer: (acc, item) => {
|
|
361
332
|
acc.count++;
|
|
362
333
|
acc.sum += item.result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-reduce.js","sourceRoot":"","sources":["../../src/patterns/map-reduce.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"map-reduce.js","sourceRoot":"","sources":["../../src/patterns/map-reduce.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/saga/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAOrF;;GAEG;AACH,UAAU,kBAAkB;IAC1B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,EAAE,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5F;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAiB9E,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,aAAa,CAAoC;gBAE7C,MAAM,GAAE,OAAO,CAAC,oBAAoB,CAAM;IAWtD;;OAEG;IACH,OAAO,CAAC,UAAU;IAgBlB;;OAEG;IACH,OAAO,CAAC,WAAW;IA8BnB;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/saga/circuit-breaker.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,6 +90,7 @@ export class CircuitBreaker {
|
|
|
90
90
|
const elapsed = now - breaker.lastStateChange;
|
|
91
91
|
if (elapsed >= this.config.resetTimeout) {
|
|
92
92
|
this.changeState(nodeId, breaker, 'half-open');
|
|
93
|
+
breaker.halfOpenAttempts++;
|
|
93
94
|
return true;
|
|
94
95
|
}
|
|
95
96
|
return false;
|
|
@@ -264,7 +265,9 @@ export class CircuitBreaker {
|
|
|
264
265
|
try {
|
|
265
266
|
handler(event);
|
|
266
267
|
}
|
|
267
|
-
catch {
|
|
268
|
+
catch (err) {
|
|
269
|
+
console.warn('[CircuitBreaker] Event handler error:', err);
|
|
270
|
+
}
|
|
268
271
|
}
|
|
269
272
|
}
|
|
270
273
|
}
|
|
@@ -277,7 +280,7 @@ export class CircuitBreakerOpenError extends Error {
|
|
|
277
280
|
failures;
|
|
278
281
|
lastFailure;
|
|
279
282
|
constructor(nodeId, breaker) {
|
|
280
|
-
super(`Circuit breaker is
|
|
283
|
+
super(`Circuit breaker is ${breaker.state} for node '${nodeId}'`);
|
|
281
284
|
this.name = 'CircuitBreakerOpenError';
|
|
282
285
|
this.nodeId = nodeId;
|
|
283
286
|
this.state = breaker.state;
|