@oomol-lab/open-flow 0.1.0-alpha.1 → 0.1.0-alpha.12
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/README.md +5 -1
- package/dist/browser/addNodeOptions-BYQXyUmQ.js +9571 -0
- package/dist/browser/carbon-DMCVsjHo.js +53 -0
- package/dist/browser/{project-change.js → change-7rp2OZLm.js} +16 -46
- package/dist/browser/createResourceDialog-CWD62rU0.js +467 -0
- package/dist/browser/{dist-o4dBuwiG.js → dist-3Mj8q8Pr.js} +28 -28
- package/dist/browser/{dist-CIq6ue3I.js → dist-BKuSVKCC.js} +1115 -1103
- package/dist/browser/{dist-DL0SDskM.js → dist-BMqL-qR5.js} +473 -906
- package/dist/browser/{dist-CLZJNoWB.js → dist-BN4ZCyOB.js} +10 -10
- package/dist/browser/{dist-zyY--HOV.js → dist-BpopSHwP.js} +3 -3
- package/dist/browser/dist-C46JByB-.js +252 -0
- package/dist/browser/{dist-BbyiRq3c.js → dist-CJpzJrLM.js} +294 -284
- package/dist/browser/{dist-Djd02JSy.js → dist-CPuF50D9.js} +198 -198
- package/dist/browser/{dist-CvcmLAMW.js → dist-CUSrALSX.js} +115 -115
- package/dist/browser/dist-CeSZ2xSM.js +444 -0
- package/dist/browser/{dist-7oZK9QXZ.js → dist-DMi8_lU3.js} +5 -5
- package/dist/browser/{dist-B9OV3YTx.js → dist-DUzA0Ukh.js} +22 -22
- package/dist/browser/{dist-aWSZx4q1.js → dist-DWADUsVB.js} +75 -75
- package/dist/browser/{dist-BLk5M0uK.js → dist-Mecbzdl2.js} +3 -3
- package/dist/browser/{esm-DXw7EADW.js → esm-DmVDlOEJ.js} +14 -24
- package/dist/browser/flow-authoring-edge.d.ts +3 -0
- package/dist/browser/flow-authoring-module.d.ts +4 -0
- package/dist/browser/flow-authoring-node.d.ts +86 -0
- package/dist/browser/flow-authoring.d.ts +4 -0
- package/dist/browser/flow-authoring.js +783 -0
- package/dist/browser/{project-change.d.ts → flow-change.d.ts} +29 -37
- package/dist/browser/flow-change.js +234 -0
- package/dist/browser/{project-notifications.d.ts → flow-notifications.d.ts} +6 -3
- package/dist/browser/flowRunInputEditorStore-BYxwvHZl.js +8952 -0
- package/dist/browser/flowWorkspace-Bwqmoq-c.js +47439 -0
- package/dist/browser/languages-DgJehE1g.js +62 -0
- package/dist/browser/lib-C5Ipyfps.js +7856 -0
- package/dist/browser/{lib-S4ccuMeT.js → lib-GrGxYjsJ.js} +3 -5
- package/dist/browser/licenses.md +620 -12
- package/dist/browser/main-DmjVyuWr.js +76 -0
- package/dist/browser/{markdownContent-ZZFfSRqO.js → markdownContent-0teWaxq8.js} +5188 -5144
- package/dist/browser/theme.css +63 -0
- package/dist/browser/theme.css.d.ts +1 -0
- package/dist/browser/typeScriptSession-D5neIpug.js +2560 -0
- package/dist/browser/{composite-7VwgfnXx.js → useOpenInteractionType-CRgOHg5M.js} +2209 -2750
- package/dist/browser/workbench-contract.d.ts +6 -6
- package/dist/browser/workbench.css +1 -1
- package/dist/browser/workbench.d.ts +18 -2
- package/dist/browser/workbench.js +4200 -2233
- package/dist/common/connector-action.d.ts +6 -0
- package/dist/common/connector-action.js +38 -30
- package/dist/common/control-api-conformance.js +262 -359
- package/dist/common/control-api-errors.d.ts +32 -24
- package/dist/common/control-api.d.ts +57 -73
- package/dist/common/control-api.js +199 -205
- package/dist/common/cron-trigger.d.ts +1 -1
- package/dist/common/cron-trigger.js +1 -1
- package/dist/common/flow-encoding.d.ts +11 -0
- package/dist/common/{project-encoding.js → flow-encoding.js} +14 -13
- package/dist/common/{project-notifications.d.ts → flow-notifications.d.ts} +6 -3
- package/dist/common/{project-semantics.d.ts → flow-semantics.d.ts} +11 -12
- package/dist/common/{project-semantics.js → flow-semantics.js} +959 -934
- package/dist/common/integration-trigger.d.ts +2 -1
- package/dist/common/integration-trigger.js +1 -1
- package/dist/common/licenses.md +1 -25
- package/dist/common/localization.d.ts +21 -0
- package/dist/common/localization.js +62 -0
- package/dist/common/poll-trigger.d.ts +1 -1
- package/dist/common/provider-triggers.js +1057 -948
- package/dist/common/run-lifecycle.js +1 -1
- package/dist/common/runtime-contract.d.ts +1 -1
- package/dist/common/runtime-contract.js +1 -1
- package/dist/common/scheduler.d.ts +8 -7
- package/dist/common/scheduler.js +251 -232
- package/dist/common/webhook-trigger.d.ts +1 -1
- package/dist/common/webhook-trigger.js +35 -1
- package/package.json +23 -10
- package/dist/browser/addNodeOptions-DqoIueCR.js +0 -33746
- package/dist/browser/carbon-nMY84Amv.js +0 -53
- package/dist/browser/createResourceDialog-ByuJWdSL.js +0 -439
- package/dist/browser/dist-n-z5HtaO.js +0 -4
- package/dist/browser/flowWorkspace-DwVMpcar.js +0 -22092
- package/dist/common/project-encoding.d.ts +0 -11
|
@@ -4,6 +4,7 @@ export type JsonValue = null | boolean | number | string | readonly JsonValue[]
|
|
|
4
4
|
export declare const resourceNameMaxLength = 80;
|
|
5
5
|
export type ResourceNameIssue = 'controlCharacter' | 'empty' | 'specialCharacter' | 'tooLong';
|
|
6
6
|
export declare function resourceNameIssue(value: string): ResourceNameIssue | undefined;
|
|
7
|
+
export declare function validVariableName(value: string): boolean;
|
|
7
8
|
export interface PortDefinition {
|
|
8
9
|
readonly description?: string;
|
|
9
10
|
readonly jsonSchema: JsonValue;
|
|
@@ -12,6 +13,13 @@ export interface PortDefinition {
|
|
|
12
13
|
export interface InputPortDefinition extends PortDefinition {
|
|
13
14
|
readonly value?: JsonValue;
|
|
14
15
|
}
|
|
16
|
+
export interface Port extends PortDefinition {
|
|
17
|
+
readonly handle: string;
|
|
18
|
+
}
|
|
19
|
+
export interface InputPort extends InputPortDefinition {
|
|
20
|
+
readonly handle: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function portsByHandle<Value extends Port>(ports: readonly Value[]): Readonly<Record<string, Value>>;
|
|
15
23
|
export interface NodeSource {
|
|
16
24
|
readonly kind: 'node';
|
|
17
25
|
readonly nodeId: string;
|
|
@@ -38,6 +46,7 @@ export interface OutputMapping {
|
|
|
38
46
|
interface GraphNodeBase {
|
|
39
47
|
readonly concurrency: number;
|
|
40
48
|
readonly description?: string;
|
|
49
|
+
readonly icon?: string;
|
|
41
50
|
readonly inputs: Readonly<Record<string, InputMapping>>;
|
|
42
51
|
readonly name?: string;
|
|
43
52
|
readonly timeoutMs?: number;
|
|
@@ -48,7 +57,7 @@ export interface SubflowNode extends GraphNodeBase {
|
|
|
48
57
|
}
|
|
49
58
|
export interface ValueNode extends GraphNodeBase {
|
|
50
59
|
readonly kind: 'value';
|
|
51
|
-
readonly values:
|
|
60
|
+
readonly values: readonly InputPort[];
|
|
52
61
|
}
|
|
53
62
|
export type ConditionOperator = '!=' | '<' | '<=' | '==' | '>' | '>=' | 'contains' | 'endsWith' | 'hasKey' | 'hasValue' | 'isEmpty' | 'isFalse' | 'isNotEmpty' | 'isNotNull' | 'isNull' | 'isTrue' | 'notContains' | 'notHasKey' | 'notHasValue' | 'startsWith';
|
|
54
63
|
export interface ConditionExpression {
|
|
@@ -64,9 +73,7 @@ export interface ConditionCase {
|
|
|
64
73
|
export interface ConditionNode extends GraphNodeBase {
|
|
65
74
|
readonly cases: readonly ConditionCase[];
|
|
66
75
|
readonly defaultOutput?: string;
|
|
67
|
-
readonly input:
|
|
68
|
-
readonly handle: string;
|
|
69
|
-
};
|
|
76
|
+
readonly input: InputPort;
|
|
70
77
|
readonly kind: 'condition';
|
|
71
78
|
}
|
|
72
79
|
export type ManagedTaskExecutor = {
|
|
@@ -83,9 +90,9 @@ export interface ConnectorCapability {
|
|
|
83
90
|
readonly kind: 'connector';
|
|
84
91
|
}
|
|
85
92
|
interface TaskDefinitionBase {
|
|
86
|
-
readonly inputs:
|
|
93
|
+
readonly inputs: readonly InputPort[];
|
|
87
94
|
readonly name: string;
|
|
88
|
-
readonly outputs:
|
|
95
|
+
readonly outputs: readonly Port[];
|
|
89
96
|
}
|
|
90
97
|
export interface InlineTaskDefinition extends TaskDefinitionBase {
|
|
91
98
|
readonly capabilities?: readonly ConnectorCapability[];
|
|
@@ -143,8 +150,7 @@ export type TriggerKeySnapshot = (TriggerKeySnapshotBase & {
|
|
|
143
150
|
readonly endpoint: IntegrationEndpointDeclaration;
|
|
144
151
|
readonly type: 'integration';
|
|
145
152
|
});
|
|
146
|
-
export interface WebhookInputDefinition extends
|
|
147
|
-
readonly handle: string;
|
|
153
|
+
export interface WebhookInputDefinition extends InputPort {
|
|
148
154
|
}
|
|
149
155
|
export interface WebhookOptions {
|
|
150
156
|
readonly allowedMethods?: readonly string[];
|
|
@@ -156,6 +162,7 @@ export interface WebhookOptions {
|
|
|
156
162
|
}
|
|
157
163
|
interface TriggerNodeBase {
|
|
158
164
|
readonly description?: string;
|
|
165
|
+
readonly icon?: string;
|
|
159
166
|
readonly name: string;
|
|
160
167
|
}
|
|
161
168
|
export type TriggerNode = (TriggerNodeBase & {
|
|
@@ -182,20 +189,17 @@ export type TriggerNode = (TriggerNodeBase & {
|
|
|
182
189
|
readonly kind: 'integration';
|
|
183
190
|
});
|
|
184
191
|
export type GraphNode = ConditionNode | SubflowNode | TaskNode | TriggerNode | ValueNode;
|
|
185
|
-
export interface
|
|
192
|
+
export interface FlowDocument {
|
|
186
193
|
readonly bindings: Readonly<Record<string, {
|
|
187
|
-
readonly kind: 'connection' | '
|
|
194
|
+
readonly kind: 'connection' | 'variable';
|
|
188
195
|
readonly target: string;
|
|
189
196
|
}>>;
|
|
190
|
-
readonly
|
|
191
|
-
readonly graph: Graph;
|
|
192
|
-
readonly name: string;
|
|
193
|
-
}>>;
|
|
197
|
+
readonly graph: Graph;
|
|
194
198
|
readonly subflows: Readonly<Record<string, {
|
|
195
199
|
readonly graph: Graph;
|
|
196
|
-
readonly inputs:
|
|
200
|
+
readonly inputs: readonly InputPort[];
|
|
197
201
|
readonly name: string;
|
|
198
|
-
readonly outputs:
|
|
202
|
+
readonly outputs: readonly (OutputMapping & Port)[];
|
|
199
203
|
}>>;
|
|
200
204
|
readonly tasks: Readonly<Record<string, ManagedTaskDefinition>>;
|
|
201
205
|
}
|
|
@@ -205,12 +209,11 @@ export interface CodeModule {
|
|
|
205
209
|
readonly source: string;
|
|
206
210
|
}
|
|
207
211
|
export interface RevisionContent {
|
|
208
|
-
readonly document:
|
|
212
|
+
readonly document: FlowDocument;
|
|
209
213
|
readonly modelVersion: 1;
|
|
210
214
|
readonly modules: Readonly<Record<string, CodeModule>>;
|
|
211
215
|
}
|
|
212
216
|
export type GraphTarget = {
|
|
213
|
-
readonly id: string;
|
|
214
217
|
readonly kind: 'flow';
|
|
215
218
|
} | {
|
|
216
219
|
readonly id: string;
|
|
@@ -223,27 +226,16 @@ export interface GraphEdge {
|
|
|
223
226
|
readonly targetHandle: string;
|
|
224
227
|
}
|
|
225
228
|
export type ChangeOperation = {
|
|
226
|
-
readonly binding:
|
|
229
|
+
readonly binding: FlowDocument['bindings'][string];
|
|
227
230
|
readonly bindingId: string;
|
|
228
231
|
readonly kind: 'binding.create';
|
|
229
232
|
} | {
|
|
230
|
-
readonly binding:
|
|
233
|
+
readonly binding: FlowDocument['bindings'][string];
|
|
231
234
|
readonly bindingId: string;
|
|
232
235
|
readonly kind: 'binding.replace';
|
|
233
236
|
} | {
|
|
234
237
|
readonly bindingId: string;
|
|
235
238
|
readonly kind: 'binding.delete';
|
|
236
|
-
} | {
|
|
237
|
-
readonly flow: ProjectDocument['flows'][string];
|
|
238
|
-
readonly flowId: string;
|
|
239
|
-
readonly kind: 'flow.create';
|
|
240
|
-
} | {
|
|
241
|
-
readonly flowId: string;
|
|
242
|
-
readonly kind: 'flow.delete';
|
|
243
|
-
} | {
|
|
244
|
-
readonly flowId: string;
|
|
245
|
-
readonly kind: 'flow.rename';
|
|
246
|
-
readonly name: string;
|
|
247
239
|
} | {
|
|
248
240
|
readonly kind: 'graph.edge.connect';
|
|
249
241
|
readonly edge: GraphEdge;
|
|
@@ -284,10 +276,10 @@ export type ChangeOperation = {
|
|
|
284
276
|
readonly source: string;
|
|
285
277
|
} | {
|
|
286
278
|
readonly kind: 'subflow.create';
|
|
287
|
-
readonly subflow:
|
|
279
|
+
readonly subflow: FlowDocument['subflows'][string];
|
|
288
280
|
readonly subflowId: string;
|
|
289
281
|
} | {
|
|
290
|
-
readonly definition: Omit<
|
|
282
|
+
readonly definition: Omit<FlowDocument['subflows'][string], 'graph'>;
|
|
291
283
|
readonly kind: 'subflow.definition.replace';
|
|
292
284
|
readonly subflowId: string;
|
|
293
285
|
} | {
|
|
@@ -295,17 +287,17 @@ export type ChangeOperation = {
|
|
|
295
287
|
readonly subflowId: string;
|
|
296
288
|
} | {
|
|
297
289
|
readonly kind: 'task.create';
|
|
298
|
-
readonly task:
|
|
290
|
+
readonly task: FlowDocument['tasks'][string];
|
|
299
291
|
readonly taskId: string;
|
|
300
292
|
} | {
|
|
301
293
|
readonly kind: 'task.delete';
|
|
302
294
|
readonly taskId: string;
|
|
303
295
|
} | {
|
|
304
296
|
readonly kind: 'task.replace';
|
|
305
|
-
readonly task:
|
|
297
|
+
readonly task: FlowDocument['tasks'][string];
|
|
306
298
|
readonly taskId: string;
|
|
307
299
|
};
|
|
308
|
-
export declare class
|
|
300
|
+
export declare class FlowChangeError extends Error {
|
|
309
301
|
}
|
|
310
|
-
export declare function
|
|
302
|
+
export declare function applyFlowChanges(content: RevisionContent, operations: readonly ChangeOperation[]): RevisionContent;
|
|
311
303
|
export {};
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
//#region src/flow/common/change.ts
|
|
2
|
+
var e = 80;
|
|
3
|
+
function t(e) {
|
|
4
|
+
let t = e.trim();
|
|
5
|
+
if (t.length == 0) return "empty";
|
|
6
|
+
if (t.length > 80) return "tooLong";
|
|
7
|
+
for (let e of t) {
|
|
8
|
+
let t = e.charCodeAt(0);
|
|
9
|
+
if (t <= 31 || t >= 127 && t <= 159) return "controlCharacter";
|
|
10
|
+
}
|
|
11
|
+
if (!/^[\p{L}\p{N}](?:[\p{L}\p{N} _-]*[\p{L}\p{N}])?$/u.test(t)) return "specialCharacter";
|
|
12
|
+
}
|
|
13
|
+
function n(e) {
|
|
14
|
+
return e.length <= 256 && /^[A-Za-z_][A-Za-z0-9_]*$/.test(e) && e.slice(0, 3).toUpperCase() != "OO_";
|
|
15
|
+
}
|
|
16
|
+
function r(e) {
|
|
17
|
+
return Object.fromEntries(e.map((e) => [e.handle, e]));
|
|
18
|
+
}
|
|
19
|
+
var i = class extends Error {};
|
|
20
|
+
function a() {
|
|
21
|
+
throw new i();
|
|
22
|
+
}
|
|
23
|
+
function o(e, t) {
|
|
24
|
+
if (t.kind == "flow") return e.graph;
|
|
25
|
+
let n = e.subflows[t.id];
|
|
26
|
+
return n ?? a(), n.graph;
|
|
27
|
+
}
|
|
28
|
+
function s(e, t, n) {
|
|
29
|
+
if (t.kind == "flow") return {
|
|
30
|
+
...e,
|
|
31
|
+
graph: n
|
|
32
|
+
};
|
|
33
|
+
let r = e.subflows[t.id];
|
|
34
|
+
return r ?? a(), {
|
|
35
|
+
...e,
|
|
36
|
+
subflows: {
|
|
37
|
+
...e.subflows,
|
|
38
|
+
[t.id]: {
|
|
39
|
+
...r,
|
|
40
|
+
graph: n
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function c(e, t) {
|
|
46
|
+
if (!("inputs" in e)) return e;
|
|
47
|
+
let n = { ...e.inputs };
|
|
48
|
+
for (let [e, r] of Object.entries(n)) {
|
|
49
|
+
if (r.kind != "sources") continue;
|
|
50
|
+
let i = r.sources.filter((e) => e.kind != "node" || !t.has(e.nodeId));
|
|
51
|
+
i.length == 0 ? delete n[e] : n[e] = {
|
|
52
|
+
kind: "sources",
|
|
53
|
+
sources: i
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
...e,
|
|
58
|
+
inputs: n
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function l(e, t) {
|
|
62
|
+
let n = { ...e.document }, r = { ...e.modules };
|
|
63
|
+
for (let e of t) switch (e.kind) {
|
|
64
|
+
case "binding.create":
|
|
65
|
+
n.bindings[e.bindingId] != null && a(), n.bindings = {
|
|
66
|
+
...n.bindings,
|
|
67
|
+
[e.bindingId]: e.binding
|
|
68
|
+
};
|
|
69
|
+
break;
|
|
70
|
+
case "binding.replace":
|
|
71
|
+
n.bindings[e.bindingId] ?? a(), n.bindings = {
|
|
72
|
+
...n.bindings,
|
|
73
|
+
[e.bindingId]: e.binding
|
|
74
|
+
};
|
|
75
|
+
break;
|
|
76
|
+
case "binding.delete": {
|
|
77
|
+
n.bindings[e.bindingId] ?? a();
|
|
78
|
+
let t = { ...n.bindings };
|
|
79
|
+
delete t[e.bindingId], n.bindings = t;
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case "graph.edge.connect": {
|
|
83
|
+
let t = o(n, e.target);
|
|
84
|
+
t.nodes[e.edge.source] ?? a();
|
|
85
|
+
let r = t.nodes[e.edge.target];
|
|
86
|
+
(r == null || !("inputs" in r)) && a();
|
|
87
|
+
let i = r.inputs[e.edge.targetHandle], c = {
|
|
88
|
+
kind: "node",
|
|
89
|
+
nodeId: e.edge.source,
|
|
90
|
+
output: e.edge.sourceHandle
|
|
91
|
+
}, l = i?.kind == "sources" ? i.sources.filter((e) => e.kind != "binding" || n.bindings[e.bindingId]?.kind != "variable") : [];
|
|
92
|
+
l.some((e) => e.kind == "node" && e.nodeId == c.nodeId && e.output == c.output) && a();
|
|
93
|
+
let u = {
|
|
94
|
+
...r,
|
|
95
|
+
inputs: {
|
|
96
|
+
...r.inputs,
|
|
97
|
+
[e.edge.targetHandle]: {
|
|
98
|
+
kind: "sources",
|
|
99
|
+
sources: [...l, c]
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
Object.assign(n, s(n, e.target, { nodes: {
|
|
104
|
+
...t.nodes,
|
|
105
|
+
[e.edge.target]: u
|
|
106
|
+
} }));
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
case "graph.edge.disconnect": {
|
|
110
|
+
let t = o(n, e.target), r = t.nodes[e.edge.target];
|
|
111
|
+
(r == null || !("inputs" in r)) && a();
|
|
112
|
+
let i = r.inputs[e.edge.targetHandle];
|
|
113
|
+
i?.kind != "sources" && a();
|
|
114
|
+
let c = i.sources.filter((t) => t.kind != "node" || t.nodeId != e.edge.source || t.output != e.edge.sourceHandle);
|
|
115
|
+
c.length == i.sources.length && a();
|
|
116
|
+
let l = { ...r.inputs };
|
|
117
|
+
c.length == 0 ? delete l[e.edge.targetHandle] : l[e.edge.targetHandle] = {
|
|
118
|
+
kind: "sources",
|
|
119
|
+
sources: c
|
|
120
|
+
}, Object.assign(n, s(n, e.target, { nodes: {
|
|
121
|
+
...t.nodes,
|
|
122
|
+
[e.edge.target]: {
|
|
123
|
+
...r,
|
|
124
|
+
inputs: l
|
|
125
|
+
}
|
|
126
|
+
} }));
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
case "graph.node.create": {
|
|
130
|
+
let t = o(n, e.target);
|
|
131
|
+
(t.nodes[e.nodeId] != null || e.target.kind == "subflow" && !("inputs" in e.node)) && a(), Object.assign(n, s(n, e.target, { nodes: {
|
|
132
|
+
...t.nodes,
|
|
133
|
+
[e.nodeId]: e.node
|
|
134
|
+
} }));
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
case "graph.node.delete": {
|
|
138
|
+
let t = o(n, e.target);
|
|
139
|
+
t.nodes[e.nodeId] ?? a();
|
|
140
|
+
let r = /* @__PURE__ */ new Set([e.nodeId]), i = Object.fromEntries(Object.entries(t.nodes).flatMap(([e, t]) => r.has(e) ? [] : [[e, c(t, r)]]));
|
|
141
|
+
if (Object.assign(n, s(n, e.target, { nodes: i })), e.target.kind == "subflow") {
|
|
142
|
+
let t = n.subflows[e.target.id], i = t.outputs.map((e) => ({
|
|
143
|
+
...e,
|
|
144
|
+
sources: e.sources.filter((e) => e.kind != "node" || !r.has(e.nodeId))
|
|
145
|
+
}));
|
|
146
|
+
n.subflows = {
|
|
147
|
+
...n.subflows,
|
|
148
|
+
[e.target.id]: {
|
|
149
|
+
...t,
|
|
150
|
+
outputs: i
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
case "graph.node.replace": {
|
|
157
|
+
let t = o(n, e.target);
|
|
158
|
+
(t.nodes[e.nodeId] == null || e.target.kind == "subflow" && !("inputs" in e.node)) && a(), Object.assign(n, s(n, e.target, { nodes: {
|
|
159
|
+
...t.nodes,
|
|
160
|
+
[e.nodeId]: e.node
|
|
161
|
+
} }));
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
case "module.create":
|
|
165
|
+
r[e.moduleId] != null && a(), r[e.moduleId] = e.module;
|
|
166
|
+
break;
|
|
167
|
+
case "module.delete":
|
|
168
|
+
r[e.moduleId] ?? a(), delete r[e.moduleId];
|
|
169
|
+
break;
|
|
170
|
+
case "module.rename": {
|
|
171
|
+
let t = r[e.moduleId];
|
|
172
|
+
t ?? a(), r[e.moduleId] = {
|
|
173
|
+
...t,
|
|
174
|
+
name: e.name
|
|
175
|
+
};
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
case "module.source.replace": {
|
|
179
|
+
let t = r[e.moduleId];
|
|
180
|
+
t ?? a(), r[e.moduleId] = {
|
|
181
|
+
...t,
|
|
182
|
+
imports: e.imports,
|
|
183
|
+
source: e.source
|
|
184
|
+
};
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
case "subflow.create":
|
|
188
|
+
n.subflows[e.subflowId] != null && a(), n.subflows = {
|
|
189
|
+
...n.subflows,
|
|
190
|
+
[e.subflowId]: e.subflow
|
|
191
|
+
};
|
|
192
|
+
break;
|
|
193
|
+
case "subflow.definition.replace": {
|
|
194
|
+
let t = n.subflows[e.subflowId];
|
|
195
|
+
t ?? a(), n.subflows = {
|
|
196
|
+
...n.subflows,
|
|
197
|
+
[e.subflowId]: {
|
|
198
|
+
...e.definition,
|
|
199
|
+
graph: t.graph
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
case "subflow.delete": {
|
|
205
|
+
n.subflows[e.subflowId] ?? a();
|
|
206
|
+
let t = { ...n.subflows };
|
|
207
|
+
delete t[e.subflowId], n.subflows = t;
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
case "task.create":
|
|
211
|
+
n.tasks[e.taskId] != null && a(), n.tasks = {
|
|
212
|
+
...n.tasks,
|
|
213
|
+
[e.taskId]: e.task
|
|
214
|
+
};
|
|
215
|
+
break;
|
|
216
|
+
case "task.delete": {
|
|
217
|
+
n.tasks[e.taskId] ?? a();
|
|
218
|
+
let t = { ...n.tasks };
|
|
219
|
+
delete t[e.taskId], n.tasks = t;
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
case "task.replace": n.tasks[e.taskId] ?? a(), n.tasks = {
|
|
223
|
+
...n.tasks,
|
|
224
|
+
[e.taskId]: e.task
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
return {
|
|
228
|
+
document: n,
|
|
229
|
+
modelVersion: e.modelVersion,
|
|
230
|
+
modules: r
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
//#endregion
|
|
234
|
+
export { i as FlowChangeError, l as applyFlowChanges, r as portsByHandle, t as resourceNameIssue, e as resourceNameMaxLength, n as validVariableName };
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface FlowCatalogEvent {
|
|
2
|
+
readonly kind: 'flows.changed';
|
|
3
|
+
readonly version: 1;
|
|
4
|
+
}
|
|
5
|
+
export type FlowChangeEvent = {
|
|
2
6
|
readonly kind: 'draft.changed';
|
|
3
|
-
readonly
|
|
7
|
+
readonly flowId: string;
|
|
4
8
|
readonly revisionId: string;
|
|
5
9
|
readonly version: 1;
|
|
6
10
|
} | {
|
|
7
11
|
readonly flowId: string;
|
|
8
12
|
readonly kind: 'run.created';
|
|
9
|
-
readonly projectId: string;
|
|
10
13
|
readonly runId: string;
|
|
11
14
|
readonly version: 1;
|
|
12
15
|
};
|