n8n
Version:
n8n Workflow Automation Tool
38 lines (37 loc) • 1.67 kB
TypeScript
import type { Folder, Project, User, WorkflowEntity } from '@n8n/db';
import { SharedWorkflowRepository } from '@n8n/db';
import { FolderFinderService } from '../../../../services/folder-finder.service';
import { ProjectService } from '../../../../services/project.service.ee';
import { WorkflowFinderService } from '../../../../workflows/workflow-finder.service';
import type { WorkflowSubWorkflowRequirement } from './workflow.types';
export type WorkflowExportOrigin = 'top-level' | 'folder' | 'project';
export interface AutoIncludedWorkflow {
workflow: WorkflowEntity;
placement: WorkflowExportOrigin;
ownerProject: Project;
folderChain: Folder[];
}
export interface AutoIncludedWorkflowResolution {
autoIncludedWorkflows: AutoIncludedWorkflow[];
}
export declare class AutoIncludedWorkflowResolver {
private readonly workflowFinder;
private readonly folderFinder;
private readonly projectService;
private readonly sharedWorkflowRepository;
constructor(workflowFinder: WorkflowFinderService, folderFinder: FolderFinderService, projectService: ProjectService, sharedWorkflowRepository: SharedWorkflowRepository);
resolve(options: {
user: User;
requirements: WorkflowSubWorkflowRequirement[];
topLevelWorkflowIds: string[];
folderWorkflowIds: string[];
projectWorkflowIds: string[];
}): Promise<AutoIncludedWorkflowResolution>;
private seedExportedOrigins;
private propagateOrigins;
private buildAutoIncludedWorkflows;
private choosePlacement;
private findExportableWorkflows;
private findAccessibleFolderChains;
private findAccessibleProjects;
}