import Papa from "papaparse"; import * as XLSX from "xlsx"; export function parseCSV(content: string): { data: Record[]; headers: string[] } { const result = Papa.parse>(content, { header: true, skipEmptyLines: true, transformHeader: (h) => h.trim(), }); return { data: result.data, headers: result.meta.fields || [], }; } export function detectDomainColumn(headers: string[]): string | null { const candidates = ["domain", "website", "url", "web", "site", "homepage", "company_domain", "company_url"]; for (const candidate of candidates) { const found = headers.find(h => h.toLowerCase().includes(candidate)); if (found) return found; } return null; } export interface ExportRow { company_name?: string; domain?: string; contact_name?: string; contact_title?: string; email?: string; confidence_score?: number | string; source_tab?: string; job_id?: string; found_at?: string; } export function exportToCSV(rows: ExportRow[], filename: string): void { const csv = Papa.unparse(rows); const blob = new Blob([csv], { type: "text/csv;charset=utf-8;" }); const url = URL.createObjectURL(blob); const link = document.createElement("a"); link.href = url; link.download = filename; link.click(); URL.revokeObjectURL(url); } export function exportToExcel(rows: ExportRow[], filename: string): void { const ws = XLSX.utils.json_to_sheet(rows); const wb = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(wb, ws, "Leads"); XLSX.writeFile(wb, filename); }