Files
n8n-mcp/dist/services/workflow-validator.d.ts
2025-12-05 12:01:31 +01:00

104 lines
3.0 KiB
TypeScript

import { NodeRepository } from '../database/node-repository';
import { EnhancedConfigValidator } from './enhanced-config-validator';
interface WorkflowNode {
id: string;
name: string;
type: string;
position: [number, number];
parameters: any;
credentials?: any;
disabled?: boolean;
notes?: string;
notesInFlow?: boolean;
typeVersion?: number;
continueOnFail?: boolean;
onError?: 'continueRegularOutput' | 'continueErrorOutput' | 'stopWorkflow';
retryOnFail?: boolean;
maxTries?: number;
waitBetweenTries?: number;
alwaysOutputData?: boolean;
executeOnce?: boolean;
}
interface WorkflowConnection {
[sourceNode: string]: {
main?: Array<Array<{
node: string;
type: string;
index: number;
}>>;
error?: Array<Array<{
node: string;
type: string;
index: number;
}>>;
ai_tool?: Array<Array<{
node: string;
type: string;
index: number;
}>>;
};
}
interface WorkflowJson {
name?: string;
nodes: WorkflowNode[];
connections: WorkflowConnection;
settings?: any;
staticData?: any;
pinData?: any;
meta?: any;
}
interface ValidationIssue {
type: 'error' | 'warning';
nodeId?: string;
nodeName?: string;
message: string;
details?: any;
}
export interface WorkflowValidationResult {
valid: boolean;
errors: ValidationIssue[];
warnings: ValidationIssue[];
statistics: {
totalNodes: number;
enabledNodes: number;
triggerNodes: number;
validConnections: number;
invalidConnections: number;
expressionsValidated: number;
};
suggestions: string[];
}
export declare class WorkflowValidator {
private nodeRepository;
private nodeValidator;
private currentWorkflow;
private similarityService;
constructor(nodeRepository: NodeRepository, nodeValidator: typeof EnhancedConfigValidator);
validateWorkflow(workflow: WorkflowJson, options?: {
validateNodes?: boolean;
validateConnections?: boolean;
validateExpressions?: boolean;
profile?: 'minimal' | 'runtime' | 'ai-friendly' | 'strict';
}): Promise<WorkflowValidationResult>;
private validateWorkflowStructure;
private validateAllNodes;
private validateConnections;
private validateConnectionOutputs;
private validateErrorOutputConfiguration;
private validateAIToolConnection;
private hasCycle;
private validateExpressions;
private countExpressionsInObject;
private nodeHasInput;
private checkWorkflowPatterns;
private getLongestLinearChain;
private generateSuggestions;
private checkNodeErrorHandling;
private checkWebhookErrorHandling;
private generateErrorHandlingSuggestions;
private validateSplitInBatchesConnection;
private checkForLoopBack;
private addErrorRecoverySuggestions;
}
export {};
//# sourceMappingURL=workflow-validator.d.ts.map