Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
arui-feather
Advanced tools
arui-feather — это библиотека React компонентов для создания веб-интерфейсов.
Вы можете посмотреть примеры использования на нашем сайте с документацией.
Команда дизайн-системы Альфа-Банка ищет разработчика интерфейсов: https://hr.alfabank.ru/vacancies/ui-dev. Присоединяйся!
arui-feather доступен как npm-пакет.
npm install arui-feather --save
Desktop
Mobile
Использование в адаптивной/мобильной среде
Необходимые внешние зависимости системы:
node
8 и npm
Шаги запуска демо:
npm i
npm run demo
Запустить demo на произвольном порту:
PORT=8888 npm run demo
Использовать только для обновления нескольких компонентов. Иначе не хватает памяти.
Перед каждым коммитом js код проверяется через eslint
, css через stylelint
.
Запуск unit-тестов npm run test
.
Запуск unit-тестов для определенных компонентов TESTS=amount,calendar npm run test
.
Запуск unit-тестов используя Chrome npm run test -- --browser=Chrome
Запуск линтера для css npm run lint-css
.
Запуск линтера для js npm run lint-js
.
Запуск тестов на мобильных устройствах
Для тестирования деградаций в вёрстке используется gemini
.
Тесты для каждого компонента хранятся в gemini/<component>.gemini.js
.
Запуск тестов производится командой npm run gemini
.
Обновление или создание новых эталонных скриншотов: npm run gemini-update
.
Для запуска тестов или обновления скриншотов необходимы следующие шаги:
export SAUCE_USERNAME=alfalab.js SAUCE_ACCESS_KEY={ ключ взять у мейнтейнеров }
npm run sauce-connect
npm run gemini
или npm run gemini-update
Запуск gemini
на выборочное число тестов (используется опция --grep
): npm run gemini -- --grep="button|select"
.
Во время тестирования рендер каждого сьюта доступен по URL, например: http://localhost:8668/popup/popup_theme_alfa-on-color.popup_size_m.popup_prop-set_1
Для оптимизация svg используется svgo.
npm install svgo -g
find src -name *.svg -print0 | xargs -0 -L 1 svgo
Подробнее о том, как контрибьютить в проект
Для оптимизации производительности компонентов используется метод shouldComponentUpdate, реализуемый декоратором @performance.
Пример использования:
import performance from '../performance';
@performance(true)
class Component extends React.Component {}
Поскольку modernizr на данный момент не умеет правильно работать внутри webpack используется скрипт для генерации webpack на основе конфигурации для него.
Настройки modernizr находятся в файле .modernizrrc
(см. список доступных опций).
Автоматическая перегенерация modernizr.js
не предусмотрена, в случае если вы поменяли его настройки — вам нужно
будет перегенерировать файл.
Для ручного обновления собранного Modernizr
:
npm run modernizr
Для выпуска новой версии используйте следущие команды:
npm run release-patch
npm run release-minor
npm run release-major
Запуск этих команд автоматически сформирует changelog, сделает новый git tag, запустит сборку и публикацию.
Deprecation публичного API должно происходить плавно, позволяя пользователям библиотеки обновляться с наименьшими неудобствами. Deprecation происходит со следующим сценарием:
До полного удаления устаревшей функциональности в мажорном релизе, должна быть выпущена как минимум одна минорная версия для уведомления пользователей об изменениях.
© 2016-2019 Alfa-Bank. Код лицензирован Mozilla Public License 2.0.
15.2.1 (2019-10-30)
<a name="15.2.0"></a>
FAQs
Alfa-Bank UI lightweight library
The npm package arui-feather receives a total of 253 weekly downloads. As such, arui-feather popularity was classified as not popular.
We found that arui-feather demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 19 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.