
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
В этом репозитории будет создана и настроена дизайн-система «Умной цифры».
Дизайн система построена с помощью библиотеки TSDX (https://www.npmjs.com/package/tsdx). Базовая конфигурация была подстроена под нужны разработки.
npm run start - работает для папки src, необходимо иметь файл index.tsx, в
котором будет находится экспорт всех библиотечных компонентов. Необходимо для
разработки.npm run build - сборка билда в папке build.npm run test - запуск тестов, результат выполнения будет записан в файл
.jest-test-results.json, который необходим для storybook.npm run test:env:setup - запустить тестовое окружениеnpm run test:env:teardown - удалить тестовое окружениеnpm run storybook - старт storybook (сначала нужно запустить npm run test,
чтобы создался файл с результатами теста).npm run storybook:build - билд сборка storybook.npm run codegen - генерация новых компонентов/example), а затем писать для
компонента story, которое отобразится в storybook. Для это необходимо
сделать билд (npm run build), так как в песочницу компоненты вставляются из
папки /dist - import {Component} from '../dist';. Песочница будет
перерисовывать компоненты, если меняется компонент в папке /src. Для этого
необходимо в корневой папке запустить команду npm run start.Для того, чтобы запустить саму песочницу:
cd example
npm i
npm start
storybook. Для этого нужна команда
npm run storybook.Создавать новые компоненты рекомендуется с помощью утилиты кодогенерации. Для запуска утилиты необходимо выполнить команду:
npm run codegen
С помощью данной утилиты можно создавать следующие сущности:
Дочерние компоненты можно создавать на неограниченную вложенность. Например вы
хотите создать компонент
src/components/atoms/Foo/components/Bar/components/Baz. Для этого в имени
родительского компонента нужно указать Foo/Bar а в имени дочернего - Baz.
Версионирование библиотеки происходит автоматически согласно правилам
семантического версионирования. В рамках задачи необходиомо иметь как минимум
один коммит с тегом (feat, fix и тд). Если задача имеет "Breaking changes",
то в соответствующем поле необходимо проставить Y. Если делать коммит через
консоль, настроенные git hook`и выведут диалог, в котором можно будет выбрать
необходимый тег. Если делать коммит через IDE, то можно скачать плагины, которые
реализуют тот же механизм. Например для Webstorm -
https://plugins.jetbrains.com/plugin/9861-git-commit-template/versions.
Для публикации необходимо:
npm adduser --registry=https://nx.sm-digit.ru/repository/npm-smd-releases/
.npmrc, где прописать _auth
и email)npm publishСоздать в корне проекта файл .npmrc.
В нем прописать:
registry=https://nx.sm-digit.ru/repository/npm-all/
_auth=TOKEN
email=your_email
Команда для создания "TOKEN" - $ echo -n 'username:password' | openssl base64,
где username - логин типа i.ivanov, password - ваш стандартный пароль.
После этого npm i smart-digit-design-system.
Внимание! Если вы никогда до этого не ходили в nexus, то нужно получить доступ у девопсов.
Качество кода контролируется с помощью ESlint, prettier, husky и
lint-staged.
Для запуска тестов на локальной машине должен быть установлен docker.
Тесты запускаются с использованием тестового окружения, которое разворачивается в docker-контейнерах:
Запустить тесты можно командой:
npm run test
В таком случае, тестовое окружение будет автоматически:
Так же, для отладочных целей, тестовое окружение можно запускать/останавливать отдельно от тестов:
npm run test:env:setup
После запуска, тестовое приложение будет доступно по адресу:
http://localhost:9338npm run test:env:setup
В случае, если тестовое окружение уже запущено "вручную", то тесты можно запускать минуя автоматические этапы запуска/остановки окружения:
npm run test -- --no-env
TSDX использует Rollup v1.x в качестве сборщика. См Optimizations.
.eslintrc.js и tsconfig.json необходимы для настройки линтера и typescript.
Разработчиками TSDX предусмотрены возможности кастомизации и оптимизации сборки.
Нужно изучить tsdx
optimizations docs. Можно
также использовать invariant и
warning.
Поддерживаются CJS, ESModules и UMD.
Соответствующие пути настраиваются в package.json и dist/index.js.
Песочница построена на Parcel, так что можно сделать
сборку, если нужно. Гайд для ручной сборки с Netlify CLI
(npm i -g netlify-cli):
cd example # переход в папку с песочницей
npm run build # билд песочницы
netlify deploy # деплой
В качестве альтернативы, если уже есть git-репозиторий, можно настроить
непрерывное развертывание с помощью Netlify netlify init.
Используйте только именованные экспорты. Единственным исключением является то, что инструмент требует экспорта по умолчанию (например, React.lazy(), Gatsby и Next.js).
<Props of={Button} /> не работает с HOC. Поэтому, если ваш компонент
обернут в withStyle(style)(Component), то необходимо в файле со стори
Component.stories.mdx сделать
import Component, { Component as PureComponent} from './Component' и в
Props пробрасывать именно PureComponent - <Props of={PureComponent} />.props компонента указать кастомный объект (интерфейс), который
импортируется через абсолютный путь, то storybook при генерации документации
укажет в соответствующем поле description - any. Если же импорт сделать
через относительный путь, то в description будет указано корректное
описание.FAQs
В этом репозитории будет создана и настроена дизайн-система «Умной цифры».
We found that smddds demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.