{"version":3,"sources":["../src/index.ts","../src/core/renderer.ts","../src/core/workbook.ts"],"sourcesContent":["export * from \"./core/index.js\";\n","import type {\n  SpreadsheetFormat,\n  SpreadsheetRenderDriver,\n  SpreadsheetWorkbook,\n} from \"./types.js\";\n\nfunction escapeCsvCell(value: string): string {\n  if (/[\",\\n\\r]/.test(value)) {\n    return `\"${value.replaceAll('\"', '\"\"')}\"`;\n  }\n  return value;\n}\n\nfunction workbookToCsv(workbook: SpreadsheetWorkbook): string {\n  const sheet = workbook.sheets[0];\n  if (!sheet) return \"\";\n  const header = sheet.columns.map((c) => escapeCsvCell(c.header)).join(\",\");\n  const body = sheet.rows.map((row) =>\n    sheet.columns.map((c) => escapeCsvCell(row[c.key] ?? \"\")).join(\",\"),\n  );\n  return [header, ...body].join(\"\\n\");\n}\n\nexport function createSpreadsheetRenderer(driver: SpreadsheetRenderDriver) {\n  return {\n    renderWorkbook(workbook: SpreadsheetWorkbook, format: SpreadsheetFormat) {\n      return driver.renderWorkbook(workbook, format);\n    },\n  };\n}\n\nexport function createStubSpreadsheetDriver(): SpreadsheetRenderDriver {\n  return {\n    async renderWorkbook(workbook, format) {\n      if (format === \"csv\") {\n        const text = workbookToCsv(workbook);\n        return {\n          bytes: new TextEncoder().encode(text),\n          contentType: \"text/csv; charset=utf-8\",\n        };\n      }\n      const marker = `PK-stub-xlsx:${workbook.sheets.length}`;\n      return {\n        bytes: new TextEncoder().encode(marker),\n        contentType:\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n      };\n    },\n  };\n}\n","import type { SpreadsheetColumn, SpreadsheetSheet, SpreadsheetWorkbook } from \"./types.js\";\n\nexport function workbookFromRows(\n  sheetName: string,\n  columns: SpreadsheetColumn[],\n  rows: string[][],\n): SpreadsheetWorkbook {\n  const sheetRows = rows.map((cells) => {\n    const record: Record<string, string> = {};\n    columns.forEach((col, index) => {\n      record[col.key] = cells[index] ?? \"\";\n    });\n    return record;\n  });\n  const sheet: SpreadsheetSheet = { name: sheetName, columns, rows: sheetRows };\n  return { sheets: [sheet] };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACMA,SAAS,cAAc,OAAuB;AAC5C,MAAI,WAAW,KAAK,KAAK,GAAG;AAC1B,WAAO,IAAI,MAAM,WAAW,KAAK,IAAI,CAAC;AAAA,EACxC;AACA,SAAO;AACT;AAEA,SAAS,cAAc,UAAuC;AAC5D,QAAM,QAAQ,SAAS,OAAO,CAAC;AAC/B,MAAI,CAAC,MAAO,QAAO;AACnB,QAAM,SAAS,MAAM,QAAQ,IAAI,CAAC,MAAM,cAAc,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG;AACzE,QAAM,OAAO,MAAM,KAAK;AAAA,IAAI,CAAC,QAC3B,MAAM,QAAQ,IAAI,CAAC,MAAM,cAAc,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG;AAAA,EACpE;AACA,SAAO,CAAC,QAAQ,GAAG,IAAI,EAAE,KAAK,IAAI;AACpC;AAEO,SAAS,0BAA0B,QAAiC;AACzE,SAAO;AAAA,IACL,eAAe,UAA+B,QAA2B;AACvE,aAAO,OAAO,eAAe,UAAU,MAAM;AAAA,IAC/C;AAAA,EACF;AACF;AAEO,SAAS,8BAAuD;AACrE,SAAO;AAAA,IACL,MAAM,eAAe,UAAU,QAAQ;AACrC,UAAI,WAAW,OAAO;AACpB,cAAM,OAAO,cAAc,QAAQ;AACnC,eAAO;AAAA,UACL,OAAO,IAAI,YAAY,EAAE,OAAO,IAAI;AAAA,UACpC,aAAa;AAAA,QACf;AAAA,MACF;AACA,YAAM,SAAS,gBAAgB,SAAS,OAAO,MAAM;AACrD,aAAO;AAAA,QACL,OAAO,IAAI,YAAY,EAAE,OAAO,MAAM;AAAA,QACtC,aACE;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AACF;;;AC/CO,SAAS,iBACd,WACA,SACA,MACqB;AACrB,QAAM,YAAY,KAAK,IAAI,CAAC,UAAU;AACpC,UAAM,SAAiC,CAAC;AACxC,YAAQ,QAAQ,CAAC,KAAK,UAAU;AAC9B,aAAO,IAAI,GAAG,IAAI,MAAM,KAAK,KAAK;AAAA,IACpC,CAAC;AACD,WAAO;AAAA,EACT,CAAC;AACD,QAAM,QAA0B,EAAE,MAAM,WAAW,SAAS,MAAM,UAAU;AAC5E,SAAO,EAAE,QAAQ,CAAC,KAAK,EAAE;AAC3B;","names":[]}