@kong-ui-public/entities-plugins 9.44.2 → 9.45.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/entities-plugins.es.js +6927 -6392
- package/dist/entities-plugins.umd.js +38 -38
- package/dist/style.css +1 -1
- package/dist/types/components/free-form/Datakit/DatakitForm.vue.d.ts.map +1 -1
- package/dist/types/components/free-form/Datakit/composables.d.ts +1 -1
- package/dist/types/components/free-form/Datakit/composables.d.ts.map +1 -1
- package/dist/types/components/free-form/Datakit/flow-editor/FlowEditor.vue.d.ts +9 -0
- package/dist/types/components/free-form/Datakit/flow-editor/FlowEditor.vue.d.ts.map +1 -0
- package/dist/types/components/free-form/Datakit/flow-editor/modal/EditorMain.vue.d.ts +3 -3
- package/dist/types/components/free-form/Datakit/flow-editor/modal/EditorMain.vue.d.ts.map +1 -1
- package/dist/types/components/free-form/Datakit/flow-editor/node/FlowNode.vue.d.ts +3 -3
- package/dist/types/components/free-form/Datakit/flow-editor/node/FlowNode.vue.d.ts.map +1 -1
- package/dist/types/components/free-form/Datakit/flow-editor/node/NodeBadge.vue.d.ts.map +1 -1
- package/dist/types/components/free-form/Datakit/flow-editor/node/NodePanelItem.vue.d.ts +3 -3
- package/dist/types/components/free-form/Datakit/flow-editor/node/NodePanelItem.vue.d.ts.map +1 -1
- package/dist/types/components/free-form/Datakit/flow-editor/node/NodePropertiesPanel.vue.d.ts +3 -3
- package/dist/types/components/free-form/Datakit/flow-editor/node/NodePropertiesPanel.vue.d.ts.map +1 -1
- package/dist/types/components/free-form/Datakit/flow-editor/node/node.d.ts +8 -477
- package/dist/types/components/free-form/Datakit/flow-editor/node/node.d.ts.map +1 -1
- package/dist/types/components/free-form/Datakit/flow-editor/store/helpers.d.ts +31 -0
- package/dist/types/components/free-form/Datakit/flow-editor/store/helpers.d.ts.map +1 -0
- package/dist/types/components/free-form/Datakit/flow-editor/store/history.d.ts +17 -0
- package/dist/types/components/free-form/Datakit/flow-editor/store/history.d.ts.map +1 -0
- package/dist/types/components/free-form/Datakit/flow-editor/store/init.d.ts +21 -0
- package/dist/types/components/free-form/Datakit/flow-editor/store/init.d.ts.map +1 -0
- package/dist/types/components/free-form/Datakit/flow-editor/store/store.d.ts +441 -0
- package/dist/types/components/free-form/Datakit/flow-editor/store/store.d.ts.map +1 -0
- package/dist/types/components/free-form/Datakit/flow-editor/store/validation.d.ts +25 -0
- package/dist/types/components/free-form/Datakit/flow-editor/store/validation.d.ts.map +1 -0
- package/dist/types/components/free-form/Datakit/types.d.ts +84 -23
- package/dist/types/components/free-form/Datakit/types.d.ts.map +1 -1
- package/package.json +8 -8
|
@@ -0,0 +1,441 @@
|
|
|
1
|
+
import type { ConfigNode, ConfigNodeType, EdgeData, EdgeInstance, EdgeId, EditorState, FieldId, FieldName, NodePhase, NodeInstance, NodeId, NodeName, UINode } from '../../types';
|
|
2
|
+
export declare const provideEditorState: (configNodes: ConfigNode[], uiNodes: UINode[]) => {
|
|
3
|
+
state: import("vue").Ref<{
|
|
4
|
+
nodes: {
|
|
5
|
+
id: NodeId;
|
|
6
|
+
type: import("../../types").NodeType;
|
|
7
|
+
name: NodeName;
|
|
8
|
+
phase: NodePhase;
|
|
9
|
+
position: {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
};
|
|
13
|
+
expanded: {
|
|
14
|
+
input?: boolean | undefined;
|
|
15
|
+
output?: boolean | undefined;
|
|
16
|
+
};
|
|
17
|
+
fields: {
|
|
18
|
+
input: {
|
|
19
|
+
id: FieldId;
|
|
20
|
+
name: FieldName;
|
|
21
|
+
}[];
|
|
22
|
+
output: {
|
|
23
|
+
id: FieldId;
|
|
24
|
+
name: FieldName;
|
|
25
|
+
}[];
|
|
26
|
+
};
|
|
27
|
+
config?: Record<string, unknown> | undefined;
|
|
28
|
+
}[];
|
|
29
|
+
edges: {
|
|
30
|
+
id: EdgeId;
|
|
31
|
+
source: NodeId;
|
|
32
|
+
sourceField?: FieldId | undefined;
|
|
33
|
+
target: NodeId;
|
|
34
|
+
targetField?: FieldId | undefined;
|
|
35
|
+
}[];
|
|
36
|
+
}, EditorState | {
|
|
37
|
+
nodes: {
|
|
38
|
+
id: NodeId;
|
|
39
|
+
type: import("../../types").NodeType;
|
|
40
|
+
name: NodeName;
|
|
41
|
+
phase: NodePhase;
|
|
42
|
+
position: {
|
|
43
|
+
x: number;
|
|
44
|
+
y: number;
|
|
45
|
+
};
|
|
46
|
+
expanded: {
|
|
47
|
+
input?: boolean | undefined;
|
|
48
|
+
output?: boolean | undefined;
|
|
49
|
+
};
|
|
50
|
+
fields: {
|
|
51
|
+
input: {
|
|
52
|
+
id: FieldId;
|
|
53
|
+
name: FieldName;
|
|
54
|
+
}[];
|
|
55
|
+
output: {
|
|
56
|
+
id: FieldId;
|
|
57
|
+
name: FieldName;
|
|
58
|
+
}[];
|
|
59
|
+
};
|
|
60
|
+
config?: Record<string, unknown> | undefined;
|
|
61
|
+
}[];
|
|
62
|
+
edges: {
|
|
63
|
+
id: EdgeId;
|
|
64
|
+
source: NodeId;
|
|
65
|
+
sourceField?: FieldId | undefined;
|
|
66
|
+
target: NodeId;
|
|
67
|
+
targetField?: FieldId | undefined;
|
|
68
|
+
}[];
|
|
69
|
+
}>;
|
|
70
|
+
selection: import("vue").Ref<`node:${number}` | undefined, `node:${number}` | undefined>;
|
|
71
|
+
nodeMapById: import("vue").ComputedRef<Map<`node:${number}`, NodeInstance>>;
|
|
72
|
+
nodeMapByName: import("vue").ComputedRef<Map<NodeName, NodeInstance>>;
|
|
73
|
+
edgeMapById: import("vue").ComputedRef<Map<`edge:${number}`, EdgeInstance>>;
|
|
74
|
+
getNodeById: (id: NodeId) => NodeInstance | undefined;
|
|
75
|
+
getNodeByName: (name: NodeName) => NodeInstance | undefined;
|
|
76
|
+
getEdgeById: (id: EdgeId) => EdgeInstance | undefined;
|
|
77
|
+
selectedNode: import("vue").ComputedRef<NodeInstance | undefined>;
|
|
78
|
+
selectNode: (id?: NodeId) => void;
|
|
79
|
+
addNode: (payload: {
|
|
80
|
+
type: ConfigNodeType;
|
|
81
|
+
name?: NodeName;
|
|
82
|
+
phase?: NodePhase;
|
|
83
|
+
position?: {
|
|
84
|
+
x: number;
|
|
85
|
+
y: number;
|
|
86
|
+
};
|
|
87
|
+
fields?: {
|
|
88
|
+
input?: FieldName[];
|
|
89
|
+
output?: FieldName[];
|
|
90
|
+
};
|
|
91
|
+
config?: Record<string, unknown>;
|
|
92
|
+
}, commitNow?: boolean) => `node:${number}` | undefined;
|
|
93
|
+
removeNode: (nodeId: NodeId, commitNow?: boolean) => void;
|
|
94
|
+
renameNode: (nodeId: NodeId, newName: NodeName, commitNow?: boolean) => void;
|
|
95
|
+
moveNode: (nodeId: NodeId, position: {
|
|
96
|
+
x: number;
|
|
97
|
+
y: number;
|
|
98
|
+
}, commitNow?: boolean) => void;
|
|
99
|
+
toggleExpanded: (nodeId: NodeId, io: "input" | "output", value?: boolean, commitNow?: boolean) => void;
|
|
100
|
+
replaceConfig: (nodeId: NodeId, next: Record<string, unknown>, commitNow?: boolean) => void;
|
|
101
|
+
addField: (nodeId: NodeId, io: "input" | "output", name: FieldName, commitNow?: boolean) => void;
|
|
102
|
+
renameField: (nodeId: NodeId, fieldId: FieldId, newName: FieldName, commitNow?: boolean) => void;
|
|
103
|
+
removeField: (nodeId: NodeId, fieldId: FieldId, cascade?: boolean, commitNow?: boolean) => void;
|
|
104
|
+
connectEdge: (payload: EdgeData, commitNow?: boolean) => `edge:${number}` | undefined;
|
|
105
|
+
replaceConnection: (edgeId: EdgeId, next: EdgeData, commitNow?: boolean) => void;
|
|
106
|
+
disconnectEdge: (edgeId: EdgeId, commitNow?: boolean) => void;
|
|
107
|
+
toConfigNodes: () => ConfigNode[];
|
|
108
|
+
toUINodes: () => UINode[];
|
|
109
|
+
load: (nextConfig: ConfigNode[], nextUI: UINode[]) => void;
|
|
110
|
+
commit: (tag?: string, opts?: {
|
|
111
|
+
replace?: boolean;
|
|
112
|
+
} | undefined) => void;
|
|
113
|
+
undo: () => void;
|
|
114
|
+
redo: () => void;
|
|
115
|
+
canUndo: import("vue").ComputedRef<boolean>;
|
|
116
|
+
canRedo: import("vue").ComputedRef<boolean>;
|
|
117
|
+
clear: () => void;
|
|
118
|
+
reset: () => void;
|
|
119
|
+
requestNodes: import("vue").ComputedRef<{
|
|
120
|
+
id: `node:${number}`;
|
|
121
|
+
type: import("../../types").NodeType;
|
|
122
|
+
position: {
|
|
123
|
+
x: number;
|
|
124
|
+
y: number;
|
|
125
|
+
};
|
|
126
|
+
data: {
|
|
127
|
+
id: NodeId;
|
|
128
|
+
type: import("../../types").NodeType;
|
|
129
|
+
name: NodeName;
|
|
130
|
+
phase: NodePhase;
|
|
131
|
+
position: {
|
|
132
|
+
x: number;
|
|
133
|
+
y: number;
|
|
134
|
+
};
|
|
135
|
+
expanded: {
|
|
136
|
+
input?: boolean | undefined;
|
|
137
|
+
output?: boolean | undefined;
|
|
138
|
+
};
|
|
139
|
+
fields: {
|
|
140
|
+
input: {
|
|
141
|
+
id: FieldId;
|
|
142
|
+
name: FieldName;
|
|
143
|
+
}[];
|
|
144
|
+
output: {
|
|
145
|
+
id: FieldId;
|
|
146
|
+
name: FieldName;
|
|
147
|
+
}[];
|
|
148
|
+
};
|
|
149
|
+
config?: Record<string, unknown> | undefined;
|
|
150
|
+
};
|
|
151
|
+
}[]>;
|
|
152
|
+
requestEdges: import("vue").ComputedRef<{
|
|
153
|
+
id: `edge:${number}`;
|
|
154
|
+
source: `node:${number}`;
|
|
155
|
+
target: `node:${number}`;
|
|
156
|
+
sourceHandle: `field:${number}` | undefined;
|
|
157
|
+
targetHandle: `field:${number}` | undefined;
|
|
158
|
+
data: {
|
|
159
|
+
id: EdgeId;
|
|
160
|
+
source: NodeId;
|
|
161
|
+
sourceField?: FieldId | undefined;
|
|
162
|
+
target: NodeId;
|
|
163
|
+
targetField?: FieldId | undefined;
|
|
164
|
+
};
|
|
165
|
+
}[]>;
|
|
166
|
+
responseNodes: import("vue").ComputedRef<{
|
|
167
|
+
id: `node:${number}`;
|
|
168
|
+
type: import("../../types").NodeType;
|
|
169
|
+
position: {
|
|
170
|
+
x: number;
|
|
171
|
+
y: number;
|
|
172
|
+
};
|
|
173
|
+
data: {
|
|
174
|
+
id: NodeId;
|
|
175
|
+
type: import("../../types").NodeType;
|
|
176
|
+
name: NodeName;
|
|
177
|
+
phase: NodePhase;
|
|
178
|
+
position: {
|
|
179
|
+
x: number;
|
|
180
|
+
y: number;
|
|
181
|
+
};
|
|
182
|
+
expanded: {
|
|
183
|
+
input?: boolean | undefined;
|
|
184
|
+
output?: boolean | undefined;
|
|
185
|
+
};
|
|
186
|
+
fields: {
|
|
187
|
+
input: {
|
|
188
|
+
id: FieldId;
|
|
189
|
+
name: FieldName;
|
|
190
|
+
}[];
|
|
191
|
+
output: {
|
|
192
|
+
id: FieldId;
|
|
193
|
+
name: FieldName;
|
|
194
|
+
}[];
|
|
195
|
+
};
|
|
196
|
+
config?: Record<string, unknown> | undefined;
|
|
197
|
+
};
|
|
198
|
+
}[]>;
|
|
199
|
+
responseEdges: import("vue").ComputedRef<{
|
|
200
|
+
id: `edge:${number}`;
|
|
201
|
+
source: `node:${number}`;
|
|
202
|
+
target: `node:${number}`;
|
|
203
|
+
sourceHandle: `field:${number}` | undefined;
|
|
204
|
+
targetHandle: `field:${number}` | undefined;
|
|
205
|
+
data: {
|
|
206
|
+
id: EdgeId;
|
|
207
|
+
source: NodeId;
|
|
208
|
+
sourceField?: FieldId | undefined;
|
|
209
|
+
target: NodeId;
|
|
210
|
+
targetField?: FieldId | undefined;
|
|
211
|
+
};
|
|
212
|
+
}[]>;
|
|
213
|
+
isValidConnection: (edge: EdgeData) => boolean;
|
|
214
|
+
isValidVueFlowConnection: (conn: {
|
|
215
|
+
source?: string | null;
|
|
216
|
+
sourceHandle?: string | null;
|
|
217
|
+
target?: string | null;
|
|
218
|
+
targetHandle?: string | null;
|
|
219
|
+
}) => boolean;
|
|
220
|
+
validateGraph: () => import("./validation").ValidationResult;
|
|
221
|
+
}, useEditorState: () => {
|
|
222
|
+
state: import("vue").Ref<{
|
|
223
|
+
nodes: {
|
|
224
|
+
id: NodeId;
|
|
225
|
+
type: import("../../types").NodeType;
|
|
226
|
+
name: NodeName;
|
|
227
|
+
phase: NodePhase;
|
|
228
|
+
position: {
|
|
229
|
+
x: number;
|
|
230
|
+
y: number;
|
|
231
|
+
};
|
|
232
|
+
expanded: {
|
|
233
|
+
input?: boolean | undefined;
|
|
234
|
+
output?: boolean | undefined;
|
|
235
|
+
};
|
|
236
|
+
fields: {
|
|
237
|
+
input: {
|
|
238
|
+
id: FieldId;
|
|
239
|
+
name: FieldName;
|
|
240
|
+
}[];
|
|
241
|
+
output: {
|
|
242
|
+
id: FieldId;
|
|
243
|
+
name: FieldName;
|
|
244
|
+
}[];
|
|
245
|
+
};
|
|
246
|
+
config?: Record<string, unknown> | undefined;
|
|
247
|
+
}[];
|
|
248
|
+
edges: {
|
|
249
|
+
id: EdgeId;
|
|
250
|
+
source: NodeId;
|
|
251
|
+
sourceField?: FieldId | undefined;
|
|
252
|
+
target: NodeId;
|
|
253
|
+
targetField?: FieldId | undefined;
|
|
254
|
+
}[];
|
|
255
|
+
}, EditorState | {
|
|
256
|
+
nodes: {
|
|
257
|
+
id: NodeId;
|
|
258
|
+
type: import("../../types").NodeType;
|
|
259
|
+
name: NodeName;
|
|
260
|
+
phase: NodePhase;
|
|
261
|
+
position: {
|
|
262
|
+
x: number;
|
|
263
|
+
y: number;
|
|
264
|
+
};
|
|
265
|
+
expanded: {
|
|
266
|
+
input?: boolean | undefined;
|
|
267
|
+
output?: boolean | undefined;
|
|
268
|
+
};
|
|
269
|
+
fields: {
|
|
270
|
+
input: {
|
|
271
|
+
id: FieldId;
|
|
272
|
+
name: FieldName;
|
|
273
|
+
}[];
|
|
274
|
+
output: {
|
|
275
|
+
id: FieldId;
|
|
276
|
+
name: FieldName;
|
|
277
|
+
}[];
|
|
278
|
+
};
|
|
279
|
+
config?: Record<string, unknown> | undefined;
|
|
280
|
+
}[];
|
|
281
|
+
edges: {
|
|
282
|
+
id: EdgeId;
|
|
283
|
+
source: NodeId;
|
|
284
|
+
sourceField?: FieldId | undefined;
|
|
285
|
+
target: NodeId;
|
|
286
|
+
targetField?: FieldId | undefined;
|
|
287
|
+
}[];
|
|
288
|
+
}>;
|
|
289
|
+
selection: import("vue").Ref<`node:${number}` | undefined, `node:${number}` | undefined>;
|
|
290
|
+
nodeMapById: import("vue").ComputedRef<Map<`node:${number}`, NodeInstance>>;
|
|
291
|
+
nodeMapByName: import("vue").ComputedRef<Map<NodeName, NodeInstance>>;
|
|
292
|
+
edgeMapById: import("vue").ComputedRef<Map<`edge:${number}`, EdgeInstance>>;
|
|
293
|
+
getNodeById: (id: NodeId) => NodeInstance | undefined;
|
|
294
|
+
getNodeByName: (name: NodeName) => NodeInstance | undefined;
|
|
295
|
+
getEdgeById: (id: EdgeId) => EdgeInstance | undefined;
|
|
296
|
+
selectedNode: import("vue").ComputedRef<NodeInstance | undefined>;
|
|
297
|
+
selectNode: (id?: NodeId) => void;
|
|
298
|
+
addNode: (payload: {
|
|
299
|
+
type: ConfigNodeType;
|
|
300
|
+
name?: NodeName;
|
|
301
|
+
phase?: NodePhase;
|
|
302
|
+
position?: {
|
|
303
|
+
x: number;
|
|
304
|
+
y: number;
|
|
305
|
+
};
|
|
306
|
+
fields?: {
|
|
307
|
+
input?: FieldName[];
|
|
308
|
+
output?: FieldName[];
|
|
309
|
+
};
|
|
310
|
+
config?: Record<string, unknown>;
|
|
311
|
+
}, commitNow?: boolean) => `node:${number}` | undefined;
|
|
312
|
+
removeNode: (nodeId: NodeId, commitNow?: boolean) => void;
|
|
313
|
+
renameNode: (nodeId: NodeId, newName: NodeName, commitNow?: boolean) => void;
|
|
314
|
+
moveNode: (nodeId: NodeId, position: {
|
|
315
|
+
x: number;
|
|
316
|
+
y: number;
|
|
317
|
+
}, commitNow?: boolean) => void;
|
|
318
|
+
toggleExpanded: (nodeId: NodeId, io: "input" | "output", value?: boolean, commitNow?: boolean) => void;
|
|
319
|
+
replaceConfig: (nodeId: NodeId, next: Record<string, unknown>, commitNow?: boolean) => void;
|
|
320
|
+
addField: (nodeId: NodeId, io: "input" | "output", name: FieldName, commitNow?: boolean) => void;
|
|
321
|
+
renameField: (nodeId: NodeId, fieldId: FieldId, newName: FieldName, commitNow?: boolean) => void;
|
|
322
|
+
removeField: (nodeId: NodeId, fieldId: FieldId, cascade?: boolean, commitNow?: boolean) => void;
|
|
323
|
+
connectEdge: (payload: EdgeData, commitNow?: boolean) => `edge:${number}` | undefined;
|
|
324
|
+
replaceConnection: (edgeId: EdgeId, next: EdgeData, commitNow?: boolean) => void;
|
|
325
|
+
disconnectEdge: (edgeId: EdgeId, commitNow?: boolean) => void;
|
|
326
|
+
toConfigNodes: () => ConfigNode[];
|
|
327
|
+
toUINodes: () => UINode[];
|
|
328
|
+
load: (nextConfig: ConfigNode[], nextUI: UINode[]) => void;
|
|
329
|
+
commit: (tag?: string, opts?: {
|
|
330
|
+
replace?: boolean;
|
|
331
|
+
} | undefined) => void;
|
|
332
|
+
undo: () => void;
|
|
333
|
+
redo: () => void;
|
|
334
|
+
canUndo: import("vue").ComputedRef<boolean>;
|
|
335
|
+
canRedo: import("vue").ComputedRef<boolean>;
|
|
336
|
+
clear: () => void;
|
|
337
|
+
reset: () => void;
|
|
338
|
+
requestNodes: import("vue").ComputedRef<{
|
|
339
|
+
id: `node:${number}`;
|
|
340
|
+
type: import("../../types").NodeType;
|
|
341
|
+
position: {
|
|
342
|
+
x: number;
|
|
343
|
+
y: number;
|
|
344
|
+
};
|
|
345
|
+
data: {
|
|
346
|
+
id: NodeId;
|
|
347
|
+
type: import("../../types").NodeType;
|
|
348
|
+
name: NodeName;
|
|
349
|
+
phase: NodePhase;
|
|
350
|
+
position: {
|
|
351
|
+
x: number;
|
|
352
|
+
y: number;
|
|
353
|
+
};
|
|
354
|
+
expanded: {
|
|
355
|
+
input?: boolean | undefined;
|
|
356
|
+
output?: boolean | undefined;
|
|
357
|
+
};
|
|
358
|
+
fields: {
|
|
359
|
+
input: {
|
|
360
|
+
id: FieldId;
|
|
361
|
+
name: FieldName;
|
|
362
|
+
}[];
|
|
363
|
+
output: {
|
|
364
|
+
id: FieldId;
|
|
365
|
+
name: FieldName;
|
|
366
|
+
}[];
|
|
367
|
+
};
|
|
368
|
+
config?: Record<string, unknown> | undefined;
|
|
369
|
+
};
|
|
370
|
+
}[]>;
|
|
371
|
+
requestEdges: import("vue").ComputedRef<{
|
|
372
|
+
id: `edge:${number}`;
|
|
373
|
+
source: `node:${number}`;
|
|
374
|
+
target: `node:${number}`;
|
|
375
|
+
sourceHandle: `field:${number}` | undefined;
|
|
376
|
+
targetHandle: `field:${number}` | undefined;
|
|
377
|
+
data: {
|
|
378
|
+
id: EdgeId;
|
|
379
|
+
source: NodeId;
|
|
380
|
+
sourceField?: FieldId | undefined;
|
|
381
|
+
target: NodeId;
|
|
382
|
+
targetField?: FieldId | undefined;
|
|
383
|
+
};
|
|
384
|
+
}[]>;
|
|
385
|
+
responseNodes: import("vue").ComputedRef<{
|
|
386
|
+
id: `node:${number}`;
|
|
387
|
+
type: import("../../types").NodeType;
|
|
388
|
+
position: {
|
|
389
|
+
x: number;
|
|
390
|
+
y: number;
|
|
391
|
+
};
|
|
392
|
+
data: {
|
|
393
|
+
id: NodeId;
|
|
394
|
+
type: import("../../types").NodeType;
|
|
395
|
+
name: NodeName;
|
|
396
|
+
phase: NodePhase;
|
|
397
|
+
position: {
|
|
398
|
+
x: number;
|
|
399
|
+
y: number;
|
|
400
|
+
};
|
|
401
|
+
expanded: {
|
|
402
|
+
input?: boolean | undefined;
|
|
403
|
+
output?: boolean | undefined;
|
|
404
|
+
};
|
|
405
|
+
fields: {
|
|
406
|
+
input: {
|
|
407
|
+
id: FieldId;
|
|
408
|
+
name: FieldName;
|
|
409
|
+
}[];
|
|
410
|
+
output: {
|
|
411
|
+
id: FieldId;
|
|
412
|
+
name: FieldName;
|
|
413
|
+
}[];
|
|
414
|
+
};
|
|
415
|
+
config?: Record<string, unknown> | undefined;
|
|
416
|
+
};
|
|
417
|
+
}[]>;
|
|
418
|
+
responseEdges: import("vue").ComputedRef<{
|
|
419
|
+
id: `edge:${number}`;
|
|
420
|
+
source: `node:${number}`;
|
|
421
|
+
target: `node:${number}`;
|
|
422
|
+
sourceHandle: `field:${number}` | undefined;
|
|
423
|
+
targetHandle: `field:${number}` | undefined;
|
|
424
|
+
data: {
|
|
425
|
+
id: EdgeId;
|
|
426
|
+
source: NodeId;
|
|
427
|
+
sourceField?: FieldId | undefined;
|
|
428
|
+
target: NodeId;
|
|
429
|
+
targetField?: FieldId | undefined;
|
|
430
|
+
};
|
|
431
|
+
}[]>;
|
|
432
|
+
isValidConnection: (edge: EdgeData) => boolean;
|
|
433
|
+
isValidVueFlowConnection: (conn: {
|
|
434
|
+
source?: string | null;
|
|
435
|
+
sourceHandle?: string | null;
|
|
436
|
+
target?: string | null;
|
|
437
|
+
targetHandle?: string | null;
|
|
438
|
+
}) => boolean;
|
|
439
|
+
validateGraph: () => import("./validation").ValidationResult;
|
|
440
|
+
} | undefined;
|
|
441
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/free-form/Datakit/flow-editor/store/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Ref } from 'vue';
|
|
2
|
+
import type { EditorState, EdgeData } from '../../types';
|
|
3
|
+
export type ValidationResult = {
|
|
4
|
+
ok: true;
|
|
5
|
+
} | {
|
|
6
|
+
ok: false;
|
|
7
|
+
errors: string[];
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Validators bound to a reactive EditorState.
|
|
11
|
+
* Always reads the latest state through computed getters.
|
|
12
|
+
*/
|
|
13
|
+
export declare function useValidators(stateRef: Ref<EditorState>): {
|
|
14
|
+
canonicalizeConnection: (edge: EdgeData) => EdgeData;
|
|
15
|
+
validateConnection: (raw: EdgeData) => ValidationResult;
|
|
16
|
+
validateGraph: () => ValidationResult;
|
|
17
|
+
isValidConnection: (edge: EdgeData) => boolean;
|
|
18
|
+
isValidVueFlowConnection: (conn: {
|
|
19
|
+
source?: string | null;
|
|
20
|
+
sourceHandle?: string | null;
|
|
21
|
+
target?: string | null;
|
|
22
|
+
targetHandle?: string | null;
|
|
23
|
+
}) => boolean;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/free-form/Datakit/flow-editor/store/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAE9B,OAAO,KAAK,EACV,WAAW,EAEX,QAAQ,EAIT,MAAM,aAAa,CAAA;AAGpB,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAE7E;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC;mCAchB,QAAQ,KAAG,QAAQ;8BAuDxB,QAAQ,KAAG,gBAAgB;yBAsElC,gBAAgB;8BA8BT,QAAQ,KAAG,OAAO;qCAIX;QACtC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAC7B;EAiBF"}
|
|
@@ -3,10 +3,14 @@ import type { ButtonProps } from '@kong/kongponents';
|
|
|
3
3
|
import type { FreeFormPluginData } from '../../../types/plugins/free-form';
|
|
4
4
|
import type { HttpMethod } from './constants';
|
|
5
5
|
export type { HttpMethod };
|
|
6
|
-
export type EditorMode = 'code' | 'flow';
|
|
7
6
|
type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Keys extends any ? Omit<T, Keys> & {
|
|
8
7
|
[K in Keys]-?: T[K];
|
|
9
8
|
} : never;
|
|
9
|
+
declare const brand: unique symbol;
|
|
10
|
+
type Brand<T, Brand extends string> = T & {
|
|
11
|
+
[brand]: Brand;
|
|
12
|
+
};
|
|
13
|
+
export type EditorMode = 'code' | 'flow';
|
|
10
14
|
interface EditorModalNavItemBase {
|
|
11
15
|
label: string;
|
|
12
16
|
icon: Component;
|
|
@@ -20,9 +24,9 @@ export type EditorModalNavItem = RequireAtLeastOne<EditorModalNavItemBase, 'to'
|
|
|
20
24
|
/**
|
|
21
25
|
* All explicit node types recognised by Datakit.
|
|
22
26
|
*/
|
|
23
|
-
export type
|
|
27
|
+
export type ConfigNodeType = 'call' | 'jq' | 'exit' | 'property' | 'static';
|
|
24
28
|
export type ImplicitNodeType = 'request' | 'service_request' | 'service_response' | 'response';
|
|
25
|
-
export type NodeType =
|
|
29
|
+
export type NodeType = ConfigNodeType | ImplicitNodeType;
|
|
26
30
|
export interface NodeMeta {
|
|
27
31
|
type: NodeType;
|
|
28
32
|
summary?: string;
|
|
@@ -32,8 +36,8 @@ export interface NodeMeta {
|
|
|
32
36
|
* Well-known fields for the node.
|
|
33
37
|
*/
|
|
34
38
|
fields?: {
|
|
35
|
-
input?:
|
|
36
|
-
output?:
|
|
39
|
+
input?: FieldName[];
|
|
40
|
+
output?: FieldName[];
|
|
37
41
|
};
|
|
38
42
|
}
|
|
39
43
|
/************************************************
|
|
@@ -49,7 +53,7 @@ export interface DatakitConfig {
|
|
|
49
53
|
*
|
|
50
54
|
* * Must contain at least one element.
|
|
51
55
|
*/
|
|
52
|
-
nodes:
|
|
56
|
+
nodes: ConfigNode[];
|
|
53
57
|
/**
|
|
54
58
|
* Enable verbose debug logging.
|
|
55
59
|
*
|
|
@@ -81,7 +85,8 @@ export type ImplicitNodeName = 'request' | 'service_request' | 'service_response
|
|
|
81
85
|
* @example 'filter_01'
|
|
82
86
|
* @example 'filter_02'
|
|
83
87
|
*/
|
|
84
|
-
export type
|
|
88
|
+
export type ConfigNodeName = Brand<string, 'ConfigNodeName'>;
|
|
89
|
+
export type NodeName = ConfigNodeName | ImplicitNodeName;
|
|
85
90
|
/**
|
|
86
91
|
* The phase of the node in the request/response cycle.
|
|
87
92
|
*
|
|
@@ -91,20 +96,36 @@ export type NodePhase = 'request' | 'response';
|
|
|
91
96
|
/**
|
|
92
97
|
* Base shape shared by every concrete node type.
|
|
93
98
|
*/
|
|
94
|
-
interface
|
|
99
|
+
interface BaseConfigNode {
|
|
95
100
|
/**
|
|
96
101
|
* Unique label for referencing the node in connections.
|
|
97
102
|
*/
|
|
98
|
-
name: NodeName
|
|
103
|
+
name: NodeName;
|
|
99
104
|
/**
|
|
100
105
|
* The type of the node.
|
|
101
106
|
*/
|
|
102
107
|
type: NodeType;
|
|
108
|
+
/**
|
|
109
|
+
* node input (`NODE` or `NODE.FIELD`)
|
|
110
|
+
*/
|
|
111
|
+
input?: string;
|
|
112
|
+
/**
|
|
113
|
+
* node inputs
|
|
114
|
+
*/
|
|
115
|
+
inputs?: Record<FieldName, string>;
|
|
116
|
+
/**
|
|
117
|
+
* node output (`NODE` or `NODE.FIELD`)
|
|
118
|
+
*/
|
|
119
|
+
output?: string;
|
|
120
|
+
/**
|
|
121
|
+
* node inputs
|
|
122
|
+
*/
|
|
123
|
+
outputs?: Record<FieldName, string>;
|
|
103
124
|
}
|
|
104
125
|
/**
|
|
105
126
|
* Make an external HTTP request.
|
|
106
127
|
*/
|
|
107
|
-
export interface CallNode extends
|
|
128
|
+
export interface CallNode extends BaseConfigNode {
|
|
108
129
|
type: 'call';
|
|
109
130
|
/**
|
|
110
131
|
* A string representing an HTTP method, such as GET, POST, PUT, or
|
|
@@ -157,7 +178,7 @@ export interface CallNode extends BaseNode {
|
|
|
157
178
|
/**
|
|
158
179
|
* Terminate the request and send a response to the client.
|
|
159
180
|
*/
|
|
160
|
-
export interface ExitNode extends
|
|
181
|
+
export interface ExitNode extends BaseConfigNode {
|
|
161
182
|
type: 'exit';
|
|
162
183
|
/**
|
|
163
184
|
* HTTP status code.
|
|
@@ -185,7 +206,7 @@ export interface ExitNode extends BaseNode {
|
|
|
185
206
|
/**
|
|
186
207
|
* Process data using `jq` syntax.
|
|
187
208
|
*/
|
|
188
|
-
export interface JqNode extends
|
|
209
|
+
export interface JqNode extends BaseConfigNode {
|
|
189
210
|
type: 'jq';
|
|
190
211
|
/**
|
|
191
212
|
* The jq filter text. Refer to https://jqlang.org/manual/ for full
|
|
@@ -199,14 +220,14 @@ export interface JqNode extends BaseNode {
|
|
|
199
220
|
/**
|
|
200
221
|
* filter input(s)
|
|
201
222
|
*/
|
|
202
|
-
inputs?: Record<
|
|
223
|
+
inputs?: Record<FieldName, string>;
|
|
203
224
|
/** filter output (`NODE` or `NODE.FIELD`) */
|
|
204
225
|
output?: string;
|
|
205
226
|
}
|
|
206
227
|
/**
|
|
207
228
|
* Get or set a property.
|
|
208
229
|
*/
|
|
209
|
-
export interface PropertyNode extends
|
|
230
|
+
export interface PropertyNode extends BaseConfigNode {
|
|
210
231
|
type: 'property';
|
|
211
232
|
/**
|
|
212
233
|
* The expected MIME type of the property value. When set to
|
|
@@ -234,7 +255,7 @@ export interface PropertyNode extends BaseNode {
|
|
|
234
255
|
/**
|
|
235
256
|
* Produce reusable outputs from statically-configured values.
|
|
236
257
|
*/
|
|
237
|
-
export interface StaticNode extends
|
|
258
|
+
export interface StaticNode extends BaseConfigNode {
|
|
238
259
|
type: 'static';
|
|
239
260
|
/**
|
|
240
261
|
* An object with string keys and free-form values.
|
|
@@ -247,17 +268,24 @@ export interface StaticNode extends BaseNode {
|
|
|
247
268
|
/**
|
|
248
269
|
* Individual items from `.values`, referenced by key.
|
|
249
270
|
*/
|
|
250
|
-
outputs?: Record<
|
|
271
|
+
outputs?: Record<FieldName, string>;
|
|
251
272
|
}
|
|
252
273
|
/**
|
|
253
274
|
* Discriminated union of all node types.
|
|
254
275
|
*/
|
|
255
|
-
export type
|
|
276
|
+
export type ConfigNode = CallNode | ExitNode | JqNode | PropertyNode | StaticNode;
|
|
256
277
|
/************************************************
|
|
257
278
|
* Editor global store *
|
|
258
279
|
************************************************/
|
|
259
|
-
export
|
|
260
|
-
|
|
280
|
+
export type NodeId = `node:${number}`;
|
|
281
|
+
export type EdgeId = `edge:${number}`;
|
|
282
|
+
export type FieldId = `field:${number}`;
|
|
283
|
+
export type FieldName = Brand<string, 'FieldName'>;
|
|
284
|
+
export interface NodeField {
|
|
285
|
+
id: FieldId;
|
|
286
|
+
name: FieldName;
|
|
287
|
+
}
|
|
288
|
+
export type UINode = {
|
|
261
289
|
name: NodeName;
|
|
262
290
|
phase: NodePhase;
|
|
263
291
|
position: {
|
|
@@ -265,17 +293,50 @@ export interface NodeData {
|
|
|
265
293
|
y: number;
|
|
266
294
|
};
|
|
267
295
|
fields: {
|
|
268
|
-
input?:
|
|
269
|
-
output?:
|
|
296
|
+
input?: FieldName[];
|
|
297
|
+
output?: FieldName[];
|
|
270
298
|
};
|
|
271
299
|
expanded: {
|
|
272
300
|
input?: boolean;
|
|
273
301
|
output?: boolean;
|
|
274
302
|
};
|
|
275
|
-
|
|
303
|
+
};
|
|
304
|
+
export interface NodeInstance {
|
|
305
|
+
id: NodeId;
|
|
306
|
+
type: NodeType;
|
|
307
|
+
name: NodeName;
|
|
308
|
+
phase: NodePhase;
|
|
309
|
+
position: {
|
|
310
|
+
x: number;
|
|
311
|
+
y: number;
|
|
312
|
+
};
|
|
313
|
+
expanded: {
|
|
314
|
+
input?: boolean;
|
|
315
|
+
output?: boolean;
|
|
316
|
+
};
|
|
317
|
+
fields: {
|
|
318
|
+
input: NodeField[];
|
|
319
|
+
output: NodeField[];
|
|
320
|
+
};
|
|
276
321
|
config?: Record<string, unknown>;
|
|
277
322
|
}
|
|
323
|
+
export interface ConfigEdge {
|
|
324
|
+
source: NodeName;
|
|
325
|
+
sourceField?: FieldName;
|
|
326
|
+
target: NodeName;
|
|
327
|
+
targetField?: FieldName;
|
|
328
|
+
}
|
|
329
|
+
export interface EdgeData {
|
|
330
|
+
source: NodeId;
|
|
331
|
+
sourceField?: FieldId;
|
|
332
|
+
target: NodeId;
|
|
333
|
+
targetField?: FieldId;
|
|
334
|
+
}
|
|
335
|
+
export interface EdgeInstance extends EdgeData {
|
|
336
|
+
id: EdgeId;
|
|
337
|
+
}
|
|
278
338
|
export interface EditorState {
|
|
279
|
-
nodes:
|
|
339
|
+
nodes: NodeInstance[];
|
|
340
|
+
edges: EdgeInstance[];
|
|
280
341
|
}
|
|
281
342
|
//# sourceMappingURL=types.d.ts.map
|