UNPKG

copilot-proxy-api

Version:

Self-hosted GitHub Copilot bridge for Claude Code and Codex CLI with OpenAI Responses, Anthropic Messages, streaming resilience, and context management.

4 lines (3 loc) 1.26 kB
import{t as e}from"./error-wiGHep5P.mjs";import t from"consola";import{PDFParse as n}from"pdf-parse";const r=`Invalid or corrupted PDF document`,i=5e5;function a(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.codePointAt(e)??0;return n}function o(e){let t=(e instanceof Error?e.message:String(e)).toLowerCase();return t.includes(`password`)||t.includes(`encrypted`)||t.includes(`invalid pdf`)&&t.includes(`encrypt`)}function s(t){return new e(t,new Response(JSON.stringify({type:`error`,error:{type:`invalid_request_error`,message:t}}),{status:400,statusText:`Bad Request`,headers:{"content-type":`application/json`}}))}async function c(e){let c;try{c=a(e)}catch{throw s(r)}if(c.length<5||c[0]!==37||c[1]!==80||c[2]!==68||c[3]!==70||c[4]!==45)throw s(r);let l;try{let e=await new n({data:c}).getText();l={text:e.text,total:e.total}}catch(e){throw t.warn(`PDF parse failed:`,e),o(e)?s(`Cannot read password-protected or encrypted PDF document`):s(r)}let u=l.text.trim();if(u.length===0)throw s(`PDF document contains no extractable text`);let d=u.length>i;return{text:d?u.slice(0,i)+` […document truncated for length…]`:u,pageCount:l.total,truncated:d}}export{c as extractPdfText}; //# sourceMappingURL=pdf-3rCh0vDg.mjs.map