# lint-findings.mjs

## Огляд

Цей файл обробляє результати аналізу коду, отримані з інструментів oXlint та eslint, для визначення, чи є знайдені проблеми нові (в diff) чи існують у файлі з самого початку. Він класифікує ці результати, надаючи інформацію про файл та рядок, де проблема виявлена, що допомагає у відстеженні та вирішенні помилок. Це частина системи беклогу #6, яка автоматизує процес класифікації lint-findings.

## Поведінка

parseOxlint: аналізує JSON-вихід `oxlint --format=json` та повертає список findings з інформацією про файл, рядок, правило та повідомлення.
parseEslint: аналізує JSON-вихід `eslint --format=json` та повертає список findings з інформацією про файл, рядок, правило та повідомлення.
classifyFindings: класифікує findings як introduced або pre-existing на основі доданих рядків, використовуючи Map.
renderFindings: генерує текстовий звіт з розділенням findings на introduced та pre-existing, використовуючи формат `🆕 introduced` та `🗄 pre-existing`.

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

- parseOxlint — Перетворює JSON з результатів інструменту Oxlint на внутрішній об'єкт.
- parseEslint — Перетворює JSON з результатів інструменту ESLint на внутрішній об'єкт.
- classifyFindings — Розподіляє знайдені проблеми на нові (introduced) та існуючі (pre-existing).
- renderFindings — Створює звіт, об'єднуючи нові та існуючі проблеми.

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

- Функція `parseOxlint` повертає JSON-об'єкт, що містить список діагностик, або `null` у разі помилки парсингу.
- Функція `parseEslint` повертає масив об'єктів, що містять повідомлення про помилки, або `null` у разі помилки парсингу.
- Функція `classifyFindings` повертає масив об'єктів, що представляють класифіковані результати, або `null` у разі помилки класифікації.
- Функція `renderFindings` повертає рядок, що містить представлення результатів, або `null` у разі помилки рендерингу.
- У разі невдачі будь-якої з функцій, повертається `false`.
- Функції не кидають винятків.
- Шляхи файлів, що передаються вхідним функціям, є абсолютними.
- Результати функцій не кешуються.
