n8n
Version:
n8n Workflow Automation Tool
58 lines (57 loc) • 3.25 kB
TypeScript
import { NodeTypes } from '../../../node-types';
import { CredentialImporter } from '../entities/credential/credential-importer';
import type { CredentialApplyResult, CredentialBindingRequest, CredentialResolution } from '../entities/credential/credential.types';
import { DataTableImporter } from '../entities/data-table/data-table-importer';
import type { DataTableImportPlan, DataTableImportRequest } from '../entities/data-table/data-table.types';
import type { FolderImportContext, FolderImportPlan, PreparedFolder } from '../entities/folder/folder-import.types';
import { FolderImporter } from '../entities/folder/folder-importer';
import { VariableImporter } from '../entities/variable/variable-importer';
import type { VariableImportPlan, VariableImportRequest } from '../entities/variable/variable.types';
import { type MissingNodeTypeRequirement } from '../entities/workflow/missing-node-type-mode';
import type { PreparedWorkflow, WorkflowImportOutcome, WorkflowImportPlan } from '../entities/workflow/workflow-import.types';
import { WorkflowImporter } from '../entities/workflow/workflow-importer';
import { WorkflowPublisher } from '../entities/workflow/workflow-publisher';
import type { BlockingIssue, ImportContext, ImportedFolderSummary, ImportFolderProperties, ImportWorkflowProperties, PackageImportBindings } from '../n8n-packages.types';
export interface ImportOrchestrationInput {
context: ImportContext;
folders: PreparedFolder[];
workflows: PreparedWorkflow[];
credentialRequest: CredentialBindingRequest;
dataTableRequest: DataTableImportRequest;
variableRequest: VariableImportRequest;
options: ImportWorkflowProperties & ImportFolderProperties;
projectPendingCreation?: boolean;
}
export interface ImportOrchestrationResult {
workflowOutcomes: WorkflowImportOutcome[];
folderSummaries: ImportedFolderSummary[];
bindings: PackageImportBindings;
credentialResult: CredentialApplyResult;
dataTablePlan: DataTableImportPlan;
variablePlan: VariableImportPlan;
}
export interface ImportPlan {
input: ImportOrchestrationInput;
folderContext: FolderImportContext;
credentialPlan: CredentialResolution;
workflowPlan: WorkflowImportPlan;
folderPlan: FolderImportPlan;
dataTablePlan: DataTableImportPlan;
variablePlan: VariableImportPlan;
missingNodeTypes: MissingNodeTypeRequirement[];
blockingIssues: BlockingIssue[];
}
export declare class ImportOrchestrator {
private readonly credentialImporter;
private readonly dataTableImporter;
private readonly variableImporter;
private readonly folderImporter;
private readonly workflowImporter;
private readonly workflowPublisher;
private readonly nodeTypes;
constructor(credentialImporter: CredentialImporter, dataTableImporter: DataTableImporter, variableImporter: VariableImporter, folderImporter: FolderImporter, workflowImporter: WorkflowImporter, workflowPublisher: WorkflowPublisher, nodeTypes: NodeTypes);
import(input: ImportOrchestrationInput): Promise<ImportOrchestrationResult>;
plan(input: ImportOrchestrationInput): Promise<ImportPlan>;
apply(plan: ImportPlan): Promise<ImportOrchestrationResult>;
private collectBlockingIssues;
}