- fix: Windows compatibility for pdfjs-dist URL paths. On Windows,
path.join()produces backslash-separated paths which pdfjs-dist rejected with "must include trailing slash" error.
- test: add cross-platform tolerance (0.05) for TAMReview and cmaps tests due to font rendering differences across operating systems
- test: skip #89 discrepancy test on non-Linux platforms
- test: fix CLI utils tests to use OS-appropriate path separators
- chore: add
exportsmap limiting deep imports to the public surface (.and./cli); callers usingpdf-visual-diff/lib/...must switch to the top-level entry. - chore: raise TypeScript target/lib to ES2022 and enable
esModuleInterop(runtime remains CJS). - fix: CLI/yargs interop for Node 24+ so CLI commands run without
TypeError: yargs is not a function.
- PR#101:
- chore: update
pdfjs-disttov5.4.449(potential snapshot differences) - chore: bump minimum Node.js to
v22.21.1(wasv20.18.1) (older runtimes no longer supported)
- chore: update
- PR#85 chore: update
pdfjs-distto latestv4.9.155. This is a BREAKING CHANGE:- The minimum supported Node.js version is now v20.18.1.
pdfjs-distintroduces a major change in how PDFs are rasterized by replacingnode/canvaswith@napi-rs/canvas. This is a positive improvement because the latter has zero dependecines. However, you should expect to update all your existing snapshots.
-
PR#82 fix: error due to pdfjs-dist update and fix new vulnerabilities by updating dependecies pdfjs-dist v4.7.76 introduced changes to CanvasFactory that fail with:
TypeError: Image or Canvas expected
at drawImageAtIntegerCoords (node_modules/pdfjs-dist/legacy/build/webpack:/pdf.js/src/display/canvas.js:261:9) at CanvasGraphics.paintInlineImageXObject (node_modules/pdfjs-dist/legacy/build/webpack:/pdf.js/src/display/canvas.js:2990:5) at CanvasGraphics.apply (node_modules/pdfjs-dist/legacy/build/webpack:/pdf.js/src/display/canvas.js:2879:10) at CanvasGraphics.executeOperatorList (node_modules/pdfjs-dist/legacy/build/webpack:/pdf.js/src/display/canvas.js:967:20) at InternalRenderTask._next (node_modules/pdfjs-dist/legacy/build/webpack:/pdf.js/src/display/api.js:3486:37) -
PR#76 fix: remove new snapshot when existing snapshot matches
- PR#70: feat: add failOnMissingSnapshot to
comparePdfToSnapshotoptions. If no snapshot exists:- If
failOnMissingSnapshotisfalse(default), the PDF is converted to an image, saved as a new snapshot, and the function returnstrue. - If
failOnMissingSnapshotistrue, the function returnsfalsewithout creating a new snapshot.
- If
- PR#68: Fix when running in jest context.
-
PR#67: Dependencies update. BREAKING CHANGE: Minimum supported Node.js v18. Notably, the update of
pdfjs-distto v4 (^4.6.82) from v3 introduces significant changes. As a result, this release is a BREAKING CHANGE:- Due to the update in
pdfjs-dist, the minimum supported Node.js version is now 18. - If you were using a version of
pdfjs-distlower than v3.7.107, your snapshots might start to fail due to changes in how fonts are loaded and used in certain circumstances.
For the time being, this release has 0 vulnerabilities according to
npm audit. - Due to the update in
- #58: Expose option to set rendering DPI.
- PR#65: Add API documentation.
- PR#54: Export MaskRegions type.
- PR#52: Dependencies update. BREAKING CHANGE minimum supported node v16.
- #51: Enable mask regions for multi page pdfs. It is possible to have different mask regions per each page. This is an api BREAKING CHANGE.
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:
// Change options from:
const opts = {
maskRegions: [
// Your mask definitions...
],
}
// To
const opts = {
// Here one can use `page` parameter to provide different mask regions for every page
maskRegions: (page) => [
// Your mask definitions...
],
}
const opts = {
maskRegions: () => [blueMask, greenMask],
}
comparePdfToSnapshot(singlePagePdfPath, __dirname, 'mask-rectangle-masks', opts)- #50: Fixed pdfjs cmaps path resolution
- BREAKING CHANGE due to dependencies update. Minimum supported node 14. Some image diffs might occur as well.
- #48: Crash on Nodejs18
- #40: masked areas not in initial file
- Graphicsmagick is not needed any more, but this is a BREAKING CHANGE that requires all snapshots to be regenerated. Please see tools section from README.md for quick approval of new snapshots
- Added cli tools to approve and discard snapshots in bulk
- add compare image options to the custom jest matcher
- #15: Exclude regions from diff
- Add custom jest matcher
- Fix package publish
- Fix highlight color
- #6: Allow configuration of compare-images