1
0
mirror of https://github.com/svg/svgo.git synced 2025-04-19 10:22:15 +03:00

deps: upgrade pixelmatch for performance improvements (#2102)

This commit is contained in:
Seth Falco 2025-04-11 16:22:50 +01:00 committed by GitHub
parent e9c3be7a27
commit e065d1000e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 15 additions and 33 deletions

View File

@ -128,7 +128,7 @@
"eslint": "^9.3.0",
"globals": "^14.0.0",
"jest": "^29.7.0",
"pixelmatch": "^5.3.0",
"pixelmatch": "^7.1.0",
"playwright": "^1.51.1",
"pngjs": "^7.0.0",
"prettier": "^3.2.5",

View File

@ -17,8 +17,6 @@ const exclude = [
'W3C_SVG_11_TestSuite/svg/filters-composite-05-f.svg',
// messed gradients
'W3C_SVG_11_TestSuite/svg/pservers-grad-18-b.svg',
// removing wrapping <g> breaks :first-child pseudo-class
'W3C_SVG_11_TestSuite/svg/styling-pres-04-f.svg',
// rect is converted to path which matches wrong styles
'W3C_SVG_11_TestSuite/svg/styling-css-08-f.svg',
// complex selectors are messed because of converting shapes to paths
@ -26,10 +24,9 @@ const exclude = [
'W3C_SVG_11_TestSuite/svg/struct-use-11-f.svg',
'W3C_SVG_11_TestSuite/svg/styling-css-01-b.svg',
'W3C_SVG_11_TestSuite/svg/styling-css-04-f.svg',
// strange artifact breaks inconsistently breaks regression tests
// strange artifact inconsistently breaks regression tests
'W3C_SVG_11_TestSuite/svg/filters-conv-05-f.svg',
// broken upon adding dataset and pending fix
'oxygen-icons-5.116.0/scalable/actions/document-print-preview.svg',
'oxygen-icons-5.116.0/scalable/actions/hidef/tools-rip-audio-cd.svg',
'oxygen-icons-5.116.0/scalable/actions/im-ban-kick-user.svg',
'oxygen-icons-5.116.0/scalable/actions/im-ban-user.svg',
@ -80,13 +77,16 @@ const exclude = [
'oxygen-icons-5.116.0/scalable/actions/small/48x48/tools-media-optical-burn-image.svg',
'oxygen-icons-5.116.0/scalable/actions/tools-media-optical-burn-image.svg',
'oxygen-icons-5.116.0/scalable/actions/tools-rip-audio-cd.svg',
'oxygen-icons-5.116.0/scalable/actions/user-properties.svg',
'oxygen-icons-5.116.0/scalable/actions/view-pim-mail.svg',
'oxygen-icons-5.116.0/scalable/applets/org.kde.plasma.clipboard.svg',
'oxygen-icons-5.116.0/scalable/applets/org.kde.plasma.devicenotifier.svg',
'oxygen-icons-5.116.0/scalable/applets/org.kde.plasma.icontasks.svg',
'oxygen-icons-5.116.0/scalable/applets/org.kde.plasma.kickerdash.svg',
'oxygen-icons-5.116.0/scalable/applets/org.kde.plasma.quicklaunch.svg',
'oxygen-icons-5.116.0/scalable/apps/accessories-text-editor.svg',
'oxygen-icons-5.116.0/scalable/apps/basket.svg',
'oxygen-icons-5.116.0/scalable/apps/calligraauthor.svg',
'oxygen-icons-5.116.0/scalable/apps/graphics-viewer-document.svg',
'oxygen-icons-5.116.0/scalable/apps/hardware.svg',
'oxygen-icons-5.116.0/scalable/apps/hidef/kmail2.svg',
'oxygen-icons-5.116.0/scalable/apps/hidef/preferences-desktop-locale.svg',
@ -96,27 +96,21 @@ const exclude = [
'oxygen-icons-5.116.0/scalable/apps/kmail2.svg',
'oxygen-icons-5.116.0/scalable/apps/kmymoney.svg',
'oxygen-icons-5.116.0/scalable/apps/kplato.svg',
'oxygen-icons-5.116.0/scalable/apps/krfb.svg',
'oxygen-icons-5.116.0/scalable/apps/ksudoku.svg',
'oxygen-icons-5.116.0/scalable/apps/okteta.svg',
'oxygen-icons-5.116.0/scalable/apps/picmi.svg',
'oxygen-icons-5.116.0/scalable/apps/preferences-desktop-user-password.svg',
'oxygen-icons-5.116.0/scalable/apps/preferences-system-time.svg',
'oxygen-icons-5.116.0/scalable/apps/small/16x16/kchart.svg',
'oxygen-icons-5.116.0/scalable/apps/small/16x16/system-file-manager.svg',
'oxygen-icons-5.116.0/scalable/apps/scribus.svg',
'oxygen-icons-5.116.0/scalable/apps/small/22x22/basket.svg',
'oxygen-icons-5.116.0/scalable/apps/small/32x32/preferences-system-windows-move.svg',
'oxygen-icons-5.116.0/scalable/apps/small/32x32/system-file-manager.svg',
'oxygen-icons-5.116.0/scalable/apps/small/48x48/kig.svg',
'oxygen-icons-5.116.0/scalable/apps/small/64x64/kplato.svg',
'oxygen-icons-5.116.0/scalable/apps/strigi.svg',
'oxygen-icons-5.116.0/scalable/apps/timevault.svg',
'oxygen-icons-5.116.0/scalable/categories/applications-toys.svg',
'oxygen-icons-5.116.0/scalable/categories/hidef/preferences-system.svg',
'oxygen-icons-5.116.0/scalable/categories/preferences-system.svg',
'oxygen-icons-5.116.0/scalable/devices/audio-card.svg',
'oxygen-icons-5.116.0/scalable/devices/camera-web.svg',
'oxygen-icons-5.116.0/scalable/devices/cpu.svg',
'oxygen-icons-5.116.0/scalable/devices/hidef/input-keyboard.svg',
'oxygen-icons-5.116.0/scalable/devices/hidef/media-optical-audio.svg',
'oxygen-icons-5.116.0/scalable/devices/input-keyboard.svg',
@ -151,11 +145,6 @@ const exclude = [
'oxygen-icons-5.116.0/scalable/places/small/64x64/folder-tar.svg',
'oxygen-icons-5.116.0/scalable/places/small/64x64/network-server-database.svg',
'oxygen-icons-5.116.0/scalable/places/small/64x64/server-database.svg',
'oxygen-icons-5.116.0/scalable/status/small/22x22/weather-showers-day.svg',
'oxygen-icons-5.116.0/scalable/status/small/32x32/weather-showers-day.svg',
'oxygen-icons-5.116.0/scalable/status/user-busy.svg',
'oxygen-icons-5.116.0/scalable/status/user-online.svg',
'oxygen-icons-5.116.0/scalable/text-formatting.svg',
// broken on ci, but unable to reproduce locally
'oxygen-icons-5.116.0/scalable/actions/small/16x16/mail-encrypted-full.svg',
'oxygen-icons-5.116.0/scalable/actions/small/16x16/mail-encrypted-part.svg',

View File

@ -45,13 +45,13 @@ const runTests = async (list) => {
const optimizedBufferPromise = page.screenshot(screenshotOptions);
const writeDiffs = process.env.NO_DIFF == null;
const diff = writeDiffs && new PNG({ width: WIDTH, height: HEIGHT });
const diff = writeDiffs ? new PNG({ width: WIDTH, height: HEIGHT }) : null;
const originalPng = PNG.sync.read(originalBuffer);
const optimizedPng = PNG.sync.read(await optimizedBufferPromise);
const matched = pixelmatch(
originalPng.data,
optimizedPng.data,
diff ? diff.data : null,
diff?.data,
WIDTH,
HEIGHT,
);

View File

@ -3851,14 +3851,14 @@ __metadata:
languageName: node
linkType: hard
"pixelmatch@npm:^5.3.0":
version: 5.3.0
resolution: "pixelmatch@npm:5.3.0"
"pixelmatch@npm:^7.1.0":
version: 7.1.0
resolution: "pixelmatch@npm:7.1.0"
dependencies:
pngjs: ^6.0.0
pngjs: ^7.0.0
bin:
pixelmatch: bin/pixelmatch
checksum: f542713d89536551181ad9ddb666a1792ba00a8632d831093232a075cb3ccac05856e7a453ed7d0a41aaef64dcb5962e8ae5cbe646dd2761790d8ee51b0a0743
checksum: 0ad2e863e0e87ae52289c4366860a4040712a30a1e19c606745b9750b3ecda6f587dc959ce452818c50c7753ef6916f23026c14ef4d5f6c3b13c8205d61b923d
languageName: node
linkType: hard
@ -3895,13 +3895,6 @@ __metadata:
languageName: node
linkType: hard
"pngjs@npm:^6.0.0":
version: 6.0.0
resolution: "pngjs@npm:6.0.0"
checksum: ab6c285086060087097eab9fe6b5a528a24f9e79c03dea2b4fd6264ed4fdb5beff4a3257eeeaf2a9dc18249b539609c2a4e4013c567164a1f6b5ba2c974d5ecb
languageName: node
linkType: hard
"pngjs@npm:^7.0.0":
version: 7.0.0
resolution: "pngjs@npm:7.0.0"
@ -4516,7 +4509,7 @@ __metadata:
globals: ^14.0.0
jest: ^29.7.0
picocolors: ^1.1.1
pixelmatch: ^5.3.0
pixelmatch: ^7.1.0
playwright: ^1.51.1
pngjs: ^7.0.0
prettier: ^3.2.5