DevToolz
0.4.3
2026-10-09
- Изменено: в интерфейсе у Convert появился переключатель Resize the images, по умолчанию выключенный. Пока он не включён, изображения только конвертируются в выбранный формат, а поля размера скрыты (запуск без размеров никогда ничего не уменьшает; см. Методы задания размера); раньше с самого начала был подставлен список ширин (
800, 1600), и каждое изображение уменьшалось дважды. - Изменено: в интерфейсе Image Hash по умолчанию отмечены hazehash и доминирующий цвет; blurhash и thumbhash выключены.
- Добавлено:
--no-resizeотключает размеры сохранённой конфигурации на один запуск.
0.4.2
2026-10-08
- Новое:
devtoolz uiзапускает локальный веб-интерфейс и открывает его в браузере. Он входит в пакет и слушает только127.0.0.1, под одноразовым токеном в напечатанном адресе; запросы с чужимHostилиOriginотклоняются. Настраивается флагами--port,--host,--no-open,--tokenи--cwd. См. Веб-интерфейс. - Новое: Code checks выполняет одиннадцать проверок (мёртвые экспорты, пустые catch, тесты-сироты, регистр импортов, циклические импорты, TODO-комментарии, устаревшие
@ts-ignore, неиспользуемые зависимости, пути вpackage.json, примеры в README, npm-скрипты в документации) на любой выбранной папке. Обзор запускает их все и показывает карточку для каждой. Находки сгруппированы по файлам, фильтруются и открываются рядом с кодом: с подсветкой синтаксиса, выделенной строкой и ссылкой на редактор. Циклы импорта можно показать и графом. - Новое: Code cleanup удаляет комментарии или вызовы
consoleс предварительным просмотром: сканирование перечисляет файлы и показывает настоящий diff для каждого, по умолчанию ничего не выбрано, а меняются только отмеченные файлы, после подтверждения. Файл, изменившийся после сканирования, пропускается. Оригиналы сначала копируются за пределы проекта, и очистку можно откатить. - Новое: Image Hash в интерфейсе — папки выбираются в файловом браузере с миниатюрами, сразу видно, сколько в них изображений, отмечаются плейсхолдеры, а результат — галерея, где каждое изображение стоит рядом с плейсхолдерами, декодированными из его хешей, с выводом, который можно скопировать, скачать или записать в файл.
- Новое: Image Batch в интерфейсе — конвертация быстрыми настройками или сохранённой конфигурацией с предпросмотром плана, прогрессом и миниатюрами «было → стало»; редактор конфигураций формой с вкладкой JSON и проверкой на лету; пресеты резкости с предпросмотром, который сравнивает изображение до и после; бэкапы замещённых оригиналов с восстановлением.
- Изменено:
image-batchпринимает рамку--sizeкак переопределение запуска в программном API, а каждый результат запуска теперь содержит абсолютные пути источника и результата.
0.4.1
2026-10-08
- Новое:
sharpenдобавляет выходную резкость после изменения размера в манере Lightroom:for(screen,matteилиglossy) иamount(low,standardилиhigh) выбирают значения из таблицы, а тонкие настройкиradius,flat,jaggedиthresholdзаменяют любое из них. Каждая проверяется по диапазону, который принимает sharp, а неверное значение сообщается с названием поля и диапазоном до начала записи. Рецепт, в которомsharpenне указан, резкостью не обрабатывается. См. Резкость. - Новое:
image-batch sharpenсохраняет пресеты резкости и управляет ими (sharpen new|list|show|rm; без подкоманды терминал открывает список, где пресет можно показать, изменить, скопировать или удалить). Пресет используется по имени:"sharpen": "web-crisp"или{ "preset": "web-crisp", "amount": "high" }в конфигурации,--sharpen web-crispв командной строке. Пресеты лежат в.devtoolz/image-batch/sharpen/проекта или в~/.devtoolz/image-batch/sharpen/для всех проектов. Шесть встроенных пресетов (web-light,web-crisp,web-detail,thumbnail,print-matte,print-glossy) работают без создания чего-либо. См. Пресеты резкости. - Новое: флаги
--sharpen,--sharpen-for,--sharpen-amount,--sharpen-radius,--sharpen-flat,--sharpen-jaggedи--sharpen-thresholdуimage-batch,initиsharpen new. Мастерinitспрашивает о резкости и предлагает сохранённые пресеты, а редактор рецептов вconfigвыбирает пресет или собственные значения.
0.4.0
2026-10-08
- Новое: команда
image-batchпакетно меняет размер, конвертирует и пережимает растровые изображения по правилам. Правила хранятся в переиспользуемой конфигурации (или во флагах); папки, откуда брать картинки, и место для результатов выбираются при каждом запуске, поэтому одна конфигурация подходит для любого проекта. Работает на той же библиотекеsharp, что иimage-hash. - Новое: три места для результатов —
-o <dir>(отдельная папка с повторением структуры исходников,--flatеё убирает),--beside(рядом с каждым исходником) и--replace(поверх самих исходных файлов, каждый в своём формате: уменьшить слишком большие оригиналы или пережать их на месте). Указывается ровно одно из них. - Новое:
--replaceпод защитой. Он просит подтверждение (--yesбез терминала), сначала копирует оригиналы в.image-batch-backup/<дата>/вместе сjournal.json(--backup <dir>,--no-backup), заменяет файл, только если результат меньше (--no-only-if-smaller), никогда не обрабатывает один и тот же файл дважды с теми же настройками, а--dry-runпоказывает настоящие размеры до и после.image-batch restore <backup>возвращает оригиналы. - Новое: размеры через
widths,heights,sizeсfit,scale(@2x), а также по длинной стороне (longEdge,--long), по короткой (shortEdge,--short), по площади в мегапикселях (megapixels,--megapixels) и в процентах (percent,--percent). Длинная и короткая сторона не зависят от ориентации, поэтому одна настройка подходит для галереи из альбомных и портретных кадров.matchOrientation(--match-orientation) разворачивает рамку «ширина × высота» для изображений другой ориентации. Размеры больше исходного не увеличиваются, покаwithoutEnlargementне равенfalse. - Новое:
maxBytes(--max-size 200KB) ограничивает размер каждого файла: качество снижается ровно настолько, насколько нужно, а файл, который не удаётся уложить в предел, не записывается, а попадает в отчёт. Работает для jpg, webp, avif, heif, jp2 и png с палитрой. - Новое: форматы jpg, png, webp, avif, gif, tiff, jp2 и heif с важными для каждого опциями (
quality,mozjpeg,paletteу png,losslessу webp,effortу avif, …), которые задаются в конфигурации или через--codec, и уровни качестваlow,medium,highиbest, раскрывающиеся в число для каждого формата. Сжатие с потерями молча не включается, а неверная опция или значение сообщаются с подсказкой до начала записи. - Новое: имена файлов по шаблону —
{name},{ext},{orig},{dir},{format},{width},{height},{size},{long},{short},{mp},{percent},{scale},{index:3},{hash},{date}— с разумным умолчанием для каждого метода размера. Шаблон, выходящий за выходную папку, неизвестная переменная или два результата с одним именем — это ошибка до начала записи. - Новое: выбор файлов —
-r,--include,--exclude,--files-from, glob-шаблоны,--listи-i, --select, интерактивный список, в котором снимаются отметки с ненужных файлов. - Новое: результаты, которые уже сделал прошлый запуск, пропускаются; для любого другого существующего файла терминал спрашивает один раз (перезаписать этот, перезаписать все, пропустить, пропустить все, выйти), а без терминала файлы пропускаются с кодом выхода 1 или решают
--overwrite,--skip-existingи--no-overwrite. - Новое:
--hazehash(--budget),--blurhash,--thumbhashи--dominant-colorвместе с--emit <file>записывают манифест всего созданного с плейсхолдерами в форме манифеста плейсхолдеровvue-image-kit. - Новое:
initсоздаёт конфигурацию, аconfig(config list|show|rm|new) показывает, правит, копирует и удаляет конфигурации. Они лежат в.devtoolz/image-batch/проекта или в~/.devtoolz/image-batch/для всех проектов, а метод размера и форматы выбираются из списков.