mirror of
https://github.com/screentinker/screentinker.git
synced 2026-08-13 13:53:12 -06:00
sharp decodes uploaded files directly (lib/content-ingest.js, routes/content.js both call sharp(file.path) on whatever a user uploaded), so its bundled libvips is part of the request path rather than a build-time detail. Moves 0.33.5 -> 0.35.3, libvips 8.15 -> 8.18. Validated against the calls this codebase actually makes, because it is a major bump: metadata() still reports EXIF orientation (1/3/6/8 all round-trip, which is what lib/media-orientation.js exifSwapsWH and the rotation-aware dimensions depend on), a bare .rotate() still auto-orients, and resize().jpeg().toFile() is unchanged. png/webp/jpeg/gif/avif all still encode and decode, and malformed input still throws rather than crashing. The new libpng is stricter, which surfaced a latent problem in the AUTH-01 test: its 1x1 PNG literal had a corrupt IDAT chunk whose stored CRC did not match its data. The old decoder accepted it; the new one refuses with "vipspng: libpng read error", so no thumbnail was written and the content-gate assertions failed with a 404 that reads like an auth regression. Replaced with a PNG whose every chunk CRC verifies. The stricter decode is the correct behaviour and is kept. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
37 lines
969 B
JSON
37 lines
969 B
JSON
{
|
|
"name": "screentinker",
|
|
"version": "1.9.18",
|
|
"description": "ScreenTinker - Digital Signage Management Server",
|
|
"main": "server.js",
|
|
"scripts": {
|
|
"start": "node --env-file-if-exists=.env server.js",
|
|
"dev": "node --watch --env-file-if-exists=.env server.js",
|
|
"test": "node --test --test-concurrency=2"
|
|
},
|
|
"dependencies": {
|
|
"@azure/msal-node": "^5.2.1",
|
|
"archiver": "^7.0.1",
|
|
"bcryptjs": "^3.0.3",
|
|
"better-sqlite3": "^9.4.3",
|
|
"cors": "^2.8.5",
|
|
"express": "^4.18.2",
|
|
"express-rate-limit": "^8.3.1",
|
|
"google-auth-library": "^10.6.2",
|
|
"helmet": "^8.1.0",
|
|
"jsonwebtoken": "^9.0.3",
|
|
"multer": "^1.4.5-lts.1",
|
|
"nodemailer": "^6.9.16",
|
|
"otplib": "^12.0.1",
|
|
"qrcode": "^1.5.4",
|
|
"sharp": "^0.35.3",
|
|
"socket.io": "^4.7.2",
|
|
"stripe": "^20.4.1",
|
|
"unzipper": "^0.12.3",
|
|
"uuid": "^14.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"js-yaml": "^4.2.0",
|
|
"socket.io-client": "^4.8.3"
|
|
}
|
|
}
|