n8n
Version:
n8n Workflow Automation Tool
67 lines • 2.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toPackageSummary = toPackageSummary;
exports.toImportedWorkflowSummaries = toImportedWorkflowSummaries;
exports.buildImportResult = buildImportResult;
exports.assertPackageImportApiKeyScopes = assertPackageImportApiKeyScopes;
exports.identifyRequirements = identifyRequirements;
exports.scopeCredentialBindingsToRequirements = scopeCredentialBindingsToRequirements;
const forbidden_error_1 = require("../../../errors/response-errors/forbidden.error");
const n8n_packages_types_1 = require("../n8n-packages.types");
function toPackageSummary(manifest) {
return {
sourceN8nVersion: manifest.sourceN8nVersion,
sourceId: manifest.sourceId,
exportedAt: manifest.exportedAt,
};
}
function toImportedWorkflowSummaries(outcomes, projectId) {
return outcomes.map(({ workflow, sourceWorkflowId, status, publishing }) => ({
sourceWorkflowId,
localId: workflow.id,
name: workflow.name,
projectId,
parentFolderId: workflow.parentFolder?.id ?? null,
activeVersionId: workflow.activeVersionId ?? null,
publishing,
status,
}));
}
function buildImportResult(input) {
return {
package: input.package,
workflows: input.workflows,
folders: input.folders,
projects: input.projects,
bindings: (0, n8n_packages_types_1.serializeBindings)(input.bindings),
credentials: input.credentials,
variables: input.variables,
};
}
function assertPackageImportApiKeyScopes(apiKeyScopes, required) {
if (apiKeyScopes === undefined)
return;
for (const scope of required) {
if (!apiKeyScopes.includes(scope)) {
throw new forbidden_error_1.ForbiddenError('Forbidden');
}
}
}
function identifyRequirements(requirements, workflows) {
if (!requirements)
return undefined;
const importedIds = new Set(workflows.map((workflow) => workflow.sourceWorkflowId));
return requirements
.map((requirement) => ({
...requirement,
usedByWorkflows: requirement.usedByWorkflows.filter((id) => importedIds.has(id)),
}))
.filter((requirement) => requirement.usedByWorkflows.length > 0);
}
function scopeCredentialBindingsToRequirements(bindings, requirements) {
if (!bindings)
return undefined;
const requirementIds = new Set((requirements ?? []).map((requirement) => requirement.id));
return new Map([...bindings].filter(([sourceId]) => requirementIds.has(sourceId)));
}
//# sourceMappingURL=import-result.js.map