n8n-mcp 2.10.1 → 2.10.3
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 +3 -3
- package/data/nodes.db +0 -0
- package/dist/database/node-repository.d.ts.map +1 -1
- package/dist/database/node-repository.js +10 -5
- package/dist/database/node-repository.js.map +1 -1
- package/dist/mappers/docs-mapper.d.ts +1 -0
- package/dist/mappers/docs-mapper.d.ts.map +1 -1
- package/dist/mappers/docs-mapper.js +48 -1
- package/dist/mappers/docs-mapper.js.map +1 -1
- package/dist/mcp/server.d.ts +2 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +129 -12
- package/dist/mcp/server.js.map +1 -1
- package/dist/parsers/node-parser.d.ts +4 -0
- package/dist/parsers/node-parser.d.ts.map +1 -1
- package/dist/parsers/node-parser.js +43 -1
- package/dist/parsers/node-parser.js.map +1 -1
- package/dist/services/enhanced-config-validator.d.ts.map +1 -1
- package/dist/services/enhanced-config-validator.js +18 -0
- package/dist/services/enhanced-config-validator.js.map +1 -1
- package/dist/services/workflow-validator.d.ts +5 -0
- package/dist/services/workflow-validator.d.ts.map +1 -1
- package/dist/services/workflow-validator.js +182 -21
- package/dist/services/workflow-validator.js.map +1 -1
- package/dist/utils/validation-schemas.d.ts +32 -0
- package/dist/utils/validation-schemas.d.ts.map +1 -0
- package/dist/utils/validation-schemas.js +219 -0
- package/dist/utils/validation-schemas.js.map +1 -0
- package/package.json +114 -18
- package/package.runtime.json +20 -0
|
@@ -8,8 +8,18 @@ class WorkflowValidator {
|
|
|
8
8
|
constructor(nodeRepository, nodeValidator) {
|
|
9
9
|
this.nodeRepository = nodeRepository;
|
|
10
10
|
this.nodeValidator = nodeValidator;
|
|
11
|
+
this.currentWorkflow = null;
|
|
12
|
+
}
|
|
13
|
+
isStickyNote(node) {
|
|
14
|
+
const stickyNoteTypes = [
|
|
15
|
+
'n8n-nodes-base.stickyNote',
|
|
16
|
+
'nodes-base.stickyNote',
|
|
17
|
+
'@n8n/n8n-nodes-base.stickyNote'
|
|
18
|
+
];
|
|
19
|
+
return stickyNoteTypes.includes(node.type);
|
|
11
20
|
}
|
|
12
21
|
async validateWorkflow(workflow, options = {}) {
|
|
22
|
+
this.currentWorkflow = workflow;
|
|
13
23
|
const { validateNodes = true, validateConnections = true, validateExpressions = true, profile = 'runtime' } = options;
|
|
14
24
|
const result = {
|
|
15
25
|
valid: true,
|
|
@@ -34,23 +44,27 @@ class WorkflowValidator {
|
|
|
34
44
|
result.valid = false;
|
|
35
45
|
return result;
|
|
36
46
|
}
|
|
37
|
-
|
|
38
|
-
result.statistics.
|
|
47
|
+
const executableNodes = Array.isArray(workflow.nodes) ? workflow.nodes.filter(n => !this.isStickyNote(n)) : [];
|
|
48
|
+
result.statistics.totalNodes = executableNodes.length;
|
|
49
|
+
result.statistics.enabledNodes = executableNodes.filter(n => !n.disabled).length;
|
|
39
50
|
this.validateWorkflowStructure(workflow, result);
|
|
40
51
|
if (workflow.nodes && Array.isArray(workflow.nodes) && workflow.connections && typeof workflow.connections === 'object') {
|
|
41
52
|
if (validateNodes && workflow.nodes.length > 0) {
|
|
42
53
|
await this.validateAllNodes(workflow, result, profile);
|
|
43
54
|
}
|
|
44
55
|
if (validateConnections) {
|
|
45
|
-
this.validateConnections(workflow, result);
|
|
56
|
+
this.validateConnections(workflow, result, profile);
|
|
46
57
|
}
|
|
47
58
|
if (validateExpressions && workflow.nodes.length > 0) {
|
|
48
|
-
this.validateExpressions(workflow, result);
|
|
59
|
+
this.validateExpressions(workflow, result, profile);
|
|
49
60
|
}
|
|
50
61
|
if (workflow.nodes.length > 0) {
|
|
51
|
-
this.checkWorkflowPatterns(workflow, result);
|
|
62
|
+
this.checkWorkflowPatterns(workflow, result, profile);
|
|
52
63
|
}
|
|
53
64
|
this.generateSuggestions(workflow, result);
|
|
65
|
+
if (result.errors.length > 0) {
|
|
66
|
+
this.addErrorRecoverySuggestions(result);
|
|
67
|
+
}
|
|
54
68
|
}
|
|
55
69
|
}
|
|
56
70
|
catch (error) {
|
|
@@ -166,7 +180,7 @@ class WorkflowValidator {
|
|
|
166
180
|
}
|
|
167
181
|
async validateAllNodes(workflow, result, profile) {
|
|
168
182
|
for (const node of workflow.nodes) {
|
|
169
|
-
if (node.disabled)
|
|
183
|
+
if (node.disabled || this.isStickyNote(node))
|
|
170
184
|
continue;
|
|
171
185
|
try {
|
|
172
186
|
if (node.name && node.name.length > 255) {
|
|
@@ -314,7 +328,7 @@ class WorkflowValidator {
|
|
|
314
328
|
}
|
|
315
329
|
}
|
|
316
330
|
}
|
|
317
|
-
validateConnections(workflow, result) {
|
|
331
|
+
validateConnections(workflow, result, profile = 'runtime') {
|
|
318
332
|
const nodeMap = new Map(workflow.nodes.map(n => [n.name, n]));
|
|
319
333
|
const nodeIdMap = new Map(workflow.nodes.map(n => [n.id, n]));
|
|
320
334
|
for (const [sourceName, outputs] of Object.entries(workflow.connections)) {
|
|
@@ -371,7 +385,7 @@ class WorkflowValidator {
|
|
|
371
385
|
}
|
|
372
386
|
});
|
|
373
387
|
for (const node of workflow.nodes) {
|
|
374
|
-
if (node.disabled)
|
|
388
|
+
if (node.disabled || this.isStickyNote(node))
|
|
375
389
|
continue;
|
|
376
390
|
const normalizedType = node.type.replace('n8n-nodes-base.', 'nodes-base.');
|
|
377
391
|
const isTrigger = normalizedType.toLowerCase().includes('trigger') ||
|
|
@@ -388,7 +402,7 @@ class WorkflowValidator {
|
|
|
388
402
|
});
|
|
389
403
|
}
|
|
390
404
|
}
|
|
391
|
-
if (this.hasCycle(workflow)) {
|
|
405
|
+
if (profile !== 'minimal' && this.hasCycle(workflow)) {
|
|
392
406
|
result.errors.push({
|
|
393
407
|
type: 'error',
|
|
394
408
|
message: 'Workflow contains a cycle (infinite loop)'
|
|
@@ -396,6 +410,7 @@ class WorkflowValidator {
|
|
|
396
410
|
}
|
|
397
411
|
}
|
|
398
412
|
validateConnectionOutputs(sourceName, outputs, nodeMap, nodeIdMap, result, outputType) {
|
|
413
|
+
const sourceNode = nodeMap.get(sourceName);
|
|
399
414
|
outputs.forEach((outputConnections, outputIndex) => {
|
|
400
415
|
if (!outputConnections)
|
|
401
416
|
return;
|
|
@@ -408,11 +423,16 @@ class WorkflowValidator {
|
|
|
408
423
|
result.statistics.invalidConnections++;
|
|
409
424
|
return;
|
|
410
425
|
}
|
|
426
|
+
if (sourceNode && sourceNode.type === 'n8n-nodes-base.splitInBatches') {
|
|
427
|
+
this.validateSplitInBatchesConnection(sourceNode, outputIndex, connection, nodeMap, result);
|
|
428
|
+
}
|
|
411
429
|
if (connection.node === sourceName) {
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
430
|
+
if (sourceNode && sourceNode.type !== 'n8n-nodes-base.splitInBatches') {
|
|
431
|
+
result.warnings.push({
|
|
432
|
+
type: 'warning',
|
|
433
|
+
message: `Node "${sourceName}" has a self-referencing connection. This can cause infinite loops.`
|
|
434
|
+
});
|
|
435
|
+
}
|
|
416
436
|
}
|
|
417
437
|
const targetNode = nodeMap.get(connection.node);
|
|
418
438
|
if (!targetNode) {
|
|
@@ -473,7 +493,21 @@ class WorkflowValidator {
|
|
|
473
493
|
hasCycle(workflow) {
|
|
474
494
|
const visited = new Set();
|
|
475
495
|
const recursionStack = new Set();
|
|
476
|
-
const
|
|
496
|
+
const nodeTypeMap = new Map();
|
|
497
|
+
workflow.nodes.forEach(node => {
|
|
498
|
+
if (!this.isStickyNote(node)) {
|
|
499
|
+
nodeTypeMap.set(node.name, node.type);
|
|
500
|
+
}
|
|
501
|
+
});
|
|
502
|
+
const loopNodeTypes = [
|
|
503
|
+
'n8n-nodes-base.splitInBatches',
|
|
504
|
+
'nodes-base.splitInBatches',
|
|
505
|
+
'n8n-nodes-base.itemLists',
|
|
506
|
+
'nodes-base.itemLists',
|
|
507
|
+
'n8n-nodes-base.loop',
|
|
508
|
+
'nodes-base.loop'
|
|
509
|
+
];
|
|
510
|
+
const hasCycleDFS = (nodeName, pathFromLoopNode = false) => {
|
|
477
511
|
visited.add(nodeName);
|
|
478
512
|
recursionStack.add(nodeName);
|
|
479
513
|
const connections = workflow.connections[nodeName];
|
|
@@ -497,12 +531,19 @@ class WorkflowValidator {
|
|
|
497
531
|
allTargets.push(conn.node);
|
|
498
532
|
});
|
|
499
533
|
}
|
|
534
|
+
const currentNodeType = nodeTypeMap.get(nodeName);
|
|
535
|
+
const isLoopNode = loopNodeTypes.includes(currentNodeType || '');
|
|
500
536
|
for (const target of allTargets) {
|
|
501
537
|
if (!visited.has(target)) {
|
|
502
|
-
if (hasCycleDFS(target))
|
|
538
|
+
if (hasCycleDFS(target, pathFromLoopNode || isLoopNode))
|
|
503
539
|
return true;
|
|
504
540
|
}
|
|
505
541
|
else if (recursionStack.has(target)) {
|
|
542
|
+
const targetNodeType = nodeTypeMap.get(target);
|
|
543
|
+
const isTargetLoopNode = loopNodeTypes.includes(targetNodeType || '');
|
|
544
|
+
if (isTargetLoopNode || pathFromLoopNode || isLoopNode) {
|
|
545
|
+
continue;
|
|
546
|
+
}
|
|
506
547
|
return true;
|
|
507
548
|
}
|
|
508
549
|
}
|
|
@@ -511,17 +552,17 @@ class WorkflowValidator {
|
|
|
511
552
|
return false;
|
|
512
553
|
};
|
|
513
554
|
for (const node of workflow.nodes) {
|
|
514
|
-
if (!visited.has(node.name)) {
|
|
555
|
+
if (!this.isStickyNote(node) && !visited.has(node.name)) {
|
|
515
556
|
if (hasCycleDFS(node.name))
|
|
516
557
|
return true;
|
|
517
558
|
}
|
|
518
559
|
}
|
|
519
560
|
return false;
|
|
520
561
|
}
|
|
521
|
-
validateExpressions(workflow, result) {
|
|
562
|
+
validateExpressions(workflow, result, profile = 'runtime') {
|
|
522
563
|
const nodeNames = workflow.nodes.map(n => n.name);
|
|
523
564
|
for (const node of workflow.nodes) {
|
|
524
|
-
if (node.disabled)
|
|
565
|
+
if (node.disabled || this.isStickyNote(node))
|
|
525
566
|
continue;
|
|
526
567
|
const context = {
|
|
527
568
|
availableNodes: nodeNames.filter(n => n !== node.name),
|
|
@@ -582,16 +623,18 @@ class WorkflowValidator {
|
|
|
582
623
|
}
|
|
583
624
|
return false;
|
|
584
625
|
}
|
|
585
|
-
checkWorkflowPatterns(workflow, result) {
|
|
626
|
+
checkWorkflowPatterns(workflow, result, profile = 'runtime') {
|
|
586
627
|
const hasErrorHandling = Object.values(workflow.connections).some(outputs => outputs.error && outputs.error.length > 0);
|
|
587
|
-
if (!hasErrorHandling && workflow.nodes.length > 3) {
|
|
628
|
+
if (!hasErrorHandling && workflow.nodes.length > 3 && profile !== 'minimal') {
|
|
588
629
|
result.warnings.push({
|
|
589
630
|
type: 'warning',
|
|
590
631
|
message: 'Consider adding error handling to your workflow'
|
|
591
632
|
});
|
|
592
633
|
}
|
|
593
634
|
for (const node of workflow.nodes) {
|
|
594
|
-
this.
|
|
635
|
+
if (!this.isStickyNote(node)) {
|
|
636
|
+
this.checkNodeErrorHandling(node, workflow, result);
|
|
637
|
+
}
|
|
595
638
|
}
|
|
596
639
|
const linearChainLength = this.getLongestLinearChain(workflow);
|
|
597
640
|
if (linearChainLength > 10) {
|
|
@@ -1015,6 +1058,124 @@ class WorkflowValidator {
|
|
|
1015
1058
|
result.suggestions.push('Replace "continueOnFail: true" with "onError: \'continueRegularOutput\'" for better UI compatibility and control.');
|
|
1016
1059
|
}
|
|
1017
1060
|
}
|
|
1061
|
+
validateSplitInBatchesConnection(sourceNode, outputIndex, connection, nodeMap, result) {
|
|
1062
|
+
const targetNode = nodeMap.get(connection.node);
|
|
1063
|
+
if (!targetNode)
|
|
1064
|
+
return;
|
|
1065
|
+
if (outputIndex === 0) {
|
|
1066
|
+
const targetType = targetNode.type.toLowerCase();
|
|
1067
|
+
const targetName = targetNode.name.toLowerCase();
|
|
1068
|
+
if (targetType.includes('function') ||
|
|
1069
|
+
targetType.includes('code') ||
|
|
1070
|
+
targetType.includes('item') ||
|
|
1071
|
+
targetName.includes('process') ||
|
|
1072
|
+
targetName.includes('transform') ||
|
|
1073
|
+
targetName.includes('handle')) {
|
|
1074
|
+
const hasLoopBack = this.checkForLoopBack(targetNode.name, sourceNode.name, nodeMap);
|
|
1075
|
+
if (hasLoopBack) {
|
|
1076
|
+
result.errors.push({
|
|
1077
|
+
type: 'error',
|
|
1078
|
+
nodeId: sourceNode.id,
|
|
1079
|
+
nodeName: sourceNode.name,
|
|
1080
|
+
message: `SplitInBatches outputs appear reversed! Node "${targetNode.name}" is connected to output 0 ("done") but connects back to the loop. It should be connected to output 1 ("loop") instead. Remember: Output 0 = "done" (post-loop), Output 1 = "loop" (inside loop).`
|
|
1081
|
+
});
|
|
1082
|
+
}
|
|
1083
|
+
else {
|
|
1084
|
+
result.warnings.push({
|
|
1085
|
+
type: 'warning',
|
|
1086
|
+
nodeId: sourceNode.id,
|
|
1087
|
+
nodeName: sourceNode.name,
|
|
1088
|
+
message: `Node "${targetNode.name}" is connected to the "done" output (index 0) but appears to be a processing node. Consider connecting it to the "loop" output (index 1) if it should process items inside the loop.`
|
|
1089
|
+
});
|
|
1090
|
+
}
|
|
1091
|
+
}
|
|
1092
|
+
}
|
|
1093
|
+
else if (outputIndex === 1) {
|
|
1094
|
+
const targetType = targetNode.type.toLowerCase();
|
|
1095
|
+
const targetName = targetNode.name.toLowerCase();
|
|
1096
|
+
if (targetType.includes('aggregate') ||
|
|
1097
|
+
targetType.includes('merge') ||
|
|
1098
|
+
targetType.includes('email') ||
|
|
1099
|
+
targetType.includes('slack') ||
|
|
1100
|
+
targetName.includes('final') ||
|
|
1101
|
+
targetName.includes('complete') ||
|
|
1102
|
+
targetName.includes('summary') ||
|
|
1103
|
+
targetName.includes('report')) {
|
|
1104
|
+
result.warnings.push({
|
|
1105
|
+
type: 'warning',
|
|
1106
|
+
nodeId: sourceNode.id,
|
|
1107
|
+
nodeName: sourceNode.name,
|
|
1108
|
+
message: `Node "${targetNode.name}" is connected to the "loop" output (index 1) but appears to be a post-processing node. Consider connecting it to the "done" output (index 0) if it should run after all iterations complete.`
|
|
1109
|
+
});
|
|
1110
|
+
}
|
|
1111
|
+
const hasLoopBack = this.checkForLoopBack(targetNode.name, sourceNode.name, nodeMap);
|
|
1112
|
+
if (!hasLoopBack) {
|
|
1113
|
+
result.warnings.push({
|
|
1114
|
+
type: 'warning',
|
|
1115
|
+
nodeId: sourceNode.id,
|
|
1116
|
+
nodeName: sourceNode.name,
|
|
1117
|
+
message: `The "loop" output connects to "${targetNode.name}" but doesn't connect back to the SplitInBatches node. The last node in the loop should connect back to complete the iteration.`
|
|
1118
|
+
});
|
|
1119
|
+
}
|
|
1120
|
+
}
|
|
1121
|
+
}
|
|
1122
|
+
checkForLoopBack(startNode, targetNode, nodeMap, visited = new Set(), maxDepth = 50) {
|
|
1123
|
+
if (maxDepth <= 0)
|
|
1124
|
+
return false;
|
|
1125
|
+
if (visited.has(startNode))
|
|
1126
|
+
return false;
|
|
1127
|
+
visited.add(startNode);
|
|
1128
|
+
const node = nodeMap.get(startNode);
|
|
1129
|
+
if (!node)
|
|
1130
|
+
return false;
|
|
1131
|
+
const connections = this.currentWorkflow?.connections[startNode];
|
|
1132
|
+
if (!connections)
|
|
1133
|
+
return false;
|
|
1134
|
+
for (const [outputType, outputs] of Object.entries(connections)) {
|
|
1135
|
+
if (!Array.isArray(outputs))
|
|
1136
|
+
continue;
|
|
1137
|
+
for (const outputConnections of outputs) {
|
|
1138
|
+
if (!Array.isArray(outputConnections))
|
|
1139
|
+
continue;
|
|
1140
|
+
for (const conn of outputConnections) {
|
|
1141
|
+
if (conn.node === targetNode) {
|
|
1142
|
+
return true;
|
|
1143
|
+
}
|
|
1144
|
+
if (this.checkForLoopBack(conn.node, targetNode, nodeMap, visited, maxDepth - 1)) {
|
|
1145
|
+
return true;
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1148
|
+
}
|
|
1149
|
+
}
|
|
1150
|
+
return false;
|
|
1151
|
+
}
|
|
1152
|
+
addErrorRecoverySuggestions(result) {
|
|
1153
|
+
const errorTypes = {
|
|
1154
|
+
nodeType: result.errors.filter(e => e.message.includes('node type') || e.message.includes('Node type')),
|
|
1155
|
+
connection: result.errors.filter(e => e.message.includes('connection') || e.message.includes('Connection')),
|
|
1156
|
+
structure: result.errors.filter(e => e.message.includes('structure') || e.message.includes('nodes must be')),
|
|
1157
|
+
configuration: result.errors.filter(e => e.message.includes('property') || e.message.includes('field')),
|
|
1158
|
+
typeVersion: result.errors.filter(e => e.message.includes('typeVersion'))
|
|
1159
|
+
};
|
|
1160
|
+
if (errorTypes.nodeType.length > 0) {
|
|
1161
|
+
result.suggestions.unshift('🔧 RECOVERY: Invalid node types detected. Use these patterns:', ' • For core nodes: "n8n-nodes-base.nodeName" (e.g., "n8n-nodes-base.webhook")', ' • For AI nodes: "@n8n/n8n-nodes-langchain.nodeName"', ' • Never use just the node name without package prefix');
|
|
1162
|
+
}
|
|
1163
|
+
if (errorTypes.connection.length > 0) {
|
|
1164
|
+
result.suggestions.unshift('🔧 RECOVERY: Connection errors detected. Fix with:', ' • Use node NAMES in connections, not IDs or types', ' • Structure: { "Source Node Name": { "main": [[{ "node": "Target Node Name", "type": "main", "index": 0 }]] } }', ' • Ensure all referenced nodes exist in the workflow');
|
|
1165
|
+
}
|
|
1166
|
+
if (errorTypes.structure.length > 0) {
|
|
1167
|
+
result.suggestions.unshift('🔧 RECOVERY: Workflow structure errors. Fix with:', ' • Ensure "nodes" is an array: "nodes": [...]', ' • Ensure "connections" is an object: "connections": {...}', ' • Add at least one node to create a valid workflow');
|
|
1168
|
+
}
|
|
1169
|
+
if (errorTypes.configuration.length > 0) {
|
|
1170
|
+
result.suggestions.unshift('🔧 RECOVERY: Node configuration errors. Fix with:', ' • Check required fields using validate_node_minimal first', ' • Use get_node_essentials to see what fields are needed', ' • Ensure operation-specific fields match the node\'s requirements');
|
|
1171
|
+
}
|
|
1172
|
+
if (errorTypes.typeVersion.length > 0) {
|
|
1173
|
+
result.suggestions.unshift('🔧 RECOVERY: TypeVersion errors. Fix with:', ' • Add "typeVersion": 1 (or latest version) to each node', ' • Use get_node_info to check the correct version for each node type');
|
|
1174
|
+
}
|
|
1175
|
+
if (result.errors.length > 3) {
|
|
1176
|
+
result.suggestions.push('📋 SUGGESTED WORKFLOW: Too many errors detected. Try this approach:', ' 1. Fix structural issues first (nodes array, connections object)', ' 2. Validate node types and fix invalid ones', ' 3. Add required typeVersion to all nodes', ' 4. Test connections step by step', ' 5. Use validate_node_minimal on individual nodes to verify configuration');
|
|
1177
|
+
}
|
|
1178
|
+
}
|
|
1018
1179
|
}
|
|
1019
1180
|
exports.WorkflowValidator = WorkflowValidator;
|
|
1020
1181
|
//# sourceMappingURL=workflow-validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-validator.js","sourceRoot":"","sources":["../../src/services/workflow-validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workflow-validator.js","sourceRoot":"","sources":["../../src/services/workflow-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare class ValidationError extends Error {
|
|
2
|
+
field?: string | undefined;
|
|
3
|
+
value?: any | undefined;
|
|
4
|
+
constructor(message: string, field?: string | undefined, value?: any | undefined);
|
|
5
|
+
}
|
|
6
|
+
export interface ValidationResult {
|
|
7
|
+
valid: boolean;
|
|
8
|
+
errors: Array<{
|
|
9
|
+
field: string;
|
|
10
|
+
message: string;
|
|
11
|
+
value?: any;
|
|
12
|
+
}>;
|
|
13
|
+
}
|
|
14
|
+
export declare class Validator {
|
|
15
|
+
static validateString(value: any, fieldName: string, required?: boolean): ValidationResult;
|
|
16
|
+
static validateObject(value: any, fieldName: string, required?: boolean): ValidationResult;
|
|
17
|
+
static validateArray(value: any, fieldName: string, required?: boolean): ValidationResult;
|
|
18
|
+
static validateNumber(value: any, fieldName: string, required?: boolean, min?: number, max?: number): ValidationResult;
|
|
19
|
+
static validateEnum<T>(value: any, fieldName: string, allowedValues: T[], required?: boolean): ValidationResult;
|
|
20
|
+
static combineResults(...results: ValidationResult[]): ValidationResult;
|
|
21
|
+
static formatErrors(result: ValidationResult, toolName?: string): string;
|
|
22
|
+
}
|
|
23
|
+
export declare class ToolValidation {
|
|
24
|
+
static validateNodeOperation(args: any): ValidationResult;
|
|
25
|
+
static validateNodeMinimal(args: any): ValidationResult;
|
|
26
|
+
static validateWorkflow(args: any): ValidationResult;
|
|
27
|
+
static validateSearchNodes(args: any): ValidationResult;
|
|
28
|
+
static validateListNodeTemplates(args: any): ValidationResult;
|
|
29
|
+
static validateWorkflowId(args: any): ValidationResult;
|
|
30
|
+
static validateCreateWorkflow(args: any): ValidationResult;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=validation-schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-schemas.d.ts","sourceRoot":"","sources":["../../src/utils/validation-schemas.ts"],"names":[],"mappings":"AAQA,qBAAa,eAAgB,SAAQ,KAAK;IACJ,KAAK,CAAC,EAAE,MAAM;IAAS,KAAK,CAAC,EAAE,GAAG;gBAA1D,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,MAAM,YAAA,EAAS,KAAK,CAAC,EAAE,GAAG,YAAA;CAIvE;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,KAAK,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,GAAG,CAAC;KACb,CAAC,CAAC;CACJ;AAKD,qBAAa,SAAS;IAIpB,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,gBAAgB;IAgChG,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,gBAAgB;IAkChG,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,gBAAgB;IA0B/F,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,gBAAgB;IA2C5H,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,QAAQ,GAAE,OAAc,GAAG,gBAAgB;IA0BrH,MAAM,CAAC,cAAc,CAAC,GAAG,OAAO,EAAE,gBAAgB,EAAE,GAAG,gBAAgB;IAWvE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;CAQzE;AAKD,qBAAa,cAAc;IAIzB,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB;IAgBzD,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB;IAUvD,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB;IAsBpD,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB;IAgBvD,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB;IAU7D,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB;IAOtD,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB;CAU3D"}
|