mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 08:13:56 +10:00
51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true,
|
|
});
|
|
exports.default = void 0;
|
|
|
|
var _SignPdfError = _interopRequireDefault(require("../SignPdfError"));
|
|
|
|
var _const = require("./const");
|
|
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { default: obj };
|
|
}
|
|
|
|
/**
|
|
* Finds ByteRange information within a given PDF Buffer if one exists
|
|
*
|
|
* @param {Buffer} pdf
|
|
* @returns {Object} {byteRangePlaceholder: String, byteRangeStrings: String[], byteRange: String[]}
|
|
*/
|
|
const findByteRange = (pdf) => {
|
|
if (!(pdf instanceof Buffer)) {
|
|
throw new _SignPdfError.default("PDF expected as Buffer.", _SignPdfError.default.TYPE_INPUT);
|
|
}
|
|
|
|
const byteRangeStrings = pdf
|
|
.toString()
|
|
.match(/\/ByteRange\s*\[{1}\s*(?:(?:\d*|\/\*{10})\s+){3}(?:\d+|\/\*{10}){1}\s*]{1}/g);
|
|
|
|
if (!byteRangeStrings) {
|
|
throw new _SignPdfError.default(
|
|
"No ByteRangeStrings found within PDF buffer",
|
|
_SignPdfError.default.TYPE_PARSE
|
|
);
|
|
}
|
|
|
|
const byteRangePlaceholder = byteRangeStrings.find((s) =>
|
|
s.includes(`/${_const.DEFAULT_BYTE_RANGE_PLACEHOLDER}`)
|
|
);
|
|
const byteRanges = byteRangeStrings.map((brs) => brs.match(/[^[\s]*(?:\d|\/\*{10})/g));
|
|
return {
|
|
byteRangePlaceholder,
|
|
byteRangeStrings,
|
|
byteRanges,
|
|
};
|
|
};
|
|
|
|
var _default = findByteRange;
|
|
exports.default = _default;
|