@decaf-ts/ui-decorators 0.16.2 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui-decorators.cjs +1 -1
- package/lib/cjs/graph/index.cjs +1 -0
- package/lib/cjs/graph/index.cjs.map +1 -1
- package/lib/cjs/graph/reader.cjs +62 -5
- package/lib/cjs/graph/reader.cjs.map +1 -1
- package/lib/cjs/graph/snapshot.cjs +289 -0
- package/lib/cjs/graph/snapshot.cjs.map +1 -0
- package/lib/cjs/index.cjs +3 -3
- package/lib/esm/graph/index.js +1 -0
- package/lib/esm/graph/index.js.map +1 -1
- package/lib/esm/graph/reader.js +59 -5
- package/lib/esm/graph/reader.js.map +1 -1
- package/lib/esm/graph/snapshot.js +278 -0
- package/lib/esm/graph/snapshot.js.map +1 -0
- package/lib/esm/index.js +3 -3
- package/lib/types/graph/constants.d.cts +5 -0
- package/lib/types/graph/constants.d.mts +5 -0
- package/lib/types/graph/index.d.cts +1 -0
- package/lib/types/graph/index.d.mts +1 -0
- package/lib/types/graph/reader.d.cts +3 -0
- package/lib/types/graph/reader.d.mts +3 -0
- package/lib/types/graph/snapshot.d.cts +106 -0
- package/lib/types/graph/snapshot.d.mts +106 -0
- package/lib/types/graph/types.d.cts +1 -0
- package/lib/types/graph/types.d.mts +1 -0
- package/lib/types/index.d.cts +3 -3
- package/lib/types/index.d.mts +3 -3
- package/package.json +1 -1
package/lib/esm/graph/reader.js
CHANGED
|
@@ -26,6 +26,34 @@ function pickLabel(element, prop, fallback) {
|
|
|
26
26
|
fallback ??
|
|
27
27
|
"");
|
|
28
28
|
}
|
|
29
|
+
function resolveNestedModelConstructor(model, property, validation) {
|
|
30
|
+
const directType = Metadata.type(model, property);
|
|
31
|
+
if (typeof directType === "function" && Model.isModel(directType)) {
|
|
32
|
+
return directType;
|
|
33
|
+
}
|
|
34
|
+
const designTypes = (Metadata.getPropDesignTypes?.(model, property)?.designTypes ||
|
|
35
|
+
[]);
|
|
36
|
+
for (const candidate of designTypes) {
|
|
37
|
+
if (typeof candidate === "function" && Model.isModel(candidate)) {
|
|
38
|
+
return candidate;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const customTypes = validation?.[ValidationKeys.TYPE]?.customTypes || [];
|
|
42
|
+
for (const candidate of customTypes) {
|
|
43
|
+
if (typeof candidate === "function" && Model.isModel(candidate)) {
|
|
44
|
+
return candidate;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
function prefixGraphPortPath(port, prefix) {
|
|
50
|
+
const path = [prefix, port.path ?? port.property].filter(Boolean).join(".");
|
|
51
|
+
return {
|
|
52
|
+
...port,
|
|
53
|
+
path,
|
|
54
|
+
children: port.children?.map((child) => prefixGraphPortPath(child, path)),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
29
57
|
export function graphNodeMetadataOf(model) {
|
|
30
58
|
const resolved = resolveModel(model);
|
|
31
59
|
return Metadata.get(resolved, GraphKeys.NODE);
|
|
@@ -39,9 +67,10 @@ export function graphPortMetadataOf(model, property) {
|
|
|
39
67
|
return Metadata.get(resolved, Metadata.key(GraphKeys.PORT, String(property)));
|
|
40
68
|
}
|
|
41
69
|
export function graphPortDefinitionOf(model, property) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
70
|
+
return graphPortDefinitionOfInternal(resolveModel(model), String(property));
|
|
71
|
+
}
|
|
72
|
+
function graphPortDefinitionOfInternal(resolved, propertyKey, visited = new Set()) {
|
|
73
|
+
const graph = graphPortMetadataOf(resolved, propertyKey);
|
|
45
74
|
if (!graph)
|
|
46
75
|
return undefined;
|
|
47
76
|
const element = (Model.uiElementOf(resolved, propertyKey) ||
|
|
@@ -53,8 +82,19 @@ export function graphPortDefinitionOf(model, property) {
|
|
|
53
82
|
element?.props?.type ??
|
|
54
83
|
uiProp?.type ??
|
|
55
84
|
designType?.name);
|
|
85
|
+
const nestedModel = resolveNestedModelConstructor(resolved, propertyKey, validation);
|
|
86
|
+
const shouldExpand = !!graph.expand || (!!nestedModel && !visited.has(nestedModel));
|
|
87
|
+
const children = shouldExpand && nestedModel
|
|
88
|
+
? (() => {
|
|
89
|
+
const nextVisited = new Set(visited);
|
|
90
|
+
nextVisited.add(resolved);
|
|
91
|
+
nextVisited.add(nestedModel);
|
|
92
|
+
return graphPortsOfInternal(nestedModel, nextVisited).map((child) => prefixGraphPortPath(child, propertyKey));
|
|
93
|
+
})()
|
|
94
|
+
: undefined;
|
|
56
95
|
return {
|
|
57
96
|
property: propertyKey,
|
|
97
|
+
path: propertyKey,
|
|
58
98
|
direction: graph.direction,
|
|
59
99
|
name: propertyKey,
|
|
60
100
|
label: pickLabel(element, uiProp, propertyKey),
|
|
@@ -67,15 +107,29 @@ export function graphPortDefinitionOf(model, property) {
|
|
|
67
107
|
validation,
|
|
68
108
|
graph,
|
|
69
109
|
connectionRules: graph.connectionRules,
|
|
110
|
+
composite: !!children?.length,
|
|
111
|
+
children,
|
|
112
|
+
model: nestedModel?.name,
|
|
70
113
|
};
|
|
71
114
|
}
|
|
72
115
|
export function graphPortsOf(model) {
|
|
73
|
-
|
|
116
|
+
return graphPortsOfInternal(resolveModel(model));
|
|
117
|
+
}
|
|
118
|
+
function graphPortsOfInternal(resolved, visited = new Set()) {
|
|
74
119
|
const properties = Metadata.properties(resolved) || [];
|
|
75
120
|
return properties
|
|
76
|
-
.map((property) =>
|
|
121
|
+
.map((property) => graphPortDefinitionOfInternal(resolved, String(property), visited))
|
|
77
122
|
.filter((property) => !!property);
|
|
78
123
|
}
|
|
124
|
+
export function graphLeafPortsOf(ports) {
|
|
125
|
+
return ports.flatMap((port) => port.children && port.children.length ? graphLeafPortsOf(port.children) : [port]);
|
|
126
|
+
}
|
|
127
|
+
export function graphWorkflowInputLeafPortsOf(model) {
|
|
128
|
+
return graphLeafPortsOf(graphWorkflowDefinitionOf(model).inputs);
|
|
129
|
+
}
|
|
130
|
+
export function graphWorkflowOutputLeafPortsOf(model) {
|
|
131
|
+
return graphLeafPortsOf(graphWorkflowDefinitionOf(model).outputs);
|
|
132
|
+
}
|
|
79
133
|
export function graphDefinitionOf(model) {
|
|
80
134
|
const resolved = resolveModel(model);
|
|
81
135
|
const ui = Model.uiModelOf(resolved);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../../src/graph/reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,6BAAwB;AACzC,OAAO,EACL,SAAS,GACV,uBAAoB;AASrB,OAAO,EAAE,aAAa,EAAE,uBAAoB;AAC5C,iCAA4B;AAI5B,SAAS,YAAY,CAAkB,KAAwB;IAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAuB,CAAC,CAAC;IAC1D,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO,QAA0B,CAAC;IACtE,MAAM,QAAQ,GAAI,KAAe,CAAC,WAAW,CAAC;IAC9C,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO,QAA0B,CAAC;IACtE,OAAO,KAAuB,CAAC;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,SAAS,CAChB,OAA6B,EAC7B,IAA0B,EAC1B,QAAiB;IAEjB,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7E,OAAO,CACL,YAAY;QACZ,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;QACpB,QAAQ;QACR,EAAE,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAwB;IAExB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAkC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAwB;IAExB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAsC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAwB,EACxB,QAA0B;IAE1B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAE/D,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAwB,EACxB,QAA0B;IAE1B,
|
|
1
|
+
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../../src/graph/reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import { graphLeafPortsOf, graphWorkflowDefinitionOf } from "./reader.js";
|
|
2
|
+
export const GRAPH_WORKFLOW_SNAPSHOT_VERSION = 1;
|
|
3
|
+
function isPlainObject(value) {
|
|
4
|
+
return (!!value &&
|
|
5
|
+
typeof value === "object" &&
|
|
6
|
+
!Array.isArray(value) &&
|
|
7
|
+
!(value instanceof Date));
|
|
8
|
+
}
|
|
9
|
+
function cloneValue(value) {
|
|
10
|
+
if (Array.isArray(value)) {
|
|
11
|
+
return value.map((entry) => cloneValue(entry));
|
|
12
|
+
}
|
|
13
|
+
if (value instanceof Date) {
|
|
14
|
+
return new Date(value.getTime());
|
|
15
|
+
}
|
|
16
|
+
if (isPlainObject(value)) {
|
|
17
|
+
const cloned = {};
|
|
18
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
19
|
+
cloned[key] = cloneValue(entry);
|
|
20
|
+
}
|
|
21
|
+
return cloned;
|
|
22
|
+
}
|
|
23
|
+
return value;
|
|
24
|
+
}
|
|
25
|
+
function asString(value) {
|
|
26
|
+
if (value === undefined || value === null)
|
|
27
|
+
return undefined;
|
|
28
|
+
return typeof value === "string" ? value : String(value);
|
|
29
|
+
}
|
|
30
|
+
function isWorkflowDefinitionLike(value) {
|
|
31
|
+
return (isPlainObject(value) &&
|
|
32
|
+
typeof value.name === "string" &&
|
|
33
|
+
typeof value.tag === "string" &&
|
|
34
|
+
typeof value.kind === "string" &&
|
|
35
|
+
Array.isArray(value.inputs) &&
|
|
36
|
+
Array.isArray(value.outputs) &&
|
|
37
|
+
Array.isArray(value.nodes) &&
|
|
38
|
+
Array.isArray(value.relations));
|
|
39
|
+
}
|
|
40
|
+
function snapshotNodeKey(node) {
|
|
41
|
+
return node.ref?.id ?? node.id ?? node.ref?.path ?? node.ref?.property;
|
|
42
|
+
}
|
|
43
|
+
function snapshotEdgeKey(edge) {
|
|
44
|
+
return (edge.id ??
|
|
45
|
+
[edge.sourceRef ?? edge.source, edge.sourcePort, edge.targetRef ?? edge.target, edge.targetPort]
|
|
46
|
+
.filter(Boolean)
|
|
47
|
+
.join("::"));
|
|
48
|
+
}
|
|
49
|
+
function normalizeValueEntries(entries, definitions) {
|
|
50
|
+
const byPath = new Map();
|
|
51
|
+
if (Array.isArray(entries)) {
|
|
52
|
+
for (const entry of entries) {
|
|
53
|
+
if (!entry?.path)
|
|
54
|
+
continue;
|
|
55
|
+
byPath.set(entry.path, cloneValue(entry));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else if (isPlainObject(entries)) {
|
|
59
|
+
for (const [path, value] of Object.entries(entries)) {
|
|
60
|
+
byPath.set(path, { path, value: cloneValue(value) });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const normalized = definitions.map((definition) => {
|
|
64
|
+
const path = definition.path ?? definition.property;
|
|
65
|
+
const current = byPath.get(path);
|
|
66
|
+
const entry = {
|
|
67
|
+
label: definition.label,
|
|
68
|
+
type: definition.type,
|
|
69
|
+
required: definition.required,
|
|
70
|
+
model: definition.model,
|
|
71
|
+
metadata: cloneValue(definition.graph?.metadata ??
|
|
72
|
+
definition.element?.props ??
|
|
73
|
+
definition.prop?.props ??
|
|
74
|
+
{}),
|
|
75
|
+
...current,
|
|
76
|
+
path,
|
|
77
|
+
};
|
|
78
|
+
if (!Object.keys(entry.metadata || {}).length) {
|
|
79
|
+
delete entry.metadata;
|
|
80
|
+
}
|
|
81
|
+
return entry;
|
|
82
|
+
});
|
|
83
|
+
for (const entry of byPath.values()) {
|
|
84
|
+
if (normalized.some((current) => current.path === entry.path))
|
|
85
|
+
continue;
|
|
86
|
+
normalized.push(cloneValue(entry));
|
|
87
|
+
}
|
|
88
|
+
return normalized;
|
|
89
|
+
}
|
|
90
|
+
function normalizeNodes(nodes, definitions) {
|
|
91
|
+
const byKey = new Map();
|
|
92
|
+
const result = [];
|
|
93
|
+
for (const definition of definitions) {
|
|
94
|
+
const node = {
|
|
95
|
+
id: definition.id,
|
|
96
|
+
ref: {
|
|
97
|
+
id: definition.id,
|
|
98
|
+
kind: definition.kind,
|
|
99
|
+
},
|
|
100
|
+
label: definition.label,
|
|
101
|
+
kind: definition.kind,
|
|
102
|
+
data: definition.node !== undefined ? { node: cloneValue(definition.node) } : undefined,
|
|
103
|
+
metadata: cloneValue(definition.metadata),
|
|
104
|
+
};
|
|
105
|
+
result.push(node);
|
|
106
|
+
byKey.set(definition.id, node);
|
|
107
|
+
}
|
|
108
|
+
for (const entry of nodes || []) {
|
|
109
|
+
const key = snapshotNodeKey(entry);
|
|
110
|
+
const current = key ? byKey.get(key) : undefined;
|
|
111
|
+
if (current) {
|
|
112
|
+
const merged = {
|
|
113
|
+
...current,
|
|
114
|
+
...cloneValue(entry),
|
|
115
|
+
id: entry.id || current.id,
|
|
116
|
+
ref: {
|
|
117
|
+
...current.ref,
|
|
118
|
+
...entry.ref,
|
|
119
|
+
id: entry.ref?.id ?? current.ref?.id ?? current.id,
|
|
120
|
+
},
|
|
121
|
+
position: entry.position ? cloneValue(entry.position) : current.position,
|
|
122
|
+
size: entry.size ? cloneValue(entry.size) : current.size,
|
|
123
|
+
ports: {
|
|
124
|
+
...(current.ports || {}),
|
|
125
|
+
...(entry.ports || {}),
|
|
126
|
+
},
|
|
127
|
+
data: {
|
|
128
|
+
...(current.data || {}),
|
|
129
|
+
...(entry.data || {}),
|
|
130
|
+
},
|
|
131
|
+
metadata: {
|
|
132
|
+
...(current.metadata || {}),
|
|
133
|
+
...(entry.metadata || {}),
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
if (key)
|
|
137
|
+
byKey.set(key, merged);
|
|
138
|
+
const index = result.findIndex((value) => value.id === current.id);
|
|
139
|
+
if (index >= 0)
|
|
140
|
+
result[index] = merged;
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
const cloned = cloneValue(entry);
|
|
144
|
+
result.push(cloned);
|
|
145
|
+
if (key)
|
|
146
|
+
byKey.set(key, cloned);
|
|
147
|
+
}
|
|
148
|
+
return result;
|
|
149
|
+
}
|
|
150
|
+
function normalizeEdges(edges, relations) {
|
|
151
|
+
const byKey = new Map();
|
|
152
|
+
const result = [];
|
|
153
|
+
for (const [index, relation] of relations.entries()) {
|
|
154
|
+
const source = asString(relation.source) ?? `source-${index}`;
|
|
155
|
+
const target = asString(relation.target) ?? `target-${index}`;
|
|
156
|
+
const edge = {
|
|
157
|
+
id: relation.label || `${source}:${relation.sourcePort ?? "*"}->${target}:${relation.targetPort ?? "*"}`,
|
|
158
|
+
source,
|
|
159
|
+
sourceRef: source,
|
|
160
|
+
sourcePort: relation.sourcePort,
|
|
161
|
+
target,
|
|
162
|
+
targetRef: target,
|
|
163
|
+
targetPort: relation.targetPort,
|
|
164
|
+
label: relation.label,
|
|
165
|
+
metadata: cloneValue(relation.metadata),
|
|
166
|
+
};
|
|
167
|
+
result.push(edge);
|
|
168
|
+
byKey.set(edge.id, edge);
|
|
169
|
+
}
|
|
170
|
+
for (const entry of edges || []) {
|
|
171
|
+
const key = snapshotEdgeKey(entry);
|
|
172
|
+
const current = key ? byKey.get(key) : undefined;
|
|
173
|
+
if (current) {
|
|
174
|
+
const merged = {
|
|
175
|
+
...current,
|
|
176
|
+
...cloneValue(entry),
|
|
177
|
+
id: entry.id || current.id,
|
|
178
|
+
source: entry.source || current.source,
|
|
179
|
+
sourceRef: entry.sourceRef ?? current.sourceRef ?? entry.source ?? current.source,
|
|
180
|
+
target: entry.target || current.target,
|
|
181
|
+
targetRef: entry.targetRef ?? current.targetRef ?? entry.target ?? current.target,
|
|
182
|
+
metadata: {
|
|
183
|
+
...(current.metadata || {}),
|
|
184
|
+
...(entry.metadata || {}),
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
if (key)
|
|
188
|
+
byKey.set(key, merged);
|
|
189
|
+
const index = result.findIndex((value) => value.id === current.id);
|
|
190
|
+
if (index >= 0)
|
|
191
|
+
result[index] = merged;
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
const cloned = cloneValue(entry);
|
|
195
|
+
result.push(cloned);
|
|
196
|
+
if (key)
|
|
197
|
+
byKey.set(key, cloned);
|
|
198
|
+
}
|
|
199
|
+
return result;
|
|
200
|
+
}
|
|
201
|
+
function normalizeWorkflowDefinition(definition, overrides = {}) {
|
|
202
|
+
return {
|
|
203
|
+
name: overrides.name ?? definition.name,
|
|
204
|
+
tag: overrides.tag ?? definition.tag,
|
|
205
|
+
kind: overrides.kind ?? definition.kind,
|
|
206
|
+
category: overrides.category ?? definition.category,
|
|
207
|
+
color: overrides.color ?? definition.color,
|
|
208
|
+
group: overrides.group ?? definition.group,
|
|
209
|
+
height: overrides.height ?? definition.height,
|
|
210
|
+
icon: overrides.icon ?? definition.icon,
|
|
211
|
+
labels: cloneValue(overrides.labels ?? definition.labels ?? []),
|
|
212
|
+
maxChildren: overrides.maxChildren ?? definition.maxChildren,
|
|
213
|
+
minWidth: overrides.minWidth ?? definition.minWidth,
|
|
214
|
+
width: overrides.width ?? definition.width,
|
|
215
|
+
metadata: cloneValue(overrides.metadata ??
|
|
216
|
+
("workflow" in definition ? definition.workflow : definition.metadata)),
|
|
217
|
+
inputs: cloneValue(overrides.inputs ?? definition.inputs ?? []),
|
|
218
|
+
outputs: cloneValue(overrides.outputs ?? definition.outputs ?? []),
|
|
219
|
+
nodes: cloneValue(overrides.nodes ?? definition.nodes ?? []),
|
|
220
|
+
relations: cloneValue(overrides.relations ?? definition.relations ?? []),
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
export function graphWorkflowSnapshotDefinitionOf(model) {
|
|
224
|
+
const definition = isWorkflowDefinitionLike(model)
|
|
225
|
+
? model
|
|
226
|
+
: graphWorkflowDefinitionOf(model);
|
|
227
|
+
return normalizeWorkflowDefinition(definition);
|
|
228
|
+
}
|
|
229
|
+
export function graphWorkflowSnapshotOf(model, input) {
|
|
230
|
+
const normalizedDefinition = normalizeWorkflowDefinition(graphWorkflowSnapshotDefinitionOf(model), input?.definition);
|
|
231
|
+
const inputPorts = graphLeafPortsOf(normalizedDefinition.inputs);
|
|
232
|
+
const outputPorts = graphLeafPortsOf(normalizedDefinition.outputs);
|
|
233
|
+
return {
|
|
234
|
+
version: GRAPH_WORKFLOW_SNAPSHOT_VERSION,
|
|
235
|
+
definition: normalizedDefinition,
|
|
236
|
+
state: {
|
|
237
|
+
inputs: normalizeValueEntries(input?.inputs, inputPorts),
|
|
238
|
+
outputs: normalizeValueEntries(input?.outputs, outputPorts),
|
|
239
|
+
nodes: normalizeNodes(input?.nodes, normalizedDefinition.nodes),
|
|
240
|
+
edges: normalizeEdges(input?.edges, normalizedDefinition.relations),
|
|
241
|
+
ui: cloneValue(input?.ui || {}),
|
|
242
|
+
metadata: cloneValue(input?.metadata || {}),
|
|
243
|
+
},
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
export function graphWorkflowSnapshotRestore(snapshot, model) {
|
|
247
|
+
if (!("version" in snapshot)) {
|
|
248
|
+
return graphWorkflowSnapshotOf(model ??
|
|
249
|
+
snapshot.definition ??
|
|
250
|
+
{}, snapshot);
|
|
251
|
+
}
|
|
252
|
+
const fullSnapshot = snapshot;
|
|
253
|
+
const definition = model
|
|
254
|
+
? graphWorkflowSnapshotDefinitionOf(model)
|
|
255
|
+
: fullSnapshot.definition;
|
|
256
|
+
return graphWorkflowSnapshotOf(definition, {
|
|
257
|
+
inputs: fullSnapshot.state.inputs,
|
|
258
|
+
outputs: fullSnapshot.state.outputs,
|
|
259
|
+
nodes: fullSnapshot.state.nodes,
|
|
260
|
+
edges: fullSnapshot.state.edges,
|
|
261
|
+
ui: fullSnapshot.state.ui,
|
|
262
|
+
metadata: fullSnapshot.state.metadata,
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
export function graphWorkflowSnapshotToJSON(snapshot, space) {
|
|
266
|
+
return JSON.stringify(snapshot, undefined, space);
|
|
267
|
+
}
|
|
268
|
+
export function graphWorkflowSnapshotFromJSON(input, model) {
|
|
269
|
+
const snapshot = typeof input === "string" ? JSON.parse(input) : input;
|
|
270
|
+
return graphWorkflowSnapshotRestore(snapshot, model);
|
|
271
|
+
}
|
|
272
|
+
export function graphWorkflowSnapshotInputValuesOf(snapshot) {
|
|
273
|
+
return Object.fromEntries(snapshot.state.inputs.map((entry) => [entry.path, cloneValue(entry.value)]));
|
|
274
|
+
}
|
|
275
|
+
export function graphWorkflowSnapshotOutputValuesOf(snapshot) {
|
|
276
|
+
return Object.fromEntries(snapshot.state.outputs.map((entry) => [entry.path, cloneValue(entry.value)]));
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/graph/snapshot.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,oBAAiB;AAIvE,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAU,CAAC;AA0G1D,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,CAAC,CAAC,KAAK;QACP,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,CACzB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAI,KAAQ;IAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAM,CAAC;IACtD,CAAC;IAED,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAM,CAAC;IACxC,CAAC;IAED,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAW,CAAC;IACrB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAc;IAEd,OAAO,CACL,aAAa,CAAC,KAAK,CAAC;QACpB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;QAC7B,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QAC1B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAwC;IAC/D,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;AACzE,CAAC;AAED,SAAS,eAAe,CAAC,IAAwC;IAC/D,OAAO,CACL,IAAI,CAAC,EAAE;QACP,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC;aAC7F,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAA2E,EAC3E,WAAkC;IAElC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsC,CAAC;IAE7D,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,EAAE,IAAI;gBAAE,SAAS;YAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;SAAM,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAiC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QAC9E,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,KAAK,GAA+B;YACxC,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,QAAQ,EAAE,UAAU,CAClB,UAAU,CAAC,KAAK,EAAE,QAAQ;gBACxB,UAAU,CAAC,OAAO,EAAE,KAAK;gBACzB,UAAU,CAAC,IAAI,EAAE,KAAK;gBACtB,EAAE,CACL;YACD,GAAG,OAAO;YACV,IAAI;SACL,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC;QACxB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QACxE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CACrB,KAA8C,EAC9C,WAAwC;IAExC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqC,CAAC;IAC3D,MAAM,MAAM,GAAgC,EAAE,CAAC;IAE/C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,GAA8B;YACtC,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,GAAG,EAAE;gBACH,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB;YACD,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,IAAI,EAAE,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YACvF,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;SAC1C,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAA8B;gBACxC,GAAG,OAAO;gBACV,GAAG,UAAU,CAAC,KAAK,CAAC;gBACpB,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE;gBAC1B,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,GAAG,KAAK,CAAC,GAAG;oBACZ,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,OAAO,CAAC,EAAE;iBACnD;gBACD,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ;gBACxE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;gBACxD,KAAK,EAAE;oBACL,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;oBACxB,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;iBACvB;gBACD,IAAI,EAAE;oBACJ,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;oBACvB,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;iBACtB;gBACD,QAAQ,EAAE;oBACR,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;oBAC3B,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;iBAC1B;aACF,CAAC;YACF,IAAI,GAAG;gBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;YACnE,IAAI,KAAK,IAAI,CAAC;gBAAE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;YACvC,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,GAAG;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CACrB,KAA8C,EAC9C,SAA0C;IAE1C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqC,CAAC;IAC3D,MAAM,MAAM,GAAgC,EAAE,CAAC;IAE/C,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,KAAK,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,KAAK,EAAE,CAAC;QAC9D,MAAM,IAAI,GAA8B;YACtC,EAAE,EAAE,QAAQ,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;YACxG,MAAM;YACN,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,MAAM;YACN,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACxC,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAA8B;gBACxC,GAAG,OAAO;gBACV,GAAG,UAAU,CAAC,KAAK,CAAC;gBACpB,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;gBACtC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;gBACjF,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;gBACtC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;gBACjF,QAAQ,EAAE;oBACR,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;oBAC3B,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;iBAC1B;aACF,CAAC;YACF,IAAI,GAAG;gBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;YACnE,IAAI,KAAK,IAAI,CAAC;gBAAE,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;YACvC,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,GAAG;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,2BAA2B,CAClC,UAAqE,EACrE,YAAsD,EAAE;IAExD,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI;QACvC,GAAG,EAAE,SAAS,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG;QACpC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI;QACvC,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ;QACnD,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK;QAC1C,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK;QAC1C,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM;QAC7C,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI;QACvC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;QAC/D,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW;QAC5D,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ;QACnD,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK;QAC1C,QAAQ,EAAE,UAAU,CAClB,SAAS,CAAC,QAAQ;YAChB,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CACzE;QACD,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;QAC/D,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;QAClE,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5D,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,KAAoF;IAEpF,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,CAAC;QAChD,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,yBAAyB,CAAC,KAA0B,CAAC,CAAC;IAC1D,OAAO,2BAA2B,CAAC,UAAU,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAoF,EACpF,KAAkC;IAElC,MAAM,oBAAoB,GAAG,2BAA2B,CACtD,iCAAiC,CAAC,KAAY,CAAC,EAC/C,KAAK,EAAE,UAAU,CAClB,CAAC;IACF,MAAM,UAAU,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAEnE,OAAO;QACL,OAAO,EAAE,+BAA+B;QACxC,UAAU,EAAE,oBAAoB;QAChC,KAAK,EAAE;YACL,MAAM,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC;YACxD,OAAO,EAAE,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;YAC3D,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC;YAC/D,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,CAAC;YACnE,EAAE,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC;YAC/B,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;SAC5C;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,QAA4D,EAC5D,KAAqF;IAErF,IAAI,CAAC,CAAC,SAAS,IAAI,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,uBAAuB,CAC5B,KAAK;YACF,QAAQ,CAAC,UAGI;YACb,EAA8B,EACjC,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,QAAiC,CAAC;IACvD,MAAM,UAAU,GAAG,KAAK;QACtB,CAAC,CAAC,iCAAiC,CAAC,KAAK,CAAC;QAC1C,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC;IAE5B,OAAO,uBAAuB,CAAC,UAAU,EAAE;QACzC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM;QACjC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO;QACnC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK;QAC/B,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK;QAC/B,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE;QACzB,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,QAAQ;KACtC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,QAA+B,EAC/B,KAAc;IAEd,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAqC,EACrC,KAAkF;IAElF,MAAM,QAAQ,GACZ,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAA2B,CAAC,CAAC,CAAC,KAAK,CAAC;IACnF,OAAO,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,QAA+B;IAE/B,OAAO,MAAM,CAAC,WAAW,CACvB,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAC5E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,QAA+B;IAE/B,OAAO,MAAM,CAAC,WAAW,CACvB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAC7E,CAAC;AACJ,CAAC"}
|
package/lib/esm/index.js
CHANGED
|
@@ -16,21 +16,21 @@ export * from "./ui/index.js";
|
|
|
16
16
|
* @const VERSION
|
|
17
17
|
* @memberOf module:ui-decorators
|
|
18
18
|
*/
|
|
19
|
-
export const VERSION = "0.16.
|
|
19
|
+
export const VERSION = "0.16.2";
|
|
20
20
|
/**
|
|
21
21
|
* @description Represents the current commit hash of the module build.
|
|
22
22
|
* @summary Stores the current git commit hash for the package. The build replaces
|
|
23
23
|
* the placeholder with the actual commit hash at publish time.
|
|
24
24
|
* @const COMMIT
|
|
25
25
|
*/
|
|
26
|
-
export const COMMIT = "
|
|
26
|
+
export const COMMIT = "0f1d008";
|
|
27
27
|
/**
|
|
28
28
|
* @description Represents the full version string of the module.
|
|
29
29
|
* @summary Stores the semver version and commit hash for the package.
|
|
30
30
|
* The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
|
|
31
31
|
* @const FULL_VERSION
|
|
32
32
|
*/
|
|
33
|
-
export const FULL_VERSION = "0.16.
|
|
33
|
+
export const FULL_VERSION = "0.16.2-0f1d008";
|
|
34
34
|
export const PACKAGE_NAME = "@decaf-ts/ui-decorators";
|
|
35
35
|
Metadata.registerLibrary(PACKAGE_NAME, VERSION);
|
|
36
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -59,10 +59,12 @@ export type GraphPortMetadata = {
|
|
|
59
59
|
connectionRules?: GraphConnectionRule;
|
|
60
60
|
visible?: boolean;
|
|
61
61
|
handle?: string;
|
|
62
|
+
expand?: boolean;
|
|
62
63
|
metadata?: Record<string, unknown>;
|
|
63
64
|
};
|
|
64
65
|
export type GraphPortDefinition = {
|
|
65
66
|
property: string;
|
|
67
|
+
path?: string;
|
|
66
68
|
direction: PortDirection;
|
|
67
69
|
name: string;
|
|
68
70
|
label: string;
|
|
@@ -75,6 +77,9 @@ export type GraphPortDefinition = {
|
|
|
75
77
|
validation?: Record<string, any>;
|
|
76
78
|
graph?: GraphPortMetadata;
|
|
77
79
|
connectionRules?: GraphConnectionRule;
|
|
80
|
+
composite?: boolean;
|
|
81
|
+
children?: GraphPortDefinition[];
|
|
82
|
+
model?: string;
|
|
78
83
|
};
|
|
79
84
|
export type GraphNodeDefinition = {
|
|
80
85
|
name: string;
|
|
@@ -59,10 +59,12 @@ export type GraphPortMetadata = {
|
|
|
59
59
|
connectionRules?: GraphConnectionRule;
|
|
60
60
|
visible?: boolean;
|
|
61
61
|
handle?: string;
|
|
62
|
+
expand?: boolean;
|
|
62
63
|
metadata?: Record<string, unknown>;
|
|
63
64
|
};
|
|
64
65
|
export type GraphPortDefinition = {
|
|
65
66
|
property: string;
|
|
67
|
+
path?: string;
|
|
66
68
|
direction: PortDirection;
|
|
67
69
|
name: string;
|
|
68
70
|
label: string;
|
|
@@ -75,6 +77,9 @@ export type GraphPortDefinition = {
|
|
|
75
77
|
validation?: Record<string, any>;
|
|
76
78
|
graph?: GraphPortMetadata;
|
|
77
79
|
connectionRules?: GraphConnectionRule;
|
|
80
|
+
composite?: boolean;
|
|
81
|
+
children?: GraphPortDefinition[];
|
|
82
|
+
model?: string;
|
|
78
83
|
};
|
|
79
84
|
export type GraphNodeDefinition = {
|
|
80
85
|
name: string;
|
|
@@ -8,6 +8,9 @@ export declare function graphWorkflowMetadataOf<M extends Model>(model: GraphMod
|
|
|
8
8
|
export declare function graphPortMetadataOf<M extends Model>(model: GraphModelLike<M>, property: keyof M | string): GraphPortMetadata | undefined;
|
|
9
9
|
export declare function graphPortDefinitionOf<M extends Model>(model: GraphModelLike<M>, property: keyof M | string): GraphPortDefinition | undefined;
|
|
10
10
|
export declare function graphPortsOf<M extends Model>(model: GraphModelLike<M>): GraphPortDefinition[];
|
|
11
|
+
export declare function graphLeafPortsOf(ports: GraphPortDefinition[]): GraphPortDefinition[];
|
|
12
|
+
export declare function graphWorkflowInputLeafPortsOf<M extends Model>(model: GraphModelLike<M>): GraphPortDefinition[];
|
|
13
|
+
export declare function graphWorkflowOutputLeafPortsOf<M extends Model>(model: GraphModelLike<M>): GraphPortDefinition[];
|
|
11
14
|
export declare function graphDefinitionOf<M extends Model>(model: GraphModelLike<M>): GraphNodeDefinition;
|
|
12
15
|
export declare function graphWorkflowDefinitionOf<M extends Model>(model: GraphModelLike<M>): GraphWorkflowDefinition;
|
|
13
16
|
export {};
|
|
@@ -8,6 +8,9 @@ export declare function graphWorkflowMetadataOf<M extends Model>(model: GraphMod
|
|
|
8
8
|
export declare function graphPortMetadataOf<M extends Model>(model: GraphModelLike<M>, property: keyof M | string): GraphPortMetadata | undefined;
|
|
9
9
|
export declare function graphPortDefinitionOf<M extends Model>(model: GraphModelLike<M>, property: keyof M | string): GraphPortDefinition | undefined;
|
|
10
10
|
export declare function graphPortsOf<M extends Model>(model: GraphModelLike<M>): GraphPortDefinition[];
|
|
11
|
+
export declare function graphLeafPortsOf(ports: GraphPortDefinition[]): GraphPortDefinition[];
|
|
12
|
+
export declare function graphWorkflowInputLeafPortsOf<M extends Model>(model: GraphModelLike<M>): GraphPortDefinition[];
|
|
13
|
+
export declare function graphWorkflowOutputLeafPortsOf<M extends Model>(model: GraphModelLike<M>): GraphPortDefinition[];
|
|
11
14
|
export declare function graphDefinitionOf<M extends Model>(model: GraphModelLike<M>): GraphNodeDefinition;
|
|
12
15
|
export declare function graphWorkflowDefinitionOf<M extends Model>(model: GraphModelLike<M>): GraphWorkflowDefinition;
|
|
13
16
|
export {};
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
2
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
|
+
import { GraphPortDefinition, GraphWorkflowDefinition, GraphWorkflowMetadata, GraphWorkflowNodeMetadata, GraphWorkflowRelationMetadata } from "./constants.d.cts";
|
|
4
|
+
type GraphModelLike<M extends Model = Model> = Constructor<M> | M;
|
|
5
|
+
export declare const GRAPH_WORKFLOW_SNAPSHOT_VERSION: 1;
|
|
6
|
+
export type GraphWorkflowSnapshotReference = {
|
|
7
|
+
id?: string;
|
|
8
|
+
kind?: string;
|
|
9
|
+
tag?: string;
|
|
10
|
+
path?: string;
|
|
11
|
+
property?: string;
|
|
12
|
+
};
|
|
13
|
+
export type GraphWorkflowSnapshotPosition = {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
};
|
|
17
|
+
export type GraphWorkflowSnapshotSize = {
|
|
18
|
+
width?: number;
|
|
19
|
+
height?: number;
|
|
20
|
+
};
|
|
21
|
+
export type GraphWorkflowSnapshotPortState = {
|
|
22
|
+
expanded?: boolean;
|
|
23
|
+
value?: unknown;
|
|
24
|
+
metadata?: Record<string, unknown>;
|
|
25
|
+
};
|
|
26
|
+
export type GraphWorkflowSnapshotValue = {
|
|
27
|
+
path: string;
|
|
28
|
+
value?: unknown;
|
|
29
|
+
label?: string;
|
|
30
|
+
type?: string;
|
|
31
|
+
required?: boolean;
|
|
32
|
+
model?: string;
|
|
33
|
+
metadata?: Record<string, unknown>;
|
|
34
|
+
};
|
|
35
|
+
export type GraphWorkflowSnapshotNode = {
|
|
36
|
+
id: string;
|
|
37
|
+
ref?: GraphWorkflowSnapshotReference;
|
|
38
|
+
label?: string;
|
|
39
|
+
kind?: string;
|
|
40
|
+
position?: GraphWorkflowSnapshotPosition;
|
|
41
|
+
size?: GraphWorkflowSnapshotSize;
|
|
42
|
+
expanded?: boolean;
|
|
43
|
+
ports?: Record<string, GraphWorkflowSnapshotPortState>;
|
|
44
|
+
data?: Record<string, unknown>;
|
|
45
|
+
metadata?: Record<string, unknown>;
|
|
46
|
+
};
|
|
47
|
+
export type GraphWorkflowSnapshotEdge = {
|
|
48
|
+
id: string;
|
|
49
|
+
source: string;
|
|
50
|
+
sourceRef?: string;
|
|
51
|
+
sourcePort?: string;
|
|
52
|
+
target: string;
|
|
53
|
+
targetRef?: string;
|
|
54
|
+
targetPort?: string;
|
|
55
|
+
label?: string;
|
|
56
|
+
metadata?: Record<string, unknown>;
|
|
57
|
+
};
|
|
58
|
+
export type GraphWorkflowSnapshotDefinition = {
|
|
59
|
+
name: string;
|
|
60
|
+
tag: string;
|
|
61
|
+
kind: string;
|
|
62
|
+
category?: string;
|
|
63
|
+
color?: string;
|
|
64
|
+
group?: string;
|
|
65
|
+
height?: number;
|
|
66
|
+
icon?: string;
|
|
67
|
+
labels: string[];
|
|
68
|
+
maxChildren?: number;
|
|
69
|
+
minWidth?: number;
|
|
70
|
+
width?: number;
|
|
71
|
+
metadata?: GraphWorkflowMetadata;
|
|
72
|
+
inputs: GraphPortDefinition[];
|
|
73
|
+
outputs: GraphPortDefinition[];
|
|
74
|
+
nodes: GraphWorkflowNodeMetadata[];
|
|
75
|
+
relations: GraphWorkflowRelationMetadata[];
|
|
76
|
+
};
|
|
77
|
+
export type GraphWorkflowSnapshotState = {
|
|
78
|
+
inputs: GraphWorkflowSnapshotValue[];
|
|
79
|
+
outputs: GraphWorkflowSnapshotValue[];
|
|
80
|
+
nodes: GraphWorkflowSnapshotNode[];
|
|
81
|
+
edges: GraphWorkflowSnapshotEdge[];
|
|
82
|
+
ui: Record<string, unknown>;
|
|
83
|
+
metadata: Record<string, unknown>;
|
|
84
|
+
};
|
|
85
|
+
export type GraphWorkflowSnapshot = {
|
|
86
|
+
version: typeof GRAPH_WORKFLOW_SNAPSHOT_VERSION;
|
|
87
|
+
definition: GraphWorkflowSnapshotDefinition;
|
|
88
|
+
state: GraphWorkflowSnapshotState;
|
|
89
|
+
};
|
|
90
|
+
export type GraphWorkflowSnapshotInput = {
|
|
91
|
+
definition?: Partial<GraphWorkflowSnapshotDefinition>;
|
|
92
|
+
inputs?: GraphWorkflowSnapshotValue[] | Record<string, unknown>;
|
|
93
|
+
outputs?: GraphWorkflowSnapshotValue[] | Record<string, unknown>;
|
|
94
|
+
nodes?: GraphWorkflowSnapshotNode[];
|
|
95
|
+
edges?: GraphWorkflowSnapshotEdge[];
|
|
96
|
+
ui?: Record<string, unknown>;
|
|
97
|
+
metadata?: Record<string, unknown>;
|
|
98
|
+
};
|
|
99
|
+
export declare function graphWorkflowSnapshotDefinitionOf<M extends Model>(model: GraphModelLike<M> | GraphWorkflowDefinition | GraphWorkflowSnapshotDefinition): GraphWorkflowSnapshotDefinition;
|
|
100
|
+
export declare function graphWorkflowSnapshotOf<M extends Model>(model: GraphModelLike<M> | GraphWorkflowDefinition | GraphWorkflowSnapshotDefinition, input?: GraphWorkflowSnapshotInput): GraphWorkflowSnapshot;
|
|
101
|
+
export declare function graphWorkflowSnapshotRestore<M extends Model>(snapshot: GraphWorkflowSnapshot | GraphWorkflowSnapshotInput, model?: GraphModelLike<M> | GraphWorkflowDefinition | GraphWorkflowSnapshotDefinition): GraphWorkflowSnapshot;
|
|
102
|
+
export declare function graphWorkflowSnapshotToJSON(snapshot: GraphWorkflowSnapshot, space?: number): string;
|
|
103
|
+
export declare function graphWorkflowSnapshotFromJSON(input: string | GraphWorkflowSnapshot, model?: GraphModelLike | GraphWorkflowDefinition | GraphWorkflowSnapshotDefinition): GraphWorkflowSnapshot;
|
|
104
|
+
export declare function graphWorkflowSnapshotInputValuesOf(snapshot: GraphWorkflowSnapshot): Record<string, unknown>;
|
|
105
|
+
export declare function graphWorkflowSnapshotOutputValuesOf(snapshot: GraphWorkflowSnapshot): Record<string, unknown>;
|
|
106
|
+
export {};
|