pdf-visual-compare 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,3 @@
1
1
  import { ComparePdfOptions } from './types';
2
2
  export default function comparePdf(actualPdfFilePathOrBuffer: string | ArrayBufferLike, expectedPdfFilePathOrBuffer: string | ArrayBufferLike, opts?: ComparePdfOptions): Promise<boolean>;
3
+ //# sourceMappingURL=compare.pdf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare.pdf.d.ts","sourceRoot":"","sources":["../src/compare.pdf.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAqC,MAAM,SAAS,CAAC;AAE/E,wBAA8B,UAAU,CACtC,yBAAyB,EAAE,MAAM,GAAG,eAAe,EACnD,2BAA2B,EAAE,MAAM,GAAG,eAAe,EACrD,IAAI,CAAC,EAAE,iBAAiB,GACvB,OAAO,CAAC,OAAO,CAAC,CAmElB"}
@@ -7,6 +7,8 @@ const fs_1 = require("fs");
7
7
  const path_1 = require("path");
8
8
  const pdf_to_png_converter_1 = require("pdf-to-png-converter");
9
9
  const png_visual_compare_1 = __importDefault(require("png-visual-compare"));
10
+ const pngjs_1 = require("pngjs");
11
+ const const_1 = require("./const");
10
12
  async function comparePdf(actualPdfFilePathOrBuffer, expectedPdfFilePathOrBuffer, opts) {
11
13
  if (!Buffer.isBuffer(actualPdfFilePathOrBuffer) && !(0, fs_1.existsSync)(actualPdfFilePathOrBuffer)) {
12
14
  throw Error('Actual PDF file not found.');
@@ -14,13 +16,16 @@ async function comparePdf(actualPdfFilePathOrBuffer, expectedPdfFilePathOrBuffer
14
16
  if (!Buffer.isBuffer(expectedPdfFilePathOrBuffer) && !(0, fs_1.existsSync)(expectedPdfFilePathOrBuffer)) {
15
17
  throw Error('Expected PDF file not found.');
16
18
  }
17
- const pdfToPngConvertOpts = opts?.pdfToPngConvertOptions ?? {
18
- viewportScale: 2.0,
19
- outputFileMask: 'comparePdf',
20
- };
19
+ const pdfToPngConvertOpts = { ...opts?.pdfToPngConvertOptions };
20
+ if (!pdfToPngConvertOpts.viewportScale) {
21
+ pdfToPngConvertOpts.viewportScale = 2.0;
22
+ }
23
+ if (!pdfToPngConvertOpts.outputFileMask) {
24
+ pdfToPngConvertOpts.outputFileMask = 'comparePdf';
25
+ }
21
26
  const diffsOutputFolder = opts?.diffsOutputFolder
22
27
  ? opts.diffsOutputFolder
23
- : (0, path_1.resolve)(`./comparePdfOutput`);
28
+ : const_1.DEFAULT_DIFFS_FOLDER;
24
29
  const compareThreshold = opts?.compareThreshold
25
30
  ? opts?.compareThreshold
26
31
  : 0;
@@ -30,24 +35,45 @@ async function comparePdf(actualPdfFilePathOrBuffer, expectedPdfFilePathOrBuffer
30
35
  if (compareThreshold < 0) {
31
36
  throw Error('Compare Threshold cannot be less than 0.');
32
37
  }
33
- const [actualPdfPngPages, expectedPdfPngPages] = await Promise.all([
38
+ let [actualPdfPngPages, expectedPdfPngPages] = await Promise.all([
34
39
  (0, pdf_to_png_converter_1.pdfToPng)(actualPdfFilePathOrBuffer, pdfToPngConvertOpts),
35
40
  (0, pdf_to_png_converter_1.pdfToPng)(expectedPdfFilePathOrBuffer, pdfToPngConvertOpts),
36
41
  ]);
37
- if (actualPdfPngPages.length !== expectedPdfPngPages.length) {
38
- return false;
42
+ if (actualPdfPngPages.length < expectedPdfPngPages.length) {
43
+ [actualPdfPngPages, expectedPdfPngPages] = [expectedPdfPngPages, actualPdfPngPages];
39
44
  }
40
- let overallCompareResult = true;
41
- actualPdfPngPages.forEach((actualPdfPngPage, index) => {
45
+ let documentCompareResult = true;
46
+ actualPdfPngPages.forEach((pngPage, index) => {
42
47
  const comparePngOpts = { ...opts?.pdfToPngConvertOptions, ...excludedAreas[index] };
43
- comparePngOpts.diffFilePath = (0, path_1.resolve)(diffsOutputFolder, `diff_${actualPdfPngPage.name}`);
44
- const expectedPdfPngPage = expectedPdfPngPages.find((expectedPdfPngPage) => expectedPdfPngPage.name === actualPdfPngPage.name);
45
- const compareResult = (0, png_visual_compare_1.default)(actualPdfPngPage.content, expectedPdfPngPage.content, comparePngOpts);
46
- if (compareResult > compareThreshold) {
47
- overallCompareResult = false;
48
+ comparePngOpts.diffFilePath = (0, path_1.resolve)(diffsOutputFolder, `diff_${pngPage.name}`);
49
+ const pngPageOutputToCompareWith = expectedPdfPngPages.find((p) => p.name === pngPage.name);
50
+ let bufferToCompareWith;
51
+ if (pngPageOutputToCompareWith) {
52
+ bufferToCompareWith = pngPageOutputToCompareWith.content;
53
+ }
54
+ else {
55
+ const originalPngMetaData = pngjs_1.PNG.sync.read(pngPage.content);
56
+ bufferToCompareWith = getEmptyPngBuffer(originalPngMetaData.width, originalPngMetaData.height);
57
+ }
58
+ const pageCompareResult = (0, png_visual_compare_1.default)(pngPage.content, bufferToCompareWith, comparePngOpts);
59
+ if (pageCompareResult > compareThreshold) {
60
+ documentCompareResult = false;
48
61
  }
49
62
  });
50
- return overallCompareResult;
63
+ return documentCompareResult;
51
64
  }
52
65
  exports.default = comparePdf;
66
+ function getEmptyPngBuffer(width, height) {
67
+ const image = new pngjs_1.PNG({ width, height });
68
+ for (let y = 0; y < image.height; y++) {
69
+ for (let x = 0; x < image.width; x++) {
70
+ const position = (image.width * y + x) << 2;
71
+ image.data[position + 0] = 255;
72
+ image.data[position + 1] = 255;
73
+ image.data[position + 2] = 255;
74
+ image.data[position + 3] = 255;
75
+ }
76
+ }
77
+ return pngjs_1.PNG.sync.write(image);
78
+ }
53
79
  //# sourceMappingURL=compare.pdf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compare.pdf.js","sourceRoot":"","sources":["../src/compare.pdf.ts"],"names":[],"mappings":";;;;;AAAA,2BAAgC;AAChC,+BAA+B;AAC/B,+DAA+D;AAC/D,4EAAmE;AAGpD,KAAK,UAAU,UAAU,CACtC,yBAAmD,EACnD,2BAAqD,EACrD,IAAwB;IAExB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAA,eAAU,EAAC,yBAAmC,CAAC,EAAE;QACnG,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;KAC3C;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAA,eAAU,EAAC,2BAAqC,CAAC,EAAE;QACvG,MAAM,KAAK,CAAC,8BAA8B,CAAC,CAAC;KAC7C;IAED,MAAM,mBAAmB,GAAoB,IAAI,EAAE,sBAAsB,IAAI;QAC3E,aAAa,EAAE,GAAG;QAClB,cAAc,EAAE,YAAY;KAC7B,CAAC;IACF,MAAM,iBAAiB,GAAW,IAAI,EAAE,iBAAiB;QACvD,CAAC,CAAC,IAAI,CAAC,iBAAiB;QACxB,CAAC,CAAC,IAAA,cAAO,EAAC,oBAAoB,CAAC,CAAC;IAClC,MAAM,gBAAgB,GAAW,IAAI,EAAE,gBAAgB;QACrD,CAAC,CAAC,IAAI,EAAE,gBAAgB;QACxB,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,aAAa,GAAG,IAAI,EAAE,aAAa;QACvC,CAAC,CAAC,IAAI,CAAC,aAAa;QACpB,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,gBAAgB,GAAG,CAAC,EAAE;QACxB,MAAM,KAAK,CAAC,0CAA0C,CAAC,CAAC;KACzD;IAED,MAAM,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjE,IAAA,+BAAQ,EAAC,yBAAyB,EAAE,mBAAmB,CAAC;QACxD,IAAA,+BAAQ,EAAC,2BAA2B,EAAE,mBAAmB,CAAC;KAC3D,CAAC,CAAC;IAEH,IAAI,iBAAiB,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM,EAAE;QAC3D,OAAO,KAAK,CAAC;KACd;IAED,IAAI,oBAAoB,GAAG,IAAI,CAAC;IAChC,iBAAiB,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE;QACpD,MAAM,cAAc,GAAsB,EAAE,GAAG,IAAI,EAAE,sBAAsB,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACvG,cAAc,CAAC,YAAY,GAAG,IAAA,cAAO,EAAC,iBAAiB,EAAE,QAAQ,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;QAE1F,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,IAAI,CACjD,CAAC,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,KAAK,gBAAgB,CAAC,IAAI,CACzD,CAAC;QACnB,MAAM,aAAa,GAAW,IAAA,4BAAU,EAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAE/G,IAAI,aAAa,GAAG,gBAAgB,EAAE;YACpC,oBAAoB,GAAG,KAAK,CAAC;SAC9B;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAvDD,6BAuDC"}
1
+ {"version":3,"file":"compare.pdf.js","sourceRoot":"","sources":["../src/compare.pdf.ts"],"names":[],"mappings":";;;;;AAAA,2BAAgC;AAChC,+BAA+B;AAC/B,+DAA+D;AAC/D,4EAAmE;AACnE,iCAA6C;AAC7C,mCAA+C;AAGhC,KAAK,UAAU,UAAU,CACtC,yBAAmD,EACnD,2BAAqD,EACrD,IAAwB;IAExB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAA,eAAU,EAAC,yBAAmC,CAAC,EAAE;QACnG,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;KAC3C;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAA,eAAU,EAAC,2BAAqC,CAAC,EAAE;QACvG,MAAM,KAAK,CAAC,8BAA8B,CAAC,CAAC;KAC7C;IAED,MAAM,mBAAmB,GAAoB,EAAE,GAAG,IAAI,EAAE,sBAAsB,EAAE,CAAC;IACjF,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE;QACtC,mBAAmB,CAAC,aAAa,GAAG,GAAG,CAAC;KACzC;IACD,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE;QACvC,mBAAmB,CAAC,cAAc,GAAG,YAAY,CAAC;KACnD;IAED,MAAM,iBAAiB,GAAW,IAAI,EAAE,iBAAiB;QACvD,CAAC,CAAC,IAAI,CAAC,iBAAiB;QACxB,CAAC,CAAC,4BAAoB,CAAC;IACzB,MAAM,gBAAgB,GAAW,IAAI,EAAE,gBAAgB;QACrD,CAAC,CAAC,IAAI,EAAE,gBAAgB;QACxB,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,aAAa,GAAuB,IAAI,EAAE,aAAa;QAC3D,CAAC,CAAC,IAAI,CAAC,aAAa;QACpB,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,gBAAgB,GAAG,CAAC,EAAE;QACxB,MAAM,KAAK,CAAC,0CAA0C,CAAC,CAAC;KACzD;IAED,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/D,IAAA,+BAAQ,EAAC,yBAAyB,EAAE,mBAAmB,CAAC;QACxD,IAAA,+BAAQ,EAAC,2BAA2B,EAAE,mBAAmB,CAAC;KAC3D,CAAC,CAAC;IAEH,IAAI,iBAAiB,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE;QACzD,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;KACrF;IAED,IAAI,qBAAqB,GAAG,IAAI,CAAC;IACjC,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC3C,MAAM,cAAc,GAAsB,EAAE,GAAG,IAAI,EAAE,sBAAsB,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACvG,cAAc,CAAC,YAAY,GAAG,IAAA,cAAO,EAAC,iBAAiB,EAAE,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAEjF,MAAM,0BAA0B,GAA8B,mBAAmB,CAAC,IAAI,CACpF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAC/B,CAAC;QAEF,IAAI,mBAA2B,CAAC;QAEhC,IAAI,0BAA0B,EAAE;YAC9B,mBAAmB,GAAG,0BAA0B,CAAC,OAAO,CAAC;SAC1D;aAAM;YAEL,MAAM,mBAAmB,GAAoB,WAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5E,mBAAmB,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;SAChG;QAED,MAAM,iBAAiB,GAAW,IAAA,4BAAU,EAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAC;QAEnG,IAAI,iBAAiB,GAAG,gBAAgB,EAAE;YACxC,qBAAqB,GAAG,KAAK,CAAC;SAC/B;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAvED,6BAuEC;AAED,SAAS,iBAAiB,CAAC,KAAa,EAAE,MAAc;IACtD,MAAM,KAAK,GAAG,IAAI,WAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,QAAQ,GAAW,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAEpD,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;SAChC;KACF;IACD,OAAO,WAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC"}
package/out/const.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare const DEFAULT_DIFFS_FOLDER: string;
2
+ //# sourceMappingURL=const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,QAAgC,CAAC"}
package/out/const.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_DIFFS_FOLDER = void 0;
4
+ const path_1 = require("path");
5
+ exports.DEFAULT_DIFFS_FOLDER = (0, path_1.resolve)(`./comparePdfOutput`);
6
+ //# sourceMappingURL=const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAElB,QAAA,oBAAoB,GAAG,IAAA,cAAO,EAAC,oBAAoB,CAAC,CAAC"}
package/out/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import comparePdf from './compare.pdf';
2
2
  export default comparePdf;
3
3
  export * from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,eAAe,UAAU,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -5,3 +5,4 @@ export declare type ComparePdfOptions = {
5
5
  excludedAreas?: ExcludedPageArea[];
6
6
  compareThreshold?: number;
7
7
  };
8
+ //# sourceMappingURL=compare.options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare.options.d.ts","sourceRoot":"","sources":["../../src/types/compare.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,GAAG,CAAC;AAEtD,oBAAY,iBAAiB,GAAG;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,eAAe,CAAC;IACzC,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC"}
@@ -6,3 +6,4 @@ export declare type ExcludedPageArea = {
6
6
  diffFilePath?: string;
7
7
  matchingThreshold?: number;
8
8
  };
9
+ //# sourceMappingURL=excluded.page.area.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excluded.page.area.d.ts","sourceRoot":"","sources":["../../src/types/excluded.page.area.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;AAEhC,oBAAY,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,KAAK,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC"}
@@ -2,3 +2,4 @@ export { PdfToPngOptions } from 'pdf-to-png-converter';
2
2
  export { Area, Color } from 'png-visual-compare';
3
3
  export { ComparePdfOptions } from '../types/compare.options';
4
4
  export { ExcludedPageArea } from './excluded.page.area';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pdf-visual-compare",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Visual regression testing library for PDFs in Js/Ts without binary and OS dependencies.",
5
5
  "keywords": [
6
6
  "pdf",
@@ -25,7 +25,7 @@
25
25
  ],
26
26
  "scripts": {
27
27
  "build": "npm run clean && npm run tsc",
28
- "clean": "rimraf ./out ./coverage ./test-results",
28
+ "clean": "rimraf ./out ./coverage ./test-results ./comparePdfOutput",
29
29
  "docker:build": "docker build --compress -t test-pdf-visual-compare .",
30
30
  "predocker:run": "npm run clean",
31
31
  "docker:run": "docker run --rm -it -v ./test-results:/usr/pkg/test-results test-pdf-visual-compare",
@@ -33,24 +33,27 @@
33
33
  "license-checker": "npx license-checker --production --onlyAllow 'MIT; MIT OR X11; BSD; ISC; Apache-2.0; Unlicense'",
34
34
  "lint": "eslint .",
35
35
  "lint:fix": "npm run lint -- --fix",
36
- "pretest": "npm run clean",
36
+ "pretest": "npm run build",
37
37
  "test": "jest",
38
+ "test:debug": "jest --runInBand",
38
39
  "test:docker": "npm run docker:build && npm run docker:run",
39
40
  "tsc": "tsc --pretty"
40
41
  },
41
42
  "dependencies": {
42
- "pdf-to-png-converter": "2.3.0",
43
- "png-visual-compare": "0.4.14"
43
+ "pdf-to-png-converter": "2.6.0",
44
+ "png-visual-compare": "0.4.15",
45
+ "pngjs": "^6.0.0"
44
46
  },
45
47
  "devDependencies": {
46
- "@types/jest": "28.1.6",
47
- "@types/node": "18.6.3",
48
- "@typescript-eslint/eslint-plugin": "5.32.0",
49
- "@typescript-eslint/parser": "5.32.0",
50
- "eslint": "8.21.0",
51
- "jest": "28.1.3",
52
- "ts-jest": "28.0.7",
48
+ "@types/jest": "29.0.3",
49
+ "@types/node": "18.7.18",
50
+ "@types/pngjs": "^6.0.1",
51
+ "@typescript-eslint/eslint-plugin": "5.37.0",
52
+ "@typescript-eslint/parser": "5.37.0",
53
+ "eslint": "8.23.1",
54
+ "jest": "29.0.3",
55
+ "ts-jest": "29.0.1",
53
56
  "ts-node": "10.9.1",
54
- "typescript": "4.7.4"
57
+ "typescript": "4.8.3"
55
58
  }
56
59
  }