New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

pdf-visual-diff

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pdf-visual-diff - npm Package Compare versions

Comparing version
0.10.0
to
0.11.0
+18
eslint.config.mjs
// @ts-check
import eslint from '@eslint/js'
import tseslint from 'typescript-eslint'
import tsdoceslint from 'eslint-plugin-tsdoc'
export default tseslint.config({
files: ['**/*.ts'],
extends: [eslint.configs.recommended, ...tseslint.configs.strict, ...tseslint.configs.stylistic],
plugins: {
tsdoc: tsdoceslint,
},
rules: {
'tsdoc/syntax': 'error',
'@typescript-eslint/array-type': 'off',
'@typescript-eslint/consistent-type-definitions': 'off',
},
})
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const node_test_1 = require("node:test");
const assert = require("node:assert/strict");
const utils_1 = require("./utils");
const filePath = '/pdf-visual-diff/src/__snapshots__/two-page.new.png';
(0, node_test_1.describe)('cli utils', () => {
(0, node_test_1.it)('mkCurrentSnapshotPath()', async () => assert.strictEqual((0, utils_1.mkCurrentSnapshotPath)(filePath), '/pdf-visual-diff/src/__snapshots__/two-page.png'));
(0, node_test_1.it)('mkDiffSnapshotPath()', async () => assert.strictEqual((0, utils_1.mkDiffSnapshotPath)(filePath), '/pdf-visual-diff/src/__snapshots__/two-page.diff.png'));
});
//# sourceMappingURL=utils.test.js.map
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../src/cli/utils.test.ts"],"names":[],"mappings":";;AAAA,yCAAwC;AACxC,6CAA4C;AAC5C,mCAAmE;AAEnE,MAAM,QAAQ,GAAG,qDAAqD,CAAA;AAEtE,IAAA,oBAAQ,EAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAA,cAAE,EAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE,CACvC,MAAM,CAAC,WAAW,CAChB,IAAA,6BAAqB,EAAC,QAAQ,CAAC,EAC/B,iDAAiD,CAClD,CAAC,CAAA;IAEJ,IAAA,cAAE,EAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CACpC,MAAM,CAAC,WAAW,CAChB,IAAA,0BAAkB,EAAC,QAAQ,CAAC,EAC5B,sDAAsD,CACvD,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const node_test_1 = require("node:test");
const assert = require("node:assert/strict");
const compare_images_1 = require("./compare-images");
const path_1 = require("path");
const fs_1 = require("fs");
const jimp_1 = require("jimp");
(0, node_test_1.describe)('mkDiffPath()', () => {
(0, node_test_1.it)('should mk path with extension', () => assert.strictEqual((0, compare_images_1.mkDiffPath)('some-path.ext'), 'some-path.diff.ext'));
(0, node_test_1.it)('should mk path with extension when starts with .', () => assert.strictEqual((0, compare_images_1.mkDiffPath)('./some-path.ext'), './some-path.diff.ext'));
(0, node_test_1.it)('should handle empty', () => assert.strictEqual((0, compare_images_1.mkDiffPath)(''), '.diff'));
(0, node_test_1.it)('should mk path without extension', () => assert.strictEqual((0, compare_images_1.mkDiffPath)('some-path'), 'some-path.diff'));
});
const expectedImageName = 'sample-image-expected.png';
const sampleImage = 'sample-image.png';
const sampleImage2 = 'sample-image-2.png';
const testDataDir = (0, path_1.join)(__dirname, './test-data');
const expectedImagePath = (0, path_1.join)(testDataDir, expectedImageName);
const imagePath = (0, path_1.join)(testDataDir, sampleImage);
const image2Path = (0, path_1.join)(testDataDir, sampleImage2);
(0, node_test_1.describe)('compareImages()', () => {
(0, node_test_1.it)('should succeed comparing', () => jimp_1.Jimp.read(imagePath)
.then((x) => x)
.then((img) => (0, compare_images_1.compareImages)(expectedImagePath, [img]))
.then((x) => {
assert.strictEqual(x.equal, true);
assert.strictEqual((0, fs_1.existsSync)((0, compare_images_1.mkDiffPath)(imagePath)), false, 'should not generate diff output');
}));
(0, node_test_1.it)('should fail comparing and output diff', () => jimp_1.Jimp.read(image2Path)
.then((x) => x)
.then((img) => (0, compare_images_1.compareImages)(expectedImagePath, [img]))
.then((x) => {
assert.strictEqual(x.equal, false);
assert.ok(x.diffs && x.diffs[0] && 'diff' in x.diffs[0], "Expected 'diffs[0].diff' to exist");
assert.ok(x.diffs && x.diffs[0] && 'page' in x.diffs[0], "Expected 'diffs[0].page' to exist");
}));
});
//# sourceMappingURL=compare-images.test.js.map
{"version":3,"file":"compare-images.test.js","sourceRoot":"","sources":["../src/compare-images.test.ts"],"names":[],"mappings":"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"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const node_test_1 = require("node:test");
const assert = require("node:assert/strict");
const jimp_1 = require("jimp");
const compare_pdf_to_snapshot_1 = require("./compare-pdf-to-snapshot");
const path_1 = require("path");
const fs_1 = require("fs");
const compare_images_1 = require("./compare-images");
const fs = require("fs/promises");
const types_1 = require("./types");
const testDataDir = (0, path_1.join)(__dirname, './test-data');
const pdfs = (0, path_1.join)(testDataDir, 'pdfs');
const singlePageSmallPdfPath = (0, path_1.join)(pdfs, 'single-page-small.pdf');
const singlePagePdfPath = (0, path_1.join)(pdfs, 'single-page.pdf');
const twoPagePdfPath = (0, path_1.join)(pdfs, 'two-page.pdf');
(0, node_test_1.describe)('comparePdfToSnapshot()', () => {
(0, node_test_1.it)('should create new snapshot, when one does not exists', () => {
const snapshotName = 'single-page-small';
const snapshotPath = (0, path_1.join)(__dirname, compare_pdf_to_snapshot_1.snapshotsDirName, snapshotName + '.png');
if ((0, fs_1.existsSync)(snapshotPath)) {
(0, fs_1.unlinkSync)(snapshotPath);
}
return (0, compare_pdf_to_snapshot_1.comparePdfToSnapshot)(singlePageSmallPdfPath, __dirname, snapshotName).then((x) => {
assert.strictEqual(x, true);
assert.strictEqual((0, fs_1.existsSync)(snapshotPath), true);
(0, fs_1.unlinkSync)(snapshotPath);
});
});
(0, node_test_1.it)('should fail and create diff with new version', () => (0, compare_pdf_to_snapshot_1.comparePdfToSnapshot)(singlePagePdfPath, __dirname, 'two-page').then((x) => {
assert.strictEqual(x, false);
const snapshotDiffPath = (0, path_1.join)(__dirname, compare_pdf_to_snapshot_1.snapshotsDirName, 'two-page.diff.png');
assert.strictEqual((0, fs_1.existsSync)(snapshotDiffPath), true, 'diff is not created');
const snapshotNewPath = (0, path_1.join)(__dirname, compare_pdf_to_snapshot_1.snapshotsDirName, 'two-page.new.png');
assert.strictEqual((0, fs_1.existsSync)(snapshotNewPath), true, 'new is not created');
}));
(0, node_test_1.describe)('should pass', () => {
(0, node_test_1.it)('should pass', () => (0, compare_pdf_to_snapshot_1.comparePdfToSnapshot)(twoPagePdfPath, __dirname, 'two-page-success').then((x) => assert.strictEqual(x, true)));
const testDataDir = (0, path_1.join)(__dirname, './test-data');
const pdfs = (0, path_1.join)(testDataDir, 'pdfs');
const singlePageSmall = (0, path_1.join)(pdfs, 'single-page-small.pdf');
const singlePage = (0, path_1.join)(pdfs, 'single-page.pdf');
const tamReview = (0, path_1.join)(pdfs, 'TAMReview.pdf');
const twoPage = (0, path_1.join)(pdfs, 'two-page.pdf');
const expectedDir = (0, path_1.join)(testDataDir, 'pdf2png-expected');
const testPdf2png = (pdf, expectedImageName, options) => {
return (0, compare_pdf_to_snapshot_1.comparePdfToSnapshot)(pdf, expectedDir, expectedImageName, options).then((x) => {
assert.strictEqual(x, true);
});
};
(0, node_test_1.it)('single-page-small.pdf', () => testPdf2png(singlePageSmall, 'single-page-small'));
(0, node_test_1.it)('single-page.pdf', () => testPdf2png(singlePage, 'single-page'));
(0, node_test_1.it)('TAMReview.pdf', () => testPdf2png(tamReview, 'TAMReview'));
(0, node_test_1.it)('TAMReview.pdf without scaling', () => testPdf2png(tamReview, 'TAMReview_without_scaling', {
pdf2PngOptions: { dpi: types_1.Dpi.Low },
}));
(0, node_test_1.it)('two-page.pdf', () => testPdf2png(twoPage, 'two-page'));
(0, node_test_1.it)('two-page.pdf buffer', () => fs.readFile(twoPage).then((x) => testPdf2png(x, 'two-page')));
});
(0, node_test_1.describe)('maskRegions', () => {
const blueMask = {
type: 'rectangle-mask',
x: 50,
y: 75,
width: 140,
height: 100,
color: 'Blue',
};
const greenMask = {
type: 'rectangle-mask',
x: 110,
y: 200,
width: 90,
height: 50,
color: 'Green',
};
const opts = {
maskRegions: () => [blueMask, greenMask],
};
(0, node_test_1.it)('should succeed comparing masked pdf', () => (0, compare_pdf_to_snapshot_1.comparePdfToSnapshot)(singlePagePdfPath, __dirname, 'mask-rectangle-masks', opts).then((x) => assert.strictEqual(x, true)));
(0, node_test_1.it)('should succeed comparing masked pdf without scaling', () => {
const blueMaskSmall = {
type: 'rectangle-mask',
x: 25,
y: 37,
width: 70,
height: 50,
color: 'Blue',
};
const greenMaskSmall = {
type: 'rectangle-mask',
x: 55,
y: 100,
width: 45,
height: 25,
color: 'Green',
};
return (0, compare_pdf_to_snapshot_1.comparePdfToSnapshot)(singlePagePdfPath, __dirname, 'mask-rectangle-masks_without_scaling', {
pdf2PngOptions: { dpi: 72 },
maskRegions: () => [blueMaskSmall, greenMaskSmall],
}).then((x) => assert.strictEqual(x, true));
});
(0, node_test_1.it)('should mask multi page pdf', () => (0, compare_pdf_to_snapshot_1.comparePdfToSnapshot)(twoPagePdfPath, __dirname, 'mask-multi-page-pdf', opts).then((x) => assert.strictEqual(x, true)));
(0, node_test_1.it)('should have different mask per page', () => (0, compare_pdf_to_snapshot_1.comparePdfToSnapshot)(twoPagePdfPath, __dirname, 'mask-different-mask-per-page', {
maskRegions: (page) => {
switch (page) {
case 1:
return [blueMask];
case 2:
return [greenMask];
default:
return [];
}
},
}).then((x) => assert.strictEqual(x, true)));
(0, node_test_1.it)('should mask only second page of the pdf', () => (0, compare_pdf_to_snapshot_1.comparePdfToSnapshot)(twoPagePdfPath, __dirname, 'mask-only-second-page-of-the-pdf', {
maskRegions: (page) => (page === 2 ? [blueMask, greenMask] : []),
}).then((x) => assert.strictEqual(x, true)));
(0, node_test_1.it)('should mask only second page of the pdf and handle undefined masks', () => (0, compare_pdf_to_snapshot_1.comparePdfToSnapshot)(twoPagePdfPath, __dirname, 'mask-only-second-page-of-the-pdf-with-undefined', {
maskRegions: (page) => (page === 2 ? [blueMask, greenMask] : undefined),
}).then((x) => assert.strictEqual(x, true)));
(0, node_test_1.it)('should create initial masked image', () => {
const snapshotName = 'initial-rectangle-masks';
const snapshotPath = (0, path_1.join)(__dirname, compare_pdf_to_snapshot_1.snapshotsDirName, snapshotName + '.png');
const expectedImagePath = (0, path_1.join)(__dirname, './test-data', 'expected-initial-rectangle-masks.png');
if ((0, fs_1.existsSync)(snapshotPath)) {
(0, fs_1.unlinkSync)(snapshotPath);
}
return (0, compare_pdf_to_snapshot_1.comparePdfToSnapshot)(singlePagePdfPath, __dirname, snapshotName, opts)
.then((x) => assert.strictEqual(x, true))
.then(() => jimp_1.Jimp.read(snapshotPath))
.then((x) => x)
.then((img) => (0, compare_images_1.compareImages)(expectedImagePath, [img], { tolerance: 0 }).then((x) => assert.strictEqual(x.equal, true, 'generated initial rectangle masks does not match expected one')))
.then(() => (0, fs_1.unlinkSync)(snapshotPath));
});
});
});
//# sourceMappingURL=compare-pdf-to-snapshot.test.js.map
{"version":3,"file":"compare-pdf-to-snapshot.test.js","sourceRoot":"","sources":["../src/compare-pdf-to-snapshot.test.ts"],"names":[],"mappings":"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"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const node_test_1 = require("node:test");
const assert = require("node:assert/strict");
const conversions_1 = require("./conversions");
(0, node_test_1.describe)('conversions', () => {
(0, node_test_1.describe)('convertFromMmToPx', () => {
(0, node_test_1.it)('should convert millimeters to pixels correctly', () => {
assert.strictEqual((0, conversions_1.convertFromMmToPx)(10, 300), 118);
assert.strictEqual((0, conversions_1.convertFromMmToPx)(25.4, 300), 300);
assert.strictEqual((0, conversions_1.convertFromMmToPx)(0, 300), 0);
assert.strictEqual((0, conversions_1.convertFromMmToPx)(10, 0), 0);
assert.strictEqual((0, conversions_1.convertFromMmToPx)(-10, 300), 0);
assert.strictEqual((0, conversions_1.convertFromMmToPx)(10, -300), 0);
});
});
(0, node_test_1.describe)('convertFromPxToMm', () => {
(0, node_test_1.it)('should convert pixels to millimeters correctly', () => {
assert.strictEqual((0, conversions_1.convertFromPxToMm)(300, 300), 25);
assert.strictEqual((0, conversions_1.convertFromPxToMm)(118, 300), 10);
assert.strictEqual((0, conversions_1.convertFromPxToMm)(0, 300), 0);
assert.strictEqual((0, conversions_1.convertFromPxToMm)(300, 0), 0);
assert.strictEqual((0, conversions_1.convertFromPxToMm)(-300, 300), 0);
assert.strictEqual((0, conversions_1.convertFromPxToMm)(300, -300), 0);
});
});
});
//# sourceMappingURL=conversions.test.js.map
{"version":3,"file":"conversions.test.js","sourceRoot":"","sources":["../../src/conversions/conversions.test.ts"],"names":[],"mappings":";;AAAA,yCAAwC;AACxC,6CAA4C;AAC5C,+CAAoE;AAEpE,IAAA,oBAAQ,EAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAA,oBAAQ,EAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,IAAA,cAAE,EAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,CAAC,WAAW,CAAC,IAAA,+BAAiB,EAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;YACnD,MAAM,CAAC,WAAW,CAAC,IAAA,+BAAiB,EAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;YACrD,MAAM,CAAC,WAAW,CAAC,IAAA,+BAAiB,EAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAChD,MAAM,CAAC,WAAW,CAAC,IAAA,+BAAiB,EAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC/C,MAAM,CAAC,WAAW,CAAC,IAAA,+BAAiB,EAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAClD,MAAM,CAAC,WAAW,CAAC,IAAA,+BAAiB,EAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAA,oBAAQ,EAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,IAAA,cAAE,EAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,CAAC,WAAW,CAAC,IAAA,+BAAiB,EAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;YACnD,MAAM,CAAC,WAAW,CAAC,IAAA,+BAAiB,EAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;YACnD,MAAM,CAAC,WAAW,CAAC,IAAA,+BAAiB,EAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAChD,MAAM,CAAC,WAAW,CAAC,IAAA,+BAAiB,EAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAChD,MAAM,CAAC,WAAW,CAAC,IAAA,+BAAiB,EAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YACnD,MAAM,CAAC,WAAW,CAAC,IAAA,+BAAiB,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const node_test_1 = require("node:test");
const assert = require("node:assert/strict");
const path_1 = require("path");
const pdf2png_1 = require("./pdf2png");
const compare_images_1 = require("../compare-images");
const types_1 = require("../types");
const testDataDir = (0, path_1.join)(__dirname, '../test-data');
const pdfs = (0, path_1.join)(testDataDir, 'pdfs');
const singlePage = (0, path_1.join)(pdfs, 'single-page.pdf');
const twoPage = (0, path_1.join)(pdfs, 'two-page.pdf');
const cmaps = (0, path_1.join)(pdfs, 'cmaps.pdf');
const expectedDir = (0, path_1.join)(testDataDir, 'pdf2png-expected');
(0, node_test_1.describe)('pdf2png()', () => {
(0, node_test_1.it)('two-page.pdf png per page with scaling', () => {
const expectedImage1Path = (0, path_1.join)(expectedDir, 'two-page_png_per_page_scaled_1.png');
const expectedImage2Path = (0, path_1.join)(expectedDir, 'two-page_png_per_page_scaled_2.png');
return (0, pdf2png_1.pdf2png)(twoPage, { dpi: types_1.Dpi.High })
.then((imgs) => {
return Promise.all([
(0, compare_images_1.compareImages)(expectedImage1Path, [imgs[0]]),
(0, compare_images_1.compareImages)(expectedImage2Path, [imgs[1]]),
]);
})
.then((results) => {
results.forEach((x) => assert.strictEqual(x.equal, true));
});
});
(0, node_test_1.it)('two-page.pdf png per page and without scaling', () => {
const expectedImage1Path = (0, path_1.join)(expectedDir, 'two-page_png_per_page_1.png');
const expectedImage2Path = (0, path_1.join)(expectedDir, 'two-page_png_per_page_2.png');
return (0, pdf2png_1.pdf2png)(twoPage, { dpi: types_1.Dpi.Low })
.then((imgs) => {
return Promise.all([
(0, compare_images_1.compareImages)(expectedImage1Path, [imgs[0]]),
(0, compare_images_1.compareImages)(expectedImage2Path, [imgs[1]]),
]);
})
.then((results) => {
results.forEach((x) => assert.strictEqual(x.equal, true));
});
});
(0, node_test_1.it)('should scale using custom DPI', () => {
const expectedImagePath = (0, path_1.join)(expectedDir, 'should_scale_using_custom_DPI.png');
return (0, pdf2png_1.pdf2png)(singlePage, { dpi: 200 })
.then((imgs) => (0, compare_images_1.compareImages)(expectedImagePath, imgs))
.then((result) => assert.strictEqual(result.equal, true));
});
(0, node_test_1.it)('pdf that requires cmaps', () => {
const expectedImagePath = (0, path_1.join)(expectedDir, 'cmaps.png');
return (0, pdf2png_1.pdf2png)(cmaps)
.then((imgs) => (0, compare_images_1.compareImages)(expectedImagePath, imgs))
.then((result) => assert.strictEqual(result.equal, true));
});
});
//# sourceMappingURL=pdf2png.test.js.map
{"version":3,"file":"pdf2png.test.js","sourceRoot":"","sources":["../../src/pdf2png/pdf2png.test.ts"],"names":[],"mappings":"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"}
+6
-3
# Changelog
## 0.10.0 / 2024-09-06
- [#58](https://github.com/moshensky/pdf-visual-diff/issues/58): Expose option to set rendering DPI.
- [PR#65](https://github.com/moshensky/pdf-visual-diff/pull/65): Add [API documentation](https://moshensky.github.io/pdf-visual-diff/).
## 0.9.0 / 2023-09-04

@@ -15,3 +20,3 @@

If you haven't used `maskRegions` then you don't have to change anything.
If you haven't used `maskRegions` then you don't have to change anything.
`maskRegions` is changed from `ReadonlyArray<RegionMask>` to `(page: number) => ReadonlyArray<RegionMask>`. Straight forward code update could be:

@@ -42,4 +47,2 @@

## 0.7.1 / 2023-02-23

@@ -46,0 +49,0 @@

#!/usr/bin/env node
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.approve = void 0;
const fs_1 = __importDefault(require("fs"));
const fs = require("fs/promises");
const utils_1 = require("./utils");
const fs = fs_1.default.promises;
exports.approve = {

@@ -12,0 +8,0 @@ command: 'approve',

@@ -1,1 +0,1 @@

{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../src/cli/approve.ts"],"names":[],"mappings":";;;;;;;AAGA,4CAAoB;AACpB,mCAAmG;AAEnG,MAAM,EAAE,GAAG,YAAG,CAAC,QAAQ,CAAA;AAQV,QAAA,OAAO,GAAsC;IACxD,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,uBAAuB;IACjC,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,GAAG;SACb;QACD,oBAAoB,EAAE;YACpB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,eAAe;SACzB;KACF;IACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE;QACtC,OAAO,IAAA,kBAAU,EAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACvD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAA;YAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjF,OAAO,IAAA,0BAAkB,EAAC;;EAE9B,WAAW;sDACyC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;gBACnE,IAAI,SAAS,EAAE;oBACb,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACd,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,IAAA,6BAAqB,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAA,0BAAkB,EAAC,CAAC,CAAC,CAAC,CAAC,CACpF,CACF,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAA;iBACjE;gBACD,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;gBAC3D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;YAC1B,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../src/cli/approve.ts"],"names":[],"mappings":";;;;AAGA,kCAAiC;AACjC,mCAAmG;AAQtF,QAAA,OAAO,GAAsC;IACxD,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,uBAAuB;IACjC,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,GAAG;SACb;QACD,oBAAoB,EAAE;YACpB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,eAAe;SACzB;KACF;IACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE;QACtC,OAAO,IAAA,kBAAU,EAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACvD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAA;YAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjF,OAAO,IAAA,0BAAkB,EAAC;;EAE9B,WAAW;sDACyC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;gBACnE,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACd,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,IAAA,6BAAqB,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAA,0BAAkB,EAAC,CAAC,CAAC,CAAC,CAAC,CACpF,CACF,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAA;gBAClE,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;gBAC3D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;YAC1B,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
#!/usr/bin/env node
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.discard = void 0;
const utils_1 = require("./utils");
const fs_1 = __importDefault(require("fs"));
const fs = fs_1.default.promises;
const fs = require("fs/promises");
exports.discard = {

@@ -12,0 +8,0 @@ command: 'discard',

@@ -1,1 +0,1 @@

{"version":3,"file":"discard.js","sourceRoot":"","sources":["../../src/cli/discard.ts"],"names":[],"mappings":";;;;;;;AAGA,mCAAwD;AACxD,4CAAoB;AAEpB,MAAM,EAAE,GAAG,YAAG,CAAC,QAAQ,CAAA;AAQV,QAAA,OAAO,GAAsC;IACxD,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,iCAAiC;IAC3C,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,GAAG;SACb;QACD,oBAAoB,EAAE;YACpB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,eAAe;SACzB;KACF;IACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE;QACtC,OAAO,IAAA,kBAAU,EAAC,IAAI,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5E,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAA;YAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjF,OAAO,IAAA,0BAAkB,EAAC;;EAE9B,WAAW;0CAC6B,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;gBACvD,IAAI,SAAS,EAAE;oBACb,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC3D,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAC/D,CAAA;iBACF;gBACD,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;gBAC3D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;YAC1B,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
{"version":3,"file":"discard.js","sourceRoot":"","sources":["../../src/cli/discard.ts"],"names":[],"mappings":";;;;AAGA,mCAAwD;AACxD,kCAAiC;AAQpB,QAAA,OAAO,GAAsC;IACxD,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,iCAAiC;IAC3C,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,GAAG;SACb;QACD,oBAAoB,EAAE;YACpB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,eAAe;SACzB;KACF;IACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE;QACtC,OAAO,IAAA,kBAAU,EAAC,IAAI,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5E,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAA;YAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjF,OAAO,IAAA,0BAAkB,EAAC;;EAE9B,WAAW;0CAC6B,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;gBACvD,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC3D,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAC/D,CAAA;gBACH,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;gBAC3D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;YAC1B,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
#!/usr/bin/env node
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const yargs_1 = __importDefault(require("yargs"));
const yargs_1 = require("yargs");
const helpers_1 = require("yargs/helpers");

@@ -9,0 +6,0 @@ const approve_1 = require("./approve");

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;AAEA,kDAAyB;AACzB,2CAAuC;AACvC,uCAAmC;AACnC,uCAAmC;AAEnC,IAAA,eAAK,EAAC,IAAA,iBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAO,CAAC,CAAC,OAAO,CAAC,iBAAO,CAAC,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,CAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAEA,iCAAyB;AACzB,2CAAuC;AACvC,uCAAmC;AACnC,uCAAmC;AAEnC,IAAA,eAAK,EAAC,IAAA,iBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAO,CAAC,CAAC,OAAO,CAAC,iBAAO,CAAC,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,CAAA"}

@@ -1,1 +0,1 @@

{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAC3B,+BAA2B;AAC3B,uCAA0C;AAE1C,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAA;AAE5B,MAAM,qBAAqB,GAAG,CAAC,eAAuB,EAAU,EAAE,CACvE,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAA;AAD9D,QAAA,qBAAqB,yBACyC;AAEpE,MAAM,kBAAkB,GAAG,CAAC,eAAuB,EAAU,EAAE,CACpE,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,WAAW,CAAA;AADnE,QAAA,kBAAkB,sBACiD;AAEzE,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAoB,EAAE;IACvE,MAAM,QAAQ,GAAG,IAAA,0BAAe,EAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAClF,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,GAAG,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YAClD,QAAQ,CAAC,KAAK,EAAE,CAAA;YAChB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAA;YACjD,IAAI,OAAO,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACxD,GAAG,CAAC,IAAI,CAAC,CAAA;aACV;iBAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC5C,GAAG,CAAC,KAAK,CAAC,CAAA;aACX;iBAAM;gBACL,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAA;gBAClF,IAAA,0BAAkB,EAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;aACvC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAhBY,QAAA,kBAAkB,sBAgB9B;AAEM,MAAM,UAAU,GAAG,CACxB,YAAY,GAAG,GAAG,EAClB,gBAAgB,GAAG,eAAe,EAClC,cAAc,GAAG,WAAW,EACI,EAAE;IAClC,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAA;IACzF,OAAO,IAAA,WAAI,EAAC,OAAO,EAAE,EAAE,CAAC,CAAA;AAC1B,CAAC,CAAA;AAPY,QAAA,UAAU,cAOtB"}
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAC3B,+BAA2B;AAC3B,uCAA0C;AAE1C,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAA;AAE5B,MAAM,qBAAqB,GAAG,CAAC,eAAuB,EAAU,EAAE,CACvE,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAA;AAD9D,QAAA,qBAAqB,yBACyC;AAEpE,MAAM,kBAAkB,GAAG,CAAC,eAAuB,EAAU,EAAE,CACpE,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,WAAW,CAAA;AADnE,QAAA,kBAAkB,sBACiD;AAEzE,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAoB,EAAE;IACvE,MAAM,QAAQ,GAAG,IAAA,0BAAe,EAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAClF,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,GAAG,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YAClD,QAAQ,CAAC,KAAK,EAAE,CAAA;YAChB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAA;YACjD,IAAI,OAAO,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,IAAI,CAAC,CAAA;YACX,CAAC;iBAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,KAAK,CAAC,CAAA;YACZ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAA;gBAClF,IAAA,0BAAkB,EAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACxC,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAhBY,QAAA,kBAAkB,sBAgB9B;AAEM,MAAM,UAAU,GAAG,CACxB,YAAY,GAAG,GAAG,EAClB,gBAAgB,GAAG,eAAe,EAClC,cAAc,GAAG,WAAW,EACI,EAAE;IAClC,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAA;IACzF,OAAO,IAAA,WAAI,EAAC,OAAO,EAAE,EAAE,CAAC,CAAA;AAC1B,CAAC,CAAA;AAPY,QAAA,UAAU,cAOtB"}

@@ -1,2 +0,2 @@

import Jimp from 'jimp';
import { JimpInstance } from 'jimp';
export declare const mkDiffPath: (path: string) => string;

@@ -14,7 +14,7 @@ /** The options type for {@link compareImages}. */

page: number;
diff: Jimp;
diff: JimpInstance;
}>;
};
type CompareImagesResult = CompareOK | CompareKO;
export declare const compareImages: (expectedImagePath: string, images: ReadonlyArray<Jimp>, options?: CompareImagesOpts) => Promise<CompareImagesResult>;
export declare const compareImages: (expectedImagePath: string, images: ReadonlyArray<JimpInstance>, options?: CompareImagesOpts) => Promise<CompareImagesResult>;
export {};
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.compareImages = exports.mkDiffPath = void 0;
const jimp_1 = __importStar(require("jimp"));
const jimp_1 = require("jimp");
const imageUtils_1 = require("./imageUtils");

@@ -42,6 +19,7 @@ const diffToken = '.diff';

const { tolerance } = Object.assign(Object.assign({}, defaultOpts), options);
const expectedImg = await (0, jimp_1.read)(expectedImagePath);
// @ts-expect-error it is a Jimp
const expectedImg = await jimp_1.Jimp.read(expectedImagePath);
// Multi image comparison not implemented!
const img = (0, imageUtils_1.mergeImages)(images);
const diff = jimp_1.default.diff(expectedImg, img, tolerance);
const diff = (0, jimp_1.diff)(expectedImg, img, tolerance);
if (diff.percent > 0) {

@@ -48,0 +26,0 @@ return {

@@ -1,1 +0,1 @@

{"version":3,"file":"compare-images.js","sourceRoot":"","sources":["../src/compare-images.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAiC;AACjC,6CAA0C;AAE1C,MAAM,SAAS,GAAG,OAAO,CAAA;AAClB,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACtC,OAAO,QAAQ,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,IAAI,GAAG,SAAS;QAClB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;AACxE,CAAC,CAAA;AALY,QAAA,UAAU,cAKtB;AAOD,MAAM,WAAW,GAAgC;IAC/C,SAAS,EAAE,CAAC;CACb,CAAA;AAgBM,MAAM,aAAa,GAAG,KAAK,EAChC,iBAAyB,EACzB,MAA2B,EAC3B,OAA2B,EACG,EAAE;IAChC,MAAM,EAAE,SAAS,EAAE,mCACd,WAAW,GACX,OAAO,CACX,CAAA;IACD,MAAM,WAAW,GAAG,MAAM,IAAA,WAAI,EAAC,iBAAiB,CAAC,CAAA;IACjD,0CAA0C;IAC1C,MAAM,GAAG,GAAG,IAAA,wBAAW,EAAC,MAAM,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;IACnD,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;QACpB,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SACvC,CAAA;KACF;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACxB,CAAC,CAAA;AArBY,QAAA,aAAa,iBAqBzB"}
{"version":3,"file":"compare-images.js","sourceRoot":"","sources":["../src/compare-images.ts"],"names":[],"mappings":";;;AAAA,+BAA2D;AAC3D,6CAA0C;AAE1C,MAAM,SAAS,GAAG,OAAO,CAAA;AAClB,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACtC,OAAO,QAAQ,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,IAAI,GAAG,SAAS;QAClB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;AACxE,CAAC,CAAA;AALY,QAAA,UAAU,cAKtB;AAOD,MAAM,WAAW,GAAgC;IAC/C,SAAS,EAAE,CAAC;CACb,CAAA;AAgBM,MAAM,aAAa,GAAG,KAAK,EAChC,iBAAyB,EACzB,MAAmC,EACnC,OAA2B,EACG,EAAE;IAChC,MAAM,EAAE,SAAS,EAAE,mCACd,WAAW,GACX,OAAO,CACX,CAAA;IACD,gCAAgC;IAChC,MAAM,WAAW,GAAiB,MAAM,WAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IACpE,0CAA0C;IAC1C,MAAM,GAAG,GAAG,IAAA,wBAAW,EAAC,MAAM,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,IAAA,WAAQ,EAAC,WAAW,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;IAClD,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SACvC,CAAA;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACxB,CAAC,CAAA;AAtBY,QAAA,aAAa,iBAsBzB"}

@@ -1,2 +0,1 @@

/// <reference types="node" />
import { PdfToPngOptions } from './types';

@@ -3,0 +2,0 @@ /**

@@ -13,12 +13,10 @@ "use strict";

};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.comparePdfToSnapshot = exports.snapshotsDirName = void 0;
const path_1 = __importDefault(require("path"));
exports.snapshotsDirName = void 0;
exports.comparePdfToSnapshot = comparePdfToSnapshot;
const path = require("path");
const fs_1 = require("fs");
const pdf2png_1 = require("./pdf2png/pdf2png");
const compare_images_1 = require("./compare-images");
const jimp_1 = __importDefault(require("jimp"));
const jimp_1 = require("jimp");
const imageUtils_1 = require("./imageUtils");

@@ -41,3 +39,3 @@ const colorToNum = {

if (type === 'rectangle-mask') {
img.composite(new jimp_1.default(width, height, colorToNum[color]), x, y);
img.composite(new jimp_1.Jimp({ width, height, color: colorToNum[color] }), x, y);
}

@@ -80,7 +78,7 @@ });

const _a = options || {}, { maskRegions = () => [], pdf2PngOptions } = _a, restOpts = __rest(_a, ["maskRegions", "pdf2PngOptions"]);
const dir = path_1.default.join(snapshotDir, exports.snapshotsDirName);
const dir = path.join(snapshotDir, exports.snapshotsDirName);
if (!(0, fs_1.existsSync)(dir)) {
(0, fs_1.mkdirSync)(dir, { recursive: true });
}
const snapshotPath = path_1.default.join(dir, snapshotName + '.png');
const snapshotPath = path.join(dir, snapshotName + '.png');
if (!(0, fs_1.existsSync)(snapshotPath)) {

@@ -95,3 +93,3 @@ return (0, pdf2png_1.pdf2png)(pdf, pdf2PngOptions)

.then((images) => (0, compare_images_1.compareImages)(snapshotPath, images, restOpts).then((result) => {
const diffSnapshotPath = path_1.default.join(dir, snapshotName + '.diff.png');
const diffSnapshotPath = path.join(dir, snapshotName + '.diff.png');
if (result.equal) {

@@ -103,3 +101,3 @@ if ((0, fs_1.existsSync)(diffSnapshotPath)) {

}
const newSnapshotPath = path_1.default.join(dir, snapshotName + '.new.png');
const newSnapshotPath = path.join(dir, snapshotName + '.new.png');
return (0, imageUtils_1.writeImages)(newSnapshotPath)(images)

@@ -110,3 +108,2 @@ .then(() => (0, imageUtils_1.writeImages)(diffSnapshotPath)(result.diffs.map((x) => x.diff)))

}
exports.comparePdfToSnapshot = comparePdfToSnapshot;
//# sourceMappingURL=compare-pdf-to-snapshot.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"compare-pdf-to-snapshot.js","sourceRoot":"","sources":["../src/compare-pdf-to-snapshot.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"compare-pdf-to-snapshot.js","sourceRoot":"","sources":["../src/compare-pdf-to-snapshot.ts"],"names":[],"mappings":"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"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertFromPxToMm = exports.convertFromMmToPx = void 0;
exports.convertFromMmToPx = convertFromMmToPx;
exports.convertFromPxToMm = convertFromPxToMm;
/**

@@ -18,3 +19,2 @@ * Converts a size from millimeters to pixels based on the provided DPI (dots per inch).

}
exports.convertFromMmToPx = convertFromMmToPx;
/**

@@ -34,3 +34,2 @@ * Converts a size from pixels to millimeters based on the provided DPI (dots per inch).

}
exports.convertFromPxToMm = convertFromPxToMm;
//# sourceMappingURL=conversions.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"conversions.js","sourceRoot":"","sources":["../../src/conversions/conversions.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,MAAc,EAAE,GAAW;IAC3D,IAAI,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE;QAC3B,OAAO,CAAC,CAAA;KACT;IACD,MAAM,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAA;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAA;AACnC,CAAC;AAND,8CAMC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,MAAc,EAAE,GAAW;IAC3D,IAAI,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE;QAC3B,OAAO,CAAC,CAAA;KACT;IACD,MAAM,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAA;IAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;AACpC,CAAC;AAND,8CAMC"}
{"version":3,"file":"conversions.js","sourceRoot":"","sources":["../../src/conversions/conversions.ts"],"names":[],"mappings":";;AAOA,8CAMC;AASD,8CAMC;AA5BD;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,MAAc,EAAE,GAAW;IAC3D,IAAI,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,CAAA;IACV,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAA;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAA;AACnC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,MAAc,EAAE,GAAW;IAC3D,IAAI,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,CAAA;IACV,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAA;IAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;AACpC,CAAC"}

@@ -1,2 +0,2 @@

import Jimp from 'jimp';
import { JimpInstance } from 'jimp';
/**

@@ -8,2 +8,2 @@ * Merges an array of Jimp images into a single image.

*/
export declare function mergeImages(images: ReadonlyArray<Jimp>): Jimp;
export declare function mergeImages(images: ReadonlyArray<JimpInstance>): JimpInstance;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.mergeImages = void 0;
const jimp_1 = __importDefault(require("jimp"));
exports.mergeImages = mergeImages;
const jimp_1 = require("jimp");
/**

@@ -18,11 +15,10 @@ * Merges an array of Jimp images into a single image.

const res = { img, y: imgHeight };
imgHeight += img.bitmap.height;
imgHeight += img.height;
return res;
});
const imgWidth = Math.max(...imgData.map(({ img }) => img.bitmap.width));
const baseImage = new jimp_1.default(imgWidth, imgHeight, 0x00000000);
const imgWidth = Math.max(...imgData.map(({ img }) => img.width));
const baseImage = new jimp_1.Jimp({ width: imgWidth, height: imgHeight, color: 0x00000000 });
imgData.forEach(({ img, y }) => baseImage.composite(img, 0, y));
return baseImage;
}
exports.mergeImages = mergeImages;
//# sourceMappingURL=mergeImages.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"mergeImages.js","sourceRoot":"","sources":["../../src/imageUtils/mergeImages.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAOvB;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,MAA2B;IACrD,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,MAAM,OAAO,GAAc,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAA;QACjC,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA;QAC9B,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACxE,MAAM,SAAS,GAAG,IAAI,cAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;IAE3D,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAE/D,OAAO,SAAS,CAAA;AAClB,CAAC;AAdD,kCAcC"}
{"version":3,"file":"mergeImages.js","sourceRoot":"","sources":["../../src/imageUtils/mergeImages.ts"],"names":[],"mappings":";;AAaA,kCAcC;AA3BD,+BAAyC;AAOzC;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,MAAmC;IAC7D,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,MAAM,OAAO,GAAc,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAA;QACjC,SAAS,IAAI,GAAG,CAAC,MAAM,CAAA;QACvB,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IACjE,MAAM,SAAS,GAAG,IAAI,WAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;IAErF,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAE/D,OAAO,SAAS,CAAA;AAClB,CAAC"}

@@ -1,2 +0,2 @@

import Jimp from 'jimp';
import { JimpInstance } from 'jimp';
/**

@@ -7,2 +7,2 @@ * Writes images to the specified output path.

*/
export declare const writeImages: (outputImagePath: string, combinePages?: boolean) => (images: ReadonlyArray<Jimp>) => Promise<void>;
export declare const writeImages: (outputImagePath: string, combinePages?: boolean) => (images: ReadonlyArray<JimpInstance>) => Promise<void>;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.writeImages = void 0;
const path_1 = __importDefault(require("path"));
const path = require("path");
const mergeImages_1 = require("./mergeImages");

@@ -23,12 +20,12 @@ /**

if (combinePages === true) {
return (0, mergeImages_1.mergeImages)(images)
.writeAsync(outputImagePath)
.then(() => undefined);
// @ts-expect-error too smart types
const outputImagePath0 = outputImagePath;
return (0, mergeImages_1.mergeImages)(images).write(outputImagePath0);
}
const parsedPath = path_1.default.parse(outputImagePath);
const partialName = path_1.default.join(parsedPath.dir, parsedPath.name);
const parsedPath = path.parse(outputImagePath);
const partialName = path.join(parsedPath.dir, parsedPath.name);
const padMaxLen = images.length.toString().length;
return Promise.all(images.map((img, idx) => img.writeAsync(`${partialName}_${String(idx + 1).padStart(padMaxLen, '0')}.png`))).then(() => undefined);
return Promise.all(images.map((img, idx) => img.write(`${partialName}_${String(idx + 1).padStart(padMaxLen, '0')}.png`))).then(() => undefined);
};
exports.writeImages = writeImages;
//# sourceMappingURL=writeImages.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"writeImages.js","sourceRoot":"","sources":["../../src/imageUtils/writeImages.ts"],"names":[],"mappings":";;;;;;AACA,gDAAuB;AACvB,+CAA2C;AAE3C;;;;GAIG;AACI,MAAM,WAAW,GACtB;AACE,+CAA+C;AAC/C,eAAuB;AACvB;;;GAGG;AACH,YAAY,GAAG,IAAI,EACnB,EAAE,CACJ,CAAC,MAA2B,EAAiB,EAAE;IAC7C,IAAI,YAAY,KAAK,IAAI,EAAE;QACzB,OAAO,IAAA,yBAAW,EAAC,MAAM,CAAC;aACvB,UAAU,CAAC,eAAe,CAAC;aAC3B,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;KACzB;IAED,MAAM,UAAU,GAAG,cAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAC9C,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;IAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAA;IACjD,OAAO,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACtB,GAAG,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CACjF,CACF,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AACzB,CAAC,CAAA;AAzBU,QAAA,WAAW,eAyBrB"}
{"version":3,"file":"writeImages.js","sourceRoot":"","sources":["../../src/imageUtils/writeImages.ts"],"names":[],"mappings":";;;AACA,6BAA4B;AAC5B,+CAA2C;AAE3C;;;;GAIG;AACI,MAAM,WAAW,GACtB;AACE,+CAA+C;AAC/C,eAAuB;AACvB;;;GAGG;AACH,YAAY,GAAG,IAAI,EACnB,EAAE,CACJ,CAAC,MAAmC,EAAiB,EAAE;IACrD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,mCAAmC;QACnC,MAAM,gBAAgB,GAA0B,eAAe,CAAA;QAC/D,OAAO,IAAA,yBAAW,EAAC,MAAM,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;IAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAA;IACjD,OAAO,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACtB,GAAG,CAAC,KAAK,CAAC,GAAG,WAAW,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAC5E,CACF,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AACzB,CAAC,CAAA;AAzBU,QAAA,WAAW,eAyBrB"}
import * as Canvas from 'canvas';
export type CanvasAndContext = {
canvas: Canvas.Canvas;
context: Canvas.CanvasRenderingContext2D;
set: (width: number, height: number) => void;
destroy: () => void;
};
export declare class NodeCanvasFactory {
create(width: number, height: number): CanvasAndContext;
reset(canvasAndContext: CanvasAndContext, width: number, height: number): void;
destroy(canvasAndContext: CanvasAndContext): void;
}
export declare function mkCanvas(): CanvasAndContext;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.NodeCanvasFactory = void 0;
const Canvas = __importStar(require("canvas"));
const assert = __importStar(require("assert"));
class NodeCanvasFactory {
create(width, height) {
assert.ok(width > 0 && height > 0, 'Invalid canvas size');
const canvas = Canvas.createCanvas(width, height);
const context = canvas.getContext('2d');
return {
canvas,
context,
};
}
reset(canvasAndContext, width, height) {
assert.ok(canvasAndContext.canvas, 'Canvas is not specified');
assert.ok(width > 0 && height > 0, 'Invalid canvas size');
canvasAndContext.canvas.width = width;
canvasAndContext.canvas.height = height;
}
destroy(canvasAndContext) {
assert.ok(canvasAndContext.canvas, 'Canvas is not specified');
canvasAndContext.canvas.width = 0;
canvasAndContext.canvas.height = 0;
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
canvasAndContext.canvas = null;
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
canvasAndContext.context = null;
}
exports.mkCanvas = mkCanvas;
const Canvas = require("canvas");
const assert = require("assert");
function mkCanvas() {
let canvas = Canvas.createCanvas(1, 1);
let context = canvas.getContext('2d');
return {
context,
set: (width, height) => {
assert.ok(width > 0 && height > 0, 'Invalid canvas size');
canvas.width = width;
canvas.height = height;
},
destroy: () => {
canvas.width = 0;
canvas.height = 0;
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
canvas = null;
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
context = null;
},
};
}
exports.NodeCanvasFactory = NodeCanvasFactory;
//# sourceMappingURL=nodeCanvasFactory.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"nodeCanvasFactory.js","sourceRoot":"","sources":["../../src/pdf2png/nodeCanvasFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAgC;AAChC,+CAAgC;AAOhC,MAAa,iBAAiB;IAC5B,MAAM,CAAC,KAAa,EAAE,MAAc;QAClC,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAA;QACzD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACjD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO;YACL,MAAM;YACN,OAAO;SACR,CAAA;IACH,CAAC;IAED,KAAK,CAAC,gBAAkC,EAAE,KAAa,EAAE,MAAc;QACrE,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAA;QAC7D,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAA;QACzD,gBAAgB,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;QACrC,gBAAgB,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;IACzC,CAAC;IAED,OAAO,CAAC,gBAAkC;QACxC,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAA;QAC7D,gBAAgB,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAA;QACjC,gBAAgB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;QAClC,6DAA6D;QAC7D,aAAa;QACb,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAA;QAC9B,6DAA6D;QAC7D,aAAa;QACb,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAA;IACjC,CAAC;CACF;AA7BD,8CA6BC"}
{"version":3,"file":"nodeCanvasFactory.js","sourceRoot":"","sources":["../../src/pdf2png/nodeCanvasFactory.ts"],"names":[],"mappings":";;AASA,4BAqBC;AA9BD,iCAAgC;AAChC,iCAAgC;AAQhC,SAAgB,QAAQ;IACtB,IAAI,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACtC,IAAI,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACrC,OAAO;QACL,OAAO;QACP,GAAG,EAAE,CAAC,KAAa,EAAE,MAAc,EAAQ,EAAE;YAC3C,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAA;YACzD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;YACpB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QACxB,CAAC;QACD,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,CAAC,KAAK,GAAG,CAAC,CAAA;YAChB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;YACjB,6DAA6D;YAC7D,aAAa;YACb,MAAM,GAAG,IAAI,CAAA;YACb,6DAA6D;YAC7D,aAAa;YACb,OAAO,GAAG,IAAI,CAAA;QAChB,CAAC;KACF,CAAA;AACH,CAAC"}

@@ -1,4 +0,3 @@

/// <reference types="node" />
import Jimp from 'jimp';
import { JimpInstance } from 'jimp';
import { PdfToPngOptions } from '../types';
export declare function pdf2png(pdf: string | Buffer, options?: PdfToPngOptions): Promise<ReadonlyArray<Jimp>>;
export declare function pdf2png(pdf: string | Buffer, options?: PdfToPngOptions): Promise<ReadonlyArray<JimpInstance>>;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.pdf2png = void 0;
const fs = __importStar(require("fs"));
const path = __importStar(require("path"));
const pdfjsLib = __importStar(require("pdfjs-dist/legacy/build/pdf"));
exports.pdf2png = pdf2png;
const fs = require("fs/promises");
const path = require("path");
const jimp_1 = require("jimp");

@@ -35,8 +11,10 @@ const types_1 = require("../types");

// pdfjs location
const PDFJS_DIR = path.dirname(require.resolve('pdfjs-dist'));
// Some PDFs need external cmaps.
const CMAP_URL = path.join(PDFJS_DIR, '../cmaps/');
const CMAP_PACKED = true;
// Where the standard fonts are located.
const STANDARD_FONT_DATA_URL = path.join(PDFJS_DIR, '../standard_fonts/');
const PDFJS_DIR = path.join(path.dirname(require.resolve('pdfjs-dist')), '..');
const DOCUMENT_INIT_PARAMS_DEFAULTS = {
// Where the standard fonts are located.
standardFontDataUrl: path.join(PDFJS_DIR, 'standard_fonts/'),
// Some PDFs need external cmaps.
cMapUrl: path.join(PDFJS_DIR, 'cmaps/'),
cMapPacked: true,
};
const pdf2PngDefOpts = {

@@ -61,15 +39,10 @@ dpi: types_1.Dpi.High,

async function pdf2png(pdf, options = {}) {
const { getDocument } = await import('pdfjs-dist/legacy/build/pdf.mjs');
const opts = Object.assign(Object.assign({}, pdf2PngDefOpts), options);
// Load PDF
const data = new Uint8Array(Buffer.isBuffer(pdf) ? pdf : fs.readFileSync(pdf));
const loadingTask = pdfjsLib.getDocument({
data,
cMapUrl: CMAP_URL,
cMapPacked: CMAP_PACKED,
standardFontDataUrl: STANDARD_FONT_DATA_URL,
});
const pdfBuffer = await (Buffer.isBuffer(pdf) ? Promise.resolve(pdf) : fs.readFile(pdf));
const loadingTask = getDocument(Object.assign(Object.assign({}, DOCUMENT_INIT_PARAMS_DEFAULTS), { data: new Uint8Array(pdfBuffer) }));
const pdfDocument = await loadingTask.promise;
const numPages = pdfDocument.numPages;
const canvasFactory = new nodeCanvasFactory_1.NodeCanvasFactory();
const canvasAndContext = canvasFactory.create(1, 1);
const canvas = (0, nodeCanvasFactory_1.mkCanvas)();
// Generate images

@@ -80,14 +53,16 @@ const images = [];

const viewport = getPageViewPort(page, opts.dpi);
canvasFactory.reset(canvasAndContext, viewport.width, viewport.height);
// TODO: fix types
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
await page.render({ canvasContext: canvasAndContext.context, viewport }).promise;
canvas.set(viewport.width, viewport.height);
const renderParameters = {
// @ts-expect-error type mismatch between web and node.js canvas
canvasContext: canvas.context,
viewport,
};
await page.render(renderParameters).promise;
page.cleanup();
const image = canvasAndContext.canvas.toBuffer('image/png');
images.push(image);
const imgData = canvas.context.getImageData(0, 0, viewport.width, viewport.height);
images.push(jimp_1.Jimp.fromBitmap(imgData));
}
return Promise.all(images.map((x) => (0, jimp_1.read)(x)));
canvas.destroy();
return images;
}
exports.pdf2png = pdf2png;
//# sourceMappingURL=pdf2png.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"pdf2png.js","sourceRoot":"","sources":["../../src/pdf2png/pdf2png.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"pdf2png.js","sourceRoot":"","sources":["../../src/pdf2png/pdf2png.ts"],"names":[],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"toMatchPdfSnapshot.js","sourceRoot":"","sources":["../src/toMatchPdfSnapshot.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,uEAAgF;AAYhF,6DAA6D;AAC7D,aAAa;AACb,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAA;AAEhC,IAAI,UAAU,KAAK,SAAS,EAAE;IAC5B,UAAU,CAAC,MAAM,CAAC;QAChB,wCAAwC;QACxC,kBAAkB,CAAC,GAAoB,EAAE,OAAwB;YAC/D,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,CAAA;YACjD,IAAI,KAAK,EAAE;gBACT,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;aAC7E;YAED,MAAM,gBAAgB,GAAG,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAA;YAC1C,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEzD,OAAO,IAAA,8CAAoB,EAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxF,IAAI;gBACJ,OAAO,EAAE,GAAG,EAAE,CAAC,+BAA+B;aAC/C,CAAC,CAAC,CAAA;QACL,CAAC;KACF,CAAC,CAAA;CACH;KAAM;IACL,OAAO,CAAC,KAAK,CACX,sCAAsC;QACpC,wFAAwF,CAC3F,CAAA;CACF"}
{"version":3,"file":"toMatchPdfSnapshot.js","sourceRoot":"","sources":["../src/toMatchPdfSnapshot.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,uEAAgF;AAWhF,6DAA6D;AAC7D,aAAa;AACb,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAA;AAEhC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;IAC7B,UAAU,CAAC,MAAM,CAAC;QAChB,wCAAwC;QACxC,kBAAkB,CAAC,GAAoB,EAAE,OAAwB;YAC/D,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,CAAA;YACjD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;YAC9E,CAAC;YAED,MAAM,gBAAgB,GAAG,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAA;YAC1C,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEzD,OAAO,IAAA,8CAAoB,EAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxF,IAAI;gBACJ,OAAO,EAAE,GAAG,EAAE,CAAC,+BAA+B;aAC/C,CAAC,CAAC,CAAA;QACL,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,KAAK,CACX,sCAAsC;QACpC,wFAAwF,CAC3F,CAAA;AACH,CAAC"}

@@ -11,3 +11,3 @@ "use strict";

Dpi[Dpi["High"] = 144] = "High";
})(Dpi = exports.Dpi || (exports.Dpi = {}));
})(Dpi || (exports.Dpi = Dpi = {}));
//# sourceMappingURL=types.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,GAGX;AAHD,WAAY,GAAG;IACb,4BAAQ,CAAA;IACR,+BAAU,CAAA;AACZ,CAAC,EAHW,GAAG,GAAH,WAAG,KAAH,WAAG,QAGd"}
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,GAGX;AAHD,WAAY,GAAG;IACb,4BAAQ,CAAA;IACR,+BAAU,CAAA;AACZ,CAAC,EAHW,GAAG,mBAAH,GAAG,QAGd"}
{
"name": "pdf-visual-diff",
"version": "0.10.0",
"version": "0.11.0",
"description": "Visual Regression Testing for PDFs in JavaScript",

@@ -10,11 +10,13 @@ "bin": "./lib/cli/index.js",

"clean": "rm -rf ./lib ./coverage",
"build": "npm run clean && npm run lint && npm run test && npm run tsc -- --noEmit false",
"build": "npm run clean && npm run lint && npm run format && npm run test && npm run tsc -- --noEmit false",
"build:docs": "npx typedoc src/index.ts --treatWarningsAsErrors",
"tsc": "tsc --noEmit --pretty",
"tsc:watch": "npm run tsc -- --watch",
"lint": "eslint ./src --ext .js,.jsx,.ts,.tsx",
"lint": "eslint ./src",
"lint:fix": "npm run lint -- --fix",
"format": "prettier --write .eslintrc.js .prettierrc.json tsconfig.json .mocharc.json",
"test": "mocha",
"test:watch": "npm test -- --watch",
"format:other": "prettier --write .eslintrc.js .prettierrc.json tsconfig.json",
"format": "prettier ./src --check",
"format:fix": "prettier ./src --write",
"test": "node --require ts-node/register --test src/**/*.test.ts src/*.test.ts",
"test:watch": "node --require ts-node/register --test --watch src/**/*.test.ts src/*.test.ts",
"license-checker": "npx license-checker --production --onlyAllow 'MIT; MIT OR X11; BSD; ISC; Apache-2.0; Unlicense' --excludePackages 'pdf-visual-diff'",

@@ -46,26 +48,20 @@ "update-deps": "npx npm-check-updates --configFileName .ncurc.js"

"glob": "^10.2.1",
"jimp": "^0.22.7",
"pdfjs-dist": "^3.5.141",
"yargs": "^17.7.1"
"jimp": "^1.6.0",
"pdfjs-dist": "^4.6.82",
"yargs": "^17.7.2"
},
"devDependencies": {
"@types/chai": "^4.3.4",
"@eslint/js": "^9.10.0",
"@types/eslint__js": "^8.42.3",
"@types/glob": "^8.1.0",
"@types/mocha": "^10.0.1",
"@types/node": "^18.15.13",
"@types/yargs": "^17.0.24",
"@typescript-eslint/eslint-plugin": "^5.59.0",
"@typescript-eslint/parser": "^5.59.0",
"assert": "^2.0.0",
"chai": "^4.3.7",
"eslint": "^8.38.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-prettier": "^4.2.1",
"@types/yargs": "^17.0.33",
"eslint": "^9.10.0",
"eslint-plugin-tsdoc": "^0.3.0",
"mocha": "^10.2.0",
"prettier": "^2.8.7",
"ts-node": "^10.9.1",
"typedoc": "^0.26.6",
"typescript": "^5.0.4"
"prettier": "^3.3.3",
"ts-node": "^10.9.2",
"typedoc": "^0.26.7",
"typescript": "^5.6.2",
"typescript-eslint": "^8.5.0"
}
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const chai_1 = require("chai");
const utils_1 = require("./utils");
const filePath = '/pdf-visual-diff/src/__snapshots__/two-page.new.png';
describe('cli utils', () => {
it('mkCurrentSnapshotPath()', async () => (0, chai_1.expect)((0, utils_1.mkCurrentSnapshotPath)(filePath)).to.equal('/pdf-visual-diff/src/__snapshots__/two-page.png'));
it('mkDiffSnapshotPath()', async () => (0, chai_1.expect)((0, utils_1.mkDiffSnapshotPath)(filePath)).to.equal('/pdf-visual-diff/src/__snapshots__/two-page.diff.png'));
});
//# sourceMappingURL=utils.spec.js.map
{"version":3,"file":"utils.spec.js","sourceRoot":"","sources":["../../src/cli/utils.spec.ts"],"names":[],"mappings":";;AAAA,+BAA6B;AAC7B,mCAAmE;AAEnE,MAAM,QAAQ,GAAG,qDAAqD,CAAA;AAEtE,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE,CACvC,IAAA,aAAM,EAAC,IAAA,6BAAqB,EAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAC9C,iDAAiD,CAClD,CAAC,CAAA;IAEJ,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CACpC,IAAA,aAAM,EAAC,IAAA,0BAAkB,EAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAC3C,sDAAsD,CACvD,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const chai_1 = require("chai");
const conversions_1 = require("./conversions");
describe('conversions', () => {
describe('convertFromMmToPx', () => {
it('should convert millimeters to pixels correctly', () => {
(0, chai_1.expect)((0, conversions_1.convertFromMmToPx)(10, 300)).to.equal(118);
(0, chai_1.expect)((0, conversions_1.convertFromMmToPx)(25.4, 300)).to.equal(300);
(0, chai_1.expect)((0, conversions_1.convertFromMmToPx)(0, 300)).to.equal(0);
(0, chai_1.expect)((0, conversions_1.convertFromMmToPx)(10, 0)).to.equal(0);
(0, chai_1.expect)((0, conversions_1.convertFromMmToPx)(-10, 300)).to.equal(0);
(0, chai_1.expect)((0, conversions_1.convertFromMmToPx)(10, -300)).to.equal(0);
});
});
describe('convertFromPxToMm', () => {
it('should convert pixels to millimeters correctly', () => {
(0, chai_1.expect)((0, conversions_1.convertFromPxToMm)(300, 300)).to.equal(25);
(0, chai_1.expect)((0, conversions_1.convertFromPxToMm)(118, 300)).to.equal(10);
(0, chai_1.expect)((0, conversions_1.convertFromPxToMm)(0, 300)).to.equal(0);
(0, chai_1.expect)((0, conversions_1.convertFromPxToMm)(300, 0)).to.equal(0);
(0, chai_1.expect)((0, conversions_1.convertFromPxToMm)(-300, 300)).to.equal(0);
(0, chai_1.expect)((0, conversions_1.convertFromPxToMm)(300, -300)).to.equal(0);
});
});
});
//# sourceMappingURL=conversions.spec.js.map
{"version":3,"file":"conversions.spec.js","sourceRoot":"","sources":["../../src/conversions/conversions.spec.ts"],"names":[],"mappings":";;AAAA,+BAA6B;AAC7B,+CAAoE;AAEpE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,IAAA,aAAM,EAAC,IAAA,+BAAiB,EAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAChD,IAAA,aAAM,EAAC,IAAA,+BAAiB,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClD,IAAA,aAAM,EAAC,IAAA,+BAAiB,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC7C,IAAA,aAAM,EAAC,IAAA,+BAAiB,EAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC5C,IAAA,aAAM,EAAC,IAAA,+BAAiB,EAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC/C,IAAA,aAAM,EAAC,IAAA,+BAAiB,EAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,IAAA,aAAM,EAAC,IAAA,+BAAiB,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAChD,IAAA,aAAM,EAAC,IAAA,+BAAiB,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAChD,IAAA,aAAM,EAAC,IAAA,+BAAiB,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC7C,IAAA,aAAM,EAAC,IAAA,+BAAiB,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC7C,IAAA,aAAM,EAAC,IAAA,+BAAiB,EAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAChD,IAAA,aAAM,EAAC,IAAA,+BAAiB,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = require("path");
const pdf2png_1 = require("./pdf2png");
const compare_images_1 = require("../compare-images");
const chai_1 = require("chai");
const types_1 = require("../types");
const testDataDir = (0, path_1.join)(__dirname, '../test-data');
const pdfs = (0, path_1.join)(testDataDir, 'pdfs');
const singlePage = (0, path_1.join)(pdfs, 'single-page.pdf');
const twoPage = (0, path_1.join)(pdfs, 'two-page.pdf');
const cmaps = (0, path_1.join)(pdfs, 'cmaps.pdf');
const expectedDir = (0, path_1.join)(testDataDir, 'pdf2png-expected');
describe('pdf2png()', () => {
it('two-page.pdf png per page with scaling', () => {
const expectedImage1Path = (0, path_1.join)(expectedDir, 'two-page_png_per_page_scaled_1.png');
const expectedImage2Path = (0, path_1.join)(expectedDir, 'two-page_png_per_page_scaled_2.png');
return (0, pdf2png_1.pdf2png)(twoPage, { dpi: types_1.Dpi.High })
.then((imgs) => Promise.all([
(0, compare_images_1.compareImages)(expectedImage1Path, [imgs[0]]),
(0, compare_images_1.compareImages)(expectedImage2Path, [imgs[1]]),
]))
.then((results) => {
results.forEach((x) => (0, chai_1.expect)(x.equal).to.be.true);
});
});
it('two-page.pdf png per page and without scaling', () => {
const expectedImage1Path = (0, path_1.join)(expectedDir, 'two-page_png_per_page_1.png');
const expectedImage2Path = (0, path_1.join)(expectedDir, 'two-page_png_per_page_2.png');
return (0, pdf2png_1.pdf2png)(twoPage, { dpi: types_1.Dpi.Low })
.then((imgs) => Promise.all([
(0, compare_images_1.compareImages)(expectedImage1Path, [imgs[0]]),
(0, compare_images_1.compareImages)(expectedImage2Path, [imgs[1]]),
]))
.then((results) => {
results.forEach((x) => (0, chai_1.expect)(x.equal).to.be.true);
});
});
it('should scale using custom DPI', () => {
const expectedImagePath = (0, path_1.join)(expectedDir, 'should_scale_using_custom_DPI.png');
return (0, pdf2png_1.pdf2png)(singlePage, { dpi: 200 })
.then((imgs) => (0, compare_images_1.compareImages)(expectedImagePath, imgs))
.then((result) => (0, chai_1.expect)(result.equal).to.be.true);
});
it('pdf that requires cmaps', () => {
const expectedImagePath = (0, path_1.join)(expectedDir, 'cmaps.png');
return (0, pdf2png_1.pdf2png)(cmaps)
.then((imgs) => (0, compare_images_1.compareImages)(expectedImagePath, imgs))
.then((result) => (0, chai_1.expect)(result.equal).to.be.true);
});
});
//# sourceMappingURL=pdf2png.spec.js.map
{"version":3,"file":"pdf2png.spec.js","sourceRoot":"","sources":["../../src/pdf2png/pdf2png.spec.ts"],"names":[],"mappings":"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"}