@ai.ntellect/core 0.7.5 → 0.7.6
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/graph/controller.d.ts +8 -9
- package/dist/graph/controller.d.ts.map +1 -1
- package/dist/graph/controller.js +24 -25
- package/dist/graph/controller.js.map +1 -1
- package/dist/graph/index.d.ts +5 -3
- package/dist/graph/index.d.ts.map +1 -1
- package/dist/graph/index.js +13 -9
- package/dist/graph/index.js.map +1 -1
- package/dist/graph/node.d.ts +30 -11
- package/dist/graph/node.d.ts.map +1 -1
- package/dist/graph/node.js +64 -66
- package/dist/graph/node.js.map +1 -1
- package/dist/graph/observer.d.ts.map +1 -1
- package/dist/graph/observer.js +0 -1
- package/dist/graph/observer.js.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/graph/controller.ts +40 -39
- package/graph/index.ts +17 -13
- package/graph/node.ts +104 -95
- package/graph/observer.ts +0 -1
- package/package.json +1 -1
- package/test/graph/controller.test.ts +187 -0
- package/test/graph/index.test.ts +30 -19
- package/test/graph/node.test.ts +141 -6
- package/types/index.ts +2 -5
@@ -1,5 +1,7 @@
|
|
1
1
|
import { ZodSchema } from "zod";
|
2
|
+
import { GraphContext } from "../types";
|
2
3
|
import { GraphFlow } from "./index";
|
4
|
+
import { NodeParams } from "./node";
|
3
5
|
/**
|
4
6
|
* Controller class for managing the execution of graph flows
|
5
7
|
* Handles both sequential and parallel execution of multiple graphs
|
@@ -9,25 +11,22 @@ export declare class GraphController {
|
|
9
11
|
* Executes multiple graphs sequentially
|
10
12
|
* @param graphs - Array of GraphFlow instances to execute
|
11
13
|
* @param startNodes - Array of starting node identifiers for each graph
|
12
|
-
* @param
|
14
|
+
* @param inputs - Optional array of additional inputs for each graph
|
15
|
+
* @param params - Optional array of node parameters for each graph
|
13
16
|
* @returns Map containing results of each graph execution, keyed by graph name and index
|
14
17
|
* @template T - Zod schema type for graph context validation
|
15
18
|
*/
|
16
|
-
static executeSequential<T extends ZodSchema
|
17
|
-
|
18
|
-
}, startNodes: string[], inputs: any[]): Promise<any[]>;
|
19
|
+
static executeSequential<T extends ZodSchema>(graphs: GraphFlow<T>[], startNodes: string[], params?: NodeParams[]): Promise<any[]>;
|
20
|
+
private static executeGraph;
|
19
21
|
/**
|
20
22
|
* Executes multiple graphs in parallel with optional concurrency control
|
21
23
|
* @param graphs - Array of GraphFlow instances to execute
|
22
24
|
* @param startNodes - Array of starting node identifiers for each graph
|
23
|
-
* @param
|
25
|
+
* @param concurrency - Optional limit on number of concurrent graph executions
|
24
26
|
* @param inputs - Optional array of additional inputs for each graph
|
25
|
-
* @param concurrencyLimit - Optional limit on number of concurrent graph executions
|
26
27
|
* @returns Map containing results of each graph execution, keyed by graph name
|
27
28
|
* @template T - Zod schema type for graph context validation
|
28
29
|
*/
|
29
|
-
static executeParallel<T extends ZodSchema
|
30
|
-
[K in keyof T]: GraphFlow<T[K]>;
|
31
|
-
}, startNodes: string[], concurrency: number, inputs: any[]): Promise<any[]>;
|
30
|
+
static executeParallel<T extends ZodSchema>(graphs: GraphFlow<T>[], startNodes: string[], concurrency: number, inputs?: any[]): Promise<GraphContext<T>[]>;
|
32
31
|
}
|
33
32
|
//# sourceMappingURL=controller.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../graph/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../graph/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;;GAGG;AACH,qBAAa,eAAe;IAC1B;;;;;;;;OAQG;WACU,iBAAiB,CAAC,CAAC,SAAS,SAAS,EAChD,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EACtB,UAAU,EAAE,MAAM,EAAE,EACpB,MAAM,CAAC,EAAE,UAAU,EAAE,GACpB,OAAO,CAAC,GAAG,EAAE,CAAC;mBAaI,YAAY;IAYjC;;;;;;;;OAQG;WACU,eAAe,CAAC,CAAC,SAAS,SAAS,EAC9C,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,EACtB,UAAU,EAAE,MAAM,EAAE,EACpB,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;CAgB9B"}
|
package/dist/graph/controller.js
CHANGED
@@ -19,53 +19,52 @@ class GraphController {
|
|
19
19
|
* Executes multiple graphs sequentially
|
20
20
|
* @param graphs - Array of GraphFlow instances to execute
|
21
21
|
* @param startNodes - Array of starting node identifiers for each graph
|
22
|
-
* @param
|
22
|
+
* @param inputs - Optional array of additional inputs for each graph
|
23
|
+
* @param params - Optional array of node parameters for each graph
|
23
24
|
* @returns Map containing results of each graph execution, keyed by graph name and index
|
24
25
|
* @template T - Zod schema type for graph context validation
|
25
26
|
*/
|
26
|
-
static executeSequential(graphs, startNodes,
|
27
|
+
static executeSequential(graphs, startNodes, params) {
|
27
28
|
return __awaiter(this, void 0, void 0, function* () {
|
28
29
|
const results = new Map();
|
29
30
|
for (let i = 0; i < graphs.length; i++) {
|
30
|
-
const result = yield graphs[i].execute(startNodes[i],
|
31
|
+
const result = yield graphs[i].execute(startNodes[i], params === null || params === void 0 ? void 0 : params[i], undefined);
|
31
32
|
results.set(`${graphs[i].name}-${i}`, result);
|
32
33
|
}
|
33
34
|
return Array.from(results.values());
|
34
35
|
});
|
35
36
|
}
|
37
|
+
static executeGraph(graph, startNode, params) {
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
39
|
+
try {
|
40
|
+
return yield graph.execute(startNode, params);
|
41
|
+
}
|
42
|
+
catch (error) {
|
43
|
+
throw error;
|
44
|
+
}
|
45
|
+
});
|
46
|
+
}
|
36
47
|
/**
|
37
48
|
* Executes multiple graphs in parallel with optional concurrency control
|
38
49
|
* @param graphs - Array of GraphFlow instances to execute
|
39
50
|
* @param startNodes - Array of starting node identifiers for each graph
|
40
|
-
* @param
|
51
|
+
* @param concurrency - Optional limit on number of concurrent graph executions
|
41
52
|
* @param inputs - Optional array of additional inputs for each graph
|
42
|
-
* @param concurrencyLimit - Optional limit on number of concurrent graph executions
|
43
53
|
* @returns Map containing results of each graph execution, keyed by graph name
|
44
54
|
* @template T - Zod schema type for graph context validation
|
45
55
|
*/
|
46
56
|
static executeParallel(graphs, startNodes, concurrency, inputs) {
|
47
57
|
return __awaiter(this, void 0, void 0, function* () {
|
48
|
-
const results =
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
.map((graph, index) => graph.execute(startNodes[i + index], inputs === null || inputs === void 0 ? void 0 : inputs[i + index])));
|
57
|
-
batchResults.forEach((result, index) => {
|
58
|
-
results.set(`${graphs[i + index].name}`, result);
|
59
|
-
});
|
60
|
-
}
|
58
|
+
const results = [];
|
59
|
+
for (let i = 0; i < graphs.length; i += concurrency) {
|
60
|
+
const batch = graphs.slice(i, i + concurrency);
|
61
|
+
const batchResults = yield Promise.all(batch.map((graph, idx) => {
|
62
|
+
const input = inputs === null || inputs === void 0 ? void 0 : inputs[i + idx];
|
63
|
+
return this.executeGraph(graph, startNodes[i + idx], input);
|
64
|
+
}));
|
65
|
+
results.push(...batchResults);
|
61
66
|
}
|
62
|
-
|
63
|
-
const allResults = yield Promise.all(graphs.map((graph, index) => graph.execute(startNodes[index], (inputs === null || inputs === void 0 ? void 0 : inputs[index]) || {})));
|
64
|
-
allResults.forEach((result, index) => {
|
65
|
-
results.set(`${graphs[index].name}`, result);
|
66
|
-
});
|
67
|
-
}
|
68
|
-
return Array.from(results.values());
|
67
|
+
return results;
|
69
68
|
});
|
70
69
|
}
|
71
70
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../graph/controller.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../graph/controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA;;;GAGG;AACH,MAAa,eAAe;IAC1B;;;;;;;;OAQG;IACH,MAAM,CAAO,iBAAiB,CAC5B,MAAsB,EACtB,UAAoB,EACpB,MAAqB;;YAErB,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;YACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CACpC,UAAU,CAAC,CAAC,CAAC,EACb,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,EACX,SAAS,CACV,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAChD,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtC,CAAC;KAAA;IAEO,MAAM,CAAO,YAAY,CAC/B,KAAmB,EACnB,SAAiB,EACjB,MAAmB;;YAEnB,IAAI,CAAC;gBACH,OAAO,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;;OAQG;IACH,MAAM,CAAO,eAAe,CAC1B,MAAsB,EACtB,UAAoB,EACpB,WAAmB,EACnB,MAAc;;YAEd,MAAM,OAAO,GAAsB,EAAE,CAAC;YAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;gBAC/C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACvB,MAAM,KAAK,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,GAAG,GAAG,CAAC,CAAC;oBAChC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC,CAAC,CACH,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAChC,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;CACF;AArED,0CAqEC"}
|
package/dist/graph/index.d.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import { ZodSchema } from "zod";
|
2
2
|
import { GraphObservable } from "../interfaces";
|
3
3
|
import { GraphContext, GraphDefinition, Node } from "../types";
|
4
|
+
import { NodeParams } from "./node";
|
4
5
|
import { GraphObserver } from "./observer";
|
5
6
|
/**
|
6
7
|
* @module GraphFlow
|
@@ -99,11 +100,12 @@ export declare class GraphFlow<T extends ZodSchema> {
|
|
99
100
|
/**
|
100
101
|
* Executes the graph flow starting from a specific node
|
101
102
|
* @param {string} startNode - Name of the node to start execution from
|
102
|
-
* @param {
|
103
|
-
* @param {
|
103
|
+
* @param {any} inputs - Optional input parameters for the start node
|
104
|
+
* @param {Partial<GraphContext<T>>} context - Optional context to merge
|
105
|
+
* @param {NodeParams} params - Optional node parameters
|
104
106
|
* @returns {Promise<GraphContext<T>>} Final context after execution
|
105
107
|
*/
|
106
|
-
execute(startNode: string,
|
108
|
+
execute(startNode: string, params?: NodeParams, context?: Partial<GraphContext<T>>): Promise<GraphContext<T>>;
|
107
109
|
/**
|
108
110
|
* Emits an event to trigger event-based nodes
|
109
111
|
* @param {string} eventName - Name of the event to emit
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../graph/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,eAAe,EAAiB,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAc,IAAI,EAAE,MAAM,UAAU,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../graph/index.ts"],"names":[],"mappings":"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"}
|
package/dist/graph/index.js
CHANGED
@@ -150,22 +150,26 @@ class GraphFlow {
|
|
150
150
|
/**
|
151
151
|
* Executes the graph flow starting from a specific node
|
152
152
|
* @param {string} startNode - Name of the node to start execution from
|
153
|
-
* @param {
|
154
|
-
* @param {
|
153
|
+
* @param {any} inputs - Optional input parameters for the start node
|
154
|
+
* @param {Partial<GraphContext<T>>} context - Optional context to merge
|
155
|
+
* @param {NodeParams} params - Optional node parameters
|
155
156
|
* @returns {Promise<GraphContext<T>>} Final context after execution
|
156
157
|
*/
|
157
|
-
execute(startNode,
|
158
|
+
execute(startNode, params, context) {
|
158
159
|
return __awaiter(this, void 0, void 0, function* () {
|
159
160
|
var _a;
|
160
|
-
if (
|
161
|
-
Object.assign(this.context,
|
162
|
-
}
|
163
|
-
if (inputContext) {
|
164
|
-
Object.assign(this.context, inputContext);
|
161
|
+
if (context) {
|
162
|
+
Object.assign(this.context, context);
|
165
163
|
}
|
166
164
|
this.eventEmitter.emit("graphStarted", { name: this.name });
|
167
165
|
try {
|
168
|
-
|
166
|
+
const node = this.nodes.get(startNode);
|
167
|
+
if (!node)
|
168
|
+
throw new Error(`Node "${startNode}" not found`);
|
169
|
+
if (node.inputs && !params) {
|
170
|
+
throw new Error(`Inputs required for node "${startNode}"`);
|
171
|
+
}
|
172
|
+
yield this.nodeExecutor.executeNode(startNode, this.context, params, false);
|
169
173
|
this.eventEmitter.emit("graphCompleted", {
|
170
174
|
name: this.name,
|
171
175
|
context: this.context,
|
package/dist/graph/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../graph/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAsC;AACtC,+BAAgD;AAIhD,mDAAoD;AACpD,qCAAuC;AACvC,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../graph/index.ts"],"names":[],"mappings":"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"}
|
package/dist/graph/node.d.ts
CHANGED
@@ -1,18 +1,46 @@
|
|
1
1
|
import { BehaviorSubject, Subject } from "rxjs";
|
2
2
|
import { ZodSchema } from "zod";
|
3
|
-
import { GraphContext, GraphEvent
|
3
|
+
import { GraphContext, GraphEvent } from "../types";
|
4
4
|
import { GraphEventManager } from "./event-manager";
|
5
|
-
import { GraphLogger } from "./logger";
|
6
5
|
/**
|
7
6
|
* Represents a node in the graph that can execute operations and manage state
|
8
7
|
* @template T - The Zod schema type for validation
|
9
8
|
*/
|
9
|
+
export interface NodeParams<T = any> {
|
10
|
+
[key: string]: T;
|
11
|
+
}
|
12
|
+
export interface Node<T extends ZodSchema, I = any> {
|
13
|
+
condition?: (context: GraphContext<T>, params?: NodeParams) => boolean;
|
14
|
+
execute: (context: GraphContext<T>, inputs: I, params?: NodeParams) => Promise<void>;
|
15
|
+
next?: string[] | ((context: GraphContext<T>) => string[]);
|
16
|
+
inputs?: ZodSchema;
|
17
|
+
outputs?: ZodSchema;
|
18
|
+
retry?: {
|
19
|
+
maxAttempts: number;
|
20
|
+
delay?: number;
|
21
|
+
onRetryFailed?: (error: Error, context: GraphContext<T>) => Promise<void>;
|
22
|
+
continueOnFailed?: boolean;
|
23
|
+
};
|
24
|
+
correlateEvents?: {
|
25
|
+
events: string[];
|
26
|
+
timeout?: number;
|
27
|
+
correlation: (events: GraphEvent<T>[]) => boolean;
|
28
|
+
};
|
29
|
+
waitForEvents?: {
|
30
|
+
events: string[];
|
31
|
+
timeout: number;
|
32
|
+
};
|
33
|
+
}
|
34
|
+
export interface GraphLogger {
|
35
|
+
addLog: (message: string, data?: any) => void;
|
36
|
+
}
|
10
37
|
export declare class GraphNode<T extends ZodSchema> {
|
11
38
|
private nodes;
|
12
39
|
private logger;
|
13
40
|
private eventManager;
|
14
41
|
private eventSubject;
|
15
42
|
private stateSubject;
|
43
|
+
private lastStateEvent;
|
16
44
|
/**
|
17
45
|
* Creates a new GraphNode instance
|
18
46
|
* @param nodes - Map of all nodes in the graph
|
@@ -74,15 +102,6 @@ export declare class GraphNode<T extends ZodSchema> {
|
|
74
102
|
* @private
|
75
103
|
*/
|
76
104
|
private executeWithRetry;
|
77
|
-
/**
|
78
|
-
* Handles the failure of retry attempts
|
79
|
-
* @param node - The node that failed
|
80
|
-
* @param error - The error that caused the failure
|
81
|
-
* @param context - The current graph context
|
82
|
-
* @param nodeName - The name of the node
|
83
|
-
* @private
|
84
|
-
*/
|
85
|
-
private handleRetryFailure;
|
86
105
|
/**
|
87
106
|
* Handles correlated events for a node
|
88
107
|
* @param node - The node with correlated events
|
package/dist/graph/node.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../graph/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../graph/node.ts"],"names":[],"mappings":"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"}
|
package/dist/graph/node.js
CHANGED
@@ -10,10 +10,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
10
10
|
};
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
12
|
exports.GraphNode = void 0;
|
13
|
-
/**
|
14
|
-
* Represents a node in the graph that can execute operations and manage state
|
15
|
-
* @template T - The Zod schema type for validation
|
16
|
-
*/
|
17
13
|
class GraphNode {
|
18
14
|
/**
|
19
15
|
* Creates a new GraphNode instance
|
@@ -29,6 +25,7 @@ class GraphNode {
|
|
29
25
|
this.eventManager = eventManager;
|
30
26
|
this.eventSubject = eventSubject;
|
31
27
|
this.stateSubject = stateSubject;
|
28
|
+
this.lastStateEvent = null;
|
32
29
|
}
|
33
30
|
/**
|
34
31
|
* Emits an event with the specified type and payload
|
@@ -37,18 +34,24 @@ class GraphNode {
|
|
37
34
|
* @private
|
38
35
|
*/
|
39
36
|
emitEvent(type, payload) {
|
40
|
-
|
37
|
+
var _a;
|
38
|
+
if (type === "nodeStateChanged") {
|
39
|
+
if (((_a = this.lastStateEvent) === null || _a === void 0 ? void 0 : _a.type) === type &&
|
40
|
+
this.lastStateEvent.payload.property === payload.property &&
|
41
|
+
this.lastStateEvent.payload.newValue === payload.newValue &&
|
42
|
+
this.lastStateEvent.payload.nodeName === payload.nodeName) {
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
}
|
41
46
|
const event = {
|
42
47
|
type,
|
43
|
-
payload: Object.assign(Object.assign({}, payload), { name: type === "nodeStateChanged"
|
44
|
-
? payload.name || payload.nodeName
|
45
|
-
: payload.name, context: Object.assign({}, payload.context) }),
|
48
|
+
payload: Object.assign(Object.assign({}, payload), { name: type === "nodeStateChanged" ? payload.nodeName : payload.name, context: Object.assign({}, payload.context) }),
|
46
49
|
timestamp: Date.now(),
|
47
50
|
};
|
48
51
|
this.eventSubject.next(event);
|
49
52
|
this.eventManager.emitEvent(type, event);
|
50
|
-
// Update state subject only for state changes
|
51
53
|
if (type === "nodeStateChanged") {
|
54
|
+
this.lastStateEvent = event;
|
52
55
|
this.stateSubject.next(Object.assign({}, payload.context));
|
53
56
|
}
|
54
57
|
}
|
@@ -65,48 +68,46 @@ class GraphNode {
|
|
65
68
|
const node = this.nodes.get(nodeName);
|
66
69
|
if (!node)
|
67
70
|
throw new Error(`Node "${nodeName}" not found.`);
|
68
|
-
|
69
|
-
|
71
|
+
// Créer une copie du contexte pour ce nœud
|
72
|
+
const nodeContext = Object.assign({}, context);
|
73
|
+
this.emitEvent("nodeStarted", { name: nodeName, context: nodeContext });
|
70
74
|
try {
|
71
|
-
|
72
|
-
if (node.condition && !node.condition(context)) {
|
73
|
-
this.logger.addLog(`⏭️ Skipping node "${nodeName}" - condition not met`);
|
74
|
-
return;
|
75
|
-
}
|
76
|
-
const contextProxy = new Proxy(context, {
|
75
|
+
const contextProxy = new Proxy(nodeContext, {
|
77
76
|
set: (target, prop, value) => {
|
78
77
|
const oldValue = target[prop];
|
79
78
|
if (oldValue === value)
|
80
79
|
return true;
|
81
80
|
target[prop] = value;
|
81
|
+
// Mettre à jour le contexte global
|
82
|
+
context[prop] = value;
|
82
83
|
this.emitEvent("nodeStateChanged", {
|
83
84
|
nodeName,
|
84
85
|
property: prop.toString(),
|
85
86
|
oldValue,
|
86
87
|
newValue: value,
|
87
|
-
context: target,
|
88
|
+
context: Object.assign({}, target),
|
88
89
|
});
|
89
90
|
return true;
|
90
91
|
},
|
91
|
-
get: (target, prop) => target[prop],
|
92
92
|
});
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
93
|
+
if (node.condition && !node.condition(contextProxy, inputs)) {
|
94
|
+
return;
|
95
|
+
}
|
96
|
+
yield this.executeWithRetry(node, contextProxy, inputs, nodeName);
|
97
|
+
this.emitEvent("nodeCompleted", { name: nodeName, context: nodeContext });
|
98
|
+
if (!triggeredByEvent && node.next) {
|
99
|
+
const nextNodes = typeof node.next === "function" ? node.next(contextProxy) : node.next;
|
100
100
|
for (const nextNodeName of nextNodes) {
|
101
101
|
yield this.executeNode(nextNodeName, context, undefined, false);
|
102
102
|
}
|
103
103
|
}
|
104
|
-
this.logger.addLog(`✅ Node "${nodeName}" executed successfully`);
|
105
|
-
this.emitEvent("nodeCompleted", { name: nodeName, context });
|
106
104
|
}
|
107
105
|
catch (error) {
|
108
|
-
this.
|
109
|
-
|
106
|
+
this.emitEvent("nodeError", {
|
107
|
+
name: nodeName,
|
108
|
+
error,
|
109
|
+
context: nodeContext,
|
110
|
+
});
|
110
111
|
throw error;
|
111
112
|
}
|
112
113
|
});
|
@@ -182,21 +183,46 @@ class GraphNode {
|
|
182
183
|
*/
|
183
184
|
executeWithRetry(node, contextProxy, inputs, nodeName) {
|
184
185
|
return __awaiter(this, void 0, void 0, function* () {
|
186
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
185
187
|
let attempts = 0;
|
186
|
-
let lastError =
|
187
|
-
while (attempts < node.retry.maxAttempts) {
|
188
|
+
let lastError = new Error("Unknown error");
|
189
|
+
while (attempts < (((_a = node.retry) === null || _a === void 0 ? void 0 : _a.maxAttempts) || 1)) {
|
188
190
|
try {
|
189
|
-
|
191
|
+
// Validation des inputs
|
192
|
+
if (node.inputs) {
|
193
|
+
try {
|
194
|
+
node.inputs.parse(inputs);
|
195
|
+
}
|
196
|
+
catch (error) {
|
197
|
+
const message = ((_c = (_b = error.errors) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.message) || error.message;
|
198
|
+
throw new Error(`Input validation failed: ${message}`);
|
199
|
+
}
|
200
|
+
}
|
201
|
+
// Exécution du node
|
190
202
|
yield node.execute(contextProxy, inputs);
|
203
|
+
// Validation des outputs
|
204
|
+
if (node.outputs) {
|
205
|
+
try {
|
206
|
+
node.outputs.parse(contextProxy);
|
207
|
+
}
|
208
|
+
catch (error) {
|
209
|
+
const message = ((_e = (_d = error.errors) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.message) || error.message;
|
210
|
+
throw new Error(`Output validation failed: ${message}`);
|
211
|
+
}
|
212
|
+
}
|
191
213
|
return;
|
192
214
|
}
|
193
215
|
catch (error) {
|
194
|
-
lastError =
|
216
|
+
lastError =
|
217
|
+
error instanceof Error
|
218
|
+
? error
|
219
|
+
: new Error((error === null || error === void 0 ? void 0 : error.message) || "Unknown error");
|
195
220
|
attempts++;
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
221
|
+
if (attempts === (((_f = node.retry) === null || _f === void 0 ? void 0 : _f.maxAttempts) || 1)) {
|
222
|
+
if ((_g = node.retry) === null || _g === void 0 ? void 0 : _g.onRetryFailed) {
|
223
|
+
yield node.retry.onRetryFailed(lastError, contextProxy);
|
224
|
+
if (node.retry.continueOnFailed)
|
225
|
+
return;
|
200
226
|
}
|
201
227
|
throw lastError;
|
202
228
|
}
|
@@ -205,34 +231,6 @@ class GraphNode {
|
|
205
231
|
}
|
206
232
|
});
|
207
233
|
}
|
208
|
-
/**
|
209
|
-
* Handles the failure of retry attempts
|
210
|
-
* @param node - The node that failed
|
211
|
-
* @param error - The error that caused the failure
|
212
|
-
* @param context - The current graph context
|
213
|
-
* @param nodeName - The name of the node
|
214
|
-
* @private
|
215
|
-
*/
|
216
|
-
handleRetryFailure(node, error, context, nodeName) {
|
217
|
-
return __awaiter(this, void 0, void 0, function* () {
|
218
|
-
var _a;
|
219
|
-
this.logger.addLog(`🔄 Executing retry failure handler for node "${nodeName}"`);
|
220
|
-
try {
|
221
|
-
if ((_a = node.retry) === null || _a === void 0 ? void 0 : _a.onRetryFailed) {
|
222
|
-
yield node.retry.onRetryFailed(error, context);
|
223
|
-
if (node.retry.continueOnFailed) {
|
224
|
-
this.logger.addLog(`✅ Retry failure handler succeeded - continuing execution`);
|
225
|
-
return;
|
226
|
-
}
|
227
|
-
this.logger.addLog(`⚠️ Retry failure handler executed but node will still fail`);
|
228
|
-
}
|
229
|
-
}
|
230
|
-
catch (handlerError) {
|
231
|
-
this.logger.addLog(`❌ Retry failure handler failed: ${handlerError.message}`);
|
232
|
-
throw handlerError;
|
233
|
-
}
|
234
|
-
});
|
235
|
-
}
|
236
234
|
/**
|
237
235
|
* Handles correlated events for a node
|
238
236
|
* @param node - The node with correlated events
|
package/dist/graph/node.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../graph/node.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../graph/node.ts"],"names":[],"mappings":";;;;;;;;;;;;AA4CA,MAAa,SAAS;IAGpB;;;;;;;OAOG;IACH,YACU,KAAgC,EAChC,MAAmB,EACnB,YAAkC,EAClC,YAAoC,EACpC,YAA8C;QAJ9C,UAAK,GAAL,KAAK,CAA2B;QAChC,WAAM,GAAN,MAAM,CAAa;QACnB,iBAAY,GAAZ,YAAY,CAAsB;QAClC,iBAAY,GAAZ,YAAY,CAAwB;QACpC,iBAAY,GAAZ,YAAY,CAAkC;QAfhD,mBAAc,GAAyB,IAAI,CAAC;IAgBjD,CAAC;IAEJ;;;;;OAKG;IACK,SAAS,CAAC,IAAY,EAAE,OAAY;;QAC1C,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAChC,IACE,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,IAAI,MAAK,IAAI;gBAClC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;gBACzD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;gBACzD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EACzD,CAAC;gBACD,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG;YACZ,IAAI;YACJ,OAAO,kCACF,OAAO,KACV,IAAI,EAAE,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EACnE,OAAO,oBAAO,OAAO,CAAC,OAAO,IAC9B;YACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEzC,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAChC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,mBAAM,OAAO,CAAC,OAAO,EAAG,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACU,WAAW;6DACtB,QAAgB,EAChB,OAAwB,EACxB,MAAW,EACX,mBAA4B,KAAK;YAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,cAAc,CAAC,CAAC;YAE5D,2CAA2C;YAC3C,MAAM,WAAW,qBAAQ,OAAO,CAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAExE,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE;oBAC1C,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;wBAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;wBAC9B,IAAI,QAAQ,KAAK,KAAK;4BAAE,OAAO,IAAI,CAAC;wBAEpC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;wBACrB,mCAAmC;wBACnC,OAAO,CAAC,IAA4B,CAAC,GAAG,KAAK,CAAC;wBAE9C,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;4BACjC,QAAQ;4BACR,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;4BACzB,QAAQ;4BACR,QAAQ,EAAE,KAAK;4BACf,OAAO,oBAAO,MAAM,CAAE;yBACvB,CAAC,CAAC;wBACH,OAAO,IAAI,CAAC;oBACd,CAAC;iBACF,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;oBAC5D,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAClE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;gBAE1E,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnC,MAAM,SAAS,GACb,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxE,KAAK,MAAM,YAAY,IAAI,SAAS,EAAE,CAAC;wBACrC,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;oBAClE,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;oBAC1B,IAAI,EAAE,QAAQ;oBACd,KAAK;oBACL,OAAO,EAAE,WAAW;iBACrB,CAAC,CAAC;gBACH,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;OAOG;IACW,cAAc,CAC1B,IAAkB,EAClB,MAAW,EACX,QAAgB;;;YAEhB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,GAAG,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CACb,CAAA,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAG,CAAC,CAAC,0CAAE,OAAO,KAAI,KAAK,CAAC,OAAO,IAAI,yBAAyB,CACzE,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;OAOG;IACW,eAAe,CAC3B,IAAkB,EAClB,OAAwB,EACxB,QAAgB;;;YAEhB,IAAI,CAAC;gBACH,IAAI,CAAC,OAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CACb,CAAA,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAG,CAAC,CAAC,0CAAE,OAAO;oBACxB,KAAK,CAAC,OAAO;oBACb,0BAA0B,CAC7B,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;IAED;;;;;;OAMG;IACW,YAAY,CACxB,IAAkB,EAClB,QAAgB,EAChB,OAAwB;;YAExB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACpD,CAAC;YAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;;OAQG;IACW,gBAAgB,CAC5B,IAAkB,EAClB,YAA6B,EAC7B,MAAW,EACX,QAAgB;;;YAEhB,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,SAAS,GAAU,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;YAElD,OAAO,QAAQ,GAAG,CAAC,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,KAAI,CAAC,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC;oBACH,wBAAwB;oBACxB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChB,IAAI,CAAC;4BACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBAC5B,CAAC;wBAAC,OAAO,KAAU,EAAE,CAAC;4BACpB,MAAM,OAAO,GAAG,CAAA,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAG,CAAC,CAAC,0CAAE,OAAO,KAAI,KAAK,CAAC,OAAO,CAAC;4BAC5D,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;wBACzD,CAAC;oBACH,CAAC;oBAED,oBAAoB;oBACpB,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;oBAEzC,yBAAyB;oBACzB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACjB,IAAI,CAAC;4BACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;wBACnC,CAAC;wBAAC,OAAO,KAAU,EAAE,CAAC;4BACpB,MAAM,OAAO,GAAG,CAAA,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAG,CAAC,CAAC,0CAAE,OAAO,KAAI,KAAK,CAAC,OAAO,CAAC;4BAC5D,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;wBAC1D,CAAC;oBACH,CAAC;oBACD,OAAO;gBACT,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,SAAS;wBACP,KAAK,YAAY,KAAK;4BACpB,CAAC,CAAC,KAAK;4BACP,CAAC,CAAC,IAAI,KAAK,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,eAAe,CAAC,CAAC;oBACnD,QAAQ,EAAE,CAAC;oBAEX,IAAI,QAAQ,KAAK,CAAC,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,KAAI,CAAC,CAAC,EAAE,CAAC;wBAChD,IAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,aAAa,EAAE,CAAC;4BAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;4BACxD,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB;gCAAE,OAAO;wBAC1C,CAAC;wBACD,MAAM,SAAS,CAAC;oBAClB,CAAC;oBAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,WAC5B,OAAA,UAAU,CAAC,OAAO,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,KAAI,CAAC,CAAC,CAAA,EAAA,CAC5C,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAED;;;;;;OAMG;IACW,sBAAsB,CAClC,IAAkB,EAClB,QAAgB;;YAEhB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;gBAC9D,IAAI,CAAC,MAAM,CAAC,MAAM,CAChB,WAAW,QAAQ,oCAAoC,MAAM,CAAC,IAAI,CAChE,IAAI,CACL,EAAE,CACJ,CAAC;gBAEF,IAAI,CAAC;oBACH,0BAA0B;oBAC1B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAC1D,MAAM,EACN,OAAO,CACR,CAAC;oBAEF,0BAA0B;oBAC1B,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;wBACjC,IAAI,CAAC,MAAM,CAAC,MAAM,CAChB,wCAAwC,QAAQ,GAAG,CACpD,CAAC;wBACF,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,GAAG,CAAC,CAAC;oBACrE,CAAC;oBAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAChB,2CAA2C,QAAQ,GAAG,CACvD,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAChB,+BAAgC,KAAe,CAAC,OAAO,EAAE,CAC1D,CAAC;oBACF,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAED;;;;;;OAMG;IACW,mBAAmB,CAC/B,IAAkB,EAClB,QAAgB;;YAEhB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;gBAC/C,IAAI,CAAC,MAAM,CAAC,MAAM,CAChB,WAAW,QAAQ,yBAAyB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChE,CAAC;gBACF,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACvD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mCAAmC,QAAQ,GAAG,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;KAAA;CACF;AApUD,8BAoUC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"observer.d.ts","sourceRoot":"","sources":["../../graph/observer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,UAAU,EACV,OAAO,EAGR,MAAM,MAAM,CAAC;AAYd,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC;;;;GAIG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,SAAS;IAE1C,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,cAAc;gBAHd,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACpC,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC9C,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC;IAGvC;;;;;;;;;;OAUG;IACH,KAAK,CACH,OAAO,GAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;QACtE,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;KAC1B,GACL,eAAe,CAAC,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"observer.d.ts","sourceRoot":"","sources":["../../graph/observer.ts"],"names":[],"mappings":"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"}
|
package/dist/graph/observer.js
CHANGED
@@ -28,7 +28,6 @@ class GraphObserver {
|
|
28
28
|
*/
|
29
29
|
state(options = {}) {
|
30
30
|
const baseObservable = new rxjs_1.Observable((subscriber) => {
|
31
|
-
// Combine les événements avec l'état actuel
|
32
31
|
const subscription = (0, rxjs_1.combineLatest)([
|
33
32
|
this.eventSubject.pipe((0, operators_1.filter)((event) => event.type === "nodeStateChanged"), (0, operators_1.map)((event) => event.payload.context), (0, operators_1.distinctUntilChanged)((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)), (0, operators_1.debounceTime)(options.debounce || 100)),
|
34
33
|
this.stateSubject,
|