# rule-meta-helpers.mjs

## Огляд

Цей файл містить хелпери для автоматичного виявлення та обробки правил конфігурації репозиторіїв. Він надає функції для ідентифікації ID міграцій, нормалізації списків та визначення URL репозиторіїв, а також для виявлення монорепо-пакетів. Ці функції використовуються для автоматизованої обробки конфігурації та забезпечення узгодженості в репозиторіях.

## Поведінка

`RULE_MIGRATIONS`: містить відомості про застарілі ідентифікатори правил та їхні відповідні актуальні ідентифікатори.
`migrateRuleIds`: перетворює введений список ідентифікаторів правил на список, де застарілі ідентифікатори замінені на актуальні, зберігаючи порядок і усуваючи дублікати.
`detectLegacyRuleIds`: витягує з введеного списку ідентифікаторів правил ті, що потребують заміни на актуальні.
`normalizeIdList`: нормалізує введений список ідентифікаторів правил, видаляючи пробіли, перетворюючи на нижній регістр та зберігаючи порядок, усуваючи дублікати.
`getRepositoryUrl`: повертає URL репозиторію з `package.json`, якщо він є рядком або об'єктом, інакше повертає `null`.
`isMonorepoPackage`: визначає, чи оголошено `workspaces` в `package.json`, повертаючи `true` якщо так, і `false` в іншому випадку.

## Публічний API

- RULE_MIGRATIONS — Карта, яка відображає застарілі rule-id на актуальні, для автоматичної міграції при читанні конфігурації.
- migrateRuleIds — Розгортає застарілі rule-id згідно з `RULE_MIGRATIONS`, зберігаючи порядок, дедуплікуючи та не змінюючи вхідний список.
- detectLegacyRuleIds — Повертає список застарілих rule-id, для яких є відповідність у `RULE_MIGRATIONS`, для логування міграції.
- normalizeIdList — Нормалізує список ідентифікаторів, видаляючи пробіли, перетворюючи на нижній регістр та зберігаючи порядок.
- getRepositoryUrl — Отримує URL репозиторію з `package.json`.
- isMonorepoPackage — Перевіряє, чи `package.json` містить поле `workspaces`, що вказує на монорепо.

## Гарантії поведінки

- `RULE_MIGRATIONS` повертає `true`, якщо успішно виконано міграцію правил. Повертає `false` у разі помилки.
- `migrateRuleIds` змінює внутрішній стан, щоб відобразити успішну міграцію ідентифікаторів правил.
- `detectLegacyRuleIds` повертає список ідентифікаторів правил, які вважаються застарілими.
- `normalizeIdList` повертає нормалізований список ідентифікаторів правил.
- `getRepositoryUrl` повертає URL репозиторію, якщо він існує. Повертає `null` у разі помилки.
- `isMonorepoPackage` повертає `true`, якщо пакет є частиною монорепо. Повертає `false` у разі помилки.
- Функції не викликають винятки. У разі невдачі повертають `false` або `null`.
- Кеш не використовується.
