
Security News
OWASP 2025 Top 10 Adds Software Supply Chain Failures, Ranked Top Community Concern
OWASP’s 2025 Top 10 introduces Software Supply Chain Failures as a new category, reflecting rising concern over dependency and build system risks.
@alfalab/core-components-codemod
Advanced tools
$ yarn add --dev @alfalab/core-components-codemod
Какой-то один трансформер:
$ npx @alfalab/core-components-codemod --transformers=button-xs --glob='src/**/*.tsx'
Можно сразу несколько трансформеров:
$ npx @alfalab/core-components-codemod --transformers=button-xs,button-views --glob='src/**/*.tsx'
Сейчас замена компонентов доступна только для кода, написанного на typescript. Если кому-то нужно мигрировать с js - дайте знать, докрутим.
| Название | Описание |
|---|---|
| paragraph | Меняет компонент Paragraph из arui-feather на актульный компонент из core-components |
| label | Меняет компонент Label из arui-feather на актульный компонент из core-components |
| heading | Меняет компонент Heading из arui-feather на актульный компонент из core-components |
| button-xs | Изменяет размер кнопки с xs на xxs |
| button-views | Меняет вид кнопки с view filled на secondary, outlined на tertiary, transparent на secondary, primary на accent |
| replace-color-vars | Заменяет цветовые токены при переходе на core-components v27 и выше: |
--color-light-border-secondary-inverted: --color-light-border-underline | |
--color-light-border-tertiary-inverted: --color-light-border-underline-inverted | |
--color-light-graphic-neutral: --color-light-graphic-quaternary | |
--color-light-bg-neutral: --color-light-bg-quaternary | |
--color-dark-graphic-neutral: --color-dark-graphic-quaternary | |
--color-dark-bg-neutral: --color-dark-bg-quaternary | |
--color-static-bg-neutral-light: --color-static-bg-quaternary-light | |
--color-static-bg-neutral-dark: --color-static-bg-quaternary-dark | |
| delete-dist | Удаляет '/dist' в импортах отдельных пакетов. Может принимать дополнительный аргумент командной строки --packages, в котором указывается список компонентов, импорты которых нужно обработать, например (--packages="modal,button") |
| button-breakpoint-768 | Добавляет свойство breakpoint со значением 768 к респонсивной кнопке |
| Название | Описание |
|---|---|
| 42-autocomplete |
- Если импортировалась десктопная версия компонента из индекса, то к пути импорта добавит /desktop, InputAutocomplete заменит на InputAutocompleteDesktop. - Заменяет responsive точку входа на индекс. InputAutocompleteResponsive заменит на InputAutocomplete |
| 42-calendar |
- Заменяет responsive точку входа на индекс. CalendarResponsive заменит на Calendar - Если импортировалась десктопная версия компонента из индекса, то к пути импорта добавит /desktop, Calendar заменит на CalendarDesktop - Переиспользуемые между точками входа сущности выносит в @alfala/core-components/calendar/shared. |
| 42-calendar-input |
- Заменяет responsive точку входа на индекс. CalendarInputResponsive заменит на CalendarInput - Переиспользуемые между точками входа сущности выносит в @alfala/core-components/calendar-input/shared. |
| 42-confirmation |
- Заменяет responsive точку входа на индекс. ConfirmationResponsive заменит на Confirmation - Если импортировалась десктопная версия компонента из индекса, то к пути импорта добавит /desktop, Confirmation заменит на ConfirmationDesktop - Переиспользуемые между точками входа сущности выносит в @alfala/core-components/confirmation/shared. |
| 42-date-range-input |
Заменяет responsive точку входа на индекс. DateRangeInputResponsive заменит на DateRangeInput |
| 42-date-time-input |
Заменяет responsive точку входа на индекс. DateTimeInputResponsive заменит на DateTimeInput |
| 42-modal |
- Заменяет responsive точку входа на индекс. ModalResponsive заменит на Modal - Переиспользуемые между точками входа сущности выносит в @alfala/core-components/modal/shared. |
| 42-picker-button |
- Заменяет responsive точку входа на индекс. PickerButtonResponsive заменит на PickerButton - Переиспользуемые между точками входа сущности выносит в @alfala/core-components/picker-button/shared. |
| 42-select |
- Заменяет responsive точку входа на индекс. SelectResponsive заменит на Select - Если импортировалась десктопная версия компонента из индекса, то к пути импорта добавит /desktop, Select заменит на SelectDesktop - Для SelectMobile создаст импорт из @alfalab/core-components/mobile - Переиспользуемые между точками входа сущности выносит в @alfala/core-components/select/shared. |
| 42-side-panel |
- Заменяет responsive точку входа на индекс. SidePanelResponsive заменит на SidePanel - Переиспользуемые между точками входа сущности выносит в @alfala/core-components/side-panel/shared. |
| 42-system-message |
Заменяет responsive точку входа на индекс. SystemMessageResponsive заменит на SystemMessage |
| 42-tabs |
- Заменяет responsive точку входа на индекс. TabsResponsive заменит на Tabs - Переиспользуемые между точками входа сущности выносит в @alfala/core-components/tabs/shared. |
| 42-tooltip |
- Заменяет responsive точку входа на индекс. TooltipResponsive заменит на Tooltip - Если импортировалась десктопная версия компонента из индекса, то к пути импорта добавит /desktop, Tooltip заменит на TooltipDesktop - Переиспользуемые между точками входа сущности выносит в @alfala/core-components/tooltip/shared. |
| 42-tag-click | - В теме click принудительно устанавливает `view="filled"` |
| 42-tag-intranet | - В теме intranet Принудительно устанавливает `view="filled"` и `shape="rectangular"` |
| 42-tag-mobile | - В теме mobile Принудительно устанавливает `view="filled"` и `shape="rectangular"` |
| 42-button |
Кодмоды, связанные с появлением responsive, desktop и mobile версий компонентов.
Заменяют импорт с index на desktop (Например, import { Button } from '@alfalab/core-components/button' заменит на
import { ButtonDesktop } from '@alfalab/core-components/button/desktop').
|
| 42-checkbox-group | |
| 42-code-input | |
| 42-filter-tag | |
| 42-form-control | |
| 42-input | |
| 42-plate | |
| 42-radio-group | |
| 42-tag | |
| 42-toast | |
| 42-toast-plate |
Для запуска всех трансформеров можно воспользоваться командой
npx @alfalab/core-components-codemod --transformers=42-autocomplete,42-button,42-calendar,42-calendar-input,42-checkbox-group,42-code-input,42-confirmation,42-date-range-input,42-date-time-input,42-filter-tag,42-form-control,42-input,42-modal,42-picker-button,42-plate,42-radio-group,42-select,42-side-panel,42-system-message,42-tabs,42-tag,42-toast,42-toast-plate,42-tooltip --glob='src/**/*.tsx'
Под капотом - jscodeshift.
$ yarn test:codemod
or
$ npx jest packages/codemod/src --config=jest.codemod.config.js
FAQs
Codemod tools for code transforms
We found that @alfalab/core-components-codemod demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 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
OWASP’s 2025 Top 10 introduces Software Supply Chain Failures as a new category, reflecting rising concern over dependency and build system risks.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.