From 24bba7d22a56a6efa084c3e00be7663bb0f460aa Mon Sep 17 00:00:00 2001 From: Valery Buchinsky Date: Wed, 4 Oct 2023 10:48:27 +0300 Subject: [PATCH] Added some more types in placeholder-plain --- .../dist/createBufferTrailer.d.ts | 8 ++++- .../dist/createBufferTrailer.d.ts.map | 2 +- .../dist/createBufferTrailer.js | 6 ++++ .../placeholder-plain/dist/findObject.d.ts | 4 +-- packages/placeholder-plain/dist/findObject.js | 2 +- packages/placeholder-plain/dist/readPdf.d.ts | 30 +++++++++++++------ .../placeholder-plain/dist/readPdf.d.ts.map | 2 +- packages/placeholder-plain/dist/readPdf.js | 18 +++++++++++ .../placeholder-plain/dist/readRefTable.d.ts | 18 +++++++++-- .../dist/readRefTable.d.ts.map | 2 +- .../placeholder-plain/dist/readRefTable.js | 18 ++++++++++- .../src/createBufferTrailer.js | 6 ++++ packages/placeholder-plain/src/findObject.js | 2 +- packages/placeholder-plain/src/readPdf.js | 17 +++++++++++ .../placeholder-plain/src/readRefTable.js | 17 ++++++++++- 15 files changed, 130 insertions(+), 22 deletions(-) diff --git a/packages/placeholder-plain/dist/createBufferTrailer.d.ts b/packages/placeholder-plain/dist/createBufferTrailer.d.ts index 4ba23112..7ed371e4 100644 --- a/packages/placeholder-plain/dist/createBufferTrailer.d.ts +++ b/packages/placeholder-plain/dist/createBufferTrailer.d.ts @@ -1,3 +1,9 @@ export default createBufferTrailer; -declare function createBufferTrailer(pdf: any, info: any, addedReferences: any): Buffer; +/** + * @param {Buffer} pdf + * @param {import("./readPdf").ReadPdfReturnType} info + * @param {Map} addedReferences + * @returns {Buffer} + */ +declare function createBufferTrailer(pdf: Buffer, info: import("./readPdf").ReadPdfReturnType, addedReferences: Map): Buffer; //# sourceMappingURL=createBufferTrailer.d.ts.map \ No newline at end of file diff --git a/packages/placeholder-plain/dist/createBufferTrailer.d.ts.map b/packages/placeholder-plain/dist/createBufferTrailer.d.ts.map index acda5ef4..629b5026 100644 --- a/packages/placeholder-plain/dist/createBufferTrailer.d.ts.map +++ b/packages/placeholder-plain/dist/createBufferTrailer.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"createBufferTrailer.d.ts","sourceRoot":"","sources":["../src/createBufferTrailer.js"],"names":[],"mappings":";AAAA,wFAyBC"} \ No newline at end of file +{"version":3,"file":"createBufferTrailer.d.ts","sourceRoot":"","sources":["../src/createBufferTrailer.js"],"names":[],"mappings":";AAAA;;;;;GAKG;AACH,0CALW,MAAM,QACN,OAAO,WAAW,EAAE,iBAAiB,mBACrC,IAAI,MAAM,EAAE,MAAM,CAAC,GACjB,MAAM,CA2BlB"} \ No newline at end of file diff --git a/packages/placeholder-plain/dist/createBufferTrailer.js b/packages/placeholder-plain/dist/createBufferTrailer.js index e8c792e5..28452b19 100644 --- a/packages/placeholder-plain/dist/createBufferTrailer.js +++ b/packages/placeholder-plain/dist/createBufferTrailer.js @@ -1,3 +1,9 @@ +/** + * @param {Buffer} pdf + * @param {import("./readPdf").ReadPdfReturnType} info + * @param {Map} addedReferences + * @returns {Buffer} + */ const createBufferTrailer = (pdf, info, addedReferences) => { let rows = []; rows[0] = '0000000000 65535 f '; // info.xref.tableRows[0]; diff --git a/packages/placeholder-plain/dist/findObject.d.ts b/packages/placeholder-plain/dist/findObject.d.ts index 3ca75e34..f6732b23 100644 --- a/packages/placeholder-plain/dist/findObject.d.ts +++ b/packages/placeholder-plain/dist/findObject.d.ts @@ -2,7 +2,7 @@ export default findObject; /** * @param {Buffer} pdf * @param {Map} refTable - * @returns {object} + * @returns {Buffer} */ -declare function findObject(pdf: Buffer, refTable: Map, ref: any): object; +declare function findObject(pdf: Buffer, refTable: Map, ref: any): Buffer; //# sourceMappingURL=findObject.d.ts.map \ No newline at end of file diff --git a/packages/placeholder-plain/dist/findObject.js b/packages/placeholder-plain/dist/findObject.js index 55e0e651..20ad0638 100644 --- a/packages/placeholder-plain/dist/findObject.js +++ b/packages/placeholder-plain/dist/findObject.js @@ -3,7 +3,7 @@ import getIndexFromRef from './getIndexFromRef'; /** * @param {Buffer} pdf * @param {Map} refTable - * @returns {object} + * @returns {Buffer} */ const findObject = (pdf, refTable, ref) => { const index = getIndexFromRef(refTable, ref); diff --git a/packages/placeholder-plain/dist/readPdf.d.ts b/packages/placeholder-plain/dist/readPdf.d.ts index e51fcdac..9786636a 100644 --- a/packages/placeholder-plain/dist/readPdf.d.ts +++ b/packages/placeholder-plain/dist/readPdf.d.ts @@ -1,4 +1,23 @@ export default readPdf; +export type ReadPdfReturnType = { + xref: import("./readRefTable").ReadRefTableReturnType; + rootRef: string; + root: Buffer; + infoRef: string; + trailerStart: number; + previousXrefs: any[]; + xRefPosition: number; +}; +/** + * @typedef {object} ReadPdfReturnType + * @prop {import("./readRefTable").ReadRefTableReturnType} xref + * @prop {string} rootRef + * @prop {Buffer} root + * @prop {string} infoRef + * @prop {number} trailerStart + * @prop {*[]} previousXrefs + * @prop {number} xRefPosition + */ /** * Simplified parsing of a PDF Buffer. * Extracts reference table, root info and trailer start. @@ -6,14 +25,7 @@ export default readPdf; * See section 7.5.5 (File Trailer) of the PDF specs. * * @param {Buffer} pdfBuffer + * @returns {ReadPdfReturnType} */ -declare function readPdf(pdfBuffer: Buffer): { - xref: any; - rootRef: any; - root: any; - infoRef: any; - trailerStart: number; - previousXrefs: any[]; - xRefPosition: string; -}; +declare function readPdf(pdfBuffer: Buffer): ReadPdfReturnType; //# sourceMappingURL=readPdf.d.ts.map \ No newline at end of file diff --git a/packages/placeholder-plain/dist/readPdf.d.ts.map b/packages/placeholder-plain/dist/readPdf.d.ts.map index 46c1c800..675dc9f2 100644 --- a/packages/placeholder-plain/dist/readPdf.d.ts.map +++ b/packages/placeholder-plain/dist/readPdf.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"readPdf.d.ts","sourceRoot":"","sources":["../src/readPdf.js"],"names":[],"mappings":";AAkBA;;;;;;;GAOG;AACH,oCAFW,MAAM;;;;;;;;EA2BhB"} \ No newline at end of file +{"version":3,"file":"readPdf.d.ts","sourceRoot":"","sources":["../src/readPdf.js"],"names":[],"mappings":";;UAyBU,OAAO,gBAAgB,EAAE,sBAAsB;aAC/C,MAAM;UACN,MAAM;aACN,MAAM;kBACN,MAAM;mBACN,KAAG;kBACH,MAAM;;AARhB;;;;;;;;;GASG;AAEH;;;;;;;;GAQG;AACH,oCAHW,MAAM,GACJ,iBAAiB,CA2B7B"} \ No newline at end of file diff --git a/packages/placeholder-plain/dist/readPdf.js b/packages/placeholder-plain/dist/readPdf.js index da82be73..26130b8a 100644 --- a/packages/placeholder-plain/dist/readPdf.js +++ b/packages/placeholder-plain/dist/readPdf.js @@ -1,5 +1,11 @@ import readRefTable from './readRefTable'; import findObject from './findObject'; + +/** + * @param {Buffer} trailer + * @param {string} key + * @returns {string} + */ const getValue = (trailer, key) => { let index = trailer.indexOf(key); if (index === -1) { @@ -13,6 +19,17 @@ const getValue = (trailer, key) => { return slice.slice(key.length + 1, index).toString().trim(); // key + at least one space }; +/** + * @typedef {object} ReadPdfReturnType + * @prop {import("./readRefTable").ReadRefTableReturnType} xref + * @prop {string} rootRef + * @prop {Buffer} root + * @prop {string} infoRef + * @prop {number} trailerStart + * @prop {*[]} previousXrefs + * @prop {number} xRefPosition + */ + /** * Simplified parsing of a PDF Buffer. * Extracts reference table, root info and trailer start. @@ -20,6 +37,7 @@ const getValue = (trailer, key) => { * See section 7.5.5 (File Trailer) of the PDF specs. * * @param {Buffer} pdfBuffer + * @returns {ReadPdfReturnType} */ const readPdf = pdfBuffer => { // Extract the trailer dictionary. diff --git a/packages/placeholder-plain/dist/readRefTable.d.ts b/packages/placeholder-plain/dist/readRefTable.d.ts index 0d9015fe..ff488e36 100644 --- a/packages/placeholder-plain/dist/readRefTable.d.ts +++ b/packages/placeholder-plain/dist/readRefTable.d.ts @@ -4,11 +4,23 @@ export function getXref(pdf: any, position: any): { prev: string; xRefContent: Map; }; -export function getFullXrefTable(pdf: any): any; +export function getFullXrefTable(pdf: Buffer): GetFullXrefTableReturnType; export default readRefTable; +export type GetFullXrefTableReturnType = Map; +export type ReadRefTableReturnType = { + startingIndex: number; + maxIndex: number; + offsets: GetFullXrefTableReturnType; +}; +/** + * @typedef {object} ReadRefTableReturnType + * @prop {number} startingIndex + * @prop {number} maxIndex + * @prop {GetFullXrefTableReturnType} offsets + */ /** * @param {Buffer} pdfBuffer - * @returns {object} + * @returns {ReadRefTableReturnType} */ -declare function readRefTable(pdf: any): object; +declare function readRefTable(pdf: any): ReadRefTableReturnType; //# sourceMappingURL=readRefTable.d.ts.map \ No newline at end of file diff --git a/packages/placeholder-plain/dist/readRefTable.d.ts.map b/packages/placeholder-plain/dist/readRefTable.d.ts.map index 934173da..e1b42a58 100644 --- a/packages/placeholder-plain/dist/readRefTable.d.ts.map +++ b/packages/placeholder-plain/dist/readRefTable.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"readRefTable.d.ts","sourceRoot":"","sources":["../src/readRefTable.js"],"names":[],"mappings":"AAGO,yDASN;AAEM;;;;EAmEN;AAEM,gDAgBN;;AAED;;;GAGG;AACH,yCAFa,MAAM,CAYlB"} \ No newline at end of file +{"version":3,"file":"readRefTable.d.ts","sourceRoot":"","sources":["../src/readRefTable.js"],"names":[],"mappings":"AAGO,yDASN;AAEM;;;;EAmEN;AAUM,sCAHI,MAAM,8BAmBhB;;yCAvBY,aAAS;;mBA2BZ,MAAM;cACN,MAAM;;;AAHhB;;;;;GAKG;AAEH;;;GAGG;AACH,yCAFa,sBAAsB,CAYlC"} \ No newline at end of file diff --git a/packages/placeholder-plain/dist/readRefTable.js b/packages/placeholder-plain/dist/readRefTable.js index 76e601d7..f5412ddc 100644 --- a/packages/placeholder-plain/dist/readRefTable.js +++ b/packages/placeholder-plain/dist/readRefTable.js @@ -52,6 +52,15 @@ export const getXref = (pdf, position) => { xRefContent }; }; + +/** + * @typedef {Map<*, *>} GetFullXrefTableReturnType + */ + +/** + * @param {Buffer} pdf + * @returns {GetFullXrefTableReturnType} + */ export const getFullXrefTable = pdf => { const lastTrailerPosition = getLastTrailerPosition(pdf); const lastXrefTable = getXref(pdf, lastTrailerPosition); @@ -64,9 +73,16 @@ export const getFullXrefTable = pdf => { return mergedXrefTable; }; +/** + * @typedef {object} ReadRefTableReturnType + * @prop {number} startingIndex + * @prop {number} maxIndex + * @prop {GetFullXrefTableReturnType} offsets + */ + /** * @param {Buffer} pdfBuffer - * @returns {object} + * @returns {ReadRefTableReturnType} */ const readRefTable = pdf => { const fullXrefTable = getFullXrefTable(pdf); diff --git a/packages/placeholder-plain/src/createBufferTrailer.js b/packages/placeholder-plain/src/createBufferTrailer.js index bb45e714..aee7748f 100644 --- a/packages/placeholder-plain/src/createBufferTrailer.js +++ b/packages/placeholder-plain/src/createBufferTrailer.js @@ -1,3 +1,9 @@ +/** + * @param {Buffer} pdf + * @param {import("./readPdf").ReadPdfReturnType} info + * @param {Map} addedReferences + * @returns {Buffer} + */ const createBufferTrailer = (pdf, info, addedReferences) => { let rows = []; rows[0] = '0000000000 65535 f '; // info.xref.tableRows[0]; diff --git a/packages/placeholder-plain/src/findObject.js b/packages/placeholder-plain/src/findObject.js index c76d9485..b1ff9691 100644 --- a/packages/placeholder-plain/src/findObject.js +++ b/packages/placeholder-plain/src/findObject.js @@ -3,7 +3,7 @@ import getIndexFromRef from './getIndexFromRef'; /** * @param {Buffer} pdf * @param {Map} refTable - * @returns {object} + * @returns {Buffer} */ const findObject = (pdf, refTable, ref) => { const index = getIndexFromRef(refTable, ref); diff --git a/packages/placeholder-plain/src/readPdf.js b/packages/placeholder-plain/src/readPdf.js index 697311ca..e75bf9a9 100644 --- a/packages/placeholder-plain/src/readPdf.js +++ b/packages/placeholder-plain/src/readPdf.js @@ -1,6 +1,11 @@ import readRefTable from './readRefTable'; import findObject from './findObject'; +/** + * @param {Buffer} trailer + * @param {string} key + * @returns {string} + */ const getValue = (trailer, key) => { let index = trailer.indexOf(key); @@ -16,6 +21,17 @@ const getValue = (trailer, key) => { return slice.slice(key.length + 1, index).toString().trim(); // key + at least one space }; +/** + * @typedef {object} ReadPdfReturnType + * @prop {import("./readRefTable").ReadRefTableReturnType} xref + * @prop {string} rootRef + * @prop {Buffer} root + * @prop {string} infoRef + * @prop {number} trailerStart + * @prop {*[]} previousXrefs + * @prop {number} xRefPosition + */ + /** * Simplified parsing of a PDF Buffer. * Extracts reference table, root info and trailer start. @@ -23,6 +39,7 @@ const getValue = (trailer, key) => { * See section 7.5.5 (File Trailer) of the PDF specs. * * @param {Buffer} pdfBuffer + * @returns {ReadPdfReturnType} */ const readPdf = (pdfBuffer) => { // Extract the trailer dictionary. diff --git a/packages/placeholder-plain/src/readRefTable.js b/packages/placeholder-plain/src/readRefTable.js index b7fdb93e..5bded0d9 100644 --- a/packages/placeholder-plain/src/readRefTable.js +++ b/packages/placeholder-plain/src/readRefTable.js @@ -81,6 +81,14 @@ export const getXref = (pdf, position) => { }; }; +/** + * @typedef {Map<*, *>} GetFullXrefTableReturnType + */ + +/** + * @param {Buffer} pdf + * @returns {GetFullXrefTableReturnType} + */ export const getFullXrefTable = (pdf) => { const lastTrailerPosition = getLastTrailerPosition(pdf); const lastXrefTable = getXref(pdf, lastTrailerPosition); @@ -99,9 +107,16 @@ export const getFullXrefTable = (pdf) => { return mergedXrefTable; }; +/** + * @typedef {object} ReadRefTableReturnType + * @prop {number} startingIndex + * @prop {number} maxIndex + * @prop {GetFullXrefTableReturnType} offsets + */ + /** * @param {Buffer} pdfBuffer - * @returns {object} + * @returns {ReadRefTableReturnType} */ const readRefTable = (pdf) => { const fullXrefTable = getFullXrefTable(pdf);