UNPKG

@n8n-plus/n8n-plus

Version:

n8n Workflow Automation Tool (plus edition)

42 lines 2.08 kB
"use strict"; const api_types_1 = require("@n8n/api-types"); const config_1 = require("@n8n/config"); const constants_1 = require("@n8n/constants"); const di_1 = require("@n8n/di"); const bad_request_error_1 = require("../../../../errors/response-errors/bad-request.error"); const not_found_error_1 = require("../../../../errors/response-errors/not-found.error"); const n8n_packages_service_1 = require("../../../../modules/n8n-packages/n8n-packages.service"); const global_middleware_1 = require("../../shared/middlewares/global.middleware"); const n8nPackagesHandlers = { exportWorkflows: [ (0, global_middleware_1.isLicensed)(constants_1.LICENSE_FEATURES.N8N_PACKAGES), (0, global_middleware_1.publicApiScope)('workflow:export'), async (req, res) => { if (!di_1.Container.get(config_1.GlobalConfig).publicApi.packagesEnabled) { throw new not_found_error_1.NotFoundError('Not Found'); } const payload = api_types_1.ExportWorkflowsRequestDto.safeParse(req.body); if (!payload.success) { throw new bad_request_error_1.BadRequestError(payload.error.errors.map(({ message }) => message).join('; ')); } const stream = await di_1.Container.get(n8n_packages_service_1.N8nPackagesService).exportWorkflows({ user: req.user, workflowIds: payload.data.workflowIds, }); res.setHeader('Content-Type', 'application/gzip'); res.setHeader('Content-Disposition', 'attachment; filename="export.n8np"'); return await new Promise((resolve, reject) => { stream.on('error', reject); res.on('finish', () => resolve(res)); res.on('close', () => { if (!res.writableFinished) stream.destroy(); resolve(res); }); stream.pipe(res); }); }, ], }; module.exports = n8nPackagesHandlers; //# sourceMappingURL=n8n-packages.handler.js.map