import verifyPDF from "@ninja-labs/verify-pdf"; import { PdfData } from "pdfdataextract"; import { config } from "./config"; import { IgetMetaResponse } from "./types"; class PDFparser { readonly document; readonly config; constructor(document: Buffer) { this.document = document; this.config = config; } getPDFMeta = async (): Promise<IgetMetaResponse> => { try { const pdfMeta = await PdfData.extract(this.document, config); const signaturesMeta = await verifyPDF(this.document); return { verified: signaturesMeta.verified, authenticity: signaturesMeta.authenticity, integrity: signaturesMeta.integrity, expired: signaturesMeta.expired, meta: { certs: signaturesMeta.certs, }, pages: pdfMeta.pages, fingerpring: pdfMeta.fingerprint, creation_data: pdfMeta.info.CreationDate, creator: pdfMeta.info.Creator, author: pdfMeta.info.Author, title: pdfMeta.info.Title, description: pdfMeta.info.Keywords, mod_date: pdfMeta.info.ModDate, }; } catch (error) { console.error(error); throw new Error("Could not get pdf metadata"); } }; } export default PDFparser;