PageSourceSearch

https://blackall.ai/assets/file-parser-D2Qam5wo.js

js blackall.ai collected 2026-09-24 14:29:23 UTC 5,997 bytes, 10 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mammoth.browser-D_u-ck-e.js","assets/index-CuQCsY3d.js","assets/index-DrgGO0ls.css","assets/_commonjs-dynamic-modules-TDtrdbi3.js","assets/index-DBAh25Oq.js","assets/jszip.min-mt4_ORBo.js"])))=>i.map(i=>d[i]);
2import{_ as d}from"./index-CuQCsY3d.js";const g=5*1024*1024,_=25*1024*1024,u=25*1024*1024,z=8*1024*1024,p=2e5,k=new Set(["txt","md","markdown","rtf","log","csv","tsv","json","yaml","yml","xml","html","htm","svg","js","mjs","cjs","jsx","ts","tsx","py","rb","go","rs","c","cc","cpp","cxx","h","hh","hpp","java","kt","kts","swift","m","mm","sh","bash","zsh","fish","ps1","bat","cmd","php","pl","lua","r","dart","scala","clj","cljs","elm","ex","exs","erl","sql","toml","ini","cfg","conf","env","editorconfig","gitignore","dockerfile","makefile","tex","bib","vue","astro","svelte","graphql","gql","proto"]),y=new Set(["image/png","image/jpeg","image/jpg","image/webp","image/gif","image/bmp","image/svg+xml"]);function E(t){const n=t.lastIndexOf(".");return n>=0?t.slice(n+1).toLowerCase():""}function v(t){if(!t)return!1;const n=t.slice(0,4096);for(let e=0;e<n.length;e++)if(n.charCodeAt(e)===0)return!1;let r=0;for(let e=0;e<n.length;e++)n.charCodeAt(e)===65533&&r++;return r/n.length<.1}function A(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/1024/1024).toFixed(1)} MB`}function l(t){return new Promise((n,r)=>{const e=new FileReader;e.onload=()=>n(String(e.result||"")),e.onerror=()=>r(new Error("파일 읽기 실패")),e.readAsText(t)})}function S(t){return new Promise((n,r)=>{const e=new FileReader;e.onload=()=>n(String(e.result||"")),e.onerror=()=>r(new Error("파일 읽기 실패")),e.readAsDataURL(t)})}function h(t){return new Promise((n,r)=>{const e=new FileReader;e.onload=()=>n(e.result),e.onerror=()=>r(new Error("파일 읽기 실패")),e.readAsArrayBuffer(t)})}function m(t){return t.length<=p?t:t.slice(0,p)+`
3
4[…문서가 너무 길어 ${p.toLocaleString()}자에서 잘렸어요. 원본 길이 ${t.length.toLocaleString()}자]`}async function T(t){const n=await d(()=>import("./pdf-1xBa-HTX.js"),[]),r=(await d(async()=>{const{default:o}=await import("./pdf.worker-CRXXDAOq.js");return{default:o}},[])).default;n.GlobalWorkerOptions.workerSrc=r;const e=await h(t),s=await n.getDocument({data:e}).promise,a=[],c=Math.min(s.numPages,300);for(let o=1;o<=c;o++){const x=(await(await s.getPage(o)).getTextContent()).items.map(i=>"str"in i?i.str:"").join(" ");a.push(`--- p.${o} ---
5${x.trim()}`)}return a.join(`
6
7`)}async function L(t){const n=await d(()=>import("./mammoth.browser-D_u-ck-e.js").then(a=>a.m),__vite__mapDeps([0,1,2,3])).catch(async()=>d(()=>import("./index-DBAh25Oq.js").then(a=>a.i),__vite__mapDeps([4,1,2,5,3]))),r=n.default||n,e=await h(t),s=await r.extractRawText({arrayBuffer:e});return String(s?.value||"")}async function M(t){const n=await d(()=>import("./xlsx-DGuHH-KN.js"),[]),r=await h(t),e=n.read(r,{type:"array"}),s=[];for(const a of e.SheetNames){const c=e.Sheets[a],o=n.utils.sheet_to_csv(c);o.trim()&&s.push(`### Sheet: ${a}
8${o}`)}return s.join(`
9
10`)}async function X(t){const n=await S(t);if(t.type==="image/svg+xml"||t.type==="image/gif")return n;try{const r=await new Promise((w,x)=>{const i=new Image;i.onload=()=>w(i),i.onerror=()=>x(new Error("이미지 로드 실패")),i.src=n}),e=1024;let{naturalWidth:s,naturalHeight:a}=r;if(s<=e&&a<=e)return n;const c=Math.min(e/s,e/a);s=Math.round(s*c),a=Math.round(a*c);const o=document.createElement("canvas");return o.width=s,o.height=a,o.getContext("2d").drawImage(r,0,0,s,a),o.toDataURL("image/webp",.85)}catch{return n}}async function P(t){const n=E(t.name),r=(t.type||"").toLowerCase();if(y.has(r)||["png","jpg","jpeg","webp","gif","bmp","svg"].includes(n)){if(t.size>z)return{name:t.name,size:t.size,kind:"image",text:"",error:`이미지가 너무 커요 (최대 ${z/1024/1024}MB)`};try{const e=await X(t);return{name:t.name,size:t.size,kind:"image",text:"",imageDataUrl:e}}catch(e){return{name:t.name,size:t.size,kind:"image",text:"",error:e?.message||"이미지 읽기 실패"}}}if(r==="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"||r==="application/vnd.ms-excel"||n==="xlsx"||n==="xls"){if(t.size>u)return{name:t.name,size:t.size,kind:"xlsx",text:"",error:`XLSX가 너무 커요 (최대 ${u/1024/1024}MB)`};try{const e=await M(t);return{name:t.name,size:t.size,kind:"xlsx",text:m(e)}}catch(e){return{name:t.name,size:t.size,kind:"xlsx",text:"",error:e?.message||"XLSX 파싱 실패"}}}if(r==="application/pdf"||n==="pdf"){if(t.size>_)return{name:t.name,size:t.size,kind:"pdf",text:"",error:`PDF가 너무 커요 (최대 ${_/1024/1024}MB)`};try{const e=await T(t);return{name:t.name,size:t.size,kind:"pdf",text:m(e)}}catch(e){return{name:t.name,size:t.size,kind:"pdf",text:"",error:e?.message||"PDF 파싱 실패"}}}if(r==="application/vnd.openxmlformats-officedocument.wordprocessingml.document"||n==="docx"){if(t.size>u)return{name:t.name,size:t.size,kind:"docx",text:"",error:`DOCX가 너무 커요 (최대 ${u/1024/1024}MB)`};try{const e=await L(t);return{name:t.name,size:t.size,kind:"docx",text:m(e)}}catch(e){return{name:t.name,size:t.size,kind:"docx",text:"",error:e?.message||"DOCX 파싱 실패"}}}
10if(r.startsWith("text/")||r==="application/json"||k.has(n)||t.name.toLowerCase()==="dockerfile"||t.name.toLowerCase()==="makefile"){if(t.size>g)return{name:t.name,size:t.size,kind:"text",text:"",error:`텍스트가 너무 커요 (최대 ${g/1024/1024}MB)`};try{const e=await l(t);return{name:t.name,size:t.size,kind:"text",text:m(e)}}catch(e){return{name:t.name,size:t.size,kind:"text",text:"",error:e?.message||"읽기 실패"}}}if(t.size<=g)try{const e=await l(t);if(v(e))return{name:t.name,size:t.size,kind:"text",text:m(e)}}catch{}return{name:t.name,size:t.size,kind:"binary",text:`(바이너리 첨부: ${t.name} · ${A(t.size)} · ${n?"."+n:r||"형식 미상"} · 텍스트 추출 불가 파일)`}}const j="";export{j as ACCEPT_ALL,P as parseAttachment};

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.