@remyxjs/core 1.0.0-beta → 1.0.4-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/dist/convertCsv-DRxJY6iq.js +2 -0
  2. package/dist/{convertCsv-CKzZjzLJ.js.map → convertCsv-DRxJY6iq.js.map} +1 -1
  3. package/dist/{convertCsv-B8RVtdcs.cjs → convertCsv-_-qbSNir.cjs} +2 -2
  4. package/dist/{convertCsv-B8RVtdcs.cjs.map → convertCsv-_-qbSNir.cjs.map} +1 -1
  5. package/dist/convertDocx-D-V0dfFd.js +2 -0
  6. package/dist/{convertDocx-Dmx88twM.js.map → convertDocx-D-V0dfFd.js.map} +1 -1
  7. package/dist/{convertDocx-4q89XLLv.cjs → convertDocx-Dpd5BG-G.cjs} +2 -2
  8. package/dist/{convertDocx-4q89XLLv.cjs.map → convertDocx-Dpd5BG-G.cjs.map} +1 -1
  9. package/dist/{convertHtml-DbHrdrD3.cjs → convertHtml-DmfodLsz.cjs} +2 -2
  10. package/dist/{convertHtml-DbHrdrD3.cjs.map → convertHtml-DmfodLsz.cjs.map} +1 -1
  11. package/dist/convertHtml-gycStuZn.js +2 -0
  12. package/dist/{convertHtml-CtYVhiTh.js.map → convertHtml-gycStuZn.js.map} +1 -1
  13. package/dist/convertMarkdown-1BmsjWXP.js +2 -0
  14. package/dist/{convertMarkdown-Di239Gtn.js.map → convertMarkdown-1BmsjWXP.js.map} +1 -1
  15. package/dist/{convertMarkdown-eJ9Nkoid.cjs → convertMarkdown-CelFJJT9.cjs} +2 -2
  16. package/dist/{convertMarkdown-eJ9Nkoid.cjs.map → convertMarkdown-CelFJJT9.cjs.map} +1 -1
  17. package/dist/convertPdf-D4SNUyBk.js +2 -0
  18. package/dist/{convertPdf-CFA1eNNH.js.map → convertPdf-D4SNUyBk.js.map} +1 -1
  19. package/dist/{convertPdf-CSLmTrB8.cjs → convertPdf-DSZy--TD.cjs} +2 -2
  20. package/dist/{convertPdf-CSLmTrB8.cjs.map → convertPdf-DSZy--TD.cjs.map} +1 -1
  21. package/dist/{convertRtf-BfiBLMig.cjs → convertRtf-DK-4c2fe.cjs} +2 -2
  22. package/dist/{convertRtf-BfiBLMig.cjs.map → convertRtf-DK-4c2fe.cjs.map} +1 -1
  23. package/dist/convertRtf-JWu514-h.js +2 -0
  24. package/dist/{convertRtf-08CoScGD.js.map → convertRtf-JWu514-h.js.map} +1 -1
  25. package/dist/{convertText-BpgzHRuh.cjs → convertText-BHUD1tLm.cjs} +2 -2
  26. package/dist/{convertText-BpgzHRuh.cjs.map → convertText-BHUD1tLm.cjs.map} +1 -1
  27. package/dist/convertText-DCGItleK.js +2 -0
  28. package/dist/{convertText-sa7PxKTe.js.map → convertText-DCGItleK.js.map} +1 -1
  29. package/dist/index-C3_cH6Zy.cjs +2 -0
  30. package/dist/index-C3_cH6Zy.cjs.map +1 -0
  31. package/dist/index-Cv62E14a.js +2 -0
  32. package/dist/index-Cv62E14a.js.map +1 -0
  33. package/dist/remyx-core.cjs +1 -1
  34. package/dist/remyx-core.css +1 -1
  35. package/dist/remyx-core.js +1 -1
  36. package/package.json +1 -1
  37. package/dist/convertCsv-CKzZjzLJ.js +0 -2
  38. package/dist/convertDocx-Dmx88twM.js +0 -2
  39. package/dist/convertHtml-CtYVhiTh.js +0 -2
  40. package/dist/convertMarkdown-Di239Gtn.js +0 -2
  41. package/dist/convertPdf-CFA1eNNH.js +0 -2
  42. package/dist/convertRtf-08CoScGD.js +0 -2
  43. package/dist/convertText-sa7PxKTe.js +0 -2
  44. package/dist/index-4syk9eEO.js +0 -2
  45. package/dist/index-4syk9eEO.js.map +0 -1
  46. package/dist/index-B25zSs0W.js +0 -2
  47. package/dist/index-B25zSs0W.js.map +0 -1
  48. package/dist/index-B7VT6ZLa.cjs +0 -2
  49. package/dist/index-B7VT6ZLa.cjs.map +0 -1
  50. package/dist/index-BCpytFKJ.js +0 -2
  51. package/dist/index-BCpytFKJ.js.map +0 -1
  52. package/dist/index-BNKANY5i.cjs +0 -2
  53. package/dist/index-BNKANY5i.cjs.map +0 -1
  54. package/dist/index-B_g_579T.cjs +0 -2
  55. package/dist/index-B_g_579T.cjs.map +0 -1
  56. package/dist/index-BvwyeoMb.js +0 -3
  57. package/dist/index-BvwyeoMb.js.map +0 -1
  58. package/dist/index-Bw7mlUQo.js +0 -2
  59. package/dist/index-Bw7mlUQo.js.map +0 -1
  60. package/dist/index-Byatzd-A.js +0 -2
  61. package/dist/index-Byatzd-A.js.map +0 -1
  62. package/dist/index-C0z9eZLm.cjs +0 -2
  63. package/dist/index-C0z9eZLm.cjs.map +0 -1
  64. package/dist/index-C88XPqjX.js +0 -2
  65. package/dist/index-C88XPqjX.js.map +0 -1
  66. package/dist/index-CI6FPF49.cjs +0 -2
  67. package/dist/index-CI6FPF49.cjs.map +0 -1
  68. package/dist/index-CLZF5_GB.cjs +0 -2
  69. package/dist/index-CLZF5_GB.cjs.map +0 -1
  70. package/dist/index-CXSwYlG4.cjs +0 -2
  71. package/dist/index-CXSwYlG4.cjs.map +0 -1
  72. package/dist/index-Ch9gotLk.js +0 -2
  73. package/dist/index-Ch9gotLk.js.map +0 -1
  74. package/dist/index-CifDpN1Y.js +0 -2
  75. package/dist/index-CifDpN1Y.js.map +0 -1
  76. package/dist/index-D5o8VpWJ.cjs +0 -2
  77. package/dist/index-D5o8VpWJ.cjs.map +0 -1
  78. package/dist/index-DKT1bABL.js +0 -2
  79. package/dist/index-DKT1bABL.js.map +0 -1
  80. package/dist/index-DWcn72PW.js +0 -2
  81. package/dist/index-DWcn72PW.js.map +0 -1
  82. package/dist/index-DjCGzPEv.cjs +0 -2
  83. package/dist/index-DjCGzPEv.cjs.map +0 -1
  84. package/dist/index-Dq0Jr1Ae.js +0 -2
  85. package/dist/index-Dq0Jr1Ae.js.map +0 -1
  86. package/dist/index-Dw0MVypb.cjs +0 -2
  87. package/dist/index-Dw0MVypb.cjs.map +0 -1
  88. package/dist/index-FEo3LShh.cjs +0 -2
  89. package/dist/index-FEo3LShh.cjs.map +0 -1
  90. package/dist/index-O1hzAUzi.cjs +0 -2
  91. package/dist/index-O1hzAUzi.cjs.map +0 -1
  92. package/dist/index-T1ZyLzeF.cjs +0 -2
  93. package/dist/index-T1ZyLzeF.cjs.map +0 -1
  94. package/dist/index-iRikoCdK.cjs +0 -2
  95. package/dist/index-iRikoCdK.cjs.map +0 -1
  96. package/dist/index-l6Yddj6x.js +0 -2
  97. package/dist/index-l6Yddj6x.js.map +0 -1
  98. package/dist/index-rD8LZENp.js +0 -2
  99. package/dist/index-rD8LZENp.js.map +0 -1
  100. package/dist/themes/callouts.css +0 -79
  101. package/dist/themes/collaboration.css +0 -117
  102. package/dist/themes/comments.css +0 -198
  103. package/dist/themes/dark.css +0 -109
  104. package/dist/themes/forest.css +0 -109
  105. package/dist/themes/light.css +0 -4
  106. package/dist/themes/links.css +0 -115
  107. package/dist/themes/math-toc-analytics.css +0 -129
  108. package/dist/themes/ocean.css +0 -109
  109. package/dist/themes/rose.css +0 -109
  110. package/dist/themes/spellcheck.css +0 -173
  111. package/dist/themes/sunset.css +0 -109
  112. package/dist/themes/templates.css +0 -87
@@ -0,0 +1,2 @@
1
+ import{a as t,g as n,e}from"./index-Cv62E14a.js";async function r(r){const o=function(t,n=","){const e=[];let r=[],o="",s=!1;for(let a=0;a<t.length;a++){const h=t[a];s?'"'===h?'"'===t[a+1]?(o+='"',a++):s=!1:o+=h:'"'===h?s=!0:h===n?(r.push(o.trim()),o=""):"\n"===h||"\r"===h?("\r"===h&&"\n"===t[a+1]&&a++,r.push(o.trim()),r.some((t=>""!==t))&&e.push(r),r=[],o=""):o+=h}return r.push(o.trim()),r.some((t=>""!==t))&&e.push(r),e}(await t(r),".tsv"===n(r.name||"")?"\t":",");if(0===o.length)return"<p></p>";const s=o[0],a=o.slice(1);let h="<table>\n<thead>\n<tr>";for(const t of s)h+=`<th>${e(t)}</th>`;h+="</tr>\n</thead>\n<tbody>\n";for(const t of a){h+="<tr>";for(let n=0;n<s.length;n++)h+=`<td>${e(t[n]||"")}</td>`;h+="</tr>\n"}return h+="</tbody>\n</table>",h}export{r as default};
2
+ //# sourceMappingURL=convertCsv-DRxJY6iq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertCsv-CKzZjzLJ.js","sources":["../src/utils/documentConverter/convertCsv.js"],"sourcesContent":["import { readAsText, escapeHtml, getExtension } from './shared.js'\n\n/**\n * Parse CSV text into rows, handling quoted fields.\n */\nfunction parseCsvRows(text, delimiter = ',') {\n const rows = []\n let current = []\n let field = ''\n let inQuotes = false\n\n for (let i = 0; i < text.length; i++) {\n const ch = text[i]\n\n if (inQuotes) {\n if (ch === '\"') {\n if (text[i + 1] === '\"') {\n field += '\"'\n i++ // skip escaped quote\n } else {\n inQuotes = false\n }\n } else {\n field += ch\n }\n } else if (ch === '\"') {\n inQuotes = true\n } else if (ch === delimiter) {\n current.push(field.trim())\n field = ''\n } else if (ch === '\\n' || ch === '\\r') {\n if (ch === '\\r' && text[i + 1] === '\\n') i++\n current.push(field.trim())\n if (current.some((c) => c !== '')) {\n rows.push(current)\n }\n current = []\n field = ''\n } else {\n field += ch\n }\n }\n\n // Last field/row\n current.push(field.trim())\n if (current.some((c) => c !== '')) {\n rows.push(current)\n }\n\n return rows\n}\n\n/**\n * Convert a CSV/TSV file to an HTML table.\n */\nexport default async function convertCsv(file) {\n const text = await readAsText(file)\n const ext = getExtension(file.name || '')\n const delimiter = ext === '.tsv' ? '\\t' : ','\n\n const rows = parseCsvRows(text, delimiter)\n if (rows.length === 0) return '<p></p>'\n\n const headerRow = rows[0]\n const bodyRows = rows.slice(1)\n\n let html = '<table>\\n<thead>\\n<tr>'\n for (const cell of headerRow) {\n html += `<th>${escapeHtml(cell)}</th>`\n }\n html += '</tr>\\n</thead>\\n<tbody>\\n'\n\n for (const row of bodyRows) {\n html += '<tr>'\n for (let i = 0; i < headerRow.length; i++) {\n html += `<td>${escapeHtml(row[i] || '')}</td>`\n }\n html += '</tr>\\n'\n }\n\n html += '</tbody>\\n</table>'\n return html\n}\n"],"names":["async","convertCsv","file","rows","text","delimiter","current","field","inQuotes","i","length","ch","push","trim","some","c","parseCsvRows","readAsText","getExtension","name","headerRow","bodyRows","slice","html","cell","escapeHtml","row"],"mappings":"yDAuDeA,eAAeC,EAAWC,GACvC,MAIMC,EAvDR,SAAsBC,EAAMC,EAAY,KACtC,MAAMF,EAAO,GACb,IAAIG,EAAU,GACVC,EAAQ,GACRC,GAAW,EAEf,IAAA,IAASC,EAAI,EAAGA,EAAIL,EAAKM,OAAQD,IAAK,CACpC,MAAME,EAAKP,EAAKK,GAEZD,EACS,MAAPG,EACkB,MAAhBP,EAAKK,EAAI,IACXF,GAAS,IACTE,KAEAD,GAAW,EAGbD,GAASI,EAEK,MAAPA,EACTH,GAAW,EACFG,IAAON,GAChBC,EAAQM,KAAKL,EAAMM,QACnBN,EAAQ,IACQ,OAAPI,GAAsB,OAAPA,GACb,OAAPA,GAA+B,OAAhBP,EAAKK,EAAI,IAAaA,IACzCH,EAAQM,KAAKL,EAAMM,QACfP,EAAQQ,MAAMC,GAAY,KAANA,KACtBZ,EAAKS,KAAKN,GAEZA,EAAU,GACVC,EAAQ,IAERA,GAASI,CAEb,CAQA,OALAL,EAAQM,KAAKL,EAAMM,QACfP,EAAQQ,MAAMC,GAAY,KAANA,KACtBZ,EAAKS,KAAKN,GAGLH,CACT,CAUea,OAJMC,EAAWf,GAEJ,SADdgB,EAAahB,EAAKiB,MAAQ,IACH,KAAO,KAG1C,GAAoB,IAAhBhB,EAAKO,OAAc,MAAO,UAE9B,MAAMU,EAAYjB,EAAK,GACjBkB,EAAWlB,EAAKmB,MAAM,GAE5B,IAAIC,EAAO,yBACX,IAAA,MAAWC,KAAQJ,EACjBG,GAAQ,OAAOE,EAAWD,UAE5BD,GAAQ,6BAER,IAAA,MAAWG,KAAOL,EAAU,CAC1BE,GAAQ,OACR,IAAA,IAASd,EAAI,EAAGA,EAAIW,EAAUV,OAAQD,IACpCc,GAAQ,OAAOE,EAAWC,EAAIjB,IAAM,WAEtCc,GAAQ,SACV,CAGA,OADAA,GAAQ,qBACDA,CACT"}
1
+ {"version":3,"file":"convertCsv-DRxJY6iq.js","sources":["../src/utils/documentConverter/convertCsv.js"],"sourcesContent":["import { readAsText, escapeHtml, getExtension } from './shared.js'\n\n/**\n * Parse CSV text into rows, handling quoted fields.\n */\nfunction parseCsvRows(text, delimiter = ',') {\n const rows = []\n let current = []\n let field = ''\n let inQuotes = false\n\n for (let i = 0; i < text.length; i++) {\n const ch = text[i]\n\n if (inQuotes) {\n if (ch === '\"') {\n if (text[i + 1] === '\"') {\n field += '\"'\n i++ // skip escaped quote\n } else {\n inQuotes = false\n }\n } else {\n field += ch\n }\n } else if (ch === '\"') {\n inQuotes = true\n } else if (ch === delimiter) {\n current.push(field.trim())\n field = ''\n } else if (ch === '\\n' || ch === '\\r') {\n if (ch === '\\r' && text[i + 1] === '\\n') i++\n current.push(field.trim())\n if (current.some((c) => c !== '')) {\n rows.push(current)\n }\n current = []\n field = ''\n } else {\n field += ch\n }\n }\n\n // Last field/row\n current.push(field.trim())\n if (current.some((c) => c !== '')) {\n rows.push(current)\n }\n\n return rows\n}\n\n/**\n * Convert a CSV/TSV file to an HTML table.\n */\nexport default async function convertCsv(file) {\n const text = await readAsText(file)\n const ext = getExtension(file.name || '')\n const delimiter = ext === '.tsv' ? '\\t' : ','\n\n const rows = parseCsvRows(text, delimiter)\n if (rows.length === 0) return '<p></p>'\n\n const headerRow = rows[0]\n const bodyRows = rows.slice(1)\n\n let html = '<table>\\n<thead>\\n<tr>'\n for (const cell of headerRow) {\n html += `<th>${escapeHtml(cell)}</th>`\n }\n html += '</tr>\\n</thead>\\n<tbody>\\n'\n\n for (const row of bodyRows) {\n html += '<tr>'\n for (let i = 0; i < headerRow.length; i++) {\n html += `<td>${escapeHtml(row[i] || '')}</td>`\n }\n html += '</tr>\\n'\n }\n\n html += '</tbody>\\n</table>'\n return html\n}\n"],"names":["async","convertCsv","file","rows","text","delimiter","current","field","inQuotes","i","length","ch","push","trim","some","c","parseCsvRows","readAsText","getExtension","name","headerRow","bodyRows","slice","html","cell","escapeHtml","row"],"mappings":"iDAuDeA,eAAeC,EAAWC,GACvC,MAIMC,EAvDR,SAAsBC,EAAMC,EAAY,KACtC,MAAMF,EAAO,GACb,IAAIG,EAAU,GACVC,EAAQ,GACRC,GAAW,EAEf,IAAA,IAASC,EAAI,EAAGA,EAAIL,EAAKM,OAAQD,IAAK,CACpC,MAAME,EAAKP,EAAKK,GAEZD,EACS,MAAPG,EACkB,MAAhBP,EAAKK,EAAI,IACXF,GAAS,IACTE,KAEAD,GAAW,EAGbD,GAASI,EAEK,MAAPA,EACTH,GAAW,EACFG,IAAON,GAChBC,EAAQM,KAAKL,EAAMM,QACnBN,EAAQ,IACQ,OAAPI,GAAsB,OAAPA,GACb,OAAPA,GAA+B,OAAhBP,EAAKK,EAAI,IAAaA,IACzCH,EAAQM,KAAKL,EAAMM,QACfP,EAAQQ,MAAMC,GAAY,KAANA,KACtBZ,EAAKS,KAAKN,GAEZA,EAAU,GACVC,EAAQ,IAERA,GAASI,CAEb,CAQA,OALAL,EAAQM,KAAKL,EAAMM,QACfP,EAAQQ,MAAMC,GAAY,KAANA,KACtBZ,EAAKS,KAAKN,GAGLH,CACT,CAUea,OAJMC,EAAWf,GAEJ,SADdgB,EAAahB,EAAKiB,MAAQ,IACH,KAAO,KAG1C,GAAoB,IAAhBhB,EAAKO,OAAc,MAAO,UAE9B,MAAMU,EAAYjB,EAAK,GACjBkB,EAAWlB,EAAKmB,MAAM,GAE5B,IAAIC,EAAO,yBACX,IAAA,MAAWC,KAAQJ,EACjBG,GAAQ,OAAOE,EAAWD,UAE5BD,GAAQ,6BAER,IAAA,MAAWG,KAAOL,EAAU,CAC1BE,GAAQ,OACR,IAAA,IAASd,EAAI,EAAGA,EAAIW,EAAUV,OAAQD,IACpCc,GAAQ,OAAOE,EAAWC,EAAIjB,IAAM,WAEtCc,GAAQ,SACV,CAGA,OADAA,GAAQ,qBACDA,CACT"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index-iRikoCdK.cjs");exports.default=async function(e){const n=function(t,e=","){const n=[];let r=[],o="",s=!1;for(let c=0;c<t.length;c++){const l=t[c];s?'"'===l?'"'===t[c+1]?(o+='"',c++):s=!1:o+=l:'"'===l?s=!0:l===e?(r.push(o.trim()),o=""):"\n"===l||"\r"===l?("\r"===l&&"\n"===t[c+1]&&c++,r.push(o.trim()),r.some((t=>""!==t))&&n.push(r),r=[],o=""):o+=l}return r.push(o.trim()),r.some((t=>""!==t))&&n.push(r),n}(await t.readAsText(e),".tsv"===t.getExtension(e.name||"")?"\t":",");if(0===n.length)return"<p></p>";const r=n[0],o=n.slice(1);let s="<table>\n<thead>\n<tr>";for(const c of r)s+=`<th>${t.escapeHtml(c)}</th>`;s+="</tr>\n</thead>\n<tbody>\n";for(const c of o){s+="<tr>";for(let e=0;e<r.length;e++)s+=`<td>${t.escapeHtml(c[e]||"")}</td>`;s+="</tr>\n"}return s+="</tbody>\n</table>",s};
2
- //# sourceMappingURL=convertCsv-B8RVtdcs.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index-C3_cH6Zy.cjs");exports.default=async function(e){const n=function(t,e=","){const n=[];let r=[],o="",s=!1;for(let c=0;c<t.length;c++){const l=t[c];s?'"'===l?'"'===t[c+1]?(o+='"',c++):s=!1:o+=l:'"'===l?s=!0:l===e?(r.push(o.trim()),o=""):"\n"===l||"\r"===l?("\r"===l&&"\n"===t[c+1]&&c++,r.push(o.trim()),r.some((t=>""!==t))&&n.push(r),r=[],o=""):o+=l}return r.push(o.trim()),r.some((t=>""!==t))&&n.push(r),n}(await t.readAsText(e),".tsv"===t.getExtension(e.name||"")?"\t":",");if(0===n.length)return"<p></p>";const r=n[0],o=n.slice(1);let s="<table>\n<thead>\n<tr>";for(const c of r)s+=`<th>${t.escapeHtml(c)}</th>`;s+="</tr>\n</thead>\n<tbody>\n";for(const c of o){s+="<tr>";for(let e=0;e<r.length;e++)s+=`<td>${t.escapeHtml(c[e]||"")}</td>`;s+="</tr>\n"}return s+="</tbody>\n</table>",s};
2
+ //# sourceMappingURL=convertCsv-_-qbSNir.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertCsv-B8RVtdcs.cjs","sources":["../src/utils/documentConverter/convertCsv.js"],"sourcesContent":["import { readAsText, escapeHtml, getExtension } from './shared.js'\n\n/**\n * Parse CSV text into rows, handling quoted fields.\n */\nfunction parseCsvRows(text, delimiter = ',') {\n const rows = []\n let current = []\n let field = ''\n let inQuotes = false\n\n for (let i = 0; i < text.length; i++) {\n const ch = text[i]\n\n if (inQuotes) {\n if (ch === '\"') {\n if (text[i + 1] === '\"') {\n field += '\"'\n i++ // skip escaped quote\n } else {\n inQuotes = false\n }\n } else {\n field += ch\n }\n } else if (ch === '\"') {\n inQuotes = true\n } else if (ch === delimiter) {\n current.push(field.trim())\n field = ''\n } else if (ch === '\\n' || ch === '\\r') {\n if (ch === '\\r' && text[i + 1] === '\\n') i++\n current.push(field.trim())\n if (current.some((c) => c !== '')) {\n rows.push(current)\n }\n current = []\n field = ''\n } else {\n field += ch\n }\n }\n\n // Last field/row\n current.push(field.trim())\n if (current.some((c) => c !== '')) {\n rows.push(current)\n }\n\n return rows\n}\n\n/**\n * Convert a CSV/TSV file to an HTML table.\n */\nexport default async function convertCsv(file) {\n const text = await readAsText(file)\n const ext = getExtension(file.name || '')\n const delimiter = ext === '.tsv' ? '\\t' : ','\n\n const rows = parseCsvRows(text, delimiter)\n if (rows.length === 0) return '<p></p>'\n\n const headerRow = rows[0]\n const bodyRows = rows.slice(1)\n\n let html = '<table>\\n<thead>\\n<tr>'\n for (const cell of headerRow) {\n html += `<th>${escapeHtml(cell)}</th>`\n }\n html += '</tr>\\n</thead>\\n<tbody>\\n'\n\n for (const row of bodyRows) {\n html += '<tr>'\n for (let i = 0; i < headerRow.length; i++) {\n html += `<td>${escapeHtml(row[i] || '')}</td>`\n }\n html += '</tr>\\n'\n }\n\n html += '</tbody>\\n</table>'\n return html\n}\n"],"names":["async","file","rows","text","delimiter","current","field","inQuotes","i","length","ch","push","trim","some","c","parseCsvRows","readAsText","getExtension","name","headerRow","bodyRows","slice","html","cell","escapeHtml","row"],"mappings":"wIAuDeA,eAA0BC,GACvC,MAIMC,EAvDR,SAAsBC,EAAMC,EAAY,KACtC,MAAMF,EAAO,GACb,IAAIG,EAAU,GACVC,EAAQ,GACRC,GAAW,EAEf,IAAA,IAASC,EAAI,EAAGA,EAAIL,EAAKM,OAAQD,IAAK,CACpC,MAAME,EAAKP,EAAKK,GAEZD,EACS,MAAPG,EACkB,MAAhBP,EAAKK,EAAI,IACXF,GAAS,IACTE,KAEAD,GAAW,EAGbD,GAASI,EAEK,MAAPA,EACTH,GAAW,EACFG,IAAON,GAChBC,EAAQM,KAAKL,EAAMM,QACnBN,EAAQ,IACQ,OAAPI,GAAsB,OAAPA,GACb,OAAPA,GAA+B,OAAhBP,EAAKK,EAAI,IAAaA,IACzCH,EAAQM,KAAKL,EAAMM,QACfP,EAAQQ,MAAMC,GAAY,KAANA,KACtBZ,EAAKS,KAAKN,GAEZA,EAAU,GACVC,EAAQ,IAERA,GAASI,CAEb,CAQA,OALAL,EAAQM,KAAKL,EAAMM,QACfP,EAAQQ,MAAMC,GAAY,KAANA,KACtBZ,EAAKS,KAAKN,GAGLH,CACT,CAUea,OAJMC,EAAAA,WAAWf,GAEJ,SADdgB,EAAAA,aAAahB,EAAKiB,MAAQ,IACH,KAAO,KAG1C,GAAoB,IAAhBhB,EAAKO,OAAc,MAAO,UAE9B,MAAMU,EAAYjB,EAAK,GACjBkB,EAAWlB,EAAKmB,MAAM,GAE5B,IAAIC,EAAO,yBACX,IAAA,MAAWC,KAAQJ,EACjBG,GAAQ,OAAOE,aAAWD,UAE5BD,GAAQ,6BAER,IAAA,MAAWG,KAAOL,EAAU,CAC1BE,GAAQ,OACR,IAAA,IAASd,EAAI,EAAGA,EAAIW,EAAUV,OAAQD,IACpCc,GAAQ,OAAOE,EAAAA,WAAWC,EAAIjB,IAAM,WAEtCc,GAAQ,SACV,CAGA,OADAA,GAAQ,qBACDA,CACT"}
1
+ {"version":3,"file":"convertCsv-_-qbSNir.cjs","sources":["../src/utils/documentConverter/convertCsv.js"],"sourcesContent":["import { readAsText, escapeHtml, getExtension } from './shared.js'\n\n/**\n * Parse CSV text into rows, handling quoted fields.\n */\nfunction parseCsvRows(text, delimiter = ',') {\n const rows = []\n let current = []\n let field = ''\n let inQuotes = false\n\n for (let i = 0; i < text.length; i++) {\n const ch = text[i]\n\n if (inQuotes) {\n if (ch === '\"') {\n if (text[i + 1] === '\"') {\n field += '\"'\n i++ // skip escaped quote\n } else {\n inQuotes = false\n }\n } else {\n field += ch\n }\n } else if (ch === '\"') {\n inQuotes = true\n } else if (ch === delimiter) {\n current.push(field.trim())\n field = ''\n } else if (ch === '\\n' || ch === '\\r') {\n if (ch === '\\r' && text[i + 1] === '\\n') i++\n current.push(field.trim())\n if (current.some((c) => c !== '')) {\n rows.push(current)\n }\n current = []\n field = ''\n } else {\n field += ch\n }\n }\n\n // Last field/row\n current.push(field.trim())\n if (current.some((c) => c !== '')) {\n rows.push(current)\n }\n\n return rows\n}\n\n/**\n * Convert a CSV/TSV file to an HTML table.\n */\nexport default async function convertCsv(file) {\n const text = await readAsText(file)\n const ext = getExtension(file.name || '')\n const delimiter = ext === '.tsv' ? '\\t' : ','\n\n const rows = parseCsvRows(text, delimiter)\n if (rows.length === 0) return '<p></p>'\n\n const headerRow = rows[0]\n const bodyRows = rows.slice(1)\n\n let html = '<table>\\n<thead>\\n<tr>'\n for (const cell of headerRow) {\n html += `<th>${escapeHtml(cell)}</th>`\n }\n html += '</tr>\\n</thead>\\n<tbody>\\n'\n\n for (const row of bodyRows) {\n html += '<tr>'\n for (let i = 0; i < headerRow.length; i++) {\n html += `<td>${escapeHtml(row[i] || '')}</td>`\n }\n html += '</tr>\\n'\n }\n\n html += '</tbody>\\n</table>'\n return html\n}\n"],"names":["async","file","rows","text","delimiter","current","field","inQuotes","i","length","ch","push","trim","some","c","parseCsvRows","readAsText","getExtension","name","headerRow","bodyRows","slice","html","cell","escapeHtml","row"],"mappings":"wIAuDeA,eAA0BC,GACvC,MAIMC,EAvDR,SAAsBC,EAAMC,EAAY,KACtC,MAAMF,EAAO,GACb,IAAIG,EAAU,GACVC,EAAQ,GACRC,GAAW,EAEf,IAAA,IAASC,EAAI,EAAGA,EAAIL,EAAKM,OAAQD,IAAK,CACpC,MAAME,EAAKP,EAAKK,GAEZD,EACS,MAAPG,EACkB,MAAhBP,EAAKK,EAAI,IACXF,GAAS,IACTE,KAEAD,GAAW,EAGbD,GAASI,EAEK,MAAPA,EACTH,GAAW,EACFG,IAAON,GAChBC,EAAQM,KAAKL,EAAMM,QACnBN,EAAQ,IACQ,OAAPI,GAAsB,OAAPA,GACb,OAAPA,GAA+B,OAAhBP,EAAKK,EAAI,IAAaA,IACzCH,EAAQM,KAAKL,EAAMM,QACfP,EAAQQ,MAAMC,GAAY,KAANA,KACtBZ,EAAKS,KAAKN,GAEZA,EAAU,GACVC,EAAQ,IAERA,GAASI,CAEb,CAQA,OALAL,EAAQM,KAAKL,EAAMM,QACfP,EAAQQ,MAAMC,GAAY,KAANA,KACtBZ,EAAKS,KAAKN,GAGLH,CACT,CAUea,OAJMC,EAAAA,WAAWf,GAEJ,SADdgB,EAAAA,aAAahB,EAAKiB,MAAQ,IACH,KAAO,KAG1C,GAAoB,IAAhBhB,EAAKO,OAAc,MAAO,UAE9B,MAAMU,EAAYjB,EAAK,GACjBkB,EAAWlB,EAAKmB,MAAM,GAE5B,IAAIC,EAAO,yBACX,IAAA,MAAWC,KAAQJ,EACjBG,GAAQ,OAAOE,aAAWD,UAE5BD,GAAQ,6BAER,IAAA,MAAWG,KAAOL,EAAU,CAC1BE,GAAQ,OACR,IAAA,IAASd,EAAI,EAAGA,EAAIW,EAAUV,OAAQD,IACpCc,GAAQ,OAAOE,EAAAA,WAAWC,EAAIjB,IAAM,WAEtCc,GAAQ,SACV,CAGA,OADAA,GAAQ,qBACDA,CACT"}
@@ -0,0 +1,2 @@
1
+ import{r as a}from"./index-Cv62E14a.js";async function t(t){const r=await import("mammoth"),o=await a(t);return(await r.convertToHtml({arrayBuffer:o})).value}export{t as default};
2
+ //# sourceMappingURL=convertDocx-D-V0dfFd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertDocx-Dmx88twM.js","sources":["../src/utils/documentConverter/convertDocx.js"],"sourcesContent":["import { readAsArrayBuffer } from './shared.js'\n\n/**\n * Convert a DOCX file to HTML using mammoth (lazy-loaded).\n */\nexport default async function convertDocx(file) {\n const mammoth = await import('mammoth')\n const buffer = await readAsArrayBuffer(file)\n const result = await mammoth.convertToHtml({ arrayBuffer: buffer })\n return result.value\n}\n"],"names":["async","convertDocx","file","mammoth","import","buffer","readAsArrayBuffer","convertToHtml","arrayBuffer","value"],"mappings":"yCAKeA,eAAeC,EAAYC,GACxC,MAAMC,QAAgBC,OAAO,WACvBC,QAAeC,EAAkBJ,GAEvC,aADqBC,EAAQI,cAAc,CAAEC,YAAaH,KAC5CI,KAChB"}
1
+ {"version":3,"file":"convertDocx-D-V0dfFd.js","sources":["../src/utils/documentConverter/convertDocx.js"],"sourcesContent":["import { readAsArrayBuffer } from './shared.js'\n\n/**\n * Convert a DOCX file to HTML using mammoth (lazy-loaded).\n */\nexport default async function convertDocx(file) {\n const mammoth = await import('mammoth')\n const buffer = await readAsArrayBuffer(file)\n const result = await mammoth.convertToHtml({ arrayBuffer: buffer })\n return result.value\n}\n"],"names":["async","convertDocx","file","mammoth","import","buffer","readAsArrayBuffer","convertToHtml","arrayBuffer","value"],"mappings":"wCAKeA,eAAeC,EAAYC,GACxC,MAAMC,QAAgBC,OAAO,WACvBC,QAAeC,EAAkBJ,GAEvC,aADqBC,EAAQI,cAAc,CAAEC,YAAaH,KAC5CI,KAChB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.create,Object.defineProperty,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.prototype.hasOwnProperty;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-iRikoCdK.cjs");exports.default=async function(t){const r=await import("mammoth"),o=await e.readAsArrayBuffer(t);return(await r.convertToHtml({arrayBuffer:o})).value};
2
- //# sourceMappingURL=convertDocx-4q89XLLv.cjs.map
1
+ "use strict";Object.create,Object.defineProperty,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.prototype.hasOwnProperty;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-C3_cH6Zy.cjs");exports.default=async function(t){const r=await import("mammoth"),o=await e.readAsArrayBuffer(t);return(await r.convertToHtml({arrayBuffer:o})).value};
2
+ //# sourceMappingURL=convertDocx-Dpd5BG-G.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertDocx-4q89XLLv.cjs","sources":["../src/utils/documentConverter/convertDocx.js"],"sourcesContent":["import { readAsArrayBuffer } from './shared.js'\n\n/**\n * Convert a DOCX file to HTML using mammoth (lazy-loaded).\n */\nexport default async function convertDocx(file) {\n const mammoth = await import('mammoth')\n const buffer = await readAsArrayBuffer(file)\n const result = await mammoth.convertToHtml({ arrayBuffer: buffer })\n return result.value\n}\n"],"names":["async","file","mammoth","import","buffer","readAsArrayBuffer","convertToHtml","arrayBuffer","value"],"mappings":"6RAKeA,eAA2BC,GACxC,MAAMC,QAAgBC,OAAO,WACvBC,QAAeC,EAAAA,kBAAkBJ,GAEvC,aADqBC,EAAQI,cAAc,CAAEC,YAAaH,KAC5CI,KAChB"}
1
+ {"version":3,"file":"convertDocx-Dpd5BG-G.cjs","sources":["../src/utils/documentConverter/convertDocx.js"],"sourcesContent":["import { readAsArrayBuffer } from './shared.js'\n\n/**\n * Convert a DOCX file to HTML using mammoth (lazy-loaded).\n */\nexport default async function convertDocx(file) {\n const mammoth = await import('mammoth')\n const buffer = await readAsArrayBuffer(file)\n const result = await mammoth.convertToHtml({ arrayBuffer: buffer })\n return result.value\n}\n"],"names":["async","file","mammoth","import","buffer","readAsArrayBuffer","convertToHtml","arrayBuffer","value"],"mappings":"6RAKeA,eAA2BC,GACxC,MAAMC,QAAgBC,OAAO,WACvBC,QAAeC,EAAAA,kBAAkBJ,GAEvC,aADqBC,EAAQI,cAAc,CAAEC,YAAaH,KAC5CI,KAChB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-iRikoCdK.cjs");exports.default=async function(t){return e.readAsText(t)};
2
- //# sourceMappingURL=convertHtml-DbHrdrD3.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-C3_cH6Zy.cjs");exports.default=async function(t){return e.readAsText(t)};
2
+ //# sourceMappingURL=convertHtml-DmfodLsz.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertHtml-DbHrdrD3.cjs","sources":["../src/utils/documentConverter/convertHtml.js"],"sourcesContent":["import { readAsText } from './shared.js'\n\n/**\n * Read an HTML file and return its content.\n * Sanitization happens at insertion time via the engine sanitizer.\n */\nexport default async function convertHtml(file) {\n return readAsText(file)\n}\n"],"names":["async","file","readAsText"],"mappings":"wIAMeA,eAA2BC,GACxC,OAAOC,EAAAA,WAAWD,EACpB"}
1
+ {"version":3,"file":"convertHtml-DmfodLsz.cjs","sources":["../src/utils/documentConverter/convertHtml.js"],"sourcesContent":["import { readAsText } from './shared.js'\n\n/**\n * Read an HTML file and return its content.\n * Sanitization happens at insertion time via the engine sanitizer.\n */\nexport default async function convertHtml(file) {\n return readAsText(file)\n}\n"],"names":["async","file","readAsText"],"mappings":"wIAMeA,eAA2BC,GACxC,OAAOC,EAAAA,WAAWD,EACpB"}
@@ -0,0 +1,2 @@
1
+ import{a}from"./index-Cv62E14a.js";async function n(n){return a(n)}export{n as default};
2
+ //# sourceMappingURL=convertHtml-gycStuZn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertHtml-CtYVhiTh.js","sources":["../src/utils/documentConverter/convertHtml.js"],"sourcesContent":["import { readAsText } from './shared.js'\n\n/**\n * Read an HTML file and return its content.\n * Sanitization happens at insertion time via the engine sanitizer.\n */\nexport default async function convertHtml(file) {\n return readAsText(file)\n}\n"],"names":["async","convertHtml","file","readAsText"],"mappings":"yCAMeA,eAAeC,EAAYC,GACxC,OAAOC,EAAWD,EACpB"}
1
+ {"version":3,"file":"convertHtml-gycStuZn.js","sources":["../src/utils/documentConverter/convertHtml.js"],"sourcesContent":["import { readAsText } from './shared.js'\n\n/**\n * Read an HTML file and return its content.\n * Sanitization happens at insertion time via the engine sanitizer.\n */\nexport default async function convertHtml(file) {\n return readAsText(file)\n}\n"],"names":["async","convertHtml","file","readAsText"],"mappings":"mCAMeA,eAAeC,EAAYC,GACxC,OAAOC,EAAWD,EACpB"}
@@ -0,0 +1,2 @@
1
+ import{a,m as t}from"./index-Cv62E14a.js";async function n(n){const s=await a(n);return t(s)}export{n as default};
2
+ //# sourceMappingURL=convertMarkdown-1BmsjWXP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertMarkdown-Di239Gtn.js","sources":["../src/utils/documentConverter/convertMarkdown.js"],"sourcesContent":["import { readAsText } from './shared.js'\nimport { markdownToHtml } from '../markdownConverter.js'\n\n/**\n * Convert a Markdown file to HTML using the existing marked setup.\n */\nexport default async function convertMarkdown(file) {\n const text = await readAsText(file)\n return markdownToHtml(text)\n}\n"],"names":["async","convertMarkdown","file","text","readAsText","markdownToHtml"],"mappings":"iDAMeA,eAAeC,EAAgBC,GAC5C,MAAMC,QAAaC,EAAWF,GAC9B,OAAOG,EAAeF,EACxB"}
1
+ {"version":3,"file":"convertMarkdown-1BmsjWXP.js","sources":["../src/utils/documentConverter/convertMarkdown.js"],"sourcesContent":["import { readAsText } from './shared.js'\nimport { markdownToHtml } from '../markdownConverter.js'\n\n/**\n * Convert a Markdown file to HTML using the existing marked setup.\n */\nexport default async function convertMarkdown(file) {\n const text = await readAsText(file)\n return markdownToHtml(text)\n}\n"],"names":["async","convertMarkdown","file","text","readAsText","markdownToHtml"],"mappings":"0CAMeA,eAAeC,EAAgBC,GAC5C,MAAMC,QAAaC,EAAWF,GAC9B,OAAOG,EAAeF,EACxB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-iRikoCdK.cjs");exports.default=async function(t){const r=await e.readAsText(t);return e.markdownToHtml(r)};
2
- //# sourceMappingURL=convertMarkdown-eJ9Nkoid.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-C3_cH6Zy.cjs");exports.default=async function(t){const r=await e.readAsText(t);return e.markdownToHtml(r)};
2
+ //# sourceMappingURL=convertMarkdown-CelFJJT9.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertMarkdown-eJ9Nkoid.cjs","sources":["../src/utils/documentConverter/convertMarkdown.js"],"sourcesContent":["import { readAsText } from './shared.js'\nimport { markdownToHtml } from '../markdownConverter.js'\n\n/**\n * Convert a Markdown file to HTML using the existing marked setup.\n */\nexport default async function convertMarkdown(file) {\n const text = await readAsText(file)\n return markdownToHtml(text)\n}\n"],"names":["async","file","text","readAsText","markdownToHtml"],"mappings":"wIAMeA,eAA+BC,GAC5C,MAAMC,QAAaC,EAAAA,WAAWF,GAC9B,OAAOG,EAAAA,eAAeF,EACxB"}
1
+ {"version":3,"file":"convertMarkdown-CelFJJT9.cjs","sources":["../src/utils/documentConverter/convertMarkdown.js"],"sourcesContent":["import { readAsText } from './shared.js'\nimport { markdownToHtml } from '../markdownConverter.js'\n\n/**\n * Convert a Markdown file to HTML using the existing marked setup.\n */\nexport default async function convertMarkdown(file) {\n const text = await readAsText(file)\n return markdownToHtml(text)\n}\n"],"names":["async","file","text","readAsText","markdownToHtml"],"mappings":"wIAMeA,eAA+BC,GAC5C,MAAMC,QAAaC,EAAAA,WAAWF,GAC9B,OAAOG,EAAAA,eAAeF,EACxB"}
@@ -0,0 +1,2 @@
1
+ import{r as t,e as o}from"./index-Cv62E14a.js";async function n(n){const s=await import("pdfjs-dist");if(!s.GlobalWorkerOptions.workerSrc)try{const t=await import("pdfjs-dist/build/pdf.worker.mjs");s.GlobalWorkerOptions.workerSrc=t.default||t}catch{s.GlobalWorkerOptions.workerSrc=""}const r=await t(n),e=await s.getDocument({data:r}).promise,a=[];for(let t=1;t<=e.numPages;t++){const n=await e.getPage(t),s=await n.getTextContent(),r=[];let i=[],p=null;for(const t of s.items){if(void 0===t.str)continue;const o=Math.round(t.transform[5]);null!==p&&Math.abs(o-p)>2&&(i.length>0&&r.push(i.join("")),i=[]),i.push(t.str),p=o}i.length>0&&r.push(i.join(""));const l=[];let u=[];for(const t of r){const o=t.trim();""===o?u.length>0&&(l.push(u.join(" ")),u=[]):u.push(o)}u.length>0&&l.push(u.join(" ")),l.length>0&&(e.numPages>1&&a.push(`<h3>Page ${t}</h3>`),a.push(l.map((t=>`<p>${o(t)}</p>`)).join("\n")))}return a.join("\n")}export{n as default};
2
+ //# sourceMappingURL=convertPdf-D4SNUyBk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertPdf-CFA1eNNH.js","sources":["../src/utils/documentConverter/convertPdf.js"],"sourcesContent":["import { readAsArrayBuffer, escapeHtml } from './shared.js'\n\n/**\n * Convert a PDF file to HTML using pdfjs-dist (lazy-loaded).\n * Extracts text content from each page and wraps in paragraphs.\n */\nexport default async function convertPdf(file) {\n const pdfjsLib = await import('pdfjs-dist')\n\n // Configure worker — use bundled worker or CDN fallback\n if (!pdfjsLib.GlobalWorkerOptions.workerSrc) {\n try {\n const workerModule = await import('pdfjs-dist/build/pdf.worker.mjs')\n pdfjsLib.GlobalWorkerOptions.workerSrc = workerModule.default || workerModule\n } catch {\n // Fallback: disable worker (runs on main thread)\n pdfjsLib.GlobalWorkerOptions.workerSrc = ''\n }\n }\n\n const buffer = await readAsArrayBuffer(file)\n const pdf = await pdfjsLib.getDocument({ data: buffer }).promise\n\n const pages = []\n for (let i = 1; i <= pdf.numPages; i++) {\n const page = await pdf.getPage(i)\n const textContent = await page.getTextContent()\n\n // Group text items into lines by Y position\n const lines = []\n let currentLine = []\n let lastY = null\n\n for (const item of textContent.items) {\n if (item.str === undefined) continue\n const y = Math.round(item.transform[5])\n\n if (lastY !== null && Math.abs(y - lastY) > 2) {\n if (currentLine.length > 0) {\n lines.push(currentLine.join(''))\n }\n currentLine = []\n }\n currentLine.push(item.str)\n lastY = y\n }\n if (currentLine.length > 0) {\n lines.push(currentLine.join(''))\n }\n\n // Group consecutive non-empty lines into paragraphs\n const paragraphs = []\n let currentPara = []\n for (const line of lines) {\n const trimmed = line.trim()\n if (trimmed === '') {\n if (currentPara.length > 0) {\n paragraphs.push(currentPara.join(' '))\n currentPara = []\n }\n } else {\n currentPara.push(trimmed)\n }\n }\n if (currentPara.length > 0) {\n paragraphs.push(currentPara.join(' '))\n }\n\n if (paragraphs.length > 0) {\n if (pdf.numPages > 1) {\n pages.push(`<h3>Page ${i}</h3>`)\n }\n pages.push(paragraphs.map((p) => `<p>${escapeHtml(p)}</p>`).join('\\n'))\n }\n }\n\n return pages.join('\\n')\n}\n"],"names":["async","convertPdf","file","pdfjsLib","import","GlobalWorkerOptions","workerSrc","workerModule","default","buffer","readAsArrayBuffer","pdf","getDocument","data","promise","pages","i","numPages","page","getPage","textContent","getTextContent","lines","currentLine","lastY","item","items","str","y","Math","round","transform","abs","length","push","join","paragraphs","currentPara","line","trimmed","trim","map","p","escapeHtml"],"mappings":"iDAMeA,eAAeC,EAAWC,GACvC,MAAMC,QAAiBC,OAAO,cAG9B,IAAKD,EAASE,oBAAoBC,UAChC,IACE,MAAMC,QAAqBH,OAAO,mCAClCD,EAASE,oBAAoBC,UAAYC,EAAaC,SAAWD,CACnE,CAAA,MAEEJ,EAASE,oBAAoBC,UAAY,EAC3C,CAGF,MAAMG,QAAeC,EAAkBR,GACjCS,QAAYR,EAASS,YAAY,CAAEC,KAAMJ,IAAUK,QAEnDC,EAAQ,GACd,IAAA,IAASC,EAAI,EAAGA,GAAKL,EAAIM,SAAUD,IAAK,CACtC,MAAME,QAAaP,EAAIQ,QAAQH,GACzBI,QAAoBF,EAAKG,iBAGzBC,EAAQ,GACd,IAAIC,EAAc,GACdC,EAAQ,KAEZ,IAAA,MAAWC,KAAQL,EAAYM,MAAO,CACpC,QAAiB,IAAbD,EAAKE,IAAmB,SAC5B,MAAMC,EAAIC,KAAKC,MAAML,EAAKM,UAAU,IAEtB,OAAVP,GAAkBK,KAAKG,IAAIJ,EAAIJ,GAAS,IACtCD,EAAYU,OAAS,GACvBX,EAAMY,KAAKX,EAAYY,KAAK,KAE9BZ,EAAc,IAEhBA,EAAYW,KAAKT,EAAKE,KACtBH,EAAQI,CACV,CACIL,EAAYU,OAAS,GACvBX,EAAMY,KAAKX,EAAYY,KAAK,KAI9B,MAAMC,EAAa,GACnB,IAAIC,EAAc,GAClB,IAAA,MAAWC,KAAQhB,EAAO,CACxB,MAAMiB,EAAUD,EAAKE,OACL,KAAZD,EACEF,EAAYJ,OAAS,IACvBG,EAAWF,KAAKG,EAAYF,KAAK,MACjCE,EAAc,IAGhBA,EAAYH,KAAKK,EAErB,CACIF,EAAYJ,OAAS,GACvBG,EAAWF,KAAKG,EAAYF,KAAK,MAG/BC,EAAWH,OAAS,IAClBtB,EAAIM,SAAW,GACjBF,EAAMmB,KAAK,YAAYlB,UAEzBD,EAAMmB,KAAKE,EAAWK,KAAKC,GAAM,MAAMC,EAAWD,WAAUP,KAAK,OAErE,CAEA,OAAOpB,EAAMoB,KAAK,KACpB"}
1
+ {"version":3,"file":"convertPdf-D4SNUyBk.js","sources":["../src/utils/documentConverter/convertPdf.js"],"sourcesContent":["import { readAsArrayBuffer, escapeHtml } from './shared.js'\n\n/**\n * Convert a PDF file to HTML using pdfjs-dist (lazy-loaded).\n * Extracts text content from each page and wraps in paragraphs.\n */\nexport default async function convertPdf(file) {\n const pdfjsLib = await import('pdfjs-dist')\n\n // Configure worker — use bundled worker or CDN fallback\n if (!pdfjsLib.GlobalWorkerOptions.workerSrc) {\n try {\n const workerModule = await import('pdfjs-dist/build/pdf.worker.mjs')\n pdfjsLib.GlobalWorkerOptions.workerSrc = workerModule.default || workerModule\n } catch {\n // Fallback: disable worker (runs on main thread)\n pdfjsLib.GlobalWorkerOptions.workerSrc = ''\n }\n }\n\n const buffer = await readAsArrayBuffer(file)\n const pdf = await pdfjsLib.getDocument({ data: buffer }).promise\n\n const pages = []\n for (let i = 1; i <= pdf.numPages; i++) {\n const page = await pdf.getPage(i)\n const textContent = await page.getTextContent()\n\n // Group text items into lines by Y position\n const lines = []\n let currentLine = []\n let lastY = null\n\n for (const item of textContent.items) {\n if (item.str === undefined) continue\n const y = Math.round(item.transform[5])\n\n if (lastY !== null && Math.abs(y - lastY) > 2) {\n if (currentLine.length > 0) {\n lines.push(currentLine.join(''))\n }\n currentLine = []\n }\n currentLine.push(item.str)\n lastY = y\n }\n if (currentLine.length > 0) {\n lines.push(currentLine.join(''))\n }\n\n // Group consecutive non-empty lines into paragraphs\n const paragraphs = []\n let currentPara = []\n for (const line of lines) {\n const trimmed = line.trim()\n if (trimmed === '') {\n if (currentPara.length > 0) {\n paragraphs.push(currentPara.join(' '))\n currentPara = []\n }\n } else {\n currentPara.push(trimmed)\n }\n }\n if (currentPara.length > 0) {\n paragraphs.push(currentPara.join(' '))\n }\n\n if (paragraphs.length > 0) {\n if (pdf.numPages > 1) {\n pages.push(`<h3>Page ${i}</h3>`)\n }\n pages.push(paragraphs.map((p) => `<p>${escapeHtml(p)}</p>`).join('\\n'))\n }\n }\n\n return pages.join('\\n')\n}\n"],"names":["async","convertPdf","file","pdfjsLib","import","GlobalWorkerOptions","workerSrc","workerModule","default","buffer","readAsArrayBuffer","pdf","getDocument","data","promise","pages","i","numPages","page","getPage","textContent","getTextContent","lines","currentLine","lastY","item","items","str","y","Math","round","transform","abs","length","push","join","paragraphs","currentPara","line","trimmed","trim","map","p","escapeHtml"],"mappings":"+CAMeA,eAAeC,EAAWC,GACvC,MAAMC,QAAiBC,OAAO,cAG9B,IAAKD,EAASE,oBAAoBC,UAChC,IACE,MAAMC,QAAqBH,OAAO,mCAClCD,EAASE,oBAAoBC,UAAYC,EAAaC,SAAWD,CACnE,CAAA,MAEEJ,EAASE,oBAAoBC,UAAY,EAC3C,CAGF,MAAMG,QAAeC,EAAkBR,GACjCS,QAAYR,EAASS,YAAY,CAAEC,KAAMJ,IAAUK,QAEnDC,EAAQ,GACd,IAAA,IAASC,EAAI,EAAGA,GAAKL,EAAIM,SAAUD,IAAK,CACtC,MAAME,QAAaP,EAAIQ,QAAQH,GACzBI,QAAoBF,EAAKG,iBAGzBC,EAAQ,GACd,IAAIC,EAAc,GACdC,EAAQ,KAEZ,IAAA,MAAWC,KAAQL,EAAYM,MAAO,CACpC,QAAiB,IAAbD,EAAKE,IAAmB,SAC5B,MAAMC,EAAIC,KAAKC,MAAML,EAAKM,UAAU,IAEtB,OAAVP,GAAkBK,KAAKG,IAAIJ,EAAIJ,GAAS,IACtCD,EAAYU,OAAS,GACvBX,EAAMY,KAAKX,EAAYY,KAAK,KAE9BZ,EAAc,IAEhBA,EAAYW,KAAKT,EAAKE,KACtBH,EAAQI,CACV,CACIL,EAAYU,OAAS,GACvBX,EAAMY,KAAKX,EAAYY,KAAK,KAI9B,MAAMC,EAAa,GACnB,IAAIC,EAAc,GAClB,IAAA,MAAWC,KAAQhB,EAAO,CACxB,MAAMiB,EAAUD,EAAKE,OACL,KAAZD,EACEF,EAAYJ,OAAS,IACvBG,EAAWF,KAAKG,EAAYF,KAAK,MACjCE,EAAc,IAGhBA,EAAYH,KAAKK,EAErB,CACIF,EAAYJ,OAAS,GACvBG,EAAWF,KAAKG,EAAYF,KAAK,MAG/BC,EAAWH,OAAS,IAClBtB,EAAIM,SAAW,GACjBF,EAAMmB,KAAK,YAAYlB,UAEzBD,EAAMmB,KAAKE,EAAWK,KAAKC,GAAM,MAAMC,EAAWD,WAAUP,KAAK,OAErE,CAEA,OAAOpB,EAAMoB,KAAK,KACpB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.create,Object.defineProperty,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.prototype.hasOwnProperty;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index-iRikoCdK.cjs");exports.default=async function(e){const o=await import("pdfjs-dist");if(!o.GlobalWorkerOptions.workerSrc)try{const t=await import("pdfjs-dist/build/pdf.worker.mjs");o.GlobalWorkerOptions.workerSrc=t.default||t}catch{o.GlobalWorkerOptions.workerSrc=""}const r=await t.readAsArrayBuffer(e),n=await o.getDocument({data:r}).promise,s=[];for(let a=1;a<=n.numPages;a++){const e=await n.getPage(a),o=await e.getTextContent(),r=[];let i=[],p=null;for(const t of o.items){if(void 0===t.str)continue;const e=Math.round(t.transform[5]);null!==p&&Math.abs(e-p)>2&&(i.length>0&&r.push(i.join("")),i=[]),i.push(t.str),p=e}i.length>0&&r.push(i.join(""));const c=[];let l=[];for(const t of r){const e=t.trim();""===e?l.length>0&&(c.push(l.join(" ")),l=[]):l.push(e)}l.length>0&&c.push(l.join(" ")),c.length>0&&(n.numPages>1&&s.push(`<h3>Page ${a}</h3>`),s.push(c.map((e=>`<p>${t.escapeHtml(e)}</p>`)).join("\n")))}return s.join("\n")};
2
- //# sourceMappingURL=convertPdf-CSLmTrB8.cjs.map
1
+ "use strict";Object.create,Object.defineProperty,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.prototype.hasOwnProperty;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index-C3_cH6Zy.cjs");exports.default=async function(e){const o=await import("pdfjs-dist");if(!o.GlobalWorkerOptions.workerSrc)try{const t=await import("pdfjs-dist/build/pdf.worker.mjs");o.GlobalWorkerOptions.workerSrc=t.default||t}catch{o.GlobalWorkerOptions.workerSrc=""}const r=await t.readAsArrayBuffer(e),n=await o.getDocument({data:r}).promise,s=[];for(let a=1;a<=n.numPages;a++){const e=await n.getPage(a),o=await e.getTextContent(),r=[];let i=[],p=null;for(const t of o.items){if(void 0===t.str)continue;const e=Math.round(t.transform[5]);null!==p&&Math.abs(e-p)>2&&(i.length>0&&r.push(i.join("")),i=[]),i.push(t.str),p=e}i.length>0&&r.push(i.join(""));const c=[];let l=[];for(const t of r){const e=t.trim();""===e?l.length>0&&(c.push(l.join(" ")),l=[]):l.push(e)}l.length>0&&c.push(l.join(" ")),c.length>0&&(n.numPages>1&&s.push(`<h3>Page ${a}</h3>`),s.push(c.map((e=>`<p>${t.escapeHtml(e)}</p>`)).join("\n")))}return s.join("\n")};
2
+ //# sourceMappingURL=convertPdf-DSZy--TD.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertPdf-CSLmTrB8.cjs","sources":["../src/utils/documentConverter/convertPdf.js"],"sourcesContent":["import { readAsArrayBuffer, escapeHtml } from './shared.js'\n\n/**\n * Convert a PDF file to HTML using pdfjs-dist (lazy-loaded).\n * Extracts text content from each page and wraps in paragraphs.\n */\nexport default async function convertPdf(file) {\n const pdfjsLib = await import('pdfjs-dist')\n\n // Configure worker — use bundled worker or CDN fallback\n if (!pdfjsLib.GlobalWorkerOptions.workerSrc) {\n try {\n const workerModule = await import('pdfjs-dist/build/pdf.worker.mjs')\n pdfjsLib.GlobalWorkerOptions.workerSrc = workerModule.default || workerModule\n } catch {\n // Fallback: disable worker (runs on main thread)\n pdfjsLib.GlobalWorkerOptions.workerSrc = ''\n }\n }\n\n const buffer = await readAsArrayBuffer(file)\n const pdf = await pdfjsLib.getDocument({ data: buffer }).promise\n\n const pages = []\n for (let i = 1; i <= pdf.numPages; i++) {\n const page = await pdf.getPage(i)\n const textContent = await page.getTextContent()\n\n // Group text items into lines by Y position\n const lines = []\n let currentLine = []\n let lastY = null\n\n for (const item of textContent.items) {\n if (item.str === undefined) continue\n const y = Math.round(item.transform[5])\n\n if (lastY !== null && Math.abs(y - lastY) > 2) {\n if (currentLine.length > 0) {\n lines.push(currentLine.join(''))\n }\n currentLine = []\n }\n currentLine.push(item.str)\n lastY = y\n }\n if (currentLine.length > 0) {\n lines.push(currentLine.join(''))\n }\n\n // Group consecutive non-empty lines into paragraphs\n const paragraphs = []\n let currentPara = []\n for (const line of lines) {\n const trimmed = line.trim()\n if (trimmed === '') {\n if (currentPara.length > 0) {\n paragraphs.push(currentPara.join(' '))\n currentPara = []\n }\n } else {\n currentPara.push(trimmed)\n }\n }\n if (currentPara.length > 0) {\n paragraphs.push(currentPara.join(' '))\n }\n\n if (paragraphs.length > 0) {\n if (pdf.numPages > 1) {\n pages.push(`<h3>Page ${i}</h3>`)\n }\n pages.push(paragraphs.map((p) => `<p>${escapeHtml(p)}</p>`).join('\\n'))\n }\n }\n\n return pages.join('\\n')\n}\n"],"names":["async","file","pdfjsLib","import","GlobalWorkerOptions","workerSrc","workerModule","default","buffer","readAsArrayBuffer","pdf","getDocument","data","promise","pages","i","numPages","page","getPage","textContent","getTextContent","lines","currentLine","lastY","item","items","str","y","Math","round","transform","abs","length","push","join","paragraphs","currentPara","line","trimmed","trim","map","p","escapeHtml"],"mappings":"6RAMeA,eAA0BC,GACvC,MAAMC,QAAiBC,OAAO,cAG9B,IAAKD,EAASE,oBAAoBC,UAChC,IACE,MAAMC,QAAqBH,OAAO,mCAClCD,EAASE,oBAAoBC,UAAYC,EAAaC,SAAWD,CACnE,CAAA,MAEEJ,EAASE,oBAAoBC,UAAY,EAC3C,CAGF,MAAMG,QAAeC,EAAAA,kBAAkBR,GACjCS,QAAYR,EAASS,YAAY,CAAEC,KAAMJ,IAAUK,QAEnDC,EAAQ,GACd,IAAA,IAASC,EAAI,EAAGA,GAAKL,EAAIM,SAAUD,IAAK,CACtC,MAAME,QAAaP,EAAIQ,QAAQH,GACzBI,QAAoBF,EAAKG,iBAGzBC,EAAQ,GACd,IAAIC,EAAc,GACdC,EAAQ,KAEZ,IAAA,MAAWC,KAAQL,EAAYM,MAAO,CACpC,QAAiB,IAAbD,EAAKE,IAAmB,SAC5B,MAAMC,EAAIC,KAAKC,MAAML,EAAKM,UAAU,IAEtB,OAAVP,GAAkBK,KAAKG,IAAIJ,EAAIJ,GAAS,IACtCD,EAAYU,OAAS,GACvBX,EAAMY,KAAKX,EAAYY,KAAK,KAE9BZ,EAAc,IAEhBA,EAAYW,KAAKT,EAAKE,KACtBH,EAAQI,CACV,CACIL,EAAYU,OAAS,GACvBX,EAAMY,KAAKX,EAAYY,KAAK,KAI9B,MAAMC,EAAa,GACnB,IAAIC,EAAc,GAClB,IAAA,MAAWC,KAAQhB,EAAO,CACxB,MAAMiB,EAAUD,EAAKE,OACL,KAAZD,EACEF,EAAYJ,OAAS,IACvBG,EAAWF,KAAKG,EAAYF,KAAK,MACjCE,EAAc,IAGhBA,EAAYH,KAAKK,EAErB,CACIF,EAAYJ,OAAS,GACvBG,EAAWF,KAAKG,EAAYF,KAAK,MAG/BC,EAAWH,OAAS,IAClBtB,EAAIM,SAAW,GACjBF,EAAMmB,KAAK,YAAYlB,UAEzBD,EAAMmB,KAAKE,EAAWK,KAAKC,GAAM,MAAMC,EAAAA,WAAWD,WAAUP,KAAK,OAErE,CAEA,OAAOpB,EAAMoB,KAAK,KACpB"}
1
+ {"version":3,"file":"convertPdf-DSZy--TD.cjs","sources":["../src/utils/documentConverter/convertPdf.js"],"sourcesContent":["import { readAsArrayBuffer, escapeHtml } from './shared.js'\n\n/**\n * Convert a PDF file to HTML using pdfjs-dist (lazy-loaded).\n * Extracts text content from each page and wraps in paragraphs.\n */\nexport default async function convertPdf(file) {\n const pdfjsLib = await import('pdfjs-dist')\n\n // Configure worker — use bundled worker or CDN fallback\n if (!pdfjsLib.GlobalWorkerOptions.workerSrc) {\n try {\n const workerModule = await import('pdfjs-dist/build/pdf.worker.mjs')\n pdfjsLib.GlobalWorkerOptions.workerSrc = workerModule.default || workerModule\n } catch {\n // Fallback: disable worker (runs on main thread)\n pdfjsLib.GlobalWorkerOptions.workerSrc = ''\n }\n }\n\n const buffer = await readAsArrayBuffer(file)\n const pdf = await pdfjsLib.getDocument({ data: buffer }).promise\n\n const pages = []\n for (let i = 1; i <= pdf.numPages; i++) {\n const page = await pdf.getPage(i)\n const textContent = await page.getTextContent()\n\n // Group text items into lines by Y position\n const lines = []\n let currentLine = []\n let lastY = null\n\n for (const item of textContent.items) {\n if (item.str === undefined) continue\n const y = Math.round(item.transform[5])\n\n if (lastY !== null && Math.abs(y - lastY) > 2) {\n if (currentLine.length > 0) {\n lines.push(currentLine.join(''))\n }\n currentLine = []\n }\n currentLine.push(item.str)\n lastY = y\n }\n if (currentLine.length > 0) {\n lines.push(currentLine.join(''))\n }\n\n // Group consecutive non-empty lines into paragraphs\n const paragraphs = []\n let currentPara = []\n for (const line of lines) {\n const trimmed = line.trim()\n if (trimmed === '') {\n if (currentPara.length > 0) {\n paragraphs.push(currentPara.join(' '))\n currentPara = []\n }\n } else {\n currentPara.push(trimmed)\n }\n }\n if (currentPara.length > 0) {\n paragraphs.push(currentPara.join(' '))\n }\n\n if (paragraphs.length > 0) {\n if (pdf.numPages > 1) {\n pages.push(`<h3>Page ${i}</h3>`)\n }\n pages.push(paragraphs.map((p) => `<p>${escapeHtml(p)}</p>`).join('\\n'))\n }\n }\n\n return pages.join('\\n')\n}\n"],"names":["async","file","pdfjsLib","import","GlobalWorkerOptions","workerSrc","workerModule","default","buffer","readAsArrayBuffer","pdf","getDocument","data","promise","pages","i","numPages","page","getPage","textContent","getTextContent","lines","currentLine","lastY","item","items","str","y","Math","round","transform","abs","length","push","join","paragraphs","currentPara","line","trimmed","trim","map","p","escapeHtml"],"mappings":"6RAMeA,eAA0BC,GACvC,MAAMC,QAAiBC,OAAO,cAG9B,IAAKD,EAASE,oBAAoBC,UAChC,IACE,MAAMC,QAAqBH,OAAO,mCAClCD,EAASE,oBAAoBC,UAAYC,EAAaC,SAAWD,CACnE,CAAA,MAEEJ,EAASE,oBAAoBC,UAAY,EAC3C,CAGF,MAAMG,QAAeC,EAAAA,kBAAkBR,GACjCS,QAAYR,EAASS,YAAY,CAAEC,KAAMJ,IAAUK,QAEnDC,EAAQ,GACd,IAAA,IAASC,EAAI,EAAGA,GAAKL,EAAIM,SAAUD,IAAK,CACtC,MAAME,QAAaP,EAAIQ,QAAQH,GACzBI,QAAoBF,EAAKG,iBAGzBC,EAAQ,GACd,IAAIC,EAAc,GACdC,EAAQ,KAEZ,IAAA,MAAWC,KAAQL,EAAYM,MAAO,CACpC,QAAiB,IAAbD,EAAKE,IAAmB,SAC5B,MAAMC,EAAIC,KAAKC,MAAML,EAAKM,UAAU,IAEtB,OAAVP,GAAkBK,KAAKG,IAAIJ,EAAIJ,GAAS,IACtCD,EAAYU,OAAS,GACvBX,EAAMY,KAAKX,EAAYY,KAAK,KAE9BZ,EAAc,IAEhBA,EAAYW,KAAKT,EAAKE,KACtBH,EAAQI,CACV,CACIL,EAAYU,OAAS,GACvBX,EAAMY,KAAKX,EAAYY,KAAK,KAI9B,MAAMC,EAAa,GACnB,IAAIC,EAAc,GAClB,IAAA,MAAWC,KAAQhB,EAAO,CACxB,MAAMiB,EAAUD,EAAKE,OACL,KAAZD,EACEF,EAAYJ,OAAS,IACvBG,EAAWF,KAAKG,EAAYF,KAAK,MACjCE,EAAc,IAGhBA,EAAYH,KAAKK,EAErB,CACIF,EAAYJ,OAAS,GACvBG,EAAWF,KAAKG,EAAYF,KAAK,MAG/BC,EAAWH,OAAS,IAClBtB,EAAIM,SAAW,GACjBF,EAAMmB,KAAK,YAAYlB,UAEzBD,EAAMmB,KAAKE,EAAWK,KAAKC,GAAM,MAAMC,EAAAA,WAAWD,WAAUP,KAAK,OAErE,CAEA,OAAOpB,EAAMoB,KAAK,KACpB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-iRikoCdK.cjs");exports.default=async function(r){let t=(await e.readAsText(r)).replace(/^\{\\rtf[\s\S]*?(?=\\pard|[^\\{])/i,"").replace(/\}$/g,"");t=t.replace(/\{\\fonttbl[\s\S]*?\}/g,""),t=t.replace(/\{\\colortbl[\s\S]*?\}/g,""),t=t.replace(/\{\\stylesheet[\s\S]*?\}/g,""),t=t.replace(/\{\\info[\s\S]*?\}/g,""),t=t.replace(/\{[^{}]*\}/g,""),t=t.replace(/\\par\b/g,"\n\n"),t=t.replace(/\\line\b/g,"\n"),t=t.replace(/\\[a-z]+\d*\s?/gi,""),t=t.replace(/[{}]/g,""),t=t.replace(/\\u(\d+)\?/g,((e,r)=>String.fromCharCode(parseInt(r))));const a=t.split(/\n\n+/).map((e=>e.trim())).filter(Boolean);return 0===a.length?"<p></p>":a.map((r=>`<p>${e.escapeHtml(r)}</p>`)).join("\n")};
2
- //# sourceMappingURL=convertRtf-BfiBLMig.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-C3_cH6Zy.cjs");exports.default=async function(r){let t=(await e.readAsText(r)).replace(/^\{\\rtf[\s\S]*?(?=\\pard|[^\\{])/i,"").replace(/\}$/g,"");t=t.replace(/\{\\fonttbl[\s\S]*?\}/g,""),t=t.replace(/\{\\colortbl[\s\S]*?\}/g,""),t=t.replace(/\{\\stylesheet[\s\S]*?\}/g,""),t=t.replace(/\{\\info[\s\S]*?\}/g,""),t=t.replace(/\{[^{}]*\}/g,""),t=t.replace(/\\par\b/g,"\n\n"),t=t.replace(/\\line\b/g,"\n"),t=t.replace(/\\[a-z]+\d*\s?/gi,""),t=t.replace(/[{}]/g,""),t=t.replace(/\\u(\d+)\?/g,((e,r)=>String.fromCharCode(parseInt(r))));const a=t.split(/\n\n+/).map((e=>e.trim())).filter(Boolean);return 0===a.length?"<p></p>":a.map((r=>`<p>${e.escapeHtml(r)}</p>`)).join("\n")};
2
+ //# sourceMappingURL=convertRtf-DK-4c2fe.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertRtf-BfiBLMig.cjs","sources":["../src/utils/documentConverter/convertRtf.js"],"sourcesContent":["import { readAsText, escapeHtml } from './shared.js'\n\n/**\n * Convert an RTF file to HTML with basic formatting.\n * Strips RTF control words and extracts plain text, wrapping in paragraphs.\n */\nexport default async function convertRtf(file) {\n const text = await readAsText(file)\n\n // Remove RTF header/footer\n let content = text\n .replace(/^\\{\\\\rtf[\\s\\S]*?(?=\\\\pard|[^\\\\{])/i, '')\n .replace(/\\}$/g, '')\n\n // Remove font tables, color tables, stylesheet blocks\n content = content.replace(/\\{\\\\fonttbl[\\s\\S]*?\\}/g, '')\n content = content.replace(/\\{\\\\colortbl[\\s\\S]*?\\}/g, '')\n content = content.replace(/\\{\\\\stylesheet[\\s\\S]*?\\}/g, '')\n content = content.replace(/\\{\\\\info[\\s\\S]*?\\}/g, '')\n\n // Remove remaining group blocks\n content = content.replace(/\\{[^{}]*\\}/g, '')\n\n // Convert paragraph markers\n content = content.replace(/\\\\par\\b/g, '\\n\\n')\n content = content.replace(/\\\\line\\b/g, '\\n')\n\n // Strip all remaining control words\n content = content.replace(/\\\\[a-z]+\\d*\\s?/gi, '')\n content = content.replace(/[{}]/g, '')\n\n // Convert Unicode escapes like \\\\u8217?\n content = content.replace(/\\\\u(\\d+)\\?/g, (_, code) => String.fromCharCode(parseInt(code)))\n\n // Clean up and wrap in paragraphs\n const paragraphs = content\n .split(/\\n\\n+/)\n .map((p) => p.trim())\n .filter(Boolean)\n\n if (paragraphs.length === 0) return '<p></p>'\n return paragraphs.map((p) => `<p>${escapeHtml(p)}</p>`).join('\\n')\n}\n"],"names":["async","file","content","readAsText","replace","_","code","String","fromCharCode","parseInt","paragraphs","split","map","p","trim","filter","Boolean","length","escapeHtml","join"],"mappings":"wIAMeA,eAA0BC,GAIvC,IAAIC,SAHeC,EAAAA,WAAWF,IAI3BG,QAAQ,qCAAsC,IAC9CA,QAAQ,OAAQ,IAGnBF,EAAUA,EAAQE,QAAQ,yBAA0B,IACpDF,EAAUA,EAAQE,QAAQ,0BAA2B,IACrDF,EAAUA,EAAQE,QAAQ,4BAA6B,IACvDF,EAAUA,EAAQE,QAAQ,sBAAuB,IAGjDF,EAAUA,EAAQE,QAAQ,cAAe,IAGzCF,EAAUA,EAAQE,QAAQ,WAAY,QACtCF,EAAUA,EAAQE,QAAQ,YAAa,MAGvCF,EAAUA,EAAQE,QAAQ,mBAAoB,IAC9CF,EAAUA,EAAQE,QAAQ,QAAS,IAGnCF,EAAUA,EAAQE,QAAQ,eAAe,CAACC,EAAGC,IAASC,OAAOC,aAAaC,SAASH,MAGnF,MAAMI,EAAaR,EAChBS,MAAM,SACNC,KAAKC,GAAMA,EAAEC,SACbC,OAAOC,SAEV,OAA0B,IAAtBN,EAAWO,OAAqB,UAC7BP,EAAWE,KAAKC,GAAM,MAAMK,aAAWL,WAAUM,KAAK,KAC/D"}
1
+ {"version":3,"file":"convertRtf-DK-4c2fe.cjs","sources":["../src/utils/documentConverter/convertRtf.js"],"sourcesContent":["import { readAsText, escapeHtml } from './shared.js'\n\n/**\n * Convert an RTF file to HTML with basic formatting.\n * Strips RTF control words and extracts plain text, wrapping in paragraphs.\n */\nexport default async function convertRtf(file) {\n const text = await readAsText(file)\n\n // Remove RTF header/footer\n let content = text\n .replace(/^\\{\\\\rtf[\\s\\S]*?(?=\\\\pard|[^\\\\{])/i, '')\n .replace(/\\}$/g, '')\n\n // Remove font tables, color tables, stylesheet blocks\n content = content.replace(/\\{\\\\fonttbl[\\s\\S]*?\\}/g, '')\n content = content.replace(/\\{\\\\colortbl[\\s\\S]*?\\}/g, '')\n content = content.replace(/\\{\\\\stylesheet[\\s\\S]*?\\}/g, '')\n content = content.replace(/\\{\\\\info[\\s\\S]*?\\}/g, '')\n\n // Remove remaining group blocks\n content = content.replace(/\\{[^{}]*\\}/g, '')\n\n // Convert paragraph markers\n content = content.replace(/\\\\par\\b/g, '\\n\\n')\n content = content.replace(/\\\\line\\b/g, '\\n')\n\n // Strip all remaining control words\n content = content.replace(/\\\\[a-z]+\\d*\\s?/gi, '')\n content = content.replace(/[{}]/g, '')\n\n // Convert Unicode escapes like \\\\u8217?\n content = content.replace(/\\\\u(\\d+)\\?/g, (_, code) => String.fromCharCode(parseInt(code)))\n\n // Clean up and wrap in paragraphs\n const paragraphs = content\n .split(/\\n\\n+/)\n .map((p) => p.trim())\n .filter(Boolean)\n\n if (paragraphs.length === 0) return '<p></p>'\n return paragraphs.map((p) => `<p>${escapeHtml(p)}</p>`).join('\\n')\n}\n"],"names":["async","file","content","readAsText","replace","_","code","String","fromCharCode","parseInt","paragraphs","split","map","p","trim","filter","Boolean","length","escapeHtml","join"],"mappings":"wIAMeA,eAA0BC,GAIvC,IAAIC,SAHeC,EAAAA,WAAWF,IAI3BG,QAAQ,qCAAsC,IAC9CA,QAAQ,OAAQ,IAGnBF,EAAUA,EAAQE,QAAQ,yBAA0B,IACpDF,EAAUA,EAAQE,QAAQ,0BAA2B,IACrDF,EAAUA,EAAQE,QAAQ,4BAA6B,IACvDF,EAAUA,EAAQE,QAAQ,sBAAuB,IAGjDF,EAAUA,EAAQE,QAAQ,cAAe,IAGzCF,EAAUA,EAAQE,QAAQ,WAAY,QACtCF,EAAUA,EAAQE,QAAQ,YAAa,MAGvCF,EAAUA,EAAQE,QAAQ,mBAAoB,IAC9CF,EAAUA,EAAQE,QAAQ,QAAS,IAGnCF,EAAUA,EAAQE,QAAQ,eAAe,CAACC,EAAGC,IAASC,OAAOC,aAAaC,SAASH,MAGnF,MAAMI,EAAaR,EAChBS,MAAM,SACNC,KAAKC,GAAMA,EAAEC,SACbC,OAAOC,SAEV,OAA0B,IAAtBN,EAAWO,OAAqB,UAC7BP,EAAWE,KAAKC,GAAM,MAAMK,aAAWL,WAAUM,KAAK,KAC/D"}
@@ -0,0 +1,2 @@
1
+ import{a as e,e as a}from"./index-Cv62E14a.js";async function r(r){let p=(await e(r)).replace(/^\{\\rtf[\s\S]*?(?=\\pard|[^\\{])/i,"").replace(/\}$/g,"");p=p.replace(/\{\\fonttbl[\s\S]*?\}/g,""),p=p.replace(/\{\\colortbl[\s\S]*?\}/g,""),p=p.replace(/\{\\stylesheet[\s\S]*?\}/g,""),p=p.replace(/\{\\info[\s\S]*?\}/g,""),p=p.replace(/\{[^{}]*\}/g,""),p=p.replace(/\\par\b/g,"\n\n"),p=p.replace(/\\line\b/g,"\n"),p=p.replace(/\\[a-z]+\d*\s?/gi,""),p=p.replace(/[{}]/g,""),p=p.replace(/\\u(\d+)\?/g,((e,a)=>String.fromCharCode(parseInt(a))));const l=p.split(/\n\n+/).map((e=>e.trim())).filter(Boolean);return 0===l.length?"<p></p>":l.map((e=>`<p>${a(e)}</p>`)).join("\n")}export{r as default};
2
+ //# sourceMappingURL=convertRtf-JWu514-h.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertRtf-08CoScGD.js","sources":["../src/utils/documentConverter/convertRtf.js"],"sourcesContent":["import { readAsText, escapeHtml } from './shared.js'\n\n/**\n * Convert an RTF file to HTML with basic formatting.\n * Strips RTF control words and extracts plain text, wrapping in paragraphs.\n */\nexport default async function convertRtf(file) {\n const text = await readAsText(file)\n\n // Remove RTF header/footer\n let content = text\n .replace(/^\\{\\\\rtf[\\s\\S]*?(?=\\\\pard|[^\\\\{])/i, '')\n .replace(/\\}$/g, '')\n\n // Remove font tables, color tables, stylesheet blocks\n content = content.replace(/\\{\\\\fonttbl[\\s\\S]*?\\}/g, '')\n content = content.replace(/\\{\\\\colortbl[\\s\\S]*?\\}/g, '')\n content = content.replace(/\\{\\\\stylesheet[\\s\\S]*?\\}/g, '')\n content = content.replace(/\\{\\\\info[\\s\\S]*?\\}/g, '')\n\n // Remove remaining group blocks\n content = content.replace(/\\{[^{}]*\\}/g, '')\n\n // Convert paragraph markers\n content = content.replace(/\\\\par\\b/g, '\\n\\n')\n content = content.replace(/\\\\line\\b/g, '\\n')\n\n // Strip all remaining control words\n content = content.replace(/\\\\[a-z]+\\d*\\s?/gi, '')\n content = content.replace(/[{}]/g, '')\n\n // Convert Unicode escapes like \\\\u8217?\n content = content.replace(/\\\\u(\\d+)\\?/g, (_, code) => String.fromCharCode(parseInt(code)))\n\n // Clean up and wrap in paragraphs\n const paragraphs = content\n .split(/\\n\\n+/)\n .map((p) => p.trim())\n .filter(Boolean)\n\n if (paragraphs.length === 0) return '<p></p>'\n return paragraphs.map((p) => `<p>${escapeHtml(p)}</p>`).join('\\n')\n}\n"],"names":["async","convertRtf","file","content","readAsText","replace","_","code","String","fromCharCode","parseInt","paragraphs","split","map","p","trim","filter","Boolean","length","escapeHtml","join"],"mappings":"iDAMeA,eAAeC,EAAWC,GAIvC,IAAIC,SAHeC,EAAWF,IAI3BG,QAAQ,qCAAsC,IAC9CA,QAAQ,OAAQ,IAGnBF,EAAUA,EAAQE,QAAQ,yBAA0B,IACpDF,EAAUA,EAAQE,QAAQ,0BAA2B,IACrDF,EAAUA,EAAQE,QAAQ,4BAA6B,IACvDF,EAAUA,EAAQE,QAAQ,sBAAuB,IAGjDF,EAAUA,EAAQE,QAAQ,cAAe,IAGzCF,EAAUA,EAAQE,QAAQ,WAAY,QACtCF,EAAUA,EAAQE,QAAQ,YAAa,MAGvCF,EAAUA,EAAQE,QAAQ,mBAAoB,IAC9CF,EAAUA,EAAQE,QAAQ,QAAS,IAGnCF,EAAUA,EAAQE,QAAQ,eAAe,CAACC,EAAGC,IAASC,OAAOC,aAAaC,SAASH,MAGnF,MAAMI,EAAaR,EAChBS,MAAM,SACNC,KAAKC,GAAMA,EAAEC,SACbC,OAAOC,SAEV,OAA0B,IAAtBN,EAAWO,OAAqB,UAC7BP,EAAWE,KAAKC,GAAM,MAAMK,EAAWL,WAAUM,KAAK,KAC/D"}
1
+ {"version":3,"file":"convertRtf-JWu514-h.js","sources":["../src/utils/documentConverter/convertRtf.js"],"sourcesContent":["import { readAsText, escapeHtml } from './shared.js'\n\n/**\n * Convert an RTF file to HTML with basic formatting.\n * Strips RTF control words and extracts plain text, wrapping in paragraphs.\n */\nexport default async function convertRtf(file) {\n const text = await readAsText(file)\n\n // Remove RTF header/footer\n let content = text\n .replace(/^\\{\\\\rtf[\\s\\S]*?(?=\\\\pard|[^\\\\{])/i, '')\n .replace(/\\}$/g, '')\n\n // Remove font tables, color tables, stylesheet blocks\n content = content.replace(/\\{\\\\fonttbl[\\s\\S]*?\\}/g, '')\n content = content.replace(/\\{\\\\colortbl[\\s\\S]*?\\}/g, '')\n content = content.replace(/\\{\\\\stylesheet[\\s\\S]*?\\}/g, '')\n content = content.replace(/\\{\\\\info[\\s\\S]*?\\}/g, '')\n\n // Remove remaining group blocks\n content = content.replace(/\\{[^{}]*\\}/g, '')\n\n // Convert paragraph markers\n content = content.replace(/\\\\par\\b/g, '\\n\\n')\n content = content.replace(/\\\\line\\b/g, '\\n')\n\n // Strip all remaining control words\n content = content.replace(/\\\\[a-z]+\\d*\\s?/gi, '')\n content = content.replace(/[{}]/g, '')\n\n // Convert Unicode escapes like \\\\u8217?\n content = content.replace(/\\\\u(\\d+)\\?/g, (_, code) => String.fromCharCode(parseInt(code)))\n\n // Clean up and wrap in paragraphs\n const paragraphs = content\n .split(/\\n\\n+/)\n .map((p) => p.trim())\n .filter(Boolean)\n\n if (paragraphs.length === 0) return '<p></p>'\n return paragraphs.map((p) => `<p>${escapeHtml(p)}</p>`).join('\\n')\n}\n"],"names":["async","convertRtf","file","content","readAsText","replace","_","code","String","fromCharCode","parseInt","paragraphs","split","map","p","trim","filter","Boolean","length","escapeHtml","join"],"mappings":"+CAMeA,eAAeC,EAAWC,GAIvC,IAAIC,SAHeC,EAAWF,IAI3BG,QAAQ,qCAAsC,IAC9CA,QAAQ,OAAQ,IAGnBF,EAAUA,EAAQE,QAAQ,yBAA0B,IACpDF,EAAUA,EAAQE,QAAQ,0BAA2B,IACrDF,EAAUA,EAAQE,QAAQ,4BAA6B,IACvDF,EAAUA,EAAQE,QAAQ,sBAAuB,IAGjDF,EAAUA,EAAQE,QAAQ,cAAe,IAGzCF,EAAUA,EAAQE,QAAQ,WAAY,QACtCF,EAAUA,EAAQE,QAAQ,YAAa,MAGvCF,EAAUA,EAAQE,QAAQ,mBAAoB,IAC9CF,EAAUA,EAAQE,QAAQ,QAAS,IAGnCF,EAAUA,EAAQE,QAAQ,eAAe,CAACC,EAAGC,IAASC,OAAOC,aAAaC,SAASH,MAGnF,MAAMI,EAAaR,EAChBS,MAAM,SACNC,KAAKC,GAAMA,EAAEC,SACbC,OAAOC,SAEV,OAA0B,IAAtBN,EAAWO,OAAqB,UAC7BP,EAAWE,KAAKC,GAAM,MAAMK,EAAWL,WAAUM,KAAK,KAC/D"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-iRikoCdK.cjs");exports.default=async function(t){return(await e.readAsText(t)).split(/\n\n+/).map((t=>{const r=e.escapeHtml(t.trim());return r?`<p>${r.replace(/\n/g,"<br>")}</p>`:""})).filter(Boolean).join("\n")};
2
- //# sourceMappingURL=convertText-BpgzHRuh.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-C3_cH6Zy.cjs");exports.default=async function(t){return(await e.readAsText(t)).split(/\n\n+/).map((t=>{const r=e.escapeHtml(t.trim());return r?`<p>${r.replace(/\n/g,"<br>")}</p>`:""})).filter(Boolean).join("\n")};
2
+ //# sourceMappingURL=convertText-BHUD1tLm.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertText-BpgzHRuh.cjs","sources":["../src/utils/documentConverter/convertText.js"],"sourcesContent":["import { readAsText, escapeHtml } from './shared.js'\n\n/**\n * Convert a plain text file to HTML paragraphs.\n */\nexport default async function convertText(file) {\n const text = await readAsText(file)\n return text\n .split(/\\n\\n+/)\n .map((para) => {\n const escaped = escapeHtml(para.trim())\n if (!escaped) return ''\n return `<p>${escaped.replace(/\\n/g, '<br>')}</p>`\n })\n .filter(Boolean)\n .join('\\n')\n}\n"],"names":["async","file","readAsText","split","map","para","escaped","escapeHtml","trim","replace","filter","Boolean","join"],"mappings":"wIAKeA,eAA2BC,GAExC,aADmBC,EAAAA,WAAWD,IAE3BE,MAAM,SACNC,KAAKC,IACJ,MAAMC,EAAUC,EAAAA,WAAWF,EAAKG,QAChC,OAAKF,EACE,MAAMA,EAAQG,QAAQ,MAAO,cADf,EACsB,IAE5CC,OAAOC,SACPC,KAAK,KACV"}
1
+ {"version":3,"file":"convertText-BHUD1tLm.cjs","sources":["../src/utils/documentConverter/convertText.js"],"sourcesContent":["import { readAsText, escapeHtml } from './shared.js'\n\n/**\n * Convert a plain text file to HTML paragraphs.\n */\nexport default async function convertText(file) {\n const text = await readAsText(file)\n return text\n .split(/\\n\\n+/)\n .map((para) => {\n const escaped = escapeHtml(para.trim())\n if (!escaped) return ''\n return `<p>${escaped.replace(/\\n/g, '<br>')}</p>`\n })\n .filter(Boolean)\n .join('\\n')\n}\n"],"names":["async","file","readAsText","split","map","para","escaped","escapeHtml","trim","replace","filter","Boolean","join"],"mappings":"wIAKeA,eAA2BC,GAExC,aADmBC,EAAAA,WAAWD,IAE3BE,MAAM,SACNC,KAAKC,IACJ,MAAMC,EAAUC,EAAAA,WAAWF,EAAKG,QAChC,OAAKF,EACE,MAAMA,EAAQG,QAAQ,MAAO,cADf,EACsB,IAE5CC,OAAOC,SACPC,KAAK,KACV"}
@@ -0,0 +1,2 @@
1
+ import{a as n,e as a}from"./index-Cv62E14a.js";async function r(r){return(await n(r)).split(/\n\n+/).map((n=>{const r=a(n.trim());return r?`<p>${r.replace(/\n/g,"<br>")}</p>`:""})).filter(Boolean).join("\n")}export{r as default};
2
+ //# sourceMappingURL=convertText-DCGItleK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertText-sa7PxKTe.js","sources":["../src/utils/documentConverter/convertText.js"],"sourcesContent":["import { readAsText, escapeHtml } from './shared.js'\n\n/**\n * Convert a plain text file to HTML paragraphs.\n */\nexport default async function convertText(file) {\n const text = await readAsText(file)\n return text\n .split(/\\n\\n+/)\n .map((para) => {\n const escaped = escapeHtml(para.trim())\n if (!escaped) return ''\n return `<p>${escaped.replace(/\\n/g, '<br>')}</p>`\n })\n .filter(Boolean)\n .join('\\n')\n}\n"],"names":["async","convertText","file","readAsText","split","map","para","escaped","escapeHtml","trim","replace","filter","Boolean","join"],"mappings":"iDAKeA,eAAeC,EAAYC,GAExC,aADmBC,EAAWD,IAE3BE,MAAM,SACNC,KAAKC,IACJ,MAAMC,EAAUC,EAAWF,EAAKG,QAChC,OAAKF,EACE,MAAMA,EAAQG,QAAQ,MAAO,cADf,EACsB,IAE5CC,OAAOC,SACPC,KAAK,KACV"}
1
+ {"version":3,"file":"convertText-DCGItleK.js","sources":["../src/utils/documentConverter/convertText.js"],"sourcesContent":["import { readAsText, escapeHtml } from './shared.js'\n\n/**\n * Convert a plain text file to HTML paragraphs.\n */\nexport default async function convertText(file) {\n const text = await readAsText(file)\n return text\n .split(/\\n\\n+/)\n .map((para) => {\n const escaped = escapeHtml(para.trim())\n if (!escaped) return ''\n return `<p>${escaped.replace(/\\n/g, '<br>')}</p>`\n })\n .filter(Boolean)\n .join('\\n')\n}\n"],"names":["async","convertText","file","readAsText","split","map","para","escaped","escapeHtml","trim","replace","filter","Boolean","join"],"mappings":"+CAKeA,eAAeC,EAAYC,GAExC,aADmBC,EAAWD,IAE3BE,MAAM,SACNC,KAAKC,IACJ,MAAMC,EAAUC,EAAWF,EAAKG,QAChC,OAAKF,EACE,MAAMA,EAAQG,QAAQ,MAAO,cADf,EACsB,IAE5CC,OAAOC,SACPC,KAAK,KACV"}