UNPKG

n8n

Version:

n8n Workflow Automation Tool

52 lines 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildIpRangeList = buildIpRangeList; const n8n_workflow_1 = require("n8n-workflow"); const node_net_1 = require("node:net"); const zod_1 = require("zod"); function buildIpRangeList(cidrRanges) { const list = new node_net_1.BlockList(); const issues = []; for (const rawEntry of cidrRanges) { const entry = rawEntry.trim(); if (entry.length === 0) { continue; } try { const cidr = parseCidr(entry); if (!cidr) { issues.push({ entry, error: 'Invalid CIDR notation' }); continue; } list.addSubnet(cidr.network, cidr.prefix, cidr.family); } catch (e) { const error = (0, n8n_workflow_1.ensureError)(e); issues.push({ entry, error: `Failed to add IP range: ${error.message}` }); } } return { list, issues }; } function parseCidr(entry) { const result = cidrSchema.safeParse(entry); if (!result.success) { return null; } const [network, prefixStr] = result.data.split('/'); const family = validateIp(network); if (family === null) { return null; } const prefix = Number.parseInt(prefixStr, 10); return { network, prefix, family }; } const cidrSchema = zod_1.z.string().cidr(); function validateIp(ip) { const version = (0, node_net_1.isIP)(ip); if (version === 4) return 'ipv4'; if (version === 6) return 'ipv6'; return null; } //# sourceMappingURL=ip-range-builder.js.map