1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mammoth.browser-B9qMMNvg.js","assets/index-B4NvAS2-.js","assets/index-BUyo3I5K.css","assets/_commonjs-dynamic-modules-TDtrdbi3.js","assets/index-BgpjtjBX.js","assets/jszip.min-DerzmEG9.js"])))=>i.map(i=>d[i]); 2import{_ as p}from"./index-B4NvAS2-.js";import{D as m,r as l,b as d,a as A,s as w,c as N,d as g,e as v,f as L,g as $}from"./App-BEYngWAO.js";import{o as O}from"./pdfjs-BvNkqA6g.js";import"./supabase-CIFY1g0R.js";import"./index-DenaYTmZ.js";import"./iap-vsAHK0cV.js";import"./index-DSLJMcfG.js";const D=["script","style","iframe","object","embed","link","meta","form","input","button","textarea","select"];function h(n,t){const e=n.trim().toLowerCase();return!!(e.startsWith("#")||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("mailto:")||t&&/^data:image\/(png|jpe?g|gif|webp|bmp);/.test(e))}function T(n){return new DOMParser().parseFromString(`<!DOCTYPE html><html><body>${n}</body></html>`,"text/html")}function P(n){const t=T(n);for(const e of D)t.querySelectorAll(e).forEach(r=>r.remove());return t.body.querySelectorAll("*").forEach(e=>{for(const r of Array.from(e.attributes)){const o=r.name.toLowerCase();(o.startsWith("on")||o==="style"||o==="srcset"||o==="href"&&!h(r.value,!1)||o==="src"&&!h(r.value,e.tagName==="IMG"))&&e.removeAttribute(r.name)}}),t.body.innerHTML}function f(n){if(n.nodeType===Node.TEXT_NODE)return(n.textContent??"").replace(/\s+/g," ").replace(/([*_`[\]])/g,"\\$1");if(n.nodeType!==Node.ELEMENT_NODE)return"";const t=n,e=()=>Array.from(t.childNodes).map(f).join("");switch(t.tagName){case"STRONG":case"B":{const r=e().trim();return r?`**${r}**`:""}case"EM":case"I":{const r=e().trim();return r?`*${r}*`:""}case"A":{const r=e().trim(),o=t.getAttribute("href");return o&&h(o,!1)&&!o.startsWith("#")?`[${r||o}](${o})`:r}case"BR":return` 3`;case"IMG":return t.getAttribute("alt")?`(${t.getAttribute("alt")})`:"";case"CODE":return`\`${t.textContent??""}\``;default:return e()}}function j(n){return Array.from(n.childNodes).map(f).join(" ").replace(/\|/g,"\\|").replace(/\s+/g," ").trim()}function S(n){const t=Array.from(n.querySelectorAll("tr")).map(a=>Array.from(a.children).map(j));if(!t.length)return"";const e=Math.max(...t.map(a=>a.length)),r=a=>[...a,...Array(e-a.length).fill("")],o=a=>`| ${r(a).join(" | ")} |`;return[o(t[0]),`| ${Array(e).fill("---").join(" | ")} |`,...t.slice(1).map(o)].join(` 4`)}function E(n,t){const e=n.tagName==="OL",r=[];let o=1;for(const a of Array.from(n.children)){if(a.tagName!=="LI")continue;const c=Array.from(a.childNodes).filter(s=>!(s.nodeType===Node.ELEMENT_NODE&&["UL","OL"].includes(s.tagName))).map(f).join(" ").replace(/\s+/g," ").trim();r.push(`${" ".repeat(t)}${e?`${o++}.`:"-"} ${c}`);for(const s of Array.from(a.children))(s.tagName==="UL"||s.tagName==="OL")&&r.push(E(s,t+1))}return r.join(` 5`)}function C(n){const t=n.tagName,e=/^H([1-6])$/.exec(t);if(e){const r=Array.from(n.childNodes).map(f).join("").trim();return r?`${"#".repeat(Number(e[1]))} ${r}`:""}return t==="P"?Array.from(n.childNodes).map(f).join("").trim():t==="UL"||t==="OL"?E(n,0):t==="TABLE"?S(n):t==="BLOCKQUOTE"?y(n).split(` 6`).map(r=>`> ${r}`).join(` 7`):t==="PRE"?"```\n"+(n.textContent??"")+"\n```":t==="HR"?"---":t==="DIV"||t==="SECTION"||t==="ARTICLE"?y(n):Array.from(n.childNodes).map(f).join("").trim()}function y(n){const t=[];let e="";for(const r of Array.from(n.childNodes))if(r.nodeType===Node.ELEMENT_NODE&&/^(H[1-6]|P|UL|OL|TABLE|BLOCKQUOTE|PRE|HR|DIV|SECTION|ARTICLE)$/.test(r.tagName)){e.trim()&&t.push(e.trim()),e="";const a=C(r);a&&t.push(a)}else e+=f(r);return e.trim()&&t.push(e.trim()),t.join(` 8 9`)}function I(n){return y(T(n).body).replace(/\n{3,}/g,` 10 11`).trim()+` 12`}const R=500;async function x(){const n=await p(()=>import("./mammoth.browser-B9qMMNvg.js").then(t=>t.m),__vite__mapDeps([0,1,2,3])).catch(async()=>p(()=>import("./index-BgpjtjBX.js").then(t=>t.i),__vite__mapDeps([4,1,2,5,3])));return n.default||n}async function M(n){const t=await l(n),e=await x();let r;try{r=await e.convertToHtml({arrayBuffer:t})}
12catch{throw new m("wrongType")}const o=P(String(r?.value||""));if(!o.trim())throw new m("empty");return o}async function q(n,t,e){if(t==="pdf"&&!e)throw new m("popupBlocked");let r;try{r=await M(n)}catch(a){throw e?.close(),a}const o=d(n.name);t==="pdf"&&e?(e.document.write(A(r,{title:o})),e.document.close(),e.focus(),setTimeout(()=>e.print(),350)):t==="doc"?w(r,o):t==="html"?N(r,o):g(I(r),`${o}.md`,"text/markdown;charset=utf-8")}async function b(n){const t=await O(await l(n)),e=t.numPages,r=Math.min(e,R),o=[];for(let a=1;a<=r;a++){const c=await t.getPage(a),s=await c.getTextContent();let i="";for(const u of s.items)typeof u.str=="string"&&(i+=u.str+(u.hasEOL?` 13`:" "));o.push(i.replace(/[ \t]+\n/g,` 14`).replace(/[ \t]{2,}/g," ").trim()),c.cleanup?.()}return await t.destroy?.(),{pages:o,total:e,truncated:e>r}}function _(n){if(!n.pages.some(t=>t.trim()))throw new m("empty")}async function z(n,t){const e=await b(n);_(e);const r=d(n.name);if(t==="txt"){const o=e.pages.map((a,c)=>`--- ${c+1} --- 15${a}`).join(` 16 17`);g(o+` 18`,`${r}.txt`)}else{const o=e.pages.map((a,c)=>{const s=a.split(/\n{2,}|\n/).filter(i=>i.trim()).map(i=>`<p>${v(i.trim())}</p>`).join("");return c===0?s:`<br style="page-break-before:always" clear="all">${s}`}).join("");w(o,r)}return e}async function K(n){const t=await l(n),e=await p(()=>import("./xlsx-DGuHH-KN.js"),[]);let r;try{r=e.read(t,{type:"array"})}catch{throw new m("wrongType")}const o=d(n.name),a=[],c=r.SheetNames??[];for(const s of c){const i=e.utils.sheet_to_csv(r.Sheets[s]);if(!i.replace(/[,\s]/g,""))continue;const u=String(s).replace(/[\\/:*?"<>|]/g," ").trim()||"sheet";a.push({name:c.length>1?`${o}_${u}.csv`:`${o}.csv`,data:"\uFEFF"+i})}if(!a.length)throw new m("empty");return await $(a,`${o}_csv.zip`,"text/csv;charset=utf-8"),a.length}async function Q(n){const t=await l(n);let e=new TextDecoder("utf-8").decode(t);if(e.includes("�"))try{e=new TextDecoder("euc-kr").decode(t)}catch{}if(e=e.replace(/^/,""),!e.trim())throw new m("empty");const r=await p(()=>import("./xlsx-DGuHH-KN.js"),[]),o=r.read(e,{type:"string",raw:!0}),a=r.write(o,{bookType:"xlsx",type:"array"});L(a,`${d(n.name)}.xlsx`,"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")}const B=["txt","md","csv","docx","pdf"];async function W(n){const t=n.name.slice(n.name.lastIndexOf(".")+1).toLowerCase();if(!B.includes(t))throw new m("wrongType");if(t==="pdf"){const r=await b(n);return _(r),r.pages.join(` 19 20`)}const e=await l(n);if(t==="docx"){const r=await x();try{const o=await r.extractRawText({arrayBuffer:e});return String(o?.value||"")}catch{throw new m("wrongType")}}return new TextDecoder("utf-8").decode(e).replace(/^/,"")}export{R as MAX_PDF_PAGES,B as TEXT_SOURCE_EXTS,q as convertDocx,z as convertPdfText,Q as csvToXlsx,W as extractText,b as pdfPagesText,K as xlsxToCsv};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.