UNPKG

n8n

Version:

n8n Workflow Automation Tool

71 lines (70 loc) 3.95 kB
import { LicenseState } from '@n8n/backend-common'; 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 { TagImporter } from '../entities/tag/tag-importer'; import type { TagImportPlan, TagImportRequest } from '../entities/tag/tag.types'; import { VariableImporter } from '../entities/variable/variable-importer'; import type { VariableApplyResult, VariableImportPlan, VariableImportRequest } from '../entities/variable/variable.types'; import { type MissingNodeTypeRequirement } from '../entities/workflow/missing-node-type-mode'; import type { PersistedWorkflowOutcome, PreparedWorkflow, WorkflowImportPlan } from '../entities/workflow/workflow-import.types'; import { WorkflowImporter } from '../entities/workflow/workflow-importer'; import { WorkflowPublisher } from '../entities/workflow/workflow-publisher'; import type { BlockingIssue, ImportBindingMap, ImportContext, ImportedFolderSummary, ImportFolderProperties, ImportWorkflowProperties, PackageImportBindings } from '../n8n-packages.types'; import type { PackageWorkflowRequirement } from '../spec/requirements.schema'; export interface ImportOrchestrationInput { context: ImportContext; folders: PreparedFolder[]; workflows: PreparedWorkflow[]; credentialRequest: CredentialBindingRequest; dataTableRequest: DataTableImportRequest; variableRequest: VariableImportRequest; tagRequest: TagImportRequest; options: ImportWorkflowProperties & ImportFolderProperties; projectPendingCreation?: boolean; subWorkflowRequirements?: PackageWorkflowRequirement[]; } export interface ImportContentResult { workflowOutcomes: PersistedWorkflowOutcome[]; folderSummaries: ImportedFolderSummary[]; bindings: PackageImportBindings; credentialResult: CredentialApplyResult; dataTablePlan: DataTableImportPlan; variablePlan: VariableImportPlan; variableResult: VariableApplyResult; tagPlan: TagImportPlan; } export interface ImportPlan { input: ImportOrchestrationInput; folderContext: FolderImportContext; credentialPlan: CredentialResolution; workflowPlan: WorkflowImportPlan; folderPlan: FolderImportPlan; dataTablePlan: DataTableImportPlan; variablePlan: VariableImportPlan; tagPlan: TagImportPlan; missingNodeTypes: MissingNodeTypeRequirement[]; blockingIssues: BlockingIssue[]; } export declare class ImportOrchestrator { private readonly credentialImporter; private readonly dataTableImporter; private readonly variableImporter; private readonly tagImporter; private readonly folderImporter; private readonly workflowImporter; private readonly workflowPublisher; private readonly nodeTypes; private readonly licenseState; constructor(credentialImporter: CredentialImporter, dataTableImporter: DataTableImporter, variableImporter: VariableImporter, tagImporter: TagImporter, folderImporter: FolderImporter, workflowImporter: WorkflowImporter, workflowPublisher: WorkflowPublisher, nodeTypes: NodeTypes, licenseState: LicenseState); assertNotBlocked(plans: ImportPlan[], options: { apiKeyScopes: string[] | undefined; }): Promise<void>; plan(input: ImportOrchestrationInput): Promise<ImportPlan>; apply(plan: ImportPlan, seedWorkflowBindings?: ImportBindingMap): Promise<ImportContentResult>; private collectBlockingIssues; }