@elizaos/plugin-pdf 2.0.0-alpha.12 → 2.0.0-alpha.13
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.
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{logger as x,Service as y,ServiceType as h}from"@elizaos/core";import w from"pdfjs-dist";var{getDocument:m}=w;function P(e){return"str"in e}class f extends y{static serviceType=h.PDF;capabilityDescription="The agent is able to convert PDF files to text";static async start(e){return new f(e)}static async stop(e){let t=e.getService(h.PDF);if(t)await t.stop()}async stop(){}async convertPdfToText(e){try{let t=new Uint8Array(e),a=await m({data:t}).promise,i=a.numPages,n=[];for(let s=1;s<=i;s++){let o=(await(await a.getPage(s)).getTextContent()).items.filter(P).map((
|
|
2
|
-
`);return this.cleanUpContent(r)}catch(t){throw x.error(`PdfService: Failed to convert PDF to text - error: ${t}, bufferSize: ${e.length}`),t}}async convertPdfToTextWithOptions(e,t={}){try{let a=new Uint8Array(e),i=await m({data:a}).promise,n=i.numPages,r=Math.max(1,t.startPage||1),s=Math.min(n,t.endPage||n),
|
|
3
|
-
`);if(t.cleanContent!==!1)c=this.cleanUpContent(c);return{success:!0,text:c,pageCount:n}}catch(a){return{success:!1,error:a instanceof Error?a.message:String(a)}}}async getDocumentInfo(e){let t=new Uint8Array(e),a=await m({data:t}).promise,i=a.numPages,r=(await a.getMetadata()).info,s={title:r.Title,author:r.Author,subject:r.Subject,keywords:r.Keywords,creator:r.Creator,producer:r.Producer,creationDate:r.CreationDate?new Date(r.CreationDate):void 0,modificationDate:r.ModDate?new Date(r.ModDate):void 0},
|
|
4
|
-
`)),pages:
|
|
1
|
+
import{logger as x,Service as y,ServiceType as h}from"@elizaos/core";import*as w from"pdfjs-dist/legacy/build/pdf.mjs";var{getDocument:m}=w;function P(e){return"str"in e}class f extends y{static serviceType=h.PDF;capabilityDescription="The agent is able to convert PDF files to text";static async start(e){return new f(e)}static async stop(e){let t=e.getService(h.PDF);if(t)await t.stop()}async stop(){}async convertPdfToText(e){try{let t=new Uint8Array(e),a=await m({data:t}).promise,i=a.numPages,n=[];for(let s=1;s<=i;s++){let o=(await(await a.getPage(s)).getTextContent()).items.filter(P).map((g)=>g.str).join(" ");n.push(o)}let r=n.join(`
|
|
2
|
+
`);return this.cleanUpContent(r)}catch(t){throw x.error(`PdfService: Failed to convert PDF to text - error: ${t}, bufferSize: ${e.length}`),t}}async convertPdfToTextWithOptions(e,t={}){try{let a=new Uint8Array(e),i=await m({data:a}).promise,n=i.numPages,r=Math.max(1,t.startPage||1),s=Math.min(n,t.endPage||n),d=[];for(let o=r;o<=s;o++){let l=(await(await i.getPage(o)).getTextContent()).items.filter(P).map((p)=>p.str).join(t.preserveWhitespace?"":" ");d.push(l)}let c=d.join(`
|
|
3
|
+
`);if(t.cleanContent!==!1)c=this.cleanUpContent(c);return{success:!0,text:c,pageCount:n}}catch(a){return{success:!1,error:a instanceof Error?a.message:String(a)}}}async getDocumentInfo(e){let t=new Uint8Array(e),a=await m({data:t}).promise,i=a.numPages,r=(await a.getMetadata()).info,s={title:r.Title,author:r.Author,subject:r.Subject,keywords:r.Keywords,creator:r.Creator,producer:r.Producer,creationDate:r.CreationDate?new Date(r.CreationDate):void 0,modificationDate:r.ModDate?new Date(r.ModDate):void 0},d=[],c=[];for(let o=1;o<=i;o++){let g=await a.getPage(o),u=g.getViewport({scale:1}),p=(await g.getTextContent()).items.filter(P).map((C)=>C.str).join(" ");d.push({pageNumber:o,width:u.width,height:u.height,text:this.cleanUpContent(p)}),c.push(p)}return{pageCount:i,metadata:s,text:this.cleanUpContent(c.join(`
|
|
4
|
+
`)),pages:d}}cleanUpContent(e){try{return e.split("").filter((i)=>{let n=i.charCodeAt(0);return!(n===0||n>=1&&n<=8||n>=11&&n<=12||n>=14&&n<=31||n===127)}).join("").replace(/[^\S\r\n]+/g," ").replace(/[ \t]+(\r?\n)/g,"$1").trim()}catch(t){return x.error(`PdfService: Failed to clean up content - error: ${t}, contentLength: ${e.length}`),e}}}var T={name:"pdf",description:"Plugin for PDF reading and text extraction",services:[f],actions:[]},v=T;export{T as pdfPlugin,v as default,f as PdfService};
|
|
5
5
|
|
|
6
|
-
//# debugId=
|
|
6
|
+
//# debugId=AE2239ACD8254B9464756E2164756E21
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../services/pdf.ts", "../../index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger, Service, ServiceType } from \"@elizaos/core\";\nimport
|
|
5
|
+
"import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger, Service, ServiceType } from \"@elizaos/core\";\nimport * as pdfjs from \"pdfjs-dist/legacy/build/pdf.mjs\";\n\nconst { getDocument } = pdfjs;\n\nimport type { TextItem, TextMarkedContent } from \"pdfjs-dist/types/src/display/api\";\n\nimport type {\n PdfConversionResult,\n PdfDocumentInfo,\n PdfExtractionOptions,\n PdfMetadata,\n PdfPageInfo,\n} from \"../types\";\n\nfunction isTextItem(item: TextItem | TextMarkedContent): item is TextItem {\n return \"str\" in item;\n}\n\nexport class PdfService extends Service {\n static serviceType = ServiceType.PDF;\n capabilityDescription = \"The agent is able to convert PDF files to text\";\n\n static async start(runtime: IAgentRuntime): Promise<PdfService> {\n const service = new PdfService(runtime);\n return service;\n }\n\n static async stop(runtime: IAgentRuntime): Promise<void> {\n const service = runtime.getService(ServiceType.PDF);\n if (service) {\n await service.stop();\n }\n }\n\n async stop(): Promise<void> {}\n\n async convertPdfToText(pdfBuffer: Buffer): Promise<string> {\n try {\n const uint8Array = new Uint8Array(pdfBuffer);\n const pdf = await getDocument({ data: uint8Array }).promise;\n const numPages = pdf.numPages;\n\n const textPages: string[] = [];\n\n for (let pageNum = 1; pageNum <= numPages; pageNum++) {\n const page = await pdf.getPage(pageNum);\n const textContent = await page.getTextContent();\n const pageText = textContent.items\n .filter(isTextItem)\n .map((item: TextItem) => item.str)\n .join(\" \");\n textPages.push(pageText);\n }\n\n const rawText = textPages.join(\"\\n\");\n return this.cleanUpContent(rawText);\n } catch (error) {\n logger.error(\n `PdfService: Failed to convert PDF to text - error: ${error}, bufferSize: ${pdfBuffer.length}`\n );\n throw error;\n }\n }\n\n async convertPdfToTextWithOptions(\n pdfBuffer: Buffer,\n options: PdfExtractionOptions = {}\n ): Promise<PdfConversionResult> {\n try {\n const uint8Array = new Uint8Array(pdfBuffer);\n const pdf = await getDocument({ data: uint8Array }).promise;\n const numPages = pdf.numPages;\n\n const startPage = Math.max(1, options.startPage || 1);\n const endPage = Math.min(numPages, options.endPage || numPages);\n\n const textPages: string[] = [];\n\n for (let pageNum = startPage; pageNum <= endPage; pageNum++) {\n const page = await pdf.getPage(pageNum);\n const textContent = await page.getTextContent();\n const pageText = textContent.items\n .filter(isTextItem)\n .map((item: TextItem) => item.str)\n .join(options.preserveWhitespace ? \"\" : \" \");\n textPages.push(pageText);\n }\n\n let text = textPages.join(\"\\n\");\n\n if (options.cleanContent !== false) {\n text = this.cleanUpContent(text);\n }\n\n return {\n success: true,\n text,\n pageCount: numPages,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n async getDocumentInfo(pdfBuffer: Buffer): Promise<PdfDocumentInfo> {\n const uint8Array = new Uint8Array(pdfBuffer);\n const pdf = await getDocument({ data: uint8Array }).promise;\n const numPages = pdf.numPages;\n\n const metadataResult = await pdf.getMetadata();\n const info = metadataResult.info as Record<string, string | Date | undefined>;\n\n const metadata: PdfMetadata = {\n title: info.Title as string | undefined,\n author: info.Author as string | undefined,\n subject: info.Subject as string | undefined,\n keywords: info.Keywords as string | undefined,\n creator: info.Creator as string | undefined,\n producer: info.Producer as string | undefined,\n creationDate: info.CreationDate ? new Date(info.CreationDate as string) : undefined,\n modificationDate: info.ModDate ? new Date(info.ModDate as string) : undefined,\n };\n\n const pages: PdfPageInfo[] = [];\n const allText: string[] = [];\n\n for (let pageNum = 1; pageNum <= numPages; pageNum++) {\n const page = await pdf.getPage(pageNum);\n const viewport = page.getViewport({ scale: 1.0 });\n const textContent = await page.getTextContent();\n\n const pageText = textContent.items\n .filter(isTextItem)\n .map((item: TextItem) => item.str)\n .join(\" \");\n\n pages.push({\n pageNumber: pageNum,\n width: viewport.width,\n height: viewport.height,\n text: this.cleanUpContent(pageText),\n });\n\n allText.push(pageText);\n }\n\n return {\n pageCount: numPages,\n metadata,\n text: this.cleanUpContent(allText.join(\"\\n\")),\n pages,\n };\n }\n\n cleanUpContent(content: string): string {\n try {\n const filtered = content\n .split(\"\")\n .filter((char) => {\n const charCode = char.charCodeAt(0);\n return !(\n charCode === 0 ||\n (charCode >= 1 && charCode <= 8) ||\n (charCode >= 11 && charCode <= 12) ||\n (charCode >= 14 && charCode <= 31) ||\n charCode === 127\n );\n })\n .join(\"\");\n\n const cleaned = filtered\n .replace(/[^\\S\\r\\n]+/g, \" \")\n .replace(/[ \\t]+(\\r?\\n)/g, \"$1\")\n .trim();\n\n return cleaned;\n } catch (error) {\n logger.error(\n `PdfService: Failed to clean up content - error: ${error}, contentLength: ${content.length}`\n );\n return content;\n }\n }\n}\n\nexport default PdfService;\n",
|
|
6
6
|
"import type { Plugin } from \"@elizaos/core\";\nimport { PdfService } from \"./services/pdf\";\n\nexport * from \"./services\";\nexport * from \"./types\";\n\nexport const pdfPlugin: Plugin = {\n name: \"pdf\",\n description: \"Plugin for PDF reading and text extraction\",\n services: [PdfService],\n actions: [],\n};\n\nexport default pdfPlugin;\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": "AACA,iBAAS,aAAQ,iBAAS,sBAC1B,
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "AACA,iBAAS,aAAQ,iBAAS,sBAC1B,kDAEA,IAAQ,eAAgB,EAYxB,SAAS,CAAU,CAAC,EAAsD,CACxE,MAAO,QAAS,EAGX,MAAM,UAAmB,CAAQ,OAC/B,aAAc,EAAY,IACjC,sBAAwB,6DAEX,MAAK,CAAC,EAA6C,CAE9D,OADgB,IAAI,EAAW,CAAO,cAI3B,KAAI,CAAC,EAAuC,CACvD,IAAM,EAAU,EAAQ,WAAW,EAAY,GAAG,EAClD,GAAI,EACF,MAAM,EAAQ,KAAK,OAIjB,KAAI,EAAkB,OAEtB,iBAAgB,CAAC,EAAoC,CACzD,GAAI,CACF,IAAM,EAAa,IAAI,WAAW,CAAS,EACrC,EAAM,MAAM,EAAY,CAAE,KAAM,CAAW,CAAC,EAAE,QAC9C,EAAW,EAAI,SAEf,EAAsB,CAAC,EAE7B,QAAS,EAAU,EAAG,GAAW,EAAU,IAAW,CAGpD,IAAM,GADc,MADP,MAAM,EAAI,QAAQ,CAAO,GACP,eAAe,GACjB,MAC1B,OAAO,CAAU,EACjB,IAAI,CAAC,IAAmB,EAAK,GAAG,EAChC,KAAK,GAAG,EACX,EAAU,KAAK,CAAQ,EAGzB,IAAM,EAAU,EAAU,KAAK;AAAA,CAAI,EACnC,OAAO,KAAK,eAAe,CAAO,EAClC,MAAO,EAAO,CAId,MAHA,EAAO,MACL,sDAAsD,kBAAsB,EAAU,QACxF,EACM,QAIJ,4BAA2B,CAC/B,EACA,EAAgC,CAAC,EACH,CAC9B,GAAI,CACF,IAAM,EAAa,IAAI,WAAW,CAAS,EACrC,EAAM,MAAM,EAAY,CAAE,KAAM,CAAW,CAAC,EAAE,QAC9C,EAAW,EAAI,SAEf,EAAY,KAAK,IAAI,EAAG,EAAQ,WAAa,CAAC,EAC9C,EAAU,KAAK,IAAI,EAAU,EAAQ,SAAW,CAAQ,EAExD,EAAsB,CAAC,EAE7B,QAAS,EAAU,EAAW,GAAW,EAAS,IAAW,CAG3D,IAAM,GADc,MADP,MAAM,EAAI,QAAQ,CAAO,GACP,eAAe,GACjB,MAC1B,OAAO,CAAU,EACjB,IAAI,CAAC,IAAmB,EAAK,GAAG,EAChC,KAAK,EAAQ,mBAAqB,GAAK,GAAG,EAC7C,EAAU,KAAK,CAAQ,EAGzB,IAAI,EAAO,EAAU,KAAK;AAAA,CAAI,EAE9B,GAAI,EAAQ,eAAiB,GAC3B,EAAO,KAAK,eAAe,CAAI,EAGjC,MAAO,CACL,QAAS,GACT,OACA,UAAW,CACb,EACA,MAAO,EAAO,CACd,MAAO,CACL,QAAS,GACT,MAAO,aAAiB,MAAQ,EAAM,QAAU,OAAO,CAAK,CAC9D,QAIE,gBAAe,CAAC,EAA6C,CACjE,IAAM,EAAa,IAAI,WAAW,CAAS,EACrC,EAAM,MAAM,EAAY,CAAE,KAAM,CAAW,CAAC,EAAE,QAC9C,EAAW,EAAI,SAGf,GADiB,MAAM,EAAI,YAAY,GACjB,KAEtB,EAAwB,CAC5B,MAAO,EAAK,MACZ,OAAQ,EAAK,OACb,QAAS,EAAK,QACd,SAAU,EAAK,SACf,QAAS,EAAK,QACd,SAAU,EAAK,SACf,aAAc,EAAK,aAAe,IAAI,KAAK,EAAK,YAAsB,EAAI,OAC1E,iBAAkB,EAAK,QAAU,IAAI,KAAK,EAAK,OAAiB,EAAI,MACtE,EAEM,EAAuB,CAAC,EACxB,EAAoB,CAAC,EAE3B,QAAS,EAAU,EAAG,GAAW,EAAU,IAAW,CACpD,IAAM,EAAO,MAAM,EAAI,QAAQ,CAAO,EAChC,EAAW,EAAK,YAAY,CAAE,MAAO,CAAI,CAAC,EAG1C,GAFc,MAAM,EAAK,eAAe,GAEjB,MAC1B,OAAO,CAAU,EACjB,IAAI,CAAC,IAAmB,EAAK,GAAG,EAChC,KAAK,GAAG,EAEX,EAAM,KAAK,CACT,WAAY,EACZ,MAAO,EAAS,MAChB,OAAQ,EAAS,OACjB,KAAM,KAAK,eAAe,CAAQ,CACpC,CAAC,EAED,EAAQ,KAAK,CAAQ,EAGvB,MAAO,CACL,UAAW,EACX,WACA,KAAM,KAAK,eAAe,EAAQ,KAAK;AAAA,CAAI,CAAC,EAC5C,OACF,EAGF,cAAc,CAAC,EAAyB,CACtC,GAAI,CAoBF,OAnBiB,EACd,MAAM,EAAE,EACR,OAAO,CAAC,IAAS,CAChB,IAAM,EAAW,EAAK,WAAW,CAAC,EAClC,MAAO,EACL,IAAa,GACZ,GAAY,GAAK,GAAY,GAC7B,GAAY,IAAM,GAAY,IAC9B,GAAY,IAAM,GAAY,IAC/B,IAAa,KAEhB,EACA,KAAK,EAAE,EAGP,QAAQ,cAAe,GAAG,EAC1B,QAAQ,iBAAkB,IAAI,EAC9B,KAAK,EAGR,MAAO,EAAO,CAId,OAHA,EAAO,MACL,mDAAmD,qBAAyB,EAAQ,QACtF,EACO,GAGb,CCtLO,IAAM,EAAoB,CAC/B,KAAM,MACN,YAAa,6CACb,SAAU,CAAC,CAAU,EACrB,QAAS,CAAC,CACZ,EAEe",
|
|
9
|
+
"debugId": "AE2239ACD8254B9464756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
package/dist/cjs/index.node.cjs
CHANGED
|
@@ -71,8 +71,8 @@ module.exports = __toCommonJS(exports_index_node);
|
|
|
71
71
|
|
|
72
72
|
// services/pdf.ts
|
|
73
73
|
var import_core = require("@elizaos/core");
|
|
74
|
-
var
|
|
75
|
-
var { getDocument } =
|
|
74
|
+
var pdfjs = __toESM(require("pdfjs-dist/legacy/build/pdf.mjs"));
|
|
75
|
+
var { getDocument } = pdfjs;
|
|
76
76
|
function isTextItem(item) {
|
|
77
77
|
return "str" in item;
|
|
78
78
|
}
|
|
@@ -204,4 +204,4 @@ var pdfPlugin = {
|
|
|
204
204
|
};
|
|
205
205
|
var typescript_default = pdfPlugin;
|
|
206
206
|
|
|
207
|
-
//# debugId=
|
|
207
|
+
//# debugId=CE86293CD24CBEC264756E2164756E21
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../services/pdf.ts", "../../index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger, Service, ServiceType } from \"@elizaos/core\";\nimport
|
|
5
|
+
"import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger, Service, ServiceType } from \"@elizaos/core\";\nimport * as pdfjs from \"pdfjs-dist/legacy/build/pdf.mjs\";\n\nconst { getDocument } = pdfjs;\n\nimport type { TextItem, TextMarkedContent } from \"pdfjs-dist/types/src/display/api\";\n\nimport type {\n PdfConversionResult,\n PdfDocumentInfo,\n PdfExtractionOptions,\n PdfMetadata,\n PdfPageInfo,\n} from \"../types\";\n\nfunction isTextItem(item: TextItem | TextMarkedContent): item is TextItem {\n return \"str\" in item;\n}\n\nexport class PdfService extends Service {\n static serviceType = ServiceType.PDF;\n capabilityDescription = \"The agent is able to convert PDF files to text\";\n\n static async start(runtime: IAgentRuntime): Promise<PdfService> {\n const service = new PdfService(runtime);\n return service;\n }\n\n static async stop(runtime: IAgentRuntime): Promise<void> {\n const service = runtime.getService(ServiceType.PDF);\n if (service) {\n await service.stop();\n }\n }\n\n async stop(): Promise<void> {}\n\n async convertPdfToText(pdfBuffer: Buffer): Promise<string> {\n try {\n const uint8Array = new Uint8Array(pdfBuffer);\n const pdf = await getDocument({ data: uint8Array }).promise;\n const numPages = pdf.numPages;\n\n const textPages: string[] = [];\n\n for (let pageNum = 1; pageNum <= numPages; pageNum++) {\n const page = await pdf.getPage(pageNum);\n const textContent = await page.getTextContent();\n const pageText = textContent.items\n .filter(isTextItem)\n .map((item: TextItem) => item.str)\n .join(\" \");\n textPages.push(pageText);\n }\n\n const rawText = textPages.join(\"\\n\");\n return this.cleanUpContent(rawText);\n } catch (error) {\n logger.error(\n `PdfService: Failed to convert PDF to text - error: ${error}, bufferSize: ${pdfBuffer.length}`\n );\n throw error;\n }\n }\n\n async convertPdfToTextWithOptions(\n pdfBuffer: Buffer,\n options: PdfExtractionOptions = {}\n ): Promise<PdfConversionResult> {\n try {\n const uint8Array = new Uint8Array(pdfBuffer);\n const pdf = await getDocument({ data: uint8Array }).promise;\n const numPages = pdf.numPages;\n\n const startPage = Math.max(1, options.startPage || 1);\n const endPage = Math.min(numPages, options.endPage || numPages);\n\n const textPages: string[] = [];\n\n for (let pageNum = startPage; pageNum <= endPage; pageNum++) {\n const page = await pdf.getPage(pageNum);\n const textContent = await page.getTextContent();\n const pageText = textContent.items\n .filter(isTextItem)\n .map((item: TextItem) => item.str)\n .join(options.preserveWhitespace ? \"\" : \" \");\n textPages.push(pageText);\n }\n\n let text = textPages.join(\"\\n\");\n\n if (options.cleanContent !== false) {\n text = this.cleanUpContent(text);\n }\n\n return {\n success: true,\n text,\n pageCount: numPages,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n async getDocumentInfo(pdfBuffer: Buffer): Promise<PdfDocumentInfo> {\n const uint8Array = new Uint8Array(pdfBuffer);\n const pdf = await getDocument({ data: uint8Array }).promise;\n const numPages = pdf.numPages;\n\n const metadataResult = await pdf.getMetadata();\n const info = metadataResult.info as Record<string, string | Date | undefined>;\n\n const metadata: PdfMetadata = {\n title: info.Title as string | undefined,\n author: info.Author as string | undefined,\n subject: info.Subject as string | undefined,\n keywords: info.Keywords as string | undefined,\n creator: info.Creator as string | undefined,\n producer: info.Producer as string | undefined,\n creationDate: info.CreationDate ? new Date(info.CreationDate as string) : undefined,\n modificationDate: info.ModDate ? new Date(info.ModDate as string) : undefined,\n };\n\n const pages: PdfPageInfo[] = [];\n const allText: string[] = [];\n\n for (let pageNum = 1; pageNum <= numPages; pageNum++) {\n const page = await pdf.getPage(pageNum);\n const viewport = page.getViewport({ scale: 1.0 });\n const textContent = await page.getTextContent();\n\n const pageText = textContent.items\n .filter(isTextItem)\n .map((item: TextItem) => item.str)\n .join(\" \");\n\n pages.push({\n pageNumber: pageNum,\n width: viewport.width,\n height: viewport.height,\n text: this.cleanUpContent(pageText),\n });\n\n allText.push(pageText);\n }\n\n return {\n pageCount: numPages,\n metadata,\n text: this.cleanUpContent(allText.join(\"\\n\")),\n pages,\n };\n }\n\n cleanUpContent(content: string): string {\n try {\n const filtered = content\n .split(\"\")\n .filter((char) => {\n const charCode = char.charCodeAt(0);\n return !(\n charCode === 0 ||\n (charCode >= 1 && charCode <= 8) ||\n (charCode >= 11 && charCode <= 12) ||\n (charCode >= 14 && charCode <= 31) ||\n charCode === 127\n );\n })\n .join(\"\");\n\n const cleaned = filtered\n .replace(/[^\\S\\r\\n]+/g, \" \")\n .replace(/[ \\t]+(\\r?\\n)/g, \"$1\")\n .trim();\n\n return cleaned;\n } catch (error) {\n logger.error(\n `PdfService: Failed to clean up content - error: ${error}, contentLength: ${content.length}`\n );\n return content;\n }\n }\n}\n\nexport default PdfService;\n",
|
|
6
6
|
"import type { Plugin } from \"@elizaos/core\";\nimport { PdfService } from \"./services/pdf\";\n\nexport * from \"./services\";\nexport * from \"./types\";\n\nexport const pdfPlugin: Plugin = {\n name: \"pdf\",\n description: \"Plugin for PDF reading and text extraction\",\n services: [PdfService],\n actions: [],\n};\n\nexport default pdfPlugin;\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC6C,IAA7C;
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "CE86293CD24CBEC264756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
package/dist/node/index.node.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// services/pdf.ts
|
|
2
2
|
import { logger, Service, ServiceType } from "@elizaos/core";
|
|
3
|
-
import
|
|
4
|
-
var { getDocument } =
|
|
3
|
+
import * as pdfjs from "pdfjs-dist/legacy/build/pdf.mjs";
|
|
4
|
+
var { getDocument } = pdfjs;
|
|
5
5
|
function isTextItem(item) {
|
|
6
6
|
return "str" in item;
|
|
7
7
|
}
|
|
@@ -138,4 +138,4 @@ export {
|
|
|
138
138
|
PdfService
|
|
139
139
|
};
|
|
140
140
|
|
|
141
|
-
//# debugId=
|
|
141
|
+
//# debugId=B0CE2BB4B27CA4B364756E2164756E21
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../services/pdf.ts", "../../index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger, Service, ServiceType } from \"@elizaos/core\";\nimport
|
|
5
|
+
"import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger, Service, ServiceType } from \"@elizaos/core\";\nimport * as pdfjs from \"pdfjs-dist/legacy/build/pdf.mjs\";\n\nconst { getDocument } = pdfjs;\n\nimport type { TextItem, TextMarkedContent } from \"pdfjs-dist/types/src/display/api\";\n\nimport type {\n PdfConversionResult,\n PdfDocumentInfo,\n PdfExtractionOptions,\n PdfMetadata,\n PdfPageInfo,\n} from \"../types\";\n\nfunction isTextItem(item: TextItem | TextMarkedContent): item is TextItem {\n return \"str\" in item;\n}\n\nexport class PdfService extends Service {\n static serviceType = ServiceType.PDF;\n capabilityDescription = \"The agent is able to convert PDF files to text\";\n\n static async start(runtime: IAgentRuntime): Promise<PdfService> {\n const service = new PdfService(runtime);\n return service;\n }\n\n static async stop(runtime: IAgentRuntime): Promise<void> {\n const service = runtime.getService(ServiceType.PDF);\n if (service) {\n await service.stop();\n }\n }\n\n async stop(): Promise<void> {}\n\n async convertPdfToText(pdfBuffer: Buffer): Promise<string> {\n try {\n const uint8Array = new Uint8Array(pdfBuffer);\n const pdf = await getDocument({ data: uint8Array }).promise;\n const numPages = pdf.numPages;\n\n const textPages: string[] = [];\n\n for (let pageNum = 1; pageNum <= numPages; pageNum++) {\n const page = await pdf.getPage(pageNum);\n const textContent = await page.getTextContent();\n const pageText = textContent.items\n .filter(isTextItem)\n .map((item: TextItem) => item.str)\n .join(\" \");\n textPages.push(pageText);\n }\n\n const rawText = textPages.join(\"\\n\");\n return this.cleanUpContent(rawText);\n } catch (error) {\n logger.error(\n `PdfService: Failed to convert PDF to text - error: ${error}, bufferSize: ${pdfBuffer.length}`\n );\n throw error;\n }\n }\n\n async convertPdfToTextWithOptions(\n pdfBuffer: Buffer,\n options: PdfExtractionOptions = {}\n ): Promise<PdfConversionResult> {\n try {\n const uint8Array = new Uint8Array(pdfBuffer);\n const pdf = await getDocument({ data: uint8Array }).promise;\n const numPages = pdf.numPages;\n\n const startPage = Math.max(1, options.startPage || 1);\n const endPage = Math.min(numPages, options.endPage || numPages);\n\n const textPages: string[] = [];\n\n for (let pageNum = startPage; pageNum <= endPage; pageNum++) {\n const page = await pdf.getPage(pageNum);\n const textContent = await page.getTextContent();\n const pageText = textContent.items\n .filter(isTextItem)\n .map((item: TextItem) => item.str)\n .join(options.preserveWhitespace ? \"\" : \" \");\n textPages.push(pageText);\n }\n\n let text = textPages.join(\"\\n\");\n\n if (options.cleanContent !== false) {\n text = this.cleanUpContent(text);\n }\n\n return {\n success: true,\n text,\n pageCount: numPages,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n async getDocumentInfo(pdfBuffer: Buffer): Promise<PdfDocumentInfo> {\n const uint8Array = new Uint8Array(pdfBuffer);\n const pdf = await getDocument({ data: uint8Array }).promise;\n const numPages = pdf.numPages;\n\n const metadataResult = await pdf.getMetadata();\n const info = metadataResult.info as Record<string, string | Date | undefined>;\n\n const metadata: PdfMetadata = {\n title: info.Title as string | undefined,\n author: info.Author as string | undefined,\n subject: info.Subject as string | undefined,\n keywords: info.Keywords as string | undefined,\n creator: info.Creator as string | undefined,\n producer: info.Producer as string | undefined,\n creationDate: info.CreationDate ? new Date(info.CreationDate as string) : undefined,\n modificationDate: info.ModDate ? new Date(info.ModDate as string) : undefined,\n };\n\n const pages: PdfPageInfo[] = [];\n const allText: string[] = [];\n\n for (let pageNum = 1; pageNum <= numPages; pageNum++) {\n const page = await pdf.getPage(pageNum);\n const viewport = page.getViewport({ scale: 1.0 });\n const textContent = await page.getTextContent();\n\n const pageText = textContent.items\n .filter(isTextItem)\n .map((item: TextItem) => item.str)\n .join(\" \");\n\n pages.push({\n pageNumber: pageNum,\n width: viewport.width,\n height: viewport.height,\n text: this.cleanUpContent(pageText),\n });\n\n allText.push(pageText);\n }\n\n return {\n pageCount: numPages,\n metadata,\n text: this.cleanUpContent(allText.join(\"\\n\")),\n pages,\n };\n }\n\n cleanUpContent(content: string): string {\n try {\n const filtered = content\n .split(\"\")\n .filter((char) => {\n const charCode = char.charCodeAt(0);\n return !(\n charCode === 0 ||\n (charCode >= 1 && charCode <= 8) ||\n (charCode >= 11 && charCode <= 12) ||\n (charCode >= 14 && charCode <= 31) ||\n charCode === 127\n );\n })\n .join(\"\");\n\n const cleaned = filtered\n .replace(/[^\\S\\r\\n]+/g, \" \")\n .replace(/[ \\t]+(\\r?\\n)/g, \"$1\")\n .trim();\n\n return cleaned;\n } catch (error) {\n logger.error(\n `PdfService: Failed to clean up content - error: ${error}, contentLength: ${content.length}`\n );\n return content;\n }\n }\n}\n\nexport default PdfService;\n",
|
|
6
6
|
"import type { Plugin } from \"@elizaos/core\";\nimport { PdfService } from \"./services/pdf\";\n\nexport * from \"./services\";\nexport * from \"./types\";\n\nexport const pdfPlugin: Plugin = {\n name: \"pdf\",\n description: \"Plugin for PDF reading and text extraction\",\n services: [PdfService],\n actions: [],\n};\n\nexport default pdfPlugin;\n"
|
|
7
7
|
],
|
|
8
8
|
"mappings": "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",
|
|
9
|
-
"debugId": "
|
|
9
|
+
"debugId": "B0CE2BB4B27CA4B364756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|