Files
documenso/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/xrefToRefMap.js
Ephraim Atta-Duncan 964e749039 Update prettier styling
2023-04-04 22:10:30 +00:00

66 lines
1.5 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true,
});
exports.default = void 0;
var _SignPdfError = _interopRequireDefault(require("../../SignPdfError"));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : { default: obj };
}
const xrefToRefMap = (xrefString) => {
const lines = xrefString.split("\n").filter((l) => l !== "");
let index = 0;
let expectedLines = 0;
const xref = new Map();
lines.forEach((line) => {
const split = line.split(" ");
if (split.length === 2) {
index = parseInt(split[0]);
expectedLines = parseInt(split[1]);
return;
}
if (expectedLines <= 0) {
throw new _SignPdfError.default(
"Too many lines in xref table.",
_SignPdfError.default.TYPE_PARSE
);
}
expectedLines -= 1;
const [offset, , inUse] = split;
if (inUse.trim() === "f") {
index += 1;
return;
}
if (inUse.trim() !== "n") {
throw new _SignPdfError.default(
`Unknown in-use flag "${inUse}". Expected "n" or "f".`,
_SignPdfError.default.TYPE_PARSE
);
}
if (!/^\d+$/.test(offset.trim())) {
throw new _SignPdfError.default(
`Expected integer offset. Got "${offset}".`,
_SignPdfError.default.TYPE_PARSE
);
}
const storeOffset = parseInt(offset.trim());
xref.set(index, storeOffset);
index += 1;
});
return xref;
};
var _default = xrefToRefMap;
exports.default = _default;