Небольшой, но плотный апдейт. Много новых инструментов для работы с переводами — и в браузере, и в терминале.
В новой версии vue-i18n-kit появился браузерный редактор локалей, который работает локально и не требует внешних сервисов. Дашборд с покрытием, группировка ключей по неймспейсам, валидация плейсхолдеров и ICU-синтаксиса, автоперевод пропущенных значений через LibreTranslate — и всё это прямо на вашей машине.
Большое DX-обновление: pipe() builder, validatePipelineConfig(), плагинная система, персистентное состояние, stream-шаги через AsyncIterable и поддержка нативного fetch вместо axios.
Прошлый релиз добавил параллельные шаги, глобальный middleware и паузу. Но оставалось несколько вещей, которые в пайплайне выглядели как белые пятна.
Например, как сделать нелинейный сценарий? Как переиспользовать цепочку шагов внутри другой цепочки? А в HTTP-клиенте — как обновлять данные в фоне, не заставляя пользователя ждать? И почему до сих пор нет нормальных перехватчиков?
Версия 1.3.6 закрывает всё это.
Вы когда-нибудь ловили себя на мысли, что ваш HTTP-клиент всё ещё не умеет правильно читать заголовок Retry-After? Или что токен авторизации приходится обновлять вручную в каждом компоненте? В версии 1.3.5 эти проблемы остались в прошлом.
Версия 1.2.0 библиотеки css-magic-gradient: расширенные цветовые гармонии, генераторы тинтов и шейдов, переработанная доступность с проверкой по всем точкам градиента, CSS-переменные, экспорт в canvas и 9 новых хуков для Vue и React.
color-value-tools вырос из простого конвертера цветовых форматов в полноценный инструментарий: CSS Color Level 4, перцептивная интерполяция, цветовые гармонии, симуляция дальтонизма, WCAG-доступность, генераторы и CLI — всё в одном пакете без зависимостей.
Небольшой npm-пакет без зависимостей, который точно знает, на каком устройстве работает ваш код — с поддержкой React, Vue и Node.js.
Написал собственный npm-пакет для локализации Vue 3, потому что устал каждый раз копировать один и тот же бойлерплейт из проекта в проект. ICU-плюрализация, lazy loading, метаданные локалей, форматирование дат и валют, Vite-плагин и CLI — всё из коробки.
Вышла новая версия библиотеки responsive-media. Полный рефакторинг на абстрактный базовый класс, container queries через ResizeObserver, богатый subscription API, хелперы для упорядоченных брейкпоинтов, готовые пресеты Tailwind / Bootstrap / Accessibility, интеграция с React 18+, синхронизация CSS-переменных, DOM-события и многое другое.
Крупное обновление библиотеки для оркестрации REST API запросов. Параллельные шаги, глобальный middleware, pause/resume, экспорт и восстановление состояния — и заодно закрыт ряд неприятных багов, которые тихо жили в коде с самого начала.
На toolz.macrulez.ru появился новый модуль — Stronghold. Это генератор криптографически стойких паролей с полным контролем над набором символов, длиной, количеством вариантов и дополнительными ограничениями. Все операции выполняются в браузере — никакие данные не покидают устройство. Поддерживает латиницу, кириллицу и спецсимволы, показывает оценку надёжности в битах энтропии и позволяет сохранить результат в текстовый файл.
Реализовал запись положения камеры в URL, восстановление вида при открытии ссылки и конвертацию координат камеры между плоской картой и глобусом. Разобрал несколько нетривиальных проблем с таймингом инициализации и вынес всю логику в отдельный Pinia-стор.
Обновил клиентскую архитектуру карты: перешёл с «сырых» API-объектов на модели Airport и Company, а также внедрил многоуровневое кеширование данных. В статье разобрал, как это упростило код, ускорило интерфейс и позволило безопасно кешировать каталог авиакомпаний/аэропортов с автоматической инвалидиацией по версии данных (newest_update). Есть практические фрагменты кода: нормализация моделей, lazy enrich и версионирование кеша.
Новый каталог авиакомпаний и аэропортов позволяет исследовать маршрутные сети без необходимости знать IATA-код — достаточно выбрать букву, кликнуть на перевозчика и увидеть все его направления прямо на карте.