import os from "os"; import changeCase from "change-case"; import { XmlEntities } from "html-entities"; const log = console.log.bind(console); const DELIMITER = ":"; const htmlEntities = new XmlEntities(); const stripHTMLEntities = (e) => { return htmlEntities.decode(e); }; const getCommonDelimiterForm = (e, t) => { const i = new RegExp(t + "\\S+", "g"); const n = new RegExp(t + " ", "g"); const r = e.match(i) || []; const a = e.match(n) || []; return r.length > a.length ? t : t + " "; }; const parseRawData = (e) => { const t = {}; let data = stripHTMLEntities(e); data = data.replace(/:\s*\r\n/g, ": "); const i = data.split("\n"); const n = getCommonDelimiterForm(data, ":"); i.forEach((line) => { if ((line = line.trim()) && line.includes(n)) { const parts = line.split(":"); if (parts.length >= 2) { const key = changeCase.camelCase(parts[0]); const value = parts.splice(1).join(":").trim(); if (key in t) { t[key] = `${t[key]} ${value}`; } else { t[key] = value; } } } }); return t; }; export default parseRawData;