@bian-womp/spark-graph 0.2.54 → 0.2.55

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.
@@ -20,5 +20,7 @@ export { createAsyncGraphRegistry, createAsyncGraphDef, } from "./examples/async
20
20
  export { createProgressGraphRegistry, createProgressGraphDef, } from "./examples/progress";
21
21
  export { createValidationGraphRegistry, createValidationGraphDef, } from "./examples/validation";
22
22
  export { installLogging } from "./examples/shared";
23
- export { registerDelayNode, registerProgressNodes } from "./misc/base";
23
+ export { registerDelayNode, registerProgressNodes, generateId, } from "./misc/base";
24
+ export { mergeGraphDefinitions, computeGraphCenter, offsetImportedPositions, mergeInputsOutputs, mergeSnapshotData, buildValueConverter, type ConverterConfig, type ValueMappingConfig, type ValueConverter, } from "./misc/utils/merge";
25
+ export { parseJsonPath, getValueAtPath, setValueAtPath, findMatchingPaths, type JsonPath, type PathSegment, } from "./misc/utils/json";
24
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,EACL,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,eAAe,EACf,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAChF,YAAY,EACV,MAAM,EACN,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,EACL,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,eAAe,EACf,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAChF,YAAY,EACV,MAAM,EACN,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,KAAK,QAAQ,EACb,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAC"}
@@ -4,4 +4,5 @@ export declare function setupBasicGraphRegistry(): Registry;
4
4
  export declare function registerDelayNode(registry: Registry): void;
5
5
  export declare function registerProgressNodes(registry: Registry): void;
6
6
  export declare function createRuntime(registry: Registry, def: GraphDefinition): import("..").GraphRuntime;
7
+ export declare function generateId(prefix: string, used?: Set<string>): string;
7
8
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/misc/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAgJ/C,wBAAgB,uBAAuB,IAAI,QAAQ,CAm8BlD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,QA+BnD;AAqBD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,QA6BvD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,6BAUrE"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/misc/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAgJ/C,wBAAgB,uBAAuB,IAAI,QAAQ,CAm8BlD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,QA+BnD;AAqBD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,QA6BvD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,6BAUrE;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,GAAG,CAAC,MAAM,CAAa,GAC5B,MAAM,CAaR"}
@@ -0,0 +1,14 @@
1
+ export type PathSegment = string | number | RegExp;
2
+ export type JsonPath = string | PathSegment[];
3
+ export declare function parseJsonPath(path: JsonPath): PathSegment[];
4
+ export declare function getValueAtPath(obj: unknown, pathSegments: PathSegment[]): {
5
+ value: unknown;
6
+ parent: unknown;
7
+ key: string | number;
8
+ } | null;
9
+ export declare function setValueAtPath(obj: unknown, pathSegments: PathSegment[], newValue: unknown): boolean;
10
+ export declare function findMatchingPaths(obj: unknown, pathSegments: PathSegment[], currentPath?: PathSegment[]): Array<{
11
+ path: PathSegment[];
12
+ value: unknown;
13
+ }>;
14
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../../../src/misc/utils/json.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AACnD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC;AAE9C,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,EAAE,CAY3D;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,WAAW,EAAE,GAC1B;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAAG,IAAI,CAiGlE;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,WAAW,EAAE,EAC3B,QAAQ,EAAE,OAAO,GAChB,OAAO,CAUT;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,WAAW,EAAE,EAC3B,WAAW,GAAE,WAAW,EAAO,GAC9B,KAAK,CAAC;IAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAoEhD"}
@@ -0,0 +1,86 @@
1
+ import type { GraphDefinition, RuntimeSnapshotFull } from "@bian-womp/spark-protocol";
2
+ import { type JsonPath } from "./json";
3
+ /**
4
+ * Merge two graph definitions, remapping IDs to avoid conflicts.
5
+ * Returns the merged graph and a mapping from source node IDs to new IDs.
6
+ */
7
+ export type ValueConverter = (nodeId: string, handleId: string, value: unknown, type: "input" | "output" | "inputDefault" | "initialInput", nodeTypeId?: string, handleDataType?: string, runtimeTypeId?: string) => unknown;
8
+ export declare function mergeGraphDefinitions(target: GraphDefinition, source: GraphDefinition, converter?: ValueConverter): {
9
+ merged: GraphDefinition;
10
+ nodeIdMap: Record<string, string>;
11
+ };
12
+ /**
13
+ * Compute the center point of a graph based on node positions.
14
+ */
15
+ export declare function computeGraphCenter(positions: Record<string, {
16
+ x: number;
17
+ y: number;
18
+ }>, nodeIds: string[]): {
19
+ x: number;
20
+ y: number;
21
+ };
22
+ /**
23
+ * Offset positions of imported nodes based on an anchor point.
24
+ * Preserves relative layout of imported nodes while positioning them at the anchor.
25
+ */
26
+ export declare function offsetImportedPositions(targetPositions: Record<string, {
27
+ x: number;
28
+ y: number;
29
+ }>, sourcePositions: Record<string, {
30
+ x: number;
31
+ y: number;
32
+ }>, sourceDef: GraphDefinition, nodeIdMap: Record<string, string>, anchorPos: {
33
+ x: number;
34
+ y: number;
35
+ }): Record<string, {
36
+ x: number;
37
+ y: number;
38
+ }>;
39
+ /**
40
+ * Merge inputs and outputs from source into target, remapping node IDs.
41
+ * Source values override target when merging.
42
+ */
43
+ export declare function mergeInputsOutputs(targetInputs: Record<string, Record<string, unknown>>, targetOutputs: Record<string, Record<string, unknown>>, sourceInputs: Record<string, Record<string, unknown>>, sourceOutputs: Record<string, Record<string, unknown>>, nodeIdMap: Record<string, string>, converter?: ValueConverter, nodeTypeMap?: Map<string, string>, handleTypeMap?: Map<string, Map<string, string>>): {
44
+ mergedInputs: Record<string, Record<string, unknown>>;
45
+ mergedOutputs: Record<string, Record<string, unknown>>;
46
+ };
47
+ /**
48
+ * Merge snapshot data (inputs, outputs, UI positions) from source into target.
49
+ * Graph definition merging should be done separately using mergeGraphDefinitions.
50
+ */
51
+ export declare function mergeSnapshotData(targetSnapshot: RuntimeSnapshotFull, sourceSnapshot: RuntimeSnapshotFull, sourceDef: GraphDefinition, nodeIdMap: Record<string, string>, anchorPos: {
52
+ x: number;
53
+ y: number;
54
+ }, converter?: ValueConverter): {
55
+ mergedInputs: Record<string, Record<string, unknown>>;
56
+ mergedOutputs: Record<string, Record<string, unknown>>;
57
+ mergedPositions: Record<string, {
58
+ x: number;
59
+ y: number;
60
+ }>;
61
+ };
62
+ export interface ValueMappingConfig {
63
+ handleId?: string | RegExp;
64
+ nodeId?: string | RegExp;
65
+ nodeTypeId?: string | RegExp;
66
+ handleDataType?: string | RegExp;
67
+ runtimeTypeId?: string | RegExp;
68
+ transformTypedValue?: boolean;
69
+ path?: JsonPath;
70
+ valueMap: Map<string | number | boolean, unknown> | Record<string | number, unknown>;
71
+ }
72
+ export interface ConverterConfig {
73
+ mappings: ValueMappingConfig[];
74
+ }
75
+ /**
76
+ * Build a converter function from a configuration that maps values based on handle/node matching.
77
+ * The converter will replace values when:
78
+ * - handleId matches (if specified)
79
+ * - nodeId matches (if specified)
80
+ * - nodeTypeId matches (if specified)
81
+ * - handleDataType matches (if specified)
82
+ * - runtimeTypeId matches (if specified, for typed outputs)
83
+ * - value exists in valueMap
84
+ */
85
+ export declare function buildValueConverter(config: ConverterConfig): ValueConverter;
86
+ //# sourceMappingURL=merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../../../src/misc/utils/merge.ts"],"names":[],"mappings":"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"}