wa-dev-tools/package.json
treamz c65b3f5006 HEIC в /compress, конструктор «Картинки → PDF», белый фон зон загрузки и табов
HEIC:
- lib/image.js — openImage(): HEIC (HEVC) через heic-decode (libheif WASM), т.к. sharp
  декодирует только AV1-HEIF; непрозрачная альфа отбрасывается
- compress: общий encodeImage(); формат «оригинала» по содержимому (metadata), а не по MIME;
  HEIC/BMP в режиме «Оригинал» → JPEG с расширением .jpg

Картинки → PDF (/pdf):
- /pdf/fromImages переписан: любые форматы вкл. HEIC, порядок/повторы/поворот страниц,
  размер листа (по картинке/A4/A3/A5/Letter), ориентация, поля, качество, имя файла;
  повторы встраиваются один раз; нетронутые JPEG/PNG — байт-в-байт
- /pdf/thumb — серверные миниатюры для HEIC/TIFF (свой мягкий лимитер)
- UI-конструктор: сетка с превью, drag&drop, сортировка, массовый поворот, прогресс загрузки
- старая вкладка была нерабочей (поле files вместо images) и требовала загрузки PDF
- SVG не принимается (librsvg + внешние ссылки)
- фикс: потерянная обёртка panel-watermark ломала вложенность stepConfig
- фикс: pdfIcon недоступен из inline onerror

UI: белый фон (--surface-800) у зон загрузки, неактивных табов, опций и карточек
(compress, pdf, video, converter, formatter, sanitizer, parser)
2026-09-22 20:37:48 +03:00

55 lines
1.5 KiB
JSON

{
"name": "tinypng",
"version": "1.0.0",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js",
"tw:build": "tailwindcss -i ./input.css -o ./public/vendor/tailwind.min.css --minify",
"tw:watch": "tailwindcss -i ./input.css -o ./public/vendor/tailwind.min.css --watch"
},
"keywords": [],
"author": "",
"license": "ISC",
"type": "commonjs",
"description": "",
"dependencies": {
"@adminjs/express": "^6.1.1",
"@adminjs/sequelize": "^4.1.1",
"@adminjs/sql": "^2.2.6",
"@mozilla/readability": "^0.6.0",
"@pdf-lib/fontkit": "^1.1.1",
"adminjs": "^7.8.17",
"archiver": "^7.0.1",
"bcrypt": "^6.0.0",
"better-sqlite3": "^12.8.0",
"dotenv": "^17.3.1",
"express": "^5.1.0",
"express-formidable": "^1.2.0",
"express-mysql-session": "^3.0.3",
"express-rate-limit": "^8.3.0",
"express-session": "^1.18.1",
"geoip-lite": "^1.4.10",
"heic-decode": "^2.1.0",
"helmet": "^8.1.0",
"iconv-lite": "^0.7.2",
"jsdom": "^28.1.0",
"mariadb": "^3.5.2",
"multer": "^1.4.5-lts.2",
"mysql2": "^3.20.0",
"openid-client": "^6.4.2",
"opentype.js": "^1.3.4",
"passport": "^0.7.0",
"pdf-lib": "^1.17.1",
"pdf-merger-js": "^5.1.2",
"pdf-parse": "^2.4.5",
"pino": "^10.3.1",
"sequelize": "^6.37.8",
"sharp": "^0.34.1",
"ws": "^8.20.0"
},
"devDependencies": {
"tailwindcss": "^3.4.19"
}
}